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