Zasadniczo chodziło mi o szybkie przepisanie obrazka z jednego obszaru do drugiego, gdzie umownie jest ramka wysyłana do wyświetlacza. Oczywiście przepisywanie całego obrazka nie ma sensu bo można go wysłać od razu do OLED-a ale.. jakbym chciał sobie cosik na nim jesczze narysować lub napisać to fajnie jest robić to w buforze.. przed wysłaniem. Stąd też mam dwa zdefiniowane obszary z ich adresami zapisanymi na stronie zerowej:
lda #<PACMAD1
sta src
lda #>PACMAD1
sta src+1
;
lda #<SCREEN
sta dst
lda #>SCREEN
sta dst+1
Wykorzystując Twój kod:
pic2frame:
ldy #$00
ldx #$20
p2floop1:
lda (src),y
sta (dst),y
jsr lcd_write_data
iny
bne p2floop1
inc src+1
inc dst+1
dex
bne p2floop1
rts
dorzuciłem jeszcze skok do procedury wysyłającej dane od razu do wyświetlacza... jednak coś nie bangla...
;lcd_write_data
; A - data to send
lcd_write_data:
sta OLED_DATAPORT ; set command
pha
lda #$ff
and #OLED_CS_N
sta OLED_CTRLPORT ; set chip enabled
and #OLED_WR_N
sta OLED_CTRLPORT ; send data
ora #OLED_WR
sta OLED_CTRLPORT
ora #OLED_CS
sta OLED_CTRLPORT
pla
rts
Jak widać procka modyfikuje tylko akumulator (zresztą zachowuję go na wszelki wypadek)
I jeszcze jak to robiłem by działało:
ldx #$00
pac0 lda PACMAD1,x
jsr lcd_write_data
inx
cpx #$00
bne pac0
pac2 lda PACMAD1+$0100,x
jsr lcd_write_data
inx
cpx #$00
bne pac2
...
...
pac60 lda PACMAD1+$1e00,x
jsr lcd_write_data
inx
cpx #$00
bne pac60
Wysyłając dane w ten sposób wszystko bangla prawidłowo...
https://systemembedded.eu/ ...
https://www.youtube.com/watch?v=GwS7Es1x6mw""Ja bardzo przepraszam, ale podejrzenia panów są całkowicie bezpodstawne. Ja niczym nie handluję. Ta pani przyszła do mnie w tym Pancake-u i w nim wychodzi.""
ABBUC Member #319. Preferowana forma kontaktu:
email