mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
CORE: начал делать FSinfo free clusters count
SHELL: команда DIR правильно определяет размеры
This commit is contained in:
parent
ebeb859eb1
commit
a904026a45
@ -130,28 +130,48 @@ DISKINF: LD C,B
|
||||
POP BC
|
||||
RET C
|
||||
;
|
||||
.CheckFreeSpace:
|
||||
.CheckFreeSpace:; ¥á«¨ GetFreeSpace ¥ ¢ë§ë¢ ¥âáï
|
||||
XOR A
|
||||
OR B
|
||||
LD A,#FF
|
||||
LD B,A
|
||||
LD C,A
|
||||
EXX
|
||||
LD B,A
|
||||
LD C,A
|
||||
EXX
|
||||
CALL NZ,.GetFreeSpace
|
||||
;
|
||||
;.FRESP2:
|
||||
LD D,B
|
||||
LD E,C
|
||||
; A = 0 if B != 0 before .GetFreeSpace
|
||||
;
|
||||
LD H,B
|
||||
LD L,C
|
||||
; LD DE,2
|
||||
; SBC HL,DE
|
||||
EX DE,HL
|
||||
EXX
|
||||
LD H,B
|
||||
LD L,C
|
||||
; LD DE,2
|
||||
; SBC HL,DE
|
||||
EX DE,HL
|
||||
EXX
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterLow)
|
||||
DEC HL
|
||||
; fat 32
|
||||
EXX
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterHigh)
|
||||
JR NC,.skip_dec_hl
|
||||
DEC HL
|
||||
EXX
|
||||
.skip_dec_hl: EXX
|
||||
LD BC,(CORE_BUFFERS.FatBuffer.BytesPerSector)
|
||||
LD A,(CORE_BUFFERS.FatBuffer.SectorsPerCluster)
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
.GetFreeSpace: XOR A
|
||||
LD HL,2 ; [ ] fat32 ? ®¬¥à ª« áâ¥à ®â ª®â®à®£® áç¨â âì
|
||||
LD HL,2 ; fat32 ®¬¥à ª« áâ¥à ®â ª®â®à®£® áç¨â âì
|
||||
; fat32
|
||||
EXX
|
||||
LD H,A
|
||||
@ -181,6 +201,7 @@ DISKINF: LD C,B
|
||||
OR E
|
||||
OR D
|
||||
JR NZ,.skip
|
||||
;
|
||||
INC BC
|
||||
LD A,B
|
||||
OR C
|
||||
@ -188,6 +209,7 @@ DISKINF: LD C,B
|
||||
EXX
|
||||
INC BC
|
||||
EXX
|
||||
;
|
||||
.skip: INC HL
|
||||
LD A,L
|
||||
OR H
|
||||
@ -195,7 +217,7 @@ DISKINF: LD C,B
|
||||
EXX
|
||||
INC HL
|
||||
EXX
|
||||
JR .loop_free_space
|
||||
JP .loop_free_space
|
||||
;
|
||||
; [ ] 22/11/23 ¯®¤äãªæ¨ï á ¤®¯.¨ä®©
|
||||
.mCOPY_LOOP: LD B,0
|
||||
|
||||
@ -12,16 +12,22 @@
|
||||
|
||||
; á¡à áë¢ ¥â § 票¥ ᢮¡®¤ëå ª« áâ¥à®¢ "¥®¯à¥¤¥«¥®"
|
||||
; ¬¥ï¥â § 票¥ ¯¥à¢®£® ᢮¡®¤®£® ª« áâ¥à
|
||||
SET_FSInfo: LD A,(CORE_BUFFERS.FatBuffer.RESET_FSINFO)
|
||||
SET_FSInfo: LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||
CP FAT_TYPE.x32
|
||||
RET NZ
|
||||
;
|
||||
LD A,(CORE_BUFFERS.FatBuffer.UPD_FSINFO)
|
||||
OR A
|
||||
RET Z
|
||||
;
|
||||
;!TODO ä®à¬¨à®¢ âì á ¬®¬ã ¢ ¡ãä¥à
|
||||
CALL READ_FSinfo
|
||||
;
|
||||
;!TODO FREE_CLUSTERS_COUNT
|
||||
LD HL,#FFFF
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER),HL
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER+2),HL
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_L)
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT),HL
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_H)
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT+2),HL
|
||||
; FIRST_FREE_CLUSTER
|
||||
LD HL,(G_CLUST.low)
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER),HL
|
||||
@ -29,7 +35,7 @@ SET_FSInfo: LD A,(CORE_BUFFERS.FatBuffer.RESET_FSINFO)
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER+2),HL
|
||||
;
|
||||
XOR A
|
||||
LD (CORE_BUFFERS.FatBuffer.RESET_FSINFO),A
|
||||
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
||||
JR WRITE_FSinfo
|
||||
; ;
|
||||
; <20>à®ç¨â âì BPB ¢ SECTOR_BUFFER
|
||||
@ -831,7 +837,7 @@ RD_BPB: ; LD C,SLOT3
|
||||
PUSH HL ; Total Sectors low
|
||||
SBC HL,DE
|
||||
;
|
||||
.HDDBIG: CALL ClusterToSector
|
||||
.HDDBIG: CALL SectorToCluster
|
||||
; LD A,(CORE_BUFFERS.FatBuffer.SectorsPerCluster)
|
||||
; SCF
|
||||
; .loop7: RRA
|
||||
@ -938,8 +944,8 @@ RD_BPB: ; LD C,SLOT3
|
||||
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),HL
|
||||
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster+2)
|
||||
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_H),BC
|
||||
|
||||
CALL ClusterToSector
|
||||
;
|
||||
CALL CLUSTER_TO_SECTOR
|
||||
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL
|
||||
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_H),BC
|
||||
;
|
||||
@ -1007,7 +1013,7 @@ RD_BPB: ; LD C,SLOT3
|
||||
DJNZ .fsinfo_loop
|
||||
;
|
||||
.error_sig: XOR #FF
|
||||
LD (CORE_BUFFERS.FatBuffer.RESET_FSINFO),A
|
||||
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
||||
;
|
||||
XOR A
|
||||
LD H,A
|
||||
@ -1030,27 +1036,32 @@ RD_BPB: ; LD C,SLOT3
|
||||
LD DE,#6141
|
||||
SBC HL,DE
|
||||
JR NZ,.error
|
||||
;!TODO FREE_CLUSTERS_COUNT
|
||||
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT)
|
||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT+2)
|
||||
; CF = 0
|
||||
CALL .check_cluster
|
||||
JR NC,.skip_FFFF
|
||||
;
|
||||
LD B,#FF
|
||||
LD C,B
|
||||
LD D,B
|
||||
LD E,B
|
||||
;
|
||||
.skip_FFFF: LD (CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_L),BC
|
||||
LD (CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_H),DE
|
||||
;
|
||||
; FIRST_FREE_CLUSTER
|
||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER+2)
|
||||
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER)
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterLow)
|
||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER+2)
|
||||
; CF = 0
|
||||
;!TODO MaxCluster - ¬ ªá¨¬ «ì® ¤®¯ãáâ¨¬ë© ¨«¨ 1 ¡®«ìè¥ ¬ ªá¨¬ «ì® ¤®¯ãá⨬®£®?
|
||||
SBC HL,BC
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterHigh)
|
||||
SBC HL,DE
|
||||
CALL .check_cluster
|
||||
JR C,.error
|
||||
;
|
||||
LD (G_CLUST.high),DE
|
||||
LD (G_CLUST.low),BC
|
||||
;!TODO FREE_CLUSTERS_COUNT
|
||||
;LD HL,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT)
|
||||
;LD (CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_L),HL
|
||||
;LD HL,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT+2)
|
||||
;LD (CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_H),HL
|
||||
;
|
||||
XOR A
|
||||
.error: LD (CORE_BUFFERS.FatBuffer.RESET_FSINFO),A
|
||||
.error: LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
||||
RET Z
|
||||
;!TODO FREE_CLUSTERS_COUNT
|
||||
;LD HL,#FFFF
|
||||
@ -1064,12 +1075,19 @@ RD_BPB: ; LD C,SLOT3
|
||||
LD L,H
|
||||
LD (G_CLUST.high),HL
|
||||
RET
|
||||
;
|
||||
;!TODO MaxCluster - ¬ ªá¨¬ «ì® ¤®¯ãáâ¨¬ë© ¨«¨ 1 ¡®«ìè¥ ¬ ªá¨¬ «ì® ¤®¯ãá⨬®£®?
|
||||
.check_cluster: LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterLow)
|
||||
SBC HL,BC
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterHigh)
|
||||
SBC HL,DE
|
||||
RET
|
||||
ENDIF
|
||||
;;;;;;;;
|
||||
|
||||
; --> BC:HL - Cluster
|
||||
; <-- BC:HL - Sector
|
||||
ClusterToSector:
|
||||
; --> BC:HL - Sector
|
||||
; <-- BC:HL - Cluster
|
||||
SectorToCluster:
|
||||
LD A,B
|
||||
AND #0F
|
||||
LD B,A
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
; “¤ «ï¥â § ¯¨áì ¢ ª â «®£¥ ¨ ®á¢®¡®¦¤ ¥â § ïâãî æ¥¯®çªã ª« áâ¥à®¢
|
||||
; ‚室: IX - 㪠§ ⥫ì 㤠«ï¥¬ãî § ¯¨áì ¢ DIRPAGE
|
||||
;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||||
DELETE_REC_FAT: SET_PAGE_X DIRPAGE:
|
||||
DELETE_REC_FAT: SET_PAGE_X DIRPAGE
|
||||
EX AF,AF'
|
||||
CALL DELETE_LFN_RECORDS ; [x] 㤠«¥¨¥ § ¯¨á¨ LFN
|
||||
LD (IX + FAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
||||
@ -68,6 +68,7 @@ DELETE_REC_FAT: SET_PAGE_X DIRPAGE:
|
||||
; ‚室: HL':HL - cluster
|
||||
; ¯®àâ¨â DE, BC' ¨ A
|
||||
; [x] à ìè¥ ¡ë« è á 㯥à¥âìáï ¢ "DISK FULL" ¥á«¨ G_CLUST 㪠§ë¢ « ª« áâ¥à ¤ «ìè¥, 祬 ¤à㣮© ᢮¡®¤ë©
|
||||
; [ ] free clusters for FSInfo
|
||||
SET_NEW_FREE_CLUSTER:
|
||||
XOR A
|
||||
;LD B,D
|
||||
@ -138,16 +139,62 @@ G_CLUST: ;
|
||||
LD (G_CLUST.high),HL
|
||||
EXX
|
||||
INC A
|
||||
LD (CORE_BUFFERS.FatBuffer.RESET_FSINFO),A
|
||||
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
||||
; [ ] free clusters for FSInfo
|
||||
; XOR A ; 㬥ìè¨âì
|
||||
; CALL SET_NEW_FREE_CLUSTERS
|
||||
RET
|
||||
|
||||
; ‚室: A - 㬥ìè¨âì (0) ¨«¨ 㢥«¨ç¨âì (!0) ç¨á«® ᢮¡®¤ëå ª« áâ¥à®¢
|
||||
SET_NEW_FREE_CLUSTERS:
|
||||
PUSH HL
|
||||
EXX
|
||||
PUSH HL
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_H)
|
||||
EXX
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_L)
|
||||
;
|
||||
OR A
|
||||
JR Z,.dec_clusters
|
||||
; inc clusters
|
||||
INC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,.set_new
|
||||
EXX
|
||||
INC HL
|
||||
EXX
|
||||
;
|
||||
.set_new: LD (CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_L),HL
|
||||
EXX
|
||||
LD (CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_H),HL
|
||||
POP HL
|
||||
EXX
|
||||
POP HL
|
||||
LD A,1
|
||||
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
||||
RET
|
||||
;
|
||||
.dec_clusters: LD A,H
|
||||
OR L
|
||||
DEC HL
|
||||
JR NZ,.set_new
|
||||
EXX
|
||||
DEC HL
|
||||
EXX
|
||||
JP .set_new
|
||||
; ;
|
||||
|
||||
;
|
||||
; [x] fat32 ;!TEST
|
||||
; <20>ਪ९¨âì ª ¯®á«¥¤¥¬ã ª« áâ¥àã æ¥¯®çª¨ ®¢ë© ¯ãá⮩ ª« áâ¥à
|
||||
; ‚室: HL':HL - ®¬¥à ª« áâ¥à ª ª®â®à®¬ã ¯à¨ªà¥¯¨âì ¯ãá⮩
|
||||
; ‚ë室: HL':HL - ®¬¥à ª« áâ¥à ª ª®â®à®¬ã ¯à¨ªà¥¯¨«áï ¯ãá⮩
|
||||
; DE':DE - ®¬¥à ¯ãá⮣® ª« áâ¥à
|
||||
INC_FAT: PUSH HL ; ⥪ã騩 ª« áâ¥à
|
||||
INC_FAT: ; [ ] free clusters for FSInfo
|
||||
;
|
||||
;
|
||||
PUSH HL ; ⥪ã騩 ª« áâ¥à
|
||||
EXX
|
||||
PUSH HL ; ⥪ã騩 ª« áâ¥à
|
||||
EXX
|
||||
@ -210,7 +257,7 @@ CHECK_CLUSTER_IS_SMALLER:
|
||||
LD A,DSS_Error.sys.DISK_FULL
|
||||
RET C
|
||||
RET NZ
|
||||
; ¯à®¢¥à塞 ¬« ¤è¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||
; ¯à®¢¥à塞 ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||
.low: EX DE,HL
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterLow)
|
||||
SBC HL,DE
|
||||
@ -585,9 +632,7 @@ WRITE_FAT_TABLE:
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
; ‡ ¯¨áì ª¥è FAT- ¤¨áª
|
||||
.Start: LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||
CP FAT_TYPE.x32
|
||||
CALL Z,SET_FSInfo
|
||||
.Start: CALL SET_FSInfo
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.CacheBlock)
|
||||
;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT
|
||||
CALL GET_SECTOR_OF_FAT
|
||||
|
||||
@ -172,10 +172,15 @@ FDDRIVE:
|
||||
|
||||
.STAT: XOR A
|
||||
RET
|
||||
;!FIXIT ¯à®¢¥àïâì ‚ƒ93 ª®£¤ íâ® á⠥⠢®§¬®¦ë¬
|
||||
.CHEK: LD A,#FF
|
||||
AND A
|
||||
RET
|
||||
|
||||
.CHEK: ;!FIXIT ¯à®¢¥àïâì ‚ƒ93 ª®£¤ íâ® á⠥⠢®§¬®¦ë¬
|
||||
IF NON_REMOVABLE_FDD
|
||||
XOR A
|
||||
ELSE
|
||||
LD A,#FF
|
||||
OR A
|
||||
ENDIF
|
||||
RET
|
||||
|
||||
;DE - ADDRESS
|
||||
.GBPB: LD IX,0
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
.FSINFO_Sector WORD #01
|
||||
.BPB_SERIAL_NUMBER DWORD #00000000
|
||||
.BPB_LABEL BLOCK 11,' ' ; 11 ¤«ï FAT, 31 ¤«ï CDFS
|
||||
.RESET_FSINFO BYTE 0
|
||||
.UPD_FSINFO BYTE 0
|
||||
; IF USE_FSINFO_FAT32
|
||||
;.FREE_CLUSTERS_COUNT_L WORD #FFFF
|
||||
;.FREE_CLUSTERS_COUNT_H WORD #FFFF
|
||||
|
||||
@ -1 +1 @@
|
||||
982
|
||||
978
|
||||
@ -102,6 +102,7 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
||||
DEFINE EnoughtOnly_LF 0
|
||||
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
||||
DEFINE CHECK_DRIVE_CHANGE 1 ; 1 - â®à¬®§¥¥, ® ¡¥§®¯ ᥥ
|
||||
DEFINE NON_REMOVABLE_FDD 0
|
||||
;
|
||||
;-------------------[MEMORY]-------------------------;
|
||||
DEFINE PORTAL.RSTx18_SWITCH_ADDRESS #82
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -29,35 +29,40 @@ MAIN_MSG:
|
||||
stN .CRLF_ : db CR,LF,0; |
|
||||
;________________/
|
||||
;
|
||||
stN .DIR_1_ : db "Volume in drive %1 %4 %5",CR,LF
|
||||
db "Volume Serial Number is %2",CR,LF
|
||||
db CR,LF,"Directory of %3",CR,LF,LF,0
|
||||
stN .VERS_ : db "Estex DSS version %1. Shell version %2.",CR,LF,0 ;R13
|
||||
stN .DATE_ : db "Current date: %1, %2",CR,LF,0 ; [x] ¢ë¢®¤ ¤ï ¥¤¥«¨ 26/01/2023
|
||||
stN .TIME_ : db "Current time: %1",CR,LF,0
|
||||
stN .PAUSE_ : db "Press any key to continue . . .",CR,0
|
||||
stN .DIR_ESC_ : db 'Command "DIR" aborted by user ',CR,LF,CR,LF,0
|
||||
stN .INV_ : db "Invalid parametr",CR,LF,0
|
||||
stN .ECHO_ : db "Echo is %1",CR,LF,0
|
||||
stN .ON_ : db "on",0
|
||||
stN .OFF_ : db "off",0
|
||||
stN .DIR_2_ : db " %1 File(s) %2 bytes",CR,LF
|
||||
db " %3 Dir(s) ",0
|
||||
stN .DIR_4_ : db "%4 bytes free",CR,LF,0
|
||||
; db " %3 Dir(s) %4 bytes free",CR,LF,LF,0
|
||||
; : db " %3 Dir(s)",CR,LF,LF,0
|
||||
stN .DIR_3_ : db "%1 %2 %3 %4 - %5",CR,LF,0 ;FILENAME EXT SIZE DATE TIME
|
||||
stN .HELP_ : db "COMMANDS:",CR,LF,CR,LF
|
||||
db "DIR REN | RENAME PATH HELP ",CR,LF
|
||||
db "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF
|
||||
db "MD | MKDIR TIME ECHO EXIT ",CR,LF
|
||||
db "RD | RMDIR DATE CLS REBOOT ",CR,LF,LF,0
|
||||
stN .CALC_ : db "Calculating free space...",CR,0
|
||||
; 1 2 3 4 5 6 7
|
||||
; 01234567890123456789012345678901234567890123456789012345678901234567890123456789;
|
||||
stN .DIR_1_ : db "Volume in drive %1 %4 %5\r\n"
|
||||
db "Volume Serial Number is %2\r\n"
|
||||
DZ "\r\nDirectory of %3\r\n\n"
|
||||
stN .VERS_ : DZ "Estex DSS version %1. Shell version %2.\r\n" ;R13
|
||||
stN .DATE_ : DZ "Current date: %1, %2\r\n" ; [x] ¢ë¢®¤ ¤ï ¥¤¥«¨ 26/01/2023
|
||||
stN .TIME_ : DZ "Current time: %1\r\n"
|
||||
stN .PAUSE_ : DZ "Press any key to continue . . .\r"
|
||||
stN .DIR_ESC_ : DZ "Command 'DIR' aborted by user \r\n\n"
|
||||
stN .INV_ : DZ "Invalid parametr\r\n"
|
||||
stN .ECHO_ : DZ "Echo is %1\r\n"
|
||||
stN .ON_ : DZ "on"
|
||||
stN .OFF_ : DZ "off"
|
||||
; stN .DIR_2_ : db " %3 File(s) %1 byte(s)\r\n"
|
||||
; DZ " %4 Dir(s) "
|
||||
; stN .DIR_4_ : DZ "%1 bytes free\r\n"
|
||||
stN .DIR_2_ : db " %3 File(s)\r %1 byte(s)\r\n"
|
||||
DZ " %4 Dir(s)"
|
||||
stN .DIR_4_ : DZ "\r %1 bytes free\r\n"
|
||||
; stN .DIR_3_ : DZ "%1 %2 %3 %4 - %5\r\n" ;FILENAME EXT SIZE DATE TIME
|
||||
stN .DIR_3_ : DZ "%4 %5 %3 %1 %2 \r\n" ;DATE TIME SIZE FILENAME EXT
|
||||
stN .HELP_ : db "COMMANDS:\r\n"
|
||||
db "DIR REN | RENAME PATH HELP \r\n"
|
||||
db "CD | CHDIR DEL | ERASE SET VER | VERSION \r\n"
|
||||
db "MD | MKDIR TIME ECHO EXIT \r\n"
|
||||
DZ "RD | RMDIR DATE CLS REBOOT \r\n\n"
|
||||
stN .CALC_ : DZ "Calculating free space...\r"
|
||||
; ;R11
|
||||
db 0
|
||||
DZ "Unknown command"
|
||||
db 0
|
||||
DZ "Unknown command"
|
||||
; ;
|
||||
.TABLE.Size EQU $-.TABLE
|
||||
;
|
||||
!txtCounter=0
|
||||
;
|
||||
;
|
||||
@ -42,7 +42,7 @@
|
||||
include 'shared_includes/constants/bios_equ.inc'
|
||||
include 'shared_includes/constants/dss_equ.inc'
|
||||
include 'SHELL/version.inc'
|
||||
|
||||
include 'shared_includes/structures/FileSystem.inc'
|
||||
;
|
||||
; Program EQU section
|
||||
;---------------------------------------------------------------------[]
|
||||
@ -379,7 +379,7 @@ COMPARE:
|
||||
; (hl) -> (de)
|
||||
ncopy_string:
|
||||
ld bc,15 ; ¬ ªá. ¤«¨ áâப¨
|
||||
ld a,(hl)
|
||||
.start: ld a,(hl)
|
||||
ldi
|
||||
ret po
|
||||
or a
|
||||
@ -457,7 +457,7 @@ STR2DEC:
|
||||
;!FIXIT ¥áâì ¤ã¡« hex2dec_ascii_16bit
|
||||
PDIGIT: ld de,10000
|
||||
ld a,#C8 ; ret z
|
||||
ld (.patch),a
|
||||
ld (.RET_Z),a
|
||||
call .DIG
|
||||
ld de,1000
|
||||
call .DIG
|
||||
@ -467,7 +467,7 @@ PDIGIT: ld de,10000
|
||||
call .DIG
|
||||
ld a,l
|
||||
add a,"0"
|
||||
;!TEST
|
||||
;!TEST ¯®ª ¥ âॡã¥âáï ¯¥à¥¤ ¢ âì á«¥¤ãî騩 IX ¤ «ìè¥
|
||||
;ld (ix+0),a
|
||||
;inc ix
|
||||
;ld (ix+0),0
|
||||
@ -476,22 +476,19 @@ PDIGIT: ld de,10000
|
||||
;
|
||||
ret
|
||||
.DIG: xor a
|
||||
inc a
|
||||
.loop: inc a
|
||||
sbc hl,de
|
||||
jr nc,$-3
|
||||
jr nc,.loop
|
||||
add hl,de
|
||||
dec a
|
||||
.patch: ret z
|
||||
.RET_Z: ret z
|
||||
add a,"0"
|
||||
ld (ix+0),a
|
||||
inc ix
|
||||
xor a ; nop
|
||||
ld (.patch),a
|
||||
ld (.RET_Z),a
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
Restore_Screen:
|
||||
PUSH AF
|
||||
LD C,Dss.GetVMod
|
||||
|
||||
@ -1 +1 @@
|
||||
323
|
||||
342
|
||||
Loading…
Reference in New Issue
Block a user