Вложений: 2
РФ2-Картридж для любимого РК
Выделилoсь отсюда
Как известно, разработчики консоли Famicon-NES сэкономили центами на микросхемах, что сказалось на последующем избыточном содержании многих картриджей.
Теоретически, для РЛК можно тоже разработать подобный картридж для замены им оригинальной РФ2…
Так как к РФ2 подходит лишь сигнал ЧТЕНИЯ, выбор страницы ПЗУ через ЗАПИСЬ никак, казалось бы, недостижим без дополнительных проводков…
Однако, можно прибегнуть к трюку как в старом анекдоте про «Ошибку записи при чтении»: Ячейки FFF0…FFFF зарезервировать под накопительный регистр.
Скажем, включить последовательно две микросхемы К155ИР1, чтобы биты с адреса A0…A4 записывались в регистры при чтении ячеек FFF0…FFFF.
Затем все 8 бит с этих двух регистров можно чтением из FF00…FFEF записать уже в сам К531ИР23 и активировать нужную страницу…
(Получается: две ИР1, одна ИР23, одна ЛА2 для старших бит адреса и ещё ЛА4 для ИР1…)
Как пример, вот набросок кода для этого дела:
Код:
; Аккумулятор - код страницы
Page_Select:
PUSH PSW
PUSH H
MVI H,0FFh
CALL Page_Switch
POP H
POP PSW
RET
Page_Switch:
PUSH PSW
RRC
RRC
RRC
RRC
CALL Page_Nibble
POP PSW
Page_Nibble:
ORI 0F0h
MOV L,A ; Код нужной страницы накапливается тетрадами
CMP M ; Чтением FFF0…FFFF заносим в накопительный регистр
RET
Пример вызовов:
Код:
MVI A,015h ; Странница подпрограммы F815
CALL Page_Select
MOV A,M
CALL 0FF00h ; Вызов подпрограммы
MVI A,04Dh ; Странница директивы M
CALL Page_Select
CALL 0FF00h ; Вызов подпрограммы
Следует также позаботиться о стеке вызовов страниц, чтобы вызывать из любых страниц произвольно другие страницы и корректно возвращаться. Но это уже вопрос программный…
Можно ещё больше сэкономить на регистрах/логике и все 256 ячеек FF00…FFFF отнять под выбор страницы:
Код:
PUSH H
LXI H,0FFFDh; Адрес входа в подпрограмму страницы
XTHL
PUSH H
LXI H,0FF15h; Код страницы
XTHL
RET ; Передача управления по адрес FEFD после FF15, где одни C9
В этом случае потребуется одна ЛА2 и один ИР23. Но это не совместимо с оригинальным ПЗУ, так как там подпрограммы обслуживания клавиатуры, отладки, текст и директива «X»…
Хотя, можно использовать две ИР23 - буферную и индексную.
В буферный регистр заносить по всем адресам (A8…A1), если на A0 логическая «1».
А в индексный регистр - только по FFFE.
Код:
?????XXX XXXXXXXX - ROM-Address
-------------------------------
???????X XXXXXXX1 - Prepare Page
?????111 1111111? - Select Page
Switch_Page:
PUSH H
PUSH D
MOV L,A
MVI H,07Fh
DAD H
INX H
LXI D,0FFFEh
MOV A,M ; <- Odd address only
LDAX D ; <- Even address only
POP D
POP H
RET
Можно, напротив, применить К555ИР8 и использовать лишь две ячейки - FFFE/FFFF.
Загружать индекс страницы в ИР23 можно через адреса FFF0…FFFD.
Тогда МОНИТОР будет практически полностью совместим на странице #0, а код страницы потребуется набирать по одному биту.
Данный вариант обеспечивает максимальную совместимость, но требует логики побольше и код переключения будет громоздок…
Словом, вариантов - очень много!
P.S.: По мере удачного развития темы подредактирую здесь зарезервированное…
Никаких дополнительных проводков быть не должно
Здeсь вся суть и фокус в том, чтобы "картридж" годился к использованию даже блондинками:wink:
То есть, никакой пайки использовать не требуется, никаких ножек отгибать не надо и никаких дополнительных проводков кидать не нужно…
Всего два действия:- Извлечь из панельки родное ПЗУ
- Вставить в освободившуюся панельку наше ПЗУ
Тем самым, "картридж" (в концепции данной темы) ничем не должен отличаться от К573РФ2 по разводке контактов и может быть исполнен макетной платкой с двумя микросхемами - 274096 и AM29M16…
Основной посыл темы в том, чтобы …
Цитата:
Сообщение от
NEO SPECTRUMAN
а так панельки ЯВНО не рассчитаны для вставляния в них "картриджей"
и 30-е вставляние будет для нее последним
Мeня не так поняли…:v2_dizzy_vodka4:
Речь здесь я веду про разовый картридж.
Термин картридж я использовал только в контексте того, что его достаточно всегда воткнуть в разъём и не требуется допаивать ничего.
Хотя, по сути, реальным сменным картриджем он и не является…
То есть, выдёргиваем родную РФ2 из панельки и вставляем наш гибрид на макетке из 274096+AM29M16 и всё! Один лишь раз…
Вопрос лишь в том, чтобы в ту 274096 записать все 512 Кб всевозможного ПО.
Программы МОНИТОР разных версий, Бейсики всех модификаций и т.д…
P.S.: Обратите внимание на основной посыл темы: Придумать заменитель только РФ2…
А на этом заменителе (пусть хоть он громоздок и длинным шлейфом в панельку вставится) разместить хоть Radeon или WiFi.:v2_dizzy_punk: