ZX-SP-ROMs/TRDOS/TR_MSD_4.ASZ
Anatoliy Belyanskiy 4ff08eb365 ...
2024-01-29 00:21:15 +10:00

101 lines
1.3 KiB
Plaintext

HDD_SET:;!TEST
.loop: LD A,(DE)
INC DE
CP ' '
JR Z,.loop
CP #0D
JR Z,.init
;
DEC DE
DEC DE
JP CHOOSE_HDD
;
.init: ;!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 A,(ZX_VARS.OPER_DISK)
LD B,A
XOR A
LD C,BIOS.HDD_TO_DRV
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
JP EXP_FNS
;CALL EXP_FNS
;EI
;RET
;
;[x] 29/01/2024
;¢ë室: A: bit1 - Primary/Secondary, bit0 - master/slave, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
CHOOSE_HDD:
PUSH DE
LD A,(ZX_VARS.OPER_DISK)
LD C,BIOS.GET_DRV_ST
CALL EXP_FNS
POP DE
JR C,.error
AND #40 ;!HARDCODE HDD
CALL Z,.setUp_HDD
;
.loop: LD A,(DE)
INC DE
CP ' '
JR Z,.loop
LD A,(DE)
CP #0D
JR Z,.error
.cont: ; ­®¬¥à à §¤¥« 
;INC DE
LD A,(DE)
CP "4"
JR NC,.error
CP "0"
JR C,.error
SUB "0"
RLA
RLA
LD C,A
; ; master/slave
; DEC DE
; LD A,(DE)
; CP "2"
; JR NC,.error
; CP "0"
; JR C,.error
; SUB "0"
; RLA
; OR C
; 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
;
LD C,BIOS.HDD_PART
CALL EXP_FNS
RET NC
;
.error: LD HL,MSG_3
JP ERR_EXIT
;
.setUp_HDD:
LD A,(ZX_VARS.OPER_DISK)
LD B,A
XOR A
LD C,BIOS.HDD_TO_DRV
PUSH DE
CALL EXP_FNS
POP DE
RET
;