Загрузка...

6502 Loop Zeropage + Lookup Tables (LUT)

; riempire l'intero schermo del Commodore 64 scrivendo il carattere 'A'
* = $0801
!basic Entry ; Crea una riga BASIC con il SYS verso l'etichetta "Entry"
Entry:
zp_dest = $FB

LDX #$0
loop_esterno: ; righe
lda row_lo, x ; inizializza il puntatore in zero page
sta zp_dest
lda row_hi, x
sta zp_dest+1

LDY #$27 ; Imposta Y all'ultima colonna valida (39)
loop_interno: ; colonne
LDA #$01 ; Carattere 'A'
STA (zp_dest), y ; Scrive dalla posizione 39 a scendere fino alla 0
DEY ; Decrementa Y
BPL loop_interno ; Branch on Plus. Esce quando Y passa da $00 a $FF

; Aggionra il puntatore per la riga successiva
inx
cpx #25
BNE loop_esterno

JMP *
RTS

row_lo:
!byte $00,$28,$50,$78,$a0,$c8,$f0,$18,$40,$68,$90,$b8,$e0,$08,$30,$58,$80,$a8,$d0,$f8,$20,$48,$70,$98,$c0
row_hi:
!byte $04,$04,$04,$04,$04,$04,$04,$05,$05,$05,$05,$05,$05,$06,$06,$06,$06,$06,$06,$06,$07,$07,$07,$07,$07

Per varianti sulla medesima routine, cfr.:
https://youtu.be/72a1AeW4bIg
#commodore64 #retrocomputing #programming #assembly #c64 #6502

Видео 6502 Loop Zeropage + Lookup Tables (LUT) канала xxfiis
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять