Erkennung des Chameleon 64

Aus C64-Wiki
Zur Navigation springenZur Suche springen

;------------------------------------------------------------
; Chameleon 64 Detection
;------------------------------------------------------------
;
; [/] 26. March 2011 , M. Sachse http://www.cbmhardware.de
;
; Detects Chameleon 64 in C64 Emulation and with C64 as Cartridge
;
;------------------------------------------------------------

*= $0800
!to "ch64_detect.prg",cbm
!byte $00,$0c,$08,$0a,$00,$9e,$32,$30,$36,$34,$00,$00,$00,$00


ch64_magic = $d0fe
temp       = $0a
bsout      = $ffd2
vic        = $d018

*=$0810
;-----------------------------------------------------
; detect Chameleon 64
;-----------------------------------------------------
              lda #$17
              sta vic        
              ldx #$ff
              lda #$2a  
              sta ch64_magic
              lda ch64_magic
              sta temp
              stx ch64_magic
              inx
              cmp #$01
              beq c64_ch64
              cmp #$a1
              beq ch64
              cmp #$ff
              beq goon
-             lda nothing,x   
              jsr bsout     
              inx           
              cpx #$28
              bne  -
              rts
;-----------------------------------------------------
c64_ch64:     
              lda chc64,x   
              jsr bsout     
              inx           
              cpx #$28
              bne c64_ch64 
              beq goon
;-----------------------------------------------------
ch64:     
              lda cham,x   
              jsr bsout     
              inx           
              cpx #$28
              bne ch64 
;-----------------------------------------------------

                   
goon: 
              rts


cham:    !tx " cHAMELEON c64 eMULATION DETECTED !     "
chc64:   !tx " c64 AND cHAMELEON 64 DETECTED !        "
nothing: !tx " sORRY, dETECTION WAS FAULTY !          "