a CHAR_TAB 2. sora az a CHAR_TAB 1. sora + 128 byte.
Hát persze, mennyi is lehetne, valahogy belebotlottam párszor már a 128-as számba EP-n...
Kicsit cseles, mert az első karakter a mátrixban (nem a filmben) nem a szóköz, pedig a kódtáblázatban ez az első. A bekarikázott C betű az első, innen a basic kódtáblázat szerint halad sorban, majd mikor a végére ér, akkor jön a szóköz, és onnan megy tovább szépen.
Az előzőek alapján egy adott karakter átdefiniálása direkte a memóriában:
SPOKE 255,CHAR_TAB+x+(128*y),z
x értéke attól függ, melyik karaktert akarjuk piszkálni (0 a bekarikázott C betű, 32 a szóköz, 65 a nagy A betű, 1 az alt+a;
y értéke attól függ, az adott karakter melyik sora a soros (0 az első sor, 8 a legalsó);
z értéke attól függ, mit akarok az adott karakter adott sorába tenni (0 semmi nincs, 255 minden van).
De SPEEK-kel le is kérdezhető adott karakter adott sora. Innen már magától értetődő a megoldás, a valamivel nagyobb mátrixkódú karakterek pixelsorait oda kell spoke-olni a valamivel kisebb mátrixkódú karakterek soraira:
160 FOR X=1 TO 26
170 FOR Y=0 TO 8
180 SPOKE 255,CHAR_TAB+X+(128*Y),SPEEK(255,CHAR_TAB+64+X+(128*Y))
190 NEXT Y
200 NEXT X
Az X azért megy 1-től 26-ig, mert 26 betű van az angol ábécében. Az altos és shiftes nagybetűk sorban jönnek egymás után, csak 64 bájttal odébb vannak.
Jó ez a spoke. Még jobb is, mint a set character, mert ha egy karakternek csak egyetlen sorát akarnánk megváltoztatni, a set characterrel nem lehetne.