LASER BASIC ----------- (Oasis software) LASER BASIC je rozšírená verzia jazyka BASIC na vytváranie grafických efektov, ktoré možno inak vymýšľať iba pomocou rutín v strojovom kóde. Obsahuje niekoľko desiatok nových príkazov, ktoré sa od bežných povelov jazyka BASIC líšia tým, že sa pred nimi píše bodka. Slovník: SPRITE - programovo vytvorený a programom riadený grafický znak vo forme obrázku. LB umožňuje na definovať až 255 spritov so zvolenou veľkosťou. K tomu slúži SPRITE GENERÁTOR. (Súčasťou tohto programu sú aj dve sady hotových spritov). SCREEN WINDOW - (okno),t.j. časť obrazovky, definovaná štyrmi hodnotami: .COL = stĺpec ľavého horného rohu .ROW = riadok ľavého horného rohu .HGT = výška okna .LEN = šírka okna SPRITE WINDOW - časť spritu definovaná hodnotami: .SPN = číslo spritu v zásobníku .SCL = stĺpec spritu .SRW = riadok spritu .HGT,.LEN = veľkosť okna Poznámka: príkaz sa nevykoná, pokiaľ zvolené okno leží mimo sprite alebo narušuje jeho obrys. Chybové hlásenie však nenaskočí. SPRITE SPACE - úsek pamäte, obsahujúci všetky doposiaľ definované sprity. Horná adresa je 56575 (DCFF) a pamäť sa plní smerom dole od tejto adresy. Rozsah použitej pamäte možno zistiť pomocou PEEK (62464)+256*PEEK(62465). Každý sprite obsadzuje 9*HGT * LEN+5 bytov. OPERATIONS - príkazy pracujúce s obrazovkou, t.j. inverzia, scrolling, zrkadlenie, majú na konci "V". - príkazy pre prenos SCREEN/SPRITE sa končia na "PT" alebo "GT". - príkazy pre sprity končia na "M". - príkazy obsluhujúce SCREEN/WINDOW majú koncovku "GW", "PW". - príkazy pre SPRITE/WINDOW majú na konci "PM" alebo "GM". - príkazy pre presun SPRITE sú .SPNM a .DSPM EDITÁCIA A LADENIE PROGRAMOV Základný editor ZX Spectrum je pri použití LB zachovaný, taktiež možno používať všetky príkazy ZX BASICu. V rozšírenom editore LB príkazy začínajú zásadne bodkou, za ktorou nasledujú max.4 veľké písmená. Výraz nesmie obsahovať žiadne medzery. Rozšírené funkcie tvoríme pomocou ? a troch znakov, napr. ?ROW. Môžeme ich použiť na zistenie hodnoty premenných, nie však k vyjadreniu premennej alebo v súvislosti s PRINT. Programy v LB odštartujeme pomocou RUN, alebo RUN n, GOTO n a CONT. PREČÍSLOVANIE RIADKOVANIA, KONTROLA PROGRAMU .RNUM x,y,s - prečísluje riadky od riadku x, ktorý bude mať nové číslo y a ďalej bude narastať o s. Pri kroku 10 nie je treba tento parameter zadávať. Pri použití .RNUM bez parametrov sa riadky očíslujú 10,20,30... .REMK - zruší v programe všetky riadky s REM .TRON - vykonáva program po riadkoch (tracing). CAPS SHIFT + BREAK túto procedúru ukončí, možno pokračovať CONT. Platnosť príkazu trvá až do vykonania celého programu alebo je rušený príkazom .TROF GRAFICKÉ PREMENNÉ Parametre pre grafiku sú ukladané neobvyklým spôsobom, ktorý však urýchľuje priebeh programu. Každý grafický príkaz používa zvláštny súbor desiatich grafických premenných. Niektoré príkazy potrebujú až 5 parametrov. .ROW - určuje súradnicu y (0-23) ako AT .COL - súradnica y (0-31) ako AT .HGT - výška okna (0-24) .LEN - šírka okna (0-32) .SRW - y súradnica spritu (0 až HGT-1) .SCL - x súradnica spritu (0 až LEN-1) .NPX - veľkosť a smer vertikálneho posuvu .SPN - číslo spritu .SP1 - číslo spritu bez okna .SP2 - číslo spritu s oknom ZOZNAM PRÍKAZOV ----------------------------------------------------------------------------------------------- Príkaz Parametre Význam ----------------------------------------------------------------------------------------------- ADJM SPN,COL,ROW pri použití s GET a PUT ADJV HGT,LEN,COL,ROW umiestnenie okna ATDV,ATUV -"- scroll okna o 1 znak hore, dole ATDM,ATUM SPN scroll atribútov spritu o znak hore, dole ATLM,ATRM SPN -"- vľavo, vpravo ATLV,ATRV HGT,LEN,COL,ROW scroll okna o znak vľavo, vpravo ATON,ATOF zapnutie/vypnutie atribútov CLSM SPN mazanie spritu CLSV HGT,LEN,COL,ROW vyčistí sprite, vyplní attr ?COL,?HGT?LEN,?ROW možnosť priradenia premennej COL zákl. funkcia stĺpec DEF FN N() definovanie procedúry N DSPM SP1,SP2 sprite 2 do spritu 1 DSPR SPN zrušenie spritu GMAT SP1,SP2,SCL,SRW presun bloku attr spritu SP1 do SP2 na SCL, SRW GMBL -"- presun spritu 1 do spritu 2 GMND -"- logický AND SP1 a SP2 GMOR -"- -"- OR GMXR -"- -"- XOR GTBL SPN,COL,ROW presun bloku dát zo SCREEN do spritu GTND -"- -"- AND GTOR -"- -"- OR GTXR -"- -"- XOR GWAT SPN,COL,ROW,SCL,SRW,HGT,LEN presun bloku attr zo SCREEN W. do SPRITE W. GWBL -"- rovnako ako GTLB GWND -"- -"- AND GWOR -"- -"- OR GWXR -"- -"- XOR HGT zákl. funkcia výška INVM SPN inverzia spritových dát INVV HGT,LEN,COL,ROW inverzia okna ISPR SPN,HGT,LEN tvorba spritu a presun predchádzajúcich ?KBF COL,ROW bráni stlačeniu viacerých kláves naraz LEN zákl. funkcia šírka MARM,MARV,MIRM,MIRV zrkadlové obrazy MOVE SP1,SP2,HGT,LEN,COL,ROW presun a pohyb NPX zákl. funkcia graf. premenná ?PEK PEEK 16-bitové číslo PMAT SP1,SP2,SCL,SRW presun bloku attr z okna spritu SP2 do SP1 PMBL -"- presun okna SP2 do SP1 PMND -"- logický AND okna SP2 do SP1 PMOR -"- -"- OR PMXR -"- -"- XOR POKE N,M POKE 16-bitové číslo PROCFN N() volanie procedúry N PTBL SPN,COL,ROW presun dát zo spritu do SCREEN PTND -"- log. AND sprite dát a obrazu PTOR -"- -"- OR PTXR -"- -"- XOR PWAT SPN,COL,ROW,SCL,SRW,HGT,LEN presun bloku attr SPRITE WINDOW do okna PWBL -"- presun bloku dát zo SPRITE WINDOW do okna PWND,PWOR,PWXR -"- AND,OR,XOR -"- REMK ruší všetky REM RETN návrat z procedúry ROW zákl. hodnota riadok RNUM prečíslovanie riadkov SCL zákl. hodnota stĺpec spritu ?SCM SPN príprava spritu na data (0,1) ?SCV ROW,COL príprava znak. poľa na data SCRM SPN,NPX vertikálny scroll spritu o NPX pixlov bez obalu SCRV HGT,LEN,COL,ROW,NPX vertikálny scroll okna ?SET priraď grafickú premennú do BASIC premennej SET zákl. hodnota SETM SPN zaplnenie spritu atribútmi SETV HGT,LEN,COL,ROW zaplnenie okna atribútmi SL1M,SL4M,SL8M SPN scroll spritu vľavo SR1M,SR4M,SR8M SPN scroll spritu vpravo SPNM SP1,SP2 rotácia o 90 stupňov SP2 do SP1 SP1,SP2 zákl. hodnoty čísla spritov SL1V,SL4V,SL8V HGT,LEN,COL,ROW scroll okna vľavo bez obalu SR1V,SR4V,SR8V -"- -"- vpravo SPRT SPN,HGT,LEN vytvorí sprite do voľnej pamäti za minulým TRON,TROF zap/vyp tracing ?TST SPN testovanie spritu WCRM SPN scroll spritu vertikálny o NPX pixlov WCRV HGT,LEN,COL,ROW,NPX scroll okna s obalom WL1M,WL4M,WL8M SPN scroll spritu vľavo s obalom WR1M,WR4M,WR8M SPN -"- vpravo WL1V,... HGT,LEN,COL,ROW scroll okna s obalom vľavo WR1V,... -"- -"- vpravo ----------------------------------------------------------------------------------------------- SPRITE GENERATOR Slovník: COLD START - vymaže všetky predchádzajúce generované sprity a premenné. WARM START - (vhodné po BREAK alebo ERROR) zachová premenné. Po použití GOTO 3 a WARM sa vymaže iba display. GOTO 100 sa vráti do príkazového režimu. CHR$ SQR - skratka pre mriežku 8x8 na definovanie vlastných spritov (vľavo na TV). SPRITE SCREEN - oblasť obrazu 15x15 znakov, kde sa sprity vlastne tvoria. CHR$ SQR CURSOR - pohyblivý kurzor na tvorbu a editáciu znaku v CHR$ SQR SPRITE SCREEN CURSOR - 2 blikajúce kurzory, na spodnom a pravom okraji SPRITE SCREEN. Určujú ľavý horný roh sprite. SPRITE WINDOW - definované XPOS a YPOS a veľkosťou HGT a LEN spritu. Klávesou "F" možno zistiť práve používané okno. OPTION 1 - (SAVE) súbory nahraté touto voľbou možno nahrávať len späť do generátora. OPTION 2 - (SAVE) tieto súbory možno uložiť priamo do LB programu. MEMORY LEFT - voľný priestor v pamäti použiteľný pre sprity. XPOS, YPOS - okamžitá pozícia kurzoru x a y spritového obrazu. SPRITE - adresa pre definovaný sprite SPST - SPrite space STart point - začiatok pamäte pre sprity. SPND - SPrite space eND point - koniec priestoru pre sprity SPRITE HIGHT - výška spritu SPRITE LENGHT - šírka spritu SPRITE NUMBER - číslo definovaného spritu ZOZNAM OVLÁDACÍCH KLÁVES PRE SPRITE GENERÁTOR Všetky funkcie sa aktivujú stlačením príslušnej klávesy. A - spínač atribútov zap/vyp B - BRIGHT 1/0 C - PAPER 0-7 ss C - tvorba spritu 1-255 D - priamy vstup dát (8-byte po jednom) E - funkcie obrazovky: 1, inverzia (INVV) 2, zrkadlo (MIRV) 3, zrkadlové atribúty (MARv) F - zobrazí veľkosť okna ss F - pre microdrive G - funkcia GET H - funkcia HGT I - ATTRIBUTE DUMP ss I - scroll okna o 1 pixel vpravo (WR1V) J - presun CHR$ SQR do obrazu spritu ss J - Load K - prenos XPOS,YPOS do CHR$ SQR L - funkcia LEN M - funkcie spritov: 3 možnosti ako pri E N - záporná odpoveď pri otázke Y/N O - logické funkcie spritov: 1, GETORS 2, GETXRS 3, GETNDS P - funkcia PUT SPRITE (PTBL) vyvolá sprite na obrazovku Q - CLEAR CHR$ SQR maže ss Q - CLEAR obrazovky spritov R - rotácia spritu (SPNM) S - číslovanie spritov 1-255 ss S - Save T - testovanie spritu (?TST) ss T - scroll okna vľavo o 1 pixel (WL1V) U - vymazanie attr zo spritu ss U - scroll okna hore o 1 pixel (WCRV) V - FLASH 1/0 W - rušenie spritu v pamäti (DSPR) X - INK 0-7 Y - ano pri Y/N ss Y - scroll okna dole o 1 pixel (WCRV) SPACE - umiestni sprite do spritového okna podľa parametrov 1, GETBLS 2, GETORS 3, GETXRS 4, GETNDS 5 - vľavo kurzor CHR$ SQR 6 - dole 7 - hore 8 - vpravo 9 - zapnutie bitu 0 - vypnutie bitu ss 5 - pohyb kurzora na sprity vľavo ss 6 - dole ss 7 - hore ss 8 - vpravo VYTVÁRANIE SPRITU POMOCOU GENERATORA SPRITOV - nahrajte SPRITE GENERATOR do počítača vykonajte studený štart - nastavte flag atribútov na 1 a zadajte INK, PAPER ... - vytvorte sprite (pomocou mriežky alebo priamych dát) - pomocou H a L nastavte veľkosť spritu - nastavte kurzory na ľavý horný roh vášho spritu - stlačením F overte, či je všetko OK - stlačte G a uložte sprite do pamäti - otestujte funkčnosť predchádzajúcich operácií pomocou P a presunom kurzorov do inej časti obrazovky - vytvorte ďalšie sprity - Save (pri OPTION 2 si zapíšte adresy, ktoré vám oznámi počítač)