Jag håller på, åter igen, att försöka mig på assembler programmering på C64 och misstänker att jag tänker fel när jag nu kört fast.
Jag försöker rita upp en "starfield" som scrollar med hjälp av att rita en punkt på skärmen.
"Mjukscroll" försöker jag få fram genom att kolla rasters.
Jag är som sagt helt grön på det här så jag har antagligen tänkt fel i koden nedan för när jag nu kompilerar efter att ha lagt till nya rader så får jag följande fel:
starfield.asm (67): error: Branch out of range (-133 bytes).
Koden:
- Kod: Markera allt
processor 6502
org $1000
lda #$01 ;set color number to 0 = black.
sta $d020 ;set border color to 0 = black.
lda #$00
sta $d021 ;set background color to 0 = black.
jsr $e544 ;clear the screen.
reset:
ldy #$09
sty $07e9
ldx #$00
stx $07e8
stx $07ea
starfield:
ldx $07ea
lda star,x
ldx $07e8
sta $0400,x
sta $040a,x
sta $0414,x
sta $041e,x
sta $04cd,x
sta $04d7,x
sta $04e1,x
sta $0590,x
sta $059a,x
sta $05a4,x ;Rad som är nyttillagd. Innan denna rad fungerade det.
lda #$0b
sta $d800,x
sta $d80a,x
sta $d814,x
sta $d81e,x
sta $d8cd,x
sta $d8d7,x
sta $d8e1,x
sta $d990,x
sta $d99a,x
sta $d9a4,x ;Rad som är nyttillagd. Innan denna rad fungerade det.
dex
lda #$00
sta $d800,x
sta $d80a,x
sta $d814,x
sta $d81e,x
sta $d8cd,x
sta $d8d7,x
sta $d8e1,x
sta $d990,x
sta $d99a,x
sta $d9a4,x ;Rad som är nyttillagd. Innan denna rad fungerade det.
ldx $07e8
inx
stx $07e8
ldy #$00
rastercheck:
lda $d012
cmp #$ff
bne rastercheck
iny
cpy #$10
bne rastercheck
ldx $07e8
cpx $07e9
bne starfield
dex
lda #$00
sta $d800,x
sta $d80a,x
sta $d814,x
sta $d81e,x
sta $d8cd,x
sta $d8d7,x
sta $d8e1,x
sta $d990,x
sta $d99a,x
sta $d9a4,x ;Rad som är nyttillagd. Innan denna rad fungerade det.
ldx #$00
stx $07e8
jmp starfield
star .byte "."
Tänker jag helt galet när jag kör på i denna riktningen?

Mvh.
Christian