mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
починил ускорялку фат. в Shell считается правильно свободное место для большого раздела fat32, но не выводится пока корректно
This commit is contained in:
parent
34e1fc6773
commit
ebeb859eb1
@ -16,30 +16,30 @@
|
|||||||
; “¤ «ï¥â § ¯¨áì ¢ ª â «®£¥ ¨ ®á¢®¡®¦¤ ¥â § ïâãî æ¥¯®çªã ª« áâ¥à®¢
|
; “¤ «ï¥â § ¯¨áì ¢ ª â «®£¥ ¨ ®á¢®¡®¦¤ ¥â § ïâãî æ¥¯®çªã ª« áâ¥à®¢
|
||||||
; ‚室: IX - 㪠§ ⥫ì 㤠«ï¥¬ãî § ¯¨áì ¢ DIRPAGE
|
; ‚室: IX - 㪠§ ⥫ì 㤠«ï¥¬ãî § ¯¨áì ¢ DIRPAGE
|
||||||
;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||||||
DELETE_REC_FAT: SET_PAGE_X DIRPAGE
|
DELETE_REC_FAT: SET_PAGE_X DIRPAGE:
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
CALL DELETE_LFN_RECORDS ; [x] 㤠«¥¨¥ § ¯¨á¨ LFN
|
CALL DELETE_LFN_RECORDS ; [x] 㤠«¥¨¥ § ¯¨á¨ LFN
|
||||||
LD (IX + FAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
LD (IX + FAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
||||||
; fat32
|
; fat32
|
||||||
LD E,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à
|
LD L,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à
|
||||||
LD D,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1)
|
LD H,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1)
|
||||||
LD A,E
|
LD A,L
|
||||||
OR D
|
OR H
|
||||||
EXX
|
EXX
|
||||||
LD E,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L) ; ü ¯¥à¢®£® ª« áâ¥à
|
LD L,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L) ; ü ¯¥à¢®£® ª« áâ¥à
|
||||||
LD D,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1)
|
LD H,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1)
|
||||||
OR E
|
OR L
|
||||||
OR D
|
OR H
|
||||||
;
|
;
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
JP Z,SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
JP Z,SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||||
; ¥á«¨ à §¬¥à ä ©« ¥ ®«ì
|
; ¥á«¨ à §¬¥à ä ©« ¥ ®«ì
|
||||||
.loop: EX DE,HL ; hl=®¬¥à ª« áâ¥à
|
.loop: ;EX DE,HL ; hl=®¬¥à ª« áâ¥à
|
||||||
EXX
|
;EXX
|
||||||
EX DE,HL
|
; EX DE,HL
|
||||||
EXX
|
;EXX
|
||||||
CALL READ_FROM_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
CALL READ_FROM_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||||||
EXX
|
EXX
|
||||||
PUSH DE ; ®¬¥à á«¥¤. ª« áâ¥à
|
PUSH DE ; ®¬¥à á«¥¤. ª« áâ¥à
|
||||||
@ -52,11 +52,13 @@ DELETE_REC_FAT: SET_PAGE_X DIRPAGE
|
|||||||
;
|
;
|
||||||
LD DE,#0000 ; ®¬¥à ª« áâ¥à
|
LD DE,#0000 ; ®¬¥à ª« áâ¥à
|
||||||
CALL WRITE_TO_FAT.Custom ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
CALL WRITE_TO_FAT.Custom ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
POP DE
|
POP HL
|
||||||
EXX
|
EXX
|
||||||
POP AF
|
POP AF
|
||||||
POP DE
|
POP HL
|
||||||
|
;EX DE,HL
|
||||||
EXX
|
EXX
|
||||||
|
;EX DE,HL
|
||||||
JP NC,.loop
|
JP NC,.loop
|
||||||
CALL WRITE_FAT_TABLE
|
CALL WRITE_FAT_TABLE
|
||||||
JP SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
JP SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||||
@ -64,17 +66,18 @@ DELETE_REC_FAT: SET_PAGE_X DIRPAGE
|
|||||||
; “áâ ®¢¨âì ¯¥à¢ë¬ ¨§¢¥áâë¬ ª« áâ¥à®¬ ¤«ï ¯®¨áª ᢮¡®¤®£®.
|
; “áâ ®¢¨âì ¯¥à¢ë¬ ¨§¢¥áâë¬ ª« áâ¥à®¬ ¤«ï ¯®¨áª ᢮¡®¤®£®.
|
||||||
; “áâ ®¢¨âáï ⮫쪮 ¥á«¨ ¬¥ìè¥ ¯à¥¤ë¤ã饣®
|
; “áâ ®¢¨âáï ⮫쪮 ¥á«¨ ¬¥ìè¥ ¯à¥¤ë¤ã饣®
|
||||||
; ‚室: HL':HL - cluster
|
; ‚室: HL':HL - cluster
|
||||||
|
; ¯®àâ¨â DE, BC' ¨ A
|
||||||
; [x] à ìè¥ ¡ë« è á 㯥à¥âìáï ¢ "DISK FULL" ¥á«¨ G_CLUST 㪠§ë¢ « ª« áâ¥à ¤ «ìè¥, 祬 ¤à㣮© ᢮¡®¤ë©
|
; [x] à ìè¥ ¡ë« è á 㯥à¥âìáï ¢ "DISK FULL" ¥á«¨ G_CLUST 㪠§ë¢ « ª« áâ¥à ¤ «ìè¥, 祬 ¤à㣮© ᢮¡®¤ë©
|
||||||
SET_NEW_FREE_CLUSTER:
|
SET_NEW_FREE_CLUSTER:
|
||||||
XOR A
|
XOR A
|
||||||
LD B,D
|
;LD B,D
|
||||||
LD C,E
|
;LD C,E
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD HL,(G_CLUST.low)
|
LD HL,(G_CLUST.low)
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD D,B
|
;LD D,B
|
||||||
LD E,C
|
;LD E,C
|
||||||
;
|
;
|
||||||
EXX
|
EXX
|
||||||
LD B,D
|
LD B,D
|
||||||
@ -327,12 +330,12 @@ READ_FROM_FAT: CALL CHECK_CLUSTER_IS_SMALLER
|
|||||||
; ‚室: HL - <20>®¬¥à ¯¥à¢®© ï祩ª¨ ª« áâ¥à ¢ ¡«®ª¥ ä â
|
; ‚室: HL - <20>®¬¥à ¯¥à¢®© ï祩ª¨ ª« áâ¥à ¢ ¡«®ª¥ ä â
|
||||||
; <20>®àâ¨âì ⮫쪮 HL ¨ A
|
; <20>®àâ¨âì ⮫쪮 HL ¨ A
|
||||||
SET_FAT32_CACHE_BLOCK_CHANGED_REGION:
|
SET_FAT32_CACHE_BLOCK_CHANGED_REGION:
|
||||||
DEC HL
|
;DEC HL
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
;LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||||
CP FAT_TYPE.x16 + 1
|
;CP FAT_TYPE.x16 + 1
|
||||||
JR C,.start
|
;JR C,.start
|
||||||
DEC HL
|
;DEC HL
|
||||||
DEC HL
|
;DEC HL
|
||||||
;
|
;
|
||||||
.start: LD A,H
|
.start: LD A,H
|
||||||
AND #38
|
AND #38
|
||||||
@ -340,6 +343,7 @@ SET_FAT32_CACHE_BLOCK_CHANGED_REGION:
|
|||||||
JR Z,.set_region
|
JR Z,.set_region
|
||||||
;
|
;
|
||||||
.loop: SLA H
|
.loop: SLA H
|
||||||
|
AND A
|
||||||
SUB L
|
SUB L
|
||||||
JR NZ,.loop
|
JR NZ,.loop
|
||||||
;
|
;
|
||||||
@ -716,7 +720,7 @@ WRITE_FAT_TABLE:
|
|||||||
LD E,A
|
LD E,A
|
||||||
;
|
;
|
||||||
.good_blk: SRL C
|
.good_blk: SRL C
|
||||||
JR C,.SAVE_FAT_CACHE_REGION
|
CALL C,.SAVE_FAT_CACHE_REGION
|
||||||
EXX
|
EXX
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
EXX
|
EXX
|
||||||
@ -731,26 +735,33 @@ WRITE_FAT_TABLE:
|
|||||||
PUSH AF
|
PUSH AF
|
||||||
PUSH DE
|
PUSH DE
|
||||||
PUSH BC
|
PUSH BC
|
||||||
|
PUSH HL
|
||||||
|
PUSH IX
|
||||||
;
|
;
|
||||||
EXX
|
EXX
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
PUSH HL
|
||||||
EXX
|
EXX
|
||||||
LD B,E ; ª®«-¢® ᥪâ®à®¢
|
LD B,E ; ª®«-¢® ᥪâ®à®¢
|
||||||
POP DE ; €¤à¥á ¢ áâà ¨æ¥ Š<>˜
|
POP DE ; €¤à¥á ¢ áâà ¨æ¥ Š<>˜
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
LD A,(CORE_BUFFERS.FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||||
LD C,Dss.DRV.Write
|
LD C,Dss.DRV.Write
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
PUSH DE
|
; HL:IX = Sector + Sector counter
|
||||||
|
; DE = Address + (Sector counter * Size sector)
|
||||||
EXX
|
EXX
|
||||||
POP HL
|
POP HL ; ¤à¥á ¢ áâà ¨æ¥ Š<>˜
|
||||||
LD DE,#0800 ;!HARDCODE à §¬¥à ॣ¨® ¢ ¡«®ª¥ Š<>˜ FAT (¡ ©â®¢)
|
LD DE,#0800 ;!HARDCODE à §¬¥à ॣ¨® ¢ ¡«®ª¥ Š<>˜ FAT (¡ ©â®¢)
|
||||||
EXX
|
EXX
|
||||||
;
|
;
|
||||||
|
POP IX
|
||||||
|
POP HL
|
||||||
POP BC
|
POP BC
|
||||||
POP DE
|
POP DE
|
||||||
POP AF
|
POP AF
|
||||||
DJNZ .region_loop
|
|
||||||
RET
|
RET
|
||||||
|
; DJNZ .region_loop
|
||||||
|
; RET
|
||||||
ENDIF
|
ENDIF
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
972
|
982
|
||||||
@ -29,7 +29,7 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
DEFINE USE_FSINFO_FAT32 1 ; ¥¤®¤¥« ®. € 㦮 «¨?
|
DEFINE USE_FSINFO_FAT32 1 ; ¥¤®¤¥« ®. € 㦮 «¨?
|
||||||
DEFINE CHANGE_FREE_CLU_AFTER_DEL 1
|
DEFINE CHANGE_FREE_CLU_AFTER_DEL 1
|
||||||
DEFINE FAST_FAT_CASHE 0 ; !FIXIT ¡ £¨ ¯à¨ áâ¨à ¨¨
|
DEFINE FAST_FAT_CASHE 1 ; !FIXIT ¡ £¨ ¯à¨ áâ¨à ¨¨
|
||||||
|
|
||||||
SERVICE_SECTORS:
|
SERVICE_SECTORS:
|
||||||
.FAT12 EQU #0FEF
|
.FAT12 EQU #0FEF
|
||||||
|
|||||||
@ -291,7 +291,7 @@ A89A4: ld a,(ix+32)
|
|||||||
ld h,(ix+31)
|
ld h,(ix+31)
|
||||||
exx
|
exx
|
||||||
push ix
|
push ix
|
||||||
call A8A8F ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
call MAKE_LN ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||||
ld hl,T8B37
|
ld hl,T8B37
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
cp " "
|
cp " "
|
||||||
@ -299,7 +299,7 @@ A89A4: ld a,(ix+32)
|
|||||||
ld a,"0"
|
ld a,"0"
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
A89CD: ld de,T8B46 ; "0 000 000 000"
|
A89CD: ld de,T8B46 ; "0 000 000 000"
|
||||||
ld hl,T8B2E ; "0000000000"
|
ld hl,L32BIT_ ; "0000000000"
|
||||||
ldi
|
ldi
|
||||||
ld a," "
|
ld a," "
|
||||||
ld (de),a
|
ld (de),a
|
||||||
@ -411,66 +411,76 @@ A8A7E: ld c,2Fh
|
|||||||
|
|
||||||
;!TODO ¯¥à¥â é¨âì ¢ procedures/math.asm
|
;!TODO ¯¥à¥â é¨âì ¢ procedures/math.asm
|
||||||
; „¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
; „¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||||
A8A8F: ld ix,T8B2E ; "0000000000"
|
; HL':HL - ç¨á«® ¤«ï ¯¥à¥¢®¤
|
||||||
|
MAKE_LN: ld ix,L32BIT_ ; "0000000000"
|
||||||
exx
|
exx
|
||||||
ld de,3B9Ah
|
ld de,#3B9A
|
||||||
exx
|
exx
|
||||||
ld de,0CA00h
|
ld de,#CA00
|
||||||
call A8B15 ; 1,000,000,000
|
; DE':DE = 1,000,000,000
|
||||||
|
call GET_DIG
|
||||||
exx
|
exx
|
||||||
ld de,05F5h
|
ld de,#05F5
|
||||||
exx
|
exx
|
||||||
ld de,0E100h
|
ld de,#E100
|
||||||
call A8B15 ; 100,000,000...999,999,999
|
; DE':DE = 100,000,000
|
||||||
|
call GET_DIG ; 100,000,000...999,999,999
|
||||||
exx
|
exx
|
||||||
ld de,98h
|
ld de,#98
|
||||||
exx
|
exx
|
||||||
ld de,9680h
|
ld de,#9680
|
||||||
call A8B15 ; 10,000,000...99,999,999
|
; DE':DE = 10,000,000
|
||||||
|
call GET_DIG ; 10,000,000...99,999,999
|
||||||
exx
|
exx
|
||||||
ld de,0Fh
|
ld de,#0F
|
||||||
exx
|
exx
|
||||||
ld de,4240h
|
ld de,#4240
|
||||||
call A8B15 ; 1,000,000...9,999,999
|
; DE':DE = 1,000,000
|
||||||
|
call GET_DIG ; 1,000,000...9,999,999
|
||||||
exx
|
exx
|
||||||
ld de,1
|
ld de,#01
|
||||||
exx
|
exx
|
||||||
ld de,86A0h
|
ld de,#86A0
|
||||||
call A8B15 ; 100,000...999,999
|
; DE':DE = 100,000
|
||||||
|
call GET_DIG ; 100,000...999,999
|
||||||
exx
|
exx
|
||||||
ld de,0
|
ld de,#00
|
||||||
exx
|
exx
|
||||||
ld de,10000
|
ld de,#2710
|
||||||
call A8B15 ; 10,000...99,999
|
; DE':DE = 10,000
|
||||||
|
call GET_DIG ; 10,000...99,999
|
||||||
exx
|
exx
|
||||||
ld de,0
|
ld de,#00
|
||||||
exx
|
exx
|
||||||
ld de,1000
|
ld de,#03E8
|
||||||
call A8B15 ; 1,000...9,999
|
; DE':DE = 1,000
|
||||||
|
call GET_DIG ; 1,000...9,999
|
||||||
exx
|
exx
|
||||||
ld de,0
|
ld de#00
|
||||||
exx
|
exx
|
||||||
ld de,100
|
ld de,#64
|
||||||
call A8B15 ; 100..999
|
; DE':DE = 100
|
||||||
|
call GET_DIG ; 100..999
|
||||||
exx
|
exx
|
||||||
ld de,0
|
ld de,#00
|
||||||
exx
|
exx
|
||||||
ld de,10
|
ld de,#0A
|
||||||
call A8B15 ; 10..99
|
; DE':DE = 10
|
||||||
|
call GET_DIG ; 10..99
|
||||||
ld a,l
|
ld a,l
|
||||||
add a,"0"
|
add a,"0"
|
||||||
ld (ix+0),a
|
ld (ix+0),a
|
||||||
inc ix
|
inc ix
|
||||||
ld hl,T8B2E ; "0000000000"
|
ld hl,L32BIT_ ; "0000000000"
|
||||||
ld de,2030h ; " ","0"
|
ld de,#2030 ; " ","0"
|
||||||
A8B04: ld a,(hl)
|
.KILLZ: ld a,(hl)
|
||||||
cp e
|
cp e
|
||||||
jr nz,A8B0D
|
jr nz,.KILLZ2
|
||||||
ld (hl),d
|
ld (hl),d
|
||||||
inc hl
|
inc hl
|
||||||
jr A8B04
|
jr .KILLZ
|
||||||
;
|
;
|
||||||
A8B0D: ld hl,T8B37 ; "0"
|
.KILLZ2: ld hl,T8B37 ; "0"
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
cp d
|
cp d
|
||||||
ret nz
|
ret nz
|
||||||
@ -478,13 +488,14 @@ A8B0D: ld hl,T8B37 ; "0"
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
A8B15: xor a
|
GET_DIG: xor a
|
||||||
A8B16: inc a
|
.loop: inc a
|
||||||
sbc hl,de
|
sbc hl,de
|
||||||
exx
|
exx
|
||||||
sbc hl,de
|
sbc hl,de
|
||||||
exx
|
exx
|
||||||
jp nc,A8B16
|
jp nc,.loop
|
||||||
|
;
|
||||||
add hl,de
|
add hl,de
|
||||||
exx
|
exx
|
||||||
adc hl,de
|
adc hl,de
|
||||||
@ -505,7 +516,7 @@ free_space_medium: WORD 0
|
|||||||
free_space_high: BYTE 0
|
free_space_high: BYTE 0
|
||||||
;
|
;
|
||||||
|
|
||||||
T8B2E: db "000000000"
|
L32BIT_: db "000000000"
|
||||||
T8B37: db "0"
|
T8B37: db "0"
|
||||||
T8B38: db "<DIR> ",0
|
T8B38: db "<DIR> ",0
|
||||||
T8B46: db "0 000 000 000",0
|
T8B46: db "0 000 000 000",0
|
||||||
@ -523,18 +534,17 @@ read_disk_info: OR #80
|
|||||||
; ” ©«®¢ ï á¨á⥬
|
; ” ©«®¢ ï á¨á⥬
|
||||||
; ‘¥à¨©ë© ®¬¥à ¤¨áª
|
; ‘¥à¨©ë© ®¬¥à ¤¨áª
|
||||||
; Œ¥âª ¤¨áª ¢ BPB
|
; Œ¥âª ¤¨áª ¢ BPB
|
||||||
|
;
|
||||||
|
; HL':HL - ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢
|
||||||
|
; DE':DE - ᢮¡®¤ëå ª« áâ¥à®¢
|
||||||
|
; A - à §¬¥à ª« áâ¥à ¢ ᥪâ®à å
|
||||||
|
; BC - à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||||
|
; max sector (LBA28) #0FFF'FFFF
|
||||||
|
;
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,(.full)
|
LD A,(.full)
|
||||||
OR A
|
OR A
|
||||||
JR Z,.no_full_space_option
|
JR Z,.no_full_space_option
|
||||||
;
|
|
||||||
; max sector (LBA28) #0FFF'FFFF
|
|
||||||
; HL - ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢
|
|
||||||
; DE - ᢮¡®¤ëå ª« áâ¥à®¢ low
|
|
||||||
; DE' - ᢮¡®¤ëå ª« áâ¥à®¢ high
|
|
||||||
; A - à §¬¥à ª« áâ¥à ¢ ᥪâ®à å
|
|
||||||
; BC - à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
|
||||||
PUSH IX
|
|
||||||
;
|
;
|
||||||
PUSH BC ; à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
PUSH BC ; à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
@ -547,25 +557,27 @@ read_disk_info: OR #80
|
|||||||
; A:HL = DE*C
|
; A:HL = DE*C
|
||||||
;
|
;
|
||||||
; free_clu_H * clu_size_in_sect
|
; free_clu_H * clu_size_in_sect
|
||||||
EXX
|
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
|
EXX
|
||||||
LD C,A
|
LD C,A
|
||||||
PUSH BC
|
|
||||||
CALL Mult16X8 ; DE*C = A:HL
|
CALL Mult16X8 ; DE*C = A:HL
|
||||||
|
; A:HL = DE*C
|
||||||
; max #0FFF'FFFF sectors for LBA28
|
; max #0FFF'FFFF sectors for LBA28
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD D,0
|
LD D,0
|
||||||
LD E,A
|
LD E,A
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
EXX
|
EXX
|
||||||
; HL':HL - ᢮¡®¤ëå ᥪâ®à®¢
|
|
||||||
;
|
;
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
|
; HL':DE - ᢮¡®¤ëå ᥪâ®à®¢
|
||||||
|
;
|
||||||
POP BC ; à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
POP BC ; à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||||
PUSH BC
|
PUSH BC
|
||||||
CALL Mult_16x16 ; DE*BC = HL:DE.
|
CALL Mult_16x16 ; DE*BC = HL:DE.
|
||||||
EXX
|
EXX
|
||||||
POP BC
|
POP BC
|
||||||
|
EX DE,HL
|
||||||
CALL Mult_16x16 ; DE*BC = HL:DE.
|
CALL Mult_16x16 ; DE*BC = HL:DE.
|
||||||
LD XH,D
|
LD XH,D
|
||||||
LD XL,E
|
LD XL,E
|
||||||
@ -578,13 +590,12 @@ read_disk_info: OR #80
|
|||||||
INC L
|
INC L
|
||||||
; ¯®â®¬ã çâ® ¥ ¤®«¦® ¡ëâì ¡®«ìè¥ #001F'FFFF'FE00
|
; ¯®â®¬ã çâ® ¥ ¤®«¦® ¡ëâì ¡®«ìè¥ #001F'FFFF'FE00
|
||||||
; ¯à¨ ᥪâ®à¥ ¢ 512 ¡ ©â®¢
|
; ¯à¨ ᥪâ®à¥ ¢ 512 ¡ ©â®¢
|
||||||
;
|
.no_inc_HL: ;
|
||||||
.no_inc_HL: LD A,L
|
LD A,L
|
||||||
LD (free_space_high),A
|
LD (free_space_high),A
|
||||||
LD (free_space_medium),IX
|
LD (free_space_medium),IX
|
||||||
EXX
|
EXX
|
||||||
LD (free_space_low),DE
|
LD (free_space_low),DE
|
||||||
POP IX
|
|
||||||
;
|
;
|
||||||
.no_full_space_option:
|
.no_full_space_option:
|
||||||
; parse
|
; parse
|
||||||
@ -767,7 +778,7 @@ cmd_dir_pause:
|
|||||||
jp cmd_dir.parse
|
jp cmd_dir.parse
|
||||||
///////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
Size2Char:
|
Size2Char:
|
||||||
call A8A8F ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
call MAKE_LN ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||||
ld hl,T8B37 ; "0"
|
ld hl,T8B37 ; "0"
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
cp " "
|
cp " "
|
||||||
@ -776,7 +787,7 @@ Size2Char:
|
|||||||
ld (hl),a
|
ld (hl),a
|
||||||
.not_zero:
|
.not_zero:
|
||||||
ld de,T8B46 ; "0 000 000 000"
|
ld de,T8B46 ; "0 000 000 000"
|
||||||
ld hl,T8B2E ; "0000000000"
|
ld hl,L32BIT_ ; "0000000000"
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
ldi
|
ldi
|
||||||
cp " "
|
cp " "
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
320
|
323
|
||||||
Loading…
Reference in New Issue
Block a user