mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
Core: -bug in ATTRIB with OPEN_FN.FM
This commit is contained in:
parent
dbc5088978
commit
4083da9fa5
@ -36,13 +36,9 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
;
|
||||
RET
|
||||
;
|
||||
.error_fn: LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||
SCF
|
||||
RET
|
||||
.B_1: DJNZ .B_2
|
||||
;
|
||||
.B_1: DJNZ .error_fn
|
||||
.WRITE_FN:
|
||||
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥ë© ä¨ªá ¤«ï volume ID
|
||||
.WRITE_FN: AND FAT_ATTR.NoVolID ; [x] 2/12/23 ä¨ªá ¤«ï volume ID
|
||||
.WRITE: PUSH AF
|
||||
XOR A
|
||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
||||
@ -55,7 +51,7 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
POP BC
|
||||
RET C
|
||||
SET 7,(IY+_sFM.ACCESS_MODE)
|
||||
RES 3,B ;CLEAR LABEL ATTR ;R003 ;!HARDCODE attribute bit
|
||||
;RES 3,B ;CLEAR LABEL ATTR ;R003
|
||||
LD (IY+_sFM.FS_REC.ATTRIBUT),B
|
||||
PUSH BC
|
||||
CALL CLOSE_FN
|
||||
@ -63,9 +59,10 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
RET C
|
||||
LD A,B
|
||||
RET
|
||||
;R002
|
||||
.OPENATR:
|
||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
||||
;R002
|
||||
; ¢ë室: ¥á«¨ CF = 0, â® DE = record index
|
||||
;!TEST 9/11/23 record index
|
||||
.OPENATR: ;!TEST ;[x] 16/11/23 optimize get attribute
|
||||
;LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
||||
;
|
||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
@ -80,4 +77,13 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
;JP OPEN.FM ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||||
;
|
||||
;
|
||||
;R002
|
||||
; [ ] ; !TODO ¤«ï ª®¬ ¤ë LABEL ¢ Shell
|
||||
; 1. ¯à®¢¥à¨âì çâ® ¢ HL 㪠§ ⮫쪮 ¬¥âª ¢ ª ¢ëçª å
|
||||
; 2. ¥á«¨ ¬¥âª ¡¥§ ¥¤®¯ãá⨬ëå ᨬ¢®«®¢, â® ¤¥« ¥¬ ¥ñ ¥
|
||||
; ⮫쪮 ¢ BPB, ® ¨ ª®à¥¢®¬ à §¤¥«¥, ¨ ç¥ ã¤ «ï¥¬ ª®à¥¢®¬
|
||||
; 3. ®âªàë¢ ¥¬ âà¥¡ã¥¬ë© ¤¨áª ç¥à¥§ .force, ç⮡ á¡à®á¨âì ªíè¨
|
||||
.B_2: DJNZ .error_fn
|
||||
;
|
||||
.error_fn: LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||
SCF
|
||||
RET
|
||||
@ -28,10 +28,10 @@ OPEN_FN: ;!TEST Current Dir ;[x] 15/10/23
|
||||
RET C
|
||||
.FILE: CALL SEARCH.File ; enter point from EXEC, CREATE
|
||||
RET C
|
||||
;!TEST 9/11/23 record index
|
||||
PUSH DE ; á®åà 塞 㪠§ â¥«ì § ¯¨áì ¢ ª â «®£¥ FS (¯®«ãç¥ ¨§ SEARCH)
|
||||
;R002 ;
|
||||
.FM: CALL GET_FM ; enter point from ATTRIB
|
||||
;R002 ;!TEST 9/11/23 record index
|
||||
.FM: PUSH DE ; á®åà 塞 㪠§ â¥«ì § ¯¨áì ¢ ª â «®£¥ FS (¯®«ãç¥ ¨§ SEARCH)
|
||||
;
|
||||
CALL GET_FM ; enter point from ATTRIB
|
||||
RET C
|
||||
LD A,C
|
||||
EX AF,AF'
|
||||
|
||||
@ -9,7 +9,17 @@
|
||||
;R07 17-12-1999 DNS BUG FIX SIGNATURE #55AA AT 510 OFFSET
|
||||
;---------------------------------------------------------------
|
||||
;----------------------------------------------------------------------;
|
||||
MAKE_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
|
||||
;
|
||||
; „¥« ¥¬ FSInfo ᥪâ®à
|
||||
; ç¨á⨬ ᥪâ®à
|
||||
LD HL,CORE_BUFFERS.SECTOR_BUFFER
|
||||
LD DE,CORE_BUFFERS.SECTOR_BUFFER+1
|
||||
LD (HL),0
|
||||
@ -28,21 +38,6 @@ MAKE_FSinfo: ;
|
||||
; SECTOR_SIGNATURE
|
||||
LD HL,#AA55
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.SECTOR_SIGNATURE),HL
|
||||
RET
|
||||
; á¡à áë¢ ¥â § 票¥ ᢮¡®¤ëå ª« áâ¥à®¢ "¥®¯à¥¤¥«¥®"
|
||||
; ¬¥ï¥â § 票¥ ¯¥à¢®£® ᢮¡®¤®£® ª« áâ¥à
|
||||
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
|
||||
CALL MAKE_FSinfo
|
||||
;
|
||||
; FREE_CLUSTERS_COUNT
|
||||
LD HL,(CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_L)
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT),HL
|
||||
@ -53,7 +48,7 @@ SET_FSInfo: LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER),HL
|
||||
LD HL,(G_CLUST.high)
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FIRST_FREE_CLUSTER+2),HL
|
||||
;
|
||||
; <20>¨è¥¬ ¥£® ¢¨â
|
||||
XOR A
|
||||
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
||||
JR WRITE_FSinfo
|
||||
|
||||
@ -139,9 +139,6 @@ G_CLUST: ;
|
||||
EXX
|
||||
INC A
|
||||
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
||||
; [ ] free clusters for FSInfo
|
||||
; XOR A ; 㬥ìè¨âì
|
||||
; CALL SET_NEW_FREE_CLUSTERS
|
||||
RET
|
||||
|
||||
; ‚室: A - 㬥ìè¨âì (0) ¨«¨ 㢥«¨ç¨âì (!0) ç¨á«® ᢮¡®¤ëå ª« áâ¥à®¢
|
||||
|
||||
@ -1 +1 @@
|
||||
981
|
||||
982
|
||||
@ -411,7 +411,7 @@ toNumber: ld c,#2F
|
||||
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"
|
||||
;
|
||||
@ -429,7 +429,7 @@ MAKE_LN_Clean: ld de,#2030 ; " ","0"
|
||||
ret nz
|
||||
ld (hl),e
|
||||
ret
|
||||
|
||||
; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||
MAKE_LN: ld ix,L32BIT_ ; "0000000000"
|
||||
exx
|
||||
ld de,#3B9A
|
||||
@ -668,13 +668,6 @@ read_disk_info: OR #80
|
||||
LD L,(HL)
|
||||
LD H,A
|
||||
call hex16
|
||||
;
|
||||
|
||||
; Œ¥âª ¤¨áª
|
||||
; ld a,(disk) ; ®¬¥à ¤¨áª
|
||||
; cp 2 ; ¬¥ìè¥ "C:" ?
|
||||
; jr nc,get_inf_data1 ; ¬¥âª ¢ BPB
|
||||
|
||||
.get_label: ; ¨é¥¬ ¬¥âªã ¢ ª®à¥ ”‘ à §¤¥«
|
||||
; ãáâ. ª®à¥ì ¤¨áª
|
||||
ld hl,root_path ; "x:\",0
|
||||
@ -774,27 +767,9 @@ cmd_dir_options:; [ ]
|
||||
|
||||
;
|
||||
cmd_dir_freeSpace:
|
||||
;PUSH DE
|
||||
;PUSH BC
|
||||
; § â¨à ¥¬ ©¤¥ë© ª«îç
|
||||
; ld A,'/'
|
||||
; ex de,hl
|
||||
; ld bc,4
|
||||
; CPDR
|
||||
; inc hl
|
||||
; ld (hl),' '
|
||||
; inc hl
|
||||
; ld (hl),' '
|
||||
;
|
||||
; áâ ¢¨¬ ®¯æ¨î ¤«ï API DSS DskInfo
|
||||
ld a,1
|
||||
ld (read_disk_info.full),a
|
||||
; ; ¢ë¢®¤¨¬ áâப㠮 à áçñ⥠᢮¡®¤®£® ¬¥áâ â ª, ç⮡ ® § âñà« áì
|
||||
; LD DE,MAIN_MSG.CALCULATING
|
||||
; CALL MESSAGE
|
||||
; ¢®§¢à é ¥¬áï ¢ 横«
|
||||
;POP BC
|
||||
;POP DE
|
||||
jp cmd_dir.parse
|
||||
;
|
||||
cmd_dir_pause: ld a,#ff
|
||||
@ -853,38 +828,14 @@ PRINT_5BYTES: ld ix,L40BIT_ ; "00"
|
||||
CALL GET_BIG_DIG
|
||||
;
|
||||
; DE':DE = 100,000,000
|
||||
; HL':HL ¥éñ ã¦ë
|
||||
; PUSH HL
|
||||
; LD HL,L40BIT_
|
||||
; LD B,3 ;!HARDCODE 2 § ª
|
||||
; .loop: LD A,(HL)
|
||||
; CP "1"
|
||||
; jr nc,.exit_clean
|
||||
; LD (HL)," "
|
||||
; INC HL
|
||||
; DJNZ .loop
|
||||
;.exit_clean: POP HL
|
||||
CALL MAKE_LN_40
|
||||
;JR PRINT_DWORD.skip_LN
|
||||
;
|
||||
;PRINT_DWORD: call MAKE_LN ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||
.skip_LN: ld hl,L32BIT_.end ; "0"
|
||||
ld hl,L32BIT_.end ; "0"
|
||||
ld a,(hl)
|
||||
cp " "
|
||||
jr nz,.not_zero
|
||||
ld a,"0"
|
||||
ld (hl),a
|
||||
|
||||
.not_zero:
|
||||
; ld hl,SIZE_BUFFER.high ; "0 000 000 000"
|
||||
; ld b,SIZE_BUFFER.bytes - 1
|
||||
; .clean_loop: ld a,(hl)
|
||||
; cp "1"
|
||||
; jr nc,.exit_clean
|
||||
; ld (hl)," "
|
||||
; inc hl
|
||||
; djnz .clean_loop
|
||||
;
|
||||
.not_zero: ;
|
||||
.exit_clean: ld de,SIZE_BUFFER.high ; "0 000 000 000"
|
||||
ld hl,L40BIT_ ; "0000000000"
|
||||
ldi
|
||||
|
||||
@ -1 +1 @@
|
||||
356
|
||||
357
|
||||
Loading…
Reference in New Issue
Block a user