new ide detecting procedures
This commit is contained in:
parent
61457e702e
commit
de46473cc8
File diff suppressed because it is too large
Load Diff
@ -72,51 +72,6 @@
|
|||||||
;FDD EQU #03
|
;FDD EQU #03
|
||||||
|
|
||||||
|
|
||||||
;!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
; !FIXIT ¯à®¢¥à¨âì â ª¨¥ ¦¥ «¨ ¤à¥á CMOS ¢ Settings ¨á¯®«ì§ãîâáï
|
|
||||||
; SM_CYLL EQU #2F
|
|
||||||
; SM_CYLH EQU #30
|
|
||||||
; SM_HEAD EQU #31
|
|
||||||
; SM_SECT EQU #32
|
|
||||||
|
|
||||||
; SS_CYLL EQU #33
|
|
||||||
; SS_CYLH EQU #34
|
|
||||||
; SS_HEAD EQU #35
|
|
||||||
; SS_SECT EQU #36
|
|
||||||
|
|
||||||
; M_CYLL EQU #37
|
|
||||||
; M_CYLH EQU #38
|
|
||||||
; M_HEAD EQU #39
|
|
||||||
; M_SECT EQU #3A
|
|
||||||
|
|
||||||
; S_CYLL EQU #3B
|
|
||||||
; S_CYLH EQU #3C
|
|
||||||
; S_HEAD EQU #3D
|
|
||||||
; S_SECT EQU #3E
|
|
||||||
|
|
||||||
M_CYLL EQU #12
|
|
||||||
M_CYLH EQU #13
|
|
||||||
M_HEAD EQU #14
|
|
||||||
M_SECT EQU #15
|
|
||||||
|
|
||||||
S_CYLL EQU #16
|
|
||||||
S_CYLH EQU #17
|
|
||||||
S_HEAD EQU #18
|
|
||||||
S_SECT EQU #19
|
|
||||||
|
|
||||||
SM_CYLL EQU #37
|
|
||||||
SM_CYLH EQU #38
|
|
||||||
SM_HEAD EQU #39
|
|
||||||
SM_SECT EQU #3A
|
|
||||||
|
|
||||||
SS_CYLL EQU #3B
|
|
||||||
SS_CYLH EQU #3C
|
|
||||||
SS_HEAD EQU #3D
|
|
||||||
SS_SECT EQU #3E
|
|
||||||
|
|
||||||
;!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
|
|
||||||
TEMP EQU #7E00 ; !HARDCODE
|
TEMP EQU #7E00 ; !HARDCODE
|
||||||
MEMMAP2 EQU TEMP ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256
|
MEMMAP2 EQU TEMP ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256
|
||||||
TPOINTD EQU TEMP-32
|
TPOINTD EQU TEMP-32
|
||||||
@ -681,13 +636,14 @@ INFO_MESSAGE: ;!FIXIT
|
|||||||
;CALL ScreenPOS.LOCAT
|
;CALL ScreenPOS.LOCAT
|
||||||
CALL LP_SET_PLACE
|
CALL LP_SET_PLACE
|
||||||
|
|
||||||
CALL TSETUP
|
CALL TSETUP ;!TODO ¬®¦¥â ¯¨åãâì ¥ñ ¯à¥àë¢ ¨ï?
|
||||||
|
|
||||||
CALL AUTODET
|
CALL CONFIGURE_IDE_DRIVES.START
|
||||||
CALL CTRLKEY
|
CALL CTRLKEY
|
||||||
LD A,B
|
LD A,B
|
||||||
AND #10
|
AND #10
|
||||||
JR NZ,ABOOT
|
JR NZ,ABOOT
|
||||||
|
|
||||||
CALL TSETUP
|
CALL TSETUP
|
||||||
|
|
||||||
|
|
||||||
@ -742,7 +698,7 @@ TSETUP:
|
|||||||
AND A
|
AND A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NZ,TSETUP
|
JR NZ,TSETUP
|
||||||
POP HL
|
POP HL ; ã¡¨à ¥¬ «¨è¥¥
|
||||||
JP EXIT_SETUP
|
JP EXIT_SETUP
|
||||||
CSETUP: XOR A
|
CSETUP: XOR A
|
||||||
LD (ITEM_Restore),A
|
LD (ITEM_Restore),A
|
||||||
@ -1115,226 +1071,6 @@ NOFDD1:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
AUTODET:
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD HL,IDE.INIT_TBL_IDE0
|
|
||||||
LD BC,256*(IDE.HDD_INIT_TABLE * 4) + #FF ;R02
|
|
||||||
;CLEAR HDD VARIABLE
|
|
||||||
.FILLIDE:
|
|
||||||
LD (HL),C
|
|
||||||
INC HL
|
|
||||||
DJNZ .FILLIDE
|
|
||||||
EX AF,AF'
|
|
||||||
OUT (SLOT3),A
|
|
||||||
|
|
||||||
;======== áâ à ï ã¬¥à æ¨ï ¤¨áª®¢! ========
|
|
||||||
; CALL GET_AVAILABLE_STRUCT
|
|
||||||
; LD A,#00
|
|
||||||
; CALL COMMONIDE
|
|
||||||
|
|
||||||
; CALL GET_AVAILABLE_STRUCT
|
|
||||||
; LD A,#01
|
|
||||||
; CALL COMMONIDE
|
|
||||||
|
|
||||||
; CALL GET_AVAILABLE_STRUCT
|
|
||||||
; LD A,#02
|
|
||||||
; CALL COMMONIDE
|
|
||||||
|
|
||||||
; CALL GET_AVAILABLE_STRUCT
|
|
||||||
; LD A,#03
|
|
||||||
; CALL COMMONIDE
|
|
||||||
;==========================================
|
|
||||||
|
|
||||||
LD IY,IDE.INIT_TBL_IDE0
|
|
||||||
XOR A
|
|
||||||
CALL COMMONIDE
|
|
||||||
|
|
||||||
LD IY,IDE.INIT_TBL_IDE1
|
|
||||||
LD A,#01
|
|
||||||
CALL COMMONIDE
|
|
||||||
|
|
||||||
LD IY,IDE.INIT_TBL_IDE2
|
|
||||||
LD A,#02
|
|
||||||
CALL COMMONIDE
|
|
||||||
|
|
||||||
LD IY,IDE.INIT_TBL_IDE3
|
|
||||||
LD A,#03
|
|
||||||
CALL COMMONIDE
|
|
||||||
|
|
||||||
;!TEST save hdd parameters to cmos for "setup" in settings
|
|
||||||
CALL WRITING
|
|
||||||
;
|
|
||||||
CALL ScreenPOS.CRLF
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
;======== áâ à ï ã¬¥à æ¨ï ¤¨áª®¢! ========
|
|
||||||
;GET_AVAILABLE_STRUCT
|
|
||||||
;LD C,SLOT3
|
|
||||||
;IN B,(C)
|
|
||||||
;LD A,SYS_PAGE
|
|
||||||
;OUT (C),A
|
|
||||||
;CALL FIND_AVAILABLE_STRUCT
|
|
||||||
;OUT (C),B
|
|
||||||
;RET
|
|
||||||
;FIND_AVAILABLE_STRUCT
|
|
||||||
;LD IY,IDE0
|
|
||||||
;LD A,(IY+DTYPE_H)
|
|
||||||
;INC A
|
|
||||||
;RET Z
|
|
||||||
;LD IY,IDE1
|
|
||||||
;LD A,(IY+DTYPE_H)
|
|
||||||
;INC A
|
|
||||||
;RET Z
|
|
||||||
;LD IY,IDE2
|
|
||||||
;LD A,(IY+DTYPE_H)
|
|
||||||
;INC A
|
|
||||||
;RET Z
|
|
||||||
;LD IY,IDE3
|
|
||||||
;LD A,(IY+DTYPE_H)
|
|
||||||
;INC A
|
|
||||||
;RET
|
|
||||||
;==========================================
|
|
||||||
|
|
||||||
|
|
||||||
; !HARDCODE § ¬¥¨âì ç¨á« ¬¥âª¨ ¢ í⮩ ¯à®æ¥¤ãà¥
|
|
||||||
COMMONIDE:
|
|
||||||
AND A
|
|
||||||
LD H,A ;SAVE DRIVE NUMBER
|
|
||||||
LD BC,#3011 ;CMOS VALUE
|
|
||||||
LD L,msgStrings.detectIdePrMA
|
|
||||||
JR Z,COMMON2
|
|
||||||
DEC A
|
|
||||||
LD BC,#C011 ;CMOS VALUE
|
|
||||||
LD L,msgStrings.detectIdePrSL
|
|
||||||
JR Z,COMMON2
|
|
||||||
DEC A
|
|
||||||
|
|
||||||
; !HARDCODE § ¬¥¨âì ç¨á« ¬¥âª¨ ¢ í⮩ ¯à®æ¥¤ãà¥
|
|
||||||
LD BC,#3020
|
|
||||||
LD L,msgStrings.detectIdeSecMA
|
|
||||||
JR Z,COMMON2
|
|
||||||
DEC A
|
|
||||||
LD BC,#C020
|
|
||||||
LD L,msgStrings.detectIdeSecSL
|
|
||||||
JR Z,COMMON2
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
|
|
||||||
;0 - AUTODETECT
|
|
||||||
;1 - GETTING FROM SETUP
|
|
||||||
;2 - CD-ROM (ATAPI device)
|
|
||||||
;3 - DISABLED
|
|
||||||
COMMON2:
|
|
||||||
CALL G_VALUE
|
|
||||||
OR A
|
|
||||||
JP Z,AUTODETECT ;AUTODECECT
|
|
||||||
DEC A
|
|
||||||
JP Z,SETUPDETECT ;SETUP
|
|
||||||
DEC A
|
|
||||||
JP Z,IT_IS_CDROM ;CDROM
|
|
||||||
RET ;DON'T CHECK THIS DEVICE
|
|
||||||
|
|
||||||
AUTODETECT:
|
|
||||||
PUSH HL
|
|
||||||
LD A,L ;DETECT MESSAGE
|
|
||||||
CALL POSTMSG
|
|
||||||
CALL ScreenPOS.SUBNAME
|
|
||||||
;
|
|
||||||
EI
|
|
||||||
;
|
|
||||||
POP HL
|
|
||||||
LD A,H ;RESTORE DRIVE NUMBER
|
|
||||||
CALL IDEAUTO
|
|
||||||
IDEJUMPBACK:
|
|
||||||
CALL NC,MODEL
|
|
||||||
LD A,(SKIP)
|
|
||||||
INC A
|
|
||||||
LD A,msgStrings.ideNone
|
|
||||||
JR Z,NOSKIPKEY
|
|
||||||
LD A,msgStrings.ideSkiped
|
|
||||||
NOSKIPKEY:
|
|
||||||
CALL C,POSTMSG
|
|
||||||
CALL ScreenPOS.CRLF
|
|
||||||
RET
|
|
||||||
|
|
||||||
IT_IS_CDROM:
|
|
||||||
PUSH HL
|
|
||||||
LD A,L ;DETECT MESSAGE
|
|
||||||
CALL POSTMSG
|
|
||||||
CALL ScreenPOS.SUBNAME
|
|
||||||
;
|
|
||||||
EI
|
|
||||||
;
|
|
||||||
POP HL
|
|
||||||
LD A,H ;RESTORE DRIVE NUMBER
|
|
||||||
CALL IDE__CD
|
|
||||||
JP IDEJUMPBACK
|
|
||||||
; ????? ¯®á¬®âà¥âì
|
|
||||||
PRIM_MASTER_CMOS_T:
|
|
||||||
DB M_CYLL,M_CYLH,M_HEAD,M_SECT
|
|
||||||
PRIM_SLAVE_CMOS_T:
|
|
||||||
DB S_CYLL,S_CYLH,S_HEAD,S_SECT
|
|
||||||
SEC_MASTER_CMOS_T:
|
|
||||||
DB SM_CYLL,SM_CYLH,SM_HEAD,SM_SECT
|
|
||||||
SEC_SLAVE_CMOS_T:
|
|
||||||
DB SS_CYLL,SS_CYLH,SS_HEAD,SS_SECT
|
|
||||||
|
|
||||||
SETUPDETECT:
|
|
||||||
LD A,H
|
|
||||||
LD IX,PRIM_MASTER_CMOS_T
|
|
||||||
OR A
|
|
||||||
JR Z,SETUPD2
|
|
||||||
;
|
|
||||||
LD IX,PRIM_SLAVE_CMOS_T
|
|
||||||
CP 1
|
|
||||||
JR Z,SETUPD2
|
|
||||||
;
|
|
||||||
LD IX,SEC_MASTER_CMOS_T
|
|
||||||
CP 2
|
|
||||||
JR Z,SETUPD2
|
|
||||||
;
|
|
||||||
LD IX,SEC_SLAVE_CMOS_T
|
|
||||||
SETUPD2:
|
|
||||||
CALL SELECT_IDE
|
|
||||||
LD HL,TEMP
|
|
||||||
LD DE,TEMP+1
|
|
||||||
LD BC,511
|
|
||||||
LD (HL),0
|
|
||||||
LDIR
|
|
||||||
CALL WAITHDD
|
|
||||||
RET C
|
|
||||||
;;
|
|
||||||
LD A,(IX+2) ;M_HEAD
|
|
||||||
CALL READCMS
|
|
||||||
LD (TEMP+3*2),A ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã. HEADS PER TRACK
|
|
||||||
;
|
|
||||||
LD A,(IX+1) ;M_CYLH
|
|
||||||
CALL READCMS
|
|
||||||
PUSH AF
|
|
||||||
;
|
|
||||||
LD A,(IX+0) ;M_CYLL
|
|
||||||
CALL READCMS
|
|
||||||
POP HL
|
|
||||||
LD L,A
|
|
||||||
LD (TEMP+1*2),HL ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã. CYLINDERS
|
|
||||||
;
|
|
||||||
LD A,(IX+3) ;M_SECT
|
|
||||||
CALL READCMS
|
|
||||||
LD (TEMP+6*2),A ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã. SECTOR PER TRACK
|
|
||||||
;
|
|
||||||
;LD A,IDE.Drive.Master
|
|
||||||
;LD BC,IDE.Write.DeviceHead
|
|
||||||
;OUT (C),A
|
|
||||||
LD A,IDE.Device.HDD
|
|
||||||
LD (IDEDEV),A
|
|
||||||
CALL IDESPEC
|
|
||||||
RET
|
|
||||||
|
|
||||||
;ID_BUFFER: BLOCK #100,0 ;!HARDCODE ; !FIXIT 㬥ìè¨âì ¡ãä¥à ¨«¨ ¯¥à¥¥áâ¨?
|
|
||||||
|
|
||||||
PIDNUM: LD HL,memBUFFER.ID
|
PIDNUM: LD HL,memBUFFER.ID
|
||||||
LD BC,#00FF
|
LD BC,#00FF
|
||||||
XOR A
|
XOR A
|
||||||
@ -1454,20 +1190,6 @@ PRNTIME:
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
MODEL: LD HL,TEMP+27*2 ; !TODO ᤥ« âì ç¥à¥§ áâàãªâãàã.
|
|
||||||
LD A,(HL)
|
|
||||||
OR A
|
|
||||||
JR Z,.unknown
|
|
||||||
LD B,20
|
|
||||||
CALL DWPRINT
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
.unknown:
|
|
||||||
LD A,msgStrings.ideUnknown
|
|
||||||
CALL POSTMSG
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
|
|
||||||
PMEMORY:
|
PMEMORY:
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
|
|||||||
@ -603,16 +603,16 @@ PITEM: LD E,(HL) ; x-coordinate
|
|||||||
ENDIF
|
ENDIF
|
||||||
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
|
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
|
||||||
|
|
||||||
|
; <20>¥ ¯®àâ¨â HL
|
||||||
G_VALUE:
|
G_VALUE:
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD A,C
|
LD A,C
|
||||||
CALL READCMS
|
CALL READCMS
|
||||||
POP BC
|
POP BC
|
||||||
AND B
|
AND B
|
||||||
RRLPX:
|
.loop: RRCA
|
||||||
RRCA
|
|
||||||
RRC B
|
RRC B
|
||||||
JR NC,RRLPX
|
JR NC,.loop
|
||||||
RLCA
|
RLCA
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user