SORD M5 BASIC-F

 

   
English, PDF, 33.2 MB English (OCR), DOCX, 1.05 MB

 

-- SORD m.5 ------------------------------------------------------------------ 1. Uvod ************* Tato prirucka obsahuje seznam prikazu a funkci jazyka BASIC-F s jejich blizsim vysvetlenim. BASIC-F je dlouhy 20kB a muze byt obsazen v pametech EPROM osaze- nych v modulu BASIC-F nebo muze byt zaveden do pameti RAM (v modulu 64kB RAM). Jazyk BASIC-F sestava z programu ve strojovem kodu od adresy &2000 do adresy &6FFF. Jazyk umi pracovat jak v integer ( 2 byte ) aritmetice, tak i v real ( 8 byte ). Promenne a konstanty se zapisuji podle typu s % nebo # ( nebo pri- padne retezcove promenne se znakem $ ). 2. Specifikace jazyka *************************** Jazyk BASIC-F je urcen pro vedecko-technicke vypocty. Jeho ideove zamereni vy- chazi z moznosti a pozadavku na velke pocitace.Presnost vypoctu realnych cisel je zajistena vzdy minimalne na 13 platnych cislic, zobrazit lze potom podle pozadavku 16 vypoctenych cislic ( nebo vice, s tim ze budou nasledovat nuly ). Rychlost vypoctu je zcela bezkonkurencni. Pomoci prikazu OPEN a CLOSE se poci- tac stava univerzalnim z hlediska pouzitelnosti periferii a jejich snadneho ovladani. Prikaz EXE je naprosto unikatni. 2.1. Programovani a beh programu v jazyce BASIC-F ===================================================== Interpretr jazyka BASIC-F byl navrzen tak,aby tvorba programu byla pokud mozno co nejefektivnejsi a vlastni ukladani programu do pocitace stalo minimum casu. Proto lze zadavat prikazy neuplne, pomoci tzv. teckove konvence s tim, ze interpretr si neuplne prikazy sam doplni. Prikazem TYPE si uzivatel definuje jakeho typu budou neoznacene promenne ( pri zadavani prikazovych radku ), ale i styl vypoctu ( ma-li se pocitat v INTEGER nebo v REAL logice ) coz je vyhod- ne u zkopirovanych programu z BASIC-G a rychlych her. Jazyk BASIC-F neni kompatibilni s jazykem BASIC-I a BASIC-G primo. Nahravat lze pouze programy z BASIKU-G typu .LS jejichz atribut se zmeni z 64 na 84 s tim, ze nektere prikazy BASIC-F samozrejme nezna. 3. Prikazy jazyka *********************** $<label name> Prirazuje radce jmeno. Delka navesti muze byt maximalne 32 znaku. ! <character string> Viz REM. Ve vypisu programu je ! nahrazen znakem ' . ' <character string> Viz REM. ? [#<channel number>][<expression>[{,/;}..]] Viz PRINT. AUTO [<first line number>][,<increment>] Automaticke cislovani redek pri tvorbe programu od cisla zvoleneho 1 para- metrem, s krokem urcenym druhym parametrem. Neuvedeny parametr = 10. Zrusit prikaz lze bud odeslanim prazdneho radku ( puvodni radek s timto cislem zustane zachovan ) nebo stiskem <SHIFT>+<RESET>. BCOL [<color code>] Urcuje parvu pozadi obrazovky a zaroven barvu "barvy 0". CALL <assembler program address>[,[<AF>][,[<BC>][,[<DE>][,[<HL>]]]]] Provede skok na urcenou adresu do programu ve strojovem kodu s naplnenim registru AF, BC, DE a HL. CLEAR [<work field>][,<last user field>] a) bez parametru smaze obsah vsech promennych, vcetne "ON ... GOSUB ...". b) prvni prarametr vyhrazuje uzivatelsky prostor pro provadeni nekterych basickych operaci, jehoz velikost musi byt alespon 256. Stavajici velikost lze zjistit funkci FRE(0). c) druhy parametr urcuje nejvyssi adresu RAM, dosazitelnou pro basic. Od na- sledujici adresy lze ulozit data nebo program ve strojovem kodu, aniz by hrozilo jejich poskozeni cinnosti systemu ( viz FRE(4) ). promenne se mazou ve vsech trech uvedenych pripadech. CLS [<initialize code>] Provede smazani obrazovky. Uvede-li se za prikazem cislo v rozsahu 0 - 255, zaplni se obrazovka znaky, jejichz ASCII kod odpovida danemu cislu. CLIST [<#ID>/<file name>][,<line number 1>][,<line number 2>] Viz LIST, s tim ze vypis je proveden velkymi pismeny. CLOSE [#<channel number>[,..]] Uzavre kanaly,ktere byly otevreny prikazem OPEN. Samotne CLOSE uzavre vsechny kanaly. COLOR <character code>,<color code> Obarvi znak urceny prvnim parametrem na barvu urcenou druhym parametrem. V GI obarvi vzdy osmici znaku, v GII kazdy jednotlivy znak zvlast. Barva je urcena: <color>=&HL, kde H=barva znaku, L=barva pozadi znaku. CONSOLE [<A>][,<B>][,<C>][,<D>][,<E>][,<F>][,<G>] Definuje vlastnosti klavesnice a obrazovky podle pouzitych parametru ( ANO/NE pripadne STRANKA 0/STRANKA 1 ): A - zvuk pri stisku klavesy (1/0) B - moznost pouziti FUNC (1/0) C - urceni viditelne obrazovky (0/1) D - urceni obrazovky pro kursor (0/1) E - rezim obrazovky: 0=M, 1=GII, 2=GI, 3=T F - rolovani obrazovky pri dopsani dolu (0/1) G - nahravaci rychlost ( 33=2030 Bd ) CONT Pokracovani behu programu, byl-li pred tim zastaven pomoci prikazu STOP v programu, nebo bylo-li pouzito STOP ON, nebo stiskem <CTRL>+<RESET> a nebyla-li provedena editace programu. DATA <constant>[,..] Ciselna i retezcova data ulozena v programu. Viz READ, RESTORE. DEL [<line number 1>][,<line number 2>] Smaze radky programu v uvedenem rozsahu. Je-li prikaz pouzit v programu, pro- vede se pri behu po DEL prikaz END, jsou-li mazany radky s cisly mensimi nez je cislo radku, na kterem je prikaz DEL, nebo pokud se maze radek, na kterem je prikaz DEL. Smazou-li se radky s cisly vetsimi, program pokracuje dal, promenne programu zustavaji zachovany. Nechceme-li, aby se provedl prikaz END po smazani radku, lze mazat radky prikazem EXE("DEL m,n:GOTO x"). DIM <array name>(<array size>[,..])[,..] Provadi dimenzovani ciselneho nebo retezcoveho pole ( nebo matice ). Jmeno pole je uvedeno primo, pocet dimensi nesmi byt vetsi nez 255, maximalni velikost jednoho rozmeru je 65 535. Rozmery zacinaji od 0. DRAW <GR coordinates>[;<GR coordinates>][;..] Nakresli v jemne grafice jednu nebo vice usecek dane dvema krajnimi body nebo pozici grafickeho kurzoru. END Ukoncuje beh programu a maze jeho promenne. EVENT <interrupt interval>[,<delay time>] Zadani intervalu pro pravidelne prerusovani pres "ON EVENT GOSUB ...". Prvni parametr urcuje delku intervalu preruseni v sedesatinach sekundy. Druhy para- metr znamena cas, ktery se ma pockat nez se zacne s prerusovanim a je rovnez v sedesatinach sekundy. EVENT {ON/OFF} Povoleni nebo zakazani intervaloveho prerusovani. EXE <character string> Argumentem prikazu je libovolny retezec znaku ktery obsahuje jeden prikazovy radek jazyka BASIC-F. Prikaz zajisti jeho provedeni. Pokud zacina prikazovy radek cislem, je interpretovan prvni prikaz jako GOTO na uvedeny radek. FCOL [<color code>] Obarveni textu nebo urceni barvy pro kresleni. Parametr udava kod barvy. FOR <control variable>=<initial value> TO <final value> [STEP <step value>] Provadi postupne prirazovani hodnoty od pocatecni ( <initial> ) do koncove ( <final> ) se zvolenym krokem prirustkem hodnot ( <step> ) do promenne uve- dene za FOR. Kazdy FOR musi mit odpovidajici NEXT. Cykly do sebe lze vnorit, avsak nesmeji se krizit. Pri vypoctu se porovnavaji hodnoty v desitkove sou- stave, nelze tedy pouzit cykl FOR I=&7FF0 TO &8010 .. NEXT I, protoze deka- dicky je &7FF0 vetsi nez &8010. FX <drive number>,<character string>[,[<AF>][,[<BC>][,[<DE>][,[<HL>] [,[output buffer adress,lenght][input buffer adress,lenght][,memory]]]]]] Prikaz pro komunikaci s disketovou jednotkou FD-5. Memory je typ pameti, odkud nebo kam se maji zapsat data ( 0 = RAM, 1 = VRAM ). GCOPY [<format type>] Provadi okopirovani obsahu obrazovky ( GII ) na pripojenou tiskarnu. Parametr urcuje format, s jakym se bude kopirovat: 0 = 1:1 - jeden bod na obrazovce odpovida jednomu bodu na tiskarne 1 = 2:1 - jeden bod na obrazovce odpovida ctyrem bodum na tiskarne GET [#<channel number>[[,..]<variable>[,..]] Nacteni hodnoty z daneho kanalu. Typ nacitanych konstant musi byt shodny s typy uvedenymi v prikazu PUT. Prikaz je obdobou READ. GINIT Inicializuje jemnou grafiku v GII a MULTICOLURu. GMODE [<mode 1>][,<mode 2>] Nastaveni vlastnosti jemne grafiky - nastaveni grafickych rezimu. Tyka se predevsim moznosti pri stretnuti se dvou bodu nebo barev v jednom bode obra- zovky. Hodnoty parametru: 0 - pri stretu dvou barev dojde k jejich vymene, tj prednost ma nova barva 1 - pri stretu dvou barev se mezi nimi provede logicky soucet "OR" a vysledek je kod nove barvy 2 - pri stretu dvou barev se mezi nimi provede logicky soucin "AND" a vysle- dek je kod nove barvy 3 - pri stretu dvou barev je zachovana barva stara 4 - pri stretu dvou bodu ( nebo umistuje-li se bod na pozici, kde uz nejaky bod je ) se tyto vymeni, tj. zbyde ten novy 5 - pri stretu dvou bodu se mezi nimi provede logicky soucin "AND" a vysledek je bod 6 - pri stretu dvou bodu se mezi nimi provede logicky exklusivni soucet "XOR" a vysledek je bod 7 - pri stretu dvou bodu se zachovava bod stary GMOVE <GR coordinates> V GII umistuje graficky kursor na bod o zadanych souradnicich. GOSUB { <line>/<destination> } Skok do podprogramu. Misto skoku je urceno bud primo cislem radku, kde pod- program zacina, nebo navestim ( $ ), pro navrat do hlavniho programu slouzi prikaz RETURN. GOTO { <line>/<destination> } Prikaz skoku. Vykonavani programu pokracuje na uvedene radce. CHAIN [<file name>][,ALL] Nahraje a spusti program v jazyce BASIC-F ( vcetne typu FILE - .DT ). Para- metr ALL urcuje, ze se maji zachovat promenne a jejich hodnoty. IF <conditional expression> THEN <statement>[:..][ ELSE <statement>[:..]] Podminka. Prikazy za THEN se provedou pouze tehdy, je-li logicky vyraz mezi IF a THEN pravdivy. V opacnem pripade se provedou prikazy za ELSE a pokud nejsou uvedeny ( bez ELSE ) pokracuje beh programu na dalsi radce. V zadnem pripade nemohou byt oboje prikazy provedeny zaroven. Jako relacni operatory ( porovnavaci ) lze pouzit: '<' '>' '<=' '>=' '=' '<>' INPUT [<text>[#<channel number>]]{,/; }<variable>[,..] Prikaz pro vstup dat z daneho kanalu; je-li za textem pouzita jako oddelovac mezera vytiskne se za text otaznik a na obrazovce se objevi kursor. V jednom prikazu INPUT lze naplnit nekolik promennych. Pri psani z klavesnice se hod- noty naplnovanych promennych oddeluji carkami. Data navic se ignoruji, naopak pri jejich nedostatku je hlasena chyba 25. K nacteni dat dojde po stisku exe- kucni klavesy <RETURN>. KILL <file name> Maze soubor na diskete ( FX: ), nebo jinem specifikovanem zarizeni. LEN <character string length> Urcuje maximalni delku retezcove promenne. Po zapnuti pocitace nebo po RUN je urcena na 18. Lze ji menit v rozsahu 1 az 140 ( maximalne az 255, je-li dos- tatecne zvetsen operacni prostor pro basic - viz FRE(2) ). Chceme-li mit vice promennych ruznych delek, provede se ( napr. ): 10 LEN 1:A$,B$="":LEN 9:MESIC$="":... LET <variable>[,..]=<expression> Prikaz prirazeni. Prikaz vypocte dany vyraz a jeho hodnotu zapise do promenne pred rovnitkem. Prikaz LET se nemusi vypisovat ( prikaz A=B+C je ekvivalentni prikazu LET A=B+C ). LIST [<descriptor>/<file name>][,<line number 1>][,<line number 2>] Prikaz k vypsani programu v BASICu na obrazovku, tiskarnu, magnetofon nebo jine zarizeni. Nepouzita cisla radek jsou dosazena jako 0 a 32767. Vypis programu na obrazovku lze zastavovat stiskem <SPACE> a po zastaveni prerusit stiskem <RETURN> nebo kdykoli stiskem <SHIFT>+<RESET>. Pouzije-li se <file name>, je vypis proveden na zarizeni specifikovane ve jmenu. Neni-li zarizeni ve jmenu uvedeno je vypis proveden na implicitni zarizeni. Soubor ukladany na magnetofon ci disk je typu FILE ( tj. nesouvisly - "jmeno.DT" ). LOC <sprite number> TO <GR coordinates x>,<GR coordinates y> Umisteni spritu na zadane souradnice. LOCATE <X>,<Y> Nastavi kurzor na dane souradnice. Ekvivalentni "PRINT CURSOR(X,Y);". MAG [<sprite modifier>] Urceni velikosti vsech spritu. Parametr udava: 0 - 8*8 bodu ( normalni velikost jako znaky ) 1 - 8*8 bodu dvakrat zvetseno ( jeden bod spritu prekryva 4 body znaku ) 2 - 16*16 bodu ( predloha je ulozena ve ctyrech po sobe jdoucich spritech ) 3 - 16*16 bodu dvakrat zvetseno NEW Provede smazani programu z pameti pocitace. ( Fyzicky prikaz nuluje jenom prvni dva byte programu a v systemovych promennych nastavi konec programu a konec promennych na hodnotu zacatku programu. Po omylem zadanem NEW staci dosadit pomoci prikazu POKEW PEEKW(&726A),N delku prvniho radku programu a program je mozne listovat a nekdy i spustit. Editovat jej lze pouze tehdy, obnovime-li puvodni hodnoty systemovych promennych na kterych jsou adresy konce programu (&726C) a promennych (&726E). Nejmensi delka radku N je 6. ) NEXT [<control variable>[,..]] Uzavreni cyklu FOR .. TO .. . Viz FOR .. . NOLIST [<line number>] Zakaze provadeni prikazu LIST a CLIST. Program lze spustit a doplnit do neho nove radky, ktere se ulozi pred nezobrazitelne radky. Nove radky lze zobrazit prikazy LIST a CLIST. Uvedene cislo umoznuje urcit pocatecni cislo nezobrazi- telnych radek. OLD [<file name>] Nahraje program nebo data ze specifikovaneho zarizeni. Neni-li ve jmenu za- rizeni uvedeno je soubor nacten z implicitniho zarizeni ( magnetofon, disk ). Neni-li uvedeno jmeno, je z magnetofonu nahran prvni nalezeny soubor ( pre- skoceny jsou programy typu .BI, .BG, .LS, .SC a .FC ). ON ERROR GOSUB { <line>/<destination> } Definice podprogramu pro obslouzeni preruseni pri vyskytu chyby pri behu pro- gramu. Pomoci prikazu RESUME je mozne chybu zapomenout a vratit se zpet do hlavniho programu. Nektere chyby ignorovat nelze. Prikaz CLEAR rusi nastaveny ON ERROR GOSUB .. . ON EVENT GOSUB { <line>/<destination> } Definice podprogramu pro obslouzeni pravidelneho prerusovani. ON <expression> GOSUB <seznam> Tzv. prepinac. <expression> musi mit po vyhodnoceni hodnotu vetsi nez nula. <seznam> je rada cisel radku. Pocet radku v seznamu musi odpovidat maximalni hodnote vyrazu. Po vyhodnoceni vyrazu, vysledek je treba 5, se skoci do podprogramu urcenym patym cislem v seznamu ( nemusi byt jen cislo, ale i navesti ). ON <expression> GOTO <seznam> Viz ON .. GOSUB .. ON <expression> RESTORE <seznam> Viz ON .. GOSUB .. , DATA, READ, RESTORE. OPEN <file name>[FOR {INPUT/OUTPUT/APPEND}] AS#<CH>[Record<record lenght>] Otvira soubor pro cteni nebo zapis na danem perifernim zarizeni. Pocitac rozeznava tato periferni zarizeni: vstupni: vystuni: CNS - klavesnice znakova obrazovka GRP - graficka obrazovka PRT - znakova tiskarna PRI - graficka tiskarna CMT - kazetovy magnetofon kazetovy magnetofon FX - diskova jednotka diskova jednotka SIO - seriova komunikace seriova komunikace Ve specifikaci souboru se periferni zarizeni oddeluje od jmena souboru dvoj- teckou. OUT <port number>,[<output data>[,..]] Posila data na urceny osmibitovy port. Port je urcen adresou ( 0 - 255 ), neuvedena data ( z rozsahu 0 - 255 ) se dosazuji jako 0. PAINT <GR coordinates>[,<boundary color>[,..]] V jemne grafice umoznuje vybarvovat plochu ohranicenou krivkou nebo krajem obrazovky. Barva je dana FCOLem. <GR coordinates> jsou souradnice bodu, od ktereho se zacne barvit. Odbarvit lze pomoci FCOL 0. PLOT <GR coordinates>[;..] V GII vykresli na danou pozici jeden nebo vice bodu. Barva je dana FCOLem. POKE <memory address>[,<data>[,..]] Uklada do RAM ciselna data v rozsahu 0 - 255. POKEW <memory address>,<output data> Uklada do RAM ciselna data v rozsahu &0000 - &FFFF. PRINT [#<channel number>][<expression>[{,/;}..]] Zobrazi data, text, hodnoty promennych a vyrazu na danem zarizeni ( neuvedene zarizeni - tj. bez '#cislo' - je brano jako #0, coz je CNS ). <expression> muze byt: text - PRINT "Ahoj!" cislo - PRINT 54 promenna - PRINT A;A$ vyraz - PRINT 1+7/B-C*LEN(A$) funkce - PRINT CURSOR(3,4); nebo - PRINT TAB(18); slozeny - PRINT CURSOR(1,10);"Vysledek nasobeni";A;"*";B;"=";A*B Oddelovace ";" a "," slouzi k omezovani textu tisteneho do obrazovky. PUT [#<channel number>][[,..]<expression>[,..]] Generuje data na zarizeni otevrene prikazem OPEN. Opak prikazu GET. RANDOMIZE [<numeric value>] Inicializuje generator nahodnych cisel. READ <variable list> Cte ze seznamu data, ktera jsou ulozena na radcich za prikazem DATA. Ukazatel odkud se maji data zacit cist je urcem prikazem RESTORE nebo po RUN nalezenim prvnich dat v programu. RECORD #<channel number>[,..]<record number> Nastavuje explicitni delku zaznamu pro jednu polozku pri operacich GET a PUT ( obdoba LEN u retezce ). REM <character string> Oddeluje komentare v programu od vlastnich prikazu. Program komentar nijak nezpracovava. RENUM [<new line number>][,<old line number>][,<added line number>] Provadi precislovani radek programu se vsemi GOTO, GOSUB, RESUME a RESTORE, pripadne i RETURN. <old> predstavuje cislo radky, od ktere se zacne s precis- lovanim a <new> je budouci cislo teto radky. <added> je krok precislovani. Prikaz neprecisluje LIST a DEL. Nelze pouzit po provedeni prikazu NOLIST. REPEAT Oznaceni zacatku cyklu "repeat". Viz UNTIL. RESTORE [<line number>] Prikaz souvisejici s DATA a READ. Pri cteni dat z programu existuje ukazatel, ktery urcuje, odkud se data prave ctou a timto prikazem lze tento ukazatel posunout na zacatek jineho radku. Vynechanim parametru se ukazatel umisti na prvni data v programu. RESUME [<line number>] Umoznuje zapomenuti chyby ( viz ON ERROR GOSUB ) a pokracovani v behu progra- mu. Neuvedene cislo radku znamena totez co RETURN s tim, ze se program spusti besprostredne za mistem, kde k chybe doslo. Uvede-li se cislo radku, beh pro- gramu pokracuje na radce s timto cislem. RETURN [<line number>] Navrat do vyssi urovne programu z podprogramu. Viz GOSUB. RUN [<file name>/<line number>] Je-li pouzito jmena, provede se nejprve nahrani programu v BASICu jako pri prikazu OLD. V kazdem pripade se spusti program v BASICu od uvedeneho radku nebo od prvniho radku programu. SAVE <file name>[,<first address>,<last address>[,<start address>]][#<n>] Zaznamena data nebo program na magnetofon nebo jine zarizeni. Pouzije-li se SAVE "123456789", nahraje se program v BASICu s nazvem 123456789. V maximalne devitiznakovem jmenu programu nebo dat se mohou vyskytovat i ridici kody, ktere se pri zpetnem nahravani provadeji. Pri zaznamenavani na jine zarizeni nez implicitni, se pred jmenem programu uvede jmeno zarizeni ( max 3 znaky ) a oddeli se dvojteckou. Uvedenim cisla za <file name># se urcuje, zda-li ma byt program v jazyce BASIC: 0 - po nahrani automaticky spusten; 1 - nekopirovatelny ( nelze jiz jeho SAVE ); 2 - uzamcen pro editaci; 3 - uzamcen pro listing. Jednotliva cisla urcuji primo dolni 4 bity cisla <n>. Napriklad #15 znamena nastaveni vsech bitu. Ostatni parametry se pouziji v pripade zaznamenavani programu nebo dat .CM: <first> - pocatecni adresa nahravani <last> - koncova adresa nahravani <start> - pripadna startovaci adresa pro program ve strojovem kodu, ktery se ma po nahrani sam spustit. SCOD <sprite number>,<numeric code> Definuje tvar spritu podle zadanych parametru: <number> - cislo spritu 0 az 31 <numeric> - kod predlohy 0 az 255 ( urcuje, kde je v setu 0 nadefinovany za- dany tvar ) SCOL <sprite number>,<color> Urcuje barvu spritu. Je-li barva vetsi nez 128, provede se zmena rohove sou- radnice spritu z leveho horniho rohu na pravy horni roh. SG <channel number>,[{<frequency>/<noise>}][,<volume>] Aktivizuje zvukovy generator. Parametry: <channel> - cislo zvukoveho kanalu, 0 az 2 pro tonovy, 3 pro sumovy. <freq.> - urcuje frekvenci tonu dle vzorce: F=111860/<pozadovana frekvence>; <noise> - urcuje charakter sumu: pro sum periodicky: 0 - N/512 1 - N/1024 2 - N/2048 3 - frekvence je rovna frekvenci druheho kanalu. pro sum bily: 4 - N/512 5 - N/1024 6 - N/2048 7 - frekvence je rovna frekvenci druheho kanalu. Maximalni frekvence je 111860 Hz. Pro tonove kanaly je <freq.> v rozsahu 0 - 1023. Hlasitost <volume> je v rozsahu 0 - 15 od nejmensi po nejvetsi. Umlceni jednoho kanalu se provede prikazem ve tvaru: SG <channel>,,0 SLEEP <sleep count>[,<increment time>] Casova prodleva v behu programu. <count> je doba prodlevy,<increment> je krok casu. Neuvedeny se dosadi jako 60 a <count> je pak v sekundach. Doba prodlevy se vypocte: SLEEP = <count> * <increment> * 1/60 sec. STCHR <pattern code> TO <character code>[,<chracter set number> Definuje tvar znaku a spritu nebo barev znaku v GII. Parametry: <pattern code> - retezec ( nasobek 8mi dvojic ) hexadecimalnich kodu vyjadru- jicich tvar nebo barvu <character code> - predstavuje cislo znaku kam se ma predloha zapsat <set> - jeden ze sedmi moznych generatoru tvaru ( a barev ) znaku: 0 - vyhrazen pro predlohy spritu 1 - v GI a T - tvar znaku, v GII - tvar znaku pro horni tretinu obrazovky 2 - v GII - tvar znaku pro stredni tretinu obrazovky 3 - v GII - tvar znaku pro dolni tretinu obrazovky 4 - v GII - barva znaku pro horni tretinu obrazovky 5 - v GII - barva znaku pro stredni tretinu obrazovky 6 - v GII - barva znaku pro dolni tretinu obrazovky 7 - v GII - tvar znaku pro vsechny tretiny obrazovky 8 - v GII - barva znaku pro vsechny tretiny obrazovky. Nepouzity <set> se dasazuje jako 0. STEP {ON/OFF} Povoluje nebo zakazuje trasovani programu. Po spusteni programu pri povolenem trasovani je jakoby na konci kazdeho radku prikaz STOP. STOP Zastaveni behu programu. Pokracovani od mista zastaveni je mozne prikazem CONT. Po zastaveni se vypise hlaska STOP AT xxx, kde xxx je cislo radku, na kterem se beh programu zastavil. SWAP <variable>,<variable> Provede vymenu hodnot danych promennych. Zamenuje i retezce, ale ma drobnou vadu ( pozor na LEN! ). TAPE Zinicializuje system a nahraje z magnetofonu jakykoli soubor ( krome .VM a .DT ) a pripadne jej odstartuje. Pri chybe nacita dalsi soubor z pasky. Prikaz TAPE neni mozne zrusit. THETA X Prikaz urcuje,bude-li se u goniometrickych funkci pracovat v radianech (X=0), nebo ve stupnich (X=1). TRACE {ON/OFF} Povoleni nebo zakazani trasovani. Trasovani - pocitac vypisuje cisla radku ve forme [ xxx ] ktere prave vykonava na obrazovku. TYPE {INT/DBL/STR} Urci, jakeho typu maji byt neoznacene promenne na prikazove radce a v jakem rezimu maji probihat vypocty ( INT - integer, DBL - real, STR - string ). UNTIL <logical expression> Prikaz cyklu. Uzce souvisi s REPEAT. Obecny tvar prikazu: REPEAT: ... :UNTIL logicky vyraz Provadi se prikazy mezi REPEAT a UNTIL dokud neni splnen logicky vyraz. VERIFY [<file name>] Kontroluje soubor zaznamenany na uvedenem ( nebo implicitnim ) zarizeni se souborem ulozenym v pameti pocitace. Neni-li uvedeno jmeno, kontroluje prvni nalezeny soubor. Kontrola se neprovadi, je-li soubor typu FILE ( .DT ). VIEW [<X0>,<Y0>,<X1>,<Y1>] Nastavi rozmer aktivni casti obrazovky.Po zapnuti je VIEW 0,0,31,23, po prep- nuti do rezimu TEXT je VIEW 0,0,39,23. Bez parametru nastavi maximalni okno. VPOKE <memory address>,<output data>[,..] Obdoba prikazu POKE, ale operuje s pameti VRAM. Adresa 0 - &3FFF urcuje misto ulozeni dat, ktere jsou z rozsahu 0 - 255. VSAVE <file name>,<beginning address>,<ending address> Zaznamena obsah pameti VRAM - podrobnosti syntaxe viz SAVE. WAIT <time out count>[,<increment time>] Casova prodleva pro cteni z klavesnice. Zadani casu je stejne jako u SLEEP. 4. Funkce jazyka ********************** ABS(X) Vraci absolutni hodnotu cisla ( vyrazu, funkce ) X. ASCII(X$) Vraci ASCII kod prvniho znaku retezce X$. ATN(X) Vraci hodnotu goniometricke funkce arcus tangens X. CALC(<string>) Argumentem funkce je libovolna retezcova konstanta nebo promenna, ktera obsahuje libovolny aritmeticky vyraz s funkcemi ve znakove forme. Pri pro- vadeni se do vyrazu dosadi okamzite hodnoty promennych a vyraz se vypocita. CDBL(X) Prevede integer hodnotu na jeji realny ekvivalent. CINT(R) Prevede realnou hodnotu na jeji zaokrouhleny integer ekvivalent. COS(X) Vraci hodnotu odpovidajici goniometricke funkci COS X. Rozsah hodnot X je ± 2.8E16. CURSOR(X,Y) Umisti kurzor na souradnice X,Y. Funkce je soucasti prikazu PRINT. ERR Vraci cislo posledni vyskytnute chyby. Nebyla-li, vraci 0. ERRL Vraci cislo radku, kde nastala posledni chyba. Nebyla-li, vraci -1. ERRL$ Vraci navesti radku, kde nastala posledni chyba. Nebylo-li zadne navesti po- uzito, vraci znak, jehoz kod je 00. EXP(X) Vraci vysledek e ( e = 2.718281828459 ) umocneneho na X. Cislo X je z roz- sahu -175 < X < 174. FIX(X) Vraci hodnotu dle vzorce FIX(X)=SGN(X)*INT(ABS(X)), tj. cele cislo, ktere je nejblizsi cislu 0 na ciselne ose. FRE(X) Vraci informaci o obhospodareni pameti. Parametr X urcuje: 0 - maximalni volno pro uzivatelsky prostor 1 - volno pro program a promenne 2 - volno pro zasobnik a operacni prostor 3 - FRE 1 + 2 4 - posledni adresa dosazitelna systemem BASIC 5 - konec fyzicke RAM pameti HEX$(X) Vraci ctyrznakovy retezec odpovidajici v hexadecimalni soustave cislu X. CHR$(X) Opak ASCII. Vraci znak, jehoz kod je hodnota parametru X. INKEY$ Vraci znak odpovidajici stiskle klavese. Nereaguje na stisk samotne klavesy FUNC, CTRL, SHIFT a ignoruje RESET. Je-li povolena funkce FUNC vraci pri stisku <FUNC>+<neco> postupne vsechny znaky dane funkce ci prikazu. INP(X) Vraci hodnotu ( 0 - 255 ) ze vstupniho osmibitoveho portu na adrese X. INSTR([X],Y$,Z$) Hleda retezec Z$ v retezci Y$. Je-li pouzito parametru X, hleda od pozice X v retezci Y$. Nepouzite X je dosazeno jako 1. Byl-li zadany retezec nalezen, vraci cislo pozice, od ktere byl nalezen. Nebyl-li nalezen, vraci hodnotu 0. INT(X) Vraci nejblizsi mensi cele cislo nez je X. LEFT$(X$,Y) Vraci X znaku zleva z retezce X$. LEN(X$) Vraci delku retezce X$. LN(X) Vraci hodnotu prirozeneho logaritmu X. LN(EXP(X))=X LOG(X) Vraci hodnotu dekadickeho logaritmu X. LOG(10^(X))=X MID$(X$,Y[,Z]) Vraci Z znaku od Y-te pozice z retezce X$. Neuvedene Z je dosazeno jako 1. NUM$(X,Y,Z) Prevadi cislo X na alfanumericky retezec. Parametr Y udava celkovou delku retezce pred desetinnou teckou i s pripadnymi mezerami. Parametr Z udava celkovy pocet znaku za desetinnou teckou i s desetinnou teckou. Soucet obou parametru dava celkovou delku retezce. PEEK(X) Vraci hodnotu odpovidajici obsahu bytu v pameti na adrese X. PEEKW(X) Vraci hodnotu odpovidajici obsahu dvou bytu v pameti na adrese X. Matematicky definovano: PEEKW(X)=PEEK(X)+256*PEEK(X+1). PI Vraci hodnotu cisla PI ( PI=3.14151265359 ). RDST$(X) Vraci retezec znaku o delce maximalne X precteny od pozice kurzoru. REG(X) Vraci obsah registru procesoru Z80A, pokud nastane po volani CALL navrat zpet do BASICu. Parametr X urci, o jaky registr se jedna: 0 - AF 1 - BC 2 - DE 3 - HL RIGHT$(X$,Y) Obdoba LEFT$, vraci Y znaku zprava z retezce X$. RND(X) Vraci nahodne cislo, z intervalu <0,X>, pricemz musi platit X>0. Typ vysledku je shodny s typem parametru X. RPT$(X,Y$) Vraci X krat retezec Y$. SGN(X) Vraci informaci o znamenku cisla X: -1 pro X<0, 0 pro X=0 a +1 pro X>0. SIN(X) Vraci hodnotu odpovidajici goniometricke funkci SIN X. Rozsah hodnot X je ± 2.8E16. SQR(X) Vraci hodnotu druhe odmocniny z X. TAB(X) Lze pouzit v prikazu PRINT. Provede posunuti kurzoru na Xtou pozici od zacat- ku radku, nelze-li, provede odradkovani. TAN(X) Vraci hodnotu goniometricke funkce tangens X. Rozsah hodnot X je ± 2.8E16. TIME Vraci cas ( v sekundach ), ktery uplynul od zapnuti pocitace. Tento cas nelze zmenit jinak, nez "pouky" do systemovych promennych. VAL(X$) Vraci hodnotu prvni konstanty v retezci X$. Napriklad: VAL("28*5") vrati 28. VARPTR({X/X$}) Vraci adresu ulozeni promenne X nebo X$ v pameti pocitace. VPEEK(X) Vraci obsah bytu pameti VRAM na adrese X. XCHG(X) Provadi vymenu dvou bytu promenne X. 5. Poznamky k praci ************************* Editaci programu ( rozumej pridavani, mazani a oprava programovych radku ) se nerusi jiz existujici basicke promenne ( rozdil oproti BI a BG ). Prikaz END promenne zrusi, stejne jako CLEAR nebo stisk <SHIFT>+<RESET>. U dlouhych ( vic nez 10kB ) programu, se nektere prikazy provedou az za chvili ( zatimco u kratkych programu se provadeji "ihned" ). Napriklad pri SAVE ( na CMT: ) chvili trva, nez sepne rele, pri RUN zase, nez se program rozbehne. Totez plati i pri stisku <SHIFT>+<RESET>. Nez se vypise "Ready", musime mit chvili trpelivost. V zadnem pripade vsak <SHIFT>+<RESET> nemackejte znovu, ve snaze vypsani "Ready" urychlit! 6. Uzamykani a odemykani programu *************************************** Prikaz NOLIST zpusobi precislovani radku programu na zaporna a prikaz LIST pote neprovadi jejich vypis. Precislovani zpet na kladna cisla se provede zavolanim rutiny RENUM: CALL &44F5,,,1 V pripade, ze se pri odeslani prikazu LIST nebo pri odeslani programoveho radku, ktery zacina cislem vypise hlaska Err 5 in 0, lze program odemknout: SAVE "jmeno"#0, nebo POKE PEEKW(&726C)-1,0 7. Chybova hlaseni jazyka ******************************* ERR Vyznam Blizsi specifikace ----------------------------------------------------------------------------- 1 FOR - NEXT nespravne razeni NEXTu ve FORech 2 syntaxe neznamy prikaz nebo spatne parametry 3 chyba v rutine CLEAR, GOTO, GOSUB, RETURN 4 chyba pri cteni dat READ, DATA 5 pletete si promenne nevhodna promenna 6 preteceni moc velke cislo 7 neni pamet moc dlouhy program, mnoho promennych, CLEAR 8 neexistujici cislo radku GOTO, GOSUB, RESUME, RESTORE, ( RETURN ) 9 chyba poli mimo rozsah DIM 10 chyba poli druhe DIM na teze jmeno 11 deleni nulou 12 chybne pouziti prikazu CONT, poskozeny program, prilis dlouhy radek 13 chybna data zamena ciselne promenne za retezcovou 14 preteceni zasobniku maly pracovni prostor pri operacich s retezci 15 moc dlouhy retezec male LEN, vice nez 256 $ 16 chyba poli neexistujici pole 17 dvakrat stejne navesti 18 chyba pri praci s magnetofonem 19 nespravny rezim obrazovky napr. sprite v TEXT, GINIT jindy nez v GII 20 chyba spritu MOVE, SPRITE po ERASE 21 chyba zasobniku POP bez PUSH 22 UNTIL - REPEAT UNTIL bez REPEAT 23 casove preteceni INPUT, EVENT a READY od mechaniky 24 chyba v RESUME nektere chyby nelze ignorovat 25 chyba v INPUT odeslani bez dat 30 chyba komunikace SIO spatna vstupni data do kanalu 100 zadny volny kanal vsechny kanaly byly otevreny 101 kanal nebyl otevren kanal nelze pouzivat, je treba pouzit OPEN 102 kanal je jiz pouzit na kanalu smi byt otevren jen jeden soubor 103 zarizeni je jiz pouzito zarizeni umoznuje otevrit jen jeden soubor 104 nevhodne jmeno souboru neexistujici zarizeni nebo dlouhe jmeno 105 nevhodny pristup tato operace neni na danem zarizeni pripustna 106 chybny soubor chyba v attributech souboru 107 chyba komunikace data prenasena do a z FD-5 jsou spatna 130 neznamy prikaz pro FD-5 v prikazu FX pouzivej jen existujici prikazy 131 nevhodne cislo mechaniky pri "FXmn:" pouzivej pro n jen 0 a 1 132 nekorektni jmeno souboru prazdne jmeno souboru neni dovoleno 133 mimo rozsah diskety zadane cislo bloku neni v povolenych mezich 139 spatny parametr hodnota parametru v prikazu FX je nepripustna 140 chyba komunikace data prenasena do FD-5 jsou spatna 141 chybna delka dat FD-5 ocekava jinou delku vysilanych dat 142 break operace v FD-5 byla nasilne prerusena 150 konec radky 151 prekroceni typu zaznam o cteni nebo zapis polozky se spatnou delkou 152 konec dat na mediu pokus o cteni dat za koncem souboru 153 konec souboru pokus o cteni dat za koncem souboru 154 plny disk neni misto pro dalsi data 155 mnoho souboru neni misto pro hlavicku souboru 156 zaznam neni ukoncen predchozi polozka nebyla prectena cela 160 neni volny kanal vsechny kanaly jsou vyuzity. Na jedne jednotce FD-5 mohou byt soucasne otevreny jen 4 soubory 161 kanal je jiz pouzit 162 kanal neni otevren kanal byl uzavren nejakym prikazem pro FD-5 163 zadny kanal neni pouzit 164 mechanika je aktivni neni mozne pouzit nektere prikazy FX 170 chybejici soubor specifikovany soubor neni na disku 171 soubor je jiz pouzit soubor je otevren na jinem kanalu 172 soubor jiz existuje specifikovany soubor je jiz na disku 175 spatne jmeno diskety disketa se jmenuje jinak 180 cteni souboru zakazano 181 zapis do souboru zakazan 182 smazani souboru zakazano 183 zakaz zmeny ochran souboru 184 soubor je chranen heslem 185 disketa je chranena heslem 186 cteni diskety zakazano 187 zapis na disketu zakazan 188 cteni bloku diskety zakazano 189 zapis bloku na disketu zakazan 190 jina disketa behem operace je ocekavana jina disketa 191 nevhodny pristup kolize parametru pri otevirani souboru 199 panika predpokladane udaje nesouhlasi se skutecnosti Vnitrni chyby od radice v jednotce FD-5 ======================================= 200 chybny prikaz pro radic 201 mechanika nereaguje na prikazy 202 zakaz zapisu na disketu 203 ztrata signalu ST1 ready 204 nedokoncena operace s disketou 205 nenalezen zadany sektor 206 chyba CRC 207 ztrata dat, CPU nestaci predavat/prebirat data 208 chyba recalibrate 209 nenalezena zadana stopa 210 cteni za koncem stopy 213 chybny vyber hlavicky 214 mechanicky problem pri cteni nebo zapisu 215 ztrata signalu ready 216 nenalezena stopa 0 ------------------------------------------------------------------------------ Podle ruznych materialu a na zaklade vlastnich zku- senosti sestavil a napsal LZR Soft. V Kladne 1988. Vydani treti,pocet vytisku dle potreby. Vytisteno na tiskarne LA120 firmy DEC. ------------------------------------------------------------------------------

Původní verze příručky

Původní podoba příručky: BASICF.SM5 (36KB, plain text including escape sequences for the LA120 DECWriter III) od LZR Soft.