...
This commit is contained in:
parent
5791d4e591
commit
4e20113d78
@ -1 +1 @@
|
||||
Subproject commit b541d4221846090878c1de0138977e28139f7d14
|
||||
Subproject commit aca9ce3f859bf53c76b0d710e108543226697f91
|
||||
@ -754,12 +754,12 @@ EXP_FNS:;
|
||||
|
||||
;! ! ! ! ! ! ! !
|
||||
FN_RESERVED_5x:
|
||||
LD A,1 ;!HARDCODE error code
|
||||
LD A,BIOS.Error.InvalidSubFunction
|
||||
FN_RESERVED:
|
||||
SCF
|
||||
RET
|
||||
FN_ABSENT_5x:
|
||||
LD A,#AA ;!HARDCODE error code
|
||||
LD A,BIOS.Error.NotSupported
|
||||
SCF
|
||||
RET
|
||||
;! ! ! ! ! ! ! !
|
||||
|
||||
@ -768,10 +768,10 @@ set_config:
|
||||
OUT (RGADR),A
|
||||
OUT (RGMOD),A
|
||||
OUT (SLOT3),A
|
||||
OUT (SLOT0),A
|
||||
LD A,5 ; !HARDCODE page 5
|
||||
OUT (SLOT0),A ;!HARDCODE zx page number
|
||||
LD A,5 ;!HARDCODE zx page number
|
||||
OUT (SLOT1),A
|
||||
LD A,2 ; !HARDCODE page 2
|
||||
LD A,2 ;!HARDCODE zx page number
|
||||
OUT (SLOT2),A
|
||||
|
||||
;*********************************
|
||||
|
||||
@ -129,7 +129,8 @@ CD_5x_Extended:
|
||||
JR C,TRAY_FN
|
||||
; ...
|
||||
; ...
|
||||
LD A,#AA ;!HARDCODE error code
|
||||
;LD A,#AA
|
||||
LD A,BIOS.Error.InvalidSubFunction
|
||||
SCF
|
||||
RET
|
||||
;[]================================================================[#5E]
|
||||
@ -263,9 +264,10 @@ AP_COM: EXX
|
||||
SCF
|
||||
RET
|
||||
.NO_ERR:
|
||||
BIT IDE.ControlBit.DataRequest,A
|
||||
LD A,BIOS.Error.NoErrors
|
||||
RET Z ;NO DATA REQUEST
|
||||
;BIT IDE.ControlBit.DataRequest,A
|
||||
AND IDE.ControlByte.DataRequest
|
||||
;LD A,BIOS.Error.NoErrors
|
||||
RET Z ;NO DATA REQUEST A = 0: BIOS.Error.NoErrors
|
||||
EX DE,HL
|
||||
LD BC,IDE.Read.CylinderLow
|
||||
IN E,(C)
|
||||
|
||||
@ -178,7 +178,7 @@ EMM.GetMem: PUSH BC
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
.noRAM: LD L,1 ; !HARDCODE bios errors <20>…’ <20>€ŒŸ’ˆ
|
||||
.noRAM: LD L,BIOS.Error.EMM.NoMemory
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
@ -207,7 +207,7 @@ EMM.GetMemRMD:
|
||||
CALL BLK_TO_RAMD
|
||||
RET NC
|
||||
.error2:
|
||||
LD L,2 ; RAM-Disk § ïâ ;!HARDCODE error number ;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ ਠâë ®è¨¡®ª ¨ ¨å ®¬¥à ª ª ¤«ï „‘‘
|
||||
LD L,BIOS.Error.BadNumber ; RAM-Disk § ïâ
|
||||
LD A,L
|
||||
RET
|
||||
.error1:
|
||||
|
||||
@ -399,10 +399,10 @@ REINIT: DEC B
|
||||
OUT (C),A
|
||||
OUT (RGADR),A
|
||||
OUT (RGMOD),A
|
||||
OUT (SLOT0),A
|
||||
LD A,5
|
||||
OUT (SLOT0),A ;!HARDCODE zx page number
|
||||
LD A,5 ;!HARDCODE zx page number
|
||||
OUT (SLOT1),A
|
||||
LD A,2
|
||||
LD A,2 ;!HARDCODE zx page number
|
||||
OUT (SLOT2),A
|
||||
LD A,DCP_PAGE
|
||||
OUT (SLOT3),A
|
||||
|
||||
@ -3,63 +3,75 @@
|
||||
|
||||
|
||||
; [ ] free zx pages!
|
||||
; ????? SYS_PAGE.SHARED_BUFFER_256b
|
||||
IF FREE_ZX_PAGES
|
||||
;----------------[‚뤥«¥¨¥/®á¢®¡®¦¤¥¨¥ áâà ¨æ ᯥªâà㬠]-------------;
|
||||
;¢å®¤: ॣ B b3..0:
|
||||
; 0 - ¨¨â ¯ ¬ï⨠Pentagon 128
|
||||
; 1 - ¨¨â ¯ ¬ï⨠Pentagon 512
|
||||
; 2 - ¨¨â ¯ ¬ï⨠Scorpion 256
|
||||
; ॣ B b7:
|
||||
; ¢ë¤¥«¨âì/¢¥àãâì à ¬¡«®ª ¤«ï áâà ¨æ ZX-ROM à §¬¥à®¬ A áâà.
|
||||
;¢ë室: CF = 0: A - ®¬¥à à ¬¡«®ª ¥á«¨ âॡ®¢ «áï
|
||||
;¢å®¤: ॣ B: 0 - ¨¨â ¯ ¬ï⨠Spectrum 48k
|
||||
; 1 - ¨¨â ¯ ¬ï⨠Pentagon 128k
|
||||
; 2 - ¨¨â ¯ ¬ï⨠Pentagon 512k
|
||||
; 3 - ¨¨â ¯ ¬ï⨠Scorpion 256k
|
||||
; ॣ A: âॡ㥬®¥ ª®«-¢® áâà ¨æ ¤«ï vROM
|
||||
;
|
||||
;¢ë室: CF = 0: A - ®¬¥à à ¬¡«®ª
|
||||
; CF = 1: A - ®¬¥à ®è¨¡ª¨
|
||||
MANAGE_ZX_PAGES:
|
||||
|
||||
|
||||
.GET_SCORP: IN A,(SLOT3)
|
||||
PUSH AF
|
||||
LD E,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||
LD DE,SYS_PAGE.SHARED_BUFFER_256b
|
||||
LD BC,SYS_PAGE.RAMD_FAT.Size
|
||||
LDIR
|
||||
DEC H
|
||||
; ¯à®¢¥à¨âì «¨ç¨¥ ᢮¡®¤ëå áâà ¨æ ᪮à¯
|
||||
; B = ª®«¨ç¥á⢮ áâà ¨æ
|
||||
LD B,8
|
||||
XOR A
|
||||
; ‡ ¯®«¨âì RAMD_FAT
|
||||
; A = 0
|
||||
.loop2: DEC L
|
||||
.check_loop: DEC L
|
||||
JR Z,.error_no_mem
|
||||
CP (HL)
|
||||
JR NZ,.loop2
|
||||
JR NZ,.check_loop
|
||||
;
|
||||
.check_barred_pages:
|
||||
; ¯à®¢¥àª ¥à §à¥èñë¥ áâà ¨æë
|
||||
EX AF,AF'
|
||||
LD A,L
|
||||
CP RESET_PAGE
|
||||
JR C,.good_page
|
||||
JR NZ,.check_isa_page
|
||||
DEC L
|
||||
JR .good_page
|
||||
.check_isa_page: ;
|
||||
AND #F0
|
||||
XOR #D0 ; áâà ¨æë ISA #D0..#DF
|
||||
JR NZ,.good_page
|
||||
LD L,#D0 - 1
|
||||
.good_page: EX AF,AF'
|
||||
CALL .check_barred_pages
|
||||
LD A,0
|
||||
JR Z,.check_loop
|
||||
DJNZ .check_loop
|
||||
; A = 0
|
||||
; ¢ë¤¥«¨âì áâà ¨æë ᪮à¯
|
||||
LD B,8
|
||||
.allocate_loop: DEC L
|
||||
CP (HL)
|
||||
JR NZ,.allocate_loop
|
||||
;
|
||||
CALL .check_barred_pages
|
||||
LD A,0
|
||||
JR Z,.allocate_loop
|
||||
;
|
||||
LD (HL),C
|
||||
LD C,L
|
||||
DJNZ .loop2
|
||||
; L = 㪠§ â¥«ì æ¥¯®çª¨.
|
||||
;
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD A,L
|
||||
DJNZ .allocate_loop
|
||||
; L = 㪠§ â¥«ì æ¥¯®çª¨.
|
||||
AND A
|
||||
.exit: LD A,E
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
RET
|
||||
; 䨫ìâà ¤«ï áâà ¨æ ᪮à¯
|
||||
;¢ë室: ZF=1 - áâà ¨æ ¥ ¯®¤å®¤¨â
|
||||
.check_barred_pages:
|
||||
; check reset page
|
||||
LD A,L
|
||||
CP RESET_PAGE
|
||||
RET C
|
||||
RET Z
|
||||
; check isa page
|
||||
AND #F0
|
||||
XOR #D0 ; áâà ¨æë ISA #D0..#DF
|
||||
RET NZ
|
||||
LD L,#D0
|
||||
RET
|
||||
;
|
||||
.error_no_mem: LD L,BIOS.Error.EMM.NoMemory
|
||||
SCF
|
||||
JR .exit
|
||||
;-----------------------------------------------------------------------;
|
||||
ENDIF
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user