Обновил 1 и 2-й посты. Добавил последнюю(пока) версию "KAY Service ROM" от Дмитрия. Указал ссылки на правленные: прошивку ЛАСа 2002 года и актуальные прошивки для контроллера PS/2 клавы caro.
Обновил 1 и 2-й посты. Добавил последнюю(пока) версию "KAY Service ROM" от Дмитрия. Указал ссылки на правленные: прошивку ЛАСа 2002 года и актуальные прошивки для контроллера PS/2 клавы caro.
Speccy-2007 + 48k(пока) + TR-DOS + ZX-VGA
KAY-1024 v2010/SDCard HxC Floppy Emulator/Epson SD-700/ZX-VGA/.....
По поводу "KAY Service ROM" от Дмитрия.
Несколько замечаний и предложений.
Дмитрий наверное в курсе, что сервис-ром можно включать программно (бит D3 порта #1ffd).
Но вот эта конструкция в прошивке Дмитрия:
Код с адреса 0bh:
убивает всякую надежду вызвать сервис-ром программно.Код:xor a out (#fe),a ld bc,#1ffd out (c),a
1. Зачем обнулять 1ffd? По ресету он уже обнулен, если не ошибаюсь.
Из за этого обнуления невозможен программный запуск прошивки сервис-рома с помощью
так как там вы обнуляете #1ffd и мы в процессе выполнения программы в СЕРВИС-ПЗУ вместо сервис-рома вылетаем в 128 sos.Код:ld bc,#7ffd xor a out (c),a ld b,#1f ld a,8 out (c),a jp 0
2. Если необходимо при входе в сервис-ром жестко задать состояние порта #1ffd, то сделать это можно вот так:
Таким образом будет возможен переход в сервис ром при СБРОСЕ с нажатым Caps Shift, например, из моей прошивки 2002.Код:ld bc,#1ffd ld a,#fe in a,(#fe) bit 0,a ;проверяем нажатие Caps Shift ld a,8 jr z,$+3 ;если C.S нажат - то оставляем включенной пзу Сервис-ром xor a ;если не нажат - то обнуляем #1ffd out (c),a
P.S. может быть я что-то напутал с назначением битов порта 1ffd, за давностию лет многое забылось, но общая претензия именно такая.
Последний раз редактировалось Лас; 27.01.2011 в 14:39.
Лас, пожалуй вместо 0 лучше будет просто заслать туда 8 и все?
Три варианта:
1. Не трогать при инициализации порт #1ffd (нужно уточнить состояние порта по ресету, я не помню)
2. Заслать туда 8
3. Заслать 8, если нажат капс шифт.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Тогда просто не трогать порт:
Берем и патчим прошивку Дмитрия:
Обнуляем байт со смещением 12h.
Да, конечно, проверять надо будет только 5 младших бит, тоесть 0Ah, после маски 1Fh.Сообщение от ZEK
Поправил в исходнике.
Последний раз редактировалось caro; 27.01.2011 в 14:39.
Я тут поковырял более пристально прошивку Дмитрия и пришел к выводу, что, действительно, при инициализации сервис-рома оптимальным вариантом будет вариант, когда состояние порта 1ffd не меняется вообще (только при инициализации!). Без всяких проверок на нажатие капс шифт.
После инициализации прошивка переносится в ОЗУ и состояние 1ffd там далее устанавливается в необходимое. Поэтому - да, просто пропатчить прошивку, как указано тут или ждать авторской редакции.
Лас, сейчас поправлю, хотя думаю уж лучше бы ld a,8: out (c),a... Кроме того... в глюке есть хоткеи по сбросу CS - выход в SOS128 .... На что менять будем или уберем нафиг??? А то получим вечный цикл, пока на угад куда-нить вывалимся при отпускании CS.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)