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 2024-07-08 00:46:47 +10:00 committed by Anatoliy Belyanskiy
parent 90e3c53cd4
commit 698a864b04
5 changed files with 52 additions and 35 deletions

@ -1 +1 @@
Subproject commit 990f10e80278825f071f5795a5ba459dec0f991f
Subproject commit 04aaef8ac955971d913babd95921a62937b597ae

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

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 ; ŠŽ<C5A0> Š€’€‹Žƒ€
CP #E5
SCF
CCF
; DEC A ; <E28099>‰ ”€‰‹
; 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 ; <E28098>ŽŠ€ <20>Ž… 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 - —ˆ‘‹Ž <20>ŽŠŽ RAM_DISK
;****************************************
MSDOS_KOMP_FL: ; DE - ˆŒŸ ”€‰‹€ ‘Ž *,?
; HL - ˆŒŸ Š€’€‹Žƒ…
; DE - ˆŒŸ ”€‰‹€ ‘Ž *,?
; HL - ˆŒŸ Š€’€‹Žƒ…
MSDOS_KOMP_FL:
CALL COPY_NAME_MSD ; <20><EFBFBD>…Œ…ˆœ ˆŒŸ Ž<>œ TR-DOS
LD A,(ZX_VARS.FL_NAME)
AND A

View File

@ -619,7 +619,7 @@ HDD_SET:;!TEST
INC DE
CP ' '
JR Z,.loop
CP #0D
CP "\r"
JR Z,.init
;
DEC DE

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 ; <20> ç «® 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 IX,(SYS_PAGE.MSD_CAT_SEC2)
LD DE,(SYS_PAGE.MSD_CAT_SEC) ; <20>€—€œ<E280B9>…ŠŽ<E28099> Š€’€‹Žƒ€
LD (SYS_PAGE.MSD_CONT_SEC),DE
LD (SYS_PAGE.MSD_CONT_SEC2),IX
LD A,(SYS_PAGE.S_P_C) ; …ŠŽ<E28099>Ž Š€’€‹Žƒ…
LD A,(SYS_PAGE.SectorsPerCluster) ; …ŠŽ<E28099>Ž Š€’€‹Žƒ…
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) ; ”€‰‹Ž‚ …ŠŽ<E28099>
LD A,(SYS_PAGE.FilesPerSector) ; ”€‰‹Ž‚ …ŠŽ<E28099>
LD (SYS_PAGE.COUNT_FL),A
EX AF,AF'