mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
refactoring
This commit is contained in:
parent
b87eac0895
commit
b6c902f4f7
413
DSS/DOS5.ASM
413
DSS/DOS5.ASM
@ -150,33 +150,41 @@ DELETE: LD DE,MASKARE
|
||||
CALL LOADDIR
|
||||
CALL SEARCH
|
||||
RET C
|
||||
; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥ ï"
|
||||
DELFILE:
|
||||
SET_PAGE_X DIRPAGE
|
||||
|
||||
LD (IX+_sFM.NAME),#E5
|
||||
LD E,(IX+_sFM.ST_CLUSTER)
|
||||
LD (IX+_sFM.NAME),#E5 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
||||
LD E,(IX+_sFM.ST_CLUSTER) ; ü ¯¥à¢®£® ª« áâ¥à
|
||||
LD D,(IX+_sFM.ST_CLUSTER+1)
|
||||
|
||||
OUT (SLOT3),A
|
||||
LD A,E
|
||||
OR D
|
||||
JR Z,SMALDEL
|
||||
DEL01 EX DE,HL
|
||||
CALL R_F_FAT
|
||||
PUSH DE
|
||||
JP Z,SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||
DEL01 EX DE,HL ; hl=®¬¥à ª« áâ¥à
|
||||
CALL R_F_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||||
PUSH DE ; ®¬¥à á«¥¤. ª« áâ¥à
|
||||
PUSH AF
|
||||
LD DE,#0000
|
||||
CALL W_T_FAT
|
||||
LD DE,#0000 ; ®¬¥à ª« áâ¥à
|
||||
CALL W_T_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||
POP AF
|
||||
POP DE
|
||||
JP NC,DEL01
|
||||
CALL WR_FAT
|
||||
SMALDEL CALL SAVEDIR
|
||||
AND A
|
||||
RET
|
||||
JP SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #10. <20>¥à¥¨¬¥®¢ ¨¥ ä ©« .
|
||||
; ƒ«®¡ «ìë¥ á¨¬¢®«ë * ¨ ? ¢ ¨¬¥ å ä ©«®¢ ¥ ¤®¯ã᪠îâáï.
|
||||
;
|
||||
; ¢å®¤: HL - 㪠§ ⥫ì áâ ஥ ¨¬ï ä ©«
|
||||
; DE - 㪠§ â¥«ì ®¢®¥ ¨¬ï ä ©«
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;
|
||||
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
||||
; DE - "new_name.ext",#00 without simbols * ?
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
RENAME PUSH DE
|
||||
LD DE,MASKARE
|
||||
CALL MASK
|
||||
@ -190,10 +198,10 @@ RENAME PUSH DE
|
||||
SCF
|
||||
RET Z
|
||||
PUSH DE
|
||||
CALL LOADDIR
|
||||
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||
;LD A,#33
|
||||
LD A,FAT_ATTR.NoSYSnoVolID
|
||||
CALL ASEARCH
|
||||
CALL ASEARCH ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||
POP HL
|
||||
RET C
|
||||
LD DE,MASKARE
|
||||
@ -208,7 +216,7 @@ RENAME PUSH DE
|
||||
RET Z
|
||||
PUSH IX
|
||||
LD A,FAT_ATTR.NoSYSnoVolID
|
||||
CALL ASEARCH
|
||||
CALL ASEARCH ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª
|
||||
POP IX
|
||||
LD A,DSS_Error.sys.FILE_EXISTS
|
||||
CCF
|
||||
@ -222,14 +230,12 @@ RENAME PUSH DE
|
||||
LD BC,11
|
||||
LDIR
|
||||
OUT (SLOT3),A
|
||||
CALL SAVEDIR
|
||||
AND A
|
||||
RET
|
||||
JP SAVEDIR
|
||||
|
||||
;R02
|
||||
OPENATR:
|
||||
LD (ACCESS),A
|
||||
CALL GETWORD
|
||||
LD (ACCESS),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
LD HL,TMPNAME
|
||||
LD DE,MASKARE
|
||||
@ -237,10 +243,23 @@ OPENATR:
|
||||
RET C
|
||||
LD A,FAT_ATTR.NoVolID
|
||||
CALL ASEARCH
|
||||
JR NC,OPENAT
|
||||
JR NC,OPENAT ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||||
; § ¯¨áì ¥ ©¤¥
|
||||
RET
|
||||
;R02
|
||||
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #11. Žâªàë⨥ ä ©« .
|
||||
;
|
||||
; ¢å®¤: HL - 㪠§ â¥«ì ¨¬ï ä ©«
|
||||
; A - ०¨¬ ¤®áâ㯠:
|
||||
; A=0 ç⥨¥/§ ¯¨áì
|
||||
; A=1 ç⥨¥
|
||||
; A=2 § ¯¨áì
|
||||
; ¢ë室: A - ¤¥áªà¨¯â®à ä ©« , ¥á«¨ CF=0
|
||||
; ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
OPEN_FN:
|
||||
_mSavePath
|
||||
OPEN: ;R08
|
||||
@ -529,6 +548,13 @@ NSEARCH:
|
||||
JR Z,SEARCH3.error
|
||||
JP SEARCH1
|
||||
|
||||
;-------------------------------------------------
|
||||
; <20>®¨áª § ¯¨á¨ ª â «®£ ¢ ᯨ᪥ ª â «®£
|
||||
;
|
||||
; ¢å®¤: a= âਡãâ § ¯¨á¨
|
||||
; ¢ë室: de'=¨¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£
|
||||
; CF - ª â «®£ ¥ ©¤¥
|
||||
;-------------------------------------------------
|
||||
DSEARCH:
|
||||
LD A,FAT_ATTR.DIRECTORY
|
||||
CALL ASEARCH
|
||||
@ -604,6 +630,10 @@ SEARCH4:
|
||||
SCF
|
||||
RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; ’¥áâ ¤®¯ãá⨬®¥ ¨¬ï ¨ áâநâìáï ¤¨áª.
|
||||
; ¢å®¤: hl=áâப ¨¬¥¨
|
||||
;-------------------------------------------------
|
||||
GETWORD:
|
||||
LD DE,TMPNAME
|
||||
LD BC,#0DFF
|
||||
@ -649,8 +679,8 @@ GETWORD:
|
||||
POP HL
|
||||
JP NC,GETWORD
|
||||
RET
|
||||
|
||||
TMPNAME: DB ' ',#00 ; 12 ŻŕŽĄĽŤŽ˘ ¨ 0
|
||||
; <20>ãä¥à ¨¬¥¨ 8.3 ä®à¬ â
|
||||
TMPNAME: DZ ' ' ; 12 ¯à®¡¥«®¢ ¨ 0
|
||||
|
||||
;!TODO ᤥ« âì ¤«ï ª ¦¤®£® ¤à ©¢ § ¯®¬¨ ¨¥ ⥪ã饩 ¤¨à४â®à¨¨, ¯®ª âãâ § £«ãèª
|
||||
; RestoreDIR:
|
||||
@ -901,6 +931,12 @@ IT_DIR: LD E,(IX+_sFM.ST_CLUSTER)
|
||||
RET
|
||||
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #1E. ˆä®à¬ æ¨ï ® ⥪ã饬 ª â «®£¥.
|
||||
;
|
||||
; ¢å®¤: HL - ¡ãä¥à ¢ ¯ ¬ï⨠256 ¡ ©â
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
CURRDIR: EX DE,HL
|
||||
LD HL,DIRSPEC
|
||||
CURDIR1 LD A,(HL)
|
||||
@ -909,58 +945,67 @@ CURDIR1 LD A,(HL)
|
||||
JR NZ,CURDIR1
|
||||
RET
|
||||
|
||||
|
||||
;-------------------------------------------------
|
||||
; <20>à®ç¨â âì ᯨ᮪ ª â «®£
|
||||
;-------------------------------------------------
|
||||
LOADDIR:
|
||||
XOR A
|
||||
LD H,A
|
||||
LD L,A
|
||||
LD IX,0
|
||||
LD B,A
|
||||
LD B,A ; ®â ç « ä ©«
|
||||
CALL MOVE_FP
|
||||
|
||||
SET_PAGE_X DIRPAGE
|
||||
|
||||
PUSH AF
|
||||
;!TEST no ldir
|
||||
; ®ç¨áâ¨âì ª¥è ª â «®£
|
||||
;LD HL,#C000
|
||||
;LD DE,#C001
|
||||
;LD BC,#3FFF
|
||||
;LD (HL),L
|
||||
;LDIR
|
||||
;
|
||||
LD A,(FatBuffer.DRIVE)
|
||||
LD (IY+_sFM.DRIVE),A
|
||||
LD D,(IY+_sFM.ST_CLUSTER)
|
||||
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||
LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
|
||||
LD D,(IY+_sFM.ST_CLUSTER) ; de=®¬¥à ¯¥à¢®£® ª« áâ¥à
|
||||
LD E,(IY+_sFM.ST_CLUSTER+1)
|
||||
LD A,D
|
||||
OR E
|
||||
JP Z,LROTDIR
|
||||
LD HL,DIR
|
||||
LD DE,#4000
|
||||
XOR A
|
||||
CALL READ
|
||||
LD (DIRSIZE),DE
|
||||
JP Z,LROTDIR ; root ??
|
||||
LD HL,DIR ; ªã¤
|
||||
LD DE,#4000 ; ᪮«ìª®
|
||||
XOR A ; ¤¥áªà¨¯â®à
|
||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||
LD (DIRSIZE),DE ; ç¨á«® ¯à®ç¨â. ¡ ©â®¢
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
AND A
|
||||
RET
|
||||
|
||||
LROTDIR LD HL,(FatBuffer.DIR_FRH)
|
||||
LD IX,(FatBuffer.DIR_FRL)
|
||||
LROTDIR LD HL,(FatBuffer.DIR_FRH) ; áâ. à §àï¤
|
||||
LD IX,(FatBuffer.DIR_FRL) ; ®¬¥à «®£. ᥪâ®à
|
||||
LD A,(FatBuffer.DIR_S_S)
|
||||
LD B,32
|
||||
LD B,32 ; !HARDCODE à §¬¥à root-ª â «®£
|
||||
SUB B
|
||||
JR NC,RTD1
|
||||
ADD A,B
|
||||
LD B,A
|
||||
RTD1 LD A,(FatBuffer.DRIVE)
|
||||
LD DE,DIR
|
||||
LD C,Dss.DRV.Read
|
||||
LD B,A ; ç¨á«® ᥪâ®à®¢
|
||||
RTD1 LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||
LD DE,DIR ; ¡ãä¥à
|
||||
LD C,Dss.DRV.Read ; ç⥨¥ ᥪâ®à®¢
|
||||
RST ToDSS.DRV
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
AND A
|
||||
RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; ‘¡à®á¨âì ª¥è ª â «®£ ¤¨áª.
|
||||
; ¢å®¤: iy=áâàãªâãà ¤¥áªà¨¯â®à
|
||||
;-------------------------------------------------
|
||||
SAVEDIR XOR A
|
||||
LD HL,0
|
||||
LD IX,0
|
||||
@ -1003,7 +1048,7 @@ RTD1S LD A,(FatBuffer.DRIVE)
|
||||
AND A
|
||||
RET
|
||||
|
||||
DIRSIZE: WORD 0
|
||||
DIRSIZE: WORD 0 ; à §¬¥à ᯨ᪠ª â «®£ size_cash_directory
|
||||
|
||||
;!TEST
|
||||
;BANK:
|
||||
@ -1017,6 +1062,8 @@ DIRSIZE: WORD 0
|
||||
; RET
|
||||
;
|
||||
|
||||
|
||||
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï „Ž‘
|
||||
BANKTBL: BLOCK USING_MEMPAGES+1,#FF
|
||||
|
||||
;!TODO
|
||||
@ -1073,11 +1120,20 @@ BANKTBL: BLOCK USING_MEMPAGES+1,#FF
|
||||
;HANDTA BLOCK 32,0
|
||||
|
||||
|
||||
MASKARE: BLOCK 32,0 ;!HARDCODE ŻŽçĽŹă 32?
|
||||
MASKARE: BLOCK 8,0 ; ¨¬ï ä ©«
|
||||
BLOCK 3,0 ; à áè.
|
||||
BLOCK 21,0 ; 11+21=32
|
||||
;-------------------------------------------------
|
||||
; <20>८¡à §®¢ âì ¨¬ï 8.3 -> 11 ä®à¬ â
|
||||
; ¢å®¤: hl = 8.3 ¨¬ï
|
||||
; de = ¡ãä¥à ¨¬¥¨ 11 ᨬ¢. ä®à¬ â
|
||||
; ¯à¨ ®è¨¡ª¥ CF - ¥¤®¯. ¨¬ï
|
||||
;
|
||||
; HL - MASK "file*.t??"
|
||||
; DE - 11 bytes filename
|
||||
; RET: C=2 FILE WITHOUT EXTENTION
|
||||
; C=1 FILE WITH EXTENTION
|
||||
;-------------------------------------------------
|
||||
MASK PUSH HL
|
||||
PUSH DE
|
||||
LD H,D
|
||||
@ -1095,52 +1151,53 @@ MASK PUSH HL
|
||||
CP '!'
|
||||
MASKB LD A,DSS_Error.sys.INVALID_NAME
|
||||
RET C
|
||||
LD BC,#0902
|
||||
LD BC,#0902 ; B - áç¥â稪
|
||||
MASK1 LD A,(HL)
|
||||
CP '!'
|
||||
CCF
|
||||
RET NC
|
||||
CP '"'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '*'
|
||||
JR Z,MASK3
|
||||
CP '+'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP ','
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '.'
|
||||
JR Z,MASK5
|
||||
CP '/'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP ':'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP ';'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '<'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '='
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '>'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '['
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '\'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP ']'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
CP '|'
|
||||
JR Z,MASK7
|
||||
JR Z,MASK_ERR
|
||||
; CP 'a' ;?????
|
||||
; JR C,MASK2
|
||||
; CP '{'
|
||||
; JR NC,MASK2
|
||||
; SUB #20
|
||||
CALL UPPER
|
||||
CALL UPPER ; a..z -> A..Z
|
||||
MASK2 LD (DE),A
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ MASK1
|
||||
MASK7 LD A,DSS_Error.sys.INVALID_NAME
|
||||
MASK_ERR:
|
||||
LD A,DSS_Error.sys.INVALID_NAME
|
||||
SCF
|
||||
RET
|
||||
|
||||
@ -1177,6 +1234,7 @@ MASK4 LD (DE),A
|
||||
SCF
|
||||
RET
|
||||
|
||||
; a..z -> A..Z
|
||||
UPPER CP 'a'
|
||||
RET C
|
||||
CP '{'
|
||||
@ -1203,6 +1261,19 @@ HGUPPER CP '
|
||||
DEC A
|
||||
RET
|
||||
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #21. ’¥ªãé ï ¤ â ¨ ¢à¥¬ï.
|
||||
;
|
||||
; ¢å®¤: ¥â
|
||||
; ¢ë室: D - ¤¥ì
|
||||
; E - ¬¥áïæ
|
||||
; IX - £®¤
|
||||
; H - ç á
|
||||
; L - ¬¨ãâë
|
||||
; B - ᥪã¤ë
|
||||
; C - ¤¥ì ¥¤¥«¨
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
SYSTIME LD C,BIOS.CMOS_TEST
|
||||
RST ToBIOS
|
||||
JP C,NOCMOS
|
||||
@ -1284,6 +1355,9 @@ GOODAGE POP AF
|
||||
AND A
|
||||
RET
|
||||
|
||||
; —⥨¥ ॣ¨áâ஢ CMOS
|
||||
; ¢å®¤: d=®¬¥à ॣ¨áâà
|
||||
|
||||
RCMOS LD C,BIOS.CMOS_RD
|
||||
RST ToBIOS
|
||||
; INPUT : A - BCD
|
||||
@ -1322,6 +1396,17 @@ NOCMOS2 LD C,0
|
||||
AND A
|
||||
RET
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #22. “áâ ®¢¨âì ⥪ãéãî ¤ âã ¨ ¢à¥¬ï.
|
||||
;
|
||||
; ¢å®¤: D - ¤¥ì
|
||||
; E - ¬¥áïæ
|
||||
; IX - £®¤
|
||||
; H - ç á
|
||||
; L - ¬¨ãâë
|
||||
; B - ᥪã¤ë
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
SETTIME PUSH IX
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
@ -1373,7 +1458,9 @@ YR INC A
|
||||
AND A
|
||||
RET
|
||||
|
||||
|
||||
;!FIXIT ¯¥à¥¤¥« âì ¯® ¤®ª¥ „ «« á ¨ § ¨áì ¢ ï祩ª¨ ç ᮢ
|
||||
; ‡ ¯¨áì ॣ¨áâ஢ CMOS
|
||||
; ¢å®¤: d=®¬¥à ॣ¨áâà
|
||||
WCMOS CALL HEX2BCD
|
||||
LD C,BIOS.CMOS_WR
|
||||
RST ToBIOS
|
||||
@ -1397,26 +1484,53 @@ H2B INC C
|
||||
OR B
|
||||
RET
|
||||
|
||||
; „ â ¯®-㬮«ç ¨î
|
||||
NC_DAY DW DAY*256+MONTH ;DAY/MONTH
|
||||
NC_HOUR DW #0000 ;HOUR/MINUTE
|
||||
NC_SEC DW #0001 ;SECOND/WEEKDAY
|
||||
NC_YEAR DW YEAR ;YEAR
|
||||
|
||||
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #17. ˆä®à¬ æ¨ï ® ¤ ⥠¨ ¢à¥¬¥¨ ä ©« .
|
||||
;
|
||||
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©«
|
||||
; ¢ë室: D - ¤¥ì
|
||||
; E - ¬¥áïæ
|
||||
; IX - £®¤
|
||||
; H - ç á
|
||||
; L - ¬¨ãâë
|
||||
; B - ᥪã¤ë
|
||||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
GET_D_T
|
||||
CALL SET_FM
|
||||
RET C
|
||||
LD E,(IY+_sFM.TIME)
|
||||
LD D,(IY+_sFM.TIME+1)
|
||||
LD C,(IY+_sFM.DATE)
|
||||
LD B,(IY+_sFM.DATE+1)
|
||||
CALL RMKTIME
|
||||
; ¢à¥¬ï/¤ âã ¨§ áâàãªâãàë ¤¥áªà.
|
||||
LD E,(IY+_sFM.TIME) ; ¢à¥¬ï
|
||||
LD D,(IY+_sFM.TIME+1) ;
|
||||
LD C,(IY+_sFM.DATE) ; ¤ â
|
||||
LD B,(IY+_sFM.DATE+1) ;
|
||||
CALL RMKTIME ; à ᪮¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||
AND A
|
||||
RET
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #18. ˆ§¬¥¥¨¥ ¤ âë ¨ ¢à¥¬¥¨ ä ©« .
|
||||
;
|
||||
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©«
|
||||
; D - ¤¥ì
|
||||
; E - ¬¥áïæ
|
||||
; IX - £®¤
|
||||
; H - ç á
|
||||
; L - ¬¨ãâë
|
||||
; B - ᥪã¤ë
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
PUT_D_T PUSH AF
|
||||
CALL MK_TIME
|
||||
POP AF
|
||||
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||
POP AF ; ¤¥áªà¨¯â®à
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
CALL SET_FM
|
||||
@ -1427,10 +1541,20 @@ PUT_D_T PUSH AF
|
||||
LD (IY+_sFM.TIME+1),D
|
||||
LD (IY+_sFM.DATE),C
|
||||
LD (IY+_sFM.DATE+1),B
|
||||
SET 7,(IY+_sFM.ACCESS_MODE) ;R06
|
||||
SET 7,(IY+_sFM.ACCESS_MODE) ;R06 ; ãáâ. ¯à¨§ ª ¨§¬¥¥¨ï ä ©«
|
||||
AND A
|
||||
RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; ‡ ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||
; ¢å®¤: de - ¤¥ì/¬¥áïæ
|
||||
; hl - ç áë/¬¨ãâë
|
||||
; b - ᥪã¤ë
|
||||
; ix - £®¤
|
||||
; ¢ë室: de - ¢à¥¬ï
|
||||
; bc - ¬¥áïæ/¤¥ì
|
||||
; ix - £®¤
|
||||
;
|
||||
;INPUT: D - DAY; E - MONTH
|
||||
; H - HOUR; L - MINUTE
|
||||
; B - SECOND (0...59)
|
||||
@ -1438,6 +1562,7 @@ PUT_D_T PUSH AF
|
||||
;OUTPUT: DE - hhhhhmmmmmmsssss h - hour, m - min, s - sec/2
|
||||
; BC - yyyyyyymmmmddddd y - year, m - month, d - day
|
||||
; (1980-2108)
|
||||
;-------------------------------------------------
|
||||
MK_TIME LD A,L
|
||||
RLCA
|
||||
RLCA
|
||||
@ -1468,6 +1593,16 @@ MK_TIME LD A,L
|
||||
AND A
|
||||
RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; <20> ᪮¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||
; ¢å®¤: de - ¢à¥¬ï
|
||||
; bc - ¬¥áïæ/¤¥ì
|
||||
; ix - £®¤
|
||||
; ¢ë室: de - ¤¥ì/¬¥áïæ
|
||||
; hl - ç áë/¬¨ãâë
|
||||
; b - ᥪã¤ë
|
||||
; ix - £®¤
|
||||
;
|
||||
;INPUT: DE - hhhhhmmmmmmsssss h - hour, m - min, s - sec/2
|
||||
; BC - yyyyyyymmmmddddd y - year, m - month, d - day
|
||||
; (1980-2108)
|
||||
@ -1475,6 +1610,7 @@ MK_TIME LD A,L
|
||||
; H - HOUR; L - MINUTE
|
||||
; B - SECOND (0...59)
|
||||
; IX- YEAR (0...65535)
|
||||
;-------------------------------------------------
|
||||
RMKTIME EX DE,HL
|
||||
LD A,C
|
||||
AND #1F
|
||||
@ -1507,8 +1643,19 @@ RMKTIME EX DE,HL
|
||||
AND A
|
||||
RET
|
||||
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #1D. ‘¬¥ ⥪ã饣® ª â «®£ .
|
||||
; Œ¥ï¥â ⥪ã騩 ª â «®£ ¨ ⥪ã騩 ¤¨áª, ¥á«¨ ® 㪠§ ¢ ä ©«®¢®©
|
||||
; ᯥæ¨ä¨ª 樨. …᫨ ¯ãâì ç¨ ¥âáï á "\" - íâ® ®§ ç ¥â ¯ãâì ®â
|
||||
; ª®à¥¢®£® ª â «®£ , ¨ ç¥ ®â ⥪ã饣®.
|
||||
;
|
||||
; ¢å®¤: HL - 㪠§ â¥«ì ¨¬ï ª â «®£
|
||||
; ¢ë室: ¥â
|
||||
;
|
||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME[\]",0
|
||||
CHDIR: CALL GETWORD
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
CHDIR: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
LD HL,TMPNAME
|
||||
LD A,(HL)
|
||||
@ -1516,51 +1663,59 @@ CHDIR: CALL GETWORD
|
||||
CALL NZ,OPENDIR
|
||||
RET
|
||||
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #1B. ‘®§¤ ¨¥ ª â «®£ .
|
||||
;
|
||||
; ¢å®¤: HL - 㪠§ â¥«ì ¨¬ï ª â «®£
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;
|
||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
MKDIR:
|
||||
_mSavePath
|
||||
CALL GETWORD
|
||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
LD HL,TMPNAME
|
||||
LD DE,MASKARE
|
||||
CALL MASK
|
||||
LD HL,TMPNAME ; 8.3 ¨¬ï
|
||||
LD DE,MASKARE ; ¡ãä¥à ¨¬¥¨ 11 ᨬ¢. ä®à¬ â
|
||||
CALL MASK ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
|
||||
RET C
|
||||
CALL LOADDIR
|
||||
CALL DSEARCH
|
||||
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||
CALL DSEARCH ; ¯®¨áª § ¯¨á¨ ª â «®£ ¢ ᯨ᪥ ¤¨áª
|
||||
LD A,DSS_Error.sys.DIR_EXISTS
|
||||
CCF
|
||||
RET C
|
||||
RET C ; ª â «®£ ©¤¥
|
||||
|
||||
CALL G_CLUST
|
||||
RET C
|
||||
PUSH HL
|
||||
LD DE,(FatBuffer.ENDCLUS)
|
||||
CALL W_T_FAT
|
||||
CALL WR_FAT
|
||||
LD DE,(FatBuffer.ENDCLUS) ; ®¬¥à ª« áâ¥à
|
||||
CALL W_T_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||
CALL WR_FAT ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||
LD HL,MASKARE
|
||||
LD DE,HANDBUF
|
||||
LD BC,11
|
||||
LDIR
|
||||
EX DE,HL
|
||||
LD A,#10
|
||||
LD A,#10 ; âਡãâ § ¯¨á¨ ª â «®£
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD BC,#0A00
|
||||
FIHND0 LD (HL),C
|
||||
LD BC,#0A00 ; b=áç¥â稪
|
||||
|
||||
.loop1: LD (HL),C
|
||||
INC HL
|
||||
DJNZ FIHND0
|
||||
DJNZ .loop1
|
||||
|
||||
PUSH HL
|
||||
CALL SYSTIME
|
||||
CALL MK_TIME
|
||||
CALL SYSTIME ; ã§ âì ⥪. ¤ âã ¨ ¢à¥¬ï
|
||||
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||
POP HL
|
||||
LD (HL),E
|
||||
LD (HL),E ; de=¢à¥¬ï
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
LD (HL),C
|
||||
LD (HL),C ; ¤¥ì
|
||||
INC HL
|
||||
LD (HL),B
|
||||
LD (HL),B ; ¬¥áïæ
|
||||
INC HL
|
||||
POP DE
|
||||
PUSH DE
|
||||
@ -1568,49 +1723,58 @@ FIHND0 LD (HL),C
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
LD BC,#0400
|
||||
FIHND2 LD (HL),C
|
||||
LD BC,#0400 ; b=áç¥â稪
|
||||
|
||||
.loop2: LD (HL),C
|
||||
INC HL
|
||||
DJNZ FIHND2
|
||||
CALL WRT_HND
|
||||
CALL SAVEDIR
|
||||
LD HL,SECBUF
|
||||
LD (HL),"."
|
||||
LD B,10
|
||||
MKD02 INC HL
|
||||
LD A,' '
|
||||
LD (HL),A
|
||||
DJNZ MKD02
|
||||
DJNZ .loop2
|
||||
|
||||
CALL WRT_HND ; ᪮¯¨à. ®¢ãî § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ )
|
||||
CALL SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||
LD HL,SECBUF ; ¡ãä¥à
|
||||
LD (HL),"." ; § ¯¨áì ⥪. ª â «®£
|
||||
LD BC,10*256 + ' ' ; b=áç¥â稪, c=¯à®¡¥«
|
||||
|
||||
.loop3: INC HL
|
||||
LD (HL),C
|
||||
DJNZ .loop3
|
||||
|
||||
INC HL
|
||||
LD DE,HANDBUF+11
|
||||
LD DE,HANDBUF+11 ; ï祩ª âਡã⮢ ä ©«
|
||||
EX DE,HL
|
||||
LD BC,21
|
||||
LDIR
|
||||
EX DE,HL
|
||||
LD (HL),"."
|
||||
LD (HL),"." ; § ¯¨áì த¨â. ª â «®£
|
||||
INC HL
|
||||
LD (HL),"."
|
||||
LD B,9
|
||||
LD BC,9*256 + ' ' ; b=áç¥â稪, c=¯à®¡¥«
|
||||
MKD03 INC HL
|
||||
LD A,#20
|
||||
LD (HL),A
|
||||
LD (HL),C
|
||||
DJNZ MKD03
|
||||
|
||||
INC HL
|
||||
PUSH HL
|
||||
|
||||
IF OLD_SET_BANK
|
||||
PUSH HL
|
||||
ENDIF
|
||||
|
||||
SET_PAGE_X DIRPAGE
|
||||
|
||||
IF OLD_SET_BANK
|
||||
POP HL
|
||||
ENDIF
|
||||
|
||||
POP HL
|
||||
PUSH AF
|
||||
LD A,(DIR)
|
||||
CP "."
|
||||
LD DE,DIR+11
|
||||
LD DE,DIR+11 ; âਡãâë § ¯¨á¨
|
||||
JP Z,MKD04
|
||||
LD IX,HANDBUF
|
||||
XOR A
|
||||
LD (IX+_sFM.ST_CLUSTER),A
|
||||
LD (IX+_sFM.ST_CLUSTER+1),A
|
||||
LD DE,HANDBUF+11
|
||||
LD DE,HANDBUF+11 ; ï祩ª âਡã⮢ ä ©«
|
||||
MKD04 EX DE,HL
|
||||
LD BC,HANDBUF.SIZE-11
|
||||
LDIR
|
||||
@ -1625,10 +1789,10 @@ MKD04 EX DE,HL
|
||||
LDIR ;!FIXIT 㦮 «¨ â ª ¬®£® £à®å âì?
|
||||
POP HL
|
||||
CALL NSECTOR
|
||||
LD A,(BootSector.S_P_C)
|
||||
LD A,(BootSector.S_P_C) ; ᥪâ®à®¢ ª« áâ¥à
|
||||
MKD12 PUSH AF
|
||||
PUSH HL
|
||||
PUSH IX
|
||||
PUSH HL ; áâ. à §àï¤
|
||||
PUSH IX ; ®¬¥à «®£. ᥪâ®à
|
||||
IN A,(SLOT3)
|
||||
PUSH AF
|
||||
IN A,(SLOT0)
|
||||
@ -1660,7 +1824,15 @@ MKD11 POP AF
|
||||
AND A
|
||||
RET
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #1C. “¤ «¥¨¥ ª â «®£ .
|
||||
; Œ®¦® 㤠«¨âì ⮫쪮 ¯ãá⮩ ª â «®£.
|
||||
;
|
||||
; ¢å®¤: HL - 㪠§ â¥«ì ¨¬ï ª â «®£
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;
|
||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
RMDIR:
|
||||
_mSavePath
|
||||
CALL GETWORD
|
||||
@ -1707,13 +1879,14 @@ RMD10 LD A,(HL)
|
||||
JP Z,RMD15 ;DIR EMPTY
|
||||
CP "."
|
||||
JR Z,RMD14
|
||||
CP #E5
|
||||
CP #E5 ;!HARDCODE ¡ ©â 㤠«¥¨ï ä ©«
|
||||
JR Z,RMD14
|
||||
LD DE,11
|
||||
LD DE,11 ;!HARDCODE ᬥé. ¤® ¡ ©â âਡã⮢
|
||||
ADD HL,DE
|
||||
LD A,(HL)
|
||||
SBC HL,DE
|
||||
BIT 3,A
|
||||
;BIT 3,A
|
||||
AND %0000'1000
|
||||
JP Z,RMD16 ;DIR NOT EMPTY
|
||||
RMD14 LD DE,#0020
|
||||
ADD HL,DE
|
||||
@ -1728,12 +1901,12 @@ RMD14 LD DE,#0020
|
||||
RMD11 POP AF
|
||||
DEC A
|
||||
JR NZ,RMD12
|
||||
POP HL
|
||||
CALL R_F_FAT
|
||||
EX DE,HL
|
||||
JR NC,RMD17
|
||||
POP HL ; ®¬¥à ª« áâ¥à
|
||||
CALL R_F_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||||
EX DE,HL ; hl=®¬¥à á«¥¤. ª« áâ¥à
|
||||
JR NC,RMD17 ; ¥ ª®¥æ 楯®çª¨
|
||||
RMD18 POP IX
|
||||
JP DELFILE
|
||||
JP DELFILE ; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥ ï"
|
||||
|
||||
RMD15 POP IX
|
||||
POP HL
|
||||
|
||||
@ -910,7 +910,7 @@ ADD_DE2: DJNZ ADD_DE1
|
||||
ADC HL,DE
|
||||
RET
|
||||
|
||||
; HL:DE / BC => DE:IX HL-OSTATOK (DE:BC.HL)
|
||||
; HL:DE / C => DE:IX HL-OSTATOK (DE:BC.HL). ‹¥£ª® ¯¥à¥¤¥« âì ¯®¤ HL:DE / A => HL:DE.A
|
||||
DIV32: LD A,C
|
||||
DEC A
|
||||
JR Z,.exit
|
||||
@ -926,8 +926,7 @@ DIV32: LD A,C
|
||||
JR NC,.loop
|
||||
LD A,B
|
||||
;
|
||||
.exit:
|
||||
LD XH,D
|
||||
.exit: LD XH,D
|
||||
LD XL,E
|
||||
EX DE,HL
|
||||
LD H,0
|
||||
|
||||
@ -1 +1 @@
|
||||
18
|
||||
19
|
||||
@ -17,7 +17,7 @@
|
||||
DEFINE USING_MEMPAGES 4
|
||||
DEFINE OLD_SET_BANK 0
|
||||
|
||||
;!FIXIT ᤥ« âì ⨯ DIRPAGE EQU 0 + BANKTBL ¨ ã¯à®áâ¨âì BANK
|
||||
; ͺνθ α―¨αͺ ͺ β «<EFBFBD>£
|
||||
DIRPAGE EQU 0
|
||||
FATPAGE EQU 1
|
||||
TXTPAGE EQU 2
|
||||
|
||||
Loading…
Reference in New Issue
Block a user