Вложений: 1
Промежуточный вариант Монитора на 32 / 64 Кб
Итак, к настоящему времени удалось несколько доработать Монитор и добавить в него некоторый функционал.
- «D<начало>,<конец>» - вывод дампа в режиме 64 Кб¹
- «D<начало>,<конец>,,<1XX>» - вывод дампа ROM-диска из страницы XX²
- «D<начало>,<конец>,,<200>» - вывод дампа в режиме 16/32 Кб¹
- «L<начало>,<конец>» - вывод текста в режиме 64 Кб¹
- «L<начало>,<конец>,,<1XX>» - вывод текста ROM-диска из страницы XX²
- «L<начало>,<конец>,,<200>» - вывод текста в режиме 16/32 Кб¹
- «M<адрес>» - редактирование памяти в строчном формате (только в режиме 64 Кб¹)
- «S<начало>,<конец>,<код>» - поиск кода в режиме 64 Кб¹
- «S<начало>,<конец>,<код>,<1XX>» - поиск кода в ROM-диска из страницы XX²
- «S<начало>,<конец>,<код>,<200>» - поиск кода в режиме 16/32 Кб¹
- «T<начало>,<конец>,<куда>» - копирование блока (только в режиме 64 Кб¹)
- «T<начало>,<конец>,<куда>,<1XX>» - копирование блока ROM-диска из страницы XX²
- «X» - просмотр/редактирование содержимого регистров в строчном формате
¹-Режим «64 Кб» экспериментальный и на стандартном РАДИО-86РК никак себя не выделяет.
²-Поддерживается данная схема Апогея.
Директива «R» исключена, так как расширенный режим директивы «T» её подменяет.
Подправил подпрограмму вывода символа:- Коды 1F/0C имеют наивысший приоритет³
- Код 1F после очистки экрана сам вызывает F82D³
- Неизвестные Esc-последовательности передаются ловушке
- Прокрутка экрана производится только в прямоугольнике 64x25 с очисткой последней строки
³-При "холодном старте" код оригинального Монитора дважды вызывал F82D и очищал служебные ячейки также и для корректной работы кода 1F, иначе при любой комбинации в ячейке 7004 код проигнорировался бы и экран не очистился, что не позволило бы нормально запуститься при первой подаче питания.
Ограничив прокрутку областью 64x25 несколько ускорился и сам процесс (примерно на 8%).
Директива «D0,FFFF»:- В оригинале работает 434 секунды
- С моими коррекциями - 396 секунд
Количество точек вызова API-Монитора несколько расширилось:- F836 - чтение ячейки памяти в режиме пользователя 32 Кб
- F839 - запись ячейки памяти в режиме пользователя 32 Кб
- F83C - сохранение контекста процесса
- F83F - установка режима чтения памяти и страницы ROM-Диска
- F842 - чтение ячейки ROM-Диска или УВВ
- F845 - установка адреса на пользовательскую ловушку
Собственно, F845 выполняет специальную функцию и обрабатывает ситуации с выпадением сигнала магнитофона (как в Орионе), чтобы избежать вываливания в Монитор из Бейсика при загрузке с ленты или нажатия F4 / УС+C.
А также, ей передаются и все остальные Esc-комбинации из подпрограммы F809, что позволяет расширить их набор.