mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-16 01:41:17 +03:00
-fixed 2 bugs with attributes and directories
This commit is contained in:
parent
cc6ab20c6c
commit
ec7682cf21
@ -1,14 +1,19 @@
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
||||||
|
; A - File attribute
|
||||||
; OUTPUT: A - FM
|
; OUTPUT: A - FM
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CREATE_FN:
|
CREATE_FN:
|
||||||
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥ë© ä¨ªá ¤«ï volume ID
|
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥ë© ä¨ªá ¤«ï volume ID
|
||||||
CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
LD C,A
|
||||||
|
PUSH BC
|
||||||
CALL DIR_PATH_CHECK
|
CALL DIR_PATH_CHECK
|
||||||
|
POP BC
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
|
LD A,C
|
||||||
;
|
;
|
||||||
CALL .Prepare
|
CALL .Prepare
|
||||||
RET C
|
RET C
|
||||||
@ -20,9 +25,13 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥ë© ä¨ªá ¤«ï volume ID
|
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥ë© ä¨ªá ¤«ï volume ID
|
||||||
.NEW: ;!TEST Current Dir ;[x] 15/10/23
|
.NEW: ;!TEST Current Dir ;[x] 15/10/23
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
LD C,A
|
||||||
|
PUSH BC
|
||||||
CALL DIR_PATH_CHECK
|
CALL DIR_PATH_CHECK
|
||||||
|
POP BC
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
|
LD A,C
|
||||||
;
|
;
|
||||||
CALL .Prepare
|
CALL .Prepare
|
||||||
RET C
|
RET C
|
||||||
|
|||||||
@ -15,11 +15,11 @@ OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
|
|||||||
CALL DIR_PATH_CHECK.forceCheck
|
CALL DIR_PATH_CHECK.forceCheck
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
JR .start
|
;JR .start
|
||||||
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
|
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
|
||||||
;R008 ;
|
;R008 ;
|
||||||
;OPEN: ;
|
;OPEN: ;
|
||||||
LD (.TMP),A ; enter point from CREATE
|
;LD (.TMP),A ; enter point from CREATE
|
||||||
.start: CALL GETWORD
|
.start: CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
CALL MASK ; enter point from OPEN_FN
|
CALL MASK ; enter point from OPEN_FN
|
||||||
|
|||||||
@ -441,7 +441,7 @@ ADRST10: ;DS 512 ;,0
|
|||||||
;---------------------------------------------------------------------------------------------------------------------------------------------------------------;
|
;---------------------------------------------------------------------------------------------------------------------------------------------------------------;
|
||||||
;[INCLUDE]
|
;[INCLUDE]
|
||||||
;!TODO § ¬¥¨âì ¯®-¬ ªá¨¬®¬ã ¢áñ ¢ KEYINTER.ASM ¢ë§®¢ë ¡¨®á
|
;!TODO § ¬¥¨âì ¯®-¬ ªá¨¬®¬ã ¢áñ ¢ KEYINTER.ASM ¢ë§®¢ë ¡¨®á
|
||||||
INCLUDE "KEYINTER.ASM" ;!FIXIT ¨§-§ ¡ãä¥à á ¢ëà ¢¨¢ ¨¥¬ align 256 ¢ ç «¥ ¯à¨å®¤¨âáï ADRST10 ¤®¡¨¢ âì ã«ï¬¨ ¢ ª®æ¥
|
INCLUDE "KEYINTER.ASM"
|
||||||
INCLUDE "VIDEO.ASM"
|
INCLUDE "VIDEO.ASM"
|
||||||
INCLUDE "API.ASM"
|
INCLUDE "API.ASM"
|
||||||
INCLUDE "DOS_Proc.asm"
|
INCLUDE "DOS_Proc.asm"
|
||||||
@ -474,14 +474,9 @@ CurrentDirectory: DB '\'
|
|||||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||||
BLOCK CurrentDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
BLOCK CurrentDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
||||||
;
|
;
|
||||||
IF SAVE_PATH_CODE
|
|
||||||
WorkDirectory: DB '\'
|
WorkDirectory: DB '\'
|
||||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||||
BLOCK WorkDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
BLOCK WorkDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
||||||
ELSE
|
|
||||||
WorkDirectory EQU CurrentDirectory
|
|
||||||
.DEPTH EQU CurrentDirectory.DEPTH
|
|
||||||
ENDIF
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|||||||
@ -388,19 +388,22 @@ LOADDIR:
|
|||||||
WRT_HND: SET_PAGE_X DIRPAGE
|
WRT_HND: SET_PAGE_X DIRPAGE
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
LD IX,DIRPAGE.buffer
|
;LD IX,DIRPAGE.buffer
|
||||||
|
LD HL,DIRPAGE.buffer
|
||||||
;TEST 9/11/23
|
;TEST 9/11/23
|
||||||
; EXX
|
; EXX
|
||||||
; LD DE,0
|
; LD DE,0
|
||||||
; EXX
|
; EXX
|
||||||
;
|
;
|
||||||
.loop: LD A,(IX+00)
|
LD BC,#0020
|
||||||
|
.loop: ;LD A,(IX+00)
|
||||||
|
LD A,(HL)
|
||||||
OR A
|
OR A
|
||||||
JR Z,.WRT_HN2
|
JR Z,.WRT_HN2
|
||||||
CP #E5
|
CP #E5
|
||||||
JR Z,.WRT_HN2
|
JR Z,.WRT_HN2
|
||||||
LD BC,#0020
|
;ADD IX,BC
|
||||||
ADD IX,BC
|
ADD HL,BC
|
||||||
JR NC,.loop
|
JR NC,.loop
|
||||||
;
|
;
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
@ -409,8 +412,9 @@ WRT_HND: SET_PAGE_X DIRPAGE
|
|||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
.WRT_HN2:
|
.WRT_HN2:
|
||||||
LD D,XH
|
;LD D,XH
|
||||||
LD E,XL
|
;LD E,XL
|
||||||
|
EX DE,HL
|
||||||
LD HL,HANDBUF
|
LD HL,HANDBUF
|
||||||
LD BC,HANDBUF.SIZE
|
LD BC,HANDBUF.SIZE
|
||||||
LDIR
|
LDIR
|
||||||
@ -617,7 +621,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
LD (FatBuffer.DAT_FRM),HL
|
LD (FatBuffer.DAT_FRM),HL
|
||||||
;!TODO ¥ ¨á¯®«ì§ãîâáï § ç¥¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ï¥¬ë¥ ¢ FatBuffer
|
;!TODO ¥ ¨á¯®«ì§ãîâáï § ç¥¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ï¥¬ë¥ ¢ FatBuffer
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
IF COMPILE_UNUSED_CODE
|
;IF COMPILE_UNUSED_CODE
|
||||||
;LD HL,0
|
;LD HL,0
|
||||||
|
|
||||||
;LD H,B ; âãâ ¢ B ®«ì ¤®«¦¥ ¡ëâì
|
;LD H,B ; âãâ ¢ B ®«ì ¤®«¦¥ ¡ëâì
|
||||||
@ -654,7 +658,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NC,.loop4
|
JR NC,.loop4
|
||||||
LD (FatBuffer.C_P_B),A ; A - Clusters per bank (16k)
|
LD (FatBuffer.C_P_B),A ; A - Clusters per bank (16k)
|
||||||
ENDIF
|
;ENDIF
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
LD HL,CORE_BUFFERS.BootSector.ID_FAT ;!!!!! ¥á«¨ IY ¨á¯®«ì§ã¥âáï ¤«ï ¯¥à¥¬¥®£® BootSector, â® ¡ã¤¥â ¡ £
|
LD HL,CORE_BUFFERS.BootSector.ID_FAT ;!!!!! ¥á«¨ IY ¨á¯®«ì§ã¥âáï ¤«ï ¯¥à¥¬¥®£® BootSector, â® ¡ã¤¥â ¡ £
|
||||||
@ -688,7 +692,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
|
|
||||||
;!TODO ¥ ¨á¯®«ì§ãîâáï § ç¥¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ï¥¬ë¥ ¢ FatBuffer
|
;!TODO ¥ ¨á¯®«ì§ãîâáï § ç¥¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ï¥¬ë¥ ¢ FatBuffer
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
IF COMPILE_UNUSED_CODE
|
;IF COMPILE_UNUSED_CODE
|
||||||
|
|
||||||
LD HL,0
|
LD HL,0
|
||||||
|
|
||||||
@ -702,7 +706,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
DEC A
|
DEC A
|
||||||
JR NZ,.BPB_L1
|
JR NZ,.BPB_L1
|
||||||
LD (FatBuffer.S_X_H),HL
|
LD (FatBuffer.S_X_H),HL
|
||||||
ENDIF
|
;ENDIF
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
LD DE,(FatBuffer.DAT_FRM)
|
LD DE,(FatBuffer.DAT_FRM)
|
||||||
|
|||||||
@ -88,25 +88,6 @@ R_F_FAT:
|
|||||||
JR Z,R_F_F12
|
JR Z,R_F_F12
|
||||||
; fat16, ¯à®áâ® ç¨â âì á«¥¤. ®¬¥à
|
; fat16, ¯à®áâ® ç¨â âì á«¥¤. ®¬¥à
|
||||||
R_F_F16:
|
R_F_F16:
|
||||||
; LD A,H
|
|
||||||
; LD B,H
|
|
||||||
; ;AND #0F
|
|
||||||
; AND FAT_CACHE.Size_Mask_16
|
|
||||||
; LD H,A
|
|
||||||
; LD A,B
|
|
||||||
; ; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
|
||||||
; DUP FAT_CACHE.Degree_16
|
|
||||||
; RRCA
|
|
||||||
; EDUP
|
|
||||||
; ;AND #0F
|
|
||||||
; AND FAT_CACHE.Part_Mask_16
|
|
||||||
; ;
|
|
||||||
; ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
|
||||||
; LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
|
||||||
; CP C
|
|
||||||
; CALL NZ,READ_FAT ; A != C - READ NEW BLOCK FAT
|
|
||||||
; LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
|
||||||
; ADD HL,DE ; ï祩ªã FAT
|
|
||||||
CALL GET_FAT16_CELL
|
CALL GET_FAT16_CELL
|
||||||
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
||||||
INC HL
|
INC HL
|
||||||
@ -122,33 +103,6 @@ R_F_F16:
|
|||||||
;
|
;
|
||||||
R_F_F12:
|
R_F_F12:
|
||||||
CALL GET_FAT12_CELL
|
CALL GET_FAT12_CELL
|
||||||
; LD D,H
|
|
||||||
; LD E,L
|
|
||||||
; RR H
|
|
||||||
; RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
|
||||||
; PUSH AF ; á®åà. ä« £
|
|
||||||
; ADD HL,DE ; CLUSTER * 1.5
|
|
||||||
; ;
|
|
||||||
; ;!FIXIT ®¯â¨¬¨§¨à®¢ âì
|
|
||||||
; ;IF COMPILE_UNUSED_CODE
|
|
||||||
; LD A,H
|
|
||||||
; LD B,H
|
|
||||||
; AND #1F
|
|
||||||
; LD H,A
|
|
||||||
; LD A,B
|
|
||||||
; RLCA
|
|
||||||
; RLCA
|
|
||||||
; RLCA
|
|
||||||
; AND #07
|
|
||||||
; LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
|
||||||
; CP C
|
|
||||||
; CALL NZ,READ_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
|
||||||
; ;ENDIF
|
|
||||||
; ;
|
|
||||||
; LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
|
||||||
; ADD HL,DE ; ï祩ªã FAT
|
|
||||||
; POP AF ; ¢®ááâ. ä« £
|
|
||||||
|
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
LD D,(HL)
|
LD D,(HL)
|
||||||
@ -249,38 +203,6 @@ W_T_F16:
|
|||||||
; fat12
|
; fat12
|
||||||
W_T_F12: ;!FIXIT ¯¥à¥¤¥« âì ¯¥à¥¬¥ë¥ FAT_CACHE
|
W_T_F12: ;!FIXIT ¯¥à¥¤¥« âì ¯¥à¥¬¥ë¥ FAT_CACHE
|
||||||
PUSH DE
|
PUSH DE
|
||||||
; LD D,H
|
|
||||||
; LD E,L
|
|
||||||
; ; ADD HL,HL
|
|
||||||
; ; ADD HL,DE
|
|
||||||
; ; RR H
|
|
||||||
; ; RR L ;CLUSTER * 1.5
|
|
||||||
; ; PUSH AF
|
|
||||||
; RR H
|
|
||||||
; RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
|
||||||
; PUSH AF ; á®åà. ä« £
|
|
||||||
; ADD HL,DE ; CLUSTER * 1.5
|
|
||||||
; ;
|
|
||||||
; ;!FIXIT ®¯â¨¬¨§¨à®¢ âì
|
|
||||||
; ;IF COMPILE_UNUSED_CODE
|
|
||||||
; LD A,H
|
|
||||||
; LD B,H
|
|
||||||
; AND #1F
|
|
||||||
; LD H,A
|
|
||||||
; LD A,B
|
|
||||||
; RLCA
|
|
||||||
; RLCA
|
|
||||||
; RLCA
|
|
||||||
; AND #07
|
|
||||||
; LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
|
||||||
; CP C
|
|
||||||
; CALL NZ,READ_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
|
||||||
; ;ENDIF
|
|
||||||
; ;
|
|
||||||
; LD DE,FATPAGE.cache
|
|
||||||
; ADD HL,DE
|
|
||||||
; POP AF
|
|
||||||
|
|
||||||
CALL GET_FAT12_CELL
|
CALL GET_FAT12_CELL
|
||||||
POP DE
|
POP DE
|
||||||
JR C,W_T_F01 ; ®¬¥à ¥çñâë©
|
JR C,W_T_F01 ; ®¬¥à ¥çñâë©
|
||||||
|
|||||||
@ -909,34 +909,34 @@ REDY+1: LD A,#00
|
|||||||
LD (REDY),A
|
LD (REDY),A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
MODE_M DB #03
|
MODE_M: DB #03
|
||||||
|
|
||||||
PIX_X DW 160
|
PIX_X: DW 160
|
||||||
PIX_Y DW 128
|
PIX_Y: DW 128
|
||||||
|
|
||||||
MX DB #00
|
MX: DB #00
|
||||||
MY DB #00
|
MY: DB #00
|
||||||
MB DB #00
|
MB: DB #00
|
||||||
MB_OLD DB #00 ; !FIXIT - ¥ 㦮?
|
;MB_OLD DB #00 ; !FIXIT - ¥ 㦮?
|
||||||
MIN_X DW 0
|
MIN_X: DW 0
|
||||||
MAX_X DW 319
|
MAX_X: DW 319
|
||||||
MIN_Y DW 0
|
MIN_Y: DW 0
|
||||||
MAX_Y DW 255
|
MAX_Y: DW 255
|
||||||
SENSEXY
|
SENSEXY:
|
||||||
SENSE_X DB 0
|
.X: DB 0
|
||||||
SENSE_Y DB 0
|
.Y: DB 0
|
||||||
|
|
||||||
XHOT_SP DW 0
|
XHOT_SP: DW 0
|
||||||
YHOT_SP DW 0
|
YHOT_SP: DW 0
|
||||||
|
|
||||||
ANDXORS DW #FF00
|
ANDXORS: DW #FF00
|
||||||
ANDXORA DW #FF77
|
ANDXORA: DW #FF77
|
||||||
|
|
||||||
M_XSIZE DB 10
|
M_XSIZE: DB 10
|
||||||
M_YSIZE DB 14
|
M_YSIZE: DB 14
|
||||||
SKIPXF DW 0
|
SKIPXF: DW 0
|
||||||
REALXS DW 0
|
REALXS: DW 0
|
||||||
REALYS DW 0
|
REALYS: DW 0
|
||||||
|
|
||||||
; Xx EQU #00
|
; Xx EQU #00
|
||||||
; Ww EQU #FE
|
; Ww EQU #FE
|
||||||
|
|||||||
@ -163,7 +163,7 @@ BCD2HEX:
|
|||||||
|
|
||||||
;!TODO hardware
|
;!TODO hardware
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;!FIXIT ¯¥à¥¤¥« âì ¯® ¤®ª¥ „ «« á ¨ § ¨áì ¢ ï祩ª¨ ç ᮢ
|
;!FIXIT ¯¥à¥¤¥« âì ¯® ¤®ª¥ „ «« á ¨ § ¯¨áì ¢ ï祩ª¨ ç ᮢ
|
||||||
; ‡ ¯¨áì ॣ¨áâ஢ CMOS
|
; ‡ ¯¨áì ॣ¨áâ஢ CMOS
|
||||||
; ¢å®¤: d=®¬¥à ॣ¨áâà
|
; ¢å®¤: d=®¬¥à ॣ¨áâà
|
||||||
WCMOS: CALL HEX2BCD
|
WCMOS: CALL HEX2BCD
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
827
|
831
|
||||||
@ -47,7 +47,6 @@ 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_CODE 1
|
|
||||||
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
||||||
DEFINE CHECK_DRIVE_CHANGE 1 ; 1 - â®à¬®§¥¥, ® ¡¥§®¯ ᥥ
|
DEFINE CHECK_DRIVE_CHANGE 1 ; 1 - â®à¬®§¥¥, ® ¡¥§®¯ ᥥ
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 54298bfb52826572bda5ccd0609320a9418d08c9
|
Subproject commit a6dee8e17ae12b251f306290793a56a6b0dd5ae3
|
||||||
Loading…
Reference in New Issue
Block a user