mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-15 09:21:45 +03:00
248 lines
3.5 KiB
Plaintext
248 lines
3.5 KiB
Plaintext
File_Start DEFL $
|
|
DISPLAY "===================================================="
|
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
|
|
|
HDD_PROG:
|
|
;!TEST 06/01/2024 ã¡¨à ¥¬ «¨è¨¥ ⥫®¤¢¨¦¥¨ï
|
|
;LD C,BIOS.HDD_INIT and #BF
|
|
;CALL HD_CMD
|
|
LD C,BIOS.HDD_INIT
|
|
CALL EXP_FNS
|
|
;
|
|
JP C,HDD_PROG_E
|
|
LD HL,SYS_PAGE.HD_IDF_ADR.ModelNum
|
|
LD B,32
|
|
HDD_PROG_L:
|
|
DI
|
|
IN A,(SLOT3)
|
|
LD D,A
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT3),A
|
|
LD A,L
|
|
XOR 1
|
|
LD L,A
|
|
LD C,(HL)
|
|
LD A,L
|
|
XOR 1
|
|
LD L,A
|
|
INC HL
|
|
LD A,D
|
|
OUT (SLOT3),A
|
|
; RET_PAGE3
|
|
EI
|
|
LD A,C
|
|
PUSH BC
|
|
RST #10
|
|
POP BC
|
|
DJNZ HDD_PROG_L
|
|
;!TEST 06/01/2024 ã¡¨à ¥¬ «¨è¨¥ ⥫®¤¢¨¦¥¨ï
|
|
;LD C,BIOS.HDD_RECAL and #BF
|
|
;CALL HD_CMD
|
|
LD C,BIOS.HDD_RECAL
|
|
CALL EXP_FNS
|
|
;
|
|
JP NC,AUTO_03E1
|
|
|
|
HDD_ERROR:
|
|
CALL PRINT_HEX_A
|
|
LD HL,HD_TX
|
|
JP AUTO_03E4
|
|
|
|
; JP AUTO_03E1
|
|
|
|
HDD_PROG_E:
|
|
LD HL,HD_TX2
|
|
JP AUTO_03E4
|
|
|
|
;
|
|
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
|
|
;
|
|
; [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
|
|
|
|
;[x] 29/01/2024
|
|
;¢ë室: A: bit1 - Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
|
|
CHOOSE_HDD:
|
|
.loop: LD A,(DE)
|
|
INC DE
|
|
CP " "
|
|
JR Z,.loop
|
|
LD A,(DE)
|
|
CP "\r"
|
|
JR Z,.error
|
|
; ®¬¥à à §¤¥«
|
|
LD A,(DE)
|
|
CP "4"
|
|
JR NC,.error
|
|
CP "0"
|
|
JR C,.error
|
|
SUB "0"
|
|
RLA
|
|
RLA
|
|
LD C,A
|
|
; Primary/Secondary, master/slave
|
|
DEC DE
|
|
LD A,(DE)
|
|
CP "4"
|
|
JR NC,.error
|
|
CP "0"
|
|
JR C,.error
|
|
SUB "0"
|
|
OR C
|
|
;
|
|
PUSH AF
|
|
LD C,BIOS.HDD_PART
|
|
CALL EXP_FNS
|
|
POP BC
|
|
JR C,.error
|
|
;
|
|
;
|
|
;CALL RESTORE_CURRENT_DIR
|
|
IN A,(SLOT3)
|
|
EX AF,AF'
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT3),A
|
|
LD A,(SYS_PAGE.CURRENT_DIR_DRIVE)
|
|
CP #FF
|
|
JR Z,.skip
|
|
LD (SYS_PAGE.CURRENT_DIR_DRIVE_COPY),A
|
|
XOR A
|
|
DEC A
|
|
LD (SYS_PAGE.CURRENT_DIR_DRIVE),A
|
|
.skip: EX AF,AF'
|
|
OUT (SLOT3),A
|
|
;
|
|
;
|
|
XOR A
|
|
LD C,A ; ®¡ã«¨âì C
|
|
LD A,B
|
|
;OR #40
|
|
LD B,A
|
|
;
|
|
; PUSH AF
|
|
; LD A,(ZX_VARS.OPER_DISK)
|
|
; LD C,BIOS.GET_DRV_ST
|
|
; CALL EXP_FNS
|
|
; POP BC
|
|
; JR C,.error
|
|
; ;
|
|
; AND #40 ;!HARDCODE HDD
|
|
; LD C,A ; ®¡ã«¨âì C
|
|
; LD A,B
|
|
; RET NZ
|
|
;
|
|
PUSH BC
|
|
LD BC,(ZX_VARS.OPER_DISK - 1)
|
|
; LD B,A
|
|
; XOR A
|
|
LD C,BIOS.HDD_TO_DRV
|
|
CALL EXP_FNS
|
|
POP AF
|
|
RET
|
|
;
|
|
.error: ;AND %1101'1111
|
|
;CP "*"
|
|
;JR Z,.set_from_sys_page
|
|
LD HL,MSG_3
|
|
JP ERR_EXIT
|
|
;
|
|
; .setUp_HDD:
|
|
; PUSH BC
|
|
; LD A,(ZX_VARS.OPER_DISK)
|
|
; LD B,A
|
|
; XOR A
|
|
; LD C,BIOS.HDD_TO_DRV
|
|
; CALL EXP_FNS
|
|
; POP BC
|
|
; RET
|
|
;
|
|
;.set_from_sys_page:
|
|
; !!!
|
|
|
|
|
|
; [x] new tr-hdd
|
|
RESTORE_CURRENT_DIR:
|
|
PUSH AF
|
|
;
|
|
LD C,BIOS.GET_DISK_REDIR
|
|
CALL EXP_FNS
|
|
;CP #40
|
|
;JR C,.exit_Res_Dir
|
|
;AND #0F
|
|
LD H,A
|
|
;
|
|
IN A,(SLOT3)
|
|
EX AF,AF'
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT3),A
|
|
;
|
|
LD A,(SYS_PAGE.CURRENT_DIR_DRIVE)
|
|
CP H
|
|
JR NZ,.exit_Res_Dir
|
|
|
|
LD HL,(SYS_PAGE.CURRENT_DIR_SEC_L)
|
|
LD DE,(SYS_PAGE.CURRENT_DIR_SEC_H)
|
|
LD A,H
|
|
OR L
|
|
OR D
|
|
OR E
|
|
JR Z,.exit_Res_Dir
|
|
;
|
|
LD (SYS_PAGE.MSD_CAT_SEC),HL
|
|
LD (SYS_PAGE.MSD_CAT_SEC2),DE
|
|
.exit_Res_Dir:
|
|
EX AF,AF'
|
|
OUT (SLOT3),A
|
|
POP AF
|
|
RET
|
|
;
|
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
|
DISPLAY "TR_HDD_4.ASZ size: ",/A,$-File_Start
|
|
DISPLAY "====================================================" |