Обновил 1 и 2-й посты. Добавил последнюю(пока) версию "KAY Service ROM" от Дмитрия. Указал ссылки на правленные: прошивку ЛАСа 2002 года и актуальные прошивки для контроллера PS/2 клавы caro.
Вид для печати
Обновил 1 и 2-й посты. Добавил последнюю(пока) версию "KAY Service ROM" от Дмитрия. Указал ссылки на правленные: прошивку ЛАСа 2002 года и актуальные прошивки для контроллера PS/2 клавы caro.
По поводу "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, за давностию лет многое забылось, но общая претензия именно такая.
Лас, пожалуй вместо 0 лучше будет просто заслать туда 8 и все?
Три варианта:
1. Не трогать при инициализации порт #1ffd (нужно уточнить состояние порта по ресету, я не помню)
2. Заслать туда 8
3. Заслать 8, если нажат капс шифт.
Тогда просто не трогать порт:
Берем и патчим прошивку Дмитрия:
Обнуляем байт со смещением 12h.
Да, конечно, проверять надо будет только 5 младших бит, тоесть 0Ah, после маски 1Fh.Цитата:
Сообщение от ZEK
Поправил в исходнике.
Я тут поковырял более пристально прошивку Дмитрия и пришел к выводу, что, действительно, при инициализации сервис-рома оптимальным вариантом будет вариант, когда состояние порта 1ffd не меняется вообще (только при инициализации!). Без всяких проверок на нажатие капс шифт.
После инициализации прошивка переносится в ОЗУ и состояние 1ffd там далее устанавливается в необходимое. Поэтому - да, просто пропатчить прошивку, как указано тут или ждать авторской редакции. :)
Лас, сейчас поправлю, хотя думаю уж лучше бы ld a,8: out (c),a... Кроме того... в глюке есть хоткеи по сбросу CS - выход в SOS128 .... :) На что менять будем или уберем нафиг??? А то получим вечный цикл, пока на угад куда-нить вывалимся при отпускании CS.