MILC logo

IndexVorigeVolgendeLeeg

Cursus ML voor MSX (1)
Genic Clubguide, 00-00-00


    

   - Met toestemming overgenomen van Future Magazine #8 -


          C U R S U S   M L   V O O R   M S X  (1)
         ==========================================

Ofwel   een  cursus  machinetaal  voor  beginners.  Bij  het 
programmeren van  machinetaal programma's  is het  eigenlijk 
een must om te werken met een zogenaamd assembler programma.

Een  assembler stelt  u in  staat om in de assembler taal te 
programmeren, waardoor het voor u een stuk makkelijker wordt 
om een programma in machinetaal te schrijven.

Deze cursus  is bedoeld om mensen die weinig van machinetaal 
afweten  de beginselen van deze taal bij te brengen. In deze 
cursus willen we de volgende dingen opnemen

- Een uitvoerige uitleg van de microprocessor, de Z80

- De  3  belangrijkste  talstelsels,  Binair, Decimaal  en 
  Hexadecimaal

- Een  bespreking  van het  grootste gedeelte  van de  Z80 
  instruktieset.

- Alle registers en indexregisters van de Z80

- het Vlag register

- Een overzicht van de geheugenindeling van de MSX(2)

- Een bespreking van de MSX2 videochip, de V9938

- En  tenslotte  een  compleet  overzicht  van  alle  MSX2 
  ROM-BIOS routines (inclusief het SUB-ROM).


                    WAAROM MACHINETAAL?

Het  antwoord  hierop  is  vrij  simpel.  BASIC programmeurs 
zullen vaak te kampen hebben met de traagheid van deze taal. 
Dit is  ook niet  zo verwonderlijk want de BASIC interpreter 
vertaalt  eerst elke  regel naar  ML voordat  hij die  regel 
uitvoert.

Dit vertalen  neemt erg  veel tijd  in beslag. Daarom zul je 
ook  niet zo snel een database of iets dergelijks geschreven 
in  BASIC  tegenkomen. In  machinetaal gaat  alles een  stuk 
sneller (soms wel een factor 50) want de computer hoeft niet 
eerst  alles  te gaan  vertalen naar  machinetaal, want  dat 
heeft de assembler immers al gedaan.

Een ander  nadeel van  BASIC is dat je niet het onderste uit 
de   computer  kunt  halen,  omdat  er  gewoon  niet  genoeg 
instructies voor  aanwezig zijn.  In machinetaal  kun je wel 
het onderste uit de computer halen, want je spreekt de chips 
rechtstreeks aan.

Het oogt natuurlijk ook veel professioneler om een programma 
in machinetaal  te schrijven. Al deze redenen zijn voldoende 
om in machinetaal te programmeren in plaats van BASIC. Er is 
slechts   ‚‚n   echt   voordeel  dat   BASIC  heeft   t.o.v. 
machinetaal,  en dat is de moeilijkheidsgraad. Een programma 
schrijven  in  BASIC  is  gemakkelijker  dan  een  programma 
schrijven in machinetaal.


                      WELKE ASSEMBLER?

Er  zijn  veel verschillende  assemblers verschenen  door de 
jaren   heen   die   nogal   verschillen   in   functies  en 
gebruiksvriendelijkheid. Waar  u op moet letten bij de keuze 
van  een assembler  is de  snelheid van  het assembleren, de 
flexibiliteit  van   de  assembler,   en  of   er  ook   een 
dis-assembler bij zit.

De beste assemblers zijn DEVPAC 80 van Hisoft en WB-ASS2 van 
Green. Ook is er ZAS, voor die mensen die niet aan de andere 
assemblers  kunnen  komen.  Deze  assembler  is  een  beetje 
langzaam,  maar wŠl  public domain, in tegenstelling tot die 
andere twee. ZAS staat in MCM nummer 38.


                   DE Z80 MICROPROCESSOR

De microprocessor van de MSX is de Z80A processor. De Z80 is 
een 8/16 bits processor. Dat wil zeggen dat hij 8 of 16 bits 
registers heeft  en een  8 bits  brede databus.  Zonder deze 
processor kan de computer zijn werk niet doen, dit maakt ook 
dat deze chip de belangrijkste is van de computer.

De  Z van  Z80 komt  van Zilog Inc. De 80 is een erfenis van 
een Intel  voorloper, de  8080, een veel gebruikte processor 
in  PC's. De  Z80 is  eenvoudig te programmeren en heeft ook 
niet zo'n grote instruktieset.


                        TALSTELSELS

Zoals u  waarschijnlijk reeds  weet, is  uw MSX  computer in 
staat  om  met  verschillende  talstelsels  te  werken.  Het 
stelsel  wat we  normaal altijd  gebruiken is het zogenaamde 
tientallig stelsel, ook wel het decimale stelsel genoemd.

Daarnaast   zijn   er  ook   nog  twee   andere  belangrijke 
talstelsels, zoals  het Hexadecimale en het Binaire stelsel. 
Ook  is er  nog het  Octale stelsel, maar daar wordt bij MSX 
bijna geen gebruik gemaakt.

De computer  zelf gebruikt alleen het binaire stelsel. Als u 
in  BASIC  programmeert  worden  alle  instrukties  door  de 
interpreter omgezet naar binaire codes, die voor de computer 
begrijpelijk zijn.

Dit  binaire stelsel is echter voor mensen niet eenvoudig te 
begrijpen, want  een binair  getal bestaat  uit acht cijfers 
die  0 of  1 kunnen  zijn. Bv.  00001001. Dit is voor mensen 
moeilijk te  begrijpen. Niemand  kan in ‚‚n oogopslag zeggen 
dat 00001001 hetzelfde is als het getal 9.

Hiervoor  is het Hexadecimale stelsel ontworpen. Dit stelsel 
is  voor  mensen iets  gemakkelijker te  begrijpen. Bij  het 
Hexadecimale  getallensysteem   maken  we  gebruik  van  het 
grondtal 16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

In  BASIC  moeten  de  Hexadecimale  getallen vooraf  gegaan 
worden door "&H". Bij het gebruik van een assembler wordt er 
meestal  ook "&H"  gebruikt, of  er wordt  een H  achter het 
hexadecimale getal  gezet. Soms  gebruikt men ook # voor het 
getal, maar dit komt minder vaak voor.

Vb. FFH , &HFF, #FF (255 Decimaaal, 11111111 Binair).

Maar  bij de  meeste assemblers kunt u ook gebruik maken van 
het gewone  Decimale stelsel.  Hier hoeft dan ook geen teken 
aan vooraf te gaan.

De volgende aflevering zal de registers en een stukje van de 
instruktieset van de Z80 behandelen. Dit komt dus, als alles 
mee zit op Sunrise Magazine #1 (jippie!).

                                                Jelle Bosma

    

Index

Vorige

Volgende