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