А вот еще интересное из мира Корвета: https://zx-pk.ru/threads/24900-korvet-rezhim-80x25.html
(обожаю эксгумировать лежалые топики)
Пришлось вспомнить, как работать с ghidra (спойлер: весьма комфортно) и заново отдизелить океанские MONITOR, BIOS, BDOS и CCP.
Монитор (0xe000-0xffff) после минимальной инициализации смотрит, прошит ли CPM (0xc0000-0xdfff), и передает управление загрузчику по адресу 0xd600.
Загрузчик немножечко колдует, затем копирует CCP из ПЗУ (0xc000-0xc809) в RAM по адресу 0xb200, куда после недолгих раздумий прыгает сам.
CCP почти один-в-один соответствует исходникам CP/M 2.2, за несколькими мелкими исключениями:
- процедура проверки серийного номера на месте, но аварийный выход из нее забит NOP-ами
- встроенных команд 6 ($DIR, ERA, TYPE, SAVE, REN, USER), к имени команды DIR добавлен доллар. Интересно, будет ли работать, если написать $DIR
- после адресов обработчиков встроенных команд обычно идет адрес обработчика транзитных команд userfunc. В нашем случае там вбит адрес обработчика дополнительных команд из ПЗУ CP/M (0xdb00)
- каковой добавляет еще 4 встроенные команды (DIR, READ, WRITE, EXIT). Ну и в конце ссылается обратно на штатный обработчик userfunc (0xb8a5).
Последний раз редактировалось tnt23; 14.04.2023 в 10:44.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)