User Tag List

Показано с 1 по 9 из 9

Тема: Картридж для любимого РК

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb РФ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.: По мере удачного развития темы подредактирую здесь зарезервированное…
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	rk86-cartridge.jpg 
Просмотров:	90 
Размер:	22.5 Кб 
ID:	71321   Нажмите на изображение для увеличения. 

Название:	rk86-super-cartridge.jpg 
Просмотров:	81 
Размер:	24.1 Кб 
ID:	71322  
    Последний раз редактировалось Радио-86РК; 18.01.2020 в 03:57.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Картридж с играми для ДЕЛЬТА-С
    от ZX1997 в разделе Дельта-С
    Ответов: 42
    Последнее: 26.03.2022, 22:32
  2. Универсальный картридж для Dendy
    от Addison в разделе Nintendo
    Ответов: 152
    Последнее: 01.09.2020, 03:56
  3. Картридж для ZX Spectrum
    от CityAceE в разделе ZX Концепции
    Ответов: 243
    Последнее: 23.03.2018, 21:54
  4. Ответов: 2
    Последнее: 15.12.2010, 17:04
  5. Люблю себя любимого....
    от rasmer в разделе Поздравления
    Ответов: 4
    Последнее: 12.10.2005, 15:45

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •