Memory driver for ISDOS
ZXNet echo conference «code.zx»
From Oleg Grigoriev → To Sergey Kulkov 10 December 1998
Let your enemies, Sergey, die without sons!
08-11-98 at 00:43:00 Sergey Kulkov ═> Oleg Grigoriev:
SK> megabyte "Turbo 2+" takes place. Page switching scheme
SK> next:
I would have said so right away. :)
SK> ; a=physical page number
SK> push af
SK> and #38
SK> cpl
SK> ld bc,#fff7; page multiplexer
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
Question: are you sure about the need to duplicate d4, d5
page numbers in d6, d7 #7ffd? I think this is unnecessary. Anyway
case, I never did that and Paul Falcon (while he was alive) then-
same.Look:
=== begin of file TURBO2P.txt ===
[skipped]
Note for those who like to use all 1024k operatives in SPECTRUM mode.
Below is the standard procedure for switching 1024k pages for SPECTRUM.
When calling in A, the page number is 0-3FH (remember that the stack and the calling
the program should not be located in addresses above #C000)
SET_PAGE:
PUSH AF
AND 7 ;select the least significant 3 bits
OR #10 ;you can choose ROM and screen at your discretion.
LD BC,#7FFD
OUT(C),A
POP AF
AND #38 ;mask all bits except the 3 most significant ones
CPL ;data inversion (RAM sample bit is set)
LD BC,#2A53 ;in TR-DOS - OUT (C),A RET
PUSH BC
LD BC,#FFF7
JP #3D2F ;transition to TR-DOS
After any such command, port #7FFD is disabled.
If you want to correctly return to SPECTRUM mode, run:
EXIT_1024:
LD A,#FF
LD BC,#2A53
PUSH BC
LD BC,#FFF7
JP #3D2F
further page management as usual via port #7FFD
[skipped]
=== end of file ===
[about the multiplexer]
SK> That's basically it. I will be very grateful for anything
SK> assistance in work.Assistance? :) I'll write and you'll check. That's all
twee. :)
Best wishes, Oleg aka Ruiner.