Generator znaków

From Atariki

Revision as of 17:17, 8 wrz 2023; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

Zestaw definicji czcionek wyświetlanych przez ANTIC w trybach znakowych.

Każdy znak zdefiniowany jest za pomocą 8 następujących po sobie bajtów i definiuje kolejne linie znaku (licząc od góry). Znaki w zestawie uporządkowane są według kodów ekranowych, a nie wg kodów ATASCII.

Sposób interpretacji piksela zależy od trybu znakowego, w którym font zostanie użyty (liczby hex 0..F oznaczają indeks koloru piksela).

1. W trybach 0, 1 i 2 OS pojedynczy bit odpowiada pojedynczemu pikselowi znaku.

    7 6 5 4 3 2 1 0 bit         0 1 2 3 4 5 6 7 piksel
 0  . . . . . . . .          0  0 0 0 0 0 0 0 0    
 1  . . . o o . . .          1  0 0 0 1 1 0 0 0    
 2  . . o o o o . .          2  0 0 1 1 1 1 0 0    
 3  . o o . . o o .          3  0 1 1 0 0 1 1 0    
 4  . o o . . o o .          4  0 1 1 0 0 1 1 0    
 5  . o o o o o o .          5  0 1 1 1 1 1 1 0    
 6  . o o . . o o .          6  0 1 1 0 0 1 1 0    
 7  . . . . . . . .          7  0 0 0 0 0 0 0 0    
bajt                        linia

2. W trybie 3 ANTIC-a pojedynczy bit, analogicznie jak dla trybów 0, 1 i 2 OS, odpowiada pojedynczemu pikselowi znaku, ale jako że wiersz w tym trybie zajmuje 10 linii skanningowych, a definicja znaku ciągle składa się z 8 bajtów, to ANTIC generując wiersz dostawia dodatkowo 2 puste linie:

  • dla znaków $00-$5F na dole wiersza
    7 6 5 4 3 2 1 0 bit         0 1 2 3 4 5 6 7 piksel
 0  . . . . . . . .          0  0 0 0 0 0 0 0 0    
 1  . . . o o . . .          1  0 0 0 1 1 0 0 0    
 2  . . o o o o . .          2  0 0 1 1 1 1 0 0    
 3  . o o . . o o .          3  0 1 1 0 0 1 1 0    
 4  . o o . . o o .          4  0 1 1 0 0 1 1 0    
 5  . o o o o o o .          5  0 1 1 1 1 1 1 0    
 6  . o o . . o o .          6  0 1 1 0 0 1 1 0    
 7  . . . . . . . .          7  0 0 0 0 0 0 0 0
                             8  0 0 0 0 0 0 0 0
                             9  0 0 0 0 0 0 0 0    
bajt                        linia
  • dla znaków $60-$7F na górze wiersza, przy czym znak rysowany jest od drugiego bajtu definicji, a na dole dostawiane są linie według bajtów 0 i 1
    7 6 5 4 3 2 1 0 bit         0 1 2 3 4 5 6 7 piksel
                             0  0 0 0 0 0 0 0 0    
                             1  0 0 0 0 0 0 0 0    
 2  . o o . . o o .          2  0 1 1 0 0 1 1 0    
 3  . o o . . o o .          3  0 1 1 0 0 1 1 0    
 4  . o o . . o o .          4  0 1 1 0 0 1 1 0    
 5  . o o . . o o .          5  0 1 1 0 0 1 1 0    
 6  . o o . . o o .          6  0 1 1 0 0 1 1 0    
 7  . . o o o o o .          7  0 0 1 1 1 1 1 0
 0  . . . . o o . .          8  0 0 0 0 1 1 0 0    
 1  . o o o o . . .          9  0 1 1 1 1 0 0 0    
bajt                        linia

3. W trybach 12 i 13 OS para bitów odpowiada pojedynczemu pikselowi znaku, który jest jednak dwukrotnie szerszy.

    76 54 32 10 para bitów       0  1  2  3 piksel
 0  .. .. .. ..              0  00 00 00 00
 1  .. .o o. ..              1  00 11 22 00
 2  .. oo oo ..              2  00 33 33 00
 3  .o o. .o o.              3  11 22 11 22
 4  .o o. .o o.              4  11 22 11 22
 5  .o oo oo o.              5  11 33 33 22
 6  .o o. .o o.              6  11 22 11 22
 7  .. .. .. ..              7  00 00 00 00
bajt                        linia                       

4. Po włączeniu trybu GTIA w rejestrze GTIACTL (dane obrazu interpretowane są wtedy analogicznie, jak w trybach graficznych 9, 10 i 11 OS) nibble odpowiada pojedynczemu pikselowi który jest tym razem czterokrotnie szerszy.

    7654 3210 nibble               0    1 piksel
 0  .... ....                0  0000 0000
 1  ...o o...                1  1111 8888
 2  ..oo oo..                2  3333 CCCC
 3  .oo. .oo.                3  6666 6666
 4  .oo. .oo.                4  6666 6666
 5  .ooo ooo.                5  7777 EEEE
 6  .oo. .oo.                6  6666 6666
 7  .... ....                7  0000 0000
bajt                        linia                       

Pełny zestaw znaków zawiera:

  • definicje 128 znaków i liczy sobie 1024 bajty (128 znaków po 8 bajtów) dla trybów 0, 12 i 13 OS oraz 3 ANTIC-a,
  • definicje 64 znaków i zajmuje 512 bajtów (64 znaki po 8 bajtów) dla trybów 1 i 2 OS.

Starszy bajt adresu zestawu znaków jest ustalany w rejestrze CHBASE ($D409) (cień CHBAS ($2F4) oraz CHSPTR ($26B)) z dokładnością do 1 KB (bity 2-7) lub 512 bajtów (bity 1-7).

Linki

Personal tools