SuperCPU Tutorial Listings - Part 5
Listing 5.1 ; 65816 ; absolute indexed indirect addressing ; written by Malte Mundt for GO64! £ba $c000 cli ; keep it clear ldx #$00 loop: lda #$00 ; 0 chars sta $c6 ; in keyboard buffer key: lda $c6 ; 1 char in? beq key ; key pressed ? ; the jumpaddress is now taken from ; sprungtab + x jsr (sprungtab,x) inx ; inc x by 2 inx ; next entry jmp loop label1: inc $d020 rts label2: inc $d021 rts label3: jmp $fce2 ; reset sprungtab: £wo label1,label2,label3
Listing 5.2 ; 65816 ; direct page indirect addressing ; written by Malte Mundt for GO64! £ba $c000 sei clc ; native mode xce rep #%00100000 £al ; akku 16 bit lda #$d020 ; $fd becomes $20 sta $fd ; $fe becomes $d0 sep #%00100000 £as ; akku 8 bit lda #$02 ; color red sta ($fd) ; directly, no ,Y ! sec xce ; emulation mode cli rts
Listing 5.3 ; 65816 ; trb und tsb-befehl ; written by Malte Mundt for GO64! £ba $c000 stz $d020 ; switch to black screen stz $d021 lda #testtext jsr $ab1e lda #$0f ; set extended backgr. sta $d023 ; color lda #$0b ; the ext.backgr.col. sta $d024 ; modus is just for testing lda #%01000000 ; bit 6 in $d011 tsb $d011 ; extended backgr. ; color-mode on! stz $c6 ; 0 chars in buffer key: lda $c6 ; key ? beq key lda #%01000000 ; clear bit 6 trb $d011 ; vic back to normal lda #$0e sta $d020 lda #$06 sta $d021 rts testtext: £tx "{CLR-HOME}{BLACK}{RVS-ON}eXtEnDeD BaCkGrOuNd cOlOr" £by 0
Assembler Code © by Malte Mundt
Partial translation and cosmetical changes by Count Zero/SCS*TRC
[ Listings Part 4 ][
Tutorial Part 5 ][ Index ][ Listings
Part 6 ]