2019-06-24 02:32:18 +00:00
|
|
|
;license:MIT
|
|
|
|
;(c) 2018-9 by 4am
|
|
|
|
;
|
|
|
|
; VidHD support functions
|
|
|
|
;
|
|
|
|
|
2019-01-13 23:55:40 +00:00
|
|
|
;------------------------------------------------------------------------------
|
|
|
|
; HasVidHDCard
|
|
|
|
; detect VidHD card by searching for magic bytes across all slots
|
|
|
|
;
|
|
|
|
; in: none
|
|
|
|
; out: C set if VidHD card found in any slot
|
|
|
|
; if card was found, X = #$Cn where n is the slot number of the card
|
|
|
|
; C clear if no VidHD card found
|
|
|
|
; other flags clobbered
|
|
|
|
; A/Y clobbered
|
|
|
|
;------------------------------------------------------------------------------
|
|
|
|
HasVidHDCard
|
2019-10-05 20:40:29 +00:00
|
|
|
ldx #$C7
|
2019-01-13 23:55:40 +00:00
|
|
|
@slotLoop
|
|
|
|
stx @byteLoop+2
|
|
|
|
ldy #$02
|
|
|
|
@byteLoop
|
|
|
|
lda $FD00, y ; SMC (high byte)
|
|
|
|
cmp @kVidHDMagicBytes, y
|
|
|
|
bne @nextSlot
|
|
|
|
dey
|
|
|
|
bpl @byteLoop
|
2019-10-05 20:40:29 +00:00
|
|
|
@found
|
2019-01-13 23:55:40 +00:00
|
|
|
sec ; found
|
|
|
|
rts
|
|
|
|
@nextSlot
|
|
|
|
dex
|
2019-10-05 20:40:29 +00:00
|
|
|
cpx #$C0
|
2019-01-13 23:55:40 +00:00
|
|
|
bne @slotLoop
|
|
|
|
clc ; not found
|
|
|
|
rts
|
|
|
|
@kVidHDMagicBytes
|
2019-06-27 14:55:07 +00:00
|
|
|
!byte $24, $EA, $4C
|