Difference between revisions of "6502 Emulator Example Code"
Chris Tyler (talk | contribs) |
(No difference)
|
Revision as of 12:30, 8 January 2020
This is a collection of simple examples of 6502 code which will run in the emulator.
Fill the Bitmapped Display
lda #$00 ; set pointer at $10 to $0200 sta $10 lda #$02 sta $11 ldx #$06 ; max value for $11 ldy #$00 ; index loop: sta ($10),y ; store colour iny ; increment index bne loop ; branch until overflow inc $11 ; increment hi byte of pointer lda $11 ; load page number as colour cpx $11 ; compare with max value bne loop ; continue if not done rts ; return
Place a Message on the Character Display
define SCREEN $f000 ldy #$00 char: lda text,y beq done sta SCREEN,y iny bne char con e: brk text: dcb "6","5","0","2",32,"w","a","s",32,"h","e","r","e",".",00
Type on the Screen
; let the user type on the first page of character screen ; has blinking cursor! ; backspace works, arrows and ENTER do not next: ldx #$00 idle: inx cpx #$10 bne check lda $f000,y eor #$80 sta $f000,y check: lda $ff beq idle ldx #$00 stx $ff cmp #$08 ; bs bne print lda $f000,y and #$7f sta $f000,y dey jmp next print: sta $f000,y iny jmp next