mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 00:51:36 +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
|
||||
;RST ToDSS
|
||||
;---------------------------------------
|
||||
|
||||
1: LD BC,Dss.Exit
|
||||
RST ToDSS
|
||||
JR 1B
|
||||
;
|
||||
|
||||
|
||||
COMAND_LINE: LD HL,(LINE_X)
|
||||
LD A,(HL)
|
||||
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
|
||||
PROGRES_IND: DB '°',0 ; 176
|
||||
|
||||
MEM_BLK: BYTE 0
|
||||
;MEM_BLK: BYTE 0
|
||||
LINE_X: WORD 0
|
||||
X_FILE: WORD 0
|
||||
CNF_NAME: WORD 0
|
||||
@ -715,7 +718,7 @@ Get_RAM_Disk_E: LD A,D
|
||||
ADC HL,HL
|
||||
|
||||
LD A,D
|
||||
AND 3Fh
|
||||
AND #3F
|
||||
OR E
|
||||
JR Z,.skip_inc
|
||||
INC HL
|
||||
@ -730,18 +733,23 @@ Get_RAM_Disk_E: LD A,D
|
||||
;***************************************
|
||||
;!FIXIT ¡¥§®¯ á® § ¨¬ âì à ¬¤¨áª¨, ç⮡ ¯®«ì§®¢ â¥«ì ¥ áâà ¤ «
|
||||
; ®á¢®¡®¤¨âì ram-disk e:
|
||||
; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS
|
||||
.free_disk: DI
|
||||
XOR A ; RAM-Drive E:
|
||||
LD C,BIOS.FreeMemRMD
|
||||
RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
||||
|
||||
POP AF
|
||||
LD B,A ; § ¯à®á¨âì ¯ ¬ïâì ã bios-
|
||||
XOR A ; RAM-Drive E:
|
||||
LD C,BIOS.GetMemRMD ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
||||
;!TEST
|
||||
;XOR A ; RAM-Drive E:
|
||||
;LD C,BIOS.FreeMemRMD
|
||||
;RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
||||
;
|
||||
POP BC
|
||||
;!TEST
|
||||
;LD B,A ; § ¯à®á¨âì ¯ ¬ïâì ã bios-
|
||||
;XOR A ; RAM-Drive E:
|
||||
;LD C,BIOS.GetMemRMD ; ¨ ¯®¤á®¥¤¨¨âì ª e:
|
||||
LD C,BIOS.GetMem
|
||||
;
|
||||
RST ToBIOS
|
||||
JR C,ERROR_NO_MEM
|
||||
LD (MEM_BLK),A
|
||||
LD (Load_IMAGE_File.MEM_BLK),A
|
||||
RET
|
||||
;---------------------------------------
|
||||
|
||||
@ -757,7 +765,7 @@ Load_IMAGE_File:
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
|
||||
LD A,(MEM_BLK)
|
||||
.MEM_BLK+1: LD A,0
|
||||
|
||||
.load_loop: PUSH AF
|
||||
OUT (SLOT3),A
|
||||
@ -863,7 +871,24 @@ EXIT_TO_DSS: DI
|
||||
LD A,Dss.SetVMod.txt80x32 ; OPEN_TXT
|
||||
LD BC,0*256+Dss.SetVMod
|
||||
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 DE,0
|
||||
LD HL,#2050
|
||||
@ -873,9 +898,20 @@ EXIT_TO_DSS: DI
|
||||
LD HL,MSG_ZX_EXIT
|
||||
JP EXIT_ALL
|
||||
|
||||
;!FIXIT ¯¥à¥¤¥« âì äãªæ¨î ¡¨®á
|
||||
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
|
||||
OUT (SLOT3),A
|
||||
|
||||
@ -910,7 +946,7 @@ RESET_TO_ZX: DI
|
||||
IN A,(ZXKeys)
|
||||
AND #1F
|
||||
CP #1E
|
||||
JR Z,EXIT_TO_DSS
|
||||
JP Z,EXIT_TO_DSS
|
||||
|
||||
; ä¨ªá ¥¯®«®© ¤¥è¨äà æ¨¨ ¯®àâ #FFFD (¯¨èãâ ¢ #C0FD)
|
||||
LD A,#FF
|
||||
@ -919,12 +955,17 @@ RESET_TO_ZX: DI
|
||||
LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG
|
||||
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 B,A
|
||||
LD A,(Ret_fn_+2)
|
||||
XOR B
|
||||
LD B,A
|
||||
LD A,ACEX.RET_PORT
|
||||
;!FIXIT ¯¥à¥¤¥« âì ¯®¤ äãªæ¨î ¡¨®á
|
||||
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
|
||||
|
||||
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_fn_: DW Ret_fn, #4100 ; ¢ª«îç¨âì ¢®§¢à â ¢ FN áâà ¨æ (#41) ¤®«¦ ᮢ¯ ¤ âì á ret_zx_
|
||||
LD_Pal_: DW LD_Pal, #FF00
|
||||
RMD_Keep_: DW RMD_Keep, #FF00 ;!TEST; [ ] 05/11/2023 ®ç¨é âì à ¬¤¨áª¨ ¯à¨ ¢ë室¥
|
||||
DW 0,0 ; end marker
|
||||
|
||||
Turbo_: DB "turbo", 255,0
|
||||
@ -1191,6 +1233,7 @@ Int_or: DB "origin", 255,0
|
||||
Ret_zx: DB "ret-zx", 255,0
|
||||
Ret_fn: DB "ret-fn", 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
|
||||
|
||||
|
||||
@ -205,7 +205,7 @@ Load_SCL: LD HL,ONE_FILE
|
||||
RET C ;!FIXIT ®¡à ¡®â稪 ®è¨¡ª¨!!!!!
|
||||
|
||||
Convert_SCLtoTRD:
|
||||
LD A,(MEM_BLK)
|
||||
LD A,(Load_IMAGE_File.MEM_BLK)
|
||||
OUT (SLOT3),A ; ¢áâ ¢«ï¥¬ ¯¥à¢ãî áâà ¨æã RAM-¤¨áª
|
||||
|
||||
LD HL,SCL_Buffer
|
||||
@ -306,7 +306,7 @@ Convert_SCLtoTRD:
|
||||
RST ToDSS
|
||||
|
||||
DI
|
||||
LD A,(MEM_BLK)
|
||||
LD A,(Load_IMAGE_File.MEM_BLK)
|
||||
JP Load_IMAGE_File.scl_read_next
|
||||
|
||||
;-----------[]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user