mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 17:11:38 +03:00
+ new key "RMD-Keep", Support for new BIOS function "SWAP_RAM_DRIVES"
This commit is contained in:
parent
e70ce1ed3d
commit
607a458f0f
@ -1 +1 @@
|
|||||||
Subproject commit b534dc7d5df20ff238a64d900fb1559105eb8ef6
|
Subproject commit 809ea1f0b204f2d56555497c1c808806833d6315
|
||||||
75
spectrum.asm
75
spectrum.asm
@ -209,9 +209,12 @@ EXIT_ALL:
|
|||||||
;LD C,Dss.PChars
|
;LD C,Dss.PChars
|
||||||
;RST ToDSS
|
;RST ToDSS
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
1: LD BC,Dss.Exit
|
1: LD BC,Dss.Exit
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
JR 1B
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
COMAND_LINE: LD HL,(LINE_X)
|
COMAND_LINE: LD HL,(LINE_X)
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
AND A
|
AND A
|
||||||
@ -349,7 +352,7 @@ MSG_ZX_EXIT: DB 13,10,"EXIT from Spectrum configuration",0
|
|||||||
MSG_ZX_EXIT2: DB 13,10,"EXIT from ZX mode",0
|
MSG_ZX_EXIT2: DB 13,10,"EXIT from ZX mode",0
|
||||||
PROGRES_IND: DB '°',0 ; 176
|
PROGRES_IND: DB '°',0 ; 176
|
||||||
|
|
||||||
MEM_BLK: BYTE 0
|
;MEM_BLK: BYTE 0
|
||||||
LINE_X: WORD 0
|
LINE_X: WORD 0
|
||||||
X_FILE: WORD 0
|
X_FILE: WORD 0
|
||||||
CNF_NAME: WORD 0
|
CNF_NAME: WORD 0
|
||||||
@ -715,7 +718,7 @@ Get_RAM_Disk_E: LD A,D
|
|||||||
ADC HL,HL
|
ADC HL,HL
|
||||||
|
|
||||||
LD A,D
|
LD A,D
|
||||||
AND 3Fh
|
AND #3F
|
||||||
OR E
|
OR E
|
||||||
JR Z,.skip_inc
|
JR Z,.skip_inc
|
||||||
INC HL
|
INC HL
|
||||||
@ -730,18 +733,23 @@ Get_RAM_Disk_E: LD A,D
|
|||||||
;***************************************
|
;***************************************
|
||||||
;!FIXIT ¡¥§®¯ á® § ¨¬ âì à ¬¤¨áª¨, ç⮡ ¯®«ì§®¢ â¥«ì ¥ áâà ¤ «
|
;!FIXIT ¡¥§®¯ á® § ¨¬ âì à ¬¤¨áª¨, ç⮡ ¯®«ì§®¢ â¥«ì ¥ áâà ¤ «
|
||||||
; ®á¢®¡®¤¨âì ram-disk e:
|
; ®á¢®¡®¤¨âì ram-disk e:
|
||||||
|
; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS
|
||||||
.free_disk: DI
|
.free_disk: DI
|
||||||
XOR A ; RAM-Drive E:
|
;!TEST
|
||||||
LD C,BIOS.FreeMemRMD
|
;XOR A ; RAM-Drive E:
|
||||||
RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
;LD C,BIOS.FreeMemRMD
|
||||||
|
;RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
||||||
POP AF
|
;
|
||||||
LD B,A ; § ¯à®á¨âì ¯ ¬ïâì ã bios-
|
POP BC
|
||||||
XOR A ; RAM-Drive E:
|
;!TEST
|
||||||
LD C,BIOS.GetMemRMD ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
;LD B,A ; § ¯à®á¨âì ¯ ¬ïâì ã bios-
|
||||||
|
;XOR A ; RAM-Drive E:
|
||||||
|
;LD C,BIOS.GetMemRMD ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
||||||
|
LD C,BIOS.GetMem
|
||||||
|
;
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
JR C,ERROR_NO_MEM
|
JR C,ERROR_NO_MEM
|
||||||
LD (MEM_BLK),A
|
LD (Load_IMAGE_File.MEM_BLK),A
|
||||||
RET
|
RET
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
@ -757,7 +765,7 @@ Load_IMAGE_File:
|
|||||||
LD C,Dss.PChars
|
LD C,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|
||||||
LD A,(MEM_BLK)
|
.MEM_BLK+1: LD A,0
|
||||||
|
|
||||||
.load_loop: PUSH AF
|
.load_loop: PUSH AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -863,7 +871,24 @@ EXIT_TO_DSS: DI
|
|||||||
LD A,Dss.SetVMod.txt80x32 ; OPEN_TXT
|
LD A,Dss.SetVMod.txt80x32 ; OPEN_TXT
|
||||||
LD BC,0*256+Dss.SetVMod
|
LD BC,0*256+Dss.SetVMod
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
;!TEST; [ ] 05/11/2023 ®ç¨é âì à ¬¤¨áª¨ ¯à¨ ¢ë室¥
|
||||||
|
LD A,(RMD_Keep_+2)
|
||||||
|
AND A
|
||||||
|
JR NZ,.next
|
||||||
|
; ®ç¨áâª à ¬¤¨áª®¢
|
||||||
|
LD BC,SYS_PAGE.RAMD_KEYS.NUM*256 + BIOS.FreeMemRMD
|
||||||
|
.loop: PUSH BC
|
||||||
|
LD A,B
|
||||||
|
DEC A
|
||||||
|
RST ToBIOS
|
||||||
|
POP BC
|
||||||
|
DJNZ .loop
|
||||||
|
;
|
||||||
|
.next:
|
||||||
|
;!TEST; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS. BLK_TO_RAMD
|
||||||
|
LD BC,BIOS.SWAP_RAM_DRIVES.Sp2000
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
LD A,#20
|
LD A,#20
|
||||||
LD DE,0
|
LD DE,0
|
||||||
LD HL,#2050
|
LD HL,#2050
|
||||||
@ -873,9 +898,20 @@ EXIT_TO_DSS: DI
|
|||||||
LD HL,MSG_ZX_EXIT
|
LD HL,MSG_ZX_EXIT
|
||||||
JP EXIT_ALL
|
JP EXIT_ALL
|
||||||
|
|
||||||
|
;!FIXIT ¯¥à¥¤¥« âì äãªæ¨î ¡¨®á
|
||||||
SET_RELOAD_PROG:
|
SET_RELOAD_PROG:
|
||||||
DI
|
;!TEST; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS. BLK_TO_RAMD
|
||||||
|
LD BC,BIOS.SWAP_RAM_DRIVES.ZX
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
LD A,(Load_IMAGE_File.MEM_BLK)
|
||||||
|
LD B,A
|
||||||
|
XOR A ; set disk e:
|
||||||
|
LD C,BIOS.BLK_TO_RAMD
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
|
||||||
|
DI
|
||||||
LD A,Spec_Page
|
LD A,Spec_Page
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
@ -910,7 +946,7 @@ RESET_TO_ZX: DI
|
|||||||
IN A,(ZXKeys)
|
IN A,(ZXKeys)
|
||||||
AND #1F
|
AND #1F
|
||||||
CP #1E
|
CP #1E
|
||||||
JR Z,EXIT_TO_DSS
|
JP Z,EXIT_TO_DSS
|
||||||
|
|
||||||
; ä¨ªá ¥¯®«®© ¤¥è¨äà æ¨¨ ¯®àâ #FFFD (¯¨èãâ ¢ #C0FD)
|
; ä¨ªá ¥¯®«®© ¤¥è¨äà æ¨¨ ¯®àâ #FFFD (¯¨èãâ ¢ #C0FD)
|
||||||
LD A,#FF
|
LD A,#FF
|
||||||
@ -919,12 +955,17 @@ RESET_TO_ZX: DI
|
|||||||
LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG
|
LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
;
|
;
|
||||||
|
;!TEST; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS. BLK_TO_RAMD
|
||||||
|
LD BC,BIOS.SWAP_RAM_DRIVES.ZX
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
LD A,(Ret_zx_+2)
|
LD A,(Ret_zx_+2)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,(Ret_fn_+2)
|
LD A,(Ret_fn_+2)
|
||||||
XOR B
|
XOR B
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,ACEX.RET_PORT
|
LD A,ACEX.RET_PORT
|
||||||
|
;!FIXIT ¯¥à¥¤¥« âì ¯®¤ äãªæ¨î ¡¨®á
|
||||||
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
|
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
|
||||||
|
|
||||||
LD A,CNF_PORT.CNF_3
|
LD A,CNF_PORT.CNF_3
|
||||||
@ -1176,6 +1217,7 @@ Int_or_: DW Int_or, #0300 ;
|
|||||||
Ret_zx_: DW Ret_zx, #4100 ; ¢ª«îç¨âì ¢®§¢à â ¢ ZX áâà ¨æ (#41) ¤®«¦ ᮢ¯ ¤ âì á ret_fn_
|
Ret_zx_: DW Ret_zx, #4100 ; ¢ª«îç¨âì ¢®§¢à â ¢ ZX áâà ¨æ (#41) ¤®«¦ ᮢ¯ ¤ âì á ret_fn_
|
||||||
Ret_fn_: DW Ret_fn, #4100 ; ¢ª«îç¨âì ¢®§¢à â ¢ FN áâà ¨æ (#41) ¤®«¦ ᮢ¯ ¤ âì á ret_zx_
|
Ret_fn_: DW Ret_fn, #4100 ; ¢ª«îç¨âì ¢®§¢à â ¢ FN áâà ¨æ (#41) ¤®«¦ ᮢ¯ ¤ âì á ret_zx_
|
||||||
LD_Pal_: DW LD_Pal, #FF00
|
LD_Pal_: DW LD_Pal, #FF00
|
||||||
|
RMD_Keep_: DW RMD_Keep, #FF00 ;!TEST; [ ] 05/11/2023 ®ç¨é âì à ¬¤¨áª¨ ¯à¨ ¢ë室¥
|
||||||
DW 0,0 ; end marker
|
DW 0,0 ; end marker
|
||||||
|
|
||||||
Turbo_: DB "turbo", 255,0
|
Turbo_: DB "turbo", 255,0
|
||||||
@ -1191,6 +1233,7 @@ Int_or: DB "origin", 255,0
|
|||||||
Ret_zx: DB "ret-zx", 255,0
|
Ret_zx: DB "ret-zx", 255,0
|
||||||
Ret_fn: DB "ret-fn", 255,0
|
Ret_fn: DB "ret-fn", 255,0
|
||||||
LD_Pal: DB "load-pal", 255,0
|
LD_Pal: DB "load-pal", 255,0
|
||||||
|
RMD_Keep: DB "RMD-Keep", 255,0 ;!TEST; [ ] 05/11/2023 ®ç¨é âì à ¬¤¨áª¨ ¯à¨ ¢ë室¥
|
||||||
|
|
||||||
;ZX_PROG_LEN EQU $-RELOAD_PROG
|
;ZX_PROG_LEN EQU $-RELOAD_PROG
|
||||||
|
|
||||||
|
|||||||
@ -205,7 +205,7 @@ Load_SCL: LD HL,ONE_FILE
|
|||||||
RET C ;!FIXIT ®¡à ¡®â稪 ®è¨¡ª¨!!!!!
|
RET C ;!FIXIT ®¡à ¡®â稪 ®è¨¡ª¨!!!!!
|
||||||
|
|
||||||
Convert_SCLtoTRD:
|
Convert_SCLtoTRD:
|
||||||
LD A,(MEM_BLK)
|
LD A,(Load_IMAGE_File.MEM_BLK)
|
||||||
OUT (SLOT3),A ; ¢áâ ¢«ï¥¬ ¯¥à¢ãî áâà ¨æã RAM-¤¨áª
|
OUT (SLOT3),A ; ¢áâ ¢«ï¥¬ ¯¥à¢ãî áâà ¨æã RAM-¤¨áª
|
||||||
|
|
||||||
LD HL,SCL_Buffer
|
LD HL,SCL_Buffer
|
||||||
@ -306,7 +306,7 @@ Convert_SCLtoTRD:
|
|||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|
||||||
DI
|
DI
|
||||||
LD A,(MEM_BLK)
|
LD A,(Load_IMAGE_File.MEM_BLK)
|
||||||
JP Load_IMAGE_File.scl_read_next
|
JP Load_IMAGE_File.scl_read_next
|
||||||
|
|
||||||
;-----------[]
|
;-----------[]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user