################################################################## ## 01 Busy soft: Chybové hlásenia operačného systému BS-DOS 306 ## ################################################################## Index: 960331161846 Všetky chybové hlásenia operačného systému BS-DOS sú zaradené do dvoch hlavných skupín. Do prvej skupiny patria chybové hlásenia jadra operačného systému, druhú skupinu zase tvoria chybové hlásenia basicového interpretera nových príkazov a funkcií. Jadro BS-DOS je stavané tak, aby mohlo bežať absolútne nezávisle od basicových systémových premenných a obsahu ostatnej časti pamäte. Užívateľ teda môže mať od adresy #4000 až po #FFFF svoje vlastné dáta, ktoré mu operačný systém nebude ničiť (stačí cca 6 bajtov na zásobník). Tomuto boli aj prispôsobené výpisy prvej skupiny chybových hlásení. Pri výpise chyby sa najprv odpamätá horná tretina obrazovky, potom sa do rámika vypíše chyba a po stlačení ENTER/SPACE sa znovu obnoví pôvodný obsah obrazovky. Jedna dôležitá poznámka: Počas výpisu chyby je samozrejme horná tretina obrazovky zmenená (tým výpisom) -> na toto si treba dávať pozor pri tvorbe rutiniek bežiacich z prerušenia ktoré by využívali túto časť obrazovky. Druhú, menšiu skupinu tvoria chyby interpretera nových basicových príkazov a funkcií. BS-DOS obsahuje v sebe ako nadstavbu samotného jadra aj tento interpreter, ktorý tvorí akési rozhranie medzi jadrom operačného systému a samotným hlavným interpreterom basicu (romkou). Chyby z tejto druhej skupiny sú interpreterom generované ako klasické basicové chybové hlásenia a môžu byť aj presne takým istým spôsobom ošetrované. Jednotlivé chybové hlásenia jadra operačného systému BS-DOS sa vypisujú do hviezdičkového rámika v takomto tvare: =============================== Názov chybového hlásenia drv/dir/sub: file_name trk, sid, sec Enter=ok/retry, Space=abort =============================== Kde: drv = číslo mechaniky kde nastala chyba dir = číslo adresára kde nastala chyba sub = číslo súboru kde nastala chyba trk = číslo stopy na disku (cylindra) sid = číslo strany na disku sec = číslo sektora na stope File_name bližšie špecifikuje miesto vzniku chyby. Ak chyba nastane na nejakom konkrétnom súbore, potom file_name obyčajne znamená meno tohto súboru. Mie všetky údaje majú za každých okolností nejaký význam. Napríklad ak sa jedná o chybu napr. Can't read the disk tak potom údaje ako dir,sub,file_name nemajú žiadny zmysel. Teraz nasleduje popis jednotlyvých chybových hlásení podľa tejto legendy: - Názov chybového hlásenia - (funkcie pri ktorých sa chyba môže vyskytnút - príkazy,služby) - Textový opis chyby prípadne situácie pri ktorej môže chyba nastať. ### Chybové hlásenia jadra operačného systému BS-DOS 302 ### File not found (NEW,#562) Pri zavolaní #562 sa na disku v aktuálnom adresári od aktuálnej pozície hľadá súbor, ktorý má presne taký istú dĺžku a flagbyte ako parametre zadané v registroch DE a A. Táto chyba sa vypíše vtedy, ak sa taký súbor v tomto adresári nenachádza. Pri NEW sa vypíše vtedy ak sa v aktuálnom alebo hlavnom koreňovom (nultom) nenachádza súbor ktorý by bol "basic" alebo "code" a mal dané meno. File too short (loa1x,loa2x,verix,savex) Pokus o načítanie väčšieho množstva sektorov, než sa nachádza do konca súboru. Can't unerase (UNERASE,unerax,unerix) Pri pokuse o obnovenie suboru/adresara sa zistilo ze niektore jeho sektory boli medzitym prepisane a tym padom ho nie je mozne obnovit na povodny tvar. Alebo sa pokúšate obnoviť adresár, ktorý ešte nikdy predtým neexistoval. Error at XXX-YYY:ZZZ (VERIFY,#562,verix) Pri verifikácii sa zistila diferencia medzi obsahom súboru a obsahom pamäte. XXX je adresa prvého rozdielneho bajtu, YYY je adresa posledného rozdielneho bajtu a ZZZ je celkový počet rozdielnych bajtov. Táto funkcia sa dá veľmi pekne použiť na porovnávanie obsahu dvoch oblastí pamäti (jednu oblasť sejvneme a verifneme s druhou) alebo na porovnávanie obsahu dvoch súborov (jeden loadneme a verifneme s druhým). File too length (DTAPE,creatx) Pri DTAPE to znamená že daný súbor sa nemestí do pamäti. Súbory sa nahrávajú do mapäti od RAMTOPu až do konca #FFFF. Ak sa súbor nemestí do pamäti, odporúča sa znížiť hodnotu RAMTOPu. Pri volaní služby CREATX táto chyba znamená že súbor by mal mať viac ako 65535 sektorov. BS-DOS 289 má iba 16-bitovú logiku, preto nie je schopný takýto súbor spracovať. Disk full (#4C6,creatx) Súbor vyžaduje na uchovanie viac miesta než je k dispozícii na disku. Disk not ready (akýkoľvek prístup na disk) Táto klasická chyba chyba znamená že v mechanike nie je vložená disketa, disketa sa nejak nemôže otáčať alebo proste nie sú zavreté dvierka. [Chyba generovaná FDC biosom] Unknown disk (akýkoľvek pristup na disk) Užívateľ pri nastavovaní aktuálnej mechaniky nastavil také číslo, ktoré nezodpovedá žiadnej diskovej mechanike (ani virtuálnej). Pozor !!! Táto chyba sa prejaví až pri skutočnom pokuse o prístup na tento disk, nie pri jeho nastavovaní ako aktuálny. Directory too length (akákoľvek práca s adresármi) Užívateľ sa pokúša pracovať s adresárom, ktorý obsahuje viac ako 65280 adresárových položiek. Na disku takýto adresár môže normálne byť, ale BS-DOS 289 vďaka len 16-bitovej logike nedokáže spracovať takýto dlhý adresár. Directory full (#4C6,MOVE,creatx,movexx,moveix) Užívateľ sa pokúša pridať nový súbor do adresára, v ktorom je už 65280 adresárových položiek. Pozri predchádzajúcu chybu. Data integrity error XXX (akýkolvek prístup na disk Dáta sú na diskete chránené viacerými kontrolnými súčtami a paritami. Táto chyba sa vypíše v prípade, že nesedí čo len jedna kontrola dát. Can't read the disk (akýkoľvek prístup na disk) Operačnému systému sa nepodarilo načítať BOOT sektor diskety. Môže to znamenať že disketa vôbec nie je naformátovaná, alebo že má veľmi zlú nultú stopu, alebo že je naformátovaná v inej hustote záznamu ako HD alebo DD. Seek error (prístup na disk) Znamená že FDC radič nemôže nájsť nultú stopu na diskovej mechanike. [Chyba generovaná FDC biosom] Break (prístup na disk) Užívateľ stlačil Q+W počas čítania alebo zápisu sektoru (stopy,adresy). [Chyba generovaná FDC biosom] Ready error (prístup na disk) Chyba aktivizácie disketovej mechaniky. [Chyba generovaná FDC biosom] Write protect (akýkoľvek zápis na disk,kuini) Disk je chránený proti zápisu. Táto chyba sa negeneruje až pri skutočnom zápise na disk, ale hneď na začiatku príkazu alebo funkcie ktorá sa niečo chystá na disk zapísať. [Chyba generovaná FDC biosom] CRC error (akékoľvek čítanie z disku) Nesedí kontrolný CRC súčet pri čítaní sektora z disku. [Chyba generovaná FDC biosom] Data lost (prístup na disk) Pri DMA prenose medzi FDC radičom a pamäťou došlo ku strate dát. Táto chyba môže nastať napr. vtedy ak z prerušenia beží nejaký program, ktorý počas diskovej operácie preprogramuje DMA radič. [Chyba generovaná FDC biosom] Time out (prístup na disk) Čas diskovej operácie presiahol maximálnu povolenú hranicu. Môže to nastať z najrôznejších dôvodov - napr. že disketa je v mechanike nejak zaseknutá a nemôže sa voľne otáčať. [Chyba generovaná FDC biosom] Record not found (prístup na disk) Pri čítaní alebo zápise sektora sa na skope nenašla sektorová identifikačná značka. Môže to byť spôsobené napr. nekvalitnou disketou. [Chyba generovaná FDC biosom] Unknown format (akýkoľvek prístup na disk) Pokus o načítanie diskety ktorá nie je naformátovaná pre MB-02. System error XXX BS-DOS obsahuje v sebe rôzne kontroly svojej činnosti - robí si rôzne kontrolné súčty, testuje, či výsledky danej opéracie su aspoň trošku pravdepodobné a tak podobne. Toto hlásenie sa vypisuje vždy vtedy, keď tieto kontroly zistia dáku nezrovnalosť. Číslo XXX podrobnejšie špecifikuje o akú konkrétnu chybu sa jedná. Takáto situácia može nastat napríklad vtedy ak je operačny systém nejak nešťastne poškodený dákym užívateľským programom. Preto sa v prípade objavenia tohto hlásenia odporúča systém okamžite prebootovať. V prípade že máte v pamäti dáke nesejvnuté data tak si ich sejvnite na nejakú pomocnú disketu, ktorú nebudete ľutovať, keď o ňu náhodou prídete... ### Chybové hlásenia basicového interpretera BS-DOS 302 ### Invalid I/O device (akákolvek chyba dosu) Táto chyba sa generuje vtedy, ak pri vykonávaní nejakej funkcie basicového interpretera nastala ľubovoľná chyba dosu a užívateľ si zvolil možnosť ABORT. Invalid file name (LOAD,MERGE,VERIFY,$,` [znak libra]) Užívateľ zadal meno súboru, ktoré sa v nenachádza v aktuálnom adresári alebo také meno adresára ktoré sa nenachádza na aktuálnom disku. Invalid argument (NEW) Pokus o spustenie súboru v NEW, krorý sa týmto príkazom spúšťať nedá. Spúšťať sa dajú iba basicy a potom bytesy, ktoré sa zmestia do pamäti od svojej začiatočnej adresy (ktorá musí byť väčšia alebo rovná ako #4000). Všetky ostatné chybové hlásenia interpretera majú taký istý význam ako pôvodné chybové hlásenia v samotnej romke. _______________________________________________________________________________