mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
CORE: -bug in LOADDIR for fat32
SHELL: small optimize
This commit is contained in:
parent
f135083519
commit
cc435bef7d
@ -581,7 +581,7 @@ LEAVE: LD A,B
|
|||||||
; ¢å®¤: ¥â
|
; ¢å®¤: ¥â
|
||||||
; ¢ë室: A - ª®¤ § ¢¥à襨ï
|
; ¢ë室: A - ª®¤ § ¢¥à襨ï
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
WAIT: LD A,(ErrorLevel)
|
GET_ERR: LD A,(ErrorLevel)
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@ -48,7 +48,7 @@ F_FIRST:
|
|||||||
LD HL,HANDBUF+12 ;!HARDCODE
|
LD HL,HANDBUF+12 ;!HARDCODE
|
||||||
LD BC,HANDBUF.SIZE-12 ;????? ¬¥âªã ¢¬¥áâ® ç¨á« ?
|
LD BC,HANDBUF.SIZE-12 ;????? ¬¥âªã ¢¬¥áâ® ç¨á« ?
|
||||||
LDIR
|
LDIR
|
||||||
LD A,(HANDBUF+11)
|
LD A,(HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC DE
|
INC DE
|
||||||
LD HL,HANDBUF
|
LD HL,HANDBUF
|
||||||
@ -58,16 +58,18 @@ F_FIRST:
|
|||||||
JR NZ,.FIND_M2
|
JR NZ,.FIND_M2
|
||||||
LD BC,11 ;!HARDCODE
|
LD BC,11 ;!HARDCODE
|
||||||
LDIR
|
LDIR
|
||||||
LD A,F_NEXT.NO_NEXT.NO
|
.exit: LD A,F_NEXT.NO_NEXT.NO
|
||||||
LD (F_NEXT.NO_NEXT),A
|
LD (F_NEXT.NO_NEXT),A
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
.FIND_M2:
|
.FIND_M2:
|
||||||
|
;!TODO LFN
|
||||||
|
;CP 2
|
||||||
|
;CALL NC,GetName_LFN
|
||||||
|
;CALL C,GetName
|
||||||
|
;
|
||||||
CALL GetName
|
CALL GetName
|
||||||
LD A,F_NEXT.NO_NEXT.NO
|
JR .exit
|
||||||
LD (F_NEXT.NO_NEXT),A
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
|
|||||||
@ -76,7 +76,7 @@ DISKINF: LD C,B
|
|||||||
.next_prm: LD HL,CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER
|
.next_prm: LD HL,CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER
|
||||||
LD C,4 ;!HARDCODE _sBOOT_SECTOR_PARAMS.BPB_SERIAL_NUMBER
|
LD C,4 ;!HARDCODE _sBOOT_SECTOR_PARAMS.BPB_SERIAL_NUMBER
|
||||||
CALL .mCOPY_LOOP
|
CALL .mCOPY_LOOP
|
||||||
;
|
; !FIXIT ¥á«¨ ¬¥âª ¢ BPB "NO NAME" ¨«¨ ¯à®¡¥«ë, â® ¯à®¢¥àïâì ¬¥âªã ¢ ª®à¥¢®¬ ª â «®£¥.
|
||||||
LD HL,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
LD HL,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
||||||
LD C,11 ;!HARDCODE _sBOOT_SECTOR_PARAMS.BPB_LABEL
|
LD C,11 ;!HARDCODE _sBOOT_SECTOR_PARAMS.BPB_LABEL
|
||||||
CALL .mCOPY_LOOP
|
CALL .mCOPY_LOOP
|
||||||
|
|||||||
@ -52,6 +52,7 @@
|
|||||||
; DJNZ .GETN6
|
; DJNZ .GETN6
|
||||||
; RET
|
; RET
|
||||||
;---------------;---------------;---------------
|
;---------------;---------------;---------------
|
||||||
|
;!TODO LFN
|
||||||
GetName: LD BC,#08FF ;!HARDCODE ¤«¨ ¨¬¥¨ + áçñâ稪
|
GetName: LD BC,#08FF ;!HARDCODE ¤«¨ ¨¬¥¨ + áçñâ稪
|
||||||
LD A,' '
|
LD A,' '
|
||||||
.loop: CP (HL)
|
.loop: CP (HL)
|
||||||
|
|||||||
@ -317,7 +317,7 @@ ADRST10: ;DS 512 ;,0
|
|||||||
DB low CURRDIR_FN,low NOPS, low NOPS, low SYSTIME, low SETTIME, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 3 1E..27
|
DB low CURRDIR_FN,low NOPS, low NOPS, low SYSTIME, low SETTIME, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 3 1E..27
|
||||||
DB low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low WAITKEY, low SCANKEY ; 4 28..31
|
DB low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low WAITKEY, low SCANKEY ; 4 28..31
|
||||||
DB low ECHOKEY, low CTRLKEY, low NOPS, low K_CLEAR, low K_SETUP, low TESTKEY, low SETWIN, low SETWIN1, low SETWIN2, low SETWIN3 ; 5 32..3B
|
DB low ECHOKEY, low CTRLKEY, low NOPS, low K_CLEAR, low K_SETUP, low TESTKEY, low SETWIN, low SETWIN1, low SETWIN2, low SETWIN3 ; 5 32..3B
|
||||||
DB low FREEMEM, low GETMEM, low RETMEM, low SETMEM, low EXEC, low LEAVE, low WAIT, low GSWITCH, low DOSNAME, low EX_PATH ; 6 3C..45
|
DB low FREEMEM, low GETMEM, low RETMEM, low SETMEM, low EXEC, low LEAVE, low GET_ERR, low GSWITCH, low DOSNAME, low EX_PATH ; 6 3C..45
|
||||||
DB low ENVIRON, low APPINFO, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 7 46..4F
|
DB low ENVIRON, low APPINFO, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 7 46..4F
|
||||||
DB low SETVMOD, low GETVMOD, low LOCATE, low CURSOR, low SELPAGE, low SCROLL, low CLEAR, low RDCHAR, low WRCHAR, low WINCOPY ; 8 50..59
|
DB low SETVMOD, low GETVMOD, low LOCATE, low CURSOR, low SELPAGE, low SCROLL, low CLEAR, low RDCHAR, low WRCHAR, low WINCOPY ; 8 50..59
|
||||||
DB low WINREST, low PUTCHAR, low PCHARS, low LIB_SUB, low NOPS, low PRINT ; 9 5A..5F
|
DB low WINREST, low PUTCHAR, low PCHARS, low LIB_SUB, low NOPS, low PRINT ; 9 5A..5F
|
||||||
@ -344,7 +344,7 @@ ADRST10: ;DS 512 ;,0
|
|||||||
DB high CURRDIR_FN,high NOPS, high NOPS, high SYSTIME,high SETTIME,high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
DB high CURRDIR_FN,high NOPS, high NOPS, high SYSTIME,high SETTIME,high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
||||||
DB high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high WAITKEY, high SCANKEY
|
DB high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high WAITKEY, high SCANKEY
|
||||||
DB high ECHOKEY, high CTRLKEY, high NOPS, high K_CLEAR,high K_SETUP,high TESTKEY,high SETWIN, high SETWIN1,high SETWIN2, high SETWIN3
|
DB high ECHOKEY, high CTRLKEY, high NOPS, high K_CLEAR,high K_SETUP,high TESTKEY,high SETWIN, high SETWIN1,high SETWIN2, high SETWIN3
|
||||||
DB high FREEMEM, high GETMEM, high RETMEM, high SETMEM, high EXEC, high LEAVE, high WAIT, high GSWITCH,high DOSNAME, high EX_PATH
|
DB high FREEMEM, high GETMEM, high RETMEM, high SETMEM, high EXEC, high LEAVE, high GET_ERR,high GSWITCH,high DOSNAME, high EX_PATH
|
||||||
DB high ENVIRON, high APPINFO, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
DB high ENVIRON, high APPINFO, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
||||||
DB high SETVMOD, high GETVMOD, high LOCATE, high CURSOR, high SELPAGE,high SCROLL, high CLEAR, high RDCHAR, high WRCHAR, high WINCOPY
|
DB high SETVMOD, high GETVMOD, high LOCATE, high CURSOR, high SELPAGE,high SCROLL, high CLEAR, high RDCHAR, high WRCHAR, high WINCOPY
|
||||||
DB high WINREST, high PUTCHAR, high PCHARS, high LIB_SUB,high NOPS, high PRINT
|
DB high WINREST, high PUTCHAR, high PCHARS, high LIB_SUB,high NOPS, high PRINT
|
||||||
|
|||||||
@ -519,6 +519,8 @@ LOADDIR: ;!TODO optimize
|
|||||||
LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_L),HL
|
LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_L),HL
|
||||||
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_H)
|
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_H)
|
||||||
LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_H),HL
|
LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_H),HL
|
||||||
|
LD HL,#4000 ;!HARDCODE à §¬¥à ¤¨à¥ªâ®à¨¨
|
||||||
|
LD (CORE_BUFFERS.FM_BUF.FS_REC.F_SIZE),HL
|
||||||
;
|
;
|
||||||
.read_dir: LD HL,DIRPAGE.buffer ; ªã¤
|
.read_dir: LD HL,DIRPAGE.buffer ; ªã¤
|
||||||
LD DE,#4000 ; ᪮«ìª®
|
LD DE,#4000 ; ᪮«ìª®
|
||||||
|
|||||||
@ -647,7 +647,7 @@ WRITE_FAT_TABLE:
|
|||||||
;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT
|
;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT
|
||||||
CALL GET_SECTOR_OF_FAT
|
CALL GET_SECTOR_OF_FAT
|
||||||
; B=0, C:HL - ᬥ饨¥ ¢ ᥪâ®à å ¢ãâਠ⠡«¨æë FAT ç «® ¡«®ª
|
; B=0, C:HL - ᬥ饨¥ ¢ ᥪâ®à å ¢ãâਠ⠡«¨æë FAT ç «® ¡«®ª
|
||||||
LD (.save_offset_HL),HL
|
LD (.pop_offset_HL),HL
|
||||||
LD DE,FAT_CACHE.Sectors_32
|
LD DE,FAT_CACHE.Sectors_32
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||||
CP FAT_TYPE.x32
|
CP FAT_TYPE.x32
|
||||||
|
|||||||
@ -554,11 +554,11 @@ KEYSCAN: LD IX,KEYFLAG
|
|||||||
; SBC HL,DE
|
; SBC HL,DE
|
||||||
; CALL Z,RST_X
|
; CALL Z,RST_X
|
||||||
;
|
;
|
||||||
; [x] ®¯ á ï åà¥ì
|
;; [ ] ®¯ á ï åà¥ì
|
||||||
LD HL,BREAK_PROCESS_CODE
|
;LD HL,BREAK_PROCESS_CODE
|
||||||
AND A
|
;AND A
|
||||||
SBC HL,DE
|
;SBC HL,DE
|
||||||
CALL Z,Break_Process
|
;CALL Z,Break_Process
|
||||||
;
|
;
|
||||||
LD BC,(KEYFLAG)
|
LD BC,(KEYFLAG)
|
||||||
CALL PUTSYM
|
CALL PUTSYM
|
||||||
@ -1154,12 +1154,13 @@ KBD_Receiver_Overrun:
|
|||||||
LD (KEY_FLG),A
|
LD (KEY_FLG),A
|
||||||
;LD (UNCODE),A
|
;LD (UNCODE),A
|
||||||
RET
|
RET
|
||||||
; [x] ®¯ á ï åà¥ì
|
;
|
||||||
Break_Process: LD A,(TASK)
|
; [ ] ®¯ á ï åà¥ì
|
||||||
XOR 2 ; 2 - task of primary shell
|
; Break_Process: LD A,(TASK)
|
||||||
RET Z
|
; XOR 2 ; 2 - task of primary shell
|
||||||
LD B,DSS_Error.sys.USER_ABORT
|
; RET Z
|
||||||
JP LEAVE
|
; LD B,DSS_Error.sys.USER_ABORT
|
||||||
|
; JP LEAVE
|
||||||
|
|
||||||
; `
|
; `
|
||||||
; 0
|
; 0
|
||||||
|
|||||||
@ -52,6 +52,7 @@
|
|||||||
.KnownOffset_L WORD #0000 ;+ #32 +50 Œ« ¤è¥¥ á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
.KnownOffset_L WORD #0000 ;+ #32 +50 Œ« ¤è¥¥ á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||||
.KnownOffset_H WORD #0000 ;+ #34 +52 ‘â à襥 á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
.KnownOffset_H WORD #0000 ;+ #34 +52 ‘â à襥 á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||||
ENDS
|
ENDS
|
||||||
|
|
||||||
;ACCESS MODE: A=0 ç⥨¥/§ ¯¨áì
|
;ACCESS MODE: A=0 ç⥨¥/§ ¯¨áì
|
||||||
; A=1 ç⥨¥
|
; A=1 ç⥨¥
|
||||||
; A=2 § ¯¨áì
|
; A=2 § ¯¨áì
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
983
|
984
|
||||||
@ -289,13 +289,7 @@ PRNSIZE: ld a,(ix+32)
|
|||||||
ld h,(ix+FAT_DIRECTORY_RECORD.F_SIZE+3)
|
ld h,(ix+FAT_DIRECTORY_RECORD.F_SIZE+3)
|
||||||
exx
|
exx
|
||||||
push ix
|
push ix
|
||||||
call MAKE_LN_32 ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
call MAKE_LN ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||||
ld hl,L32BIT_.end
|
|
||||||
ld a,(hl)
|
|
||||||
cp " "
|
|
||||||
jr nz,.not_zero
|
|
||||||
ld a,"0"
|
|
||||||
ld (hl),a
|
|
||||||
.not_zero: ld de,SIZE_BUFFER.low ; "0 000 000 000"
|
.not_zero: ld de,SIZE_BUFFER.low ; "0 000 000 000"
|
||||||
ld hl,L32BIT_ ; "0000000000"
|
ld hl,L32BIT_ ; "0000000000"
|
||||||
ldi
|
ldi
|
||||||
@ -403,33 +397,12 @@ toNumber: ld c,#2F
|
|||||||
ld (hl),a
|
ld (hl),a
|
||||||
inc hl
|
inc hl
|
||||||
ret
|
ret
|
||||||
|
;
|
||||||
|
|
||||||
;!TODO ¯¥à¥â é¨âì ¢ procedures/math.asm
|
;!TODO ¯¥à¥â é¨âì ¢ procedures/math.asm
|
||||||
; „¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
; „¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||||
; HL':HL - ç¨á«® ¤«ï ¯¥à¥¢®¤
|
; HL':HL - ç¨á«® ¤«ï ¯¥à¥¢®¤
|
||||||
; !FIXIT ¬®¦® ®¡ê¥¤¥¨âì á PDIGIT
|
; !FIXIT ¬®¦® ®¡ê¥¤¥¨âì á PDIGIT
|
||||||
MAKE_LN_32: CALL MAKE_LN
|
|
||||||
ld hl,L32BIT_ ; "0000000000"
|
|
||||||
JR MAKE_LN_Clean
|
|
||||||
; ¤¥áïâ¨çë© 40- à §àï¤ë© ¢ë¢®¤
|
|
||||||
MAKE_LN_40: CALL MAKE_LN.skip_1
|
|
||||||
ld hl,L40BIT_ ; "0000000000"
|
|
||||||
;
|
|
||||||
MAKE_LN_Clean: ld de,#2030 ; " ","0"
|
|
||||||
.KILLZ: ld a,(hl)
|
|
||||||
cp e
|
|
||||||
jr nz,.KILLZ2
|
|
||||||
ld (hl),d
|
|
||||||
inc hl
|
|
||||||
jr .KILLZ
|
|
||||||
;
|
|
||||||
.KILLZ2: ld hl,L32BIT_.end ; "0"
|
|
||||||
ld a,(hl)
|
|
||||||
cp d
|
|
||||||
ret nz
|
|
||||||
ld (hl),e
|
|
||||||
ret
|
|
||||||
; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
|
||||||
MAKE_LN: ld ix,L32BIT_ ; "0000000000"
|
MAKE_LN: ld ix,L32BIT_ ; "0000000000"
|
||||||
exx
|
exx
|
||||||
ld de,#3B9A
|
ld de,#3B9A
|
||||||
@ -491,7 +464,8 @@ MAKE_LN: ld ix,L32BIT_ ; "0000000000"
|
|||||||
inc ix
|
inc ix
|
||||||
ret
|
ret
|
||||||
;
|
;
|
||||||
GET_DIG: xor a
|
GET_DIG: ld a,"0"-1
|
||||||
|
AND A
|
||||||
.loop: inc a
|
.loop: inc a
|
||||||
sbc hl,de
|
sbc hl,de
|
||||||
exx
|
exx
|
||||||
@ -503,9 +477,16 @@ GET_DIG: xor a
|
|||||||
exx
|
exx
|
||||||
adc hl,de
|
adc hl,de
|
||||||
exx
|
exx
|
||||||
dec a
|
;dec a
|
||||||
add a,"0"
|
cp "0"
|
||||||
ld (ix+0),a
|
jr nz,.putChar
|
||||||
|
ld b,a
|
||||||
|
ld a,(ix-1)
|
||||||
|
cp " "
|
||||||
|
jr z,.putChar
|
||||||
|
ld a,b
|
||||||
|
;
|
||||||
|
.putChar: ld (ix+0),a
|
||||||
inc ix
|
inc ix
|
||||||
ret
|
ret
|
||||||
;
|
;
|
||||||
@ -524,16 +505,18 @@ full_space_medium: WORD 0
|
|||||||
full_space_high: BYTE 0
|
full_space_high: BYTE 0
|
||||||
;
|
;
|
||||||
|
|
||||||
L40BIT_ db "00"
|
; !TODO ¬®¦¥â ®¡®©â¨áì ®¤¨¬ ¡ãä¥à®¬ 00 ¢¬¥áâ® ¤¢ãå?
|
||||||
L32BIT_: db "000000000"
|
L40BIT: db " " ; ¬ àª¥à ¤«ï ix-1
|
||||||
|
.Str: db " " ; 00
|
||||||
|
L32BIT_: db " " ; 000000000
|
||||||
.end: db "0"
|
.end: db "0"
|
||||||
;
|
;
|
||||||
DIRIDD: db "<DIR> ",0
|
DIRIDD: db "<DIR> ",0
|
||||||
;
|
;
|
||||||
SIZE_BUFFER:
|
SIZE_BUFFER: db " " ; ¬ àª¥à ¤«ï ix-1
|
||||||
.high db "00"
|
.high db " " ; "00"
|
||||||
.low: db "0 000 000 000",0,0
|
.low: db " ",0,0 ; "0 000 000 000",0,0
|
||||||
.bytes equ SIZE_BUFFER - $
|
.bytes equ SIZE_BUFFER - $
|
||||||
;
|
;
|
||||||
|
|
||||||
; [x] ⥯¥àì ¥ «¥§¥â ¯àï¬ãî, ¤¥« ¥â ç¥à¥§ ®¢ë© ¯ à ¬¥âà äãªæ¨¨ DskInfo
|
; [x] ⥯¥àì ¥ «¥§¥â ¯àï¬ãî, ¤¥« ¥â ç¥à¥§ ®¢ë© ¯ à ¬¥âà äãªæ¨¨ DskInfo
|
||||||
@ -562,12 +545,7 @@ read_disk_info: OR #80
|
|||||||
AND E
|
AND E
|
||||||
EXX
|
EXX
|
||||||
INC A
|
INC A
|
||||||
;JR Z,.no_full_space_option
|
|
||||||
LD (.full),A
|
LD (.full),A
|
||||||
; ;
|
|
||||||
; LD A,(.full)
|
|
||||||
; OR A
|
|
||||||
; JR Z,.no_full_space_option
|
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
; --> (HL':HL)*BC*A, (DE':DE)*BC*A = B':HL'HL, C':DE':DE
|
; --> (HL':HL)*BC*A, (DE':DE)*BC*A = B':HL'HL, C':DE':DE
|
||||||
@ -618,7 +596,6 @@ read_disk_info: OR #80
|
|||||||
RR C
|
RR C
|
||||||
JP NC,.loop2
|
JP NC,.loop2
|
||||||
; <-- B':HL'HL, C':DE':DE
|
; <-- B':HL'HL, C':DE':DE
|
||||||
;!TODO ¢ë¢®¤¨âì ¯®«ë© à §¬¥à ¤¨áª
|
|
||||||
EXX
|
EXX
|
||||||
LD A,C
|
LD A,C
|
||||||
LD (free_space_high),A
|
LD (free_space_high),A
|
||||||
@ -674,17 +651,16 @@ read_disk_info: OR #80
|
|||||||
ld c,Dss.ChDir
|
ld c,Dss.ChDir
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
; ¯®¨áª ¬¥âª¨
|
; ¯®¨áª ¬¥âª¨
|
||||||
ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
|
ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
|
||||||
ld de,work_buffer1 ; ªã¤
|
ld de,work_buffer1 ; ªã¤
|
||||||
ld a,FAT_ATTR.VOLUME_ID ; âਡãâ ¬¥âª¨ ⮬
|
ld a,FAT_ATTR.VOLUME_ID ; âਡãâ ¬¥âª¨ ⮬
|
||||||
ld bc,Dss.F_First.FATname ; f_first, ä®à¬ â 11
|
ld bc,Dss.F_First.FATname ; f_first, ä®à¬ â 11
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
push af
|
push af
|
||||||
call restore_path ; ¢®ááâ. ⥪. ¯ãâì
|
call restore_path ; ¢®ááâ. ⥪. ¯ãâì
|
||||||
pop af
|
pop af
|
||||||
;jr c,no_volume_label ; ¬¥âª¨ ¥â ¤¨à४â®à¨¨
|
ld hl,work_buffer1 + BUFFER_FIND.REC_Name ; ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first
|
||||||
ld hl,work_buffer1+33 ; ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first
|
jr nc,volume_label ; ¬¥âª ¢ ª®à¥¢®¬ ª â «®£¥
|
||||||
jr nc,volume_label ; ¬¥âª ¢ ª®à¥¢®¬ ª â «®£¥
|
|
||||||
; ¡¥àñ¬ ¬¥âªã ¨§ BPB
|
; ¡¥àñ¬ ¬¥âªã ¨§ BPB
|
||||||
; âãâ ¢ HL ¤«¨ ¯®«ï "Œ¥âª ¤¨áª "
|
; âãâ ¢ HL ¤«¨ ¯®«ï "Œ¥âª ¤¨áª "
|
||||||
POP hl
|
POP hl
|
||||||
@ -710,12 +686,12 @@ read_disk_info: OR #80
|
|||||||
LD (PRM5),A
|
LD (PRM5),A
|
||||||
ret
|
ret
|
||||||
.good_label: POP HL
|
.good_label: POP HL
|
||||||
PUSH HL ; «¨è¥¥
|
PUSH HL ; ⮫ª ¥¬ «¨è¥¥
|
||||||
; ¥áâì ¬¥âª
|
; ¥áâì ¬¥âª
|
||||||
volume_label: pop DE ; «¨è¥¥
|
volume_label: POP DE ; ᨬ ¥¬ «¨è¥¥
|
||||||
; %5
|
; %5
|
||||||
ld de,PRM5
|
ld de,PRM5
|
||||||
ld bc,11 ;!HARDCODE ¤«¨ ¬¥âª¨
|
ld bc,11 ;!HARDCODE ¤«¨ ¬¥âª¨
|
||||||
ldir
|
ldir
|
||||||
xor a
|
xor a
|
||||||
ld (de),a
|
ld (de),a
|
||||||
@ -758,11 +734,11 @@ volume_string_yes:
|
|||||||
; has_not_full_info:
|
; has_not_full_info:
|
||||||
; db ' (?)',0
|
; db ' (?)',0
|
||||||
;
|
;
|
||||||
cmd_dir_options:; [ ] ¯ à ¬¥âà /F - ¢ë¢®¤ ª®«¨ç¥á⢠᢮¡®¤®£® ¬¥áâ ¤¨áª¥ (â®à¬®§¨â, ¯®í⮬㠯 à ¬¥â஬)
|
cmd_dir_options:; [x] ¯ à ¬¥âà /F - ¢ë¢®¤ ª®«¨ç¥á⢠᢮¡®¤®£® ¬¥áâ ¤¨áª¥ (â®à¬®§¨â, ¯®í⮬㠯 à ¬¥â஬)
|
||||||
DB 'f' : DW cmd_dir_freeSpace
|
DB 'f' : DW cmd_dir_freeSpace
|
||||||
DB 'p' : DW cmd_dir_pause
|
DB 'p' : DW cmd_dir_pause
|
||||||
.Size EQU ($-cmd_dir_options)/3
|
.Size EQU ($-cmd_dir_options)/3
|
||||||
.paramLength equ 3
|
.paramLength EQU 3
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
@ -776,7 +752,7 @@ cmd_dir_pause: ld a,#ff
|
|||||||
ld (cmd_dir.key_p),a
|
ld (cmd_dir.key_p),a
|
||||||
jp cmd_dir.parse
|
jp cmd_dir.parse
|
||||||
///////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
GET_BIG_DIG: ld b,0
|
GET_BIG_DIG: ld b,"0"-1
|
||||||
and a
|
and a
|
||||||
.loop: inc b
|
.loop: inc b
|
||||||
sbc hl,de
|
sbc hl,de
|
||||||
@ -794,15 +770,21 @@ GET_BIG_DIG: ld b,0
|
|||||||
adc a,c
|
adc a,c
|
||||||
;
|
;
|
||||||
ex af,af'
|
ex af,af'
|
||||||
dec b
|
;dec b
|
||||||
ld a,b
|
ld a,b
|
||||||
add a,"0"
|
cp "0"
|
||||||
ld (ix+0),a
|
jr nz,.putChar
|
||||||
|
ld a,(ix-1)
|
||||||
|
cp " "
|
||||||
|
jr z,.putChar
|
||||||
|
ld a,b
|
||||||
|
;
|
||||||
|
.putChar: ld (ix+0),a
|
||||||
ex af,af'
|
ex af,af'
|
||||||
inc ix
|
inc ix
|
||||||
ret
|
ret
|
||||||
; stop
|
; stop
|
||||||
PRINT_5BYTES: ld ix,L40BIT_ ; "00"
|
PRINT_5BYTES: ld ix,L40BIT.Str ; "00"
|
||||||
ld c,#17
|
ld c,#17
|
||||||
exx
|
exx
|
||||||
ld de,#4876
|
ld de,#4876
|
||||||
@ -828,16 +810,9 @@ PRINT_5BYTES: ld ix,L40BIT_ ; "00"
|
|||||||
CALL GET_BIG_DIG
|
CALL GET_BIG_DIG
|
||||||
;
|
;
|
||||||
; DE':DE = 100,000,000
|
; DE':DE = 100,000,000
|
||||||
CALL MAKE_LN_40
|
CALL MAKE_LN.skip_1
|
||||||
ld hl,L32BIT_.end ; "0"
|
|
||||||
ld a,(hl)
|
|
||||||
cp " "
|
|
||||||
jr nz,.not_zero
|
|
||||||
ld a,"0"
|
|
||||||
ld (hl),a
|
|
||||||
.not_zero: ;
|
|
||||||
.exit_clean: ld de,SIZE_BUFFER.high ; "0 000 000 000"
|
.exit_clean: ld de,SIZE_BUFFER.high ; "0 000 000 000"
|
||||||
ld hl,L40BIT_ ; "0000000000"
|
ld hl,L40BIT.Str ; "0000000000"
|
||||||
ldi
|
ldi
|
||||||
ldi
|
ldi
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
357
|
365
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 62170ee7bc7dabe6fd55b94e89826ca510a60097
|
Subproject commit 5797b0c5804320f86d263997f624cb8b6bb69385
|
||||||
Loading…
Reference in New Issue
Block a user