Q U I D O v1.2 ================ ROMBORSOFT from RM-TEAM 3.12.2000 Co je Quido ----------- Quido je pakovac, ktory pri pakovani kombinuje Shrinking s Implodingom a vyberie tu alternativu, ktora vyjde lepsie. Jeho vysledky su vacsinou lepsie ako pri pakovani TurboImploderom (i ked niekedy s malym obmedzenim, viz. dalej). Quido vznikol len preto, ze pri prerabani ruskej hry DIZZY-A nebolo mozne blok hry spakovat TurboImploderom (hlasil Pack Error) a u Mr.Packa bol vysledok velmi slaby. Z coho Quido vynikol -------------------- Klamal by som, keby som tvrdil, ze som to cele vymyslel sam. Rozpakova- ciu rutinu som okukal z ruskych hier, skratil a upravil pre svoju potrebu. Al- goritmus Implodingu som si "prepozical" z TurboImploderu a prostredie, teda User Interface, je od Georgea K. z jeho Tolkiena. Shrinking a vsetko ostatne som s vydatnou pomocou roznej literatury spatlal sam. Co Quido dokaze --------------- Quido vie pakovat v styroch modoch a to co bolo spakovane nim, vie roz- pakovat a podla toho nastavit povodne parametre. Bloky dat dokaze nahravat z kazety (aj bezhlavickove) a z D40/D80. Maximalna dlzka bloku je 42240 Bytov, minimalna 168 Bytov. Umoznuje nastavit adresu, kde bude rozpakovany blok lezat, a tiez adresu, kde bude lezat rozpakovacia rutina. Samozrejme, je mozne nastavit adresu, na ktoru sa skoci po rozpakovani. Ako sa Quido ovlada ------------------- Ovladanie je vdaka roletovemu menu velmi jednoduche a pohodlne. Hlavne polozky menu su: Range, Pack, File a Quit. * Range - nastavenie parametrov pakovania # Begin - adresa zaciatku bloku v pamati. Na tuto adresu sa nahraje pa- kovany blok. Moze byt v intervale od 23296 do 65368. Zadanie 0 alebo odoslanie prazdneho riadku nastavi RAMTOP+1. Po spus- teni je nastavena na RAMTOP+1. # Length - dlzka bloku pred alebo po spakovani. Moze byt v intervale od 168 do 42240. Za normalnych okolnosti ju netreba zada- vat, pretoze je automaticky nastavena podla dlzky nahrane- ho bloku. Po spusteni je nastavena na 65536-Begin. # Running - adresa umiestnenia bloku pri rozpakovavani. Blok sa teda bude pakovat na inom mieste v pamati (Begin), ako sa v konecnom dosledku bude ropakovavat (Running). Adresa moze byt maximal- ne taka, aby sa blok po rozpakovani este vosiel do pamati. Po spusteni ma hodnotu rovnaku ako Begin. # Routine - adresa, kde sa prenesie rozpakovacia rutina o dlzke 80 bytov v modoch 1 a 3 a 82 Bytov v modoch 2 a 4. Tato adresa sa ne- kontroluje, to znamena, ze si uzivatel musi skontrolovat sam, ci rutina nebude lezat v mieste, kde sa blok bude rozpakova- vat. Pri spusteni ma hodnotu 23456 (koniec Print Buffru). # Call - adresa, na ktoru sa skoci po rozpakovani. Zadanie 0 znamena navrat (instrukcia ret #C9). Po spusteni je nastavena na 0. * Pack - pakovanie, rozpakovanie... # Mode - nastavenie modu pakovania 1, 2, 3 alebo 4. Popis jednotlivych modov bude dalej. # Pack - spakuje blok na adrese Begin o dlzke Length modom Mode. Pocas pakovania je zobrazene kolko percent z dlzky bloku je uz spa- kovanych. Ak Quido blok nevie spakovat, vypise obligatnu spra- vu "Pack error. Data Lost". # Unpack - ak na adrese Begin je blok od dlzke Length, ktory spakoval Quido, rozpakuje ho a nastavi vsetky parametre v menu Range a a tiez mod, v ktorom bol blok spakovany. * File - loudovanie a sejvovanie... # Load - Tape: nahraje od adresy Begin hlavickovy blok typu Bytes a podla jeho dlzky nastavi Length. Pri chybe vypise hlasku "Tape Error". Disk: nahraje od adresy Begin blok typu .B a podla jeho dlzky nastavi Length. Pri chybe vypise hlasku "Disk error". Ak ma blok vacsiu dlzku ako 65536-Begin, vypise chybovu hlasku "Long error (xxxxx)", kde xxxxx je dlzka nahravaneho bloku. Ak je blok kratsi ako 168 Bytov, plati to iste. # Save - nahraje na kazetu, ci disk, blok z pamate na adrese Begin o dlzke Length so zadanym menom. V hlavicke suboru je parameter zaciatocna adresa z Running a treti parameter ma hodnotu 0, ak bol nahrany hlavickovy blok, alebo Leader z bezhlavickoveho bloku. Ak na disku subor z rovnakym menom uz existuje, je vy- pisana hlaska "Overwrite?", na ktoru mozte kladne odpovedat stlacenim "y". Ak je disk chraneny proti zapisu, vypise sa hlaska "Disk error". # Load Hless - od adresy Begin nahraje bezhlavickovy blok o maximalnej dlzke 65536-Begin a podla jeho dlzky nastavi Length. O dlzke plati to iste ako pri Load, len ak sa blok nevojde do pamate, xxxxx je nahradene 00000, kedze skutocna dlzka je neznama. # Append - umoznuje pridat na koniec nahraneho bloku blok vyplneny nulami a tym dosiahnut spakovanie bloku, ktory sa nedal spakovat v ziadnom mode. Dlzka bloku Length sa zvacsi o zadanu hodnotu a blok sa moze skusit spakovat v modoch 1 alebo 2. Ak sa za ko- niec bloku uz pozadovany pocet nul nevojde, nic sa nestane. # Device - zadanie typu zariadenia pre Load a Save - TAP alebo D40. Diskove operacie nevyzaduju pritomnost systemovych premennych, ale nesmie dojst k "Retry" alebo "Proceed" chybam. Chyby "Drive is not ready" a "Disk is write protected" su osetrene. Ostatne mozu pri poskodenych sys- temovych premennych sposobit zrutenie systemu. * Quit - ukoncenie programu... # Basic - ak neboli poskodene systemove premenne, vrati sa do Basicu # Return - vrati sa do programu, z ktoreho bol spusteny # Reset - No comment...