|
|
|
@ -1246,19 +1246,31 @@ IDE_INITDEV00: |
|
|
|
CALL DUMP_BUFFER ; DUMP IT IF DEBUGGING |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
XOR A |
|
|
|
LD (IY+IDE_MED),0 ; CLEAR FLAGS |
|
|
|
|
|
|
|
; DETERMINE IF CF DEVICE |
|
|
|
LD HL,HB_WRKBUF ; FIRST WORD OF IDENTIFY DATA HAS CF FLAG |
|
|
|
LD A,$8A ; FIRST BYTE OF MARKER IS $8A |
|
|
|
CP (HL) ; COMPARE |
|
|
|
JR NZ,IDE_INITDEV1 ; IF NO MATCH, NOT CF |
|
|
|
INC HL |
|
|
|
LD A,$84 ; SECOND BYTE OF MARKER IS $84 |
|
|
|
CP (HL) ; COMPARE |
|
|
|
JR NZ,IDE_INITDEV1 ; IF NOT MATCH, NOT CF |
|
|
|
SET 0,(IY+IDE_MED) ; SET FLAGS BIT FOR CF MEDIA |
|
|
|
; |
|
|
|
; DETERMINE IF CF DEVICE BY TESTING FOR CF CARD SIGNATURES |
|
|
|
; IN THEORY, THERE ARE SOME OTHER POSSIBLE VARIATIONS, BUT |
|
|
|
; THEY ARE NOT RECOMMENDED BY THE CF CARD SPEC AND MIGHT |
|
|
|
; OVERLAP WITH "REAL" HARD DISK SIGNATURES. I HAVE NEVER |
|
|
|
; SEEN A CF CARD THAT DID NOT USE ONE OF THE BELOW. |
|
|
|
; CREDIT TO LASZLO SZOLNOKI |
|
|
|
LD BC,$848A ; STANDARD CF CARD SIGNATURE |
|
|
|
CALL IDE_INITDEV000 ; TEST & SET |
|
|
|
LD BC,$044A ; ALT SIG FOR NON-REMOVABLE |
|
|
|
CALL IDE_INITDEV000 ; TEST & SET |
|
|
|
LD BC,$0040 ; ALT SIG FOR NON-REMOVABLE |
|
|
|
CALL IDE_INITDEV000 ; TEST & SET |
|
|
|
JR IDE_INITDEV1 ; CONTINUE INIT |
|
|
|
; |
|
|
|
IDE_INITDEV000: |
|
|
|
; CHECK IF FIRST WORD OF IDENTIFY DATA MATCHES VALUE IN BC |
|
|
|
; AND SET CF FLAG IF SO |
|
|
|
LD HL,(HB_WRKBUF) ; FIRST WORD OF IDENTIFY DATA |
|
|
|
OR A ; CLEAR CARRY |
|
|
|
SBC HL,BC ; COMPARE |
|
|
|
RET NZ ; ABORT IF NOT EQUAL |
|
|
|
SET 0,(IY+IDE_MED) ; ELSE SET FLAGS BIT FOR CF MEDIA |
|
|
|
RET ; AND RETURN |
|
|
|
; |
|
|
|
IDE_INITDEV1: |
|
|
|
; DETERMINE IF LBA CAPABLE |
|
|
|
|