mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
bug fixing
This commit is contained in:
parent
6333672fa6
commit
f93e0ad5b2
@ -1,6 +1,7 @@
|
||||
!FIXIT
|
||||
[ ] D:\>copy dss\system.dos c:\system.dos
|
||||
[ ] D:\>copy dss\system.dos c:\system.dos (bp 812d, 8136)
|
||||
Can't open source file
|
||||
|
||||
[ ] E:\BIN\MENU>c:\dss
|
||||
çâ®-â® ¯à® § ¯®«¥®áâì ¤¨à¥ªâ®à¨¨
|
||||
[ ] C:\????? ¨«¨ ?????
|
||||
|
||||
294
DSS/DOS5.ASM
294
DSS/DOS5.ASM
@ -39,7 +39,7 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
RET C
|
||||
LD A,C
|
||||
;
|
||||
|
||||
;
|
||||
INC B
|
||||
DEC B
|
||||
JP Z,.RATTRIB
|
||||
@ -49,21 +49,31 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
SCF
|
||||
RET
|
||||
.RATTRIB:
|
||||
XOR A
|
||||
;!TEST ;[ ] 16/11/23 optimize get attribute
|
||||
;XOR A
|
||||
;
|
||||
CALL .OPENATR ;R02
|
||||
RET C
|
||||
LD B,(IY+_sFM.ATTRIBUT)
|
||||
PUSH BC
|
||||
CALL CLOSE
|
||||
POP BC
|
||||
RET C
|
||||
LD A,B
|
||||
;AND A
|
||||
;!TEST ;[ ] 16/11/23 optimize get attribute
|
||||
LD A,(HANDBUF+_sFM.ATTRIBUT)
|
||||
;LD B,(IY+_sFM.ATTRIBUT)
|
||||
;PUSH BC
|
||||
;CALL CLOSE
|
||||
;POP BC
|
||||
;RET C
|
||||
;LD A,B
|
||||
;
|
||||
RET
|
||||
.WATTRIB:
|
||||
PUSH AF
|
||||
XOR A
|
||||
;!TEST ;[ ] 16/11/23 optimize get attribute
|
||||
LD (OPEN.TMP),A
|
||||
;
|
||||
CALL .OPENATR ;R02
|
||||
;!TEST ;[ ] 16/11/23 optimize get attribute
|
||||
CALL NC,OPEN.FM
|
||||
;
|
||||
POP BC
|
||||
RET C
|
||||
SET 7,(IY+_sFM.ACCESS_MODE)
|
||||
@ -71,27 +81,27 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
LD (IY+_sFM.ATTRIBUT),B
|
||||
PUSH BC
|
||||
CALL CLOSE
|
||||
POP BC
|
||||
.error: POP BC
|
||||
RET C
|
||||
LD A,B
|
||||
;AND A
|
||||
RET
|
||||
;R02
|
||||
.OPENATR:
|
||||
LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
||||
;!TEST ;[ ] 16/11/23 optimize get attribute
|
||||
;LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
||||
;
|
||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
; LD HL,TMPNAME
|
||||
; LD DE,MASKARE
|
||||
CALL MASK
|
||||
RET C
|
||||
LD A,FAT_ATTR.NoVolID
|
||||
CALL SEARCH.Custom
|
||||
; JR NC,OPENAT ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||||
; ; § ¯¨áì ¥ ©¤¥
|
||||
; RET
|
||||
RET C ; § ¯¨áì ¥ ©¤¥
|
||||
JP OPEN.FM ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||||
;!TEST ;[ ] 16/11/23 optimize get attribute
|
||||
JP SEARCH.Custom
|
||||
;CALL SEARCH.Custom
|
||||
;RET C ; § ¯¨áì ¥ ©¤¥
|
||||
;JP OPEN.FM ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||||
;
|
||||
;
|
||||
;R02
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
@ -308,28 +318,24 @@ RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
||||
; CF=1, A - ª®¤ ®è¨¡ª¨.
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
|
||||
LD C,A
|
||||
LD (OPEN.TMP),A
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
CALL DIR_PATH_CHECK.forceCheck
|
||||
POP BC
|
||||
POP HL
|
||||
RET C
|
||||
LD A,C
|
||||
JR OPEN.start
|
||||
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
|
||||
;
|
||||
;R08
|
||||
OPEN: LD (.TMP),A ; enter point for CREATE
|
||||
CALL GETWORD
|
||||
OPEN: LD (.TMP),A ; enter point from CREATE
|
||||
.start: CALL GETWORD
|
||||
RET C
|
||||
; LD HL,TMPNAME
|
||||
; LD DE,MASKARE
|
||||
CALL MASK
|
||||
CALL MASK ; enter point from OPEN_FN
|
||||
RET C
|
||||
.FILE: CALL SEARCH.File ; enter point for EXEC
|
||||
.FILE: CALL SEARCH.File ; enter point from EXEC
|
||||
RET C
|
||||
;R02
|
||||
.FM: CALL GET_FM ; enter point for ATTRIB
|
||||
.FM: CALL GET_FM ; enter point from ATTRIB
|
||||
RET C
|
||||
LD A,C
|
||||
EX AF,AF'
|
||||
@ -581,17 +587,17 @@ CHNDISK_FN:
|
||||
POP AF
|
||||
RET
|
||||
CHNDISK:;[x] ¡®«¥¥ ª®à४â ï ᬥ ¤¨áª
|
||||
CALL OPENDSK
|
||||
CALL OPENDSK
|
||||
;
|
||||
;R10
|
||||
;R10
|
||||
RET C
|
||||
LD HL,WorkDirectory
|
||||
LD (HL),0
|
||||
PUSH AF
|
||||
CALL OPENDIR
|
||||
POP BC
|
||||
RET C
|
||||
LD A,B
|
||||
LD (HL),0
|
||||
PUSH AF
|
||||
CALL OPENDIR
|
||||
POP BC
|
||||
RET C
|
||||
LD A,B
|
||||
RET
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
@ -1204,8 +1210,6 @@ DOSNAME:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; —⥨¥ ॣ¨áâ஢ CMOS
|
||||
; ¢å®¤: d=®¬¥à ॣ¨áâà
|
||||
@ -1368,32 +1372,69 @@ RMKTIME:
|
||||
;----------------------------------------------------------------------;
|
||||
; HL - 11 bytes filename "FILENAMEEXT"
|
||||
; DE - DOS filename "FILENAME.EXT",0
|
||||
;!FIXIT ¥ª®àà¥ªâ® à ¡®â ¥â
|
||||
; GETNAME:
|
||||
; LD BC,#08FF
|
||||
; .GETN1: LD A,(HL)
|
||||
; CP " "
|
||||
; JR NZ,.GETN3
|
||||
; .GETN2: INC HL
|
||||
; DJNZ .GETN2
|
||||
; JR .GETN4
|
||||
; .GETN3: LDI
|
||||
; DJNZ .GETN1
|
||||
; ;
|
||||
; .GETN4: LD A,(HL)
|
||||
; CP " "
|
||||
; LD A,"."
|
||||
; JR NZ,.GETN5
|
||||
; LD A,#00
|
||||
; .GETN5: LD (DE),A
|
||||
; INC DE
|
||||
; RET Z
|
||||
; LD B,#03
|
||||
; .GETN6: LD A,(HL)
|
||||
; CP " "
|
||||
; RET Z
|
||||
; LDI
|
||||
; XOR A
|
||||
; LD (DE),A
|
||||
; DJNZ .GETN6
|
||||
; RET
|
||||
;---------------;---------------;---------------
|
||||
GETNAME:
|
||||
LD BC,#08FF
|
||||
.GETN1: LD A,(HL)
|
||||
CP " "
|
||||
JR NZ,.GETN3
|
||||
.GETN2: INC HL
|
||||
DJNZ .GETN2
|
||||
JR .GETN4
|
||||
.GETN3: LDI
|
||||
DJNZ .GETN1
|
||||
.GETN4: LD A,(HL)
|
||||
CP " "
|
||||
LD A,"."
|
||||
JR NZ,.GETN5
|
||||
LD A,#00
|
||||
.GETN5: LD (DE),A
|
||||
INC DE
|
||||
RET Z
|
||||
LD B,#03
|
||||
.GETN6: LD A,(HL)
|
||||
CP " "
|
||||
RET Z
|
||||
LD A,' '
|
||||
.loop: CP (HL)
|
||||
JR Z,.skip
|
||||
LDI
|
||||
DJNZ .loop
|
||||
;;;;
|
||||
JP .extension
|
||||
;;;;
|
||||
.skip: LD C,B
|
||||
LD B,0
|
||||
; CF=0
|
||||
ADC HL,BC
|
||||
;;;;
|
||||
.extension:
|
||||
CP (HL)
|
||||
LD A,"."
|
||||
JR NZ,.copy_extension
|
||||
XOR A
|
||||
.copy_extension:
|
||||
LD (DE),A
|
||||
INC DE
|
||||
RET Z ;no copy extension
|
||||
; copy extension
|
||||
LD BC,#03FF ;!HARDCODE ¤«¨ à áè¨à¥¨ï + áçñâ稪
|
||||
LD A,' '
|
||||
.loop2: CP (HL)
|
||||
JR Z,.exit
|
||||
LDI
|
||||
DJNZ .loop2
|
||||
.exit: XOR A
|
||||
LD (DE),A
|
||||
DJNZ .GETN6
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
@ -1401,8 +1442,9 @@ GETNAME:
|
||||
;----------------------------------------------------------------------;
|
||||
; <20>®¨áª § ¯¨á¨ ª â «®£ ¢ ᯨ᪥ ª â «®£
|
||||
;
|
||||
; ¢å®¤: a= âਡãâ § ¯¨á¨
|
||||
; ¢å®¤: a= âਡãâ § ¯¨á¨
|
||||
; ¢ë室: de'=¨¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£
|
||||
; (HANDBUF) = file's direcory record
|
||||
; CF - ª â «®£ ¥ ©¤¥
|
||||
SEARCH:
|
||||
.Dir: LD A,FAT_ATTR.DIRECTORY
|
||||
@ -1497,7 +1539,8 @@ SEARCH:
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; ’¥áâ ¤®¯ãá⨬®¥ ¨¬ï ¨ áâநâìáï ¤¨áª.
|
||||
; ¢å®¤: hl=áâப ¨¬¥¨
|
||||
; ¢å®¤: hl=áâப ¨¬¥¨
|
||||
; ¢ë室: (TMPNAME)
|
||||
GETWORD:
|
||||
; !TEST
|
||||
INC HL
|
||||
@ -1517,11 +1560,21 @@ GETWORD:
|
||||
INC HL
|
||||
PUSH HL
|
||||
;!TEST CHNDISK OPENDSK
|
||||
;CALL OPENDSK
|
||||
CALL CHNDISK
|
||||
;CALL OPENDSK
|
||||
;
|
||||
POP HL
|
||||
RET C
|
||||
LD A,(HL)
|
||||
OR A
|
||||
RET Z
|
||||
CP ' ' ;
|
||||
RET Z
|
||||
CP '\' ;
|
||||
SCF
|
||||
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
||||
RET NZ
|
||||
INC HL
|
||||
;
|
||||
.dir_loop:
|
||||
LD DE,TMPNAME
|
||||
@ -1529,7 +1582,7 @@ GETWORD:
|
||||
;
|
||||
.loop: LD A,(HL)
|
||||
INC HL
|
||||
CP '\'
|
||||
CP '\' ;
|
||||
JR Z,.DIR_NAME
|
||||
; AND A
|
||||
; JR Z,.DIR_NAME
|
||||
@ -1544,6 +1597,7 @@ GETWORD:
|
||||
LD A,DSS_Error.sys.INVALID_NAME
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
.DIR_NAME:
|
||||
XOR A
|
||||
LD (DE),A
|
||||
@ -1631,7 +1685,8 @@ OPENDIR:;!TEST ;[ ] some optimize
|
||||
LD (HL),'\'
|
||||
INC HL
|
||||
LD (HL),#00
|
||||
AND A
|
||||
; CF=0
|
||||
;AND A
|
||||
RET
|
||||
.SUBDIR:
|
||||
CP "."
|
||||
@ -1679,7 +1734,8 @@ OPENDIR:;!TEST ;[ ] some optimize
|
||||
EX DE,HL
|
||||
;
|
||||
CALL LOADDIR
|
||||
AND A
|
||||
; CF=0
|
||||
;AND A
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
@ -1691,97 +1747,96 @@ FINDDIR:
|
||||
;
|
||||
PUSH AF
|
||||
LD IX,DIRPAGE.buffer
|
||||
.F_01: LD A,(IX+00)
|
||||
.big_loop:
|
||||
LD A,(IX+00)
|
||||
OR A
|
||||
JR Z,.error
|
||||
CP #E5
|
||||
JR Z,.F_03
|
||||
LD A,(IX+11)
|
||||
AND #10
|
||||
JR Z,.F_03
|
||||
JR Z,.next_step
|
||||
LD A,(IX+11) ;!HARDCODE
|
||||
AND #10 ;!HARDCODE
|
||||
JR Z,.next_step
|
||||
LD HL,MASKARE
|
||||
LD D,XH
|
||||
LD E,XL
|
||||
EX DE,HL
|
||||
LD B,11
|
||||
LD B,11 ;!HARDCODE
|
||||
.loop: LD A,(DE)
|
||||
CP "?"
|
||||
JR Z,.F_05
|
||||
JR Z,.compared
|
||||
CP (HL)
|
||||
JR NZ,.F_03
|
||||
.F_05: INC HL
|
||||
JR NZ,.next_step
|
||||
.compared:
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ .loop
|
||||
;
|
||||
LD A,(IX+0)
|
||||
CP "."
|
||||
JP NZ,.ADDSPEC
|
||||
LD A,(IX+1)
|
||||
LD A,(IX+1) ;!HARDCODE
|
||||
CP "."
|
||||
JP NZ,.IT_DIR
|
||||
;LD HL,CurrentDirectory
|
||||
LD HL,WorkDirectory
|
||||
LD D,H
|
||||
LD E,L
|
||||
INC HL
|
||||
;LD BC,CurrentDirectory.DEPTH
|
||||
LD BC,WorkDirectory.DEPTH
|
||||
XOR A
|
||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||
DEC HL ;R09 ;[x] ¨á¯à ¢«¥ ¡ £ á ¯ àᨣ®¬ ¡ãä¥à ª â «®£
|
||||
DEC HL ;R09
|
||||
DEC HL
|
||||
;LD BC,CurrentDirectory.DEPTH
|
||||
LD BC,WorkDirectory.DEPTH
|
||||
LD A,'\'
|
||||
CPDR
|
||||
INC HL
|
||||
;AND A
|
||||
; CF = 0
|
||||
EX DE,HL
|
||||
; CF = 0
|
||||
SBC HL,DE
|
||||
EX DE,HL
|
||||
JR NZ,.MM3
|
||||
JP .MM2_5
|
||||
.F_03: LD BC,#0020
|
||||
INC HL
|
||||
.MM3: LD (HL),0
|
||||
JP .IT_DIR
|
||||
;
|
||||
.next_step:
|
||||
LD BC,#0020 ;!HARDCODE
|
||||
ADD IX,BC
|
||||
JR NC,.F_01
|
||||
JR NC,.big_loop
|
||||
;
|
||||
.error: POP AF
|
||||
OUT (SLOT3),A
|
||||
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
||||
SCF
|
||||
RET
|
||||
.ADDSPEC:
|
||||
LD E,XL
|
||||
LD D,XH
|
||||
LD HL,WorkDirectory+1
|
||||
LD BC,WorkDirectory.DEPTH-1
|
||||
; XOR A
|
||||
; CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||
; DEC HL
|
||||
; DEC HL
|
||||
; LD A,'\' ; #5C
|
||||
; CP (HL)
|
||||
; INC HL
|
||||
; JR Z,.ADDSPE0
|
||||
; LD (HL),A
|
||||
; INC HL
|
||||
; .ADDSPE0:
|
||||
CALL .CHECK_SLASH
|
||||
;R11
|
||||
LD A,B
|
||||
AND A
|
||||
JR NZ,.MM1
|
||||
LD A,C
|
||||
CP 8
|
||||
JR C,FINDDIR.error
|
||||
;R11
|
||||
LD BC,#0820
|
||||
;R11
|
||||
LD A,B
|
||||
AND A
|
||||
JR NZ,.nxt
|
||||
LD A,C
|
||||
CP 8+1+3 ;!HARDCODE ¨¬ï ª â «®£ + â®çª + à áè¨à¥¨¥
|
||||
JR C,FINDDIR.error
|
||||
.nxt: ;
|
||||
LD E,XL
|
||||
LD D,XH
|
||||
; [ ] ®¯â¨¬¨§ æ¨ï ¯® à §¬¥àã
|
||||
EX DE,HL
|
||||
CALL GETNAME
|
||||
EX DE,HL
|
||||
;
|
||||
/*
|
||||
LD BC,256*8 + ' ' ;!HARDCODE
|
||||
.MM1: LD A,(DE)
|
||||
INC DE
|
||||
CP C
|
||||
JR Z,.MM2
|
||||
LD (HL),A ;!FIXIT ¢®â âãâ ¬®¦¥â ¢ë«¥§ âì § ¯à¥¤¥«ë ¡ãä¥à ¯à¨ ¤«¨®¬ ¯ã⨠¨ £à®å âì ª®¤ ¨ ¤ ë¥. R11 ¢à¥¬¥® «¥ç¨â ª®áâë«ñ¬
|
||||
INC HL
|
||||
.MM2 DJNZ .MM1
|
||||
.MM2 DJNZ .MM1 ;x42-40 50-55
|
||||
LD A,(DE)
|
||||
INC DE
|
||||
CP C
|
||||
@ -1803,6 +1858,7 @@ FINDDIR:
|
||||
.MM2_5: INC HL
|
||||
.MM3: LD (HL),0
|
||||
; JP IT_DIR
|
||||
*/
|
||||
.IT_DIR:
|
||||
LD E,(IX+_sFM.ST_CLUSTER)
|
||||
LD D,(IX+_sFM.ST_CLUSTER+1)
|
||||
@ -2138,24 +2194,14 @@ DIR_PATH_CHANGE:
|
||||
ADD 'A'
|
||||
LD (CurrentPath),A
|
||||
;
|
||||
.Current: ;LD HL,WorkDirectory
|
||||
;LD DE,CurrentDirectory
|
||||
;LD BC,DIRECTORY_PATH_LENGTH
|
||||
;LDIR
|
||||
;RET
|
||||
LD HL,CurrentDirectory
|
||||
.Current: LD HL,CurrentDirectory
|
||||
JP CURRDIR
|
||||
;
|
||||
.FullWork: LD A,(CurrentPath)
|
||||
SUB 'A'
|
||||
LD (FatBuffer.DRIVE),A
|
||||
;
|
||||
.Work: ;LD HL,CurrentDirectory
|
||||
;LD DE,WorkDirectory
|
||||
;LD BC,DIRECTORY_PATH_LENGTH
|
||||
;LDIR
|
||||
;RET
|
||||
LD HL,WorkDirectory
|
||||
.Work: LD HL,WorkDirectory
|
||||
JP CURRDIR_FN
|
||||
;
|
||||
|
||||
@ -2196,11 +2242,10 @@ DIR_PATH_CHECK: LD A,(HL)
|
||||
INC HL
|
||||
INC DE
|
||||
JR Z,.loop
|
||||
JP .gotoPath
|
||||
;
|
||||
JR .ReDir
|
||||
.end: CP (HL)
|
||||
RET Z
|
||||
.ReDir: LD HL,CurrentPath
|
||||
JR .gotoPath
|
||||
;
|
||||
.checkDrive: LD HL,CurrentPath
|
||||
@ -2209,6 +2254,7 @@ DIR_PATH_CHECK: LD A,(HL)
|
||||
CP (HL)
|
||||
RET
|
||||
.gotoPath: CALL FINDDIR.CHECK_SLASH
|
||||
LD HL,CurrentPath
|
||||
JP GETWORD
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
@ -590,10 +590,10 @@ READ: LD (.R_POINT),HL
|
||||
CALL SET_FM
|
||||
RET C
|
||||
CALL TSTSIZE
|
||||
;!FIXIT ¬®¦® ¯¥à¥¥á⨠¢ ç «® ¯à®æ¥¤ãàë
|
||||
LD A,D
|
||||
OR E
|
||||
JP Z,.NOREAD
|
||||
;
|
||||
LD A,D
|
||||
OR E
|
||||
JP Z,.NOREAD
|
||||
;
|
||||
PUSH DE
|
||||
LD A,(IY+_sFM.DRIVE)
|
||||
|
||||
@ -707,7 +707,6 @@ FINDPATH:
|
||||
CALL NZ,CHDIR
|
||||
JR C,.BADPATH
|
||||
LD HL,CORE_BUFFERS.EXEBUFF
|
||||
;LD DE,MASKARE
|
||||
CALL MASK.name
|
||||
JR C,.BADPATH
|
||||
CALL TST_EXT
|
||||
|
||||
@ -1 +1 @@
|
||||
595
|
||||
618
|
||||
Loading…
Reference in New Issue
Block a user