@ -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 PP IDE_PRTPREFIX
PRTS ( " SIG=0x$" )
LD BC ,( HB_WRKBUF )
CALL PRTHEXWORD
# ENDIF
;
LD BC , $ 848 A ; STANDARD CF CARD SIGNATURE
CALL PPIDE_INITDEV000 ; TEST & SET
LD BC , $ 044 A ; 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 , $ 848 A ; STANDARD CF CARD SIGNATURE %1000 1111 1000 1010
CALL PPIDE_INITDEV000 ; TEST & SET
LD BC , $ 045 A ; ALT SIG FOR CF
LD BC , $ 044 A ; 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