-bug with zx_screen in func_ram_rom_drv.asm
This commit is contained in:
parent
fe3456f584
commit
6d2385871e
@ -711,23 +711,24 @@ FN_5x_Parser:
|
||||
|
||||
; ‚室 ¢ äãªæ¨¨ <20>ˆŽ‘ ¨§ TR-DOS
|
||||
EXP_FNS:; ®âª«îç ¥¬ § ¯¨áì ¢ íªà ᯥªâàã¬
|
||||
EX (SP),HL
|
||||
IN A,(RGADR)
|
||||
LD L,A
|
||||
LD A,#C0
|
||||
OUT (PORT_Y),A
|
||||
LD A,H
|
||||
EX (SP),HL ; (SP) = port_y
|
||||
;EX (SP),HL
|
||||
;IN A,(RGADR)
|
||||
;LD L,A
|
||||
;LD A,#C0
|
||||
;OUT (PORT_Y),A
|
||||
;LD A,H
|
||||
;EX (SP),HL ; (SP) = port_y
|
||||
POP AF
|
||||
;
|
||||
CALL EXP_FNS_RST18
|
||||
CALL DOS_ON
|
||||
; ¢®§¢à é ¥¬ § ¯¨áì ¢ íªà ᯥªâàã¬
|
||||
EX (SP),HL
|
||||
PUSH AF
|
||||
LD A,L
|
||||
OUT (RGADR),A
|
||||
POP AF
|
||||
POP HL
|
||||
;EX (SP),HL
|
||||
;PUSH AF
|
||||
;LD A,L
|
||||
;OUT (RGADR),A
|
||||
;POP AF
|
||||
;POP HL
|
||||
; ¢®§¢à â
|
||||
JP EXP_FNS_RET
|
||||
|
||||
|
||||
@ -30,18 +30,18 @@ EMM.GetMemSize:
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR +
|
||||
; ˆ¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ïâ¨.
|
||||
EMM.InitMem:
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
LD C,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000 ; €¤à¥á FAT އ“.
|
||||
OUT (SLOT3),A
|
||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 ; €¤à¥á FAT އ“.
|
||||
; ®¡ã«ï¥¬ â ¡«¨æã
|
||||
XOR A
|
||||
.loopFree:
|
||||
@ -68,20 +68,20 @@ EMM.InitMem:
|
||||
LD (HL),A
|
||||
; ˆ¨æ¨ «¨§ æ¨ï ª«î祩 RAM-Disks
|
||||
XOR A
|
||||
LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000
|
||||
LD HL,SYS_PAGE.RAMD_KEYS; - #4000 - #4000
|
||||
LD B,SYS_PAGE.RAMD_KEYS.NUM
|
||||
.loop2: LD (HL),A
|
||||
INC L
|
||||
DJNZ .loop2
|
||||
; [x] 4/11/23
|
||||
LD HL,SYS_PAGE.Sp_RAMD_KEYS - #4000 - #4000
|
||||
LD HL,SYS_PAGE.Sp_RAMD_KEYS; - #4000 - #4000
|
||||
LD B,SYS_PAGE.Sp_RAMD_KEYS.NUM
|
||||
.loop3: LD (HL),A
|
||||
INC L
|
||||
DJNZ .loop3
|
||||
;
|
||||
LD A,C
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
POP DE
|
||||
POP HL
|
||||
POP BC
|
||||
@ -115,7 +115,7 @@ RESERVED_PAGES:
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR +
|
||||
; <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes,
|
||||
; ‚室: B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢
|
||||
; ‚ë室: L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨
|
||||
@ -124,12 +124,12 @@ RESERVED_PAGES:
|
||||
EMM.GetMem:
|
||||
;PUSH DE
|
||||
PUSH BC
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD C,B ; á®åà ¨âì ç¨á«® ã¦ëå ¡«®ª®¢
|
||||
LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000
|
||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||
; –¨ª« ¯à®¢¥àª¨ «¨ç¨ï ã¦ëå ¡«®ª®¢.
|
||||
.loop: DEC L
|
||||
JR Z,.noRAM
|
||||
@ -141,7 +141,7 @@ EMM.GetMem:
|
||||
; Œ¥áâ® ¥áâì !
|
||||
LD B,C ; ‚®ááâ ®¢¨âì ã¦ë© ®¡ê¥¬ ¤¨áª
|
||||
LD C,#FF ; Œ…’Š€ ŠŽ<C5A0>–€ RAM-Disk
|
||||
LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000
|
||||
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||
|
||||
; ‡ ¯®«¨âì RAMD_FAT
|
||||
.loop2: DEC L
|
||||
@ -154,7 +154,7 @@ EMM.GetMem:
|
||||
|
||||
; L - 㪠§ â¥«ì æ¥¯®çª¨.
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
AND A
|
||||
POP BC
|
||||
@ -163,7 +163,7 @@ EMM.GetMem:
|
||||
|
||||
.noRAM: LD L,1 ; <20>…’ <20>€ŒŸ’ˆ
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
SCF
|
||||
POP BC
|
||||
@ -212,13 +212,14 @@ EMM.FreeMemRMD:
|
||||
SCF
|
||||
RET Z
|
||||
LD C,A
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
LD B,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD H,high SYS_PAGE.RAMD_FAT; - #4000 - #4000
|
||||
LD (HL),0
|
||||
LD A,B
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD A,C
|
||||
;JR EMM.FreeMem
|
||||
;------[
|
||||
@ -231,12 +232,12 @@ EMM.FreeMem:
|
||||
RET Z
|
||||
|
||||
LD L,A
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000) ; !FIXIT SAFE_RGADR
|
||||
LD H,high (SYS_PAGE.RAMD_FAT); - #4000 - #4000) ; !FIXIT SAFE_RGADR +
|
||||
LD A,L
|
||||
EMM_F3M_L1:
|
||||
LD L,A
|
||||
@ -248,14 +249,14 @@ EMM_F3M_L1:
|
||||
JR NZ,EMM_F3M_L1 ; ¯à®¤®«¦ âì
|
||||
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
LD A,0 ;!FIXIT ¥¤®ªã¬¥â¨à®¢ ®
|
||||
AND A
|
||||
OUT (SLOT3),A
|
||||
XOR A ;!FIXIT ¥¤®ªã¬¥â¨à®¢ ®
|
||||
;AND A
|
||||
RET
|
||||
|
||||
EMM_FN3M_ERR:
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD A,2 ;!FIXIT ¥¤®ªã¬¥â¨à®¢ ®
|
||||
SCF
|
||||
RET
|
||||
@ -446,11 +447,20 @@ BLK_RD_WR:
|
||||
LD C,A
|
||||
LD A,R
|
||||
PUSH AF
|
||||
; á®åà 塞 PORT_Y
|
||||
IN A,(PORT_Y)
|
||||
PUSH AF
|
||||
LD A,#C0
|
||||
OUT (PORT_Y),A
|
||||
;
|
||||
LD A,C
|
||||
DI
|
||||
CALL .start
|
||||
; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
EX AF,AF'
|
||||
; ¢®ááâ ¢«¨¢ ¥¬ PORT_Y
|
||||
POP AF
|
||||
OUT (PORT_Y),A
|
||||
; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
||||
POP AF
|
||||
JP PO,.noInterrupts
|
||||
EI
|
||||
@ -931,7 +941,7 @@ GET_RAMD_ST:
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR +
|
||||
; RAM-Disk A, BLK - B
|
||||
BLK_TO_RAMD:
|
||||
CP SYS_PAGE.RAMD_KEYS.NUM
|
||||
@ -941,12 +951,12 @@ BLK_TO_RAMD:
|
||||
PUSH HL
|
||||
LD L,A
|
||||
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
LD C,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000
|
||||
LD HL,SYS_PAGE.RAMD_KEYS; - #4000 - #4000
|
||||
ADD A,L
|
||||
LD L,A
|
||||
LD A,(HL) ; ª«îç ¡«®ª
|
||||
@ -955,17 +965,16 @@ BLK_TO_RAMD:
|
||||
LD (HL),B
|
||||
|
||||
LD A,C
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD A,B
|
||||
AND A
|
||||
POP HL
|
||||
RET
|
||||
|
||||
;
|
||||
BLK_BUSY:
|
||||
LD A,C
|
||||
OUT (SLOT1),A
|
||||
|
||||
OUT (SLOT3),A
|
||||
SCF
|
||||
POP HL
|
||||
RET
|
||||
@ -975,7 +984,7 @@ BLK_BUSY:
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR +
|
||||
; RAM-Disk A
|
||||
RAMD_CLEAR:
|
||||
CP SYS_PAGE.RAMD_KEYS.NUM
|
||||
@ -985,12 +994,12 @@ RAMD_CLEAR:
|
||||
PUSH HL
|
||||
LD L,A
|
||||
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
LD C,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 ; RAM-Disk ᢮¡®¤¥
|
||||
LD HL,SYS_PAGE.RAMD_KEYS; - #4000 - #4000 ; RAM-Disk ᢮¡®¤¥
|
||||
ADD A,L
|
||||
LD L,A
|
||||
LD B,A ; § ¯®¬¨âì 㤠«ï¥¬ë© à ¬¤¨áª
|
||||
@ -999,7 +1008,7 @@ RAMD_CLEAR:
|
||||
JR Z,BLK_BUSY ; ¢®§¢à â á ®è¨¡ª®©
|
||||
LD (HL),0
|
||||
LD A,C
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
|
||||
AND A
|
||||
POP HL
|
||||
@ -1010,7 +1019,7 @@ RAMD_CLEAR:
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR +
|
||||
; à §¤¥«¨âì ¡«®ª ¯ ¬ï⨠¤¢ ¡«®ª
|
||||
; A - ¡«®ª, B - ¤«¨ ¯¥à¢®£® ¡«®ª ¯®á«¥ à §¤¥«¥¨ï
|
||||
; ¢ë室: A - ¡«®ª 1, B - ¡«®ª 2
|
||||
@ -1025,19 +1034,19 @@ EMM.DivMemBlocks:
|
||||
RET C
|
||||
LD D,A
|
||||
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
||||
LD H,high (SYS_PAGE.RAMD_FAT); - #4000 - #4000)
|
||||
LD L,D
|
||||
LD A,(HL)
|
||||
LD (HL),#FF
|
||||
LD B,A
|
||||
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD A,E
|
||||
AND A
|
||||
@ -1048,17 +1057,17 @@ EMM.DivMemBlocks:
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR
|
||||
;----------------------------------------------------------------------; !FIXIT SAFE_RGADR +
|
||||
; ᫨âì ¤¢ ¡«®ª ¯ ¬ï⨠¢ ®¤¨
|
||||
; € - ¡«®ª 1, B - ¡«®ª 2
|
||||
; ¢ë室: € - ¡«®ª
|
||||
EMM.MergeMemBlocks:
|
||||
LD E,A
|
||||
IN A,(SLOT1)
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
||||
OUT (SLOT3),A
|
||||
LD H,high (SYS_PAGE.RAMD_FAT); - #4000 - #4000)
|
||||
LD L,E
|
||||
LD C,B
|
||||
LD B,0
|
||||
@ -1073,7 +1082,7 @@ EMM.MergeMemBlocks:
|
||||
|
||||
.EMM_ADD_ERR:
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
SCF
|
||||
RET
|
||||
|
||||
@ -1083,7 +1092,7 @@ EMM.MergeMemBlocks:
|
||||
JR Z,.EMM_ADD_ERR
|
||||
LD (HL),A
|
||||
EX AF,AF'
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT3),A
|
||||
AND A
|
||||
LD A,E
|
||||
RET
|
||||
|
||||
@ -421,8 +421,9 @@ TURBO_ON:
|
||||
|
||||
CLEAR_RAM:
|
||||
DI
|
||||
LD C,BIOS.FullInit
|
||||
LD C,BIOS.FullInit
|
||||
RST_to_BIOS
|
||||
;CALL ToBIOS_3D13
|
||||
; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥î ᯥªâà㬠¢®§¢à â ¢ DSS ¯® CAD
|
||||
; ¡ã¤¥â ®¯ áë¬ (RAM Blocks ®á¢®¡®¤¨«¨áì),
|
||||
; ¯®í⮬㠮⪫îç ¥¬ ¯¥à¥å¢ â à¥á¥â .
|
||||
|
||||
@ -63,6 +63,7 @@ CLEAR_RAM:
|
||||
DI
|
||||
LD C,BIOS.FullInit
|
||||
RST_to_BIOS
|
||||
;CALL ToBIOS_3D13
|
||||
; ¯à¨ ®ç¨á⪥ ¯ ¬ï⨠¨§ ¬¥î ᯥªâà㬠¢®§¢à â ¢ DSS ¯® CAD
|
||||
; ¡ã¤¥â ®¯ áë¬ (RAM Blocks ®á¢®¡®¤¨«¨áì),
|
||||
; ¯®í⮬㠮⪫îç ¥¬ ¯¥à¥å¢ â à¥á¥â .
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user