Отлично! С нетерпением ждём! Спасибо, что держишь в курсе! ;)
Вид для печати
Замакетил часть схемы из этой темы . Та схема ,что на рассыпухе , без SRAM . Т.е. замену ВК28/38 . Эксперементирую на Сябре с модулем ЦПУ i8080 , прошивка ПЗУ от Алексея Морозова с поддержкой его SD контроллера. Но сделал немного по своему . Сигналы управления шинами сделал в формате Z80 (/MREQ,/IORQ,/RD,/WR). Сигналы INTA\ и INT по схеме Mick .
Запускал схему по этапно . Сначала запустил работу с портами , потом занялся прерываниями .
С портами по IN/OUT работает без нареканий .
А вот с прерываниями засада . Когда подключил сигнал INT к процессору , компьютер перестал стартовать . В процессе выяснил , в прошивке по адресу #C006 код FB т.е. команда EI . Это в самом начале инициализации разрешаются прерывания , проц плучает запрос на прерывание , прыгает на #0038 , а там случайный код и привет нирвана .
Разомкнул сигнал INT (подтянут резистором к 0) . Подал питание комп стартует .Через Монитор по адресу #0038 прописываю F3 (DI - запретить прерывания ) и C9 . Замыкаю INT . Компьютер работает , жму RESET также работает . Значит прерывание отрабатывает .
Так как после сброса прерывания запрещены , исправил в ПЗУ код FB на 00 . Стартует штатно . Но оболочка SD контроллера теперь ч\б . Плохо помню , но кажется где то упоминалось про детект цвета на Специалисте по по команде EI . Видимо это тот случай .
Делаю вывод : надо либо аппаратно отключать прерывания , либо править существующий софт . Мне попалась первая программа и самая важная . Сколько ещё таких программ будет ?
Когда запускали и прокачивали Эрика я делал управление прерываниями ВКЛ\ВЫКЛ через прорт #FB .
Что скажите ?
Чтобы INT работал совместно с восьмицветом, необходимо делать защелку на систему начального пуска, как, например, сделано в Экспрессе. EI появилась в ПЗУ вместе с восьмицветом, когда систему НП пересадили на INTE.
В Сябре НП сделан именно через защёлку . И вывод INTE процессора не задействован . Прогонял другие программы , 8 цветов работают как и раньше . Проблема на данный момент с шелом SD контроллера .
Ах, вот оно что. Ну тогда проблема явно чисто софтовая.
Тогда уж логичнее не патчить патченое, а вернуть оригинальное журнальное ПЗУ, в котором изначально не было EI.
Да, это ivagor писал, что так определяет наличие восьмицвета. И если дело только в этом, то проблем пропатчить оболочку нет.
Полез в исходники оболочки, и конечно же нашёл вот это:
Код:setColorAutoDisable:
lxi h, 49152
shld memchr8_1
mvi a, 251
sta memchr8_2
mvi a, 16
call memchr8
; Сложение с константой 0
mov a, l
ora h
jnz l287
; 5 asm {
MVI A, 0C9h
STA setColor
l287:
ret
memchr8:
sta memchr8_3
; 2 asm {
; lda memchr8_3
mov d, a
lda memchr8_2
lhld memchr8_1
memchr8_l1:
; *dest = *src
cmp m
rz
inx h
dcr d
jnz memchr8_l1
xra a
mov h, a
mov l, a
ret
Для протокола. Я использовал сравнение сигнатуры из пзу для определения варианта цвета в одной версии одной игрушки в качестве proof of concept. Я понимал и понимаю, что в качестве регулярного средства это порочный подход и больше я его не использовал, делал отдельные версии.
- - - Добавлено - - -
И я сейчас посмотрел, как делал детект в той игрушке. Там сильно отличается от того, что сделал Алексей Морозов и с большой вероятностью на современных клонах, у которых начальный пуск без бита ВВ55 и без INTE и даже без EI в пзу игрушка должна переключаться в 8-цветный режим.
Что то непонятное творится с нашей сортировочной. 23 числа в приложении пожаловался на непонятные задержки. 24 сентября сменили на Сортировку и опять зависон.
Вот не пойму что так - такое в первый раз происходит. Блин досада, вроде как платы и пришли в город, а получить не могу. Сразу вспоминается мультик про Печкина, посылка есть, а не отдам. :(