Basic Listing
Verfasst: 14.09.2021 09:08
was für regnerische Tage..
Code: Alles auswählen
10 POKE 106,PEEK(106)-4
20 CB=PEEK(106)
30 GRAPHICS 0
40 CHRSET = CB*256
50 DIM CT(16)
60 FOR I=0 TO 15: CT(I)=17*I:NEXT I
70 FOR I=0 TO 15
80 FOR J=0 TO 7
90 POKE CHRSET+I*8+J,CT(I)
100 NEXT J: NEXT I
110 SCREEN=PEEK(88)+PEEK(89)*256
120 FOR I=0 TO 15: POKE SCREEN+I,I:NEXT I
130 POKE 756,CB
140 POKE 623,192
150 POKE 712,8
160 GOTO 160
Code: Alles auswählen
pha
lda #FONTDATA_HI
sta WSYNC
sta FONTBASE_HW ;FONTBASE Hardware-Register von 756
lda #192 ; Gr.11
sta %GPRIOR ; HW-Register von 623
sta WSYNC
lda #64 ; Gr.9
sta %GPRIOR ; HW-Register von 623
sta WSYNC
lda #192 ; Gr.11
sta %GPRIOR ; HW-Register von 623
sta WSYNC
lda #64 ; Gr.9
sta %GPRIOR ; HW-Register von 623
sta WSYNC
lda #192 ; Gr.11
sta %GPRIOR ; HW-Register von 623
sta WSYNC
lda #64 ; Gr.9
sta %GPRIOR ; HW-Register von 623
sta WSYNC
lda #192 ; Gr.11
sta %GPRIOR ; HW-Register von 623
sta WSYNC
lda #64 ; Gr.9
sta %GPRIOR ; HW-Register von 623
pla
rti
Code: Alles auswählen
void create256ColorFont(unsigned char fontbase) {
int i, j, ad=fontbase << 8; // ad=fontbase*256
for(i=0; i<16; i++) { // for i=0 to 15
for(j=0; j<16; j+=2) { // for j=0 to 15
POKE(ad , (i<<4) | i); // poke ad, i*16
POKE(ad+1, (j<<4) | j); // poke ad+1,j*16
memcpy((void*)(ad+2), (void*)ad, 6); // move ad,ad+2,6
ad+=8; // ad=ad+8
} // next j
} // next i
}
Code: Alles auswählen
void pokePixel(int ad, unsigned char value) {
POKE(ad, value&1 ? 255^(value>>1) : value>>1);
}
Code: Alles auswählen
if value & 1
POKE ad, 255-(int(value/2))
else
POKE ad,value/2
endif