mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
-bug: CLOSE_FN могла генерировать потерянные кластеры и запарывать файлы. И куча мелких правок заодно.
This commit is contained in:
parent
c37fdf343c
commit
34ee5a9db8
@ -1,3 +1,12 @@
|
|||||||
|
!FIXIT
|
||||||
|
[ ] D:\>copy dss\system.dos c:\system.dos
|
||||||
|
Can't open source file
|
||||||
|
[ ] E:\BIN\MENU>c:\dss
|
||||||
|
çâ®-â® ¯à® § ¯®«¥®áâì ¤¨à¥ªâ®à¨¨
|
||||||
|
[ ] C:\????? ¨«¨ ?????
|
||||||
|
¨á¯®«ï¥âáï ª ª ª®¬ ¤
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
!TODO
|
!TODO
|
||||||
‚ ¦®¥:
|
‚ ¦®¥:
|
||||||
[ ] ¯¥à¥¤ ç «®¬ à ¡®âë «î¡®© ¯à®æ¥¤ãàë § ¯¨á¨/çâ¥¨ï ¤à ©¢ ãáâ ¢«¨¢ âì ä« £, ç⮡ ¥ ¡ë«® ¯®¢â®à®£® ¢ë§®¢ (¨§ ¯à¥àë¢ ¨ï, ¯à¨¬¥à)
|
[ ] ¯¥à¥¤ ç «®¬ à ¡®âë «î¡®© ¯à®æ¥¤ãàë § ¯¨á¨/çâ¥¨ï ¤à ©¢ ãáâ ¢«¨¢ âì ä« £, ç⮡ ¥ ¡ë«® ¯®¢â®à®£® ¢ë§®¢ (¨§ ¯à¥àë¢ ¨ï, ¯à¨¬¥à)
|
||||||
@ -8,7 +17,7 @@
|
|||||||
|
|
||||||
‚®®¡é¥ ¥ ¢ ¦®¥:
|
‚®®¡é¥ ¥ ¢ ¦®¥:
|
||||||
[ ] ¨á¯à ¢¨âì ¢ë室 ¨§ äãªæ¨¨ #41 ¯à¨ ¢®§¬®¦®¬ 㢥«¨ç¥¨¨ ®¬¥à â ᪨ 1 ¯à¨ 255
|
[ ] ¨á¯à ¢¨âì ¢ë室 ¨§ äãªæ¨¨ #41 ¯à¨ ¢®§¬®¦®¬ 㢥«¨ç¥¨¨ ®¬¥à â ᪨ 1 ¯à¨ 255
|
||||||
-------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
DSS 1.70.2
|
DSS 1.70.2
|
||||||
ˆ§¬¥¥¨ï ¯®á«¥ ¢¥àᨨ 1.70
|
ˆ§¬¥¥¨ï ¯®á«¥ ¢¥àᨨ 1.70
|
||||||
|
|||||||
400
DSS/DOS5.ASM
400
DSS/DOS5.ASM
@ -81,12 +81,12 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
||||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
; LD HL,TMPNAME
|
||||||
LD DE,MASKARE
|
; LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
LD A,FAT_ATTR.NoVolID
|
LD A,FAT_ATTR.NoVolID
|
||||||
CALL SEARCH.ASEARCH
|
CALL SEARCH.Custom
|
||||||
; JR NC,OPENAT ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
; JR NC,OPENAT ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
||||||
; ; § ¯¨áì ¥ ©¤¥
|
; ; § ¯¨áì ¥ ©¤¥
|
||||||
; RET
|
; RET
|
||||||
@ -106,7 +106,7 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
CALL .Prepare
|
CALL .Prepare
|
||||||
RET C
|
RET C
|
||||||
CALL SEARCH
|
CALL SEARCH.File
|
||||||
CALL NC,DELETE ;FILE EXIST RECREAT
|
CALL NC,DELETE ;FILE EXIST RECREAT
|
||||||
JR .DO
|
JR .DO
|
||||||
;
|
;
|
||||||
@ -120,7 +120,7 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
CALL .Prepare
|
CALL .Prepare
|
||||||
RET C
|
RET C
|
||||||
CALL SEARCH
|
CALL SEARCH.File
|
||||||
LD A,DSS_Error.sys.FILE_EXISTS
|
LD A,DSS_Error.sys.FILE_EXISTS
|
||||||
CCF
|
CCF
|
||||||
RET C
|
RET C
|
||||||
@ -158,19 +158,21 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
;
|
;
|
||||||
CALL WRT_HND
|
CALL WRT_HND
|
||||||
CALL SAVEDIR
|
RET C
|
||||||
|
;CALL SAVEDIR
|
||||||
.PATH0+1:
|
.PATH0+1:
|
||||||
LD HL,0
|
LD HL,0
|
||||||
XOR A
|
XOR A
|
||||||
JP OPEN ;R08
|
LD (OPEN.TMP),A
|
||||||
|
JP OPEN.FILE ;R08
|
||||||
.Prepare:
|
.Prepare:
|
||||||
AND #E7 ;R04 %76A00SHR = !FAT_ATTR
|
AND #E7 ;R04 %76A00SHR = !FAT_ATTR ;!HARDCODE
|
||||||
LD (.TMP),A
|
LD (.TMP),A
|
||||||
LD (.PATH0),HL
|
LD (.PATH0),HL
|
||||||
CALL GETWORD
|
CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
; LD HL,TMPNAME
|
||||||
LD DE,MASKARE
|
; LD DE,MASKARE
|
||||||
JP MASK
|
JP MASK
|
||||||
CREAT_N EQU CREATE.NEW
|
CREAT_N EQU CREATE.NEW
|
||||||
|
|
||||||
@ -187,8 +189,8 @@ DEL_FN: ;!TEST
|
|||||||
;
|
;
|
||||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
; LD HL,TMPNAME
|
||||||
LD DE,MASKARE
|
; LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
;
|
;
|
||||||
@ -203,7 +205,7 @@ DEL_FN: ;!TEST
|
|||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
CALL LOADDIR
|
CALL LOADDIR
|
||||||
CALL SEARCH
|
CALL SEARCH.File
|
||||||
RET C
|
RET C
|
||||||
;JP DELETE
|
;JP DELETE
|
||||||
; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥ ï"
|
; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥ ï"
|
||||||
@ -239,19 +241,17 @@ DELETE: SET_PAGE_X DIRPAGE
|
|||||||
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
||||||
; DE - "new_name.ext",#00 without simbols * ?
|
; DE - "new_name.ext",#00 without simbols * ?
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
RENAME:
|
RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
||||||
;!TEST Current Dir ;[x] 15/10/23
|
PUSH HL
|
||||||
PUSH HL
|
PUSH DE
|
||||||
PUSH DE
|
CALL DIR_PATH_CHECK.forceCheck
|
||||||
CALL DIR_PATH_CHECK.forceCheck
|
POP DE
|
||||||
POP DE
|
POP HL
|
||||||
POP HL
|
RET C
|
||||||
RET C
|
;
|
||||||
;
|
|
||||||
|
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD DE,MASKARE
|
;LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK.name
|
||||||
POP DE
|
POP DE
|
||||||
RET C
|
RET C
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
@ -265,11 +265,11 @@ RENAME:
|
|||||||
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||||
;LD A,#33
|
;LD A,#33
|
||||||
LD A,FAT_ATTR.NoSYSnoVolID
|
LD A,FAT_ATTR.NoSYSnoVolID
|
||||||
CALL SEARCH.ASEARCH ; ŻŽ¨áŞ § Ż¨á¨ ˘ ᯨ᪼ ¤¨áŞ
|
CALL SEARCH.Custom ; ŻŽ¨áŞ § Ż¨á¨ ˘ ᯨ᪼ ¤¨áŞ
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
LD DE,MASKARE
|
;LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK.name
|
||||||
RET C
|
RET C
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
LD BC,11
|
LD BC,11
|
||||||
@ -280,7 +280,7 @@ RENAME:
|
|||||||
RET Z
|
RET Z
|
||||||
PUSH IX
|
PUSH IX
|
||||||
LD A,FAT_ATTR.NoSYSnoVolID
|
LD A,FAT_ATTR.NoSYSnoVolID
|
||||||
CALL SEARCH.ASEARCH ; ŻŽ¨áŞ § Ż¨á¨ ˘ ᯨ᪼ ¤¨áŞ
|
CALL SEARCH.Custom ; ŻŽ¨áŞ § Ż¨á¨ ˘ ᯨ᪼ ¤¨áŞ
|
||||||
POP IX
|
POP IX
|
||||||
LD A,DSS_Error.sys.FILE_EXISTS
|
LD A,DSS_Error.sys.FILE_EXISTS
|
||||||
CCF
|
CCF
|
||||||
@ -304,8 +304,8 @@ RENAME:
|
|||||||
; A=0 ç⥨¥/§ ¯¨áì
|
; A=0 ç⥨¥/§ ¯¨áì
|
||||||
; A=1 ç⥨¥
|
; A=1 ç⥨¥
|
||||||
; A=2 § ¯¨áì
|
; A=2 § ¯¨áì
|
||||||
; ˘ë厤: A - ¤ĽáŞŕ¨ŻâŽŕ ä ŠŤ , ĽáŤ¨ CF=0
|
; ˘ë厤: CF=0, A - ¤ĽáŞŕ¨ŻâŽŕ ä ŠŤ .
|
||||||
; ŞŽ¤ Žč¨ĄŞ¨, ĽáŤ¨ CF=1
|
; CF=1, A - ŞŽ¤ Žč¨ĄŞ¨.
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
|
OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
|
||||||
LD C,A
|
LD C,A
|
||||||
@ -322,22 +322,14 @@ OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
|
|||||||
OPEN: LD (.TMP),A ; enter point for CREATE
|
OPEN: LD (.TMP),A ; enter point for CREATE
|
||||||
CALL GETWORD
|
CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
; LD HL,TMPNAME
|
||||||
LD DE,MASKARE
|
; LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
.FILE: CALL SEARCH ; enter point for EXEC
|
.FILE: CALL SEARCH.File ; enter point for EXEC
|
||||||
RET C
|
RET C
|
||||||
;R02
|
;R02
|
||||||
.FM: ; enter point for ATTRIB
|
.FM: CALL GET_FM ; enter point for ATTRIB
|
||||||
; [ ] 13/11/2023 -bug with bad clusters ;!TEST
|
|
||||||
; XOR A
|
|
||||||
; CALL SET_FM
|
|
||||||
; LD C,(IY+_sFM.ST_CLUSTER)
|
|
||||||
; LD B,(IY+_sFM.ST_CLUSTER+1)
|
|
||||||
; PUSH BC
|
|
||||||
;
|
|
||||||
CALL GET_FM
|
|
||||||
RET C
|
RET C
|
||||||
LD A,C
|
LD A,C
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
@ -396,25 +388,28 @@ CLOSE: LD (.TMP),A
|
|||||||
RET NZ
|
RET NZ
|
||||||
BIT 7,(IY+_sFM.ACCESS_MODE)
|
BIT 7,(IY+_sFM.ACCESS_MODE)
|
||||||
JR Z,.NOTMODF
|
JR Z,.NOTMODF
|
||||||
LD D,(IY+_sFM.DIR_CLUSTER)
|
LD E,(IY+_sFM.DIR_CLUSTER)
|
||||||
LD E,(IY+_sFM.DIR_CLUSTER+1)
|
LD D,(IY+_sFM.DIR_CLUSTER+1)
|
||||||
PUSH DE
|
PUSH DE
|
||||||
; [ ] 13/11/2023 -bug with bad clusters ;!TEST
|
; [ ] 15/11/2023 -bug with bad clusters ;!TEST
|
||||||
LD A,(IY+_sFM.DRIVE)
|
LD A,(IY+_sFM.DRIVE)
|
||||||
CALL OPENDSK
|
CALL OPENDSK
|
||||||
IF TEST_FEATURE
|
|
||||||
CALL SET_DIR
|
|
||||||
ENDIF
|
|
||||||
;
|
;
|
||||||
XOR A
|
XOR A
|
||||||
CALL SET_FM
|
CALL SET_FM
|
||||||
POP DE
|
POP DE
|
||||||
LD (IY+_sFM.DIR_CLUSTER),D
|
LD (IY+_sFM.DIR_CLUSTER),E
|
||||||
LD (IY+_sFM.DIR_CLUSTER+1),E
|
LD (IY+_sFM.DIR_CLUSTER+1),D
|
||||||
|
; [ ] 15/11/2023 -bug with bad clusters ;!TEST
|
||||||
|
LD (IY+_sFM.ST_CLUSTER),E
|
||||||
|
LD (IY+_sFM.ST_CLUSTER+1),D
|
||||||
|
;
|
||||||
CALL LOADDIR
|
CALL LOADDIR
|
||||||
.TMP+1: LD A,0
|
.TMP+1: LD A,0
|
||||||
CALL SET_FM
|
CALL SET_FM
|
||||||
;
|
;
|
||||||
|
SET_PAGE_X DIRPAGE
|
||||||
|
;
|
||||||
;TEST 9/11/23
|
;TEST 9/11/23
|
||||||
; LD HL,DIR
|
; LD HL,DIR
|
||||||
; LD DE,#0020
|
; LD DE,#0020
|
||||||
@ -434,12 +429,10 @@ CLOSE: LD (.TMP),A
|
|||||||
LD D,YH
|
LD D,YH
|
||||||
LD E,YL
|
LD E,YL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
PUSH HL
|
;PUSH HL
|
||||||
|
;SET_PAGE_X DIRPAGE
|
||||||
SET_PAGE_X DIRPAGE
|
;POP HL
|
||||||
|
LD BC,#0020 ;!HARDCODE
|
||||||
POP HL
|
|
||||||
LD BC,#0020
|
|
||||||
LDIR
|
LDIR
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
CALL SAVEDIR
|
CALL SAVEDIR
|
||||||
@ -484,12 +477,12 @@ F_FIRST:
|
|||||||
POP HL
|
POP HL
|
||||||
CALL GETWORD
|
CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
; LD HL,TMPNAME
|
||||||
LD DE,MASKARE
|
; LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
LD A,(.TMP)
|
LD A,(.TMP)
|
||||||
CALL SEARCH.ASEARCH
|
CALL SEARCH.Custom
|
||||||
RET C
|
RET C
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
.DTABUF+1:
|
.DTABUF+1:
|
||||||
@ -573,8 +566,8 @@ F_NEXT:
|
|||||||
LD IX,0
|
LD IX,0
|
||||||
LD A,XH
|
LD A,XH
|
||||||
OR XL
|
OR XL
|
||||||
JP Z,SEARCH.error
|
JP Z,SEARCH.error_too_many_files
|
||||||
JP SEARCH.SEARCH1
|
JP SEARCH.loop
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
@ -926,18 +919,18 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
.START: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
.START: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME ; 8.3 ¨Źď
|
;LD HL,TMPNAME ; 8.3 ¨Źď
|
||||||
LD DE,MASKARE ; ĄăäĽŕ ¨ŹĽ¨ 11 ᨏ˘. äŽŕŹ â
|
;LD DE,MASKARE ; ĄăäĽŕ ¨ŹĽ¨ 11 ᨏ˘. äŽŕŹ â
|
||||||
CALL MASK ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
|
CALL MASK ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
|
||||||
RET C
|
RET C
|
||||||
;!TEST optimization à ¥¥ GETWORD 㦥 § £à㧨« ¤¨à¥ªâ®à¨î
|
;!TEST optimization à ¥¥ GETWORD 㦥 § £à㧨« ¤¨à¥ªâ®à¨î
|
||||||
;CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
;CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||||
;
|
;
|
||||||
CALL DSEARCH ; ŻŽ¨áŞ § Ż¨á¨ Ş â ŤŽŁ ˘ ᯨ᪼ ¤¨áŞ
|
CALL SEARCH.Dir ; ŻŽ¨áŞ § Ż¨á¨ Ş â ŤŽŁ ˘ ᯨ᪼ ¤¨áŞ
|
||||||
LD A,DSS_Error.sys.DIR_EXISTS
|
LD A,DSS_Error.sys.DIR_EXISTS
|
||||||
CCF
|
CCF
|
||||||
RET C ; ª â «®£ ©¤¥
|
RET C ; ª â «®£ ©¤¥
|
||||||
|
;
|
||||||
CALL G_CLUST
|
CALL G_CLUST
|
||||||
RET C
|
RET C
|
||||||
PUSH HL
|
PUSH HL
|
||||||
@ -953,11 +946,11 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
LD BC,#0A00 ; b=áç¥â稪
|
LD BC,#0A00 ; b=áç¥â稪
|
||||||
|
;
|
||||||
.loop1: LD (HL),C
|
.loop1: LD (HL),C
|
||||||
INC HL
|
INC HL
|
||||||
DJNZ .loop1
|
DJNZ .loop1
|
||||||
|
;
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL SYSTIME ; ã§ âì ⥪. ¤ âã ¨ ¢à¥¬ï
|
CALL SYSTIME ; ã§ âì ⥪. ¤ âã ¨ ¢à¥¬ï
|
||||||
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||||||
@ -977,21 +970,21 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD (HL),D
|
LD (HL),D
|
||||||
INC HL
|
INC HL
|
||||||
LD BC,#0400 ; b=áç¥â稪
|
LD BC,#0400 ; b=áç¥â稪
|
||||||
|
;
|
||||||
.loop2: LD (HL),C
|
.loop2: LD (HL),C
|
||||||
INC HL
|
INC HL
|
||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
|
;
|
||||||
CALL WRT_HND ; ᪮¯¨à. ®¢ãî § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ )
|
CALL WRT_HND ; ᪮¯¨à. ®¢ãî § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ )
|
||||||
CALL SAVEDIR ; áĄŕŽá¨âě ŞĽč Ş â ŤŽŁ ¤¨áŞ
|
;CALL SAVEDIR ; ¨ áĄŕŽá¨âě ŞĽč Ş â ŤŽŁ ¤¨áŞ
|
||||||
LD HL,CORE_BUFFERS.SECBUF ; ¡ãä¥à
|
LD HL,CORE_BUFFERS.SECBUF ; ¡ãä¥à
|
||||||
LD (HL),"." ; § ¯¨áì ⥪. ª â «®£
|
LD (HL),"." ; § ¯¨áì ⥪. ª â «®£
|
||||||
LD BC,10*256 + ' ' ; b=áç¥â稪, c=¯à®¡¥«
|
LD BC,10*256 + ' ' ; b=áç¥â稪, c=¯à®¡¥«
|
||||||
|
;
|
||||||
.loop3: INC HL
|
.loop3: INC HL
|
||||||
LD (HL),C
|
LD (HL),C
|
||||||
DJNZ .loop3
|
DJNZ .loop3
|
||||||
|
;
|
||||||
INC HL
|
INC HL
|
||||||
LD DE,HANDBUF+11 ; ï祩ª âਡã⮢ ä ©«
|
LD DE,HANDBUF+11 ; ï祩ª âਡã⮢ ä ©«
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -1005,23 +998,14 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
.MKD03: INC HL
|
.MKD03: INC HL
|
||||||
LD (HL),C
|
LD (HL),C
|
||||||
DJNZ .MKD03
|
DJNZ .MKD03
|
||||||
|
;
|
||||||
INC HL
|
INC HL
|
||||||
|
|
||||||
; IF OLD_SET_BANK
|
|
||||||
; PUSH HL
|
|
||||||
; ENDIF
|
|
||||||
|
|
||||||
SET_PAGE_X DIRPAGE
|
SET_PAGE_X DIRPAGE
|
||||||
|
|
||||||
; IF OLD_SET_BANK
|
|
||||||
; POP HL
|
|
||||||
; ENDIF
|
|
||||||
|
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD A,(DIR)
|
;
|
||||||
|
LD A,(DIRPAGE.buffer)
|
||||||
CP "."
|
CP "."
|
||||||
LD DE,DIR+11 ; âਥăâë § ݍá¨
|
LD DE,DIRPAGE.buffer+11 ; âਥăâë § Ż¨á¨ ;!HARDCODE
|
||||||
JP Z,.MKD04
|
JP Z,.MKD04
|
||||||
LD IX,HANDBUF
|
LD IX,HANDBUF
|
||||||
XOR A
|
XOR A
|
||||||
@ -1033,7 +1017,7 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LDIR
|
LDIR
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD D,H
|
LD D,H
|
||||||
LD E,L
|
LD E,L
|
||||||
@ -1041,7 +1025,7 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD (HL),0
|
LD (HL),0
|
||||||
LD BC,512-65
|
LD BC,512-65
|
||||||
LDIR ;!FIXIT 㦮 «¨ â ª ¬®£® £à®å âì?
|
LDIR ;!FIXIT 㦮 «¨ â ª ¬®£® £à®å âì?
|
||||||
|
;
|
||||||
POP HL
|
POP HL
|
||||||
CALL NSECTOR
|
CALL NSECTOR
|
||||||
LD A,(CORE_BUFFERS.BootSector.S_P_C) ; ᥪâ®à®¢ ª« áâ¥à
|
LD A,(CORE_BUFFERS.BootSector.S_P_C) ; ᥪâ®à®¢ ª« áâ¥à
|
||||||
@ -1052,21 +1036,21 @@ MKDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
PUSH AF
|
PUSH AF
|
||||||
IN A,(SLOT0)
|
IN A,(SLOT0)
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD DE,CORE_BUFFERS.SECBUF+#C000
|
LD DE,CORE_BUFFERS.SECBUF+#C000
|
||||||
LD BC,1*256 + Dss.DRV.Write
|
LD BC,1*256 + Dss.DRV.Write
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
;
|
;
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
LD HL,CORE_BUFFERS.SECBUF
|
LD HL,CORE_BUFFERS.SECBUF
|
||||||
LD DE,CORE_BUFFERS.SECBUF+1
|
LD DE,CORE_BUFFERS.SECBUF+1
|
||||||
LD BC,511
|
LD BC,511
|
||||||
LD (HL),0
|
LD (HL),0
|
||||||
LDIR ;!FIXIT 㦮 «¨ â ª ¬®£® £à®å âì?
|
LDIR ;!FIXIT 㦮 «¨ â ª ¬®£® £à®å âì?
|
||||||
|
;
|
||||||
POP IX
|
POP IX
|
||||||
POP HL
|
POP HL
|
||||||
INC IX
|
INC IX
|
||||||
@ -1109,8 +1093,8 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
.START: CALL GETWORD
|
.START: CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
; LD HL,TMPNAME
|
||||||
LD DE,MASKARE
|
; LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
@ -1121,7 +1105,7 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
CALL LOADDIR
|
CALL LOADDIR
|
||||||
CALL DSEARCH
|
CALL SEARCH.Dir
|
||||||
RET C
|
RET C
|
||||||
LD HL,(HANDBUF+_sFM.ST_CLUSTER)
|
LD HL,(HANDBUF+_sFM.ST_CLUSTER)
|
||||||
PUSH IX
|
PUSH IX
|
||||||
@ -1211,7 +1195,7 @@ DOSNAME:
|
|||||||
DEC B
|
DEC B
|
||||||
JP Z,GETNAME
|
JP Z,GETNAME
|
||||||
DEC B
|
DEC B
|
||||||
JP Z,MASK
|
JP Z,MASK.custom
|
||||||
LD A,DSS_Error.sys.INVALID_FUNCTION
|
LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
@ -1382,56 +1366,6 @@ RMKTIME:
|
|||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
; áŞŽŻ¨ŕŽ˘ âě § ݍáě ˘ ᯨᎪ ¤¨áŞ (Ş â ŤŽŁ )
|
|
||||||
WRT_HND:
|
|
||||||
SET_PAGE_X DIRPAGE
|
|
||||||
|
|
||||||
PUSH AF
|
|
||||||
LD IX,DIR
|
|
||||||
;TEST 9/11/23
|
|
||||||
; EXX
|
|
||||||
; LD DE,0
|
|
||||||
; EXX
|
|
||||||
;
|
|
||||||
.loop: LD A,(IX+00)
|
|
||||||
OR A
|
|
||||||
JR Z,.WRT_HN2
|
|
||||||
CP #E5
|
|
||||||
JR Z,.WRT_HN2
|
|
||||||
LD BC,#0020
|
|
||||||
ADD IX,BC
|
|
||||||
JR NC,.loop
|
|
||||||
;
|
|
||||||
POP AF
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,DSS_Error.sys.ROOT_OVERFLOW
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
.WRT_HN2:
|
|
||||||
LD D,XH
|
|
||||||
LD E,XL
|
|
||||||
LD HL,HANDBUF
|
|
||||||
LD BC,HANDBUF.SIZE
|
|
||||||
LDIR
|
|
||||||
POP AF
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD HL,DIR
|
|
||||||
LD BC,(SAVEDIR.DIRSIZE)
|
|
||||||
DEC BC
|
|
||||||
ADD HL,BC
|
|
||||||
AND A
|
|
||||||
SBC HL,DE
|
|
||||||
RET NC
|
|
||||||
LD HL,(SAVEDIR.DIRSIZE)
|
|
||||||
LD BC,(FatBuffer.B_P_C)
|
|
||||||
ADD HL,BC
|
|
||||||
LD (SAVEDIR.DIRSIZE),HL
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; HL - 11 bytes filename "FILENAMEEXT"
|
; HL - 11 bytes filename "FILENAMEEXT"
|
||||||
; DE - DOS filename "FILENAME.EXT",0
|
; DE - DOS filename "FILENAME.EXT",0
|
||||||
@ -1471,57 +1405,54 @@ GETNAME:
|
|||||||
; ¢å®¤: a= âਡãâ § ¯¨á¨
|
; ¢å®¤: a= âਡãâ § ¯¨á¨
|
||||||
; ¢ë室: de'=¨¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£
|
; ¢ë室: de'=¨¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£
|
||||||
; CF - ª â «®£ ¥ ©¤¥
|
; CF - ª â «®£ ¥ ©¤¥
|
||||||
DSEARCH:
|
SEARCH:
|
||||||
LD A,FAT_ATTR.DIRECTORY
|
.Dir: LD A,FAT_ATTR.DIRECTORY
|
||||||
CALL SEARCH.ASEARCH
|
CALL SEARCH.Custom
|
||||||
RET NC
|
RET NC
|
||||||
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
CP DSS_Error.sys.PATH_NOT_FOUND + 1
|
||||||
|
RET C
|
||||||
|
;
|
||||||
|
SCF
|
||||||
|
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;
|
||||||
|
.File: LD A,FAT_ATTR.NoDIRnoVolID
|
||||||
|
.Custom: EX AF,AF' ; A = 76ADLSHR
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
;OUT: DE' - ŻŽŕď¤ŞŽ˘ëŠ ŽŹĽŕ FM
|
|
||||||
SEARCH: LD A,FAT_ATTR.NoDIRnoVolID
|
|
||||||
.ASEARCH:
|
|
||||||
; A = 76ADLSHR
|
|
||||||
EX AF,AF'
|
|
||||||
SET_PAGE_X DIRPAGE
|
SET_PAGE_X DIRPAGE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
CPL
|
CPL
|
||||||
LD C,A
|
LD C,A
|
||||||
LD IX,DIR
|
LD IX,DIRPAGE.buffer
|
||||||
;TEST 9/11/23
|
;TEST 9/11/23
|
||||||
; EXX
|
; EXX
|
||||||
; LD DE,0
|
; LD DE,0
|
||||||
; EXX
|
; EXX
|
||||||
;
|
;
|
||||||
.SEARCH1:
|
.loop: LD A,(IX+00)
|
||||||
LD A,(IX+00)
|
|
||||||
OR A
|
OR A
|
||||||
JR Z,.SEARCH4
|
JR Z,.error_file_not_found
|
||||||
CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥ë
|
CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥ë
|
||||||
JR Z,.SEARCH3
|
JR Z,.next_record
|
||||||
LD A,(IX+11)
|
LD A,(IX+11)
|
||||||
AND C
|
AND C
|
||||||
JR NZ,.SEARCH3
|
JR NZ,.next_record
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
LD B,11
|
LD B,11
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
.SEARCH2:
|
.loop_compare:
|
||||||
LD A,(DE)
|
LD A,(DE)
|
||||||
CP '?'
|
CP '?'
|
||||||
JR Z,.SEARCH5
|
JR Z,.next_char
|
||||||
CP (HL)
|
CP (HL)
|
||||||
JR NZ,.SEARCH3
|
JR NZ,.next_record
|
||||||
.SEARCH5:
|
.next_char:
|
||||||
INC HL
|
INC HL
|
||||||
INC DE
|
INC DE
|
||||||
DJNZ .SEARCH2
|
DJNZ .loop_compare
|
||||||
;!TEST 9/11/23
|
;!TEST 9/11/23
|
||||||
; LD D,XH
|
; LD D,XH
|
||||||
; LD E,XL
|
; LD E,XL
|
||||||
@ -1540,7 +1471,7 @@ SEARCH: LD A,FAT_ATTR.NoDIRnoVolID
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
.SEARCH3:
|
.next_record:
|
||||||
;!TEST 9/11/23
|
;!TEST 9/11/23
|
||||||
; EXX
|
; EXX
|
||||||
; INC DE
|
; INC DE
|
||||||
@ -1548,13 +1479,15 @@ SEARCH: LD A,FAT_ATTR.NoDIRnoVolID
|
|||||||
;
|
;
|
||||||
LD DE,#0020 ;!HARDCODE
|
LD DE,#0020 ;!HARDCODE
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
JR NC,.SEARCH1
|
JR NC,.loop
|
||||||
.error: POP AF
|
.error_too_many_files:
|
||||||
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
.SEARCH4:
|
;
|
||||||
|
.error_file_not_found:
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,DSS_Error.sys.FILE_NOT_FOUND
|
LD A,DSS_Error.sys.FILE_NOT_FOUND
|
||||||
@ -1657,13 +1590,6 @@ OPENDSK:
|
|||||||
LD A,C
|
LD A,C
|
||||||
;
|
;
|
||||||
.force: PUSH AF
|
.force: PUSH AF
|
||||||
; [ ] 13/11/2023 -bug with bad clusters ;!TEST
|
|
||||||
;PUSH AF
|
|
||||||
;LD A,(FATCASH.Update)
|
|
||||||
;OR A
|
|
||||||
;CALL NZ,WR_FAT
|
|
||||||
;POP AF
|
|
||||||
;
|
|
||||||
LD C,Dss.DRV.Open
|
LD C,Dss.DRV.Open
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
POP BC
|
POP BC
|
||||||
@ -1727,8 +1653,8 @@ OPENDIR:
|
|||||||
JR NZ,.loop
|
JR NZ,.loop
|
||||||
JR .SUBDIR3
|
JR .SUBDIR3
|
||||||
.SUBDIR2:
|
.SUBDIR2:
|
||||||
LD DE,MASKARE
|
;LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK.name
|
||||||
RET C
|
RET C
|
||||||
.SUBDIR3:
|
.SUBDIR3:
|
||||||
CALL FINDDIR
|
CALL FINDDIR
|
||||||
@ -1750,7 +1676,7 @@ FINDDIR:
|
|||||||
SET_PAGE_X DIRPAGE
|
SET_PAGE_X DIRPAGE
|
||||||
;
|
;
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD IX,DIR
|
LD IX,DIRPAGE.buffer
|
||||||
.F_01: LD A,(IX+00)
|
.F_01: LD A,(IX+00)
|
||||||
OR A
|
OR A
|
||||||
JR Z,.error
|
JR Z,.error
|
||||||
@ -1888,6 +1814,7 @@ FINDDIR:
|
|||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
; .custom:
|
||||||
; <20>८¡à §®¢ âì ¨¬ï 8.3 -> 11 ä®à¬ â
|
; <20>८¡à §®¢ âì ¨¬ï 8.3 -> 11 ä®à¬ â
|
||||||
; ¢å®¤: hl = 8.3 ¨¬ï
|
; ¢å®¤: hl = 8.3 ¨¬ï
|
||||||
; de = ¡ãä¥à ¨¬¥¨ 11 ᨬ¢. ä®à¬ â
|
; de = ¡ãä¥à ¨¬¥¨ 11 ᨬ¢. ä®à¬ â
|
||||||
@ -1897,7 +1824,9 @@ FINDDIR:
|
|||||||
; DE - 11 bytes filename
|
; DE - 11 bytes filename
|
||||||
; RET: C=2 FILE WITHOUT EXTENTION
|
; RET: C=2 FILE WITHOUT EXTENTION
|
||||||
; C=1 FILE WITH EXTENTION
|
; C=1 FILE WITH EXTENTION
|
||||||
MASK: PUSH HL
|
MASK: LD HL,TMPNAME
|
||||||
|
.name: LD DE,MASKARE
|
||||||
|
.custom: PUSH HL
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD H,D
|
LD H,D
|
||||||
LD L,E
|
LD L,E
|
||||||
@ -2053,10 +1982,11 @@ LOADDIR:
|
|||||||
LD A,D
|
LD A,D
|
||||||
OR E
|
OR E
|
||||||
JP Z,.LROTDIR ; root ??
|
JP Z,.LROTDIR ; root ??
|
||||||
LD HL,DIR ; Şă¤
|
LD HL,DIRPAGE.buffer ; Şă¤
|
||||||
LD DE,#4000 ; ᪮«ìª®
|
LD DE,#4000 ; ᪮«ìª®
|
||||||
XOR A ; ¤¥áªà¨¯â®à
|
XOR A ; ¤¥áªà¨¯â®à
|
||||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||||
|
;!FIXIT ŻŕŽ˘ĽŕŞ Žč¨ĄŞă
|
||||||
LD (SAVEDIR.DIRSIZE),DE ; ç¨á«® ¯à®ç¨â. ¡ ©â®¢
|
LD (SAVEDIR.DIRSIZE),DE ; ç¨á«® ¯à®ç¨â. ¡ ©â®¢
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -2078,7 +2008,7 @@ LOADDIR:
|
|||||||
;LD B,A ; ç¨á«® ᥪâ®à®¢
|
;LD B,A ; ç¨á«® ᥪâ®à®¢
|
||||||
;
|
;
|
||||||
.RTD1: LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
.RTD1: LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||||
LD DE,DIR ; ĄăäĽŕ
|
LD DE,DIRPAGE.buffer ; ĄăäĽŕ
|
||||||
LD C,Dss.DRV.Read ; ç⥨¥ ᥪâ®à®¢
|
LD C,Dss.DRV.Read ; ç⥨¥ ᥪâ®à®¢
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
POP AF
|
POP AF
|
||||||
@ -2088,6 +2018,56 @@ LOADDIR:
|
|||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
; áŞŽŻ¨ŕŽ˘ âě § ݍáě ˘ ᯨᎪ ¤¨áŞ (Ş â ŤŽŁ )
|
||||||
|
; ¨ áĄŕŽá¨âě ŞĽč Ş â ŤŽŁ ¤¨áŞ
|
||||||
|
WRT_HND: SET_PAGE_X DIRPAGE
|
||||||
|
EX AF,AF'
|
||||||
|
;
|
||||||
|
LD IX,DIRPAGE.buffer
|
||||||
|
;TEST 9/11/23
|
||||||
|
; EXX
|
||||||
|
; LD DE,0
|
||||||
|
; EXX
|
||||||
|
;
|
||||||
|
.loop: LD A,(IX+00)
|
||||||
|
OR A
|
||||||
|
JR Z,.WRT_HN2
|
||||||
|
CP #E5
|
||||||
|
JR Z,.WRT_HN2
|
||||||
|
LD BC,#0020
|
||||||
|
ADD IX,BC
|
||||||
|
JR NC,.loop
|
||||||
|
;
|
||||||
|
EX AF,AF'
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD A,DSS_Error.sys.ROOT_OVERFLOW
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
.WRT_HN2:
|
||||||
|
LD D,XH
|
||||||
|
LD E,XL
|
||||||
|
LD HL,HANDBUF
|
||||||
|
LD BC,HANDBUF.SIZE
|
||||||
|
LDIR
|
||||||
|
EX AF,AF'
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD HL,DIRPAGE.buffer
|
||||||
|
LD BC,(SAVEDIR.DIRSIZE)
|
||||||
|
DEC BC
|
||||||
|
ADD HL,BC
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
JR NC,SAVEDIR
|
||||||
|
LD HL,(SAVEDIR.DIRSIZE)
|
||||||
|
LD BC,(FatBuffer.B_P_C)
|
||||||
|
ADD HL,BC
|
||||||
|
LD (SAVEDIR.DIRSIZE),HL
|
||||||
|
AND A
|
||||||
|
JP SAVEDIR
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; ‘¡à®á¨âì ª¥è ª â «®£ ¤¨áª.
|
; ‘¡à®á¨âì ª¥è ª â «®£ ¤¨áª.
|
||||||
; ¢å®¤: iy=áâàãªâãà ¤¥áªà¨¯â®à
|
; ¢å®¤: iy=áâàãªâãà ¤¥áªà¨¯â®à
|
||||||
@ -2097,10 +2077,10 @@ SAVEDIR:
|
|||||||
LD IX,0
|
LD IX,0
|
||||||
LD B,0
|
LD B,0
|
||||||
CALL MOVE_FP
|
CALL MOVE_FP
|
||||||
|
;
|
||||||
SET_PAGE_X DIRPAGE
|
SET_PAGE_X DIRPAGE
|
||||||
|
|
||||||
PUSH AF
|
PUSH AF
|
||||||
|
;
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD (IY+_sFM.DRIVE),A
|
LD (IY+_sFM.DRIVE),A
|
||||||
LD D,(IY+_sFM.ST_CLUSTER)
|
LD D,(IY+_sFM.ST_CLUSTER)
|
||||||
@ -2108,7 +2088,7 @@ SAVEDIR:
|
|||||||
LD A,D
|
LD A,D
|
||||||
OR E
|
OR E
|
||||||
JP Z,.SROTDIR
|
JP Z,.SROTDIR
|
||||||
LD HL,DIR
|
LD HL,DIRPAGE.buffer
|
||||||
; à §¬¥à ᯨ᪠ª â «®£ size_cash_directory
|
; à §¬¥à ᯨ᪠ª â «®£ size_cash_directory
|
||||||
.DIRSIZE+1:
|
.DIRSIZE+1:
|
||||||
LD DE,0
|
LD DE,0
|
||||||
@ -2128,7 +2108,7 @@ SAVEDIR:
|
|||||||
ADD A,B
|
ADD A,B
|
||||||
LD B,A
|
LD B,A
|
||||||
.RTD1S: LD A,(FatBuffer.DRIVE)
|
.RTD1S: LD A,(FatBuffer.DRIVE)
|
||||||
LD DE,DIR
|
LD DE,DIRPAGE.buffer
|
||||||
LD C,Dss.DRV.Write
|
LD C,Dss.DRV.Write
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
POP AF
|
POP AF
|
||||||
@ -2219,47 +2199,11 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
JP GETWORD
|
JP GETWORD
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
IF TEST_FEATURE
|
|
||||||
|
|
||||||
; [ ] 13/11/2023 -bug with bad clusters ;!TEST
|
|
||||||
; in: IY - FM ¤Ťď ä ŠŤ ¤¨ŕ༪âŽŕ¨î ŞŽâŽŕŽŁŽ Łŕ㧨Ź
|
|
||||||
SET_DIR:
|
|
||||||
LD L,(IY+_sFM.DIR_CLUSTER)
|
|
||||||
LD H,(IY+_sFM.DIR_CLUSTER+1)
|
|
||||||
;
|
|
||||||
PUSH IY
|
|
||||||
XOR A
|
|
||||||
CALL SET_FM
|
|
||||||
EX DE,HL
|
|
||||||
LD L,(IY+_sFM.ST_CLUSTER)
|
|
||||||
LD H,(IY+_sFM.ST_CLUSTER+1)
|
|
||||||
AND A
|
|
||||||
SBC HL,DE
|
|
||||||
JR Z,.exit
|
|
||||||
LD HL,#4000 ;!HARDCODE
|
|
||||||
;LD A,D
|
|
||||||
;OR E
|
|
||||||
;JR Z,.ROOT
|
|
||||||
|
|
||||||
EX DE,HL
|
|
||||||
LD (IY+_sFM.F_SIZE),E
|
|
||||||
LD (IY+_sFM.F_SIZE+1),D
|
|
||||||
LD (IY+_sFM.ST_CLUSTER),L
|
|
||||||
LD (IY+_sFM.ST_CLUSTER+1),H
|
|
||||||
CALL LOADDIR
|
|
||||||
;
|
|
||||||
.exit: POP IY
|
|
||||||
RET
|
|
||||||
|
|
||||||
ENDIF
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;!FIXIT ª ¡ãä¥à ¬
|
;!FIXIT ª ¡ãä¥à ¬
|
||||||
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï DSS
|
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï DSS
|
||||||
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
||||||
|
;
|
||||||
HANDBUF: BLOCK HANDBUF.SIZE,0
|
HANDBUF: BLOCK HANDBUF.SIZE,0
|
||||||
MASKARE: BLOCK 8,0 ; ¨¬ï ä ©«
|
MASKARE: BLOCK 8,0 ; ¨¬ï ä ©«
|
||||||
BLOCK 3,0 ; à áè.
|
BLOCK 3,0 ; à áè.
|
||||||
|
|||||||
@ -770,12 +770,7 @@ WRITE: LD (.R_POINT),HL
|
|||||||
LD A,(IY+_sFM.DRIVE)
|
LD A,(IY+_sFM.DRIVE)
|
||||||
CALL OPENDSK
|
CALL OPENDSK
|
||||||
JR C,PWERR1
|
JR C,PWERR1
|
||||||
; [ ] 13/11/2023 -bug with bad clusters ;!TEST
|
;
|
||||||
; IF TEST_FEATURE
|
|
||||||
; CALL SET_DIR
|
|
||||||
; JR C,PWERR1
|
|
||||||
; ENDIF
|
|
||||||
;
|
|
||||||
LD C,(IY+_sFM.F_POSITION)
|
LD C,(IY+_sFM.F_POSITION)
|
||||||
LD A,(IY+_sFM.F_POSITION+1)
|
LD A,(IY+_sFM.F_POSITION+1)
|
||||||
LD E,A
|
LD E,A
|
||||||
@ -882,6 +877,7 @@ WRITE: LD (.R_POINT),HL
|
|||||||
LD (IY+_sFM.F_SIZE+3),B
|
LD (IY+_sFM.F_SIZE+3),B
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
.WOV1: PUSH BC
|
.WOV1: PUSH BC
|
||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH DE
|
PUSH DE
|
||||||
|
|||||||
140
DSS/DOS_X.ASM
140
DSS/DOS_X.ASM
@ -8,7 +8,7 @@
|
|||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
;R13 06-04-2023 BAO ”ãªæ¨î SETBOOT ¬®¦® ¢ë§¢ âì ⮫쪮 à § (¥á«¨ § ¢¥àè¨âáï ª®à४â®)
|
;R13 06-04-2023 BAO ”ãªæ¨î SETBOOT ¬®¦® ¢ë§¢ âì ⮫쪮 à § (¥á«¨ § ¢¥àè¨âáï ª®à४â®)
|
||||||
;R12 03-04-2023 BAO „®¡ ¢«¥ äãªæ¨ï à¥áª ¤à ©¢®¢ LD C,8 : RST #10
|
;R12 03-04-2023 BAO „®¡ ¢«¥ äãªæ¨ï à¥áª ¤à ©¢®¢ LD C,8 : RST #10
|
||||||
;R11 15-04-2003 DNS ROUTINE FOR STORE CURDISK AND CURDIR ;!FIXIT à ¡®â ¥â ªà¨¢®
|
;R11 - 15-04-2003 DNS ROUTINE FOR STORE CURDISK AND CURDIR
|
||||||
;R10 03-04-2003 DNS IMPROVED FN. VERSION
|
;R10 03-04-2003 DNS IMPROVED FN. VERSION
|
||||||
;R09 27-03-2003 DNS PASTED SET/GET BOOT FN.
|
;R09 27-03-2003 DNS PASTED SET/GET BOOT FN.
|
||||||
;R08 14-11-2002 DNS IMPROVE BPB-FUNCTION
|
;R08 14-11-2002 DNS IMPROVE BPB-FUNCTION
|
||||||
@ -593,79 +593,6 @@ WorkDirectory EQU CurrentDirectory
|
|||||||
.DEPTH EQU CurrentDirectory.DEPTH
|
.DEPTH EQU CurrentDirectory.DEPTH
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
;R11
|
|
||||||
; !TODO ¯®ç¨¨âì
|
|
||||||
IF SAVE_PATH_MACRO
|
|
||||||
SAVE_CUR_PATH
|
|
||||||
PUSH IX
|
|
||||||
PUSH IY
|
|
||||||
PUSH HL
|
|
||||||
PUSH DE
|
|
||||||
PUSH BC
|
|
||||||
PUSH AF
|
|
||||||
|
|
||||||
SET_PAGE_X ENVPAGE
|
|
||||||
PUSH AF
|
|
||||||
|
|
||||||
CALL CURRDSK
|
|
||||||
ADD A,"A"
|
|
||||||
LD HL,TMP_CURDIR_AUTO
|
|
||||||
LD (HL),A
|
|
||||||
INC HL
|
|
||||||
LD A,":"
|
|
||||||
LD (HL),A
|
|
||||||
INC HL
|
|
||||||
CALL CURRDIR_FN
|
|
||||||
|
|
||||||
; ¯®ç¥¬ã ¥ POP AF : OUT (SLOT3),A
|
|
||||||
//POP BC
|
|
||||||
//LD A,B
|
|
||||||
//OUT (SLOT3),A
|
|
||||||
POP AF
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;
|
|
||||||
;
|
|
||||||
POP AF
|
|
||||||
POP BC
|
|
||||||
POP DE
|
|
||||||
POP HL
|
|
||||||
POP IY
|
|
||||||
POP IX
|
|
||||||
RET
|
|
||||||
|
|
||||||
; !TODO ¯®ç¨¨âì
|
|
||||||
BACK_CUR_PATH:
|
|
||||||
RET NC
|
|
||||||
.force: PUSH IY
|
|
||||||
PUSH IX
|
|
||||||
PUSH HL
|
|
||||||
PUSH DE
|
|
||||||
PUSH BC
|
|
||||||
PUSH AF
|
|
||||||
|
|
||||||
SET_PAGE_X ENVPAGE
|
|
||||||
PUSH AF
|
|
||||||
|
|
||||||
LD HL,TMP_CURDIR_AUTO
|
|
||||||
CALL CHDIR
|
|
||||||
|
|
||||||
; ¯®ç¥¬ã ¥ POP AF : OUT (SLOT3),A
|
|
||||||
//POP BC
|
|
||||||
//LD A,B
|
|
||||||
//OUT (SLOT3),A
|
|
||||||
POP AF
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;
|
|
||||||
POP AF
|
|
||||||
POP BC
|
|
||||||
POP DE
|
|
||||||
POP HL
|
|
||||||
POP IX
|
|
||||||
POP IY
|
|
||||||
RET
|
|
||||||
ENDIF
|
|
||||||
;R11
|
|
||||||
|
|
||||||
;R12
|
;R12
|
||||||
;///////////////////////////////////////////////////////////////////////
|
;///////////////////////////////////////////////////////////////////////
|
||||||
; ”ãªæ¨ï #08 (DSS_RESCAN). <20>¥à¥áª ¨à®¢ âì ¤¥¢ ©áë á¨á⥬ë.
|
; ”ãªæ¨ï #08 (DSS_RESCAN). <20>¥à¥áª ¨à®¢ âì ¤¥¢ ©áë á¨á⥬ë.
|
||||||
@ -705,10 +632,6 @@ SCANDRV:
|
|||||||
;///////////////////////////////////////////////////////////////////////
|
;///////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
;R12
|
|
||||||
|
|
||||||
|
|
||||||
;GOD EQU 1999-1980*512
|
;GOD EQU 1999-1980*512
|
||||||
|
|
||||||
;FHAND DB " "
|
;FHAND DB " "
|
||||||
@ -723,3 +646,64 @@ SCANDRV:
|
|||||||
;//MODULE: DOS_X
|
;//MODULE: DOS_X
|
||||||
;[END]
|
;[END]
|
||||||
|
|
||||||
|
;R11
|
||||||
|
; IF SAVE_PATH_MACRO
|
||||||
|
; SAVE_CUR_PATH
|
||||||
|
; PUSH IX
|
||||||
|
; PUSH IY
|
||||||
|
; PUSH HL
|
||||||
|
; PUSH DE
|
||||||
|
; PUSH BC
|
||||||
|
; PUSH AF
|
||||||
|
;
|
||||||
|
; SET_PAGE_X ENVPAGE
|
||||||
|
; PUSH AF
|
||||||
|
;
|
||||||
|
; CALL CURRDSK
|
||||||
|
; ADD A,"A"
|
||||||
|
; LD HL,TMP_CURDIR_AUTO
|
||||||
|
; LD (HL),A
|
||||||
|
; INC HL
|
||||||
|
; LD A,":"
|
||||||
|
; LD (HL),A
|
||||||
|
; INC HL
|
||||||
|
; CALL CURRDIR_FN
|
||||||
|
;
|
||||||
|
; POP AF
|
||||||
|
; OUT (SLOT3),A
|
||||||
|
;
|
||||||
|
; POP AF
|
||||||
|
; POP BC
|
||||||
|
; POP DE
|
||||||
|
; POP HL
|
||||||
|
; POP IY
|
||||||
|
; POP IX
|
||||||
|
; RET
|
||||||
|
;
|
||||||
|
; BACK_CUR_PATH:
|
||||||
|
; RET NC
|
||||||
|
; .force: PUSH IY
|
||||||
|
; PUSH IX
|
||||||
|
; PUSH HL
|
||||||
|
; PUSH DE
|
||||||
|
; PUSH BC
|
||||||
|
; PUSH AF
|
||||||
|
;
|
||||||
|
; SET_PAGE_X ENVPAGE
|
||||||
|
; PUSH AF
|
||||||
|
;
|
||||||
|
; LD HL,TMP_CURDIR_AUTO
|
||||||
|
; CALL CHDIR
|
||||||
|
;
|
||||||
|
; POP AF
|
||||||
|
; OUT (SLOT3),A
|
||||||
|
;
|
||||||
|
; POP AF
|
||||||
|
; POP BC
|
||||||
|
; POP DE
|
||||||
|
; POP HL
|
||||||
|
; POP IX
|
||||||
|
; POP IY
|
||||||
|
; RET
|
||||||
|
; ENDIF
|
||||||
|
;
|
||||||
|
|||||||
@ -148,31 +148,6 @@ XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00
|
|||||||
ENDM
|
ENDM
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
|
||||||
MACRO _mSavePath force
|
|
||||||
IF SAVE_PATH_MACRO
|
|
||||||
PUSH HL
|
|
||||||
IF force==1
|
|
||||||
LD HL,BACK_CUR_PATH.force
|
|
||||||
ELSE
|
|
||||||
LD HL,BACK_CUR_PATH
|
|
||||||
ENDIF
|
|
||||||
EX (SP),HL
|
|
||||||
CALL SAVE_CUR_PATH
|
|
||||||
ENDIF
|
|
||||||
ENDM
|
|
||||||
MACRO _mRestorePath
|
|
||||||
IF SAVE_PATH_MACRO
|
|
||||||
CALL BACK_CUR_PATH.force
|
|
||||||
ENDIF
|
|
||||||
ENDM
|
|
||||||
MACRO _mRestorStackAfterRestorePath
|
|
||||||
IF SAVE_PATH_MACRO
|
|
||||||
POP HL ;CLEAR STACK "BACK_CUR_PATH"
|
|
||||||
ENDIF
|
|
||||||
ENDM
|
|
||||||
;
|
|
||||||
|
|
||||||
;
|
;
|
||||||
MACRO _mDSS_Version
|
MACRO _mDSS_Version
|
||||||
DB 'DSS_'
|
DB 'DSS_'
|
||||||
@ -224,4 +199,30 @@ XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00
|
|||||||
MACRO C_OSRELEASE
|
MACRO C_OSRELEASE
|
||||||
DB "Estex DSS",0
|
DB "Estex DSS",0
|
||||||
ENDM
|
ENDM
|
||||||
|
;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
;
|
||||||
|
; MACRO _mSavePath force
|
||||||
|
; IF SAVE_PATH_MACRO
|
||||||
|
; PUSH HL
|
||||||
|
; IF force==1
|
||||||
|
; LD HL,BACK_CUR_PATH.force
|
||||||
|
; ELSE
|
||||||
|
; LD HL,BACK_CUR_PATH
|
||||||
|
; ENDIF
|
||||||
|
; EX (SP),HL
|
||||||
|
; CALL SAVE_CUR_PATH
|
||||||
|
; ENDIF
|
||||||
|
; ENDM
|
||||||
|
; MACRO _mRestorePath
|
||||||
|
; IF SAVE_PATH_MACRO
|
||||||
|
; CALL BACK_CUR_PATH.force
|
||||||
|
; ENDIF
|
||||||
|
; ENDM
|
||||||
|
; MACRO _mRestorStackAfterRestorePath
|
||||||
|
; IF SAVE_PATH_MACRO
|
||||||
|
; POP HL ;CLEAR STACK "BACK_CUR_PATH"
|
||||||
|
; ENDIF
|
||||||
|
; ENDM
|
||||||
;
|
;
|
||||||
@ -182,7 +182,7 @@ EX_PATH: EXX
|
|||||||
DEC B
|
DEC B
|
||||||
JP Z,GETNAME ;8 ; ¯à¥®¡à. ¨¬ï 11 -> 8.3 ä®à¬ â
|
JP Z,GETNAME ;8 ; ¯à¥®¡à. ¨¬ï 11 -> 8.3 ä®à¬ â
|
||||||
DEC B
|
DEC B
|
||||||
JP Z,MASK ;9 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
|
JP Z,MASK.custom ;9 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
|
||||||
EX_RESR: LD A,DSS_Error.sys.INVALID_FUNCTION
|
EX_RESR: LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
@ -692,7 +692,7 @@ FINDPATH:
|
|||||||
;CALL CURRDIR_FN
|
;CALL CURRDIR_FN
|
||||||
;
|
;
|
||||||
CALL .MAKE_PATH_ARRAY
|
CALL .MAKE_PATH_ARRAY
|
||||||
LD HL,PATH_PNT_ARRAY
|
LD HL,ENVPAGE.PATH_PNT_ARRAY
|
||||||
.NEXTPATHI:
|
.NEXTPATHI:
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
@ -707,12 +707,12 @@ FINDPATH:
|
|||||||
CALL NZ,CHDIR
|
CALL NZ,CHDIR
|
||||||
JR C,.BADPATH
|
JR C,.BADPATH
|
||||||
LD HL,CORE_BUFFERS.EXEBUFF
|
LD HL,CORE_BUFFERS.EXEBUFF
|
||||||
LD DE,MASKARE
|
;LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK.name
|
||||||
JR C,.BADPATH
|
JR C,.BADPATH
|
||||||
CALL TST_EXT
|
CALL TST_EXT
|
||||||
JR C,.BADPATH
|
JR C,.BADPATH
|
||||||
CALL SEARCH
|
CALL SEARCH.File
|
||||||
.BADPATH:
|
.BADPATH:
|
||||||
POP BC
|
POP BC
|
||||||
POP HL
|
POP HL
|
||||||
@ -728,15 +728,14 @@ FINDPATH:
|
|||||||
.GOTO_CURDIR:
|
.GOTO_CURDIR:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
PUSH HL
|
PUSH HL
|
||||||
;LD HL,TMP_CURDIR
|
|
||||||
LD HL,CurrentDirectory
|
LD HL,CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
POP HL
|
POP HL
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
.MAKE_PATH_ARRAY:
|
.MAKE_PATH_ARRAY:
|
||||||
LD HL,PATH_PNT_ARRAY-1 ;R04 -1
|
LD HL,ENVPAGE.PATH_PNT_ARRAY-1 ;R04 -1
|
||||||
LD DE,ENVTEMP-1
|
LD DE,ENVPAGE.ENVTEMP-1
|
||||||
LD B,#00
|
LD B,#00
|
||||||
.NEXTAR:
|
.NEXTAR:
|
||||||
LD (HL),C ;R04
|
LD (HL),C ;R04
|
||||||
@ -778,15 +777,12 @@ FINDPATH:
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
ENVPATH DB "PATH=",0
|
ENVPATH: DB "PATH=",0
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
; !TODO ‘„…‹€’œ ‘’<E28098>“Š’“<E28099>މ ¨ ®¡®§ ç¨âì áâà ¨æã
|
;TMP_CURDIR_AUTO EQU #FB00
|
||||||
TMP_CURDIR_AUTO EQU #FB00
|
; ¥ 㦮 ¥á«¨ SAVE_PATH_MACRO = 1
|
||||||
PATH_PNT_ARRAY EQU #FC80
|
; TMP_CURDIR EQU #FD00
|
||||||
; !FIXIT ¥ 㦮 ¥á«¨ SAVE_PATH_MACRO = 1
|
|
||||||
TMP_CURDIR EQU #FD00
|
|
||||||
ENVTEMP EQU #FE00
|
|
||||||
|
|
||||||
|
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
@ -847,8 +843,8 @@ EXEC_1: ;LD (CMDLINE),HL
|
|||||||
LD (OPEN.TMP),A
|
LD (OPEN.TMP),A
|
||||||
CALL GETWORD
|
CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
; LD HL,TMPNAME
|
||||||
LD DE,MASKARE
|
; LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
CALL TST_EXT
|
CALL TST_EXT
|
||||||
@ -877,11 +873,10 @@ EXEC_1: ;LD (CMDLINE),HL
|
|||||||
EXEC0_SHORT:
|
EXEC0_SHORT:
|
||||||
CALL EXEC_1
|
CALL EXEC_1
|
||||||
RET C
|
RET C
|
||||||
|
|
||||||
;FILE NOT FOUND, SEARCHING IN PATH
|
;FILE NOT FOUND, SEARCHING IN PATH
|
||||||
; GET PATH AND ETC.
|
; GET PATH AND ETC.
|
||||||
LD HL,ENVPATH
|
LD HL,ENVPATH
|
||||||
LD DE,ENVTEMP
|
LD DE,ENVPAGE.ENVTEMP
|
||||||
LD B,high Dss.Environ.Get
|
LD B,high Dss.Environ.Get
|
||||||
CALL ENVIRON
|
CALL ENVIRON
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@ R_F_F16:
|
|||||||
LD BC,(FATCASH) ; C - BLOCK FAT IN CASH
|
LD BC,(FATCASH) ; C - BLOCK FAT IN CASH
|
||||||
CP C
|
CP C
|
||||||
CALL NZ,RE_FAT ; A != C - READ NEW BLOCK FAT
|
CALL NZ,RE_FAT ; A != C - READ NEW BLOCK FAT
|
||||||
LD DE,FAT_CACHE ; ç ŤŽ ŞĽč FAT-
|
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
ADD HL,DE ; ï祩ªã FAT
|
ADD HL,DE ; ï祩ªã FAT
|
||||||
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
||||||
INC HL
|
INC HL
|
||||||
@ -196,7 +196,7 @@ R_F_F12:
|
|||||||
CALL NZ,RE_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
CALL NZ,RE_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
LD DE,FAT_CACHE ; ç ŤŽ ŞĽč FAT-
|
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
ADD HL,DE ; ï祩ªã FAT
|
ADD HL,DE ; ï祩ªã FAT
|
||||||
POP AF ; ¢®ááâ. ä« £
|
POP AF ; ¢®ááâ. ä« £
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
@ -286,7 +286,7 @@ W_T_F16:
|
|||||||
LD BC,(FATCASH) ; C - BLOCK FAT IN CASH
|
LD BC,(FATCASH) ; C - BLOCK FAT IN CASH
|
||||||
CP C
|
CP C
|
||||||
CALL NZ,RE_FAT ; A != C - READ NEW BLOCK FAT
|
CALL NZ,RE_FAT ; A != C - READ NEW BLOCK FAT
|
||||||
LD DE,FAT_CACHE
|
LD DE,FATPAGE.cache
|
||||||
ADD HL,DE ; ï祩ªã FAT
|
ADD HL,DE ; ï祩ªã FAT
|
||||||
POP DE
|
POP DE
|
||||||
LD (HL),E ; á®åà. ¢ ª¥è¥ FAT-
|
LD (HL),E ; á®åà. ¢ ª¥è¥ FAT-
|
||||||
@ -329,7 +329,7 @@ W_T_F12:
|
|||||||
CALL NZ,RE_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
CALL NZ,RE_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
LD DE,FAT_CACHE
|
LD DE,FATPAGE.cache
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
POP AF
|
POP AF
|
||||||
POP DE
|
POP DE
|
||||||
@ -403,7 +403,7 @@ RE_FAT: PUSH HL
|
|||||||
LD IX,0
|
LD IX,0
|
||||||
ADD IX,DE ; ®¬¥à «®£. ᥪâ®à
|
ADD IX,DE ; ®¬¥à «®£. ᥪâ®à
|
||||||
LD HL,0 ; áâ. à §àï¤ ; HL:IX - SECTOR FAT FOR READING
|
LD HL,0 ; áâ. à §àï¤ ; HL:IX - SECTOR FAT FOR READING
|
||||||
LD DE,FAT_CACHE ; Şă¤ ; DE - FAT ADDRESS
|
LD DE,FATPAGE.cache ; ªã¤ ; DE - FAT ADDRESS
|
||||||
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||||
LD BC,16*256 + Dss.DRV.Read ;ॣ B: 16 * 512 = 8192 (CASH SIZE) ;!TODO FATcacheSize
|
LD BC,16*256 + Dss.DRV.Read ;ॣ B: 16 * 512 = 8192 (CASH SIZE) ;!TODO FATcacheSize
|
||||||
RST ToDSS.DRV
|
RST ToDSS.DRV
|
||||||
@ -452,7 +452,7 @@ WR_FAT: SET_PAGE_X FATPAGE
|
|||||||
;HL:IX - SECTOR OF FAT FOR SAVE
|
;HL:IX - SECTOR OF FAT FOR SAVE
|
||||||
ADD IX,DE ; ®¬¥à «®£. ᥪâ®à
|
ADD IX,DE ; ®¬¥à «®£. ᥪâ®à
|
||||||
LD HL,0 ; áâ. à §àï¤
|
LD HL,0 ; áâ. à §àï¤
|
||||||
LD DE,FAT_CACHE ; ŽâŞă¤
|
LD DE,FATPAGE.cache ; ®âªã¤
|
||||||
LD B,A ; ç¨á«® ᥪâ®à®¢
|
LD B,A ; ç¨á«® ᥪâ®à®¢
|
||||||
LD C,Dss.DRV.Write ; § ¯¨áì ᥪâ®à®¢
|
LD C,Dss.DRV.Write ; § ¯¨áì ᥪâ®à®¢
|
||||||
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
LD A,(FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||||
@ -465,7 +465,7 @@ WR_FAT: SET_PAGE_X FATPAGE
|
|||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD IX,0
|
LD IX,0
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD DE,FAT_CACHE
|
LD DE,FATPAGE.cache
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD C,Dss.DRV.Write
|
LD C,Dss.DRV.Write
|
||||||
|
|||||||
@ -657,8 +657,9 @@ TST_01: IN A,(CMOUSE)
|
|||||||
LD A,B
|
LD A,B
|
||||||
OR C
|
OR C
|
||||||
JR NZ,TST_01
|
JR NZ,TST_01
|
||||||
;JR NC,TST_01
|
SCF
|
||||||
RET
|
RET
|
||||||
|
;JR NC,TST_01
|
||||||
;
|
;
|
||||||
|
|
||||||
.NXT: IN A,(DMOUSE)
|
.NXT: IN A,(DMOUSE)
|
||||||
@ -667,19 +668,19 @@ TST_01: IN A,(CMOUSE)
|
|||||||
CCF
|
CCF
|
||||||
RET NZ
|
RET NZ
|
||||||
|
|
||||||
;!TEST mouse freeeeezzzz
|
;[x] mouse freeeeezzzz !TEST
|
||||||
LD BC,#2000
|
LD BC,#2000
|
||||||
;
|
;
|
||||||
TST_02: IN A,(CMOUSE)
|
TST_02: IN A,(CMOUSE)
|
||||||
RRCA
|
RRCA
|
||||||
;!TEST mouse freeeeezzzz
|
;[x] mouse freeeeezzzz !TEST
|
||||||
JR C,.NXT
|
JR C,.NXT
|
||||||
DEC BC
|
DEC BC
|
||||||
LD A,B
|
LD A,B
|
||||||
OR C
|
OR C
|
||||||
JR NZ,TST_02
|
JR NZ,TST_02
|
||||||
;JR NC,TST_02
|
|
||||||
RET
|
RET
|
||||||
|
;JR NC,TST_02
|
||||||
;
|
;
|
||||||
.NXT: IN A,(DMOUSE)
|
.NXT: IN A,(DMOUSE)
|
||||||
LD D,A
|
LD D,A
|
||||||
|
|||||||
@ -302,7 +302,8 @@ SETUP_CURSORS:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
CTRLKEY LD HL,HOST
|
CTRLKEY:
|
||||||
|
LD HL,HOST
|
||||||
LD A,(HEAD)
|
LD A,(HEAD)
|
||||||
CP (HL)
|
CP (HL)
|
||||||
LD BC,(KEYFLAG)
|
LD BC,(KEYFLAG)
|
||||||
@ -311,7 +312,8 @@ CTRLKEY LD HL,HOST
|
|||||||
DEC A
|
DEC A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TESTKEY LD HL,HOST
|
TESTKEY:
|
||||||
|
LD HL,HOST
|
||||||
LD A,(HEAD)
|
LD A,(HEAD)
|
||||||
CP (HL)
|
CP (HL)
|
||||||
RET Z
|
RET Z
|
||||||
@ -348,7 +350,8 @@ TESTKEY LD HL,HOST
|
|||||||
; RET
|
; RET
|
||||||
|
|
||||||
;small optimization
|
;small optimization
|
||||||
K_CLEAR LD A,(HOST)
|
K_CLEAR:
|
||||||
|
LD A,(HOST)
|
||||||
LD (HEAD),A
|
LD (HEAD),A
|
||||||
LD A,#2F
|
LD A,#2F
|
||||||
CP B
|
CP B
|
||||||
@ -363,7 +366,7 @@ K_CLEAR LD A,(HOST)
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
PUTSYM LD HL,HEAD
|
PUTSYM: LD HL,HEAD
|
||||||
LD A,(HOST)
|
LD A,(HOST)
|
||||||
SUB 4
|
SUB 4
|
||||||
AND #3F
|
AND #3F
|
||||||
@ -386,7 +389,7 @@ PUTSYM LD HL,HEAD
|
|||||||
LD (HL),C
|
LD (HL),C
|
||||||
RET
|
RET
|
||||||
|
|
||||||
GETSYM LD HL,HOST
|
GETSYM: LD HL,HOST
|
||||||
LD A,(HEAD)
|
LD A,(HEAD)
|
||||||
CP (HL)
|
CP (HL)
|
||||||
RET Z
|
RET Z
|
||||||
@ -407,38 +410,41 @@ GETSYM LD HL,HOST
|
|||||||
LD C,(HL)
|
LD C,(HL)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
FULL_BF EX AF,AF'
|
FULL_BF:
|
||||||
|
EX AF,AF'
|
||||||
BIT SF_BUFF,(IX+SOUND_K)
|
BIT SF_BUFF,(IX+SOUND_K)
|
||||||
JR Z,FBF
|
JR Z,.FBF
|
||||||
EXX
|
EXX
|
||||||
LD DE,230
|
LD DE,230
|
||||||
LD HL,50
|
LD HL,50
|
||||||
CALL BEEP
|
CALL BEEP
|
||||||
EXX
|
EXX
|
||||||
FBF EX AF,AF'
|
.FBF: EX AF,AF'
|
||||||
RET
|
RET
|
||||||
|
.E0_KEY:
|
||||||
|
SET FLAG_E0,(IX+KEYFLG)
|
||||||
|
JR KEYSCAN.RESCAN
|
||||||
|
.F0_KEY:
|
||||||
|
SET FLAG_F0,(IX+KEYFLG)
|
||||||
|
JR KEYSCAN.RESCAN
|
||||||
|
.E1_KEY:
|
||||||
|
SET FLAG_E1,(IX+KEYFLG)
|
||||||
|
JR KEYSCAN.RESCAN
|
||||||
|
|
||||||
E0_KEY SET FLAG_E0,(IX+KEYFLG)
|
|
||||||
JR RESCAN
|
|
||||||
|
|
||||||
F0_KEY SET FLAG_F0,(IX+KEYFLG)
|
KEYSCAN:
|
||||||
JR RESCAN
|
LD IX,KEYFLAG
|
||||||
|
.RESCAN:
|
||||||
E1_KEY SET FLAG_E1,(IX+KEYFLG)
|
IN A,(COM_A)
|
||||||
JR RESCAN
|
|
||||||
|
|
||||||
KEYSCAN LD IX,KEYFLAG
|
|
||||||
|
|
||||||
RESCAN IN A,(COM_A)
|
|
||||||
BIT 0,A
|
BIT 0,A
|
||||||
RET Z
|
RET Z
|
||||||
IN A,(DAT_A)
|
IN A,(DAT_A)
|
||||||
CP #F0
|
CP #F0
|
||||||
JR Z,F0_KEY
|
JR Z,FULL_BF.F0_KEY
|
||||||
CP #E0
|
CP #E0
|
||||||
JR Z,E0_KEY
|
JR Z,FULL_BF.E0_KEY
|
||||||
CP #E1
|
CP #E1
|
||||||
JR Z,E1_KEY
|
JR Z,FULL_BF.E1_KEY
|
||||||
BIT FLAG_F0,(IX+KEYFLG)
|
BIT FLAG_F0,(IX+KEYFLG)
|
||||||
JR NZ,UN_KEY
|
JR NZ,UN_KEY
|
||||||
LD L,A
|
LD L,A
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
567
|
579
|
||||||
@ -15,8 +15,7 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
|||||||
DEFINE TABisSPACES 0
|
DEFINE TABisSPACES 0
|
||||||
DEFINE EnoughtOnly_LF 0
|
DEFINE EnoughtOnly_LF 0
|
||||||
DEFINE CLASSIC_CURSOR 0
|
DEFINE CLASSIC_CURSOR 0
|
||||||
DEFINE SAVE_PATH_MACRO 0 ;\____ «¨¡® â®, «¨¡® â®
|
DEFINE SAVE_PATH_CODE 1
|
||||||
DEFINE SAVE_PATH_CODE 1 ;/
|
|
||||||
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
||||||
;
|
;
|
||||||
;-------------------[MEMORY]-------------------------;
|
;-------------------[MEMORY]-------------------------;
|
||||||
@ -24,13 +23,22 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
|||||||
; DEFINE OLD_SET_BANK 0
|
; DEFINE OLD_SET_BANK 0
|
||||||
|
|
||||||
;---------------------[ «®£.®¬¥à áâà ¨æ ¯ ¬ï⨠]---------------------
|
;---------------------[ «®£.®¬¥à áâà ¨æ ¯ ¬ï⨠]---------------------
|
||||||
|
DEFINE USING_MEMPAGES 4 ; à §¬¥à ¡«®ª ¤®¯®«¨â¥«ìëå áâà ¨æ
|
||||||
; ªíè ᯨ᪠ª â «®£
|
; ªíè ᯨ᪠ª â «®£
|
||||||
DIRPAGE EQU 0
|
DIRPAGE EQU 0
|
||||||
|
.buffer EQU #C000
|
||||||
|
;
|
||||||
FATPAGE EQU 1
|
FATPAGE EQU 1
|
||||||
|
.cache EQU #C000
|
||||||
|
;
|
||||||
TXTPAGE EQU 2
|
TXTPAGE EQU 2
|
||||||
|
;
|
||||||
ENVPAGE EQU TXTPAGE
|
ENVPAGE EQU TXTPAGE
|
||||||
|
.PATH_PNT_ARRAY EQU #FC80
|
||||||
|
.ENVTEMP EQU #FE00
|
||||||
|
;
|
||||||
DRVPAGE EQU 3
|
DRVPAGE EQU 3
|
||||||
DEFINE USING_MEMPAGES 4 ; à §¬¥à ¡«®ª ¤®¯®«¨â¥«ìëå áâà ¨æ
|
;
|
||||||
COREPAGE EQU 4 ; ® ®â¤¥«ì® ¨ ¥ á ¡«®ª®¬ ¢ëè¥.
|
COREPAGE EQU 4 ; ® ®â¤¥«ì® ¨ ¥ á ¡«®ª®¬ ¢ëè¥.
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
DIRECTORY_PATH_LENGTH EQU 256 ; '\' + 255, 0
|
DIRECTORY_PATH_LENGTH EQU 256 ; '\' + 255, 0
|
||||||
@ -38,8 +46,8 @@ ENVIRONMENT_STRING_LENGTH EQU 255
|
|||||||
|
|
||||||
TXTADDR EQU #C000
|
TXTADDR EQU #C000
|
||||||
ENVADDR EQU #E400
|
ENVADDR EQU #E400
|
||||||
DIR EQU #C000
|
;DIR EQU #C000
|
||||||
FAT_CACHE EQU #C000
|
;FAT_CACHE EQU #C000
|
||||||
|
|
||||||
FMCOUNT EQU 10 ; Š®«¨ç¥á⢮ ä ©«®¢ëå ¬ ¨¯ã«ïâ®à®¢
|
FMCOUNT EQU 10 ; Š®«¨ç¥á⢮ ä ©«®¢ëå ¬ ¨¯ã«ïâ®à®¢
|
||||||
HANDBUF.SIZE EQU 32
|
HANDBUF.SIZE EQU 32
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user