-fixed 2 bugs with attributes and directories

This commit is contained in:
Anatoliy Belyanskiy 2024-01-09 00:06:14 +10:00
parent cc6ab20c6c
commit ec7682cf21
10 changed files with 52 additions and 123 deletions

View File

@ -1,14 +1,19 @@
////////////////////////////////////////////////////////////////////////
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
; A - File attribute
; OUTPUT: A - FM
////////////////////////////////////////////////////////////////////////
CREATE_FN:
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥­­ë© ä¨ªá ¤«ï volume ID
CREATE: ;!TEST Current Dir ;[x] 15/10/23
PUSH HL
LD C,A
PUSH BC
CALL DIR_PATH_CHECK
POP BC
POP HL
RET C
LD A,C
;
CALL .Prepare
RET C
@ -20,9 +25,13 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23
AND FAT_ATTR.NoVolID ; [x] 2/12/23 ¢à¥¬¥­­ë© ä¨ªá ¤«ï volume ID
.NEW: ;!TEST Current Dir ;[x] 15/10/23
PUSH HL
LD C,A
PUSH BC
CALL DIR_PATH_CHECK
POP BC
POP HL
RET C
LD A,C
;
CALL .Prepare
RET C

View File

@ -15,11 +15,11 @@ OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
CALL DIR_PATH_CHECK.forceCheck
POP HL
RET C
JR .start
;JR .start
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
;R008 ;
;OPEN: ;
LD (.TMP),A ; enter point from CREATE
;LD (.TMP),A ; enter point from CREATE
.start: CALL GETWORD
RET C
CALL MASK ; enter point from OPEN_FN

View File

@ -441,7 +441,7 @@ ADRST10: ;DS 512 ;,0
;---------------------------------------------------------------------------------------------------------------------------------------------------------------;
;[INCLUDE]
;!TODO § ¬¥­¨âì ¯®-¬ ªá¨¬®¬ã ¢áñ ¢ KEYINTER.ASM ­  ¢ë§®¢ë ¡¨®á 
INCLUDE "KEYINTER.ASM" ;!FIXIT ¨§-§  ¡ãä¥à  á ¢ëà ¢­¨¢ ­¨¥¬ align 256 ¢ ­ ç «¥ ¯à¨å®¤¨âáï ADRST10 ¤®¡¨¢ âì ­ã«ï¬¨ ¢ ª®­æ¥
INCLUDE "KEYINTER.ASM"
INCLUDE "VIDEO.ASM"
INCLUDE "API.ASM"
INCLUDE "DOS_Proc.asm"
@ -474,14 +474,9 @@ CurrentDirectory: DB '\'
.DEPTH: EQU DIRECTORY_PATH_LENGTH
BLOCK CurrentDirectory.DEPTH,0 ; ­¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®­æ¥
;
IF SAVE_PATH_CODE
WorkDirectory: DB '\'
.DEPTH: EQU DIRECTORY_PATH_LENGTH
BLOCK WorkDirectory.DEPTH,0 ; ­¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®­æ¥
ELSE
WorkDirectory EQU CurrentDirectory
.DEPTH EQU CurrentDirectory.DEPTH
ENDIF
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;

View File

@ -388,19 +388,22 @@ LOADDIR:
WRT_HND: SET_PAGE_X DIRPAGE
EX AF,AF'
;
LD IX,DIRPAGE.buffer
;LD IX,DIRPAGE.buffer
LD HL,DIRPAGE.buffer
;TEST 9/11/23
; EXX
; LD DE,0
; EXX
;
.loop: LD A,(IX+00)
LD BC,#0020
.loop: ;LD A,(IX+00)
LD A,(HL)
OR A
JR Z,.WRT_HN2
CP #E5
JR Z,.WRT_HN2
LD BC,#0020
ADD IX,BC
;ADD IX,BC
ADD HL,BC
JR NC,.loop
;
EX AF,AF'
@ -409,8 +412,9 @@ WRT_HND: SET_PAGE_X DIRPAGE
SCF
RET
.WRT_HN2:
LD D,XH
LD E,XL
;LD D,XH
;LD E,XL
EX DE,HL
LD HL,HANDBUF
LD BC,HANDBUF.SIZE
LDIR
@ -617,7 +621,7 @@ RD_BPB: LD C,SLOT3
LD (FatBuffer.DAT_FRM),HL
;!TODO ­¥ ¨á¯®«ì§ãîâáï §­ ç¥­¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ­ï¥¬ë¥ ¢ FatBuffer
////////////////////////////////////////////////////////////////////////
IF COMPILE_UNUSED_CODE
;IF COMPILE_UNUSED_CODE
;LD HL,0
;LD H,B ; âãâ ¢ B ­®«ì ¤®«¦¥­ ¡ëâì
@ -654,7 +658,7 @@ RD_BPB: LD C,SLOT3
SBC HL,DE
JR NC,.loop4
LD (FatBuffer.C_P_B),A ; A - Clusters per bank (16k)
ENDIF
;ENDIF
////////////////////////////////////////////////////////////////////////
LD HL,CORE_BUFFERS.BootSector.ID_FAT ;!!!!!   ¥á«¨ IY ¨á¯®«ì§ã¥âáï ¤«ï ¯¥à¥¬¥­­®£® BootSector, â® ¡ã¤¥â ¡ £ 
@ -688,7 +692,7 @@ RD_BPB: LD C,SLOT3
;!TODO ­¥ ¨á¯®«ì§ãîâáï §­ ç¥­¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ­ï¥¬ë¥ ¢ FatBuffer
////////////////////////////////////////////////////////////////////////
IF COMPILE_UNUSED_CODE
;IF COMPILE_UNUSED_CODE
LD HL,0
@ -702,7 +706,7 @@ RD_BPB: LD C,SLOT3
DEC A
JR NZ,.BPB_L1
LD (FatBuffer.S_X_H),HL
ENDIF
;ENDIF
////////////////////////////////////////////////////////////////////////
LD DE,(FatBuffer.DAT_FRM)

View File

@ -88,25 +88,6 @@ R_F_FAT:
JR Z,R_F_F12
; fat16, ¯à®áâ® ç¨â âì á«¥¤. ­®¬¥à
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
LD E,(HL) ; ¯à®ç¨â âì ­®¬¥à ª« áâ¥à 
INC HL
@ -122,33 +103,6 @@ R_F_F16:
;
R_F_F12:
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)
INC HL
LD D,(HL)
@ -249,38 +203,6 @@ W_T_F16:
; fat12
W_T_F12: ;!FIXIT ¯¥à¥¤¥« âì ­  ¯¥à¥¬¥­­ë¥ FAT_CACHE
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
POP DE
JR C,W_T_F01 ; ­®¬¥à ­¥çñâ­ë©

View File

@ -909,34 +909,34 @@ REDY+1: LD A,#00
LD (REDY),A
RET
MODE_M DB #03
MODE_M: DB #03
PIX_X DW 160
PIX_Y DW 128
PIX_X: DW 160
PIX_Y: DW 128
MX DB #00
MY DB #00
MB DB #00
MB_OLD DB #00 ; !FIXIT - ­¥ ­ã¦­®?
MIN_X DW 0
MAX_X DW 319
MIN_Y DW 0
MAX_Y DW 255
SENSEXY
SENSE_X DB 0
SENSE_Y DB 0
MX: DB #00
MY: DB #00
MB: DB #00
;MB_OLD DB #00 ; !FIXIT - ­¥ ­ã¦­®?
MIN_X: DW 0
MAX_X: DW 319
MIN_Y: DW 0
MAX_Y: DW 255
SENSEXY:
.X: DB 0
.Y: DB 0
XHOT_SP DW 0
YHOT_SP DW 0
XHOT_SP: DW 0
YHOT_SP: DW 0
ANDXORS DW #FF00
ANDXORA DW #FF77
ANDXORS: DW #FF00
ANDXORA: DW #FF77
M_XSIZE DB 10
M_YSIZE DB 14
SKIPXF DW 0
REALXS DW 0
REALYS DW 0
M_XSIZE: DB 10
M_YSIZE: DB 14
SKIPXF: DW 0
REALXS: DW 0
REALYS: DW 0
; Xx EQU #00
; Ww EQU #FE

View File

@ -163,7 +163,7 @@ BCD2HEX:
;!TODO hardware
;----------------------------------------------------------------------;
;!FIXIT ¯¥à¥¤¥« âì ¯® ¤®ª¥ ­  „ «« á ¨ § ¨áì ¢ ï祩ª¨ ç á®¢
;!FIXIT ¯¥à¥¤¥« âì ¯® ¤®ª¥ ­  „ «« á ¨ § ¯¨áì ¢ ï祩ª¨ ç á®¢
; ‡ ¯¨áì ॣ¨áâ஢ CMOS
; ¢å®¤: d=­®¬¥à ॣ¨áâà 
WCMOS: CALL HEX2BCD

View File

@ -1 +1 @@
827
831

View File

@ -47,7 +47,6 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
DEFINE TABisSPACES 0
DEFINE EnoughtOnly_LF 0
DEFINE CLASSIC_CURSOR 0
DEFINE SAVE_PATH_CODE 1
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
DEFINE CHECK_DRIVE_CHANGE 1 ; 1 - â®à¬®§­¥¥, ­® ¡¥§®¯ á­¥¥
;

@ -1 +1 @@
Subproject commit 54298bfb52826572bda5ccd0609320a9418d08c9
Subproject commit a6dee8e17ae12b251f306290793a56a6b0dd5ae3