|
|
|
@ -209,7 +209,7 @@ PPIDE_CFGTBL: |
|
|
|
#IF (PPIDECNT >= 1) |
|
|
|
; |
|
|
|
PPIDE_DEV0M: ; DEVICE 0, MASTER |
|
|
|
.DB 0 ; DRIVER RELATIVE DEVICE NUMBER (ASSIGNED DURING INIT) |
|
|
|
.DB $FE ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY) |
|
|
|
.DB 0 ; DEVICE STATUS |
|
|
|
.DB 0 ; DEVICE TYPE |
|
|
|
.DB PPIDE_ACC_MAS | (PPIDE0A8BIT & PPIDE_ACC_8BIT) ; UNIT ACCESS FLAGS |
|
|
|
@ -222,7 +222,7 @@ PPIDE_DEV0M: ; DEVICE 0, MASTER |
|
|
|
.DW PPIDE_DEV0S ; PARTNER |
|
|
|
; |
|
|
|
PPIDE_DEV0S: ; DEVICE 0, SLAVE |
|
|
|
.DB 0 ; DRIVER RELATIVE DEVICE NUMBER (ASSIGNED DURING INIT) |
|
|
|
.DB $FE ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY) |
|
|
|
.DB 0 ; DEVICE STATUS |
|
|
|
.DB 0 ; DEVICE TYPE |
|
|
|
.DB (PPIDE0B8BIT & PPIDE_ACC_8BIT) ; UNIT ACCESS FLAGS |
|
|
|
@ -239,7 +239,7 @@ PPIDE_DEV0S: ; DEVICE 0, SLAVE |
|
|
|
#IF (PPIDECNT >= 2) |
|
|
|
; |
|
|
|
PPIDE_DEV1M: ; DEVICE 1, MASTER |
|
|
|
.DB 0 ; DRIVER RELATIVE DEVICE NUMBER (ASSIGNED DURING INIT) |
|
|
|
.DB $FE ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY) |
|
|
|
.DB 0 ; DEVICE STATUS |
|
|
|
.DB 0 ; DEVICE TYPE |
|
|
|
.DB PPIDE_ACC_MAS | (PPIDE1A8BIT & PPIDE_ACC_8BIT) ; UNIT ACCESS FLAGS |
|
|
|
@ -252,7 +252,7 @@ PPIDE_DEV1M: ; DEVICE 1, MASTER |
|
|
|
.DW PPIDE_DEV1S ; PARTNER |
|
|
|
; |
|
|
|
PPIDE_DEV1S: ; DEVICE 1, SLAVE |
|
|
|
.DB 0 ; DRIVER RELATIVE DEVICE NUMBER (ASSIGNED DURING INIT) |
|
|
|
.DB $FE ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY) |
|
|
|
.DB 0 ; DEVICE STATUS |
|
|
|
.DB 0 ; DEVICE TYPE |
|
|
|
.DB (PPIDE1B8BIT & PPIDE_ACC_8BIT) ; UNIT ACCESS FLAGS |
|
|
|
@ -269,7 +269,7 @@ PPIDE_DEV1S: ; DEVICE 1, SLAVE |
|
|
|
#IF (PPIDECNT >= 3) |
|
|
|
; |
|
|
|
PPIDE_DEV2M: ; DEVICE 2, MASTER |
|
|
|
.DB 0 ; DRIVER RELATIVE DEVICE NUMBER (ASSIGNED DURING INIT) |
|
|
|
.DB $FE ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY) |
|
|
|
.DB 0 ; DEVICE STATUS |
|
|
|
.DB 0 ; DEVICE TYPE |
|
|
|
.DB PPIDE_ACC_MAS | (PPIDE2A8BIT & PPIDE_ACC_8BIT) ; UNIT ACCESS FLAGS |
|
|
|
@ -282,7 +282,7 @@ PPIDE_DEV2M: ; DEVICE 2, MASTER |
|
|
|
.DW PPIDE_DEV2S ; PARTNER |
|
|
|
; |
|
|
|
PPIDE_DEV2S: ; DEVICE 2, SLAVE |
|
|
|
.DB 0 ; DRIVER RELATIVE DEVICE NUMBER (ASSIGNED DURING INIT) |
|
|
|
.DB $FE ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY) |
|
|
|
.DB 0 ; DEVICE STATUS |
|
|
|
.DB 0 ; DEVICE TYPE |
|
|
|
.DB (PPIDE2B8BIT & PPIDE_ACC_8BIT) ; UNIT ACCESS FLAGS |
|
|
|
@ -1280,19 +1280,28 @@ PPIDE_INITDEV00: |
|
|
|
; CREDIT TO LASZLO SZOLNOKI |
|
|
|
; |
|
|
|
#IF (PPIDETRACE >= 3) |
|
|
|
CALL IDE_PRTPREFIX |
|
|
|
PRTS("SIG=0x$") |
|
|
|
CALL PPIDE_PRTPREFIX |
|
|
|
PRTS(" SIG=0x$") |
|
|
|
LD BC,(HB_WRKBUF) |
|
|
|
CALL PRTHEXWORD |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
LD BC,$848A ; STANDARD CF CARD SIGNATURE |
|
|
|
CALL PPIDE_INITDEV000 ; TEST & SET |
|
|
|
LD BC,$044A ; ALT SIG FOR CF |
|
|
|
; SEE PAGE 114 OF CF+ & CF SPECIFICATION REV. 3.0 FOR CF CARD |
|
|
|
; SIGNATURE VALUES. ALL OF THE BELOW ARE DOCUMENTED THERE EXCEPT |
|
|
|
; $045A WHICH IS A VALUE DISCOVERED ON A CF<->SD CARD ADAPTER. |
|
|
|
; |
|
|
|
; SIGNATURE $045A IS NOT LISTED IN THE CF SPEC. IT WAS ADDED BECAUSE |
|
|
|
; IT WAS SEEN IN THE WILD ON A CF-SD ADAPTER. HOWEVER IT HAS NOW |
|
|
|
; ALSO BEEN SEEN ON A SPINNING HARD DISK. SINCE IT IS AMBIGUOUS, I |
|
|
|
; WILL CONSIDER IT TO BE A HARD DISK. |
|
|
|
; |
|
|
|
LD BC,$848A ; STANDARD CF CARD SIGNATURE %1000 1111 1000 1010 |
|
|
|
CALL PPIDE_INITDEV000 ; TEST & SET |
|
|
|
LD BC,$045A ; ALT SIG FOR CF |
|
|
|
LD BC,$044A ; ALT SIG FOR CF NON-REMOVABLE %0000 0100 0100 1010 |
|
|
|
CALL PPIDE_INITDEV000 ; TEST & SET |
|
|
|
LD BC,$0040 ; ALT SIG FOR CF NON-REMOVABLE |
|
|
|
;LD BC,$045A ; ?ALT SIG FOR CF NON-REMOVABLE %0000 0100 0101 1010 |
|
|
|
;CALL PPIDE_INITDEV000 ; TEST & SET |
|
|
|
LD BC,$0040 ; ALT SIG FOR CF NON-REMOVABLE %0000 0000 0100 0000 |
|
|
|
CALL PPIDE_INITDEV000 ; TEST & SET |
|
|
|
JR PPIDE_INITDEV1 ; CONTINUE INIT |
|
|
|
; |
|
|
|
@ -1631,8 +1640,10 @@ PPIDE_PRTPREFIX: |
|
|
|
CALL NEWLINE |
|
|
|
PRTS("PPIDE$") |
|
|
|
LD A,(IY+PPIDE_DEV) ; GET CURRENT DEVICE NUM |
|
|
|
ADD A,'0' |
|
|
|
CALL COUT |
|
|
|
CP $FE ; NOT YET ASSIGNED? |
|
|
|
JR Z,PPIDE_PRTPREFIX1 ; SKIP DEV NUM IF SO |
|
|
|
CALL PRTDECB |
|
|
|
PPIDE_PRTPREFIX1: |
|
|
|
CALL PC_COLON |
|
|
|
POP AF |
|
|
|
RET |
|
|
|
|