以下は、Commodore 64 でのメモリ コピーの自己修正ルーチンです。
char codes
テーブルにandを書きnumber of repeats
、このルーチンで screen_ram を埋めました。
最適化の提案を探しています。この場合、私の優先事項はメモリです。
memCopy:
sourceAddress=*+1 ; mark self modifying addrres
fetchNewData:
lda data_table ; read char value into A
ldx data_table+1 ; read repeat value into x
inc sourceAddress
inc sourceAddress
cpx #00 ; if X=0
beq end ; finish copying
destination=*+1
- sta SCREEN_RAM
inc destination
dex
bne -
jmp fetchNewData
end:
rts
; data format: <char>,<number of repeats>,[<char>,<number of repeats>,...],00,00
data_table:
!by 01,03,02,02,......,00,00