17. ENKELE OPMERKINGEN OVER HET PROGRAM-
MEREN IN MACHINETAAL
Bij het programmeren
in machinetaal worden de !nstructies
niet,
zoals in BASIC, door een leesbaar codewoord
ingegeven, dat door
de interpreter
in een aantal instructies
wordt omgezet. Machinetaal
programma's
bestaan uit machinecodes,
die de microprocessor
direct aansturen. Een voordeel van machinetaal programma's is, dat
ze vele malen sneller zijn dan programma's
in BASIC. Een moeilijk-
heid is dat alle instructies één voor één gegeven moeten worden,
terwijl in BASIC een aantal standaard-routines
aanwezig is. Het
maken van een machinetaal programma
kost veel meer tijd en
moeite dan een overeenkomstig
programma in BASIC. In het alge-
meen zal men dus die delen van een programma waar de tijd geen
rol speelt, in BASIC maken en stukken die snel moeten werken in
machinetaal (bijv. sorteerroutines
voor grote bestanden). Gelukkig
is het op een eenvoudige wijze mogelijk machinetaal programma's
te koppelen aan een BASIC-programma.
Koppelen
machinetaal
aan BASIC
Alvorens een machinetaal programma in het geheugen te plaatsen,
is het verstandig
een stuk geheugen hiervoor te reserveren zodat
het machinetaal programma
niet door BASIC overschreven
kan
worden. Meestal kiest men hiervoor de bovenkant van het
geheugen.
Dit kan voor BASIC ontoegankelijk
worden gemaakt
d.m.v. een CLEAR opdracht, bijv.
CLEAR 50, &H9000
Deze opdracht zet de stringruimte
op 50 bytes grootte,
en
verschuift de bovengrens van het geheugen naar &H9000, zodat
het bovenste deel (vanaf &H9001) bij de normale programmauit-
voering niet wordt gebruikt. Vervolgens kunnen in dit deel machine.
taalcodes ~ worden geplaatst. Deze codes worden door de fabri-
kant van de Z80 microprocessor
opgegeven. In het BASIC-
programma kunnen we deze hexadecimale codes in DATA regels
opnemen, bijv.:
1000 DATA code, code, code, code, code, STOP
Met behulp van READ en POKE opdrachten
worden de codes nu
naar de beschermde
ruimte overgebracht.
100 RESTORE
1000:P = &H9001
110 READ A$:IFA$
= "STOP"THEN
150 ELSE POKE
P,
VAL("&H"+A$):P=P+1:GOTO
110
150 REM Voortzetting
programma
61