KOFIG2nav                                            TASWORD TWO
                      KOFIG-LZR  (S) 10.26
                     **********************
    Program KOFIG je určen pro práci s obrázky  v  režimu  jemné
grafiky ( GII ). Poslouží vám jako nástroj na zpracování grafic-
ké informace ( obrázek, graf s textem ...).  Pro  provoz  tohoto
programu postačuje mít připojen ROM-8kB  (  MONITOR  )  a  modul
paměti 32kB DRAM ( EM-5 ) popř. i 64kB DRAM.
   MOŽNOSTI PROGRAMU KOFIG
   =======================
    1) KONVERZE obrazovky z  jakéhokoliv  režimu  do  jednotného
 režimu GII
    2) ÚPRAVA obrázku do jednotného tvaru  včetně  barvy  pozadí
 tak, aby dva stejně vypadající  obrázky  byly  i  bit  po  bitu
 stejné
    3) Vytvoření komprimovaného PRODUKTU, který obsahuje inteli-
 gentní GINIT a je relokovatelný
    4) Plně kontrolované nahrávání jak souborů typu .VM,  tak  i
 komprimovaných PRODUKTů
    5) Bezpečnost akcí -  KOFIG  všechny  "vypůjčené"  systémové
 proměnné vrací a má i interní zásobník
    6) Komfortní obsluha - "windows" MENU a SET UP, všechny akce
 a stavy se hlásí textem, každou  akci  je  třeba  schválit.  Je
 použit vlastní znakový generátor a FUNC klávesy umožňují zobra-
 zit některé nedosažitelné znaky.
   STYL PRÁCE S PROGRAMEM KOFIG
   ============================
    Program se nahrává příkazem OLD.  Pokud  je  přítomen  modul
BASIC-I, je nutno po nahrání napsat řádku : CALL &C000  <RETURN>
čímž se odstartuje. Ve  všech  ostatních  případech  se  program
KOFIG sám spustí - ukáže verzi pak příkazovou obrazovku a  nako-
nec demonstrační dekomprimaci úvodního obrázku. Tím jste  viděli
tzv. studený start - nastává jen po nahrání KOFIGu. Dále program
čeká na stisk libovolné klávesy - tím se dostáváte na povelovou
obrazoku, kde je MENU.
   Po každém vyzvání COMMAND můžete zadat povel zobrazený v MENU
a to třemi způsoby :
    - stiskem písmene, jež je v povelu inverzně
    - stiskem čísla, které povelu přísluší
    - posunem ukazovátka pomocí šipek k danému povelu a jeho
      schválení klávesou <RETURN> či <SPACE>
    Dále je možné z tohoto místa použít
    - <SHIFT> + <RESET> - vyvolání SET UP
    - <CTRL>  + <RESET> - vyvolání ÚPRAVY
V každém případě se ukazovátko umístí na naposled zvolený povel.
   VÝZNAMY POVELŮ
   ==============
1,D = Load:STANDARD
    Vypíše se hlášení 'File' a očekává s  z  magnetofonu  soubor
typu .VM, který  by  mohl  být  obrázkem.  Zkontroluje  si  typ,
poslední adresu ( < &3800 ) a pak buď za vytištěné jméno dá  'is
skiped' nebo 'is loaded'. Pokud je vše vpořádku,  přepne  pohled
na druhou  (  grafickou  )  obrazovku,  kde  můžete  kontrolovat
nahrávání a kdykoliv jej přerušit stiskem <RESET>.  Po  úspěšném
zakončení nahrávání je pohled vrácen zpět a následuje dotaz : Je
obrázek celý ? Pokud ne, tak se odpoví 'N' , jinak 'Y'. Až  bude
kompletní obrázek, 'Y' odstartuje ÚPRAVU.
    Shrnuto:
    - nahrává obrázky v takovém tvaru, jak je lze získat např.
      z P.Editoru nebo Basiku-G a také generátory tvaru znaků
    - ostatní případy viz HORKÝ START
2,E = Load:KOMPRESE
    Umožňuje nahrát si komprimovaný obrázek ( PRODUKT ) z magne-
tofonu. Jde o jedinou nebezpečnou akci v KOFIGu  !!!  Vypíše  se
hláška 'File' a očekává soubor .CM zakončený  ve  jméně  pímenem
'K'. Soubor se pak bez  ohledu  na  skutečnou  počáteční  adresu
nahraje tam, kde je místo a také se tam spustí. Tento  'nesmysl'
byl vynucen podmínkou kompatibility PRODUKTů a možností  umístit
si PRODUKT kamkoliv (více viz PRODUKT). Pro další snížení rizika
je pohled zachován na příkazové obrazovce a nežádoucí  nahrávání
lze zrušit použitím <RESET>. Pokud vše  dopadne  dobře,  uvidíte
obrázek až do stisku libovolné klávesy. Druhou  alternativou  je
oblíbený pár:Basic-? & Ready ...
3,S = Save:STANDARD
    Používá se k zaznamenání  obrázku  na  magnetofon  normálním
způsobem - dva soubory po 6kB. Při dotazu na jméno lze odpovědět
<RETURN>, čímž odsouhlasíte poslední ( zobrazené )  jméno,  nebo
napište nové o maximální délce 7 znaků ( signalizováno ).  Další
dva znaky jsou implicitně ' P' pro tvary a ' C' pro barvy. Pokud
použijete FUNC či CTRL klávesy zjistíte,  že  máte  k  dispozici
některé znaky navíc a že si nemůžete  ani  omylem  zničit  obsah
obrazovky - provádět lze jen CTRL + H ( tj. DELETE  ).  Ukončení
jména je buď na klávesu <RETURN> nebo  vyčerpáním  počtu  znaků.
Pak se provede záznam dvou souborů typu .VM s 'ocásky'.
4,K = Save:KOMPRESE
    Jde o obdobu předchozího povelu - zaznamenává na  magnetofon
komprimovaný PRODUKT jako jeden soubor typu  .CM  .  Nejprve  se
ohlásí výsledek komprimace v procentech, nebo dá  jemně  najevo,
že obrázek jsou asi data ( = nelze komprimovat ). Pak  následuje
dotaz na jméno a počáteční adresu. Umožňuje uživateli určit, kam
se má PRODUKT umístit po zpětném nahrání do  počítače.  Povolené
meze adres jsou uvedeny  v  hranatých  závorkách.  Po  schválení
dojde k záznamu PRODUKTu na magnetofon.
5,W = SWITCH SCREEN
    Přepne pohled na obrázek. Stiskem libovolné klávesy se vrací
pohled na povelovou obrazovku.
6,X = EXIT
    Zakončí práci - musíte schválit ( 'Y/N' ). Při návratu  vše,
co si KOFIG 'vypůjčil' vrátí a jde do systému, odkud byl  volán.
Tato akce je nutná pro HORKÝ START.
    Tolik tedy k povelům z MENU. Obecně  lze  tvrdit,  že  KOFIG
maximálně minimalizuje chyby dané obsluhou ( tzv. foolproof ).
   Co způsobí ÚPRAVA
   =================
    Smyslem celého projektu KOFIG je tato rutina. Zajišťuje  dvě
hlavní funkce :
    - upravit obrázek tak, aby při pohledu na dva stejně vypada-
      jící obrázky byla i jejich  bitová  reprezentace  naprosto
      A B S O L U T N Ě stejná ( což vůbec není samozřejmé ).
    - upravený obrázek navíc musí být ve  tvaru,  umožňující  co
      nejefektivnější komprimaci.
    ÚPRAVA se hlásí textem 'Adjusting ...'  ,  a  je-li  obrázek
vpořádku, je to také vše, co  je  zobrazeno.  Pokud  však  najde
někde v obrázku 'díru' ( tj. barvu 0 = NO COLOR ), zeptá  se  na
barvu pozadí ( a tím i té díry ). Klávesou  <RETURN>  se  můžete
při nejistotě podívat na grafickou obrazovku. V  každém  případě
je třeba volbu barvy potvrdit ( nebo ne - barví se dál ). To  je
vše, co ÚPRAVA požaduje - ostatní finty si udělá sama.
    Odstartování ÚPRAVY je buď automatické ( v povelu '1' ) nebo
vyžádané ( <CTRL>+<RESET> ) nebo předpokládané ( HORKÝ START ).
   Co je to PRODUKT
   ----------------
    Výsledkem práce programu KOFIG je soubor  nahraný  na  pásce
pomocí povelu '4'. Jde o relokovatelný program - lze tedy  nejen
měnit počáteční adresu při dotazu, ale i v kopírovacím programu.
Tato změna neovlivňuje zpětné nahrávání ( viz povel '2' ). Přiom
zjistíte hlavní výhodu PRODUKTu - je krátký ( asi tak 3:1 ),čímž
všechny úvodní obrázky získají na efektnosti i efektivitě. U her
typu PYJAMARAMA nebo jiné s množstvím pokojů či kavern by se da-
lo citelně ušetřit.
    PRODUKT se skládá ze tří částí:
  1) Inteligentní GINIT - nastaví režim jemné  grafiky,  pokryje
obrazovku znaky
  2) Dekomprimátor - maximální rychlostí vyšle do  VRAM  potřeb-
ných 12kB dat + barvu BCOL
  3) Komprimovaná data - krátký úsek dat tohoto složení:
byte1, byte2, čítač1*16+čítač2
    PRODUKT lze samozřejmě kdykoliv znovu spustit příkazem :
CALL &XXXX, kde &XXXX je adresa počátku PRODUKTu.
  Jak však připravit podmínky pro to, aby PRODUKT po nahrání vy-
tvořil obrázek na správné obrazovce? Vychází se z těchto zásad:
  a) Pohled se přepne na obrazovku, na které je režim GII, jinak
se pohledem nehýbe ;
  b) Obrázek vzniká na obrazovce, na které je režim  GII,  jinak
na té, kde je zrovna kurzor ;
  c) Kurzor se vždy po dekomprimaci umístí na  druhou  obrazovku
( tam co není GII ) ;
    Příklad 1
    ~~~~~~~~~
    Dostanete kazetu s komprimovanými obrázky a chcete si je jen
prohlédnout - napište "složitý" program : 1 old:goto 1  <RETURN>
a spusťte příkazem RUN <RETURN>.
    Co se stane ?
    První PRODUKT se nahraje a zjistí že není GII. Dle zásady a)
pohledem nehýbe, dle zásady b) vytvoří režim  GII  tam,  co  byl
před nahráváním kurzor. Pak provede dekomprimaci a dle zásady c)
uklidí kurzor na druhou obrazovku. Jiná situace nastane  po  na-
hrání dalšího PRODUKTU. Režim GII již existuje, dle zás.  a)  se
přepne pohled na obrazovku s GII, dle zás. b) tam vzniká obrázek
a dle zás. c) se uklidí kurzor.
    Příklad 2
    ~~~~~~~~~
    Pokud chcete obrázek zařadit do svého programu, musíte  tedy
připravit podmínky. Častým požadavkem je případ, kdy chcete text
na obr. '0' číst během nahrávání PRODUKTU, obrázek  vytvořit  na
obr. '1', ale prozatím ho nechci vidět.
    Řešení :
    Ze zásady a) nesmí být nikde režim GII, aby zůstal pohled na
textu, pak ze zás. b) vyplývá, že kurzor musíte dát na obr.  '1'
( tam bude obrázek ), a ze zás. c) je jasné, že  kurzor  po  de-
komprimaci se sám umístí na text ( obr. '0' ).  Proramový  řádek
pak může vypadat takto :
 10 print "úšťžšťú vlastní text  ž":rem REZIM T,TEXT NA U
 20 old "OBRAZEK":rem NAHRAJE A VYTVORI NA V, POHLED NA U
 30 rem PRO BASIC-I JE NUTNE PRIDAT CALL startovaci adresa
 40 input "Precteno = <A>",A$:rem POVOLENI PRO PREPNUTI
 50 print "úý":rem JE VIDET OBRAZEK
 60 .........
Pozn. Česká písmena zde znamenají inverzní ( SHIFT+CTRL+key )
    Pokud někoho zajímá způsob komprimace, tak  jde  o  variantu
klasické metody páru  čítač  +  kód,  přizpůsobenou  vlastnostem
obrázkových souborů - hodněkrát se opakují barvy a tvary, ale  o
krátkých skupinkách. Nejmenší skupinkou je jeden byte -  ztrácím
však jen půl ( 1/2 ) byte ( srovnej s  jinými  metodami  ).  Dva
byte znamenají zisk půl byte ( obvykle nic nebo ztráta ),  větší
skupinky znamenají zisk. Ale nejkratší PRODUKT má  10%,  což  je
natolik málo, že úspěšnější metody nemají význam.  Z  toho  tedy
vyplývá, že "husté" obrázky komprimuji velmi dobře a "řídké"  už
jsou tak krátké, že je to jedno.
   Co udělá KONVERZE po HORKÉM STARTu ?
   ====================================
    Po povelu '6' se vracíte do systému, odkud byl KOFIG  volán.
Toho lze využít ke změně  či  vytvoření  obrázku,  např.  pomocí
předem připraveného basického programu. Není však podmínkou, aby
byl obrázek v GII !!
    Příklad:
    Povelem '6' opustíte KOFIG, CTRL+V se přepnete na obr.  '1',
CTRL+T máte režim TEXT. Napíšete cokoliv na obrazovku, provedete
HORKÝ START = CALL&C000<RETURN>. Tentokrát se zavolá ÚPRAVA, což
už znáte. Nyní máte na grafické obrazovce sice text, ale ono  je
to v GII !
    KONVERZE tedy převádí libovolný režim i GINIT  na  dokonalou
kopii do režimu GII. V uvedeném příkladě z formátu 40*6/24*8  na
formát 256*192. Zvráceným "kreslířům" je k  dispozici  i  jejich
režim MULTICOLOR.
    Takto je tedy vyřešen problém mezi různými režimy, dána mož-
nost zpracovávat obrázky, které jsou generovány programem a kom-
binování textu a grafu.
   Znovuvyvolání ÚPRAVY
   ====================
    V úvodu bylo řečeno, že po zobrazení COMMAND  lze  použít  i
<CTRL>+<RESET>. Uvidíte dotaz na provení ÚPRAVY  -  můžete  tedy
"protáhnout" PRODUKTy některých starších verzí KOFIGu ( povel'2'
nahraje, CTRL+RESET upraví, povel '4' zkopíruje ). Tuto  možnost
použijte vždy, když si nejste jisti, zda se provedla ÚPRAVA.
   SET UP : na co ?
   ================
    Všechno, co bylo dosud napsáno, se týká práce nad  souborem.
Teď tedy něco pro zpohodlnělou obsluhu. SET UPu  dosáhnete  přes
režim COMMAND pomocí <SHIFT>+<RESET>.
    Má-li někdo problémy s barvami na příkazové obrazovce,  může
si je změnit ( popředí FCOL, pozadí BCOL ) na  libovolné  :  0~F
Pokud je s barvami spokojen, odmáčkne je <RETURN>em.
    Pokud se podíváte na tvary písmenek zjistíte, že jsou  ušita
pro režim TEXT. Pro změnu generátoru použijte povel '1' - nahrá-
ní tvarů. Změnu neuvidíte, nebo se mění jiný generátor. V prvním
případě vám pomůže odpověď 'N' při CHARS OK - ukáže skrytý gene-
rátor ( 'Y' či <RETURN> = nezměnit ). Ale nahraný  soubor  mohly
být data či tvary sprajtů - stiskněte znovu 'Y', čímž  se  vrátí
rozumná písmenka. Dalším <RETURN>em se jde dál.
    K obarvení rámečku grafické obrazovky máte opět k  dispozici
barvy 0~F.
    Dotazem STDLY se nastavuje nahrávací rychlost  pro  magneto-
fon. Zadají se dvě hexadecmální číslice (  jako  v  kopíráku  ),
které musí být korektní ( kontroluje se ).
    Poslední dotazem je ROTATE. Souvisí opět se  znakovým  gene-
rátorem. Při jiné odpovědi než 'Y' končí SET UP. Jinak se zamění
generátory obou obrazovek, a to tolikrát, kolikrát stisknete 'Y'
jako odpověď. Můžete takto dopravit "neposlušný" generátor tvarů
na správné místo.
    Pokud budete mít v průběhu SET UPu pocit, že jste se do těch
tvarů zamotal, stiskněte <CTRL>+<RESET>,  což  nevyvolá  ÚPRAVU,
ale obnovu generátoru podle standardu SORD. Vždy ale bude kód  0
puntíkatý, aby byly vidět znaky ve jméně, které se jinak  neuvi-
díte.
   ZÁVĚR
   =====
    Program KOFIG je svými vlastnostmi určen k pohodlnému a bez-
pečnému zpracování obrázků s cílem je upravit a výhodně archivo-
vat. Lze jej také využívat pro kombinaci textu a obrázku. Pokud
chcete použít příkaz GCOPY na barevný obrázek, dočkáte se nepří-
jemného překvapení - KOFIG jej částečně zlepší ( dělá jen část
nutných konverzí barev ).Dále jistě působí příjemně,když původně
narvaná kazeta s obrázky je náhle více než z poloviny prázdná.
    Základní údaje o programu KOFIG-LZR (S) 10.26
    =============================================
Počáteční a startovací adresa                - &C000
Konec programu "machine code"                - &CFDF
Konec programu včetně dat                    - &E65F
Poslední adresa, kterou program ještě vyžívá - &FBFF
MEMORY MAP
- skok do inicializace
- text MENU
- studený start - rutina + autodestrukce
- zásobník
- všechny použité texty
- inicializace ( horký i studený start )
- test studeného startu
- hlavní smyčka s výběrem vektoru
- jednotlivé rutiny + pomocné načítací a zobrazovací rutiny
- buffer pro - konverzi
             - komprimaci a komprimovaný obrázek
             - generátor znaků
             - rotaci obrazovky
             - úvodní obrázek
Tento 11kB buffer je využíván postupným překrýváním ( jinak by
musel mít okolo 36kB ).
    Údaje o PRODUKTu
    ================
Implicitní počáteční adresa - &B000
Minimální délka ( 10% )     - &051E
Maximální délka ( 93% )     - &2CBC
Délka dekomprimační rutiny  - &009C
Do délek PRODUKTů je započtena i délka dekomprimační rutiny.
                                   Příjemnou práci přeje
                                  všem SORDistům LZR Soft
                                      18. ledna 1989