Generator znaków

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 11:05, 14 maj 2022
Mono (Dyskusja | wkład)
(ort.)
← Previous diff
Wersja z dnia 17:35, 14 maj 2022
Mono (Dyskusja | wkład)
(chbase)
Next diff →
Linia 79: Linia 79:
* definicje 128 znaków i liczy sobie 1024 bajty (128 znaków po 8 bajtów) dla trybów [[Graphics 0|0]], [[Graphics 12|12]] i [[Graphics 13|13]] OS oraz [[ANTIC Display List#Tryby znakowe|3 ANTICa]], * definicje 128 znaków i liczy sobie 1024 bajty (128 znaków po 8 bajtów) dla trybów [[Graphics 0|0]], [[Graphics 12|12]] i [[Graphics 13|13]] OS oraz [[ANTIC Display List#Tryby znakowe|3 ANTICa]],
* definicje 64 znaków i zajmuje 512 bajtów (64 znaki po 8 bajtów) dla trybów [[Graphics 1|1]] i [[Graphics 2|2]] OS. * definicje 64 znaków i zajmuje 512 bajtów (64 znaki po 8 bajtów) dla trybów [[Graphics 1|1]] i [[Graphics 2|2]] OS.
 +Starszy bajt adresu zestawu znaków jest ustalany w rejestrze [[Rejestry ANTIC-a#CHBASE|CHBASE ($D409)]] (cień [[Rejestry cienie#CHBAS|CHBAS ($2F4)]] oraz [[Rejestry cienie#CHSPTR|CHSPTR ($26B)]]) z dokładnością do 1 KB (bity 2-7) lub 512 bajtów (bity 1-7).
== Linki == == Linki ==

Wersja z dnia 17:35, 14 maj 2022

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 ANTICa 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.

    76 54 32 10 para bitów      0 1 2 3 piksel
 0  .. .. .. ..              0  0 0 0 0           
 1  .. .o o. ..              1  0 1 2 0            
 2  .. oo oo ..              2  0 3 3 0            
 3  .o o. .o o.              3  1 2 1 2            
 4  .o o. .o o.              4  1 2 1 2            
 5  .o oo oo o.              5  1 3 3 2            
 6  .o o. .o o.              6  1 2 1 2           
 7  .. .. .. ..              7  0 0 0 0           
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 znaku.

    7654 3210 nibble            0 1 piksel
 0  .... ....                0  0 0           
 1  ...o o...                1  1 8            
 2  ..oo oo..                2  3 C            
 3  .oo. .oo.                3  6 6            
 4  .oo. .oo.                4  6 6            
 5  .ooo ooo.                5  7 E            
 6  .oo. .oo.                6  6 6           
 7  .... ....                7  0 0           
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 ANTICa,
  • 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