home *** CD-ROM | disk | FTP | other *** search
/ Pokey's Magazine 6 / Pokeys_Magazine_06_1991_03___nl_Side_B.atr / crmaart.txt < prev    next >
Text File  |  2023-02-26  |  8KB  |  1 lines

  1. ¢Code-Runner Maart 1991¢¢-----------------------------------¢¢De vorige keer werd de 'displaylist' behandeld. Deze keer een voortzetting daarvan.¢Er zijn mensen die moeite hebben met de in de voorbeeldprogramma's voorkomende instructies die nog niet zijn behandeld.¢Natuurlijk zijn die instructies moeilijk te begrijpen. Het gaat er dan ook niet om deze instructies of het hele voorbeeldprogramma tot in de details te kunnen volgen. Dat komt later vanzelf.¢¢Het gaat natuurlijk om het gedeelte wat je wel begrijpt. Het is nu eenmaal onmogelijk om een voorbeeldprogramma te maken en er uitsluitend de behandelde instructies in te gebruiken. Zoiets kan wel met Turbo-Basic of een andere high-level taal. Machinetaalinstructies zijn vaak ingewikkeld en omvatten niet zo veel. Met de basic opdracht 'PRINT' is gelijk een heleboel mogelijk en makkelijk te begrijpen. Vergelijk dat maar eens met de m.c. opdracht LDA of STA of INC etc.¢¢Voor een beetje programma moet je een heleboel instructies kennen.¢De voorbeeldprogramma's lopen daarom altijd een beetje op de zaak vooruit.¢Wat je er van snapt is mee genomen. ¢¢Het gaat er bij het leren programmeren  ook om wat je zelf doet ! ¢¢Het kan dus helemaal geen kwaad als je zou proberen te achterhalen wat een onbekende instructie doet of niet doet.¢Leren programmeren is niet iets wat ergens stopt. Waarna je een zucht kunt slaken. Zoals: 'En nu weet ik alles'.¢Het blijft ook in de toekomst iets van zelf uitvinden. Proberen, proberen, vergissingen maken, opnieuw proberen etc. Dat is bij iedereen die programmeert. ¢-Dat is programmeren.-¢Ik ben dan ook geen voorstander van een al te gemakkelijke benadering. ¢Als je naast deze kursus, of welke kursus dan ook, zelf geen boeken zoekt en/of ook niet zelf probeert, ben ik bang dat je ergens in de toekomst vastloopt !¢¢Wie iets van de kursus niet snapt of speciale uitleg wil kan altijd bellen naar de helplijn. In dit geval tel. nr. 010-4227163. Of schrijf.¢Een speciaal kursus BBS (via je modem bereikbaar) is in de maak.¢Het is dan ook volstrekt niet nodig dingen niet te snappen, het gevoel te hebben dat het te snel gaat, etc. etc.¢Deze faciliteiten zijn een onderdeel van de kursus. Als je er geen gebruik van maakt volg je maar de helft.¢¢-----------------------------------¢¢Een klein overzicht van het voorgaande:¢¢1) In een computer zit een geheugen.¢2) Daarin kan men getallen opslaan.¢3) De computer wordt bestuurd door getallen die we codes noemen.¢4) Door die codes op een rijtje in het geheugen op te slaan en die door de computer te laten uitvoeren : voert de computer een programma uit.¢5) Dit is het enige soort programma dat de computer begrijpt.¢6) Je kunt dit soort programma's kant en klaar gebruiken d.m.v. van een hulpprogramma. Bijvoorbeeld Basic.¢7) Je kunt dit soort programma's zelf maken. Dat is machinetaal programmeren.¢Direct programmeren in de enige taal die de computer begrijpt.¢¢Zo'n rijtje machinetaalcodes zijn het meest gemakkelijk samen te stellen via een speciaal hulpprogramma : een assembler.¢Zo'n assembler moet je op een bepaalde manier gebruiken. Deze kursus gebruikt de MAC65. Hiervan is een bruikbare demo-versie gepubliceerd op een eerder verschenen magazine.¢Alleen de 'macro' funktie hiervan is onbruikbaar. Die heb je voor het volgen van deze kursus echter niet nodig.....¢¢-----------------------------------¢-----------------------------------¢¢De 'diplaylist'.¢Hiermee zet de computer het een en ander op het scherm.¢Zo kun je kiezen om bovenaan een regeltje met kleine letterjes te zetten. Daaronder een grafisch schermpje met lijntjes. Daaronder grote gekleurde letters. Daaronder weer iets anders. enz. enz.¢Je wensen zet je op een rijtje in een lijstje wat bestaat uit getallen. Die getallen noemen we codes.¢We zetten dat rijtje codes in het geheugen van de computer.¢We vertellen dan de computer waar het lijstje te vinden is in het geheugen en flop aan al onze wensen wordt voldaan.¢Simpeler kan het niet. Dat juist maakt programmeren op de XL/XE zo aantrekkelijk.¢¢We kunnen zo'n lijstje maken met de assembler.¢De opdracht .BYTE zet op een door ons aangegeven plaats, bij het assembleren, een getal in het geheugen.¢( Een assembler gebruikt vaak regelnummers. Die hebben echter met het werkelijke programmeren niks te maken, dat is bij basic anders.)¢Dus :¢¢10          *=$0600¢¢De door ons aangegeven plaats in het geheugen : byte nr. $0600 om mee te beginnen.¢¢15 DISPLIST¢¢Een 'label', een zelf verzonnen naam op adres $0600. Verwijzing naar zo'n naam is in een assembler het zelfde als verwijzing naar een adres.¢¢20        .BYTE $70,$70¢¢De eerste $70 komt dan op adres $0600, de volgende op $0601 enz.¢$70 is de code voor 8 lege beeldlijnen.¢Dat is zo'n stukje zwart bovenaan je beeldscherm.¢¢30        .BYTE $42¢¢Dat is de code om te beginnen met regels kleine lettertjes.¢¢40        .WORD TEKST¢¢Dat is een maniertje om te verwijzen naar het stukje geheugen waar jouw tekst in kleine lettertjes komt.¢.WORD betekent gewoon 2 keer .BYTE. Waarbij de volgorde van de getallen is omgekeerd.¢Dus als je zet :¢                      .WORD $0600¢is dat het zelfde als .BYTE $00,$06¢¢Het woord 'tekst' is geen gefixeerde machinetaal opdracht maar een zelf verzonnen label wat nu even een getal vervangt in de assembler. Ieder woord wat je kan verzinnen kun je daar zetten. Het is een verwijzing naar een zelfde woord (label) verderop in de tekst wat een adres aangeeft.¢¢50          .BYTE $46¢¢De begincode voor grotere gekleurde letters.¢¢60          .WORD TEKST1¢¢Het label voor het adres van de tweede tekst in het geheugen.¢¢70          .BYTE $41¢¢Aan het einde van de lijst een sprongcode naar het begin van de lijst.¢¢80          .WORD DISPLIST¢¢De verwijzing naar het begin van de lijst.¢Hier had dus ook kunnen staan :¢¢80          .BYTE $00,$06¢De displaylist begint immers op $0600.¢De computer leest altijd eerst het lage deel van een getal en dan het hoge wanneer 1 getal is opgeslagen in 2 elkaar opvolgende bytes.¢¢90 TEKST ¢¢Het verwachte 'label'.¢¢100          .SBYTE " Je verzint maar iets                          "¢¢.SBYTE zorgt er voor dat de tekst die je er achter zet in de goede codes wordt vertaald.¢¢110 TEKST1¢¢Het zelfde maar dan voor de gekleurde letters.¢¢120         .SBYTE " Dat staat er gekleurd "¢¢130         .WORD 0¢¢Een paar nullen om er voor te zorgen dat de volgende code goed in het geheugen komt.¢¢140         LDA #<DISPLIST¢150         STA $230¢160         LDA #>DISPLIST¢170         STA $231¢¢Het stukje programma wat aan de computer vertelt waar de diplaylist in het geheugen staat.¢Je kunt ook zetten, in dit geval :¢¢140         LDA #$00¢150         STA $230¢160         LDA #$06¢170         STA $231¢¢¢180 VAST¢190         JMP VAST¢¢Een eindeloze lus.¢¢Maak deze keer zelf je voorbeeldprogramma. Gebruik de bovenstaande informatie.¢Maak eerst een displaylist. Dan een stukje beeldschermgeheugen. Een paar nullen. En daarachter het stukje programma dat de computer vertelt waar de displaylist staat.¢Assembleer de zaak naar diskette en zoek daarbij uit vanaf welk adres je het programma vanuit dos moet starten.¢Probeer de codes te achterhalen van de opdrachten LDA en STA.¢Schrijf op papier welke codes in het geheugen komen op een rijtje. Dus het feitelijke m.c. programma.¢Je kunt het bovenstaande allemaal zien tijdens het assembleren.¢Met CONTROL-1 kun je het even stil zetten.¢Dus na het typen ASM,,#D:filenaam.OBJ¢(RETURN)¢Vergeet niet eerst je programma te saven met SAVE#D:filenaam.SRC¢¢Veel sukses.....................¢¢¢¢¢¢¢