Pagina 5
instructies functies Het verschil tussen instructies Het invoeren letters en hoofdletters Het gebruik van kleine één toets Commando's en instructies Dodson LNNNNNN Wissen van de onderste regel ‚en, Het gebruik van ””, Foutmeldingen Veranderen een programma "Screen editing” Voorkomen van foutmeldingen de rest Wissen van regel...
Pagina 6
26.3 meerdimensionale Twee- en tabellen Beslissingen IF... THEN Relationele operatoren 2.73 Logische operatoren 2.74 vergelijken strings Programmalussen Sorteren Programma's menu afhandelen van fouten Subroutines Inleiding 28.2 Subroutine op verzoek 28.3 Welke Functies 29.1 Inleiding 29.2 Een willekeurig getal 2.9.3 Lottogetallen geheugenruimte Vrije en het scherm...
Pagina 7
Subcommando's als string 1.13 1.14 Samenvatting ”Sprites” zijn sprites” Het definiëren van sprites kortere te definiëren sprites manier om NNNNN NNNN mnson Sprites op het scherm plaatsen tussen sprites Botsingen Muziek Inleiding Subcommando's de tonen een octaaf voor Subcommando nbbNa9 de octaven voor NNNNN...
Pagina 9
VOORWOORD een moderne en veelzijdige Philips MSX-computer kunt onder thuiscomputer, gebruiken meer leren programma's en om uw eigen programmeren schrijven. Dat kunnen heel eenvoudige, maar kunt programma's uw MSX- ingewikkelde zijn. het spelen ook gebruiken voor computer groot verschillende aantal...
Pagina 10
Hoofdstuk de mogelijkheden van uw beschrijft kunt uitbreiden met behulp van extra computer appara- tuur. tenslotte bestaat Hoofdstuk aantal appendices met belangrijke aanvullende informatie. (aanhangsels) heeft programmeerbaar MSX-computer vrij van 64 Kbyte. alleen geheugen geheugen (RAM) beschikbaar gebruik maakt van ingebouw- geen MSX-BASIC-interpreter, die 32 Kbyte...
Pagina 11
KENNISMAKING MET UW MSX-COMPUTER MSX-computer en randapparaten Televisietoestel pag. Afdrukeenheid (printer) pag. 28 Datarecorder zie pag.17 >» zie pag. Monitor...
Pagina 12
pag. 25 Diskettestation pag. 24 Programmamodule zie pag. Interface-module zie pag. 26 Spelregelaars Het maken van aansluitingen vindt hebt alles dat com- doos nodig een televisietoestel binatie met met uw nieuwe MSX- computer te kunnen werken, inclusief een kabel om uw de antenne-aansluiting verbinden met MSX-computer...
Pagina 13
de antennekabel Verbind TV-aansluiting computer. het andere einde de antenne- Verbind kabel met ingang van uw TV-toestel.
Pagina 14
het netsnoer aan op de Sluit netaansluiting van uw computer. Steek de het stopcontact. steker netsnoer...
Pagina 15
Schakel de door de aan-uitschakelaar computer drukken. Schakel TV-toestel Stem het juiste TV-toestel af op UHF-kanaal. Het staat aangegeven op de achterkant de com- kanaal naast de Gebruikt puter, TV-aansluiting (A). toestel ook om TV-programma's ontvangen, dan verdient het één de voorkeuzetoetsen aanbeveling te reserveren...
Pagina 16
eerste oefening serieus wilt uw eigen computerprogramma's gaan tijd moeten besteden aan het bestu- schrijven, zult deren deze hoeft gebruiksaanwijzing. Maar natuurlijk niet alles van weten programmeren alvast te toetsen. aardig klein programma nemen aan dat kunt enigszins overweg geval een schrijfmachinetoetsenbord.
Pagina 17
thuiscomputer ” A$="MSX PRINT A$; GOTO functietoets wat er gebeurt (bovenste eindeloos dezelfde blijft toetsen) indrukt. De computer woorden op het scherm totdat op de STOP- schrijven, gaat de toets drukt. Drukt STOP, dan nogmaals op computer verder gebleven was. waar definitief te bre-...
Pagina 18
de lees- meer regels Vooral nodig opnieuw zijn dubbele punt heeft belangrijk. Een tekens voorbeeld andere betekenis voor MSX-BASIC heel dan een puntkomma. monitor gebruik van een toestel een beeldscherm, dat monitor speciaal voor gebruik met ontworpen computers. monochrome geeft beelden één monitor kleur,...
Pagina 19
heeft een speciale MSX-computer uitgang voor monitors een speciale kabel voor nodig. Welke (D). type monitor hangt gebruikt. handelaar. Vraag datarecorder gebruik een computerprogramma schrijft, tijdelijk wordt het werkgeheugen de computer. opgeslagen moment computer uitschakelt, gaat het geheugen inhoud van daarmee programma datarecorder...
Pagina 20
cassetterecorder voor dit doel elke Hoewel goede echt geen dure kunt hoeft gebruiken HiFi- een datarecorder afstand- recorder verdient zijn), de voorkeur omdat deze bediening ("Remote control”) tot op zekere hoogte door de computer bestuurd. wordt Cassettes 1.5.1 vastleggen thuiscomputerprogramma's Voor cassettes kunnen...
Pagina 21
de andere kant van stekers zijn kabel drie gemonteerd. Steek de zwarte aansluiting voor afstandbediening (meestal aangeduid REMote control), rode de microfoonaansluiting en de witte (MIC) oortelefoonaansluiting (aan- geduid met Line Out). Opmerking: een datarecorder hebt aansluiten van Voor deze kabel nodig.
Pagina 22
thuiscomputer A$="MSX PRINT A$; GOTO de opneem Druk tegelijk afspeeltoets (REC recorder alsof een gewone PLAY) de recorder maken. zien dat geluidsopname wilt zult instructies nog niet gaat lopen. wacht computer. Tik nu in: MSX" CSAVE "MSX willekeurige naam miniprogramma. voor cassette moet...
Pagina 23
recorder eerst enkele proefopnamen. en maak volu- meregelaar moet meestal ergens tussen de mid- denstand hoogste stand staan. en de Controle het opgenomen programma cassette Door opnemen programma het computergeheugen diskette) wordt niet gewist. het opgenomen Daadoor programma te mogelijk controleren voordat het geheugen wist, en...
Pagina 24
Stop de cassette inlezen wilt programma cassette de datarecorder, spoel de helemaal terug druk de PLAY-toets van recorder CLOAD "MSX" daarna Druk RETURN. programma computergeheugen worden gelezen. Opmerking afstand- een gewone cassetterecorder zonder eerst het commando gebruikt, dient bediening CLOAD te toetsen, daarna te drukken "MSX"...
Pagina 25
FOUND: datarecorder ingelezen, stopt programma het scherm. ”Ok” en verschijnt drie mogelijkheden: hebt lijst functietoets door Druk RETURN. gevolg programmaregels verschijnt (Engels ”LIST”) op het scherm. 2 Druk functietoets in ("RUN"). programma dan worden uitgevoerd. veranderen door kunt of aanvullen programma tikken.
Pagina 26
WAARSCHUWING: ALTIJD COMPUTER VOORDAT SCHAKEL EEN RANDAPPARAAT AANSLUIT OF EEN MODULE EEN VAN DE TWEE SLEUVEN STEEKT. Bedenk informatie het com- alle hierbij verloren gaat op het moment dat putergeheugen uitschakelt. daarom aan dat alles Sluit u wilt apparaat inschakelt. gebruiken voordat computer doeleinden...
Pagina 27
16.2 ”Interface”-modules computer een bijzonder randapparaat wilt diskettestation voorbeeld aansluiten, modem tele- (modulator-demodulator, nodig om foon verbinding maken andere computers), dan hebt "interface”-module nodig (een inter- een speciale het algemeen een twee appara- schakeling die face interface-module aan elkaar koppelt). Deze moet de twee worden gestoken.
Pagina 28
spelregelaars gebruik van meeste MSX-videospelen kunnen zowel met cursortoetsen spel- computer regelaars worden gespeeld. Geeft de voorkeur aan spelregelaars, dan deze aansluiten op de kunt twee aan de voorkant van uw aansluitpunten computer. Dezelfde aansluitingen kunnen worden gebruikt voor andere bedieningskastjes, voorbeeld een grafisch type...
Pagina 29
Het gebruik een afdrukeenheid afdrukeenheid naast een TV-toestel of printer monitor en een datarecorder, een waardevolle aanvulling thuiscomputersysteem. van uw Waarom een printer 18.1 zijn redenen twee vrijwel waarom onmis- printer baar hebt geschreven Als u wilt dit programma bijzonder handig als bekijken, geheel zijn...
Pagina 30
tekens wel margrietwiel of "daisy wheel” geheten). één keer op papier worden afgedrukt. Een voordeel printer de uitstekende afdruk- type reden worden kwaliteit. Om die ze vooral gebruikt voor correspondentie, teksten offset moeten worden gedrukt en dat de dergelijke. Nadelen zijn afdruksnelheid dan die van...
Pagina 31
1.8.4 Werken printer Eerder hebben gezegd dat een programma kunt bewaren nadat afdrukken als "hard copy” het hebt cassette weggeschreven op diskette voordat wist. geheugen kunt Vanzelfsprekend pro- cassette diskette het com- gramma van inlezen putergeheugen "harde afdruk” van alsnog een maken.
Pagina 32
ervoor dat de dan het ingeschakeld Zorg printer volgende commando LLIST dubbele Druk nu op drie RETURN. printer program- maregels netjes op het papier afdrukken. commando wordt gebruikt om alle LLIST program- het computergeheugen die zich maregels, bevinden, te drukken op het papier.
Pagina 33
vier Daaronder "cursor”-besturingstoetsen ”cursor’ op het witte blokje positieaanwijzer teken scherm, dat aangeeft ver- volgende waar schijnen). de schrijfmachinetoetsen enkele midden plus speciale toetsen, gemerkt met ESC, TAB, CTRL, GRPH CODE. Functietoetsen 19.1 deze toetsen functies, kunt kunt oproepen, (zie u zelf programmeren het inschakelen 2.1).
Pagina 34
overige functietoetsen hebben de volgende twee betekenis zoals + STOP, (een plusteken, CTRL steeds betekent toetsen moeten worden tegelijk ingedrukt): toets functioneert SELECT Deze alleen als één van de twee programmamodule hebt aangebracht. dient voor sleuven kiezen van spelvariant (SELECT kies).
Pagina 35
Cursor-besturingstoetsen 1.9.3 pijltjes op deze toetsen richting aan waarin geven de cursor beweegt de desbetreffende toets indrukt. Schrijfmachinetoetsen 1.9.4 meeste toetsen komen overeen met die van normale schrijfmachine. Drukt dan verschijnt A in, letter ”a” het scherm. dezelfde toets Drukt hoofdlettertoets met de tegelijk...
Pagina 36
de hoofdletterstand. Tekens zoals niet en % alleen gebruiken kunt SHIFT-toets indrukt. De toets worden CAPS kan gebruikt om voor- beeld hoofdletters BASIC-programma's toetsen. teken (BS) Met deze toets kunt links de cursor wissen. betekent Backspace = spatie terug) deze grote toets, gemerkt Als u (RETURN) gaat de cursor...
Pagina 37
de accenttoets. kunt er een Frans Dit is °° accentteken een trema mee op een … letter zetten klinkers). (alleen schrijfmachine dient u altijd eerst drukken. accenttoets dan nog geen accentteken op verschijnt het scherm. daarna de toets Druk voorbeeld de gewenste letter letter...
Pagina 38
MSX-BASIC Werken MSX-BASIC inschakelt, nadat op de Als u uw computer juiste hebt aangesloten, de volgende tekst op het manier scherm verschijnen: system enz. controleren er een programma- computer één de twee module aanwezig sleuven. automatisch de volgende niet geval, dan verschijnt tekst op het scherm: BASIC enz.
Pagina 39
naast de cursor wissen deze toets BS-toets. Met tekens wissen achtereenvolgens net kunt zoveel fout te herstellen. Druk nodig RETURN de regel correct eraan dat instructie Denk elke elk commando RETURN-toets moet indrukken. MSX-BASIC zal de instructie uitvoeren en antwoord onmiddellijk het scherm zetten: betekent dat de computer...
Pagina 40
het geheugengebruik. Regelnummer 65520 vraagt niet meer geheugenruimte regelnummer laten kunt ook MSX-BASIC kiezen, regelnummers door eerst het commando te toet- AUTO eenvoudig door voordat met program- sen, gevolgd RETURN, de computer meren ziet dat dan zelf begint. eerste het scherm zet.
Pagina 41
10 PRINT 20 LIST PRINT heeft dat de commando, dat tot gevolg LIST scherm worden programmaregels op gezet (LIST commando wordt programmaregels). lijst het programma kunnen verbeteringen gebruikt om aanbrengen. instructie, Omdat LIST commando geen regel 20 MSX-BASIC na het uitvoeren terugkeren directe stand en regel 30 niet uitvoeren.
Pagina 42
PRINT FRE(O) vertelt hoeveel bytes geheugen- computer vrije hebt. ruimte nog beschikbaar invoeren instructies 21.5 een instructie nogal vaak zult tegenko- PRINT te maken men. gemakkelijk sparen tijd kunt intikkken. MSX-BASIC ver- een vraagteken het vraagteken automatisch de instructie taalt PRINT.
Pagina 43
instructies met één toets Commando's instructies commando's letter Enkele hoeft niet letter te toetsen, want die kunt MSX- voor door één toets middel van invoeren. Daarvoor BASIC dienen functietoetsen tot en met Het was F10. onderste opgevallen dat regel van natuurlijk instructies scherm...
Pagina 44
cies op het scherm kunt proberen gezet. het volgende voorbeeld PRINT ”5+2" PRINT uit- 10 zal berekening regel computer regel 20 tekst het scherm alleen de voeren. zoals tussen aanhalingstekens staat, zeggen 5+2. dubbele (Engels: colon) dient om twee punt elkaar instructies dezelfde programmaregel...
Pagina 45
overzicht van vindt een compleet Appendix foutmeldingen. Veranderen van programma worden kan gemakkelijk programmaregel veran- hetzelfde derd door een nieuwe programmaregel te toetsen. regelnummer Nieuwe kunnen aan programma worden toe- regels nog niet gebruikt regelnummer gevoegd door regels automatisch MSX-BASIC geven.
Pagina 46
= invoegen). Merk veranderd cursor smal betekent teken intoetst streepje. tussen de tekens op het scherm worden gevoegd. letters op de toets Druk ziet dat tussen wordt gezet. schakelt Daarmee de invoeg- Druk nogmaals op INS. cursor verandert functie uit. De blokje.
Pagina 47
Drukt MSX-BASIC fout- geeft RETURN omdat het commando 3-6 niet LISTRINT melding voorkomen kent. kunt cursor naar een door tegelijkertijd de toetsen verplaatsen of door lege regel intoetst voordat SHIFT drukken, HOME LIST Screen = CLear HOME (SHIFT scherm). Wissen van de rest van een regel de plaats...
Pagina 48
Alfanumerieke cijfers en staan tussen aanhalingstekens Voor- altijd (".…”). het laatste beelden: Hoewel "2000". "Philips" en voor- beeld uitsluitend getal dat bestaat, is het cijfers geen kan worden gebruikt. berekeningen voor constante Een numerieke positief...
Pagina 49
$. De naam mag her- hebben, MSX-BASIC willekeurige lengte maar de eerste twee tekens. Voorbeelden kent alleen toe- namen: A$ "Philips"; AB$ "2000"; gestane P1$="MSX"; P2$ = "Rob". "BASIC"; NAAMS 8237. als A-string. Opmerking spreekt maakt 2: MSX-BASIC...
Pagina 50
Voorbeelden alleen de eerste twee toe- tekens. =-25, P1=0.001. 23.4, gestane namen: enkele en dubbele precisie Integers,; numerieke constanten en moeten variabelen onderscheid maken tussen gehele getallen (integers), met enkele precisie en dubbele getallen met getallen precisie. zijn een waarde tussen gehele getallen met Integers...
Pagina 51
dubbele precisie gaat acht geheugen- en zullen posities worden gereserveerd. Voorbeelden: ME*# Dubbele-precisievariabele; geheugen- vraagt plaatsen. _Dubbele-precisievariabele; vraagt geheugen- plaatsen. Enkele-precisievariabele; vraagt geheugen- plaatsen. geheugenplaatsen. Integer-variabele; vraagt Stringvariabele; vraagt geheugenplaatsen plus zijn. tekens evenveel plaatsen string deze voorbeelden kunt geheugenruimte blijkt besparen door of %...
Pagina 52
PRINT -85714285714286 Hoewel de 6!/7! enkele wordt uit- berekening precisie dubbele uitkomst gevoerd, is preci- weergegeven variabele dubbele precisie sie omdat aan- voorbeeld de laatste echter cijfers gegeven. zijn de berekening enkele precisie niet nauwkeurig omdat is uitgevoerd. Voorbeeld E!=6/7 PRINT E! 857143 dubbele precisie...
Pagina 53
variabelen Namen vrij kiezen van namen voor numerieke en bent acht stringvariabelen, mits regels volgende neemt: een letter altijd beginnen naam (A...Z). moet kost elk 2 De namen wilt (al lang zijn mogen teken een geheugenplaats), maar MSX-BASIC kijkt eerste tekens.
Pagina 54
naam”;B$ “Wat INPUT getal Voer een door automatisch wordt vraagteken MSX-BASIC tekst accepteert de aan de toegevoegd. regel alleen informatie. regel 20 wor- numerieke computer den letters, andere tekens uitzondering cijfers en (met geaccepteerd. van komma's) Enkele bijzondere variabelen hebt de beschikking enkele MSX-BASIC...
Pagina 55
één worden Deze kunnen instructie berekeningen voorbeeld: gecombineerd, 40/5+3 10 PRINT Denk aan regel "Meneer Wacht Op Ant- Van Dale woord”, die de volgorde waarin bewerkin- aangeeft uitgevoerd: worden Machtsverheffen Vermenigvuldigen Delen 4 (Worteltrekken) Optellen Aftrekken computer houdt deze het dat volgorde aan, worteltrekken...
Pagina 56
uitkomst van de integer-deling een geheel getal. zijn achter de Deler en cijfers weggelaten. komma deeltal moeten tussen -32768 en + 32787 liggen, maar hoeven geen gehele en 4.3 getallen plaats zijn (10.1 hetzelfde resultaat) geven Modulus-deling zekere het complement Een modulus-deling de deler deelt...
Pagina 58
computer BASIC Wiskundige functies voorkomende Een aantal veel berekeningen wiskundige door worden kunnen MSX-BASIC uitgevoerd. Berekent de absolute waarde getal, dat met weglating van zeggen een eventueel minteken. Berekent cosinus hoek, waar- radialen. hoek uitgedrukt berekent de n-de macht EXP(n) (het grondtal van de natuurlijke logarit- kleiner zijn...
Pagina 59
de datarecorder MSX-BASIC Inleiding een datarecorder Op uw MSX-computer kan worden bestanden aangesloten, waarmee programma's cassette worden kunnen (”files”) weg- en later kunnen worden ingelezen. geschreven weer Het wegschrijven van programma’s cassette worden programma weg- het commando geschreven CSAVE. De procedure als volgt: de recorder...
Pagina 60
Druk op RETURN. Wacht op door een niet wordt gevolgd Als CLOAD naam, cassette eerste programma worden ingelezen staat. Vindt MSX-BASIC programma met andere ingetoetst, naam dan hebt dan verschijnt de op het "SKIP mededeling (PROGRAMMANAAM)" scherm. MSX-BASIC gaat verder zoeken de mede- juiste programma is...
Pagina 61
één Feed” Return” "wagen terug” en ”Line riage instructies hebben deze regel omlaag. Samen twee begin van de de schrijfmachine naar vol- gevolg gende regel gaat. vol- het voorgaande maken aanschouwelijk op het scherm Hetzelfde gebeurt gende. schrijven instructie regel afsluit met PRINT.
Pagina 62
PETE JOHN|, /CRILF ervoor dat de punten en 3 van 2.5.2 uit- Zorg zijn gevoerd voordat cassette naar de gegevens weg- schrijft. inlezen van gegevensbestanden cassette, met de Gegevens, weggeschreven op kunnen instructie worden het geheu- INPUT teruggelezen leest de computer. volgende programma numerieke gegevens,...
Pagina 63
stringconstanten "JOHN" "PETE" zijn kelijke stringvariabele toegekend aan één functie einde van bestand) (End Of File controleren bestand kunt hele is ingelezen. altijd voor dat de punten 2.5.3 uit- Zorg voert voordat een gegevensbestand terugleest computergeheugen. een adressenbestand Programma voor Het volgende programma kunt gebruiken adressen...
Pagina 65
#1:RETURN 20 CLOSE “Einde CLS:PRINT programma” klein adressen Probeer aantal door programma functietoets drukt, wordt te voeren. Als u laatste adres op cassette weggeschreven. ingevoerde adres Drukt dan wordt volgende cassette het geheugen. Vergeet niet ingelezen cassette terug te spoelen voordat probeert adressen lezen.
Pagina 66
febr. maart DATA elkaar zijn Merk DATA-regel strings gescheiden door een komma (dat geldt ook voor nume- leest READ-instructie rieke constanten). regel de eerste constante GOTO-Instructie tabel. De 20 maakt het programma regel terugkeert regel naar waarna de tweede constante wordt gelezen enz.
Pagina 67
kunt plaats van naam van nummer tweede variabele gebruiken: (numerieke) A(18) A(3)=15:B=0 PRINT A(B) geeft het MSX-BASIC antwoord omdat de inhoud van niet gelijk geheugenveld ingevuld, en A(0) regel nul. Verander volgt: A(3)=15:B=3 programma nu opnieuw laat uitvoeren, Als u geeft MSX-BASIC als antwoord want...
Pagina 68
instructie plaatst het getal kolom regel Deze de gereserveerde geheugenruimte MSX-BASIC reserveert zelf geheugenvelden tot en inschakelen. Dimensioneren met de DIM- 10) bij alleen instructie hoeft meer dan velden wilt reserveren. Grote tabellen tamelijk veel kunnen geheugenruimte dat ruimtebeslag te beperken consumeren.
Pagina 69
krijgt voorbeeld Laat regel 20 weg, fout- melding "Redimensioned array omdat probeer- 30" ruimte voor tabel reserveren. Regel 20 tweemaal wist tabel voordat de nieuwe tabel wordt gedimen- sioneerd. dimensioneren kunt ook tabellen voor alfanumerieke variabelen (strings), voorbeeld: A$(20). Beslissingen IF..THEN verdere programma kan afhankelijk...
Pagina 70
10 INPUT ELSE THEN GOTO THEN GOTO ELSE GOTO "A<>B:GOTO 20 PRINT PRINT ”A=B":GOTO het programma kunt verlaten door voor toetsen. Regel 20 een beetje dubbelop. Als u THEN gebruikt kunt GOTO weglaten, en als gebruikt kunt GOTO THEN weglaten. Ook GOTO na overbodig.
Pagina 71
het resultaat de modulus-berekening gelijk is nul. Logische operatoren logische kunnen we operator voor- het ware omkeren, zoals het volgende waarde voorbeeld: 10 INPUT 20 IF "A<>B" PRINT A=B THEN IF A<>B ”A<>B" PRINT THEN regels 20 en 30 resultaat. hetzelfde leiden zijn...
Pagina 72
Resultaat Conditie Conditie waar waar waar waar onwaar onwaar onwaar waar onwaar onwaar onwaar onwaar waar waar waar waar onwaar waar onwaar waar waar onwaar onwaar onwaar waar waar onwaar waar onwaar waar onwaar waar waar onwaar onwaar onwaar waar waar waar waar...
Pagina 73
vergelijken van strings alleen numerieke, maar ook alfanumerieke constan- Niet ten en variabelen (strings) kunnen worden gebruikt THEN-instructie om zien een bepaalde IF... de codes conditie geval worden is voldaan. symbool heeft vergeleken een bepaalde symbolen (elk a=97 voorbeeld: A=65, B=66, code enz.).
Pagina 74
“Einde” PRINT waarde regel 20 wordt de regel krijgt tekst op het scherm gezet regel 30 wordt waar- wordt dan opgehoogd. Als CT groter verder met regel gaat lang programma kleiner de regels 10 is, zullen 20 en of gelijk worden uitgevoerd.
Pagina 75
G(100) getallen (tussen “Hoeveel INPUT en 100) ";A (A<2)OR(A>100) GOTO PRINT “”Nummer”;I; G(I) INPUT NEXT kleiner Als I dan de gaat het verd programma regel sorter ”Ik ben PRINT en” 100 X1i=1:X2=I X3=X1+INT((X2-X1)/2) G(I)<G(X3) THEN IF G(I)>G(X3) THEN X2=X3 X2=X3 THEN X2=X3:GOTO X1=X3...
Pagina 76
2177 Programma's met een menu functies moeten Programma's die verschillende kunnen uitvoeren, beginnen vaak met keuzemenu. Het de keuzemogelijkheden geeft een overzicht van menu en het desbetreffende programmadeel kan worden aan- geroepen door het te toetsen die keu- nummer een voorbeeld hoort.
Pagina 77
instructie dat het heeft regel gevolg pro- regel ontdekt. springt als het fout gramma naar Toetst op de de gebruiker, als antwoord regel vraag kleiner is dan -32768 of groter getal +32767, "overflow”-fout MSX-BASIC geeft Deze fout heeft omdat integer-variabele onderzoekt Regel 50 fout...
Pagina 78
Subroutines 28.1 Inleiding Laten we aannemen volgende programma het geheugen van de opgeslagen computer A:INPUT 10 INPUT C=A*100/B:PRINT ’is”C”"procent van”; PRINT PRINT C=B*100/A:PRINT ’is”"C”procent van”; 60 PRINT 70 PRINT dat program- u zonder twijfel opgevallen zijn maregel 60 identiek is aan regel Daarom kunt de regels een speciale programmaregel gebruiken...
Pagina 79
END-instructie, zodat regel 90 Vergeet belang. direct op regel 70 volgt, dan fout- zal MSX-BASIC without GOSUB” "RETURN melding geven komt. regel Subroutine op verzoek subroutine worden aangeroepen door kan ook mid- del van: inhoud variabele tijd functietoetsen meer onson— + de STOP- CTRL-toets...
Pagina 80
groter dan zijn. de variabele negatief uitkomst de berekening aantal groter door GOSUB-regels, dan gaat MSX-BASIC vol- instructie. voorbeeld regel 40 gende slechts worden uitgevoerd omdat omdat zijn achter drie subroutineregels GOSUB ingevoerd regel 30. een subroutine, afhankelijk van aanroepen een functietoets indrukken indrukken van...
Pagina 81
Merk op subroutine afgesloten regel niet Anders maar END. RETURN, pro- alleen onderbreken door de nog maar kunnen gramma te schakelen. computer Welke voorbeeld berekent MSX-BASIC welke volgende is als een bepaalde datum week intoetst. dinsdag, zondag, maandag, DATA vrijdag, zaterdag nsdag, donderdag,...
Pagina 82
SIN(5) PRINT -.9589242746631 SIN(X) PRINT -.9589242746631 Een volledig overzicht van de beschikbare functies vindt Ze kunnen Programmeurs. Naslagwerk voor worden verdeeld de volgende groepen: functie: Type Con- Diversen Wiskun- String Output Input versie CHR$ CDBL INKEY$ CSRLIN LEFT$ CINT INPUT$ CSNG LPOS MID$...
Pagina 83
29.2 getal willekeurig functie wordt gebruikt om MSX-BASIC dikwijls laten bepalen. Dat getal tus- willekeurig getal ligt senOen de computer een tus- willekeurig getal 1. Wilt voorbeeld laten opwekken (bij werpen met een dobbelsteen te bootsen), dan moet wil- worden lekeurige getal met vermenigvuldigd, waarna wordt...
Pagina 84
Opmerking: elke stopt keer programma het daarna STOP en opnieuw laat CTRL + dezelfde reeksen MSX-BASIC lopen, genereert de eerste getallen, waarvan 32, 24, getallen bestaat. Het verdient aanbeveling de vraag keren te beantwoorden, aantal regel "ja" alleen anders dezelfde reeks elke week u niet krijgt...
Pagina 85
dinaat (die kleinste X-coördinaat aangeeft). regel linkse deze komt overeen kolom meest het scherm. de meest X-coördinaat grootste is 39, rechtse kolom. liggen tussen (bovenste De Y-coördinaten regel) en (onderste regel). vertellen instructie kunt WIDTH computer hoeveel tussen posities regel wenst, waarbij en 40 liggen.
Pagina 86
SCREEN WIDTH “Hallo” 15,10:PRINT LOCATE precies hetzelfde leidt tot resultaat programma het voorbeeld hebben 2.10.2. uit $ we nu regel hebben echter tekststand regel 20 gekozen tekens per geopend weer mogelijkheid regel tekens scherm tekststand op het geven. dan tekststand niet kunt lezen, gebruik goed...
Pagina 87
(Y-coördinaat) als middelpunt (X-coördinaat) en van bijzonder belang. Deze regel Regel hierbij voortdurend wordt doorlopen. Laat regel 30 weg, dan keert na het uitvoeren van regel 20 MSX-BASIC terug naar de directe stand, automatisch terug- waarbij tekststand schakelt echter werkt MSX-BASIC naar niet...
Pagina 88
de directe stand natuurlijk ook CLR-toets U kunt gebruiken (met SHIFT). Instructies voor kleur en grafische beelden 2111 Inleiding kunt gebruik maken van kleuren, MSX-BASIC kleur van de rand, genummerd tot en met de achtergrond tekststand voorgrond grafische stand afzonderlijk worden geprogram- meerd.
Pagina 89
lijn 211.2 trekken instructie lijn scherm tus- kunt op het LINE moeten trekken. Deze punten worden twee punten met hun en Y-coördinaat. kan zowel opgegeven een absolute zijn. Absoluut relatieve waarde en de Y-coördinaat opgeeft zeggen het punt linksboven op het scherm, opzichte waar-...
Pagina 90
= zwart). Verander nu regel 20 als volgt (in dit geval lopen: en laat het programma weer (125,10)-STEP(75,75),1,BF LINE cirkel 2.113 Het tekenen op het Zoals inmiddels cirkel mogelijk weet instructie scherm te tekenen CIRCLE en Y-coördinaat van middelpunt opgeeft. mogen, absolute 2.11.2, zowel...
Pagina 91
Zoals omtrek circa 3,1416 maal straal bekend cirkel. 3,1416. Wiskundig geformuleerd: (pi) cirkel aannemen dat Laten we deel van wilt zoals tekenen, hierboven. rechterafbeelding laatste regel 20 dient volgt programma veranderen: CIRCLE (90,80),20,1,0.7854,4.7124 de cirkelboog bere- wordt als volgt beginpunt kend: bere- 3.1416...
Pagina 92
de instructie deze gebruikt PAINT. Tegelijk instructie moeten de kleur (het kleurnummer) en te kleuren worden vlak positie van opgegeven coördinaten de vorm van en Y-coördinaten. weer absoluut en relatief mogen zijn. door opgegeven coördinaten Vanuit punt dat wordt bepaald, zoek naar MSX-BASIC vlak...
Pagina 93
denveld rood kleuren omdat er geen dat geheel vlak cir- omsloten door rode lijnen. De snijpunten van beide Stop het kels vormen "lekken”. weer met de programma toetsen en STOP. CTRL de grafische stand zoeken MSX-BASIC zoals een gesloten een bepaalde naar kleur, lijn...
Pagina 94
instructie scherm DRAW kunt maken. het scherm MSX-BASIC op laten tekenen. kent DRAW verscheidene sub-instructies, die we afzonderlijk zullen beschrijven lijn 2118 Het tekenen de cursor, kunt Uitgaande van positie van lijn verschillende letter trekken acht windrichtingen. lijn geeft de lengte beeldpunten aan: = noord...
Pagina 95
(80,80),15 PSET 75" "M90, DRAW GOTO regel 30 als volgt en Stop programma, verander lopen: laat programma -5" "M+10, DRAW 2119 B” subcommando's ”N” subcommando's vorige paragraaf kunt laten door de subcommando's voorafgaan ’N” "B” trekken Subcommando maakt cursor ”N” uitvoeren lijn, DRAW-...
Pagina 96
lijn subcommando worden moet elke ”N" voor herhaald als dat de cursor terug gaat naar het u wilt beginpunt subcommando de cursor heeft tot gevolg dat "B” lijn het gewenste zonder wordt naar punt gaat, getekend. kunt proberen met het volgende pro- gramma: SCREEN 2 8OR10D10"...
Pagina 97
tussen wordt en 255, gedeeld door schaalfactor schaalfactor bepalen. getal de subcom- lijnlengte, gedefinieerd met waarmee mando's ”E”, wordt vermenig- enz. en ”R” "U", "M"” blijft totdat een vuldigd. Deze schaalfactor van kracht andere schaalfactor wordt ook als gedefinieerd, onderbreekt start.
Pagina 98
” "AOS4BM80, 80XA$; DRAW "A1S8BM160, 160XA$;” DRAW GOTO subcommando constanten die als Alle DRAW- instructie worden mogen worden gebruikt, vervangen variabelen de volgende formule wordt gebruikt door =variabele-naam”. voorbeeld: ” (80,80),15 2:PSET SCREEN 20 X1=10:X2=5 -=X2;" "M+=X1;, DRAW 211.14 Samenvatting De DRAW-instructie biedt raden...
Pagina 99
intact hebt 2.11 gemaakt, blijven. sprites te kunnen werken, moet aan twee voor- zijn voldaan: waarden andere sprite moet gedefinieerd. Met woor- zijn zien. den: moet eruit moet aangeven beslissen de sprite zichtbaar op het moet zal zijn scherm. 2422 Het definiëren van sprites Sprites...
Pagina 100
Voor linker-"nibble” de vierde de afbeel- regel Voor de rechter-"nibble” ding geldt: &HB6. van dezelfde regel geldt: 8 &HC van de sprite wordt grootte aangegeven SCREEN-instructie. sprite voorgaande afbeelding kan als volgt worden gecodeerd SCREEN A$=CHR$(&HO0) +CHR$ (&HOO) +CHR$(& (&H6C) (&H92 +CHR$ +CHR$...
Pagina 101
beeldpunten bestaat Elke horizontale zijn verdeeld bits. Deze wor- bytes, elk weer den op dezelfde manier hexadecimale vorm geco- deerd kleine sprites. sprites richting worden verticale gecodeerd, Grote zoals voorbeeld: volgende SCREEN (8HO3) A$=CHR$ (&HO1)+CHRS$ +CHR$ (& +CHR$ (&HO7 ) +CHR$ (&HO7 ) +CHRS$ +CHR$ (&HOF)
Pagina 102
0,0,0,6C,92,10,0,0 DATA 30 A$="" B$:A$=A$+CHR$(VAL("8H"+B$)) READ NEXT SPRITE$(1)=A$ worden gedefinieerd: kan als volgt grote sprite SCREEN 1,3,7,7,7,7,15,31 DATA 7,7,7,7,15,31, 25,16 DATA 0,128,192,192,192,192, DATA ‚240 192,192,192,192, 240,48 224, DATA ‚16 A$="” A:A$=A$+CHR$(A) READ NEXT SPRITE$(1)=A$ voorbeeld waarde decimale bytes worden vier regel 80 DATA-regels.
Pagina 103
betekent dat het SCREEN programmaregel: ”10 2,3" stand sprite-type is (grafische schermtype (grote sprites van 32 beeldelementen). hebben het woorden gezegd, nog niet zoveel geworden dat maar voorgaande duidelijk zijn sprites kunt tot tweemaal het formaat vergroten hebt gedefinieerd. enkele beperkingen zijn sprites: gebruik van...
Pagina 104
kleur van de sprite wordt kleur- aangegeven code (zie Appendix de sprite bepaalt welke sprite op nummer scherm verschijnen Onderbreek het toets het volgende voor- programma en beeld SCREEN 0,3,31,63,255,255,63,7 DATA 0,128, 248,255,255, 254, DATA ‚192 0,0,0,108,146,16,0,0 DATA TO'3 AS="" TO 8 A:A$=A$+CHR$(A) READ...
Pagina 105
Onderbreek verander programma en regel volgt: SCREEN dat de sprites ziet zijn. nu tweemaal groot Onderbreek het programma verander nogmaals en regel als volgt: (1,50),1,3 SPRITE laat zult zien programma nu weer lopen, links steeds naar rechts vogel nog vliegt maar nu op de terugweg achter de langs vliegt.
Pagina 106
en regel 340 maakt dat de uitgeschakeld computer weer subroutine terugkeert uitvoeren van de naar regel hoofdprogramma. Muziek 2.131 Inleiding MSX-BASIC kent een speciale instructie, PLAY, muziek kunt laten maken. Door waarmee computer instructie te maken driestem- kunt gebruik deze mige muziek muziek programmeren.
Pagina 107
2.133 Subcommando voor octaven worden ingesteld het subcom- toonhoogte letter On”, mando waarin O woord eerste tussen Octaaf getal 8. De toonomvang octaven. acht computer standaard-octaaf, zoals op een piano, loopt van tot en voorbeeld: PLAY "O5CEGO4CEGOSCEG”. de toonhoogte Subcommando voor 2.13.4 andere manier om...
Pagina 108
kwart noot enz. voorbeeld: PLAY "L8DEL4DCE" de waarde subcom- MSX-BASIC start 4. Als hebben tonen dus de leng- mando niet gebruikt "Ln” kwart noot. 2.136 Subcommando voor verlenging de noten de noten te manier om de lengte Plaatst (.), achter een toon een veranderen.
Pagina 109
A4AA4 á Subcommando lengte van de geluidsvorm 2.13.11 voor het subcommando dat kan worden gebruikt om ”Mn” lengte van de geluidsvorm aan te geven. Luister tussen naar 65535. volgende getal geluidseffecten: "S15M500C" PLAY “S15M1000C" PLAY ”S12M500C" PLAY ”S12M1000C" PLAY kleiner de waarde des te korter duurt...
Pagina 110
10 A$="S12M1000C" "XA$;" PLAY achter de worden Direct variabele moet puntkomma geplaatst. subcommando's Alle constanten, voor de PLAY- instructie worden kunnen worden gebruikt, vervangen door een op de volgende variabele, en wel manier: ”=naam voorbeeld: variabele;". PLAY N=X1/. 2.13.13 Meerstemmig geluid subcommando's de instructie Alle...
Pagina 111
functie 2.13.14 PLAY de instructie functie verwarren met PLAY (niet controleren de PLAY-instructie hele- kunt PLAY) proberen door kunt de volgen- uitgevoerd. maal de regels toe te voegen het voorgaande program- 90 PRINT PLAY(1):GOTO 90 melodie Laat programma opnieuw lopen. Terwijl op het scherm.
Pagina 112
= neutraal o(2m) west = noordwest voorbeeld: 10 A=STICK(0) A=STICK(0) THEN 30 PRINT STICK(0) GOTO voorbeeld wordt variabele regel gelijk gemaakt aan de waarde de ingedrukte cursortoets. de waarde cursortoets zal A Zolang ingedrukt, geen hebben. één de cursortoetsen Wordt ingedrukt, alle uitgevoerd.
Pagina 113
waarde functie oplevert is STRIG(n) actietoets de actietoets niet is ingedrukt wel is voorbeeld: ingedrukt. Een IF STRIG(0)=-1 PRINT THEN STRIG(O) GOTO controleert de spatiebalk MSX-BASIC of regel dat het de waarde wordt ingedrukt. geval op het scherm gezet. STRIG(0) 2144 Het lanceren van een raket raket...
Pagina 115
2010 (I,K),7,8:M=K+32 SPRITE (1,M),9,9 2020 SPRITE 2025 1000:NEXT (1,209) 2030 SPRITE 2040 1000:NEXT K:FOR K=1 TO NEXT 15,4, 7:END :COLOR I=1+1:IF I>200 3000 I=200 THEN 3010 1000: GOSUB RETURN 4000 I=1-1:1IF I<O THEN 4010 1000: RETURN GOSUB links rechts kunt lanceerplatform naar naar...
Pagina 116
instructie 2151 OPEN Er is printer te manier om naar gegevens sturen, de instructie kunt OPEN gebruiken voorbeeld buffer te een randapparaat, openen voor betekent naar printer. gegevens kunt sturen om die te laten verwerken. randapparaat een voorbeeld Hieronder SCREEN naam”;A$ “Wat INPUT...
Pagina 119
Als u tijd de koppen schoon te daarvan beveling tijd voorbeeld maken, reinigingscassette Philips hiervoor 811/CCT. gebruiksaanwijzing van recorder. cassettes koele en droge Bewaar plaats. direct zonlicht en hou ze buurt van radia- Vermijd...
Pagina 120
de aansluitstekers en omdat modules, dergelijke kunnen gaan oxyderen. ervoor dat over de aansluitkabels niemand Zorg van uw kan struikelen. computer een steker losnemen, Moet pak die vast en stevig behoedzaam trek hem Probeer los. nooit steker te nemen door aan de kabel te trekken.
Pagina 121
APPENDICES Inleiding tiental hoofdstuk vindt appendices tot en extra informatie over met J) MSX-computer: Overzicht van foutmeldingen Wiskundige functies Kleurtabel Besturingsfuncties Tekenset “"TIO9nmoow> Gereserveerde woorden Toetsenbord Technische gegevens Processor Video Display (VDP) Programmeerbare geluidsgenerator Verantwoording bewerker deze heeft gepro- gebruiksaanwijzing beerd Engelse termen zo veel mogelijk vermijden.
Pagina 122
alles dat op een cassetteband wordt gebruikt voor een diskette kan worden Daarbij wordt weggeschreven. niet altijd onderscheid gemaakt tussen program- ma's, bestanden en zoals voorkeur dergelijke, doen.
Pagina 123
Overzicht van foutmeldingen Appendix Code Foutmelding Verklaring file bestandsnaam) name (Foute programma- hebt een verkeerde naam gebruikt om een bestand duiden programma file number bestandsnummer) (Fout gebruikt verwijst naar nummer bestand dat nog niet geopend instructie OPEN, hoger nummer bestanden dat aantal MAXFILES gedefinieerd.
Pagina 124
bestand openen OPEN of u probeert KILL opend bestand te wissen geopend File (Bestand niet geopend) open probeert een bestand te lezen weg te nog niet met de schrijven geopend instructie OPEN. direct toegestane directe opdracht) Illegal (Niet instructie hebt ingetoetst directe stand niet...
Pagina 125
operand ontbreekt) Missing (Operand bevat expressie functie, een commando zonder ope- instructie getal rand, zonder zeggen string uit- bewerking kan worden waarop gevoerd. zonder without NEXT (NEXT FOR) variabele de NEXT-instructie cor- respondeert niet met variabele laat- de computer komt FOR-instructie, tegen zonder voorafgaande NEXT-instructie...
Pagina 126
Redimensioned gedimensioneerd) (Array opnieuw array zijn twee DIM-instructies voor dezelfde variabele variabele die gegeven, wordt geDIMensioneerd. gebruik zonder without RESUME foutmelding) (RESUME wordt met error computer RESUME- instructie gevraagd het te her- programma vatten zonder dat ERROR de instructie uitgevoerd. GOTO zonder RETURN...
Pagina 127
Type mismatch (Verkeerd type) alfa- variabele wordt numerieke waarde toegekend numerieke omgekeerd, functie alfanumerieke waarde toegekend plaats van nume- rieke waarde. Unidentified (Onbekend line regelnummer) number een instructie commando verwijst bestaande naar een niet programmaregel. Unidentified user (Onbekende gebruikersfunctie) function wordt een gebruikersfunctie aangeroepen voordat...
Pagina 128
functies Appendix Wiskundige functies Een aantal wiskundige kan niet rechtstreeks door MSX-BASIC Niettemin kunt uitgevoerd. worden functies door te maken uitvoeren deze gebruik hieronder gegeven functies. Moet niet afgeleide beschikbare MSX-BASIC wiskundige functie pro- gramma meermalen worden uitgevoerd, zinvol deze functie aan defi- begin van...
Pagina 131
Appendix Besturingsfuncties alle tabel geeft een bestu- overzicht volgende functies Deze worden ringsfuncties MSX-BASIC. en een andere door tegelijkertijd CTRL aangeroepen de tweede vermeld drukken. Voor toets, kolom, functies beschikt aantal MSX-computer over derde Deze kolom. speciale toetsen. staan kunt indrukken voorbeeld tabuleren CTRL...
Pagina 132
Cursor rechts naar links Cursor naar Cursor omhoog Cursor omlaag de besturingsfuncties Beschrijving tekens deze volgende teken Alternatieve functie wordt het teken alternatief Appendix (zie Cursor eerste teken woord cursor naar voorgaande gaat naar het voorgaande woord. Voor MSX-BASIC 0.9..z het eerste teken A...Z,...
Pagina 133
het scherm de eerste cursor gaat naar positie van eerste het scherm. wist regel Cursor logische één meer scherm- naar begin volgende regel regel (die kan omvatten) wordt regels doorgegeven MSX-BASIC (ENTER bij sommige com- de cursor puters) gaat naar begin van de volgende regel.
Pagina 134
Tekenset Appendix alle tekens overzicht Deze appendix geeft een teken op het scherm MSX-BASIC zetten. matrix van beeldpunten. opgebouwd links teken staan decimale en twee codes, Onder hexadecimale code. worden rechts Deze kunnen combinatie met functie CHR$(X), waarin gebruikt decimale de hexadecimale code zijn verscheidene...
Pagina 135
Ï AH2T BH26 8H28 &M25 8001 8H29 &. 8432 a no SH6F SHGE ASAACe 122 8H7A 123 8H7B 125 8H7D 126 SHTE BHTF tiAd 133 AMB 135 BH87 BHB3 BHB4 146 BH92 SHOT 1443M00 &HBC BHBD SMBF BHOS...
Pagina 137
tekens Alternatieve tekens Behalve kent vorige twee pagina's MSX-BASIC nog tekens de codes alternatieve deze tekens oproepen programma kunt 65...95. instructie door maken van gebruik CHR$(1). voorbeeld: SCREEN CHR$(65) PRINT CHR$(1)CHR$(65) PRINT Regel 20 zet het teken op scherm normale code zeggen de hoofdletter 65 hoort,...
Pagina 138
Tekenmatrix teken de tekenset matrix opgebouwd Elke 8 beeldpunten. matrix regel van verdeeld die respectievelijk beeldpunten, waarden hebben. alle 8, 4, 2 beeldpunten vier zijn, waarde totale blokjes: "gevuld" 8+4+2+1= &HF. Zijn alle beeldpunten de totale waarde onderstaande "leeg", alle mogelijkheden getekend afbeelding zijn...
Pagina 139
Gereserveerde woorden Appendix volgende woorden MSX- gereserveerd voor zijn variabelen worden mogen niet als namen BASIC voor gebruikt: DATA NAME SAVE SCREEN DEFINT NEXT INKEY$ DEFDBL ocT$ DEFSNG SOUND INPUT SPACE$ AUTO DEFSTR INPUT$ DEFUSR BASE INSTR BEEP OPEN DELETE SPRITE SPRITE$ BINS...
Pagina 140
Toetsenbord Appendix deze appendix tekens vindt overzicht van alle het toetsenbord worden opgeroepen. kunnen heeft zes verschillende toetsen- feite MSX-computer één: borden zonder normaal met GRPH met SHIFT, zonder zonder SHIFT CODE SHIFT. Goed beschouwd een zevende toetsenbord, nadat de CAPS-toets beschikbaar eenmaal letters produceert de...
Pagina 141
Tekens inschakelen computer, zonder dat van de CODE of GRPH is ingedrukt. CAPS, SHIFT, e=|[ns “ < > Beschikbare tekens een toets hoofd- tegelijk met Iettertoets wordt ingedrukt. (SHIFT) «...
Pagina 142
de lettertoets Beschikbare tekens tegelijk met GRPH-toets wordt ingedrukt. stop ||[seeer]|| elETENTE] de lettertoets Beschikbare tekens tegelijk met wordt GRPH-toets en de SHIFT-toets ingedrukt.
Pagina 143
Beschikbare de lettertoets tegelijk met tekens CODE-toets ingedrukt. wordt lettertoets Beschikbare tekens met de tegelijk CODE-toets en de SHIFT-toets wordt ingedrukt.
Pagina 144
Technische Appendix gegevens Chipset Central Processing Unit (Centrale ver- werkingseenheid): Z80A, klokfrequentie MHz. Processor Video Display TMS-9929A of equivalente geïntegreerde schakeling. Programmable Sound Generator (Program- meerbare geluidsgenerator): GI AY-3-8910 equivalente geïntegreerde schakeling. Interface Programmable Peripheral (Program- interface meerbare randapparatuur): voor 18255 Geheugenopbouw HFFFF...
Pagina 145
gebruik van MSX-BASIC wordt BASIC-interpreter het werkgeheugen (32 Kbyte) van sleuf gekopieerd blijft sleuf werkgeheugen Daardoor vrij (RAM) van circa 32 Kbyte over voor programma's, gegevens dergelijke. de geheugenadressen gebruikt computer en &HF380...&HFFFF als werkruimte. 8&H8000...&H831F logische van de wordt geheugenruimte processor van de vier "sleu-...
Pagina 146
input/output adrestabel rechtstreeks te com- MSX-BASIC mogelijk municeren uitgangspoorten door gebruik instructies te maken van WAIT en de functie hiervoor Programmeurs. INP. Naslagwerk voor ADRESS DESCRIPTION REMARK data Port write 8255 data read Port data Port write data read Port data Port write...
Pagina 149
Aansluitingen printer Naam PSTB PDBO PDB1 PDB2 PDB3 OONDNsON— PDB4 PDBS PDB6 PDB7 Busy Connection niet aangesloten...
Pagina 150
Processor Video Appendix Display (VDP) Deze MSX-computer uitgerust VDP. een beeld op het levert informatie die nodig alle scherm beschikt Daartoe brengen. over eigen video-werkgeheugen Kbyte. (RAM) videogeheugen kan worden uitgelezen met func- informatie rechtstreeks VPEEK geheugen worden geschreven de instructie VPOKE.
Pagina 151
plaats van de tabellen videogeheugen wordt aangegeven door de variabele BASE(n). Met PRINT het eerste adres BASE(0) kunt de naamtabel geeft het eerste adres PRINT BASE(2) opvragen; patroontabel. Eerst een voorbeeld. O:WIDTH SCREEN “Hallo” PRINT PRINT BASE(0), BASE(2) A=VPEEK(BASE(0)):PRINT 50 B=A*8:FOR I=B C$="00000000"+BIN$(VPEEK(BASE(2) +1)) RIGHT$(C$,8)
Pagina 152
SCHERM TJ = SCHERM POSITIE "1 tekencodes naamtabel van de tot en met gebrui- ken de eerste kleurcombinatie de kleurtabel. De vol- codes gebruiken tweede kleurcombinatie gende enz. Een kleurcombinatie kleurtabel wordt verdeeld de vorm van opgeslagen byte, bits bits. eerste geven de voorgrondkleur...
Pagina 153
80 D=VPEEK(BASE(6)) "##";D/16 PRINT USING "##";D PRINT USING voorbeeld de eerste adressen worden van naam-, op het scherm gezet, patroon- en kleurtabel gevolgd door het teken de vorm en de naam van geval de hoofdletter "H"). voorbeeld bestudeerd, Hebt typ dan SCREEN u dit 0:WIDTH...
Pagina 155
stand Grafische deze stand het scherm verdeeld regels van 32 bestaat posities. Elke uit vier blokjes positie beeldelementen blokje kan ("pixels") en bepaal- hebben. kleur wordt de posi- schermtype het scherm bepaald tie op plaats naam- door de naamtabel geeft aan tabel.
Pagina 156
PATROON NAAM SCHERM TABEL TABEL SCHERM POSITIE ——_— 2046 2047 Sprites alle sprites worden het videogeheugen geplaatst. zeggen hoe de sprite definitie van sprite, de sprite-patroontabel. eruit vastgelegd ziet, de sprite scherm op het opgeslagen plaats van = toekenning). sprite-attributietabel ("attributie”...
Pagina 157
de eerste byte wordt Deze waar- gezet. Y-positie bepaalt de de, die kan liggen tussen 255, regel het scherm. hebben de volgende de waarden Daarbij betekenis: 0.191 geeft het het scherm aan; regelnummer sprite zichtbaar op het scherm; niet 224.255 de schermregels komt -31...-1;...
Pagina 159
eerste adres de sprite-patroontabel tekststand videogeheugen varia- vinden bele grafische stand BASE(14) BASE(9), grafische stand BASE(19). SPRITE- ATTRIBUTIE- SCHERM TABEL VY-positie x:poslte SPRITE- PATROON- TABEL 2046 2047 het geheugen het commando en toets het volgende programma 16,56,68,254,16,18,16,16 DATA A:VPOKE(BASE(9)+I),A READ NEXT 60 PRINT: PRINT: PRINT...
Pagina 160
(BASE(8)+1),1I VPOKE NEXT GOTO voorbeeld laat zien dat het wel degelijk mogelijk tekststand door rechtstreeks sprites te gebruiken het videogeheugen communiceren. Onderbreek toets SCREEN programma en 0:WIDTH Registers heeft zijn De VDP inhoud beschikking. registers de registers variabele ligt bij MSX-BASIC vast waarin tussen...
Pagina 161
Sprite-patroon- Register tabel Tekst kleur Tekst kleur Register Register 5de Sprite Tekststand stand Grafische stand Grafische Tekststand Geen externe invoer naar externe invoer naar interruptie Geen interruptie van presentatie op het scherm Geen (het tekst scherm kleur toont presentatie op het scherm. beeldelementen groot Sprites zijn 8...
Pagina 162
uitgelezen of extern register wordt teruggesteld ("reset"). register wordt op N-statusvlag sprites twee of meer geheel gezet gedeeltelijk samenvallen; dat zeggen dat één beeld- minste element gemeenschappelijk hebben. De N-vlag wordt weer op 0 gezet uitgelezen register extern wordt teruggesteld ("reset"). het inschakelen Register 8 moet...
Pagina 163
tekststand rand kleur grafische stand bevatten ”Naamtabel”, "Kleurtabel” enz. registers het eerste adres de betrokken tabellen. door tabellen videogeheugen mogen gezet dan door gebruiker op een andere plaats worden mits de volgende regels is aangegeven, MSX-BASIC acht worden genomen: naamtabel moet beginnen op adres op een adres dat een veelvoud is van...
Pagina 164
programmeerbare Appendix J geluidsgenerator een programmeer- MSX-computer uitgerust met bare geluidsgenerator Sound Genera- (Programmable zestien registers. Instructies tor, PSG) kunnen met de instructie de vorm behulp SOUND waarde deze registers rechtstreeks worden geplaatst. instructie tegenstelling blijft PLAY, gebruik voortduren totdat de inhoud van geluid SOUND...
Pagina 165
wordt voor de kanalen toonhoogte A, B bepaalt tot en met geplaatst. Register registers bestemd de aangegeven ruis voor welk kanaal toon 00111110 bedraagt, binaire inhoud van register dat de kanaal wordt betekent toon alleen weer- gegeven. alle kanalen vastgelegd geluidssterkte voor registers...
Pagina 166
Ruistonen Ruis wordt als volgt bepaald: = CF/(16x Hierin is: ruis ("Noise Period”) periodeduur 1.99675 klokfrequentie MHz) ruisfrequentie ("Noise Frequency”) ruistoon ("Noise Tone”) (register Voorbeeld: ruistoon van 30 wordt als volgt bepaald: = (1.99675 6)/(16 103)) betekent: register Lengte van de vorm vormlengte wordt...
Pagina 167
Programmavoorbeeld het geheugen het commando toets het volgende programma SOUND NEXT &H3E SOUND SOUND &HOF &H10 TO &HFO SOUND NEXT SOUND &8HOF SOUND &HO7 8H10 SOUND 8H10 SOUND &H10 SOUND &H40 SOUND SOUND &HOO de regels Met behulp van FOR..NEXT-lus alle met 30 regel 40...
Pagina 168
NEXT 6,8H10 SOUND 7,8HO7 SOUND 8,8H10 SOUND &H10 SOUND SOUND &8H10 8H40 SOUND 8HOE SOUND worden geproduceerd door de geluiden die hoort Alle Nadat geluidsgenerator. uitgevoerd, programma keert directe stand, naar de MSX-BASIC terug maar door. als de registers geluid gaat stopt pas de toetsen...