mirror of
https://github.com/Tolik-Trek/MountIMA.git
synced 2026-06-15 17:31:35 +03:00
fixed bug with saving RAM Disk
This commit is contained in:
parent
f62809c2d5
commit
7c9cb9d192
@ -1 +1 @@
|
|||||||
Subproject commit 6e27011b6259b0256ce65d91a53ef1185223eafa
|
Subproject commit 9a65a386bfb6aaccc7fb476a3e159a684af65743
|
||||||
84
mountima.asm
84
mountima.asm
@ -140,7 +140,14 @@ RMD_UNMOUNT: ;LD A,(key_buff.DRVsave)
|
|||||||
|
|
||||||
;-------------[]
|
;-------------[]
|
||||||
;‘®åà ¥¨¥ ®¡à § à ¬¤¨áª ¢ ä ©«
|
;‘®åà ¥¨¥ ®¡à § à ¬¤¨áª ¢ ä ©«
|
||||||
RMD_SAVE: IN A,(SLOT3)
|
RMD_SAVE: XOR A ;LD A,FileAttrib.Normal
|
||||||
|
LD HL,SaveName
|
||||||
|
LD C,Dss.Create
|
||||||
|
RST ToDSS
|
||||||
|
JP C,EXIT.error.writeFile
|
||||||
|
LD (key_buff.FM),A ; á®åà 塞 ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||||
|
|
||||||
|
IN A,(SLOT3)
|
||||||
LD (.SavePage),A
|
LD (.SavePage),A
|
||||||
|
|
||||||
LD A,(key_buff.DRVsave)
|
LD A,(key_buff.DRVsave)
|
||||||
@ -151,7 +158,6 @@ RMD_SAVE: IN A,(SLOT3)
|
|||||||
LD C,BIOS.GetMemBlkPages
|
LD C,BIOS.GetMemBlkPages
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
|
||||||
;LD HL,PagesBuffer
|
|
||||||
LD C,Dss.Write
|
LD C,Dss.Write
|
||||||
.loop: PUSH BC
|
.loop: PUSH BC
|
||||||
PUSH HL
|
PUSH HL
|
||||||
@ -181,9 +187,7 @@ RMD_SAVE: IN A,(SLOT3)
|
|||||||
|
|
||||||
LD A,(key_buff.FM)
|
LD A,(key_buff.FM)
|
||||||
LD C,Dss.Close
|
LD C,Dss.Close
|
||||||
RST ToDSS
|
JP ToDSS
|
||||||
|
|
||||||
RET
|
|
||||||
;-------------[]
|
;-------------[]
|
||||||
|
|
||||||
|
|
||||||
@ -362,11 +366,11 @@ error:
|
|||||||
LD HL,messages.writeFile
|
LD HL,messages.writeFile
|
||||||
JP printANDexit
|
JP printANDexit
|
||||||
|
|
||||||
.WrongKeys: LD B,DSS_Error.sys.GENERAL_FAILURE
|
.WrongKeys: LD B,DSS_Error.sys.COMMON_ERROR
|
||||||
LD HL,messages.WrongKeys
|
LD HL,messages.WrongKeys
|
||||||
JP printANDexit
|
JP printANDexit
|
||||||
|
|
||||||
.UNDEFINED: LD B,DSS_Error.sys.GENERAL_FAILURE
|
.UNDEFINED: LD B,DSS_Error.sys.COMMON_ERROR
|
||||||
LD HL,messages.UNDEFINED
|
LD HL,messages.UNDEFINED
|
||||||
JP printANDexit
|
JP printANDexit
|
||||||
|
|
||||||
@ -386,7 +390,7 @@ error:
|
|||||||
LD HL,messages.readFile
|
LD HL,messages.readFile
|
||||||
JP printANDexit
|
JP printANDexit
|
||||||
|
|
||||||
.noFreeRAMdsk: LD B,DSS_Error.sys.GENERAL_FAILURE
|
.noFreeRAMdsk: LD B,DSS_Error.sys.COMMON_ERROR
|
||||||
LD HL,messages.noFreeRAMdsk
|
LD HL,messages.noFreeRAMdsk
|
||||||
JP printANDexit
|
JP printANDexit
|
||||||
;
|
;
|
||||||
@ -473,7 +477,7 @@ Set_keys: LD HL,(dss_line)
|
|||||||
RET C ; ¢ë室, ¥á«¨ ®è¨¡ª
|
RET C ; ¢ë室, ¥á«¨ ®è¨¡ª
|
||||||
|
|
||||||
XOR A
|
XOR A
|
||||||
.save_a+*: OR 0
|
.save_a+1: OR 0
|
||||||
JR NZ,.file_key
|
JR NZ,.file_key
|
||||||
|
|
||||||
CALL .GetDRVnum
|
CALL .GetDRVnum
|
||||||
@ -500,27 +504,45 @@ Set_keys: LD HL,(dss_line)
|
|||||||
LD (key_buff.DRVsave),A ; á®åà 塞 ®¬¥à à ¬¤¨áª ¤«ï BIOS.FreeMemRMD
|
LD (key_buff.DRVsave),A ; á®åà 塞 ®¬¥à à ¬¤¨áª ¤«ï BIOS.FreeMemRMD
|
||||||
*/
|
*/
|
||||||
|
|
||||||
;!FIXIT
|
.file_key: LD A,(key_buff.M)
|
||||||
.file_key:
|
|
||||||
LD HL,Buffer
|
|
||||||
LD A,(key_buff.M)
|
|
||||||
AND A
|
AND A
|
||||||
JR Z,.noRD
|
JR Z,.noRD
|
||||||
|
LD HL,Buffer
|
||||||
CALL .OpenRDfile ; Žâªàë⨥ ä ©« (¨«¨ ¯à®¢¥àª «¨ç¨ï) ¯® ¨¬¥¨ ¨§ ¡ãä¥à
|
CALL .OpenRDfile ; Žâªàë⨥ ä ©« (¨«¨ ¯à®¢¥àª «¨ç¨ï) ¯® ¨¬¥¨ ¨§ ¡ãä¥à
|
||||||
RET C ; ¢ë室, ¥á«¨ ®è¨¡ª
|
RET C ; ¢ë室, ¥á«¨ ®è¨¡ª
|
||||||
JP .CheckChar ; ¯®£ «¨ á«¥¤ãî騩 ¢¨â®ª à §¡®à ª«î祩
|
JP .CheckChar ; ¯®£ «¨ á«¥¤ãî騩 ¢¨â®ª à §¡®à ª«î祩
|
||||||
|
|
||||||
.noRD: CALL .OpenWRfile
|
.noRD: LD HL,(.NextParam) ; ¯à®¢¥àª , çâ® ¥áâì á«¥¤ãî騩 ¯ à ¬¥âà
|
||||||
RET C ; ¢ë室, ¥á«¨ ®è¨¡ª
|
LD A,H
|
||||||
LD A,(key_buff.DRVsave)
|
OR L
|
||||||
INC A
|
SCF
|
||||||
JP NZ,.CheckChar
|
RET Z
|
||||||
|
;
|
||||||
|
LD HL,Buffer
|
||||||
|
LD BC,256
|
||||||
|
XOR A
|
||||||
|
CPIR
|
||||||
|
JP PE,.yes_filename
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.yes_filename: LD DE,Buffer
|
||||||
|
SBC HL,DE
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
LD B,H
|
||||||
|
LD C,L
|
||||||
|
EX DE,HL
|
||||||
|
LD DE,SaveName
|
||||||
|
LDIR
|
||||||
|
|
||||||
LD HL,(.NextParam)
|
LD HL,(.NextParam)
|
||||||
INC HL
|
INC HL
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
CP ':'
|
CP ':'
|
||||||
JP NZ,.CheckChar
|
SCF
|
||||||
|
RET NZ
|
||||||
|
|
||||||
CALL .GetParam
|
CALL .GetParam
|
||||||
CCF
|
CCF
|
||||||
@ -529,8 +551,7 @@ Set_keys: LD HL,(dss_line)
|
|||||||
CALL .GetDRVnum
|
CALL .GetDRVnum
|
||||||
RET C
|
RET C
|
||||||
LD (key_buff.DRVsave),A ; á®åà 塞 ®¬¥à à ¬¤¨áª ¤«ï save ram drive
|
LD (key_buff.DRVsave),A ; á®åà 塞 ®¬¥à à ¬¤¨áª ¤«ï save ram drive
|
||||||
|
RET
|
||||||
JP .CheckChar ; ¯®£ «¨ á«¥¤ãî騩 ¢¨â®ª à §¡®à ª«î祩
|
|
||||||
;-----------------;
|
;-----------------;
|
||||||
|
|
||||||
;-----------------;
|
;-----------------;
|
||||||
@ -538,11 +559,13 @@ Set_keys: LD HL,(dss_line)
|
|||||||
.NextParam+1: LD HL,0
|
.NextParam+1: LD HL,0
|
||||||
LD DE,Buffer ; ¡ãä¥à ¤«ï ®¯¥à 権 á® áâப ¬¨
|
LD DE,Buffer ; ¡ãä¥à ¤«ï ®¯¥à 権 á® áâப ¬¨
|
||||||
LD C,Dss.GSwitch ; âã⠢뤥«ï¥¬ ¯ à ¬¥âà § ¯ãáª
|
LD C,Dss.GSwitch ; âã⠢뤥«ï¥¬ ¯ à ¬¥âà § ¯ãáª
|
||||||
RST #10 ; ¯®«ãç ¥¬ ¢ ¡ãä¥à¥ á«¥¤ãî騩 ¯ à ¬¥âà
|
RST ToDSS ; ¯®«ãç ¥¬ ¢ ¡ãä¥à¥ á«¥¤ãî騩 ¯ à ¬¥âà
|
||||||
LD (.NextParam),HL
|
LD (.NextParam),HL
|
||||||
LD A,(Buffer)
|
LD A,(Buffer)
|
||||||
AND A
|
AND A
|
||||||
RET NZ ; <20>®à¬ «ìë© ¢®§¢à â C = 0
|
RET NZ ; <20>®à¬ «ìë© ¢®§¢à â C = 0
|
||||||
|
LD HL,0 ; Œ àª¥à ª®æ à §¡®à
|
||||||
|
LD (.NextParam),HL
|
||||||
SCF
|
SCF
|
||||||
RET ; ‚®§¢à â á ®è¨¡ª®© C = 1
|
RET ; ‚®§¢à â á ®è¨¡ª®© C = 1
|
||||||
;-----------------;
|
;-----------------;
|
||||||
@ -559,13 +582,7 @@ Set_keys: LD HL,(dss_line)
|
|||||||
LD A,Dss.Open.R
|
LD A,Dss.Open.R
|
||||||
LD HL,Buffer
|
LD HL,Buffer
|
||||||
LD C,Dss.Open
|
LD C,Dss.Open
|
||||||
RST 10h ; ®âªàë⨥ ä ©«
|
RST ToDSS ; ®âªàë⨥ ä ©«
|
||||||
LD (key_buff.FM),A ; á®åà 塞 ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
.OpenWRfile: XOR A ;LD A,FileAttrib.Normal
|
|
||||||
LD C,Dss.Create
|
|
||||||
RST ToDSS
|
|
||||||
LD (key_buff.FM),A ; á®åà 塞 ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
LD (key_buff.FM),A ; á®åà 塞 ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||||
RET
|
RET
|
||||||
;-----------------;
|
;-----------------;
|
||||||
@ -583,7 +600,7 @@ Set_keys: LD HL,(dss_line)
|
|||||||
|
|
||||||
LD BC,0*256 + 8
|
LD BC,0*256 + 8
|
||||||
LD DE,#55AA
|
LD DE,#55AA
|
||||||
RST #18 ; ¨§ «®£¨ç¥áª®£® ¢ 䨧¨ç¥áª¨© ®¬¥à ¤¨áª
|
RST ToDSS.DRV ; ¨§ «®£¨ç¥áª®£® ¢ 䨧¨ç¥áª¨© ®¬¥à ¤¨áª
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD C,A
|
LD C,A
|
||||||
AND #F0
|
AND #F0
|
||||||
@ -593,8 +610,6 @@ Set_keys: LD HL,(dss_line)
|
|||||||
|
|
||||||
LD A,C
|
LD A,C
|
||||||
AND #0F
|
AND #0F
|
||||||
|
|
||||||
|
|
||||||
RET
|
RET
|
||||||
;-----------------;
|
;-----------------;
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
@ -604,6 +619,7 @@ Loader_length EQU $-BEGIN
|
|||||||
;!FIXIT
|
;!FIXIT
|
||||||
PagesBuffer EQU $
|
PagesBuffer EQU $
|
||||||
Buffer EQU PagesBuffer+256
|
Buffer EQU PagesBuffer+256
|
||||||
|
SaveName EQU Buffer+256
|
||||||
|
|
||||||
;----------------------------------------------[End Code section]
|
;----------------------------------------------[End Code section]
|
||||||
STACK_CHECK_MACRO stack_point, (stack_buffer+256)
|
STACK_CHECK_MACRO stack_point, (stack_buffer+256)
|
||||||
@ -625,7 +641,7 @@ Test: LD (dss_line),IX ;
|
|||||||
GetParam: LD HL,(NextParameter) ;
|
GetParam: LD HL,(NextParameter) ;
|
||||||
LD C,43h ; âã⠢뤥«ï¥¬ ¯ à ¬¥âà § ¯ãáª
|
LD C,43h ; âã⠢뤥«ï¥¬ ¯ à ¬¥âà § ¯ãáª
|
||||||
LD DE,Buffer ; ¡ãä¥à ¤«ï ®¯¥à 権 á® áâப ¬¨
|
LD DE,Buffer ; ¡ãä¥à ¤«ï ®¯¥à 権 á® áâப ¬¨
|
||||||
RST #10 ; ¯®«ãç ¥¬ ¢ ¡ãä¥à¥ á«¥¤ãî騩 ¯ à ¬¥âà
|
RST ToDSS ; ¯®«ãç ¥¬ ¢ ¡ãä¥à¥ á«¥¤ãî騩 ¯ à ¬¥âà
|
||||||
ld (NextParameter),hl ;
|
ld (NextParameter),hl ;
|
||||||
CCF ;
|
CCF ;
|
||||||
LD A,(Buffer) ;
|
LD A,(Buffer) ;
|
||||||
@ -638,7 +654,7 @@ GetParam: LD HL,(NextParameter) ;
|
|||||||
LD HL,COMLINE ;HL 㪠§ë¢ ¥â ª®¬ ¤ãî áâபã
|
LD HL,COMLINE ;HL 㪠§ë¢ ¥â ª®¬ ¤ãî áâபã
|
||||||
.loop: LD DE,BUFFER ;DE 㪠§ë¢ ¥â ¡ãä¥à ¤«ï ¯ à ¬¥â஢
|
.loop: LD DE,BUFFER ;DE 㪠§ë¢ ¥â ¡ãä¥à ¤«ï ¯ à ¬¥â஢
|
||||||
LD C,43h ;”ãªæ¨ï ¢ë¤¥«¥¨ï ¯ à ¬¥âà
|
LD C,43h ;”ãªæ¨ï ¢ë¤¥«¥¨ï ¯ à ¬¥âà
|
||||||
RST 10h ;‚믮«¥¨¥ äãªæ¨¨
|
RST ToDSS ;‚믮«¥¨¥ äãªæ¨¨
|
||||||
PUSH AF
|
PUSH AF
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user