fix cmd /hdd

This commit is contained in:
Tolik 2024-08-24 04:20:18 +10:00
parent 6c1a9a6d66
commit a170bf4abc
7 changed files with 87 additions and 71 deletions

@ -1 +1 @@
Subproject commit aca9ce3f859bf53c76b0d710e108543226697f91
Subproject commit e9d481a5565338505710b08e50d22a8579c400be

View File

@ -56,56 +56,73 @@ HDD_PROG_E:
;
HDD_SET:;!TEST
.loop: LD A,(DE)
INC DE
CP " "
JR Z,.loop
CP "\r"
JR Z,.init
;
DEC DE
DEC DE
JP CHOOSE_HDD
;CALL CHOOSE_HDD
;CALL READ_BPB
;RET
;
.loop: LD A,(DE)
INC DE
CP " "
JR Z,.loop
CP "\r"
JR Z,.init
;
DEC DE
DEC DE
JP CHOOSE_HDD
;CALL CHOOSE_HDD
;CALL READ_BPB
;RET
;
; [x] new tr-hdd
.init: ;CALL CORRECT_CUR_DIR
DI
IN A,(SLOT3)
LD C,A
LD A,SYS_PAGE
OUT (SLOT3),A
;
LD E,DRIVE_CODES.TRDOS.HDD
LD A,(SYS_PAGE.CURRENT_DIR_DRIVE_COPY)
CP #FF
JR Z,.skip
;
CP E
JR C,.skip
LD (SYS_PAGE.CURRENT_DIR_DRIVE),A
;
AND #0F
LD (SYS_PAGE.CURRENT_HDD),A
;
.skip: LD A,C
OUT (SLOT3),A
;
PUSH DE
LD C,BIOS.HDD_INIT
CALL EXP_FNS
POP DE
JP C,HDD_PROG_E
;
; LD BC,(ZX_VARS.OPER_DISK - 1)
; LD A,(ZX_VARS.OPER_DISK)
; LD B,A
; XOR A
;LD E,A
LD C,BIOS.SET_DISK_REDIR
JP EXP_FNS
.init: ;CALL CORRECT_CUR_DIR
DI
LD BC,SLOT3
IN B,(C)
;LD C,A
LD A,SYS_PAGE
OUT (SLOT3),A
;
LD E,DRIVE_CODES.TRDOS.HDD
LD A,(SYS_PAGE.CURRENT_DIR_DRIVE_COPY)
CP #FF
SCF
JR Z,.skip
;
CP E
JR C,.skip
LD (SYS_PAGE.CURRENT_DIR_DRIVE),A
;
AND #0F
; !TEST
OUT (C),B
;
PUSH DE
LD C,BIOS.HDD_PART
CALL EXP_FNS
POP DE
JR C,CHOOSE_HDD.error
;
LD C,BIOS.SET_DISK_REDIR
JP EXP_FNS
;
;LD (SYS_PAGE.CURRENT_HDD),A
;
;
;.skip: LD A,C
; OUT (SLOT3),A
.skip: OUT (C),B
;
PUSH DE
LD C,BIOS.HDD_INIT
CALL EXP_FNS
POP DE
JP C,HDD_PROG_E
;
; LD BC,(ZX_VARS.OPER_DISK - 1)
; LD A,(ZX_VARS.OPER_DISK)
; LD B,A
; XOR A
;LD E,A
LD C,BIOS.SET_DISK_REDIR
JP EXP_FNS
;[x] 29/01/2024
;¢ë室: A: bit1 - Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
@ -137,7 +154,7 @@ CHOOSE_HDD:
SUB "0"
OR C
;
PUSH AF
.part: PUSH AF
LD C,BIOS.HDD_PART
CALL EXP_FNS
POP BC

View File

@ -129,23 +129,22 @@ MSDOS_NEXT_FL:
;**********************************
MSDOS_CAT:
PUSH DE
PUSH DE
CALL AUTO_1D97 ; CLS
CALL OPEN_CH2
LD A,"\r"
RST #10
POP DE ; <E28098>ŽŠ€ ŹŽ‘‹… CAT
CAT_SPACES:
LD A,(DE)
CP " "
JR NZ,CAT_NO_SPACE
INC DE
JR CAT_SPACES
CAT_NO_SPACE:
CP "\r"
JR NZ,CAT_ALL
LD DE,CAT_FILES
LD A,"\r"
RST #10
POP DE ; <E28098>ŽŠ€ ŹŽ‘‹… CAT
.loop: LD A,(DE)
CP " "
;JR NZ,CAT_NO_SPACE
INC DE
JR Z,.loop
DEC DE
;CAT_NO_SPACE:
CP "\r"
JR NZ,CAT_ALL
LD DE,CAT_FILES
CAT_ALL:
; CALL MSDOS_FIND_FILE
CALL MSDOS_1ST_FL

View File

@ -34,7 +34,7 @@ INIT_RMD:
RAMD_FAT_PROG:
CALL AUTO_1D97 ; CLS
CALL OPEN_CH2
LD HL,SYS_PAGE.RAMD_FAT
LD HL,SYS_PAGE.RAM_TABLE
RAMD_F_L1:
DI
IN A,(SLOT3)

View File

@ -190,7 +190,7 @@ MSD_R_W_LOOP:
LD A,SYS_PAGE
OUT (SLOT2),A
LD A,(ZX_VARS.MED_START)
LD HL,SYS_PAGE.RAMD_FAT-#4000
LD HL,SYS_PAGE.RAM_TABLE-#4000
LD L,A
LD L,(HL)
LD A,C

View File

@ -715,7 +715,7 @@ INIT_SYS_ALL:
LD DE,CNF_0
LD (CONFIG_DE-4000h),DE
LD HL,TASK_DATA-4000h ; 㡨âì ¢á¥ § ¤ ç¨ ;SYS_PAGE.CURRENT_TASK
LD HL,TASK_DATA-4000h ; 㡨âì ¢á¥ § ¤ ç¨ ;SYS_PAGE.CURRENT_TASK.ID
LD DE,TASK_DATA+1-4000h
LD BC,0FFH
LD (HL),0

View File

@ -215,7 +215,7 @@ HD_RD_CONT2:
LD A,SYS_PAGE
OUT (SLOT3),A
EX AF,AF'
LD HL,SYS_PAGE.RAMD_FAT
LD HL,SYS_PAGE.RAM_TABLE
LD L,A
LD A,(HL)
OUT (SLOT3),A
@ -315,7 +315,7 @@ HD_WR_LOOP:
LD A,SYS_PAGE
OUT (SLOT3),A
EX AF,AF'
LD HL,SYS_PAGE.RAMD_FAT
LD HL,SYS_PAGE.RAM_TABLE
LD L,A
LD A,(HL)
OUT (SLOT3),A