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í ÚPRAVYV 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Ý START2,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á - &FBFFMEMORY 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 - &009CDo 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