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
|
||||
|
||||
|
||||
;!!!!!!!!!!!!!!!!!!!!!!
|
||||
; !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
|
||||
MEMMAP2 EQU TEMP ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256
|
||||
TPOINTD EQU TEMP-32
|
||||
@ -681,13 +636,14 @@ INFO_MESSAGE: ;!FIXIT
|
||||
;CALL ScreenPOS.LOCAT
|
||||
CALL LP_SET_PLACE
|
||||
|
||||
CALL TSETUP
|
||||
CALL TSETUP ;!TODO ¬®¦¥â ¯¨åãâì ¥ñ ¯à¥àë¢ ¨ï?
|
||||
|
||||
CALL AUTODET
|
||||
CALL CONFIGURE_IDE_DRIVES.START
|
||||
CALL CTRLKEY
|
||||
LD A,B
|
||||
AND #10
|
||||
JR NZ,ABOOT
|
||||
|
||||
CALL TSETUP
|
||||
|
||||
|
||||
@ -742,7 +698,7 @@ TSETUP:
|
||||
AND A
|
||||
SBC HL,DE
|
||||
JR NZ,TSETUP
|
||||
POP HL
|
||||
POP HL ; ã¡¨à ¥¬ «¨è¥¥
|
||||
JP EXIT_SETUP
|
||||
CSETUP: XOR A
|
||||
LD (ITEM_Restore),A
|
||||
@ -1115,226 +1071,6 @@ NOFDD1:
|
||||
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
|
||||
LD BC,#00FF
|
||||
XOR A
|
||||
@ -1454,20 +1190,6 @@ PRNTIME:
|
||||
OUT (SLOT3),A
|
||||
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:
|
||||
ADD HL,HL
|
||||
ADD HL,HL
|
||||
|
||||
@ -603,16 +603,16 @@ PITEM: LD E,(HL) ; x-coordinate
|
||||
ENDIF
|
||||
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
|
||||
|
||||
; <20>¥ ¯®àâ¨â HL
|
||||
G_VALUE:
|
||||
PUSH BC
|
||||
LD A,C
|
||||
CALL READCMS
|
||||
POP BC
|
||||
AND B
|
||||
RRLPX:
|
||||
RRCA
|
||||
.loop: RRCA
|
||||
RRC B
|
||||
JR NC,RRLPX
|
||||
JR NC,.loop
|
||||
RLCA
|
||||
RET
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user