home *** CD-ROM | disk | FTP | other *** search
/ Pokey's Magazine 9 & 10 / Pokeys_Magazine_09__10_1991_06___nl_Side_B.atr / les.txt < prev    next >
Text File  |  2023-02-26  |  8KB  |  1 lines

  1. Zo, vlak voor de vakantie toch nog even een paar instruktie's van Turbo-basic er bij leren. Kun je tijden je vakantie lekker verder met programmeren.¢¢Welkom dus bij de zeven aflevering van de Turbo-cursus....¢¢Wat gaan we deze maand doen?¢¢¢>> Een stukje disk-bewerking¢>> Een paar handige tips¢>> Een paar eenvoudige voorbeelden¢¢¢Laten we beginnen met een paar tips:¢¢In de afgelopen afleveringen hebben we geleerd hoe we een grafisch scherm oproepen. Teven hebben we geleerd om 'iets' naar disk te saven. Hoe leuk zou het zijn als we dat eens gingen combineren. Een grafisch scherm naar disk schrijven en/of van disk ophalen.¢¢Om te beginnen moeten we een grafisch scherm hebben. Laten we graphics 31 (dat is 15+16) een vierkleurenscherm zonder text venster dus.¢¢10 GRAPHICS 31¢¢Nu moeten we er nog een aardige tekening op maken. We doen wat met een paar circels.¢¢20 COLOR 1¢30 CIRCLE 80,95,60¢40 PAINT 80,95¢50 COLOR 2¢60 CIRCLE 10,10,10¢70 PAINT 10,10¢¢Ik neem even aan dat dit allemaal duidelijk is. Mocht dat niet het geval zijn, zie dan de vorige aflevringen er nog eens op na.¢¢Wat hebben we nu? Een Grafisch scherm met daarop twee circels die ingekleurd zijn. Deze helemaal te gekke picture (=plaatje) willen we bewaren.¢¢We doen dit op de volgende manier:¢¢80 OPEN #1,8,0,"D:CIRCELS.PIC"¢90 BPUT #1,DPEEK(88),7680¢100 CLOSE#1¢¢Is dat alles???? Jazeker, dat is alles.¢¢In regel 80 openen we een file. De drive zet de filename op de diskette en wacht tot hij informatie krijgt die in de file moet staan. Deze krijgt hij in regel 90. Hoe en wat komt zo... Deze informatie zet de drive dan in de file en in regel 100 sluit (close) hij de file. De file is klaar en kan later weer opgehaald worden.¢¢Laten we regel 80 eens doornemen.¢¢OPEN #1,8,0,"D:CIRCELS.PIC"¢¢Open is nodig om een file te openen.¢#1 is het kanaalnummer. Onze Atari heeft 7 'kanalen' die hij gebruikt voor zogenaamde inputs en outputs. Bv. het scannen van een toetsenbord. Het lezen en/of schrijven naar het beeldscherm en het lezen en/of schrijven naar randapparatuur. (Drive, printer, datarecorder etc.).¢Wij willen gebruik maken van kanaal 1.¢¢OPEN #1 dus.¢¢Dan volgt er een 8. We hebben een kanaal geopend, maar de computer moet nog wel weten of je data gaat zenden, of dat je data gaat ontvangen. Dit geven we aan met de '8'.¢¢Er zijn diverse mogelijkheden, maar in dit geval leer je er alvast twee. De andere mogelijkheden komen later aan bod.¢¢4 = lezen (data ontvangen)¢8 = schrijven (data zenden)¢¢In ons voorbeeld gebruikte wij de 8 en geven daarmee aan dat we gaan schrijven. (data zenden dus)¢¢OPEN #1,8,¢¢Dan volgt er een 0. Vergeet deze voorlopig. Gebruik voorlopig altijd de 0!!¢¢OPEN #1,8,0,¢¢En dan natuurlijk het apparaat waar het naar toe moet en de naam van de file.¢¢OPEN #1,8,0,"D:  -Diskdrive dus¢¢OPEN #1,8,0,"D:CIRCELS.PIC"¢¢Komen we bij regel 90. Deze lijkt zeer simpel, maar is het niet. Er volgen nu tal van instructie's.....¢¢90 BPUT #1,DPEEK(88),7680¢¢Als we een file hebben geopend kunnen we daar data naar toe zenden. Dit kan met de volgende instruktie's:¢¢PUT #1,WAARDE¢PRINT #1,STRING¢BPUT #1,SERIE WAARDEN¢¢Lees het bovenstaande goed!!!!¢¢Met put kunnen we een enkele waarde naar de file sturen. Deze waarde moet echter kleiner zijn dan 256!!¢¢Het is ook mogelijk om een paar waarden achter elkaar te zenden:¢¢PUT #1,100,10,20,30,40,50,40,30,20,10¢¢Alle waarden die achter #1 staan worden naar de file gestuurd.¢¢PRINT #1,STRING¢¢Dit kan zijn PRINT #1,"Hallo".¢Maar mag ook zijn PRINT #1,A$¢¢Hierdoor wordt Hallo of A$ naar de file verzonden.¢¢Nu de meest krachtige 'PUT-instruktie' die er is:¢¢BPUT #1,STARTADRES,LENGTE¢¢Er worden een hele serie waarden uit je computer gelezen en naar je file verzonden.¢¢Zoals je weet bestaat je computer uit allerlei adressen. Al deze adressen hebben een nummertje. Al deze adressen bevatten een waarde.¢¢Alle waarden die zich bevinden in de adressen vanaf 'STARTADRES' tot 'STARTADRES+LENGTE-1' worden naar de file verzonden.¢¢BPUT #1,1,10¢¢Via kanaal 1 alle waarden vanaf adres 1 naar de file sturen. Het aantal verstuurde waarden is 10. Dus uit adres 1, 2, 3, 4, 5, 6, 7, 8, 9 en 10 worden de waarden gehaald en naar de file gezonden.¢¢Ik ben blij dat ik het allemaal al weet, want het begint mij nu knap waarden en adressen te spoken....¢¢¢Dan komt regel 100 nog.¢¢100 CLOSE #1¢¢Oftewel... sluit de file af, ik ben klaar.¢¢¢¢Zo simpel is het. Ik zie nu allemaal vraagtekens verschijnen en zal dus DPEEK(88) ook nog even uitleggen.¢¢Met PEEK(ADRES) kunnen we de waarde uit adres lezen. Met DPEEK(ADRES) lezen we de waarde uit ADRES maar ook ui ADRES+1¢Waarom dat nu weer. Wel, dat zal ik proberen uit te leggen.¢¢Onze computer heeft ruim 65000 adressen. Je moet om al deze adressen aan te kunnen spreken getallen kunnen vormen tot ruim 65000. Dit is logisch.¢¢Nu kan een adres een waarde hebben van 0 to 255. Dat is nog lang geen 65000. We gaan dit oplossen door van 2 adressen de waarde te nemen. Het eerste adres kan 0 tot 255 zijn maar het tweede adres natuurlijk ook. Hoe komen we nu aan die 65000??? We nemen de waarde van het eerste adres en tellen daar 256 keer de waarde van het tweede adres bij op. Het lijkt een beetje op ons eigen talstelsel.¢Dat loopt van 0 tot 9. Toch willen wij verder tellen dan tot 9. bv 19. Hier lijkt negentien te staan, maar dat is dus niet zo. We noemen het negentien. Eigenlijk staat daar 10 keer 1 plus 9.¢¢Zo komen wij in de computer aan bij  256 keer adres 2 plus adres 1.¢¢Heel ingewikkeld dus. Of toch niet.¢¢Je weet wat een PEEK doet, een DPEEK lijkt daar erg op.¢¢DPEEK(88) Haalt de waarde uit adres 88 en telt daar 256 keer de waarde uit adres 89.¢¢Nu weet je wel wat DPEEK is maar nog niet waar in hemelsnaam dat adres 88 mee te maken heeft.¢¢DPEEK(88) geeft een waarde. Deze waarde is het geheugenadres waar je beeldscherm geheugen begint. Doe bv maar eens een DPEEK(88) en poke in de uikomst een 65. In de linkerbovenhoek van je beeldscherm verschijnt er nu een tekentje. dat heb je er in gepookt.¢¢BV. A=DPEEK(88):POKE A,100¢¢DPEEK(88) geeft dus het eerste adres aan van je beeldscherm. Nu is het beeldscherm precies wat je wilde bewaren.¢¢Komt als laatste het getal 7680.¢¢Dit getal geeft het aantal waarden aan die naar de file verzonden worden.¢Graphics 31 bestaat uit 7680 waarden.¢Als je een ander scherm wilt bewaren:¢¢graphics 0 = 960¢graphics 7 = 3840¢graphics 8, 9, 10 , 11 en 15 = 7680¢¢De andere modes laat ik even buiten beschouwing, want die worden niet vaak gebruikt om te tekenen of text te laten zien.¢¢¢Om nu weer data binnen te halen moeten we het tegenovergestelde doen:¢¢10 GRAPHICS 31¢20 OPEN#1,4,0,"D:CIRCELS.PIC"¢30 BGET#1,DPEEK(88),7680¢40 CLOSE#1¢¢Ipv de 8 gebruiken we de 4. BGET is de tegenhanger van BPUT.¢¢PUT #1 <> GET #1¢PRINT #1 <> INPUT #1¢BPUT #1 <> BGET #1¢¢Nog enkele tips voor de programmeurs onder ons:¢¢Zet aan het begin van het programma altijd een datum, title en korte beschrijving. Als je dan later ooit nog eens op zoek bent naar een programma dat je ooit eens hebt geschreven, kun je makkelijk herkennen.¢¢10 REM ********************¢20 REM *   SAVE PICTURE   *¢30 REM *                  *¢40 REM *    29-06-1991    *¢50 REM *                  *¢60 REM *  SAVED PICTURES  *¢70 REM *   VANUIT GR.31   *¢80 REM ********************¢90 REM¢100 OPEN#1,8,0,"D:NAME.EXT"¢110 BPUT#1,DPEEK(88),7680¢120 CLOSE #1¢¢Nu is het voor zo'n kort programma volstrekte onzin om dit allemaal aan te geven, maar ik mag toch aannemen dat het de bedoeling is om grotere programma's te schrijven....¢¢Als je wilt weten welke variabelen je hebt gebruikt in je programma type je 'DUMP' en dan krijg je alle variabelen, maar ook alle subroutines en labels te zien. Achter de variabelen staat de waarde vermeld. Handig om te kijken wat je programma heeft gedaan.¢¢Indien je tijdens het intikken van een regel erachter komt dat je basicregel te lang wordt, moet je van te voren poke 82,0 typen. Dit zet de linkerkantlijn op 0. Via poke 83,?? kun je de rechterkantlijn instellen.¢¢¢Zo, dat was het voor deze maand. Ik hoop dat ik je weer een stukje verder heb kunnen helpen in de mooie wereld van het programmeren. Heb je vragen of leuke programma'S gemaakt in het kader van deze cursus, laat het mij dan even weten. Misschien wordt het geplaatst...¢¢Rest mij nog om je veel plezier toe te wensen met dit dubbel dikke Pokey's Magazine.¢¢¢John Maris¢¢¢