Оглавление:

Z80 MBC2 - повторная компиляция QP / M Bios и загрузчика: 6 шагов
Z80 MBC2 - повторная компиляция QP / M Bios и загрузчика: 6 шагов

Видео: Z80 MBC2 - повторная компиляция QP / M Bios и загрузчика: 6 шагов

Видео: Z80 MBC2 - повторная компиляция QP / M Bios и загрузчика: 6 шагов
Видео: Z80 Retro #1 — Введение в проект платы 2024, Июль
Anonim
Z80 MBC2 - Перекомпилировать QP / M Bios и Loader
Z80 MBC2 - Перекомпилировать QP / M Bios и Loader

Если, как и я, вы окажетесь в положении, когда вам нужно перекомпилировать биос QP / M для вашего MBC2 - тогда вы делаете это так.

Я задокументировал процесс перекомпиляции существующей версии. При необходимости вы можете вносить изменения в фактические файлы Bios. Я внес изменения только для того, чтобы моя установка QP / M была встроена в версию CP / M 2.2 Bios, которую я использую (эти изменения не показаны только в процессе того, как это сделать)

Первая часть процесса почти идентична CP / M 2.2 Bios, поэтому, если у вас уже есть компьютер для сборки, не стесняйтесь пропустить эту часть.

Основное отличие состоит в том, что QP / M должен загружаться с первой дорожки загрузочного диска, а не с.bin-файла, такого как CP / M 2.2, описанного ниже.

Запасы

Windows-машина для запуска компилятора. Я использовал виртуальную машину Windows XP, работающую на KVM, потому что она очень мала и никогда не будет подключена к Интернету. Но он отлично работает под Windows 10.

Компилятор TASM 3.2 z80, поищите его в Google, вы должны оказаться по адресу

Копия zip-файла SD с домашней страницы z80-mbc2, на момент написания это была

CPMTools для Windows из https://www.cpm8680.com/cpmtools/cpmtoolsWin32.zip это 32-битная версия, но работает нормально в 64-битных системах.

Шаг 1. Добавление программного обеспечения на компьютер сборки

Добавление программного обеспечения на компьютер сборки
Добавление программного обеспечения на компьютер сборки
Добавление программного обеспечения на компьютер сборки
Добавление программного обеспечения на компьютер сборки

После того, как ваш компьютер с Windows настроен и работает, скопируйте или загрузите файлы, упомянутые в разделе «Вам понадобятся» выше.

Создайте рабочий каталог на вашем компьютере, я предлагаю (чтобы избежать большого количества наборов текста и опечаток) вам создать каталог на диске C, например c: / z80mbc. Я настоятельно рекомендую по возможности избегать пробелов в именах и длинных путей к каталогам. Будь проще.

Создайте в этом каталоге папку для файлов TASM, c: / z80mbc / tasm

Создайте папку для образа SD-карты, c: / z90mbc / SD

Щелкните правой кнопкой мыши по каждому из файлов и извлеките содержимое в каталоги, которые вы создали выше. Итак, tasm.zip извлекается в c: / z80mbc / tasm, а испуганный zip-файл в c: / z80mbc / SD.

Чтобы упростить некоторые из следующих шагов, вы также можете распаковать cpmtool32.zip в другой каталог, например c: / z80mbc / cpmtools.

Шаг 2. Добавление инструментов в путь к Windows

Добавление инструментов в путь к Windows
Добавление инструментов в путь к Windows
Добавление инструментов в путь к Windows
Добавление инструментов в путь к Windows

В зависимости от вашей версии Windows выполните одно из следующих действий.

Windows 10

Откройте меню свойств, щелкнув правой кнопкой мыши элемент «Этот компьютер» в окне проводника.

Нажмите «Расширенные настройки системы», откроется окно «Свойства системы» (вы также можете получить доступ к свойствам системы другими способами, но я не очень часто использую окна, так что это мой способ!)

Щелкните «Переменные среды».

Windows XP

Нажмите кнопку «Пуск», щелкните правой кнопкой мыши «мой компьютер», затем вы можете нажать «Свойства», чтобы получить «свойства системы».

Перейдите на вкладку Advanced.

Щелкните «Переменные среды».

Когда у вас есть окно переменных среды на экране, вам нужно сделать две вещи;

Добавить новую переменную

В верхней части окон в разделе «Пользовательские переменные для…»

Нажмите New

Для типа Name в TASMTABS

Для типа значения в c: / z80mbc / tasm

Измените переменную PATH

В нижней части окна в разделе «Системные переменные»

выберите (выделите) Путь, затем нажмите Редактировать

В конце существующего содержимого добавьте; c: / z80mbc / tasm; c: / z80mbc / cpmtools

(Не забудьте в начале точку с запятой!)

Теперь вам необходимо перезагрузить компьютер, чтобы изменения вступили в силу.

Шаг 3: проверка Tasm

Тестирование Tasm
Тестирование Tasm
Тестирование Tasm
Тестирование Tasm
Тестирование Tasm
Тестирование Tasm

Чтобы протестировать, мы можем скомпилировать точную копию существующего QP / M BIOS, нам нужно сделать немного больше подготовки. Файлы в этом каталоге:

BIOS QPM271 - S150918.asm - основной файл BIOS, скорее всего, это файл, который вы будете изменять.

QPM271_ColdLoader - S160918.asm - это загрузчик QP / M, он считывает первые треки из образа диска в память. В более традиционной системе CP / m это будет называться начальной загрузкой и находится в EEPROM или ROM. Вам не нужно изменять этот файл, он уже скомпилирован и находится в образе SD-карты как QPMLDR. BIN.

SYSGENQ - S140918.asm - Эта программа используется вместе с установщиком QP / M, опять же, вам не нужно будет изменять ее, она уже существует в образе загрузочного диска, готовом к использованию. По сути, он читает и записывает дорожки, используемые указанным выше холодным загрузчиком.

Прежде чем мы протестируем нашу установку TASM, вам понадобится еще один файл, cpm22_Z80MBC2.asm, его нет в этом каталоге по умолчанию, поскольку это тот же файл, который используется для cpm 2.2. Нам нужен этот файл, чтобы предоставить исходный CBIOS / CCP для начальной загрузки QP / M. Вы можете скопировать этот файл из каталога CPM_22_Custom_BIOS.

Либо используйте проводник Windows, чтобы скопировать его, либо из командной строки (CMD) выполните

cd c: / z80mbc / sd / src / QPM_271_Custom_BIOS

скопируйте.. / CPM_22_Custom_BIOS / cpm22_Z80MBC2.asm

Теперь вам нужно изменить этот файл, чтобы включить QP / M BIOS, откройте файл с помощью блокнота:

найдите "QPM" (CTRL-F или меню редактирования и найдите) См. рисунок выше

измените файл с:

;-----------------------------------------------------------------------

; Z80-MBC2; ---------------------------------------------- -------------------------; # включить «BIOS QPM271 - S150918.asm»; Включен CBIOS для Z80-MBC2 #include «BIOS CPM22 - S030818-R140319.asm»; Включенный CBIOS для Z80-MBC2

К:

;-----------------------------------------------------------------------

; Z80-MBC2; ---------------------------------------------- ------------------------- #include «BIOS QPM271 - S150918.asm»; Включен CBIOS для Z80-MBC2; #include «BIOS CPM22 - S030818-R140319.asm»; Включенный CBIOS для Z80-MBC2

Вы также должны проверить значение iLoadMode в скопированном файле cpm22_Z80MBC2.asm, примерно в строке 40:

;-----------------------------------------------------------------------

; Z80-MBC2; ---------------------------------------------- ------------------------- iLoadMode.equ 0; Установите 1 для режима iLoad (для тестирования),; установить в 0 для создания изображения дорожки 0,; установите значение 2 для создания двоичного файла cpm22.bin; --------------------------------------- --------------------------------

Он должен быть равен 0, это значение по умолчанию, но все равно проверьте!

После этого сохраните файл.

теперь вы можете запустить tasm:

tasm -b -g3 -80 cpm22_Z80MBC2.asm qpm22.bin

Обратите внимание на другое имя выходного файла, если все пойдет хорошо, вы должны увидеть следующий результат:

c: / z80mbc / sd / src / QPM_271_Custom_BIOS> tasm -b -g3 -80 cpm22_Z80MBC2.asm qpm22.bin

TASM Z80 Ассемблер. Версия 3.2, сентябрь 2001 г. Copyright (C) 2001 Squak Valley Software tasm: пройти 1 завершено. tasm: пройти 2 завершено. tasm: количество ошибок = 0 c: / z80mbc / sd / src / QPM_271_Custom_BIOS>

Вы готовы вносить любые изменения в BIOS! файл.

Шаг 4. Найдите адрес часов реального времени

Перед установкой новой версии BIOS часть установки QP / M должна знать адрес входа для подпрограмм часов реального времени. Если вы не установите это значение, функции времени в QP / M будут возвращать «Нет часов» в качестве сообщения об ошибке.

Чтобы получить адрес, отредактируйте файл LST, созданный при компиляции файла qpm22.bin, т.е.

блокнот cpm22_Z80MBC2.lst

Найдите метку TIMDAT, нажмите Ctrl-f (или найдите) найдите TIMDAT, вы найдете такой раздел:

0855+ EC16; ================================================== =========================;

0856+ EC16; ТИМДАТ; 0857+ EC16; ================================================== =========================; 0858+ EC16; Это, в частности, специальная процедура QP / M для интерфейса QP / M с часами реального времени; 0859+ EC16; чтобы в полной мере использовать функции отметки времени / даты QP / M.; 0860+ EC16; Адрес TIMDAT должен быть указан во время QINSTALL с помощью опции; 0861+ EC16; меню установки QDOS (см. стр. 26-27 Руководства по установке QP / M); 0862+ EC16;; 0863+ EC16; ПРИМЕЧАНИЕ. Если RTC отсутствует, IOS выдаст все байты 0. Это; 0864+ EC16; "интерпретируется" QP / M как "БЕЗ ЧАСОВ".; 0865+ EC16; ================================================== =========================; 0866+ EC16 TIMDAT 0867+ EC16 C3 19 EC jp ПОЛЬЗОВАТЕЛЬ

Запишите шестнадцатеричный адрес второго столбца, в данном случае EC16. Уберите значение со строки под комментариями, прямо над инструкцией перехода JP USERCLK. Где написано TIMDAT.

Теперь у вас есть долина, вы можете выйти из файла и продолжить работу с QP / M intsall.

Шаг 5: Добавьте Bios в новый образ диска

На этом этапе мы создадим нашу собственную копию загрузочного диска DS1N00. DSK и добавим к ней нашу собственную версию BIOS, готовую к завершению установки QP / M.

Для начала создайте временную папку на диске C, в которой будут храниться ваши рабочие копии. Откройте командную строку CMD и введите следующее

cd c: / z80mbc

mkdir temp cd temp

Затем скопируйте исходный образ диска из каталога SD.

скопируйте c: / z80mbc / sd / DS1N00. DSK.

Получите текущие файлы из образа диска:

cd c: / z80mbc / temp cpmcp -f z80mbc2-d0 DS1N00. DSK 0: * disk0

Вышеупомянутая последовательность создаст другую временную папку внутри временного каталога с именем disk0, они скопируют все существующие файлы из образа диска в каталог. Используйте DIR после, чтобы убедиться, что у вас есть файлы.

Затем мы можем отформатировать образ диска как новый диск, это единственный простой способ добавить загрузочные дорожки в образ диска без необходимости создавать новый диск с нуля. Обратите внимание, что опция «-b» использует собранный нами выше BIOS.

mkfs.cpm -f z80mbc2-d0 -b c: / z80mbc / sd / src / QPM_271_Custom_BIOS / qpm22.bin DS1N00. DSK

Теперь загрузочные треки обновлены, вы можете добавить исходные файлы обратно в образ:

cpmcp -f z80mbc2-d0 DS1N00. DSK disk0 / * 0:

Теперь у вас есть загрузочный диск, он фактически загрузит CP / M, а не QP / M, на следующем шаге мы используем установщик QP / M для замены части CBIOS в системе CP / M.

Убедитесь, что у вас есть рабочая копия загрузочной SD-карты, затем скопируйте созданный на этом шаге файл DS1N00. DSK в корневую папку SD-карты, он заменит существующий файл.

Шаг 6: загрузитесь с новым образом диска

Подключите последовательный терминал к z80mbc2

удерживайте пользовательский переключатель, удерживайте его, нажмите и отпустите переключатель сброса. Когда пользовательский светодиод погаснет, а индикатор IOS начнет мигать, отпустите пользовательский переключатель.

Теперь вы должны быть на экране «Загрузка» на терминале, например: Z80-MBC2 - A040618

IOS - Подсистема ввода-вывода - S220718-R240620 IOS: частота Z80 установлена на 8 МГц IOS: обнаружен модуль RTC DS3231 (26/10/20 16:46:45) IOS: датчик температуры RTC DS3231: 20C IOS: найден вариант GPE IOS: CP / M Autoexec выключен IOS: Выберите режим загрузки или параметры системы: 0: Без изменений (3) 1: Базовый 2: Четвертый 3: Загрузить ОС с набора дисков 1 (QP / M 2.71) 4: Автозагрузка 5: iLoad 6: Изменение тактовой частоты Z80 (-> 4 МГц) 7: Переключить CP / M Autoexec (-> ВКЛ) 8: Изменить набор дисков 1 (QP / M 2.71) 9: Изменить время / дату RTC Введите свой выбор>

Используйте вариант 8, чтобы изменить набор дисков на QP / M. При его выборе следует загрузить QP / M BIOS. Я бы также рекомендовал нажать кнопку сброса, так как я видел, как первая загрузка после варианта 8 несколько раз выходила из строя. Нравится:

IOS: текущий набор дисков 1 (QP / M 2.71)

IOS: Загрузка программы загрузки (QPMLDR. BIN)… Готово IOS: Z80 с этого момента работает Z80-MBC2 QP / M 2.71 Холодная загрузка - S160918 Загрузка… выполнено Пользовательская версия Z80-MBC2 QP / M 2.71 BIOS - S150918 A>

Обратите внимание, что я добавил «Пользовательскую версию» выше, когда редактировал файл BIOS, просто в качестве демонстрации для этого шага.

На данный момент вы фактически запускаете CP / M 2.2 Cbios с пользовательским BIOS для QP / M, поэтому такие вещи, как команда TIME, не работают, например, если вы наберете TIME (должен ответить датой + временем), вы получите CP / M 2.2 ответ ВРЕМЕНИ? - он думает, что это команда на диске, и не может ее найти.

Пришло время установить CBIOS, заменяющий QP / M, на образ диска.

Запустите программу qinstall.com:

A> qinstall

Программа установки / настройки QP / M 2.7 v2.1 QINSTALL использует вашу программу SYSGEN для установки QP / M на ваш диск. После настройки вашей системы вам будет предложено ввести имя вашей программы SYSGEN. Эта утилита должна быть доступна на одном из ваших дисков. Для успешного завершения QINSTALL образ системы на диске и система, находящаяся в настоящее время в памяти, ДОЛЖНЫ быть идентичными. (Используйте, чтобы прервать программу.) Вы хотите продолжить? (Да / Нет):

Затем ответьте Y, чтобы продолжить.

Далее вас спросят о настройках QCP (вы можете поиграть позже!), А пока скажите N

Вы хотите изучить и / или изменить

настройки QCP по умолчанию? (Да / Нет): Нет

Далее вас спросят о настройках QDOS, нажмите Y

Вы хотите изучить или изменить

настройки QDOS по умолчанию? (Да / Нет): Да

У вас будет такое меню:

*** Параметры установки системы QDOS ***

Сохранить символ, полученный при сканировании консоли.. ДА BIOS поддерживает таблицу кодов ошибок BDOS ………. НЕТ Адрес вектора перехода времени / даты …………. ВЫКЛЮЧЕНО Функция поиска дисков / пользователей ……………….. ВКЛЮЧЕНО Автоматическое повторное ведение журнала диска …………………… ВКЛЮЧЕНО Восстановить исходные настройки Выйти из установки QDOS Введите опцию:

На этом этапе вам нужно ввести шестнадцатеричный номер из шага 4 выше (найдите свой адрес часов реального времени)

Нажмите 2 и введите шестнадцатеричный адрес EC16, если вы не внесли изменений в BIOS, в моем случае это EC04, поскольку я добавил текст и т. Д.

Введите адрес вектора времени / даты в шестнадцатеричном формате (от 0 до ВЫКЛЮЧИТЬ): EC04

Теперь вы можете выйти из меню QDOS и продолжить.

Следующий экран показывает:

Введите имя вашей программы SYSGEN и нажмите RETURN.

(При необходимости укажите диск; не используйте расширение. COM): SYSGENQ

Введите специальную версию sysgen, которая называется SYSGENQ.

Вы увидите:

*** Создание образа 59k QP / M ***

QINSTALL выполнит A: SYSGENQ. COM. Вы должны указать A: SYSGENQ. COM прочитать системные треки. Когда ЧТЕНИЕ завершено, выйдите из программы SYSGEN. Появится сообщение «*** QINSTALL ищет системный образ ***» с последующими инструкциями. Нажмите, чтобы продолжить -ИЛИ-, чтобы отменить -

Нажмите C, чтобы продолжить:

SYSGENQ - S140918 - Z80-MBC2

Утилита типа SYSGEN для CP / M 2.2 Используйте только для установки QP / M 2.71 с помощью QINSTALL. COM ВНИМАНИЕ: команда W перезапишет системную дорожку! Прочитать системные треки и загрузить в ОЗУ или записать их обратно на диск? [R / W]>

Когда вы впервые увидите это сообщение, выберите R, чтобы прочитать системные треки, вы получите:

Чтение… готово

*** QINSTALL ищет образ системы *** Образ системы найден, начиная с 09:00. Установка QP / M. Ваша программа SYSGEN возобновит выполнение. Вы должны указать программе ЗАПИСАТЬ системные треки. Нажмите, чтобы продолжить -ИЛИ-, чтобы отменить -

Снова нажмите C, чтобы продолжить:

SYSGENQ - S140918 - Z80-MBC2

Утилита типа SYSGEN для CP / M 2.2 Используйте только для установки QP / M 2.71 с помощью QINSTALL. COM ВНИМАНИЕ: команда W перезапишет системную дорожку! Прочитать системные треки и загрузить в ОЗУ или записать их обратно на диск? [R / W]>

На этот раз нажмите W, чтобы записать новые QP / M и BISO обратно на дорожки диска:

Запись… готово

А>

Теперь вы можете нажать сброс и снова загрузиться в новую биографию QP / M. Если вы теперь наберете TIME в командной строке, будет запущена полная версия QP / M, и она ответит следующим образом:

Z80-MBC2 - A040618

IOS - Подсистема ввода-вывода - S220718-R240620 IOS: частота Z80 установлена на 8 МГц IOS: обнаружен модуль RTC DS3231 (26/10/20 17:10:48) IOS: датчик температуры RTC DS3231: 20C IOS: найден вариант GPE IOS: CP / M Autoexec выключен IOS: Текущий набор дисков 1 (QP / M 2.71) IOS: Загрузка программы загрузки (QPMLDR. BIN)… Готово IOS: Z80 работает с этого момента Z80-MBC2 QP / M 2.71 Холодная загрузка - S160918 Загрузка… done Пользовательская версия Z80-MBC2 QP / M 2.71 BIOS - S150918 A> время 26-Oct-20 17:10:56 A>

Вы готовы к работе с новым BIOS, обратите внимание на текст «Специальная версия» выше. Вероятно, вам следует прочитать остальную часть документации QP / M по адресу

Плавник

Рекомендуемые: