ZXNet эхоконференция «code.zx»
тема: Драйвер памяти под ИСДОС
от: Oleg Grigoriev
кому: Sergey Kulkov
дата: 10 Dec 1998
Пусть враги твои, Sergey, умрут без сыновей!
08-11-98 в 00:43:00 Sergey Kulkov ═> Oleg Grigoriev:
SK> имеет место мегабайтный "Turbo 2+". Схема переключения странииц
SK> следующая:
Так бы сразу и сказал. :)
SK> ; а=физ. номер страницы
SK> push af
SK> and #38
SK> cpl
SK> ld bc,#fff7; мультиплексор страниц
SK> call dos
SK> pop af
SK> ld b,a
SK> and #18
SK> rlca
SK> rlca
SK> rlca
SK> ld c,a
SK> ld a,b
SK> and #07
SK> add a,c
SK> or #10
SK> ld bc,#7ffd
SK> out (c),a
Вопрос: ты точно уверен в необходимости дублирования d4, d5
номера страницы в d6, d7 #7ffd? Помоему это лишнее. Во всяком
случае я так никогда не делал и Paul Falcon (пока был жив) то-
же.
Смотри:
=== begin of file TURBO2P.txt ===
[skipped]
Примечание для любителей использовать все 1024к опреративки в SPECTRUM режиме.
Hиже приводится стандартная процедура переключения страниц 1024 к для SPECTRUM.
При вызове в A номер страницы 0-3FH (необходимо помнить что стек и вызывающая
программа не должны находится в адресах выше #C000)
SET_PAGE:
PUSH AF
AND 7 ;выделяем младшие 3 бита
OR #10 ;по усмотрению можно выбрать пзу и экран.
LD BC,#7FFD
OUT (C),A
POP AF
AND #38 ;маскируем все биты кроме 3х старших
CPL ;инверсия данных (бит выборки озу взводится)
LD BC,#2A53 ;в TR-DOS - OUT (C),A RET
PUSH BC
LD BC,#FFF7
JP #3D2F ;переход в TR-DOS
После любой подобной команды порт #7FFD отключается.
Если вы хотите корректно вернутся в SPECTRUM режим - выполните:
EXIT_1024:
LD A,#FF
LD BC,#2A53
PUSH BC
LD BC,#FFF7
JP #3D2F
дальнейшее управление страницами как обычно по порту #7FFD
[skipped]
=== end of file ===
[про мультиплексор]
SK> Вот вроде и все в основном. Буду весьма благодарен за всяческое
SK> содействие в работе.
Содействие? :) Я напишу, а ты проверишь. Вот и всё содейс-
твие. :)
С наилучшими пожеланиями, Олег aka Ruiner.
|