trdos: skip LFN and #E5 records in /cat. An error is thrown in the "/HDD xx" command when selecting an unsupported partition

This commit is contained in:
Tolik authored and Anatoliy Belyanskiy committed 2024-07-21 01:35:29 +10:00
1 parent 96eb67e591
commit 09d50ef6e6
5 files changed
+52 -35

No files matched your search

+2 -2
View File
@@ -13,10 +13,10 @@ CHOOSE_HDD:
;
.loop: LD A,(DE)
INC DE
CP ' '
CP " "
JR Z,.loop
LD A,(DE)
CP #0D
CP "\r"
JR Z,.error
.cont: ; ­®¬¥à à §¤¥« 
;INC DE
+42 -25
View File
@@ -33,24 +33,37 @@ MSDOS_TEST_FL:
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,E
; [x] 07/07/2024 ¯à®¯ã᪠LFN
PUSH HL
LD DE,#0B ; FAT_DIRECTORY_RECORD.ATTRIBUT
ADD HL,DE
LD D,(HL)
POP HL
;
LD E,(HL)
OUT (SLOT3),A
EI
LD A,E
; [x] 07/07/2024 ¯à®¯ã᪠LFN
LD A,D
CP #0F ; FAT_ATTR.LFS_Entry
JR NZ,.nxt
POP DE
JR MSDOS_NEXT_FL
;
.nxt: LD A,E
POP DE
AND A
SCF
RET Z ; ŠŽ�…– Š€’€‹Žƒ€
CP #E5
SCF
CCF
; DEC A ; ‘’…�’›‰ ”€‰‹
; AND A
JR Z,MSDOS_NEXT_FL
AND A
RET
;**********************************
;**********************
MSDOS_NEXT_FL:
PUSH DE
LD DE," "
LD DE,32 ; FAT_DIRECTORY_RECORD size
ADD HL,DE
DI
IN A,(SLOT3)
@@ -99,18 +112,18 @@ MSDOS_CAT:
PUSH DE
CALL AUTO_1D97 ; CLS
CALL OPEN_CH2
LD A,13
LD A,"\r"
RST #10
POP DE ; ‘’�ŽŠ€ �Ž‘‹… CAT
CAT_SPACES:
LD A,(DE)
CP #20
CP " "
JR NZ,CAT_NO_SPACE
INC DE
JR CAT_SPACES
CAT_NO_SPACE:
CP 13
CP "\r"
JR NZ,CAT_ALL
LD DE,CAT_FILES
CAT_ALL:
@@ -142,26 +155,29 @@ PRINT_MSD_NAME:
PUSH DE
LD HL,ZX_VARS.FL_NAME
LD A,' '
RST 10H
RST #10
LD A,' '
RST 10H
RST #10
;
LD B,8
PRINT_MSD_L1:
LD A,(HL)
RST 10H
.L1: LD A,(HL)
;AND #7F ; ¡ £ á ¨¬¥­¥¬, ¥á«¨ ­  FAT ¨¬¥­  á UTF8
RST #10
INC HL
DJNZ PRINT_MSD_L1
DJNZ .L1
;
LD A,' '
RST 10H
RST #10
;
LD B,3
PRINT_MSD_L2:
LD A,(HL)
RST 10H
.L2: LD A,(HL)
;AND #7F ; ¡ £ á ¨¬¥­¥¬, ¥á«¨ ­  FAT ¨¬¥­  á UTF8
RST #10
INC HL
DJNZ PRINT_MSD_L2
DJNZ .L2
;
LD A,6
RST 10H
RST #10
POP DE
POP HL
RET
@@ -369,8 +385,9 @@ RMD_BLKS_L2:
RET ; B - —ˆ‘‹Ž �‹ŽŠŽ‚ RAM_DISK
;****************************************
MSDOS_KOMP_FL: ; DE - ˆŒŸ ”€‰‹€ ‘Ž *,?
; HL - ˆŒŸ ‚ Š€’€‹Žƒ…
; DE - ˆŒŸ ”€‰‹€ ‘Ž *,?
; HL - ˆŒŸ ‚ Š€’€‹Žƒ…
MSDOS_KOMP_FL:
CALL COPY_NAME_MSD ; �…�…Œ…‘’ˆ’œ ˆŒŸ ‚ Ž�‹€‘’œ TR-DOS
LD A,(ZX_VARS.FL_NAME)
AND A
+1 -1
View File
@@ -619,7 +619,7 @@ HDD_SET:;!TEST
INC DE
CP ' '
JR Z,.loop
CP #0D
CP "\r"
JR Z,.init
;
DEC DE
+6 -6
View File
@@ -562,7 +562,7 @@ READ_BPB:
LD C,B
LD B,0 ; BC - ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
LD A,C
LD (SYS_PAGE.F_P_S),A
LD (SYS_PAGE.FilesPerSector),A
LD DE,(SYS_PAGE.MS_BPB+FLS_NUM) ; —¨á«® ä ©«®¢ëå § ¯¨á¥©
@@ -579,7 +579,7 @@ READ_BPB:
LD E,A ; A - ç¨á«® ᥪâ®à®¢ ¢ DIR
LD D,0
LD BC,0
LD (SYS_PAGE.S_P_C),A
LD (SYS_PAGE.SectorsPerCluster),A
ADD IX,DE ; � ç «® DATA area
ADC HL,BC
@@ -646,11 +646,11 @@ READ_1ST_DIR:
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD IX,(SYS_PAGE.MSD_CAT_SEC2) ;
LD DE,(SYS_PAGE.MSD_CAT_SEC) ; �€—€‹œ�›‰ ‘…Š’Ž� Š€’€‹Žƒ€
LD IX,(SYS_PAGE.MSD_CAT_SEC2)
LD DE,(SYS_PAGE.MSD_CAT_SEC) ; �€—€‹œ�›‰ ‘…Š’Ž� Š€’€‹Žƒ€
LD (SYS_PAGE.MSD_CONT_SEC),DE
LD (SYS_PAGE.MSD_CONT_SEC2),IX
LD A,(SYS_PAGE.S_P_C) ; ‘…Š’Ž�Ž‚ ‚ Š€’€‹Žƒ…
LD A,(SYS_PAGE.SectorsPerCluster) ; ‘…Š’Ž�Ž‚ ‚ Š€’€‹Žƒ…
LD (SYS_PAGE.COUNT_SEC),A
READ_NEXT2:
EX AF,AF'
@@ -677,7 +677,7 @@ READ_NEXT2:
INC IX
LD (SYS_PAGE.MSD_CONT_SEC2),IX
READ_NEXT3:
LD A,(SYS_PAGE.F_P_S) ; ”€‰‹Ž‚ ‚ ‘…Š’Ž�…
LD A,(SYS_PAGE.FilesPerSector) ; ”€‰‹Ž‚ ‚ ‘…Š’Ž�…
LD (SYS_PAGE.COUNT_FL),A
EX AF,AF'