Windows программа-драйвер 'Punto-Switcher', позволяющая сделать переключение РУС-ЛАТ одноклавишным, вредит, по-крайней мере, эмуляторам написанным для MSDOS (причём всем). При загруженном 'Punto-Switcher' реакция на клавиши в эмуляторах становится очень заторможенной. Иногда отклик через секунду после нажатия, а если клавишу задержать чуть-чуть дольше, то срабатывает встроенный в 'Punto-Switcher' автоповтор и выскакивает сразу до десятка символов нажатой клавиши. Поэтому пользоваться эмуляторами с этим дурацким 'Punto-Switcher'-ом практически невозможно. Его приходится выгружать, а для набора текстов снова загружать. Это очень неудобно для отладки программ в эмуляторе, т.к при разработке программ, самый выгодный метод - это небольшие изменения текста исходника и потому очень частые перетрансляции для проверок.
Сделал новую версию выше-выложенного M1ZMS , в котором доработал ввод с клавиатуры (добавил паузу перед началом процедуры автоповтора). По прикидкам это должно помочь, но точную константу я высчитал лишь теоретически, поэтому мог ошибиться, теперь уже в большую сторону (сообщите если темп автоповтора стал слишком медленным).Сообщение от error404
error404, проверьте пожалуйста эту версию. Также интересует работа и версий для РК-клавиатур. Хотя проверка в эмуляторе не даёт точного представления о поведении программы (что конечно зависит от точности эмулятора). Разве ни у кого нет Z80 с MS-7007 клавиатурой? Это надо проверить перед тем, как делать версию для КР580.
Также существенно доработал версию M1-Z80 для РК-клавиатур (новая версия М1.03). Относительно выложенной несколько часов назад версии М1.02, в новой версии переделана и подпрограмма вывода на экран и подпрограмма FLASH курсора.
Подпрограмма вывода теперь выводит не 8 линий знакоместа из 10, а 9 линий из 10-ти. Кроме того, теперь, как и во всех моих мониторах курсор сделан большим и его форма изменяется при включении русского регистра. К сожалению, индикации включённого регистра высотой тона подзвучки сделать нельзя, т.к в М1 вообще нет подпрограммы вывода звука F83F. И единственный звук который присутствует в этом мониторе - это клик нажатия клавиши. Чтобы хоть что-то звучало по звуковому вызову F83F, этот вход теперь переадресован на клик нажатия клавиши.
Интересно узнать какие программы для M2 не будут работать с М1.Т.к вектора CONIN/CONOUT одинаковы, то смогут работать драйвера загружаемые на вектора ПЗУ (отчего в CP/M не должно возникнуть проблем).
Из-за остутствия в М1 оконных функций и координат окна, не должны работать только оконные программы, в которых устанавливается размер окна и управляющими кодом выполняется очистка. С закраской цветом проблем не будет, т.к в М2 также нет процедур закраски окна цветом и вывода в цвете (отчего в ORDOS всё приходится делать "по железу", т.к даже цветных оконных драйверов для ORDOS просто нет).
Да и базовые функции ПЗУ в основном не поддерживают ни окна, ни цвет. Например, позиционирование по 1B,59 позиционирует не учитывая установленное окно, как положено, а так как будто окно и не было установлено.
М1 содержит совсем маленький набор команд (не сравнить с М3). Вот перечень команд, что я нашёл внутри него.
'M' - модификация ячеек ОЗУ
'D' - просмотр дампа памяти
'I' - ввод блока с МГ (аналог дир.I в РК86)
'O' - вывод блока на МГ (аналог дир.O в РК86)
'R' - загрузка и старт 2 кб из ROM-диска на B800
'Z' - JMP BFFD
'C' - один параметр: старший нибл цвет фона, младший цвет букв
'G' - запуск программы по указанному адресу.
PS: В полностью базовый M1 (без модификаций кода) за счёт замены на коды КР580 (что освобождает ~100 ячеек и еще ~40 выигрываются оптимизацией кода, без замены логики) можно встроить 2 команды чтения и записи МГ-файла в формате ORDOS, что сделает ненужной программу CH$.
PPS: Да, забыл упомянуть. Также как в оригинале М1, оставлена работа с системными регистрами только командами STA F800 (F900,FA00), хотя использование команд OUT позволило бы выиграть кучу байтов. Это сделано специально. Чтобы М1 работал на Z80 без установленного дешифратора на OUT.
Из-за таких свойств М1, это позволяло использовать его на Z80-ОРИОНАХ, где нет дешифратора на OUT или есть "дохлота" в схеме, отчего OUT не проходят (тогда М2, М3, М4 не работают, а М1 работает). Также это полезно при поэтапной замене КР580 на Z80, где установка дешифратора на OUT, это последний этап доработки.
Да, ещё нюанс. Вывод звука во всех выложенных версиях - триггерный по OUT FF (так же сделано в Apple-II). Собственно звука, как такового, в М1 вообще нет (т.к нет звуковой подпрограммы F83F), речь, естественно о звуке клика клавиатуры. Если кого-то это не устраивает, то могу перетранслировать, чтобы звук выводился по биту МГ-OUT (это плохо, потому что по разному при РК и MS клавишах) или сделать подзвучку за счёт таймера ВИ53 стоящему по адресу F740.
- - - Добавлено - - -
Вложение этого поста удалено как устаревшее, более свежие версии есть в следующих постах http://zx-pk.ru/threads/6066-orion-1...l=1#post910453.




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