Вывод на экран работает нормально. Но при наборе было такое:
Нажимаю D
- в терминале на экране ничего
Нажимаю I
- в терминале на экране D
Нажимаю R
- в терминале на экране I
Нажимаю Enter
- в терминале на экране R
Нажимаю Enter
- начинает работа команды dir (вывод списка файлов)
Сейчас попробовал это же воспроизвести опять в эмуляторе. Итак: по началу не воспроизводится и все работает верно (нажимал кнопки медленно, одну за одной). Но если понажимать пару десятков клавишь быстро, то в какой-то момент ввод/отображение сбивается и начинается отставание описанное выше.
На самом деле, в CPM еще не совсем идеально с точки зрения обработки прерываний. По-хорошему, делать DI/EI надо только в обработчике TTY. Но для этого надо серьезно переписывать DRIVER.SYS (в нем делается DI/EI, т.к. переставляется стек в некоммутируемые диспетчерами области). И теоретически, возможно "проглатывание" прерывания TTY в тот момент, когда уже работал обработчик прерывания 50Hz.
Зато в режиме без прерываний ("INT_IO 0") driver.sys вообще может отсутствовать, а в конфиге сразу ставим консоль TTY (IOBYTE 148). Эмулируется в этом режиме без ошибок.





Ответить с цитированием