mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
CORE: вроде ускорена запись на дискеты. SHELL: украшательства команды DIR
This commit is contained in:
parent
0312779217
commit
00e9cb59f0
@ -544,8 +544,8 @@ RD_BPB: LD C,SLOT3
|
|||||||
; ADD HL,DE
|
; ADD HL,DE
|
||||||
|
|
||||||
;LD (FatBuffer.FAT_FRM),HL ; first sector FAT
|
;LD (FatBuffer.FAT_FRM),HL ; first sector FAT
|
||||||
LD (FatBuffer.FAT1_XX),HL ; first sector FAT #1
|
LD (FatBuffer.FAT1_SEC_L),HL ; first sector FAT #1
|
||||||
LD (FatBuffer.FAT2_XX),HL
|
LD (FatBuffer.FAT2_SEC_L),HL
|
||||||
|
|
||||||
//LD E,(IY+_sBOOT_SECTOR_PARAMS.S_P_F) ; sectors in FAT
|
//LD E,(IY+_sBOOT_SECTOR_PARAMS.S_P_F) ; sectors in FAT
|
||||||
//LD D,(IY+_sBOOT_SECTOR_PARAMS.S_P_F+1)
|
//LD D,(IY+_sBOOT_SECTOR_PARAMS.S_P_F+1)
|
||||||
@ -557,7 +557,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
JR Z,.loop1
|
JR Z,.loop1
|
||||||
DEC A
|
DEC A
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
LD (FatBuffer.FAT2_XX),HL
|
LD (FatBuffer.FAT2_SEC_L),HL
|
||||||
;C_DATA1
|
;C_DATA1
|
||||||
.loop1: ADD HL,DE
|
.loop1: ADD HL,DE
|
||||||
DEC A
|
DEC A
|
||||||
@ -780,7 +780,11 @@ RD_BPB: LD C,SLOT3
|
|||||||
SET_PAGE_X FATPAGE
|
SET_PAGE_X FATPAGE
|
||||||
|
|
||||||
PUSH AF
|
PUSH AF
|
||||||
XOR A
|
; [ ] fat32
|
||||||
|
; XOR A
|
||||||
|
; HL = 0
|
||||||
|
EX DE,HL
|
||||||
|
;
|
||||||
CALL READ_FAT_TABLE
|
CALL READ_FAT_TABLE
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -820,11 +824,12 @@ FatBuffer:
|
|||||||
.READ_PG: DB #00 ;!TODO ¥ ¨á¯®«ì§ãîâáï ¥ª®â®àë¥ § 票ï, ® § ¤ã¬ª ¥¯«®å ï)))
|
.READ_PG: DB #00 ;!TODO ¥ ¨á¯®«ì§ãîâáï ¥ª®â®àë¥ § 票ï, ® § ¤ã¬ª ¥¯«®å ï)))
|
||||||
.BLOCK: DB #00
|
.BLOCK: DB #00
|
||||||
.DIR_CLU_L: DW #0000
|
.DIR_CLU_L: DW #0000
|
||||||
.DIR_CLU_H: DW #0000 ; fat32
|
.DIR_CLU_H: DW #0000 ; [ ] fat32
|
||||||
.DRIVE: DB #FF
|
.DRIVE: DB #FF
|
||||||
.FAT_FRM:
|
.FAT1_SEC_L: DW #0000 ; MSD_FAT_SEC first sector FAT (FAT_FRM)
|
||||||
.FAT1_XX: DW #0000 ; MSD_FAT_SEC first sector FAT
|
.FAT1_SEC_H: DW #0000 ; [ ] fat32
|
||||||
.FAT2_XX: DW #0000
|
.FAT2_SEC_L: DW #0000
|
||||||
|
.FAT2_SEC_H: DW #0000 ; [ ] fat32
|
||||||
.DIR_FRH: DW #0000 ; MSD_CAT_SEC first sector DIR ; !TODO ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£ ;!FIXIT ¥ ¨á¯®«ì§ã¥âáï
|
.DIR_FRH: DW #0000 ; MSD_CAT_SEC first sector DIR ; !TODO ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£ ;!FIXIT ¥ ¨á¯®«ì§ã¥âáï
|
||||||
.DIR_FRL: DW #0000 ; MSD_CAT_SEC first sector DIR
|
.DIR_FRL: DW #0000 ; MSD_CAT_SEC first sector DIR
|
||||||
.F_P_S: DB #00 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
.F_P_S: DB #00 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
||||||
@ -834,10 +839,10 @@ FatBuffer:
|
|||||||
.CLU_LEN:
|
.CLU_LEN:
|
||||||
.B_P_C: DW #0000 ; CLUSTER_LEN
|
.B_P_C: DW #0000 ; CLUSTER_LEN
|
||||||
.C_P_B: DB #00 ; A - Clusters per bank (16k) (ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“) ; ????? íâ® ¨á¯®«ì§ã¥âáï?
|
.C_P_B: DB #00 ; A - Clusters per bank (16k) (ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“) ; ????? íâ® ¨á¯®«ì§ã¥âáï?
|
||||||
.FAT_TYPE: DB #00 ; TYPE FAT (12 - 12bit, 16 - 16bit, 32 - 32bit) ;!TODO fat32
|
.FAT_TYPE: DB #00 ; TYPE FAT (12 - 12bit, 16 - 16bit, 32 - 32bit) ; [x] fat32
|
||||||
.S_X_H: DW #0000 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ 樫¨¤à¥ ; ????? íâ® ¨á¯®«ì§ã¥âáï?
|
.S_X_H: DW #0000 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ 樫¨¤à¥ ; ????? íâ® ¨á¯®«ì§ã¥âáï?
|
||||||
.ENDCLUS_LOW: DW #FFFF
|
.ENDCLUS_LOW: DW #FFFF
|
||||||
.ENDCLUS_HIGH: DW #FFFF ; !TODO for fat32
|
.ENDCLUS_HIGH: DW #FFFF ; [ ] fat32
|
||||||
;
|
;
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
|
|||||||
@ -155,6 +155,7 @@ READ_FROM_FAT:
|
|||||||
CALL GET_FAT32_CELL
|
CALL GET_FAT32_CELL
|
||||||
DI
|
DI
|
||||||
HALT
|
HALT
|
||||||
|
RET
|
||||||
;-----------------------------------------------------------
|
;-----------------------------------------------------------
|
||||||
; ‡ ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
; ‡ ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
; ¢å®¤: hl = ®¬¥à ª« áâ¥à ¢ ª®â®àë© § ¯¨á âì
|
; ¢å®¤: hl = ®¬¥à ª« áâ¥à ¢ ª®â®àë© § ¯¨á âì
|
||||||
@ -253,27 +254,40 @@ WRITE_TO_FAT:
|
|||||||
.FAT32: ; [ ] fat32
|
.FAT32: ; [ ] fat32
|
||||||
DI
|
DI
|
||||||
HALT
|
HALT
|
||||||
;RX01
|
|
||||||
;RE_FAT:
|
;RE_FAT:
|
||||||
; <20>à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
;RX01
|
||||||
; A - NEW FAT BLOCK
|
; <20>à®ç¨â âì ¢ ª¥è •• ᥪâ®à®¢ FAT-
|
||||||
|
; [ ] fat32
|
||||||
|
//; A - NEW FAT BLOCK
|
||||||
|
; DE - NEW FAT BLOCK
|
||||||
|
;
|
||||||
READ_FAT_TABLE:
|
READ_FAT_TABLE:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH AF
|
; [x] fat32
|
||||||
|
; PUSH AF
|
||||||
|
PUSH DE
|
||||||
|
;
|
||||||
LD A,(FatCache.Update)
|
LD A,(FatCache.Update)
|
||||||
OR A
|
OR A
|
||||||
CALL NZ,WRITE_FAT_TABLE.Start
|
CALL NZ,WRITE_FAT_TABLE.Start
|
||||||
POP AF
|
; [x] fat32
|
||||||
LD L,A
|
; POP AF
|
||||||
XOR A
|
POP DE
|
||||||
LD H,A ;!FIXIT fat32 - ã ä â32 ¡«®ª®¢ ¬®¦¥â ¡ëâì ¢ «®¬
|
;
|
||||||
|
|
||||||
|
;[ ] fat32
|
||||||
|
; LD L,A
|
||||||
|
; XOR A
|
||||||
|
; LD H,A
|
||||||
|
EX DE,HL
|
||||||
|
;
|
||||||
LD (FatCache.Block),HL
|
LD (FatCache.Block),HL
|
||||||
LD (FatCache.Update),A
|
LD (FatCache.Update),A
|
||||||
;FAT BLOCK ^ FAT_CACHE.Degree = SECTOR OF FAT
|
;FAT BLOCK ^ FAT_CACHE.Degree = SECTOR OF FAT
|
||||||
DUP FAT_CACHE.Degree_16
|
DUP FAT_CACHE.Degree_16
|
||||||
ADD HL,HL ;x2
|
ADD HL,HL ;x2
|
||||||
EDUP
|
EDUP
|
||||||
LD DE,(FatBuffer.FAT_FRM)
|
LD DE,(FatBuffer.FAT1_SEC_L)
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
;
|
;
|
||||||
@ -291,6 +305,7 @@ READ_FAT_TABLE:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
; <20>®¤ª«îç¨âì ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
; <20>®¤ª«îç¨âì ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
|
; [ ] fat32
|
||||||
WRITE_FAT_TABLE:
|
WRITE_FAT_TABLE:
|
||||||
SET_PAGE_X FATPAGE
|
SET_PAGE_X FATPAGE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
@ -307,7 +322,6 @@ WRITE_FAT_TABLE:
|
|||||||
ADD HL,HL ;x2
|
ADD HL,HL ;x2
|
||||||
EDUP
|
EDUP
|
||||||
; HL - ®¬¥à «®£. ᥪâ®à
|
; HL - ®¬¥à «®£. ᥪâ®à
|
||||||
PUSH HL
|
|
||||||
LD B,H
|
LD B,H
|
||||||
LD C,L ;BC - BLOCK OF FAT
|
LD C,L ;BC - BLOCK OF FAT
|
||||||
LD DE,FAT_CACHE.Sectors
|
LD DE,FAT_CACHE.Sectors
|
||||||
@ -326,14 +340,64 @@ WRITE_FAT_TABLE:
|
|||||||
.WALLFAT:; !TODO çñ¡ áà §ã ¢ IX ¥ £à㧨âì FAT_FRM?
|
.WALLFAT:; !TODO çñ¡ áà §ã ¢ IX ¥ £à㧨âì FAT_FRM?
|
||||||
LD H,B
|
LD H,B
|
||||||
LD L,C
|
LD L,C
|
||||||
LD DE,(FatBuffer.FAT_FRM)
|
PUSH HL ; HL - ®¬¥à «®£. ᥪâ®à
|
||||||
|
;
|
||||||
|
LD DE,(FatBuffer.FAT1_SEC_L)
|
||||||
|
LD B,A ; ç¨á«® ᥪâ®à®¢
|
||||||
|
LD C,Dss.DRV.Write ; § ¯¨áì ᥪâ®à®¢
|
||||||
|
PUSH BC
|
||||||
|
; á®åà 塞 ¯¥à¢ãî ª®¯¨î FAT
|
||||||
|
CALL .SAVE_FAT_XX
|
||||||
|
; [ ] ¥á«¨ ¢á¥£® ®¤ â ¡«¨æ FAT, â® ¯®¢â®à®© § ¯¨á¨ ¥ ¯à®¨á室¨â 13/03/2024
|
||||||
|
LD DE,(FatBuffer.FAT2_SEC_L)
|
||||||
|
LD HL,(FatBuffer.FAT1_SEC_L)
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
POP BC ; b=ç¨á«® ᥪâ®à®¢
|
||||||
|
POP HL
|
||||||
|
JR Z,.only_one_FAT
|
||||||
|
;
|
||||||
|
; á®åà 塞 ¢â®àãî ª®¯¨î FAT
|
||||||
|
CALL .SAVE_FAT_XX
|
||||||
|
AND A ;!TODO ¥â ª®âà®«ï ®è¨¡®ª
|
||||||
|
.only_one_FAT:
|
||||||
|
.ERR: LD A,0
|
||||||
|
LD (FatCache.Update),A
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.SAVE_FAT_XX:
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
;
|
; ®¬¥à «®£. ᥪâ®à
|
||||||
|
;LD IX,0
|
||||||
|
;ADD IX,DE
|
||||||
LD XH,D
|
LD XH,D
|
||||||
LD XL,E
|
LD XL,E
|
||||||
|
;
|
||||||
|
LD HL,0 ; áâ. à §àï¤
|
||||||
|
; CF = ADD HL,DE
|
||||||
|
; [ ] fat32 - ¢â®à ï â ¡«¨æ ä â ¬®¦¥â ¦¥ ã¥å âì ¤ «ìè¥ 16-¡¨â «®£¨ç¥áª®£® ᥪâ®à ?
|
||||||
|
IF _FAT32_ENABLE
|
||||||
|
RL L
|
||||||
|
ENDIF
|
||||||
|
;HL:IX - SECTOR OF FAT FOR SAVE
|
||||||
|
LD DE,FATPAGE.cache ; ®âªã¤
|
||||||
|
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||||
|
JP ToDSS.DRV
|
||||||
|
/*
|
||||||
|
.WALLFAT:; !TODO çñ¡ áà §ã ¢ IX ¥ £à㧨âì FAT_FRM?
|
||||||
|
LD H,B
|
||||||
|
LD L,C
|
||||||
|
PUSH HL ; HL - ®¬¥à «®£. ᥪâ®à
|
||||||
|
;
|
||||||
|
LD DE,(FatBuffer.FAT1_SEC_L)
|
||||||
|
ADD HL,DE
|
||||||
|
EX DE,HL
|
||||||
|
; ®¬¥à «®£. ᥪâ®à
|
||||||
;LD IX,0
|
;LD IX,0
|
||||||
;ADD IX,DE ; ®¬¥à «®£. ᥪâ®à
|
;ADD IX,DE
|
||||||
|
LD XH,D
|
||||||
|
LD XL,E
|
||||||
;
|
;
|
||||||
LD HL,0 ; áâ. à §àï¤
|
LD HL,0 ; áâ. à §àï¤
|
||||||
;HL:IX - SECTOR OF FAT FOR SAVE
|
;HL:IX - SECTOR OF FAT FOR SAVE
|
||||||
@ -343,9 +407,18 @@ WRITE_FAT_TABLE:
|
|||||||
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||||
PUSH BC
|
PUSH BC
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
POP BC ; b=ç¨á«® ᥪâ®à®¢
|
; [ ] ¥á«¨ ¢á¥£® ®¤ â ¡«¨æ FAT, â® ¯®¢â®à®© § ¯¨á¨ ¥ ¯à®¨á室¨â 13/03/2024
|
||||||
POP HL
|
LD DE,(FatBuffer.FAT2_SEC_L)
|
||||||
LD DE,(FatBuffer.FAT2_XX)
|
LD HL,(FatBuffer.FAT1_SEC_L)
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
POP BC ; b=ç¨á«® ᥪâ®à®¢
|
||||||
|
POP HL
|
||||||
|
JR Z,.only_one_FAT
|
||||||
|
; POP BC ; b=ç¨á«® ᥪâ®à®¢
|
||||||
|
; POP HL
|
||||||
|
; LD DE,(FatBuffer.FAT2_SEC_L)
|
||||||
|
;
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD XH,D
|
LD XH,D
|
||||||
@ -363,13 +436,12 @@ WRITE_FAT_TABLE:
|
|||||||
LD C,Dss.DRV.Write
|
LD C,Dss.DRV.Write
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
AND A ;!TODO ¥â ª®âà®«ï ®è¨¡®ª
|
AND A ;!TODO ¥â ª®âà®«ï ®è¨¡®ª
|
||||||
|
.only_one_FAT:
|
||||||
;
|
;
|
||||||
.ERR: LD A,0
|
.ERR: LD A,0
|
||||||
LD (FatCache.Update),A
|
LD (FatCache.Update),A
|
||||||
RET NC
|
|
||||||
POP HL
|
|
||||||
; CF = 1
|
|
||||||
RET
|
RET
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
;¢å®¤: HL - ®¬¥à ª« áâ¥à
|
;¢å®¤: HL - ®¬¥à ª« áâ¥à
|
||||||
@ -389,8 +461,13 @@ GET_FAT16_CELL:
|
|||||||
AND FAT_CACHE.Part_Mask_16
|
AND FAT_CACHE.Part_Mask_16
|
||||||
;
|
;
|
||||||
ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
||||||
LD BC,(FatCache.Block) ; BC - BLOCK FAT IN CASH
|
; [ ] fat32 ¯®¬¥ï«áï ¢å®¤ ¢ ¯à®æ¥¤ãàã READ_FAT_TABLE. <20> ìè¥ ®¬¥à ¡«®ª ¢ ॣ. A ¯¥à¥¤ ¢ «áï
|
||||||
CP C
|
; LD BC,(FatCache.Block) ; BC - BLOCK FAT IN CASH
|
||||||
|
; CP C
|
||||||
|
LD DE,(FatCache.Block) ; BC - BLOCK FAT IN CASH
|
||||||
|
CP E
|
||||||
|
LD E,A
|
||||||
|
;
|
||||||
CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT
|
CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT
|
||||||
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
ADD HL,DE ; ï祩ªã FAT
|
ADD HL,DE ; ï祩ªã FAT
|
||||||
@ -427,8 +504,13 @@ GET_FAT12_CELL:
|
|||||||
AND #07
|
AND #07
|
||||||
;AND FAT_CACHE.Part_Mask_16
|
;AND FAT_CACHE.Part_Mask_16
|
||||||
;
|
;
|
||||||
LD BC,(FatCache.Block) ; C - BLOCK FAT IN CASH
|
; [ ] fat32 ¯®¬¥ï«áï ¢å®¤ ¢ ¯à®æ¥¤ãàã READ_FAT_TABLE. <20> ìè¥ ®¬¥à ¡«®ª ¢ ॣ. A ¯¥à¥¤ ¢ «áï
|
||||||
CP C
|
; LD BC,(FatCache.Block) ; BC - BLOCK FAT IN CASH
|
||||||
|
; CP C
|
||||||
|
LD DE,(FatCache.Block) ; BC - BLOCK FAT IN CASH
|
||||||
|
CP E
|
||||||
|
LD E,A
|
||||||
|
;
|
||||||
CALL NZ,READ_FAT_TABLE ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
CALL NZ,READ_FAT_TABLE ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
@ -949,7 +1031,7 @@ FAT_Max_Cluster_H: WORD #0000 ;
|
|||||||
; RST #18
|
; RST #18
|
||||||
; POP BC
|
; POP BC
|
||||||
; POP HL
|
; POP HL
|
||||||
; LD DE,(FAT2_XX)
|
; LD DE,(FAT2_SEC_L)
|
||||||
; ADD HL,DE
|
; ADD HL,DE
|
||||||
; EX DE,HL
|
; EX DE,HL
|
||||||
; LD IX,0
|
; LD IX,0
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
;!TODO fat32
|
;!TODO fat32
|
||||||
;=======================================================================
|
;=======================================================================
|
||||||
;BPB
|
;BPB
|
||||||
;LD (FatBuffer.FAT2_XX),HL
|
;LD (FatBuffer.FAT2_SEC_L),HL
|
||||||
;LD (FatBuffer.DIR_FRL),HL ; first sector DIR
|
;LD (FatBuffer.DIR_FRL),HL ; first sector DIR
|
||||||
;BPB32
|
;BPB32
|
||||||
;LD HL,(CORE_BUFFERS.BootSector+#2C) ;fat32 <20>¥à¢ë© ª« áâ¥à ª®à¥¢®£® ª â «®£ (®¡ëç® 2) 4 ¡ ©â
|
;LD HL,(CORE_BUFFERS.BootSector+#2C) ;fat32 <20>¥à¢ë© ª« áâ¥à ª®à¥¢®£® ª â «®£ (®¡ëç® 2) 4 ¡ ©â
|
||||||
@ -39,18 +39,38 @@ GET_FAT32_CELL:
|
|||||||
DI
|
DI
|
||||||
HALT
|
HALT
|
||||||
|
|
||||||
|
; FOR 8192 bytes cache
|
||||||
|
; 1ÿ073ÿ741ÿ824 bytes max fat32 size
|
||||||
|
; 1073741824/8192=131072
|
||||||
|
; 0x40000000 / 0x2000 = 0x20000
|
||||||
|
|
||||||
|
; FOR 16384 bytes cache
|
||||||
|
; 1ÿ073ÿ741ÿ824 bytes max fat32 size
|
||||||
|
; 1073741824/16384=65536
|
||||||
|
; 0x40000000 / 0x4000 = 0x10000
|
||||||
|
|
||||||
|
/*
|
||||||
|
D E H L
|
||||||
|
0xEAB1022 - block 0x1D562
|
||||||
|
D E H
|
||||||
|
0xEAB10 >>> 0x1D562
|
||||||
|
*/
|
||||||
|
|
||||||
LD A,H
|
LD A,H
|
||||||
LD B,H
|
LD B,H
|
||||||
;AND #0F
|
AND #0F
|
||||||
AND FAT_CACHE.Size_Mask_16
|
;AND FAT_CACHE.Size_Mask_16 ; #0F
|
||||||
LD H,A
|
LD H,A
|
||||||
LD A,B
|
LD A,B
|
||||||
; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
||||||
DUP FAT_CACHE.Degree_16
|
;DUP FAT_CACHE.Degree_16
|
||||||
RRCA
|
RRCA
|
||||||
EDUP
|
RRCA
|
||||||
;AND #0F
|
RRCA
|
||||||
AND FAT_CACHE.Part_Mask_16
|
RRCA
|
||||||
|
;EDUP
|
||||||
|
AND #0F
|
||||||
|
;AND FAT_CACHE.Part_Mask_16
|
||||||
;
|
;
|
||||||
ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
||||||
LD BC,(FatCache.Block) ; BC - BLOCK FAT IN CASH
|
LD BC,(FatCache.Block) ; BC - BLOCK FAT IN CASH
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
942
|
943
|
||||||
@ -53,7 +53,7 @@ cmd_dir:
|
|||||||
; [ ] 1/10/23
|
; [ ] 1/10/23
|
||||||
1: ld hl,work_buffer1 ; ¨¬ï ä ©«
|
1: ld hl,work_buffer1 ; ¨¬ï ä ©«
|
||||||
ld de,work_buffer1 ; 80 ¡ãä¥à
|
ld de,work_buffer1 ; 80 ¡ãä¥à
|
||||||
ld a,#37 ; âਡãâ (¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ )
|
ld a,FAT_ATTR.NoVolID ; âਡãâ (¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ )
|
||||||
ld bc,Dss.F_First.FATname ; f_first (ä®à¬ â 11)
|
ld bc,Dss.F_First.FATname ; f_first (ä®à¬ â 11)
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
JR C,.dir_empty ;R14
|
JR C,.dir_empty ;R14
|
||||||
@ -71,9 +71,11 @@ cmd_dir:
|
|||||||
ld c,Dss.WaitKey
|
ld c,Dss.WaitKey
|
||||||
rst ToDSS
|
rst ToDSS
|
||||||
dec d
|
dec d
|
||||||
jr nz,.skip_esc
|
ld de,MAIN_MSG.DIR_ESCAPE
|
||||||
xor a
|
jp z,MESSAGE ; § ª®ç¨âì ¯® ESC
|
||||||
ld (.key_p),a ; ®â¬¥ï¥¬ ESC
|
;jr nz,.skip_esc
|
||||||
|
;xor a
|
||||||
|
;ld (.key_p),a ; ®â¬¥ï¥¬ ESC
|
||||||
.skip_esc:
|
.skip_esc:
|
||||||
ld a,32-1
|
ld a,32-1
|
||||||
.skip_wait:
|
.skip_wait:
|
||||||
@ -153,46 +155,6 @@ cmd_dir:
|
|||||||
ld hl,(D88E0) ; áâ. à §àï¤
|
ld hl,(D88E0) ; áâ. à §àï¤
|
||||||
exx
|
exx
|
||||||
;
|
;
|
||||||
;;;;;;;;;;;;;
|
|
||||||
; call A8A8F ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
|
||||||
; ld hl,T8B37 ; "0"
|
|
||||||
; ld a,(hl)
|
|
||||||
; cp " "
|
|
||||||
; jr nz,.not_zero
|
|
||||||
; ld a,"0"
|
|
||||||
; ld (hl),a
|
|
||||||
; .not_zero:
|
|
||||||
; ld de,T8B46 ; "0 000 000 000"
|
|
||||||
; ld hl,T8B2E ; "0000000000"
|
|
||||||
; ld a,(hl)
|
|
||||||
; ldi
|
|
||||||
; cp " "
|
|
||||||
; jr z,1F
|
|
||||||
; ld a,"," ; à §¤. à §à冷¢
|
|
||||||
; 1: ld (de),a
|
|
||||||
; inc de
|
|
||||||
; ldi
|
|
||||||
; ldi
|
|
||||||
; ld a,(hl)
|
|
||||||
; ldi
|
|
||||||
; cp " "
|
|
||||||
; jr z,1F
|
|
||||||
; ld a,"," ; à §¤. à §à冷¢
|
|
||||||
; 1: ld (de),a
|
|
||||||
; inc de
|
|
||||||
; ldi
|
|
||||||
; ldi
|
|
||||||
; ld a,(hl)
|
|
||||||
; ldi
|
|
||||||
; cp " "
|
|
||||||
; jr z,1F
|
|
||||||
; ld a,"," ; à §¤. à §à冷¢
|
|
||||||
; 1: ld (de),a
|
|
||||||
; inc de
|
|
||||||
; ldi
|
|
||||||
; ldi
|
|
||||||
; ldi
|
|
||||||
; ret
|
|
||||||
CALL Size2Char
|
CALL Size2Char
|
||||||
;;;;;;;;;;;;;
|
;;;;;;;;;;;;;
|
||||||
;
|
;
|
||||||
@ -270,7 +232,14 @@ cmd_dir:
|
|||||||
;
|
;
|
||||||
|
|
||||||
; <20>®¤£®â®¢¨âì áâபã á¯¨áª ä ©«®¢/¯ ¯®ª
|
; <20>®¤£®â®¢¨âì áâபã á¯¨áª ä ©«®¢/¯ ¯®ª
|
||||||
A88E2: ld bc,8
|
A88E2:
|
||||||
|
dec hl
|
||||||
|
ld a,(hl)
|
||||||
|
and FAT_ATTR.DIRECTORY
|
||||||
|
call z,.set_small
|
||||||
|
inc hl
|
||||||
|
;
|
||||||
|
ld bc,8
|
||||||
ld de,PRM1 ; ¡ãä¥à
|
ld de,PRM1 ; ¡ãä¥à
|
||||||
ldir
|
ldir
|
||||||
xor a
|
xor a
|
||||||
@ -286,13 +255,33 @@ A88E2: ld bc,8
|
|||||||
call A8A19 ; ¢ë¢¥á⨠¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
|
call A8A19 ; ¢ë¢¥á⨠¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
|
||||||
ld de,MAIN_MSG.DIR_3 ; ¨¤¥ªá "%1 %2 %3 %4 %5"
|
ld de,MAIN_MSG.DIR_3 ; ¨¤¥ªá "%1 %2 %3 %4 %5"
|
||||||
jp MESSAGE ; ¢ë¢®¤ áâப¨
|
jp MESSAGE ; ¢ë¢®¤ áâப¨
|
||||||
|
;
|
||||||
|
.set_small:
|
||||||
|
ld d,h
|
||||||
|
ld e,l
|
||||||
|
ld b,11 ;!HARDCODE ¤«¨ ¨¬¥¨ DOS
|
||||||
|
.loop: inc hl
|
||||||
|
ld a,(hl)
|
||||||
|
cp 'A'
|
||||||
|
jr c,.next
|
||||||
|
cp 'Z'+1
|
||||||
|
jr c,.letter
|
||||||
|
;
|
||||||
|
cp '€' ;#80
|
||||||
|
jr c,.next
|
||||||
|
cp 'Ÿ'+1 ;#9F + 1
|
||||||
|
jr nc,.next
|
||||||
|
.letter:
|
||||||
|
or %0010'0000
|
||||||
|
ld (hl),a
|
||||||
|
.next: djnz .loop
|
||||||
|
ex de,hl
|
||||||
|
ret
|
||||||
|
|
||||||
; ‚뢥á⨠¢ ¡ãä¥à ¨¬ï ä ©« ¨ ¥£® à §¬¥à (ã ¯ ¯ª¨ <DIR>)
|
; ‚뢥á⨠¢ ¡ãä¥à ¨¬ï ä ©« ¨ ¥£® à §¬¥à (ã ¯ ¯ª¨ <DIR>)
|
||||||
A89A4: ld a,(ix+32)
|
A89A4: ld a,(ix+32)
|
||||||
ld hl,T8B38 ; "<DIR> "
|
ld hl,T8B38 ; "<DIR> "
|
||||||
and 10h ; ¯ ¯ª ?
|
and FAT_ATTR.DIRECTORY ; ¯ ¯ª ?
|
||||||
jr nz,A89F4 ; ¤
|
jr nz,A89F4 ; ¤
|
||||||
ld l,(ix+28) ; ¬«. à §àï¤
|
ld l,(ix+28) ; ¬«. à §àï¤
|
||||||
ld h,(ix+29)
|
ld h,(ix+29)
|
||||||
|
|||||||
@ -11,6 +11,7 @@ MAIN_MSG:
|
|||||||
.DATE EQU .DATE_
|
.DATE EQU .DATE_
|
||||||
.TIME EQU .TIME_
|
.TIME EQU .TIME_
|
||||||
.PAUSE EQU .PAUSE_
|
.PAUSE EQU .PAUSE_
|
||||||
|
.DIR_ESCAPE EQU .DIR_ESC_
|
||||||
.INVALID EQU .INV_
|
.INVALID EQU .INV_
|
||||||
.ECHO EQU .ECHO_
|
.ECHO EQU .ECHO_
|
||||||
.ON EQU .ON_
|
.ON EQU .ON_
|
||||||
@ -35,6 +36,7 @@ MAIN_MSG:
|
|||||||
stN .DATE_ : db "Current date: %1, %2",CR,LF,0 ; [ ] ¢ë¢®¤ ¤ï ¥¤¥«¨ 26/01/2023
|
stN .DATE_ : db "Current date: %1, %2",CR,LF,0 ; [ ] ¢ë¢®¤ ¤ï ¥¤¥«¨ 26/01/2023
|
||||||
stN .TIME_ : db "Current time: %1",CR,LF,0
|
stN .TIME_ : db "Current time: %1",CR,LF,0
|
||||||
stN .PAUSE_ : db "Press any key to continue . . .",CR,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 .INV_ : db "Invalid parametr",CR,LF,0
|
||||||
stN .ECHO_ : db "Echo is %1",CR,LF,0
|
stN .ECHO_ : db "Echo is %1",CR,LF,0
|
||||||
stN .ON_ : db "on",0
|
stN .ON_ : db "on",0
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
303
|
311
|
||||||
Loading…
Reference in New Issue
Block a user