+-RST_CONF.INIT_ACEX ; New function "SWAP_RAM_DRIVES" for changing RAM-DRV set ZX<->Sp2000
This commit is contained in:
parent
730aae8a89
commit
fe3456f584
@ -1 +1 @@
|
||||
Subproject commit 8c5550f810d173790e4665d610328b9247b00f02
|
||||
Subproject commit 809ea1f0b204f2d56555497c1c808806833d6315
|
||||
@ -132,11 +132,11 @@ TAB_FNS:
|
||||
DB low EMM.GetMemPageNext ; #95 ¯®«ãç¨âì á«¥¤ãîéãî áâà ¨æã
|
||||
DB low EMM.GetBanksPorts ; #96 ¯®«ãç¨âì ¤à¥á ¯®à⮢
|
||||
DB low EMM.CheckColdInit ; #97 ¯à®¢¥àª 宫®¤ë© áâ àâ ¨ ¨¨æ¨ «¨§ 樨 ¥á«¨ ® ;????? 㦠«¨ ª ª API?
|
||||
DB low RAMD_CALC_PAGE ; #98 Fn 98h ;?????
|
||||
DB low RAMD_CALC_PAGE ; #98 ‚ëç¨á«¥¨¥ áâà ¨æë ¨ ¤à¥á ¢ RAM-Disk ¯® ¡á®«î⮬㠮¬¥àã ᥪâ®à
|
||||
DB low SET_DISK_TYPE ; #99 ;?????
|
||||
DB low DISK_REDIR ; #9A ;?????
|
||||
DB low GET_RAMD_NUM ; #9B ¯®«ãç¨âì ®¬¥à ram disk ¯® ¥£® block id
|
||||
DB low FN_RESERVED ; #9C
|
||||
DB low SWAP_RAM_DRIVES ; #9C ᬥ¨âì ¡®à à ¬¤¨áª®¢ ZX <-> Sp2000
|
||||
DB low EMM.DivMemBlocks ; #9D à §¤¥«¥¨ï ¡«®ª ¤¢ .
|
||||
DB low EMM.MergeMemBlocks ; #9E ᫨逸 ¤¢ãå ¡«®ª®¢
|
||||
DB low EMM.FullInit ; #9F ¨¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬ëå ¯¥à¥¬¥ëå
|
||||
@ -327,8 +327,8 @@ TAB_FNS:
|
||||
DB high RAMD_CALC_PAGE
|
||||
DB high SET_DISK_TYPE
|
||||
DB high DISK_REDIR
|
||||
DB high FN_RESERVED
|
||||
DB high FN_RESERVED
|
||||
DB high GET_RAMD_NUM
|
||||
DB high SWAP_RAM_DRIVES
|
||||
DB high EMM.DivMemBlocks
|
||||
DB high EMM.MergeMemBlocks
|
||||
DB high EMM.FullInit
|
||||
|
||||
@ -64,11 +64,8 @@
|
||||
;=============================================================
|
||||
MACRO TEST_40
|
||||
;[x] ¢ª«î稫 31/10/23, ç¨áâ® •í««®ããã㨨¨
|
||||
EX AF,AF'
|
||||
JR C,.LLL
|
||||
INC D ; ०¨¬ 40
|
||||
.LLL:
|
||||
EX AF,AF'
|
||||
;
|
||||
|
||||
;
|
||||
ENDM
|
||||
|
||||
|
||||
@ -43,8 +43,9 @@ EMM.InitMem:
|
||||
OUT (SLOT1),A
|
||||
LD HL,SYS_PAGE.RAMD_FAT - #4000 - #4000 ; €¤à¥á FAT އ“.
|
||||
; ®¡ã«ï¥¬ â ¡«¨æã
|
||||
XOR A
|
||||
.loopFree:
|
||||
LD (HL),0
|
||||
LD (HL),A
|
||||
INC L
|
||||
JR NZ,.loopFree
|
||||
; १¥à¢¨à㥬 ᯥæ.áâà ¨æë ¨ áâà ¨æë ZX
|
||||
@ -66,14 +67,21 @@ EMM.InitMem:
|
||||
LD L,A
|
||||
LD (HL),A
|
||||
; ˆ¨æ¨ «¨§ æ¨ï ª«î祩 RAM-Disks
|
||||
XOR A
|
||||
LD HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000
|
||||
LD B,SYS_PAGE.RAMD_KEYS.NUM
|
||||
.loop2: LD (HL),0
|
||||
.loop2: LD (HL),A
|
||||
INC L
|
||||
DJNZ .loop2
|
||||
; [x] 4/11/23
|
||||
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
|
||||
|
||||
POP DE
|
||||
POP HL
|
||||
POP BC
|
||||
@ -345,38 +353,6 @@ EMM.GetMemPageNext:
|
||||
; ‚室: A - ¡«®ª, HL - ¤à¥á ¡ãä¥à - 256 ¡ ©â.
|
||||
; ‚ë室: HL - ¤à¥á ¡«®ª , B - ¤«¨ ¡«®ª ¢ áâà ¨æ å Ž‡“
|
||||
;EMM_FN5M:
|
||||
; EMM.GetMemBlkPages:
|
||||
; PUSH DE
|
||||
; PUSH HL
|
||||
; EX DE,HL
|
||||
; LD B,0
|
||||
; LD L,A
|
||||
|
||||
; .loop: LD A,L
|
||||
; LD (DE),A
|
||||
; INC DE
|
||||
; AND A
|
||||
; JR Z,.error
|
||||
; CP #FF
|
||||
; JR Z,.end
|
||||
; ;
|
||||
; IN A,(SLOT1)
|
||||
; LD C,A
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (SLOT1),A
|
||||
; LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
||||
; LD L,(HL)
|
||||
; LD A,C
|
||||
; OUT (SLOT1),A
|
||||
; ;
|
||||
; INC B
|
||||
; JR NZ,.loop
|
||||
|
||||
; .error: SCF
|
||||
; .end: POP HL
|
||||
; POP DE
|
||||
; RET
|
||||
|
||||
EMM.GetMemBlkPages:
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
@ -384,11 +360,6 @@ EMM.GetMemBlkPages:
|
||||
LD B,0
|
||||
LD L,A
|
||||
|
||||
IN A,(SLOT1)
|
||||
LD C,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
|
||||
.loop: LD A,L
|
||||
LD (DE),A
|
||||
INC DE
|
||||
@ -397,17 +368,55 @@ EMM.GetMemBlkPages:
|
||||
CP #FF
|
||||
JR Z,.end
|
||||
;
|
||||
IN A,(SLOT1)
|
||||
LD C,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
||||
LD L,(HL)
|
||||
LD A,C
|
||||
OUT (SLOT1),A
|
||||
;
|
||||
INC B
|
||||
JR NZ,.loop
|
||||
|
||||
.error: SCF
|
||||
.end: LD A,C
|
||||
OUT (SLOT1),A
|
||||
POP HL
|
||||
.end: POP HL
|
||||
POP DE
|
||||
RET
|
||||
|
||||
; RAMDRV.EXE ¢ë§ë¢ ¥â íâã äãªæ¨î á ¤à¥á®¬ ¢ SLOT1, ¯®í⮬㠫ãçè¥ â ª ¥ ®¯â¨¬¨§¨à®¢ âì
|
||||
; EMM.GetMemBlkPages:
|
||||
; PUSH DE
|
||||
; PUSH HL
|
||||
; EX DE,HL
|
||||
; LD B,0
|
||||
; LD L,A
|
||||
|
||||
; IN A,(SLOT1)
|
||||
; LD C,A
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (SLOT1),A
|
||||
|
||||
; .loop: LD A,L
|
||||
; LD (DE),A
|
||||
; INC DE
|
||||
; AND A
|
||||
; JR Z,.error
|
||||
; CP #FF
|
||||
; JR Z,.end
|
||||
; ;
|
||||
; LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000)
|
||||
; LD L,(HL)
|
||||
; INC B
|
||||
; JR NZ,.loop
|
||||
|
||||
; .error: SCF
|
||||
; .end: LD A,C
|
||||
; OUT (SLOT1),A
|
||||
; POP HL
|
||||
; POP DE
|
||||
; RET
|
||||
;----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
@ -843,6 +852,52 @@ GET_RAMD_NUM:
|
||||
;
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; [x] 4/11/23
|
||||
; ‚室:
|
||||
; B = 0: swap to Sp
|
||||
; B = #FF: swap to ZX
|
||||
; B = #FE: no swap, only get info
|
||||
; ‚ë室:
|
||||
; A - current RAM Drives set
|
||||
SWAP_RAM_DRIVES:
|
||||
IN A,(SLOT3)
|
||||
PUSH AF
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;
|
||||
LD A,(SYS_PAGE.CURRENT_RAM_DRV)
|
||||
CP B
|
||||
JR Z,.exit ; 㦥 ãáâ ®¢«¥ § ¯à 訢 ¥¬ë© ¡®à
|
||||
;
|
||||
LD A,#FE
|
||||
CP B
|
||||
JR Z,.exit ; ¨ç¥£® ¥ ¬¥ïâì, ¢ë¤ âì ⥪ã騩 ¡®à
|
||||
;
|
||||
.swap: LD HL,SYS_PAGE.RAMD_KEYS
|
||||
LD DE,SYS_PAGE.Sp_RAMD_KEYS
|
||||
LD B,SYS_PAGE.RAMD_KEYS.NUM
|
||||
.loop: LD A,(DE)
|
||||
LD C,A
|
||||
LD A,(HL)
|
||||
LD (DE),A
|
||||
LD A,C
|
||||
LD (HL),A
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ .loop
|
||||
;
|
||||
LD A,(SYS_PAGE.CURRENT_RAM_DRV)
|
||||
XOR #FF
|
||||
LD (SYS_PAGE.CURRENT_RAM_DRV),A
|
||||
;
|
||||
.exit: POP AF
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
@ -166,11 +166,16 @@ INIT_SYS_ALL:
|
||||
|
||||
LD HL,SYS_PAGE.RAMD_KEYS-#4000
|
||||
LD DE,SYS_PAGE.RAMD_KEYS+1-#4000
|
||||
|
||||
LD BC,SYS_PAGE.RAMD_KEYS.NUM-1
|
||||
LD (HL),0
|
||||
LDIR
|
||||
|
||||
; [x] 4/11/23
|
||||
LD HL,SYS_PAGE.Sp_RAMD_KEYS-#4000
|
||||
LD DE,SYS_PAGE.Sp_RAMD_KEYS+1-#4000
|
||||
LD BC,SYS_PAGE.Sp_RAMD_KEYS.NUM-1
|
||||
LD (HL),0
|
||||
LDIR
|
||||
;
|
||||
LD DE,ZG_ADDRESS ; ¤à¥á § ª®£¥¥à â®à
|
||||
LD (SYS_PAGE.WIN_ZG-#4000),DE
|
||||
;
|
||||
|
||||
@ -74,7 +74,7 @@
|
||||
|
||||
TEMP EQU #7E00 ; !HARDCODE
|
||||
MEMMAP2 EQU TEMP ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256
|
||||
TPOINTD EQU TEMP-32
|
||||
TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/23
|
||||
|
||||
|
||||
;=======================================
|
||||
@ -241,31 +241,38 @@ CMSERR:
|
||||
; RST_to_BIOS
|
||||
RET
|
||||
|
||||
CLEARM:
|
||||
IN A,(SLOT3)
|
||||
CLEARM: IN A,(SLOT3)
|
||||
PUSH AF
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
; save RAM disks on reboot when memory is cleared
|
||||
LD HL,SYS_PAGE.RAMD_KEYS
|
||||
LD DE,TPOINTD
|
||||
LD BC,SYS_PAGE.RAMD_KEYS.NUM
|
||||
LDIR
|
||||
; [x] 4/11/23
|
||||
LD HL,SYS_PAGE.Sp_RAMD_KEYS
|
||||
LD DE,TPOINTD + SYS_PAGE.RAMD_KEYS.NUM
|
||||
LD BC,SYS_PAGE.Sp_RAMD_KEYS.NUM
|
||||
LDIR
|
||||
;
|
||||
; ®ç¨é ¥¬ RAM Table
|
||||
LD HL,MEMMAP2
|
||||
LD DE,MEMMAP2+1
|
||||
LD BC,255
|
||||
LD (HL),0
|
||||
LDIR
|
||||
; ¢®ááâ ¢«¨¢ ¥¬ RAM ¤¨áª¨
|
||||
LD IX,SYS_PAGE.RAMD_KEYS ;RAM DISKS
|
||||
LD H,#C2
|
||||
LD H,high SYS_PAGE.RAMD_FAT
|
||||
LD D,high MEMMAP2
|
||||
LD BC,#10FF
|
||||
MEMLOOP:
|
||||
LD A,(IX)
|
||||
INC IX
|
||||
OR A
|
||||
LD L,A
|
||||
CALL NZ,RCHAIN
|
||||
DJNZ MEMLOOP
|
||||
LD BC,SYS_PAGE.RAMD_KEYS.NUM*256 + #FF
|
||||
CALL .MEMLOOP
|
||||
; [x] 4/11/23
|
||||
LD IX,SYS_PAGE.Sp_RAMD_KEYS
|
||||
LD B,SYS_PAGE.Sp_RAMD_KEYS.NUM
|
||||
CALL .MEMLOOP
|
||||
;
|
||||
CALL EMM.InitMem
|
||||
LD BC,#400E ;!HARDCODE
|
||||
CALL G_VALUE
|
||||
@ -273,6 +280,18 @@ MEMLOOP:
|
||||
CALL NZ,CCHAIN
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
;!TEST; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS. BLK_TO_RAMD
|
||||
LD B,high BIOS.SWAP_RAM_DRIVES.Sp2000
|
||||
JP SWAP_RAM_DRIVES
|
||||
;
|
||||
;
|
||||
.MEMLOOP:
|
||||
LD A,(IX)
|
||||
INC IX
|
||||
OR A
|
||||
LD L,A
|
||||
CALL NZ,RCHAIN
|
||||
DJNZ .MEMLOOP
|
||||
RET
|
||||
;
|
||||
|
||||
@ -1035,14 +1054,15 @@ FINSTAL:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD HL,FDD_INI_TABLE.FDD_0
|
||||
LD BC,#20FF ;!HARDCODE table
|
||||
FILLFDD:
|
||||
LD BC,SYS_PAGE.FDD_TBL.Size*256 + #FF ; table_size*256 + fill_byte
|
||||
.FILLFDD:
|
||||
LD (HL),C
|
||||
INC HL
|
||||
DJNZ FILLFDD
|
||||
DJNZ .FILLFDD
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD BC,#0311
|
||||
LD BC,#0311 ; !HARDCODE
|
||||
CALL G_VALUE
|
||||
LD HL,FD720A
|
||||
OR A
|
||||
|
||||
Loading…
Reference in New Issue
Block a user