Press "Enter" to skip to content

Ďalšie podrobnosti o +3

Featury a chyby +3ROM.

Keď som minule popisoval +3, spomínal som, že Amstrad kadečo pomenil aj v ROMkách. Mimo nových vlastností tam ale povnášal i mnoho chýb a tak by som chcel popísať aspoň tie, na ktoré som narazil počas doby keď som vlastnil +3. Chcem ešte podotknúť, že to čo bude nasledovať pochádza z +3, ktorá má ROM verzie 4.0. Na +2A som to nikdy neskúšal a môžu byť nejaké odlišnosti, hlavne čo sa týka bugfixov, lebo +2A má ROM verzie 4.1 a je možné, že Amstrad niečo z toho, čo tu popisujem, v tejto verzii opravil. No ale poďme na to. Najprv popíšem nejaké featury, na ktoré som v predošlom článku zabudol.
Asi každý vie, že keď počas RESETu podržíme BREAK, dostaneme sa na obrazec, ktorý je určený na ladenie TV. Málokto už však vie, že keď na +3 v tomto obrazci stlačíme súčasne klávesy QAZPLM, spustí sa tým systémový test, ktorý kompletne preverí váš počítač. Taktiež funguje kombinácia kláves AEU. Tá zasa spustí test kvality signálu z magnetofónu, keďže +3 mala i TAPE IN. Najprv som dlho nevedel z tohto testu vyskočiť a používal som na to RESET, ale potom som náhodou zistil, že sa to dá aj pomocou kláves B a V. Tieto featury ešte celkom chápem a sú pomerne užitočné. Čo má však znamenať nasledujúca perlička som dodnes nepochopil a asi už nikdy nepochopím. Ten coder, čo to robil, musel byť buď na drogách alebo na hlavu. Spusťte +3BASIC, napíšte COPY RANDOMIZE a prichystajte si prsty na klávesy C, J a L. Potom stlačte ENTER a okamžite na to klávesy CJL. Máte na to asi tak pol sekundy. Objaví sa nápis HELLO THERE I”M +3. Úžasne užitočné. Namiesto písania tejto kraviny sa mohol autor realizovať na hľadaní chýb, ktorých je v +3 ROM neúrekom a tie čo som našiel popíšem za chvíľu. Teraz sa ešte odbočím k vlastnostiam editoru +3BASICu. Raz sa mi pri písaní nejakého programu stalo, že sa mi z ničoho nič zmazala časť riadku naľavo od kurzora. Samozrejme, že to nebolo z ničoho nič, ale návyk zo 48k BASICu, keď som chcel napísať príkaz LEN a použil som na to klávesovú kombináciu ako v 48k BASICu, teda EXT+K. Najprv som si myslel, že to je chyba, ale potom som zistil, že to je vlastnosť editora a že takýchto klávesových skratiek funguje podstatne viac. Tu je zoznam skratiek, ktoré som metódou pokus-omyl ponachádzal sám:
EXT+K = zmaže časť riadka naľavo od kurzora
EXT+J = zmaže časť riadka napravo od kurzora
EXT+E = zmaže slovo naľavo od kurzora
EXT+W = zmaže slovo napravo od kurzora
EXT+8 = celoobrazovkový režim editácie (ako Screen z BASIC MENU)
EXT+N = skočí na začiatok obrazovky
EXT+T= skočí na koniec obrazovky
EXT+I = skočí na začiatok slova naľavo od kurzora
EXT,SS+J = skočí na začiatok slova napravo od kurzora
EXT,SS+2 = skočí na začiatok riadku
EXT+M = skočí na koniec riadku
SS+I = poskočí o 10 riadkov dole
EXT,SS+P = poskočí o 10 riadkov hore
Viac som nenašiel, ale je možné, že je takých skratiek aj viac. Bohužiaľ sú rozmiestnené dosť neergonomicky, takže som ich používaniu nejak neprišiel na chuť. No a teraz si prejdeme chyby v ROM, ktoré som objavil bežným ale aj nie veľmi bežným používaním +3. Na prvé čo som narazil bolo, že občas pri kopírovaní súborov z diskety na RAMdisk mi vyhodilo hlášku “File already in use” i keď na to zjavne nebola príčina. Potom som zistil, že sa chyba objavuje len keď je plný RAMdisk. Neviem čo sa tam na pozadí deje, takže vám ani nepoviem, čo tú chybu spôsobuje, ale môj odhad je, že +3DOS si pri kopírovaní vytvára nejaký dočasný súbor, ktorý má vždy rovnaké meno a pravdepodobne tam je chyba. DOS sa asi pokúša vytvoriť dočasný súbor, hoci ho má vytvorený, alebo predošlý nebol zmazaný. Ďalšiu chybu som našiel celkom kurióznym spôsobom. S niekým som sa rozprával a len tak bezmyšlienkovite som v +3BASICu stláčal klávesy a zrazu mašina zmrzla. Celkom ma to prekvapilo a tak som sa pokúsil chybu nasimulovať a po chvíli sa mi to podarilo. Ak rýchlo po sebe ťukáte kombináciu kláves, ktorá v editore nič nerobí a potom stlačíte ľubovoľnú klávesu, mašina zmrzne. Napr. stlačte a držte SS a potom rýchlo za sebou 30-40 krát stlačte trebárs D. Keď potom stlačíte inú klávesu, počítač zamrzne. Nasledujúcu chybu som tiež objavil náhodou, hoci presné okolnosti si už nepamätám. Rutina na výpis otázky, ktorá nasleduje po použití wildcardu v príkaze ERASE nenastavuje pozíciu výpisu, takže sa vám môže stať, že otázku vypíše kdekoľvek na obrazovke a to práve tam, kde skončil posledný PRINT. Najjednoduchšie sa to dá nasimulovať napr. takto: PRINT AT 10,10;: ERASE “?aaa.cod”. Otázku “Erase ?aaa.cod ? (Y/N)” ROM vypíše na našu pozíciu 10,10, pričom by mala byť na spodku obrazovky, ako ostatné hlášky. Asi najznámejšia chyba v ROM +3 nasleduje po príkaze SPECTRUM. Malo by sa zobraziť “0 OK, 0:1” ale namiesto toho sa zobrazí “OUT 7I, 0:1” a je to spôsobené zlým error kódom v ROM. No a poslednú chybu, čo som našiel, asi tiež mnohí poznajú, lebo je veľmi častá a hodne znepríjemňuje písanie programu. Napíšte nejaký jednoduchý program na jeden BASIC riadok, ale tak, aby príkazy zaberali viac ako dva riadky na obrazovke. Spravte v ňom syntaktickú chybu a stlačte dvakrát ENTER a potom dvakrát kurzor dole a počítač zamrzne. Je to pravdepodobne chyba v obsluhe pozície chybového a editačného kurzora. Je to hnusná chyba a ak o nej neviete, môžete prísť o párhodinovú prácu. Riešením je vyvarovať sa dlhých riadkov pokiaľ je to možné, alebo na dlhých riadkoch kontrolovať syntax ešte pred odoslaním a suplovať tak ROMkový syntax checker. Proste typický Amstrad. Viem ešte o dalších chybách, ale tie už nie sú také viditeľné, ako tie čo som práve popísal. Kedysi dávno, koloval po internete kompletný zoznam chýb v +3 ROM, ale potom sa nejako vytratil. Jeho autorom bol Ian Collier, ktorý popísal chyby aj v iných ROMkách a ja ten zoznam určite niekde mám na CD, ale nevedel som ho narýchlo nájsť. Keď sa zadarí, pridám sem link. No a to by bolo na dnes všetko.

3 Comments

  1. nairam nairam

    skratky
    Nadhera, o tych skratkach v +3basicu som ani nevedel. Dik.

  2. Roman Roman

    Skratky
    Tieto skratky su funkcne uz na klasickom ZXS 128k Basicu. Sluzili ako “nahrada” za nepripojeny KeyPad, na ktorom sa vsetky tieto ficurky dali pouzit pre rozsirenie editacnych moznosti v 128k Basicu.

  3. Zkratky
    Abych to upresnil tyhle zkratky funguji na vsech 128 masinach ve 128 basicich. A na 128 a +2 i ve 48 Basicu pokud je nastaven tusim 4 bit systemove promenne 23611. Tyto klavesy totiz \”nahodou\” generuji stejne hodnoty jako generuje rom dekodovaci rutina pro keypad.Nekde mam i vlasni disassembling tehle dekodovaci rutiny (ja zajimave ze je umistena ve volnem miste 48 rom).Ale u +3 uz tyto routiny nejsou. Misto nich je v 48 rom bance u +3 rutina vypinani mechanik.

Leave a Reply

Your email address will not be published. Required fields are marked *