ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Ewgeny7, +1
тема из серии чистого теоретизирования.... неужели все так сразу пересядут?...![]()
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
"но сам процесс"?..![]()
Код процедуры переключения страницы, который я приводил здесь,
не мой, а, кажется, Кости Вербова (автора первой версии рам-диска).
Именно только процедуру переключения страниц я поместил на то же место в пзу в первозданном виде в своей версии прошивки (в таком виде в каком она была в первой версии кая-1024) ради обеспечения совместимости (например, драйвер верхней памяти в ALASM использует этот код в пзу для переключения страниц Кая).
Процедуру можно оптимизировать и сократить. Например так:
Итого сократил процедуру на 6 байт.Код:;на входе - Акк=номер страницы AND #3F ;номер страницы будет 0...63 LD C,A RLCA RLCA AND #C0 OR C ;+ (плюс 1 байт) ; LD B,A ;- ; LD A,C ;- ; OR B ;- (минус 3 байта) LD B,A EX AF,AF' LD A,B ; EX AF,AF' ;- (минус 1 байт) AND #87 ;10000111 d7,d0..d2 OR #10 ;00001000 ;rom1 LD BC,#7FFD OUT (C),A EX AF,AF' ; LD B,A ;- ; EX AF,AF' ;- ; LD A,B ;- (минус 3 байта) RLCA AND #90 ;10010000 d7,d4 LD B,#1F OUT (C),A RET
---------- Post added at 00:41 ---------- Previous post was at 00:28 ----------
А, и в прошивках там не RET в конце, а JP (HL), но это мелочи.
1. Ну драйвер в ALASM её юзает. Может еще какой специфичный софт для Кая эту процедуру юзает. Соображения, по которым я процедуру не менял, изложены выше.
2. Предсказывать неприятности не умею
3. Будет "железо" - будут выложены исходники.
ReVerSe u9 SKAY Memory mapping в аттаче.
Дешифрация портов для CPU3:Для #DEFD:Код:#1FFD/8189 0001111111111101 00xxxxxxxxxxxx01 - CPU3 Pag SysLo #7FFD/32765 0111111111111101 01xxxxxxxxxxxx01 - CPU3 Pag #DEFD/57085 1101111011111101 1101x1x0xxxx1101 #DEFD CPU3 Pag TSH 1101x11xxxxx1101 #DEFD CPU3 Pag TSL
TSH - разряды D3-D7
TSL - разряды D0-D2
Последний раз редактировалось Black_Cat; 16.02.2011 в 01:31.
Подскажите, автор здесь указал #10, а это вроде бы D4 бит. OCT (октет) 10 - это D3 бит. Эмулятор вроде бы выводит число 16. Это ошибка или что-то ещё?Код:OR #10 ;00001000 ;rom1
------------------------------
В общем, разобрался. Неправильно указано бинарное число в комментарии, %00010000 так правильно и OR #10 - правильно. И, вообще, на zxpress очень много опечаток, просто жуть, у них на KAY1024, D3 - текущее ПЗУ, D4 - активный экран. А на деле, наоборот. Да и разъём 96pin, а не 60, 62.
Последний раз редактировалось Biland; 19.05.2019 в 21:48.
unreal
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)