+-------------------------+
      | Grafická myš v Textmodu |
      +-------------------------+

             ..... .....
                                       Viděli   jste   někdy   Norton
                                       Utilities?     Nebo    Impulse
                                       Tracker? Určite jo. Já jsem si
                                       ze  začátku  myslel že to, jak
                                       se   tam   ta  myš  tak  hezky
                                       plynule      pohybuje,      je
                                       grafika.    Pak,    když   sem
                                       zjistil,   jak  se  věci  mají
                                       (hezký,  ne?),  tak sem se dal
                                       do  vytváření  takový unity na
                                       grafickou myš v textmodu. No a
                                       proto  tady píšu tuhle blbost.
                            
                            
                            
                            
            
      .. . ....u....b....a....S......
           

         Co je to textmode ? 

        Takže  jak  to tam vlaste funguje? Je to úplne jednoduchý. Tady je
      takovej malej návod:

        (1)-  určíte si pár znaku, který nebudete používat (asi 9).

        (2)-  pak  si  uděláte nějakej buffer, kterej později použijete na
      editaci fontů.

         Buffer: +--------+--------+--------+
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 +--------+--------+--------+
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 +--------+--------+--------+
        (3)-  do  něj  hodíte hodnoty z ROM tabulky znaků pro znaky, který
      puvodně  byli  pod myší (viz bios fce 1130h, na zjištění pozice myši
      používám  svůj  handler,  ale můžete použít i normální funkci myšího
      driveru  via  int 33h (to ale musíte oblbnout myší driver nastavením
      typu módu v bios tabulce (seg 40h) na grafický)).


         Buffer: +--------+ ...
                 |XXX XXXX|
                 |XX X XXX|
                 |X XXX XX|
                 | XXXXX X|
                 |       X|
                 | XXXXX X|
                 | XXXXX X|
                 |XXXXXXXX|
                 +--------+ ...
                 .        .

        (pod myší bylo písmeno 'A', kdyby to náhodou někdo nepochopil)

        (4)-  přes  to  překopírujete  myší  kurzor  posunutej (shr,shl) o
      (x-souřadnice  mod  8).  (To znamená posunutí uvnitř znaku). (Jestli
      nevíte vo co go, tak se mrkněte do mý unity...)

         Buffer: +--------+--------+--------+
                 |XXX XXXX|      XX|XXXXXXXX|
                 |XX X XXX| XXXXX X|XXXXXXXX|
                 |X X   XX| XXXXX X|XXXXXXXX|
                 | XX    X|      XX|XXXXXXXX|
                 |       X| XXXXX X|XXXXXXXX|
                 | XX     | XXXXX X|XXXXXXXX|
                 | XX     |      XX|XXXXXXXX|
                 |XXX     |  XXXXXX|XXXXXXXX|
                 +--------+--------+--------+
                 |XXX     |   XXXXX|XXXXXXXX|
                 |XXX     |    XXXX|XXXXXXXX|
                 |XXX     |  XXXXXX|XXXXXXXX|
                 |XXXXXX  |  XXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 |XXXXXXXX|XXXXXXXX|XXXXXXXX|
                 +--------+--------+--------+

        (5)-  ...a  editnem buffer na hodnoty předem určenejch znaků. (viz
      funkce biosu (int10h,ax=1100h))

        (6)- tyhle znaky pak napíšem na místo, kde je myš!!!

        (7)- A tohle opakujem do zblbnutí (znovu od bodu (3)).

        ...to je celý. Primitivní, ne?


      ...A tady je pár funkcí a portů, který se k týhle věci docela hodí.

        INT 10h :ax = 1130h
                 bh = 0 : zjistí hodnotu int. 1Fh (pointer)
                      1 : zjistí hodnotu int. 43h
                      2 : zjistí adresu tabulky znaků 8*14
                      3 : zjistí adresu tabulky znaků 8*8
                      4 : zjistí adresu 2. poloviny  tabulky znaků 8*8
                                (nechápu)
                      6 : zjistí adresu tabulky 8*16
           výstup:
              es:bp = pointer na získávané info (podle bh)
                 cx = výška znaku
                 dl = počet řádek obrazovky
        zjistí nastavení generátoru znaků


        INT 10h : ax = 1100h
                  bh = počet bytů k editaci.
                  bl = číslo tabulky obrazu znaků (to sem nevymyslel
                           já - to tady čtu)
                  cx = ascii kód prvního definovaného znaku.
        edituje textový font

        Port TS (3C4h): index 03h
                výběr fontu : Bit 5,3,2 = výběr jednoho z 8 fontů A
                              Bit 4,1,0 = výběr jednoho z 8 fontů B
          perfektní,  použitý  přeba  ve Scream trackeru, Impulse Trackeru k
        roršíření počtu znaků.


        (Nějaký    dotazy,    nejasnosti    atd.   mi   pište   na   email
      SEDLACEK@MBOX.CESNET.CZ nebo na Infimu id KubaS (Jenom mi, prosimvas
      nepište že v mý unitě je chyba, tu berte spíš jako ukázku, jak by se
      to  dalo  udělat.  Ja  vím  že  je  to  shit,  jenom se mi to nechce
      předělávat))

        Tady si muzete vytahnout moji unitu a testovaci program ...

        naschle         KubaS


            výheň