SuperCPU Tutorial Listings - Part 1
Listing 1.1 ; All of this is still Turbo Assembler Source Code which you can use on non-scpu programs aswell! *= $1000 sei sed lda #$99 clc adc #$01 bmi no65816 cld lda #<found ldy #>found jsr $ab1e cli rts no65816 cld lda #<notfound ldy #>notfound jsr $ab1e cli rts found .text "65816 detected!" .byte 0 notfound .text "6510 detected!" .byte 0
Listing 1.2 *= $1000 lda $d0bc asl a bcs nocpu lda #<found ldy #>found jsr $ab1e rts nocpu lda #<notfound ldy #>notfound jsr $ab1e rts found .text "super-cpu detected!" .byte 0 notfound .text "normal c64 detected!" .byte 0
Listing 1.3 *= $1000 lda $d0b8 asl a asl a bcc turbo lda #<slow ldy #>slow jsr $ab1e rts turbo lda #<fast ldy #>fast jsr $ab1e rts slow .text "1 mhz mode" .byte 0 fast .text "20 mhz mode" .byte 0
Listing 1.4 *= $1000 start sei lda #$00 sta $d020 sta $d021 w0 lda #$33 cmp $d012 bne *-3 lda $d011 asl a bcs w0 sta $d07a ; Switch to 1 MHZ jsr testloop sta $d07b ; Switch to 20 MHZ jsr testloop sta $d07e ; scpu-registers on sta $d075 ; optimization mode ; mirror only $4000-$8000 sta $d07f ; scpu-registers off jsr testloop sta $d07e ; scpu-registers on sta $d077 ; optimization off sta $d07f ; scpu-registers off jmp start testloop dec $d020 ldx #$00 ; copy transfer lda $3000,x ; $3000-$3300 sta $2000,x ; to $2000 for lda $3100,x ; testing sta $2100,x lda $3200,x sta $2200,x inx bne transfer rts
Assembler Code © by Malte Mundt
Partial translation and cosmetical changes by Count Zero/SCS*TRC