 Wane informacje (2:482/33)  -WANE- 
 Msg  : 760 of 761                          Uns Loc
 From : Marcin Macinski                     2:482/33        Thu, 13 Feb, 04:12
 To   : All
 Subj : Assembler, the story begins [part 8, displaying fonts vertically]

Vitay All!

 Ten odcinek jest do podobny do poprzedniego - znowu bdziemy wywietla
litery na ekranie, znowu biae i znowu w trybie 13h. Co wic nowego? Jedna
rzecz: o ile poprzednio wywietlalimy liter wierszami, teraz bdziemy
wywietla j kolumnami. Mona spyta: po co to? Powody s dwa: po pierwsze -
zawsze to jaki trening, po drugie - umiejtno napisania procedury pokazujcej
liter kolumna po kolumnie jest warunkiem stworzenia scrolla - a do tego wanie
d (:

 Dzi w rdle bdzie tylko jeden nowy mnemonik:

>NOT X
    negacja X, a wic
    mov ax,01011110b
    not ax
    da w AX warto 10100001b.

 eby nie byo za mao nauki, dorzuc jeszcze pozostae operacje logiczne:

>AND X,Y
    operacja "i", czyli iloczyn logiczny

        0  1
      +-----
    0 | 0  0
    1 | 0  1

>OR X,Y
    operacja "lub", czyli suma logiczna

        0  1
      +-----
    0 | 0  1
    1 | 1  1

>XOR X,Y
    suma symetryczna

        0  1
      +-----
    0 | 0  1
    1 | 1  0

 W porzdku, mona zabra si za teoretyczne wywietlenie litery Q.

        bity     matry-
      76543210    ca
  1       0
  2       0
  3       124
  4       198
  5       198
  6       198       Wywietlanie kolumna po kolumnie jest nieco
  7       198       bardziej skomplikowane ni wywietlanie wiersz
  8       198       po wierszu. Oglny algorytm wyjaniony jest
  9       198       poniej.
 10       214
 11       222
 12       124
 13       12
 14       14
 15       0
 16       0

 1. Ustawienie licznika kolumn K na 7 (7. bit = 1. kolumna - patrz rysunek)
 2. Ustalenie pozycji pocztku litery w pamici (patrz poprzedni odcinek),
 3. Odczytanie bajtu (patrz poprzedni odcinek),
 4. Sprawdzenie, czy bit K w odczytanym bajcie jest zapalony (patrz *),
 5. Dodanie 1 do aktualnej pozycji i skok do 3 (i tak 16 razy),
 6. Zmniejszenie licznika kolumn o 1,
 7. Skok do 2 (i tak 8 razy).

 (*)
 Przykad dla kolumny 4 narysowanej przeze mnie litery Q (A - pozycja na
ekranie):
 - czy bit w wierszu 1 ustawiony? nie -> nie stawiamy nic; A:=A+320;
 - czy bit w wierszu 2 ustawiony? nie -> nie stawiamy nic; A:=A+320;
 - czy bit w wierszu 3 ustawiony? tak -> stawiamy punkt w pozycji A; A:=A+320;
 [...]
 ... i tak dalej a do wiersza 16.

 Dlaczego A:=A+320? Dlatego, e po sprawdzeniu biecego wiersza naley
przesun si o jeden wiersz w d - w trybie 13h, jak wiemy, jedna jednostka Y
jest rwna 320 jednostkom X.


 Dobra rada: przeanalizuj sobie to na papierze albo w wyobrani, patrzc na
wyrysowan powyej liter "Q".


 Napis, ktry wywietla program doczony do tego odcinka, praktycznie nie
bdzie si rni z zewntrz niczym. Dociekliwym jednak polecam "wbudowanie"
ptli opniajcej zarwno do tego programu, jak i programu z poprzedniej czci
"kursu" i sprawdzenie rnicy w wywietlaniu cigu znakw.

  ,
 /;`\ koniu
 ` | \____
 .-(_ ___ ):.
  `  | ,-'| ;
     ^    ^
--- GoldED/386 2.50+
 * Origin: Staro nie rado, modo nie trzewo (2:482/33)
