home *** CD-ROM | disk | FTP | other *** search
/ Pokey's Magazine 5 / Pokeys_Magazine_05_1991_02___nl_Side_B.atr / postcr.txt < prev    next >
Text File  |  2023-02-26  |  4KB  |  1 lines

  1. ə①Deze keer in plaats van de post een extra stukje basic.¢¢De laatste keer ging het over de opdracht 'POKE' in deze computertaal.¢Met POKE kun je getallen in het geheugen van de computer zetten, net als bijvoorbeeld de opdracht STA of STX in machinetaal.¢¢Dit keer sluiten we aan bij het maken van een displaylist zoals die in het machinetaal gedeelte aan de orde is.¢¢Er kunnen vanuit basic een aantal standaard dilplaylists worden opgeroepen. We doen dit met de opdracht GRAPHICS n. Of alleen GR. n. Waarbij n een nummer is. Het volgende programma'tje laat er een aantal zien.¢Laadt Basic door een DOS diskette in de diskdrive te doen en de computer aan te zetten zonder op OPTION te drukken. Je krijgt dan het prompt 'READY'. Hierna kun je gaan programmeren.¢Basic werkt met regelnummers. ¢Het programma :¢¢10 FOR I = 0 to 8 ¢20 GRAPHICS I : COLOR 1¢30 FOR J = 0 TO 10 : PLOT J,5 : NEXT J¢30 FOR PAUSE = 0 TO 250 : NEXT PAUSE¢40 NEXT I¢¢Type na het intypen van het programma de opdracht RUN, en zie het resultaat.¢¢Het programma werkt met zgn. FOR - NEXT lussen. Ieder willekeurig woord watje in het programma aanbrengt wordt opgevat als een variabele. Dit kan zijn bijvoorbeeld : OSSESTAART, PUDDING, PRAK, A, B, CW234 etc. Zoalng het maar geen woorden zijn die gelijk zijn aan een opdracht. Dus het woord POKE of FOR of NEXT kan niet dienen als variabele.¢In zo'n variabele kun je een getal opslaan. Kijk maar eens :¢Als je in basic typt : A=1 ( dan op de return knop drukken. )¢En dan aan de computer vraagt ? A of PRINT A ( druk de variabele A af ), dan zie je weer het getal 1.¢Met de opdracht FOR - NEXT kun je  getallen elkaar laten opvolgen in een variabele.¢¢FOR I (de variabele I) = 0 (vanaf 0) TO 8 (tot 8).¢GRAPHICS I ( de displaylist met het nummer van de variabele I )¢NEXT I ( naar het volgende getal in I )¢¢I is dan eerst 0, dan 1, dan 2 etc.¢¢FOR PAUSE = 0 TO 250 : NEXT PAUSE is een lege lus. Het programma verhoogt de variabele PAUSE van 0 tot 250 en meer niet. Dat vertraagt het programma. Vandaar dat de variabele de naam PAUSE heeft gekregen hier.¢¢FOR J = 0 TO 10 : PLOT J,5 : NEXT J¢¢Dit zet op de 5e regel iets op het scherm vanaf kolom 0 tot kolom 10.¢¢Duizend maal je naam afdrukken op het scherm is dan ook een koud kunstje :¢10 FOR I = 0 TO 1000¢20 PRINT "Mijn naam"¢30 NEXT I¢Zet je achter de aanhalingstekens een punt komma ( ; ) dan komt het allemaal netjes achter elkaar.¢¢In mooie gekleurde letters kan het ook.¢¢10 GRAPHICS 2¢20 FOR I = 0 TO 20¢30 ?#6;"Mijn naam"¢40 NEXT I¢¢Het is ok mogelijk de standaard diplaylists op deze manier een beetje aan te passen.¢We zoeken eerst de plaats van de diplaylist in het computergeheugen.¢Deze plek staat zoals uit de machinetaal afdeling bekend in de bytes $230 en $231. In Atari-basic moet het decimaal, dus op plekje 560 en 561.¢Je moet de inhoud van adres 560 opvragen en optellen bij de inhoud van 561 wanneer die met 256 is vermenigvuldigd. Dat moet zo omdat 561 een high-byte is.¢Immers in adres 560 staat bijvoorbeeld : 00 en in 561 staat 06. We weten dat dit hexadecimaal het getal 0600 is.   En dat de computer eerst het lage deel van het getal leest en dan het hoge. De opdracht PEEK leest echter de bytes gewoon zoals ze zijn en maakt geen onderscheid tussen low en high byte.¢Wanneer we echter de highbyte vermenigvuldigen met 256 en optellen bij de lowbyte komen we wel aan het juiste getal.¢¢DPL = PEEK(560) + 256 * PEEK(561).¢¢geeft het goede adres van de displaylist in de variabele DPL.¢¢We kunnen nu de displaylist zichtbaar maken met de opdracht PEEK :¢¢10 DPL = PEEK(560) + 256 * PEEK(561):   RES = DPL¢20 PRINT PEEK(DPL);" ";¢30 DPL=DPL+1¢40 IF PEEK(DPL) = 65 THEN GOTO 60¢50 GOTO 20¢60 FOR I = 0 TO 2¢70 PRINT PEEK(DPL+I)¢80 NEXT I¢90 DPL=RES¢100 POKE DPL,71¢110 POKE DPL+1,PEEK(DPL+5)¢120 POKE DPL+2,PEEK(DPL+6)¢130 END¢¢¢Je kunt er met POKE natuurlijk ook lekker in veranderen. Zo onstaat er een regel met gekleurde letters bovenaan je beeld in het voorgaande voorbeeld. Probeer maar eens wat uit. Met de MAC65 kun je hex getallen omzetten in decimale getallen via de opdracht ? (vraagtekentje). Dat is daarbij misschien wel handig.¢¢Stuur een leuk programma'tje op naar CodeRunner wat in basic op een leuke manier een diplaylist verandert.¢Gebruik daarbij alleen de opdrachten POKE en PEEK.¢¢De meest orginele wordt gepubliceerd.¢¢Tot de volgende keer.¢¢Jack de Bruijn¢¢¢¢¢¢¢