ATOM Keywords Voor de Atom zijn een groot aantal uitbreidingen geschreven voor de Basic en voor het OS.Hieronder is een samenvatting van de syntax voor de voornaamste Keywords. Het keywords.doc - file (in Word) is aanwezig om te printen. In de sub-directory: /doc/ staan overigens meer files die kunnen worden ingelezen in Ms-Word. #xx page zetten werkt als ?18=xx;END Top wordt goedgezet en getoond. ASSIGN :naam,a Geeft aan een bepaalde sprite een numerieke De sprite is dan zowel onder de naam als onder dit nummer bekend. naam - naam van de betreffende sprite a - assignment nummer van de sprite ATHIT : <NAME 1 > , <NAME 2 > ATHIT : <NAME 1 > , a2 ATHIT A1 , :<NAME2> ATHIT A1 , a2 Controleert of twee sprites elkaar overlappen. <name1> - naam sprite 1 <name2> - naam sprite 2 a1 - assignment nummer sprite 1 a2 - assignment nummer sprite 2 Indien de twee sprites elkaar raken wordt de rest van de regel waarop ATHIT staat uitgevoerd. Anders zal de regel opgevat worden als commentaar. ATKEY (A,B,C,....)(a,b,c,....) M.b.v. ATKEY worden toetsen toegekend aan regelnummers of labels. Bij het indrukken van de eerste toets zal naar het eerste regelnummer of label gesprongen worden. ATTRG (VIA NODIG) (at trigger) Evenals INT een declaratie. Indien de timer loopt en men drukt op de spatiebalk of men drukt de fire-button van de joystick in, dan zal de interpretor het statement afmaken waarmee het bezig was en vervolgens springen naar het eerst volgende statement op de ATTRG regel achter de declaratie. AUTO regelnr,stap Automatisch regelnummers genereren Het AUTO statement vereenvoudigt het intikken van programma's met zijn dubbele functie. Behalve automatisch regelnummers aanmaken wordt er bij de volgende regel automatisch ingesprongen. De parameter 'regelnr' is het eerste regelnummer, 'stap' is de stapgrootte tussen twee regelnummers. Beide parameters zijn optioneel en mogen dus weggelaten worden. In dat geval is de standaardwaarde 10. BASE q Bepaalt het geheugenblok waar sprites en paint patronen opgeborgen worden (in totaal 2 Kb). Reset tevens het mapbyte voor BEEP hoogte,duur Geluid opwekken Met dit statement wordt een toon opgewekt d.m.v. OSBYTE#05. De hoogte mag niet boven 96 liggen. De duur van de toon wordt opgegeven in 18den van seconden. BIN xxxxxxxx waarbij x= 0 of 1 Achter bin mogen maximaal 8 binaire bits gegeven worden. Op het scherm verschijnt dan de hexadecimale waarde ervan. BIT x Bit geeft de binaire waarde van het low word van de expressie; dit mag een variabele, constante of functie zijn. BLOCK m , x , y , b , h Tekent een volledig gevulde rechthoek. m - plotting mode: 0=reset, 2=invert pixel x - x coördinaat linker beneden hoek block y - y coördinaat linker beneden hoek block b - breedte block h - hoogte block BORDER x,y Tekent een lijstje op het beeldscherm x - offset aan linker en rechterzijde van het scherm y - offset aan boven en onderzijde van het scherm BSAVE "filenaam" Basic programma saven Dit statement is speciaal bedoeld om basic programma's te saven. De syntax is hetzelfde als die van SAVE. Het executie-adres van de ge-save-de file is #AFAF. NB: Voor de Atom-in-PC is dit statement overbodig; het normale SAVE statement geeft nu als executieadres #F144. Hier staat een verbeterde auto-start routine. CARRY :naam,x,y CARRY a,x,y Verplaats een sprite dat op het beeldscherm staat naar de opgegeven positie. naam - naam van de sprite a - eventueel assignmentnummer van de sprite x - x coördinaat van de sprite y - y coördinaat van de sprite CASE expressie OF case-blok Het begin van een CASE blok. Het is bedoeld om uit verschillende mogelijkheden er slechts een te kiezen. De expressie kan een variabele of een berekening zijn. De volgende regels beginnen met een case-label <....>; als in een case-blok de expressie voldoet aan een case-label dan wordt de regel achter dat label afgewerkt. Een case-blok eindigt met het CEND statement. voorbeeld: 10 CASE J-48 OF 20 <2> PRINT "DIT IS EVEN"' 30 <3> PRINT "DIT IS " 40 PRINT "ONEVEN"' 50 <1> PRINT "J=49"' 60 CEND CAT catalog Hiermee kunnen alle basicprogramma's tussen #400 en #A000 opgezocht worden, mits deze met het PROGRAM statement beginnen. Op het scherm verschijnt een lijstje met de programma's en hun beginpagina. CEND afsluiten van case-blok Hiermee wordt een case-blok, dat begint met het CASE -statement, afgesloten. Voor een goede werking dient CEND aan het begin van een regel te staan en mag het niet worden afgekort. CIRCLE p,x,y,r Tekent een cirkel in elke grafische mode (ook extended video) p - plot mode 0=reset, 1=set, 2=invert pixels x - x coördinaat middelpunt y - y coördinaat middelpunt r - straal in pixels CLS Wist het scherm; selecteert altijd 80 kolommen tekstmode CONT Ga verder met programma Met het statement STOP kan een programma op een bepaalde plaats gestopt worden. Er volgt dan de melding STOP AT xxx. Met CONT kan met de uitvoering van het programma vanaf die plaats verder gegaan worden. COPY bbbb, eeee, dddd geheugenblok kopiëren Het geheugengebied van bbbb tot en met eeee wordt gekopieerd naar dddd. Als dddd tussen bbbb en eeee in ligt dan volgt een soort fill-statement waarbij het geheugen gevuld wordt met de bytes tussen bbbb en dddd. Voorbeeld: COPY #2000,#3000,#20 Na afloop van dit statement is het gebied tussen #2000 en #3000 gevuld met #20. COS speed selecteer 300/1200 baud cassette systeem Aangezien de Atom-in-PC geen cassette operating systeem ondersteund is dit statement geheel overbodig geworden. CREATE sprites en paint-patronen definities Create/p:n a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 p - patroon nummer 0 t/m 31 a - 8 bytes welke in totaal het patroon vormen: a1=bovenste rij, a8= onderste rij CREATE <name>,a1a2,a3,.........,a15,a16 CREATE /H <name>,a1,a2,a3......,a15,a16 <name> - naam van de sprite, maximaal 8 letters /H - switch voor horizontale sprites (optioneel) a1..a16- sprite definitie volgens:
CREATE /V <name>,a1,a2,a3......,a15,a16 <name> - naam van de sprite, maximaal 8 letters /V - switch voor horizontale sprites (verplicht !) a1..a16- sprite definitie volgens:
auto assignment Als het CREATE statement voor sprites gevolgd wordt door /A:n krijgt het sprite een assignmentnummer waaronder het dan ook bekend is. Zie ook ASSIGN. CUBE p,m,x,y,b,h Tekent een (gedeelte van) een rechthoek. p - plot mode 0=reset, 1=set, 2=inverteer pixels m - feature mode 0= teken complete rechthoek 1= teken rechthoek TOT eerste gezette pixel 2= teken rechthoek VANAF eerste gezette pixel 3= teken rechthoek TOT eerste gezette pixel en begin weer bij het volgende gezette pixel 4= begin bij het eerste gezette pixel en stop bij het volgende gezette pixel x - x coördinaat linker benedenhoek van rechthoek y - y coördinaat linker benedenhoek b - breedte van rechthoek h - hoogte van rechthoek DAS #xxxx of DAS #xxxx,#yyyy Een disassembler met als bijzonderheid dat teksten, die in een machinetaal-programma worden geschreven via #F7D1, als leesbare tekst worden getoond. Bij invoer van alleen het startadres gaat DAS door tot aan #FFFF. Bij invoer van het eindadres treedt tevens een speciale printeroptie in werking; als de printer on-line is wordt gevraagd of de uitvoer ook op papier afgedrukt moet worden. Antwoord met J of N. Ontsnappen kan altijd met escape. DATA gegevensopslag in basicregels De regel achter DATA wordt niet verder geïnterpreteerd; die is bedoeld voor opslag van gegevens die met het READ statement opgevraagd kan worden. Dit statement dient het eerste van een regel te zijn en mag niet worden afgekort. DEASS :naam Disabled de herkenning van de sprite onder een assignmentnummer. Het heft de werking van ASSIGN op. DEF naam,xxxxxxxxxxxxxxxxx DEF:xxxxxxxxxxxxxxxxx Definiëren van alleen horizontale sprites. Voor pixels die gezet moeten worden is x een '1' voor zwarte pixels is x een'0'. De regel DEF: komt per sprite zeven keer voor. INT en ATTRIG. q - high byte van begin van geheugenblok DEL regels verwijderen Met DEL kunnen op snelle manier regels uit een basicprogramma verwijderd worden. Als parameters kunnen opgegeven worden: DEL x , y verwijder regel x t/m y DEL x , verwijder alles vanaf regel x DEL , y verwijder alles tot en met regel y DEL /string/ verwijder alle regels waar 'string' in voorkomt Als extra optie kan gegeven worden V - vraag eerst of regel verwijderd mag worden L - laat alle verwijderde regels nog even zien DISAS bbbb [,[eeee]] disassembler Disassembleert het opgegeven geheugengebied. DISK reset Disk operating systeem vectoren Dit statement initialiseert het DOS. ELSE alternatief bij XIF statement - alternatie bij XIF statement, zie aldaar EVEN (arg.) functie Als het argument even is dan geeft deze functie de waarde TRUE (=1) terug. In het andere geval wordt de waarde FALSE (=0) teruggegeven. FALSE functie Deze functie geeft altijd de waarde 0 terug. FEND einde FUNCTION blok Dit is het statement dat het eind aangeeft van een FUNCTION -blok. FEND behoort het eerste statement op de regel te zijn en mag niet worden afgekort. FCOS 1200 baud COS - Niet meer van toepassing bij de Atom-in-PC FILL a,b,c Vult het geheugen van a tot b met de waarde c. FIND string zoek string De opgegeven string wordt gezocht in het aanwezige basicprogramma. De string mag als $ opgegeven worden of als "string". FUNCTION definitie van een functie Functies kunnen gebruikt worden om in een stuk programma een waarde te berekenen en die waarde vervolgens te gebruiken in een expressie. Het functie blok begint met het woord FUNCTION en eindigt met FEND. Voor een uitgebreide uitleg wordt toch verwezen naar de handleiding van P-Charm of naar de vele artikelen hierover in Atom Nieuws. FVAR fp vardump Drukt alle floating-point variabelen af op het scherm. FZERO fp var wissen Geeft alle floating-point variabelen de waarde 0.0 GAGS Geeft het versienummer van het Gagsrom. GRMOD tekst in grafische mode Geeft de mogelijkheid om tekst te gebruiken in de Atom clear 4 mode; tekst en grafics kunnen door elkaar heen gebruikt worden. HDUMP bbbb [,[eeee]] hexadecimale/ascii dump Geeft een 32 koloms hex/ascii dump. HEX adres hex/ascii dump Vanaf het opgegeven adres wordt een gecombineerde hexdump/asciidump gegeven. Alle niet-ascii tekens worden weergegeven als een '.' Hex dumpt in een 32 kolommen scherm. HIP #xxxx HIP is de afkorting van Hexadecimaal InPut. Per adres wordt de geheugeninhoud getoond e n verschijnt een vraagteken. Hierachter kan ingevoerd worden: - return , HIP gaat dan verder naar het volgende adres - een hexadecimaal getal , hip plaatst het getal in het geheugen - letter T + een karakter , hip plaatst het karakter in het geheugen Het statement kan beëindigd worden met ESCAPE. HLINE P ,x1 , y1 , x2 , y2 , l , f , a , b Tekent lijn vanuit start positie naar een positie met een bepaalde x- coördinaat, welke zou liggen op de lijn welke getrokken wordt tussen de startpositie en de eindpositie. P - plotting mode: 0=reset, 1=set, 2=invert pixel x1,y1 - coördinaten start positie x2,y2 - coördinaten eind positie l - x coördinaat eind pixel f - pixel feature: =0 tekent tot aan eind pixel =1 tekent tot aan eerst gesette pixel A,B - variabele A t/m Z. Wordt gevuld met coördinaten van laatst geplotte pixel. HTAB x horizontale tab De cursor wordt x karakters van de linker kantlijn gezet. HVAR vardump Toont de inhoud van de variabelen A t/m Z hexadecimaal op het scherm. HXD #xxxx of HXD #xxxx,#yyyy Een 80-koloms hexdump routine waarbij per regel 16 adressen hexadecimaal en tevens in ASCII weergegeven worden. Bij invoer van alleen het startadres gaat HXD door tot aan #FFFF. Bij invoer van het eindadres treedt tevens een speciale printeroptie in werking; als de printer on-line is wordt gevraagd of de uitvoer ook op papier afgedrukt moet worden. Antwoord met J of N. Ontsnappen kan altijd met escape. ICOPY bbbb,eeee,dddd intelligent kopiëren Het geheugengebied bbbb tot en met eeee wordt gekopieerd naar dddd. Als dddd tussen bbbb en eeee ligt volgt geen fill effect; het is hierdoor dus mogelijk om een stuk geheugen over bijvoorbeeld 1 byte te verschuiven. IMAGE :naam,x,y IMAGE a,x,y Plaats een sprite op het scherm maar neemt het niet op in de administratie. Na het plaatsen is de spritepositie niet meer bekend. naam - naam van de sprite a - eventueel assignmentnummer van de sprite x - x coördinaat van de sprite y - y coördinaat van de sprite INFO programma status geeft een overzicht van het in de huidige tekstpagina aanwezige basic-programma. PAGE, TOP, DIMTOP, SIZE en FREE memory worden op het scherm gezet. INK a Kleurenset van 16 kleuren. Verticale resolutie wordt gehalveerd. a - kleur: 0=transparant groen 8 =cyaan 1=licht groen 9 =grijs 2=paars 10=blauw 3=donker bruin 11=donker blauw 4=groen(1) 12=groen(2) 5=geel 13=oranje(2) 6=rose 14=magenta 7=oranje(1) 15=rood Mogelijk verschijnen deze kleuren iets anders op het scherm van de PC. INKEY k wacht op toetsaanslag Het INKEY statement wacht totdat een toets wordt ingedrukt. De ascii waarde van die toets wordt in de variabele k (A...Z) opgeslagen. INSTR in string ? Met behulp van deze integer functie kan in een bepaalde string worden gezocht naar een andere string. De syntax is: INSTR( string1, string2) waarbij de haakjes verplicht zijn. De string mag zowel als $ gegeven worden of als "string". Het resultaat van de functie is de positie waar de tweede string in de eerste string voorkomt. Als de tweede string niet in de eerste voorkomt dan is het resultaat 0. INT c , t ( VIA NODIG ) Biedt de mogelijkheid om 3 zogenaamde channels te gebruiken, welke onderbinterruptus van timer 1 na verschillende, op te geven tijden aangeroepen zullen worden (lees: routines in het programma). c - channel nummer 0,1 of 2 t - tijd 1<=t<=#ffff Tijdens de declaratie van INT wordt de rest van de regel opgevat als commentaar. Is de verlangde tijd, na het aanzetten van de timer, verstreken, dan zal het statement waarmee de interpretor op dat moment bezig is afgemaakt worden en vervolgens wordt gesprongen naar het gedeelte op de declaratie regel na de parameters. Op dat moment wordt ook de timer uitgezet die men zelf later weer aan moet zetten. INT : P ( VIA NODIG ) Start of stopt de timer. p - =0 stopt de timer =1 start de timer Let op de dubbele punt!! De timer loopt met 50hz, dat wil zeggen, de tijden die men declareert moeten met 0.02 vermenigvuldigd worden. Voor 1 seconde kiest men t=50. INV Inverteert het Atom beeldscherm JBOX helpfunctie Geeft een overzicht van alle JBOX commando's. JOYSTK A,B,C De joystick wordt via de joystickvector #FFBF uitgelezen en de opgegeven variabelen worden aangepast aan de hand van de status van de joystick: A - variabele A t/m Z wordt met 1 verhoogd als stick naar rechts of met 1 verlaagd als stick naar links B - variabele A t/m Z wordt met 1 verhoogd als stick omhoog of met 1 verlaagd als stick omlaag C - variabele A t/m Z is 0 als vuurknop niet gedrukt is als vuurknop gedrukt is <> 0 KEY k voer toetsenbord scan uit Het KEY statement kijkt of er een toets wordt ingedrukt. Zo ja, dan wordt de variabele k (A...Z) gevuld met de ascii waarde van die toets. Anders wordt de variabele k gelijk aan 0. Dit statement wacht niet totdat een toets wordt ingedrukt. KILL :naam KILL a Verwijdert een sprite uit de administratie. naam - naam van de te verwijderen sprite a - eventueel assignmentnummer van de sprite LAB label overzicht geeft een overzicht van de gebruikte labels in het aanwezige programma. Eerst worden de assembler labels getoond, daarna de basiclabels met het regelnummer waar ze voorkomen. Tenslotte verschijnt een regel waarin aangegeven wordt welke labels nog vrij zijn en welke al gebruikt zijn. LINE x waarbij x een regelnummer is. Als de regel gevonden is verschijnt het adres op het beeldscherm. LIB programmageheugen overzicht oftewel 'library', toont de eerste regel van alle in het geheugen aanwezige basicprogramma's, voorafgegaan door hun paginanummer. Een = teken achter het paginanummer geeft aan waar de tekstpointer staat. Vervolgens verschijnt PAG # op het scherm. Een return laat de tekstpagina ongewijzigd, bij invoer van een hexadecimaal getal zet de tekstpagina naar de opgegeven waarden. MFIND #xxxx,#yyyy,??? MultiFIND zoekt in het geheugengebied xxxx t/m yyyy naar ??? en toont de adressen waar het zoekargument gevonden is op het scherm. Voor ??? mag ingevuld worden: een hexadecimaal getal bijv. #40 een assembler mnemonic bijv. LDA #80,X een string bijv. "ATOM" Als het zoeken te lang gaat duren kan het gestopt worden met ESCAPE. MODE a Grafische mode selecteren zonder het beeld te wissen. *** dit statement werkt niet op de Atom-in-PC *** NOT ontkennen Deze functie voert een logische ontkenning uit. Als het argument van NOT 0 is, is het resultaat <> 0 en vise versa. ODD (arg.) functie Als het argument oneven is dan geeft deze functie de waarde `TRUE (=1) terug. In het andere geval wordt de waarde `FALSE (=0) teruggegeven. ON diverse mogelijkheden ON ERROR fout opvangen Als er tijdens de uitvoering van een programma een fout optreedt wordt de uitvoering voortgezet achter het ON ERROR statement. Bovendien worden dan FOR....NEXT, DO....UNTIL en GOSUB....RETURN lussen vergeten. Let erop dat in de ON ERROR routine geen fout staat. ON ... GOSUB gosub selector Dit statement geeft de mogelijkheid om te kiezen uit een aantal mogelijke subroutines. Syntax: ON expr GOSUB line, line, line, ... Hierin is line een regelnummer of een label. Afhankelijk van de waarde van de expr wordt gesprongen naar de eerste, tweede, derde etc subroutine. Als expr groter is dan het aantal opgegeven subroutines wordt er niet gesprongen. ON ... GOTO goto selector Hetzelfde als ON ... GOSUB, maar dan voor sprongen via GOTO. PACK "stofzuiger" is een supersnelle opruimer van overbodige spaties in een basicprogramma. Let erop dat dit ook in teksten achter REM gebeurt. PAINT x,y,p M.b.v. PAINT kunnen ingesloten vlakken op het beeldscherm gevuld worden met een zelf te definiëren patroon. x - x coördinaat startpositie y - y coördineer startpositie p - patroonnummer (0 ... 31) Als het patroonnummer wordt weggelaten wordt het vlak geheel wit gekleurd. PALET p Een CGA kaart kent twee paletten. Het betreffende palet kan hiermee gekozen worden. Andere mogelijkheden van het PALET statement zijn: - wijzigen van borderkleur in tekstmode - wijzigen van achtergrondkleur in 4 kleuren grafische mode. - wijzigen van voorgrondkleur in 2 kleuren grafische mode. In de laatste drie gevallen ligt p dan tussen #80 en #FF. Dit statement is specifiek voor een CGA kaart; op een EGA/VGA kaart kan de werking iets anders uitvallen. PAPER a Creëren van een achtergrond kleur a - kleur: 0=zwart 2=rood (magenta) 1=groen (cyaan) 3=geel (wit) De kleuren tussen de haakjes gelden in palet 1. PAUSE duur Er wordt gewacht in eenheden van 1/18e seconden. De totale schafttijd is dus duur/18 seconden. PC-COMMANDS zie Atom-in-PC Epos/3 blz. 14 e.v. Ook is informatie over een PC commando te verkrijgen met het HELP commando met als sleutelwoord PCCOM#xx waarbij xx het gewenste commando nummer is of PCCOM#xxss voor commando's met een subfunctie waarbij xx weer het commando is en ss het subfunctienummer PDMENU pull down menu Syntax: PDMENU x,y,breedte,items,S/D,attr,$tekst,var[,begin] Dit statement geeft een compleet pull down menu in zowel tekst als grafische mode. Bediening kan met de cursortoetsen of met de muis. De menubalk wordt verplaatst met de cursortoetsen voor omhoog/omlaag of door de muis in verticale richting te bewegen. Een keuze wordt gemaakt door een druk op de ENTER toets of de linker muistoets. Het menu kan ook verlaten worden door het drukken van ESCAPE of de rechter muistoets. In dat geval is de teruggegeven waarde 0. Het menu is omgeven door een kader. De coördinaten x en y geven de linker bovenhoek van het menu aan. De 'breedte' is het aantal karakters dat de menu-items breed zijn. De parameter 'S/D' geeft aan of het kader met enkele (S) of dubbele (D) lijnen getekend moet worden. 'Attr' is de kleur of attribuut van het menu. $tekst wijst naar een string in het geheugen die de menu-items bevat. Het uiteindelijk gekozen item komt in de 'var' (A..Z) terecht. De laatste parameter is optioneel. Zonder deze parameter licht het eerste menu-item op bij het begin van het statement PDMENU. Als deze parameter wordt opgegeven licht het overeenkomstige item op. Samenvattend: x,y linker bovenhoek van menu breedte aantal tekens per item items aantal menu items S/D Single of Double kader attr attribuut of kleur van het menu $tekst pointer naar menu items var variabele (A..Z) waar keuze in komt [begin] hi-lighted menu item PEND einde procedureblok Dit is het statement dat het eind aangeeft van een function-blok. PEND behoort het eerste statement op de regel te zijn en mag niet worden afgekort. PIXEL x,y,z Controleer of pixel in Atom grafische mode gezet is. x - x coördinaat van te controleren pixel y - y coördinaat van te controleren pixel z - variabele A t/m Z, wordt 0 als pixel zwart is, <>0 als pixel wit is PLAY noot [, noot, noot etc] Speelt noten in drie octaven. Wordt niet ondersteund bij de Atom-in-PC. PLIST x,y geeft u, met printeroptie, een listing van een programma. Daarbij wordt voor elk regelnummer x spaties ingesprongen en achter elk regelnummer worden y spaties toegevoegd, behalve bij [ , ] , assembler labels en basiclabels. PROC definitie van een functie Procedures kunnen gebruikt worden om een sub-programma te creëren die aangeroepen kunnen worden vanuit het hoofdprogramma, andere procedures of door zichzelf (dus recursie!). Voor een uitgebreide uitleg wordt toch verwezen naar de handleiding van P-Charm of naar de vele artikelen hierover in Atom Nieuws. POP uitnodiging om niet netjes te programmeren Dit statement haalt een returnadres van de GOSUB stack. Dit schijnt handig te zijn indien een programma tijdens het uitvoeren van een programma zich in een subroutine bedenkt en geen RETURN wil uitvoeren, maar op een andere manier uit de subroutine wil springen. Een POP voorkomt dat er in dat geval problemen met de stack ontstaan, maar bevordert de toch al aantrekkelijke spaghetti programmastructuur. PROGRAM programma heading Een programma dat optimaal gebruik wil maken van P-Charme begint met het PROGRAM statement. Achter program mag een naam voor het programma komen te staan en eventueel nog wat extra tekst. Behalve het programma een naam geven doet PROGRAM nog wat meer: Automatische restore aan het begin van het programma Initialisatie van procedures en functies Initialisatie van ingebouwde functies Initialisatie error aanwijsroutine Initialisatie multidimensionale array's Initialisatie while loops Herkenning t.b.v. van statement CAT De BRKVEC wordt voor de duur van het programma verzet naar P-Charme. Een goede naam voor het programma begint met twee verschillende letters en eindigt met een karakter dat kleiner is dan de ascii waarde van de letter 'A', met uitzondering van het - teken. Een programma dat ergens in het geheugen staat en begint met PROGRAM kan door de naam in te geven gestart worden. PROGRAM moet het eerste statement van het programma zijn en mag niet worden afgekort. POS :naam, A , B POS a,A,B Plaatst de coördinaten van de opgegeven sprite in de opgegeven variabelen. RAM #xxxx,#yyyy Een snelle ramtest; test het geheugen tussen #xxxx en #yyyy waarbij de aanwezige data niet verloren gaan. Stoppen kan met ESCAPE. READ leest data Met het read statement kunnen integer, floating point, array en string variabelen worden ingelezen. De gegevens voor het READ statement staan opgeslagen in de regels die met DATA beginnen. De allereerste READ opdracht begint bij de eerste DATA regel te lezen (mits het programma begint met PROGRAM). De pointer voor het READ statement kan gewijzigd worden met het RESTORE statement. RELOC bbbb,eeee,dddd verplaatst machinetaal programma Het gebruik van RELOC lijkt op COPY; het geheugenblok van bbbb t/m eeee wordt gekopieerd naar dddd waarbij eventuele adressen automatisch aangepast worden. RENUM regelnr,stap hernummer programma Dit statement vernummert een basic programma waarbij rekening gehouden wordt met GOTO, GOSUB, RESTORE en ON ... GOSUB/GOTO. De parameter 'regelnr' is het eerste regelnummer, 'stap' is de stapgrootte tussen twee regelnummers. Beide parameters zijn optioneel en mogen dus weggelaten worden. In dat geval is de standaardwaarde 10. SCOS 300 baud COS Niet meer van toepassing bij de Atom-in-PC SCREEN selecteren beeldpagina's Syntax: SCREEN s De meeste videokaarten kunnen overweg met meerdere schermpagina's. De Atom kan inmiddels ook overweg met meerdere pagina's in tekstmode. Met SCREEN kunnen pagina's opgeroepen worden. Als s tussen 0 en 7 ligt wordt dat de pagina die op de monitor verschijnt en waarin de bewerkingen plaatsvinden. Een s tussen #40 en #47 selecteert alleen de pagina waarin bewerkingen plaatsvinden en s tussen #80 en #87 selecteert alleen de pagina die op de monitor verschijnt SCROLL e Hiermee is het beeld in elke gewenste richting te scrollen afhankelijk van de extensie e: U - (up) naar boven, 8 pixels D - (down) naar beneden, 8 pixels L - (left) naar links, 8 pixels R - (right) naar rechts, 8 pixels SET :naam,x,y SET a,x,y Plaats een sprite op het scherm. naam - naam van de sprite a - eventueel assignmentnummer van de sprite x - x coördinaat van de sprite y - y coördinaat van de sprite SHAPE adres teken figuurtje Hiermee wordt een opgegeven figuur op het scherm getekend volgens een "gepackte" tabel op locatie 'adres'. Het eerste byte van de SHAPE tabel geeft de lengte van de tabel aan. De volgende bytes geven informatie over de te plotten figuur. opdracht 1 opdracht 2 byte plotpar. richting plotpar. richting De plotparameter wordt als volgt bepaald: 00 : move 01 : set (wit) 10 : inv (wit <> zwart) 11 : reset (zwart) De richting wordt als volgt bepaald: 00 : links 01 : rechts 10 : omhoog 11 : omlaag Er komen dus twee plot opdrachten per byte. De positie van het figuurtje wordt met het move statement bepaald. SHOVE :naam,dx,dy SHOVE a,dx,dy Verschuift een sprite dat op het beeldscherm staat volgens de opgegeven verplaatsing. De nieuwe positie wordt bijgewerkt in de administratie. naam - naam van de sprite a - eventueel assignmentnummer van de sprite dx - verplaatsing in horizontale richting dy - verplaatsing in verticale richting SOUND p , d Produceert geluid volgens: p - pitch (toonhoogte) 1<=p<=255 d - duur van de toon 1<=d<=255 STEP <start> [,display] single step routine Een machinetaal programma wordt stap voor stap doorlopen. Na iedere instructie wordt een disassembler gegeven met de actuele register inhouden. Gewacht wordt op een druk op de spatiebalk. Als display gegeven is wordt pas vanaf dat adres begonnen met het afdrukken op het scherm. Alle instructies tussen 'start' en 'display' worden dan normaal uitgevoerd. De registers A, X en Y kunnen bij het begin gezet worden door de variabelen A, X en Y. STOP stop het programma Tijdens het foutzoeken kan STOP gebruikt worden om het programma tijdelijk te onderbreken. Er volgt een melding STOP AT LINE xxx. Er kunnen dan bijvoorbeeld variabelen worden bekeken of gewijzigd. Het programma zelf mag niet gewijzigd worden. De uitvoering kan voortgezet worden met CONT. TRACE #xxxx of TRACE #xxxx,#yyyy Een machinetaal programma wordt stap voor stap doorlopen. Na iedere instruktie wordt een disassembler gegeven met de actuele register inhouden. Gewacht wordt op een druk op de spatiebalk. Als yyyy gegeven is wordt pas vanaf dat adres begonnen met het afdrukken op het scherm. Alle instructies tussen xxxx en yyyy worden dan normaal doorlopen. De registers A, X en Y kunnen bij het begin gezet worden door de variabelen A, X en Y. TRUE waar Deze functie levert altijd de waarde 1 op. TURN :naam TURN a Draait een sprite om zijn verticale as, zowel op het scherm als in de sprite administratie. UNSET :naam UNSET a Verwijdert een sprite van het scherm. naam - naam van de sprite a - eventueel assignmentnummer van de sprite USR aaaa machinetaal programma starten Het statement USR werkt hetzelfde als LINK met het verschil dat de registers A, X en Y in de aagste bytes komen te staan van de gelijknamige basic variabelen. Op die manier kan eenvoudig een eventueel resultaat van een routine via de registers naar het oproepende basicprogramma gegeven worden. VAR variabele dump Dit statement drukt in twee kolommen de variabelen A tot en met Z af. VER #xxxx,#yyyy,#zzzz vergelijkt de geheugeninhoud van #xxxx t/m #yyyy met #zzzz en verder. Niet met elkaar overeenkomende adressen worden op het scherm getoond. Ontsnappen met escape. VLINE P ,x1 , y1 , x2 , y2 , l , f , a , b Tekent lijn vanuit start positie naar een positie met een bepaalde y- coördinaat, welke zou liggen op de lijn welke getrokken wordt tussen de startpositie en de eindpositie. P - plotting mode: 0=reset, 1=set, 2=invert pixel x1,y1 - coördinaten start positie x2,y2 - coördinaten eind positie l - y coördinaat eind pixel f - pixel feature: =0 tekent tot aan eind pixel =1 tekent tot aan eerst gesette pixel A,B - variabele A t/m Z. Wordt gevuld met coördinaten van laatst geplotte pixel. VTAB y verticale tabulatie De cursor wordt aan het begin van regel y gezet. De bovenste regel is regel 0. WEND einde WHILE lus Dit statement is het einde van een `WHILE lus. WEND behoort het eerste statement op de regel te zijn en mag niet worden afgekort. WHILE expr begin WHILE - WEND lus Een WHILE lus, die begrenst moet zijn door WHILE en WEND, wordt net zolang uitgevoerd totdat de expressie achter WHILE gelijk aan FALSE wordt. Indien de expressie al bij het begin false is, wordt het hele WHILE blok overgeslagen. Als de lus verlaten wordt gaat het programma verder achter het WEND statement. WHILE mag tot 10 niveaus genest worden, niet afkorten en moet aan het begin van de regel staan. WINDOW m,x,y,b,h Definieert een denkbeeldig raam in Atom grafische mode waarin wel of juist niet getekend mag worden. m - mode 0 = teken alleen buiten het raam 1 = teken alleen binnen het raam x - x coördinaat linker benedenhoek van venster y - y coördinaat linker benedenhoek van venster b - breedte van rechthoek venster h - hoogte van rechthoek venster WOFF Heft het gedefinieerde raam op. Er mag weer op het hele scherm getekend worden. XDUMP bbbb [,[eeee]] hexadecimale/ascii dump Geeft een 32 koloms hex/ascii dump XIF expr THEN ... expanded IF Het XIF statement behoort te worden gebruikt samen met het ELSE statement. Indien de expressie achter XIF de waarde TRUE oplevert wordt het gedeelte achter THEN wel uitgevoerd en het stuk achter ELSE niet. Indien de expressie de waarde FALSE oplevert dan wordt het stuk achter THEN niet uitgevoerd maar wel het stuk achter ELSE. THEN mag eventueel weggelaten worden. Voor een goede werking moeten XIF en ELSE aan het begin van de regel staan en mogen ze niet worden afgekort. Merk op dat het gedeelte achter THEN uit meerdere regels mag bestaan, maar het gedeelte achter ELSE mag maar uit een regel bestaan. ZERO wist variabelen Dit is een statement dat de variabelen A t/m Z vult met de waarde 0. |