Een minicomputer in een handzaam formaat was mijn eerste gedachte bij het zien van de Epson Geneva PX-8, een Zilog Z80 gebaseerde CP/M laptop met een ingebouwde servogestuurde micro-cassetterecorder, ROM-packs voor WordStar en BASIC en een hardkunststoffen hoes. De PX-8 draaide het CP/M-80 besturingssysteem, wat in 1984 het gevoel gaf wat Linux nu doet: magisch, krachtig, professioneel. De PX-8 had geen ingebouwde harde schijf, maar je kon het werkgeheugen opsplitsen in werkgeheugen en opslaggeheugen. Vanuit het besturingssysteem kon je bestanden kopiëren van en naar de micro-cassettes. Ook konden bestanden vanuit WordStar en BASIC direct op het cassettegeheugen worden geschreven. Zelfs indexed sequential access werkte vanuit BASIC.
De PX-8 had een LCD met 8 regels bij 80 tekens. De hoek van het scherm kon worden veranderd en de PX-8 had uitklapbare kunststof pootjes en het toetsenbord was gemonteerd op een metalen bodemplaat, zodat het wegtikken van grote hoeveelheden tekst op de PX-8 een plezierige klus was.
TRS-80 is de benaming van verschillende series van computers uit de late jaren zeventig en vroege jaren tachtig van de toen pas gefuseerde bedrijven Tandy & Radio Shack. De eerste uit de serie was de TRS-80 (later Model 1 genoemd om onderscheid te maken met de andere computers in de TRS-80 serie) die was uitgerust met een Zilog Z80 microprocessor en op 3 augustus 1977 werd geïntroduceerd. In 1977 zagen drie ‘home computers’ het licht: de Radio Shack TRS-80, de Apple II en de Commodore PET. De TRS-80 was de enige computer op dat moment met een Z80 microprocessor, de Apple II en Commodore PET hadden elk de MOS Technology 6502 aan boord.
De Model 1 was een computer in de vorm van een dik toetsenbord dat werd aangesloten op een losse monochrome monitor. De computer beschikte over een BASIC-taal in 4kB ROM en was standaard uitgerust met 4 kB RAM. De TRS-80 Model 1 kon later ook uitgebreid worden met een zogenaamde Expansion Interface, waarmee beschikt kon worden over meer geheugen en een aansluiting voor een parallelle printer. Ook kon men hierdoor de computer verder uitbreiden met diskettestations en een seriele verbinding. Naast BASIC kon men ook programma’s ontwikkelen in zogenaamde assembler of machinetaal.
De Intel 8080 was een 8-bits microprocessor ontworpen en gefabriceerd door Intel vanaf april 1974. Een microprocessor bevat alle functies van een processor (accumulator, programmateller, statusregister, stackpointer en arithmetic logic unit) in een enkele chipbehuizing. De 8080 werd gebruikt de MITS Altair 8800 en de IMSAI 8080, waarmee de basis gelegd werd voor machines met het CP/M-besturingssysteem. De grootste concurrent in die tijd was de 6502 van MOS Technology. De ontwerpers van de processors begonnen na een verschil van mening met Intel hun eigen fabriek en brachten de kloon Z80 op de markt. Die processor is veel uitgebreider maar verder volledig compatibel met de 8080 en bracht een microcomputer revolutie teweeg.
“Kunnen wij ook en beter”, moet start-up Zilog gedacht hebben toen Intel met hun 8080 microprocessor op de markt kwam; de Zilog Z-80 (later als ‘Z80’ gespeld) uit 1976 was een kloon van compatible met de 8080 met extra registers en adresseringsmogelijkheden, voor een veel lagere prijs. Enkele jaren daarvoor had MOS Technology, opgericht door ontwerpers die bij Motorola de 6800 microprocessor hadden ontwikkeld, net de 6502 microprocessor uitgebracht. De Z80 was net als de 6502 een instant succes en het duurde tot ver na 1984 voordat Intel opnieuw marktleider werd met de Intel 8088. Wat volgde was het tijdperk van de single board computers zoals de Micro Professor, de Radio Shack TRS-80 model 1, home computers zoals de Sinclair ZX80, en een hele horde Z-80-gebaseerde MSX computers.
Een microprocessor bevat alle functies van een processor (accumulator, programmateller, statusregister, stackpointer en arithmetic logic unit) in een enkele chipbehuizing. Zilog werd opgericht door enkele van de Intel medewerkers die de Intel 4004 en 8080 microprocessors hadden ontworpen. Het is opvallend dat Intel nooit werk heeft gemaakt van hun weggelopen designers en dat de opvolger van de 8080, de Intel 8086, niet backwards compatible was.
De Z80 had een 8-bits architectuur met een 16-bits adresbus, hetgeen een maximum adresseerbaar geheugen van 64K mogelijk maakte. De Z80A-processor werd toegepast in de Tandy TRS-80 computer, de Sinclair ZX80, ZX81 en ZX Spectrum homecomputers, de MSX-homecomputers, de Amstrad CPC, de Philips P2000, de professionelere Exidy Sorcerer en veel CP/M-computers. Maar ook bijvoorbeeld in de dam- en schaakcomputers (Checker Challenger en Chess Challenger) van Fidelity. Tegenwoordig wordt de Z80 nog gebruikt in diverse apparaten, zoals taxameters en grafische rekenmachines, zoals de Texas Instruments TI-84 Plus.
Geen boek over programmeren heeft me meer bezig gehouden dan Programming the Z80 van Rodnay Zaks (met als covertitel How to program the Z80). Zaks heeft het boek ontworpen als een volledig zelfstandige manier om vertrouwd te raken met het programmeren in het algemeen en assembleren voor de Zilog Z-80 microprocessor in het bijzonder. De Z80 (de oorspronkelijke spelling ‘Z-80’ werd zelfs door Zilog niet lang gehandhaafd) is een 8 bit processor, die werd ontworpen door oud-medewerkers van Intel. Hij werd uitgebracht in 1976 en is in essentie een processor die compatibel is met de 8080 van Intel, maar met meer instructies, registers en adresseringsmethoden. In het boek van Zaks komen dan ook verschillende verhandelingen over het werken met de 8080 voor.
Een microprocessor is slechts te gebruiken in combinatie met een door de fabrikant uitgegeven instructieset met vertaling naar machinetaalcode. De instructieset wordt gebruikt om programma’s in assembleertaal te specificeren en de vertaling naar machinecode levert bytes op die in het werkgeheugen door de processor kunnen worden uitgevoerd. Iedere fabrikant levert daarom een handboek met de instructieset van de processor mee: in het geval van de Z80 is dat de Zilog Z80 CPU User’s Manual. Als voorbeeld de instructie LD (nn), A (“laad de inhoud van register A in geheugenadres nn“), uit de User’s Manual van Zilog:
De beschrijving van de instructie in de User’s Manual is beknopt en terzake, maar doet geen enkele moeite om de lezer op de pagina mee te nemen in de werking van de instructie. De User’s Manual lijkt ervan uit te gaan dat de lezer kundig is in de werking van de processor en alleen op zoek is naar de precieze vertaling van de assembleertaalinstructie naar de machinetaalcode.
Dezelfde instructie instructie LD (nn), A in Programming the Z80:
Het is aardig om te zien, hoe Zaks de droge stof van de instructieset aantrekkelijker wist te maken. De pagina begint direct met een tekstuele omschrijving van de werking van de instructie. Dat is geen overbodige luxe, want veel beginnende Z80 programmeurs hadden moeite met het onderscheid tussen “laad de register met het geheugenadres” en “laad de register met de inhoud van het geheugenadres”, om maar eens een voorbeeld te noemen. Ook een uitgebreidere beschrijving ontbrak niet, om de lezer die nog meer ondersteuning nodig had in het zadel te helpen. Voor de lezer die meer de behoefte hadden aan een afbeelding had Zaks een schematisch overzicht opgenomen van de data zoals die van de register A in het geheugen werd overgenomen.
Hoewel doorgewinterde Z80 programmeurs waarschijnlijk wel een kopie van de Zilog User’s Manual op hun bureau hadden liggen, was het leren programmeren in Z80 assembleertaal een stuk aantrekkelijker met het boek van Zaks op tafel. Ik heb mezelf leren programmeren in Z80 assembleertaal en heb in mijn studie Informatica leren programmeren in 80×86 assembleertaal. 80×86 assembleertaal heeft een op de 8080 gelijkende benaming van instructies, die afwijkend is van die van de Z80 (LD (nn), A van de Z80 heet STA word in 8088). De 80×86 heeft echter veel instructies die 16 bits geheugenadressen en resultaten toestaan, wat me motiveerde zowel handig te worden in 8080 assembleertaal, alsook de meer toekomstgerichte 80×86 instructieset.
De ZX81 is een homecomputer die door Sinclair Research van Sir Clive Sinclair in maart 1981 op de markt werd gebracht. Het was de opvolger van de Sinclair ZX80. Hij werd geproduceerd door Timex. De ZX81 is grotendeels hetzelfde als zijn voorganger, maar er zijn toch een paar verschillen. Zo werd de ZX81 geleverd in een zwarte uitvoering terwijl de ZX80 wit was. Net als bij de ZX80 is een membraantoetsenbord gebruikt; het indrukken van een toets was dan ook niet duidelijk voelbaar.
Een groot voordeel van de ZX81 ten opzichte van de ZX80 is onder andere de uitbreiding met floating point-berekeningen en de mogelijkheid slow mode te gebruiken. Bij de ZX81 kon men nu tijdens de verwerking van een programma beeld blijven zien. Nadeel is wel dat daardoor de berekeningen tot vier maal langzamer konden plaatsvinden. De ZX81 heeft namelijk uit kostenbesparing geen afzonderlijke grafische chip. De Z80 processor moet daarom zelf de beeldschermuitvoer verzorgen en is hier tot wel 75% van de tijd mee bezig. De computer heeft naast een tekst mode ook een grafische mode waarmee men kon plotten met een resolutie van 64×44. Hobbyisten schreven later software waarmee de computer in staat bleek om ook graphics in een resolutie van 256×192 weer te geven.
Een zwak punt waren de externe RAM-uitbreidingsmodules waarmee het geheugen met 16 kilobytes (en later meer) kon worden uitgebreid. De modules waren zo wankel bevestigd dat vaak een reset van de computer volgde wanneer de geheugenmodule per ongeluk werd aangeraakt (‘RAM pack wobble’), of zelfs als de tafel waarop de computer stond trilde.
De Sinclair ZX80 was een eenvoudige thuiscomputer die in 1980 door het bedrijf Sinclair Research van Clive Sinclair werd uitgebracht. Het was de eerste computer die voor minder dan 100 pond verkocht werd in Groot-Brittannië. De ZX80 kon enkel via de post besteld worden en was voor 80 pond ook als kit beschikbaar. De machine had een witte plastic kast en een klein blauw membraantoetsenbord. Ze moest op een televisietoestel worden aangesloten. Het display had 24 regels van 32 tekens. Voor het genereren van het beeld gebruikte de ZX80 een combinatie van hardware en software waardoor ze enkel een beeld kon genereren wanneer er geen programma werd uitgevoerd en niet op input van de gebruiker wachtte. Om programma’s te bewaren had de ZX80 een cassetterecorderingang en -uitgang.
De machine gebruikte als microprocessor een goedkopere Zilog Z80-kloon, de NEC 780C-1, en had 1 KB RAM-geheugen (optioneel uitbreidbaar tot 16 KB) en een Sinclair BASIC-editor/interpreter in een 4 KB ROM. Sinclair BASIC was een integer BASIC die enkel met gehele getallen werkte.
Er was een tijd dat er geen iPads en Macintoshes waren en beide Apple Computer medewerkers nog in de garage van Steve Jobs bivakkeerden. In die tijd (het zal 1981 zijn geweest) kwam Multitech (het tegenwoordige Acer) met zijn eerste computer-voor-onderwijsdoeleinden op de markt: de Micro-Professor MPF-1. De MPF-1 was een microprocessorsysteem gebaseerd op een Zilog Z80.
De kleine printplaat van de MPF-1 bevatte de 1,7MHz processor, een rekenmachine-achtig toetsenbord met 36 toetsen en een 6-cijferig 7-segment LED display. Er was verder voorzien in een 8255 PPI Programmable Peripheral Interface die het toetsenbord uitlas en 4KB ROM en 2KB RAM in de vorm van een 2732 EPROM en een 6116 RAM chip. Ook waren er drie lege IC-voeten voor geheugenuitbreiding, naar wens EPROM of RAM, en twee lege IC-voeten voor een Z80 PIO Parallel I/O en een Z80 CTC Counter Timer. De MPF-1 had een kleine luidspreker, aansluitingen voor een cassetterecorder en een gebied waarop kleine eigen schakelingen konden worden gesoldeerd. Bijzonder was de behuizing: die bestond uit een kunststof boekomslag die, dichtgeslagen, zo de boekenkast in kon.
De MPF-1 werd in Z80 assembly geprogrammeerd. De bijgeleverde handleidingen bevatten veel uitgewerkte voorbeelden van onder meer timers en spelletjes die gebruik maakten van het 6-cijferige display. De hexadecimale codes van deze voorbeelden werden byte-voor-byte via het toetsenbord ingevoerd. Het ingebouwde monitorprogramma maakte wijzigingen op het ingevoerde programma eenvoudig en ook het stoppen en instellen van breakpoints was mogelijk. Gebruikers die verder wilden dan de voorbeelden moesten zich specialiseren in Z80 assembly.
Vrij snel na de introductie in 1981 kwam Multitech uit met een kleine versie van een BASIC interpreter, die samen met het monitorprogramma in een 4 kilobyte ROM werd aangeboden. Een overlay over het toetsenbord werd meegeleverd en ook de handleiding, met alweer veel voorbeelden, was prima in orde.
Sciento, de Nederlandse importeur van de MPF-1, gebruikte later de printplaat uit de boekomslag van de Micro-Professor voor hun eigen Teach Pendant CS-113, een besturingscomputer voor hun robot arm CS-113. De EPROM was in deze Teach Pendant door Sciento voorzien van een speciaal programma om de robot arm bewegingen te laten maken en te laten herhalen. Een toetsenbord overlay maakte het apparaat compleet. Het geheel was in een stevige aluminium kast ingebouwd met een voedingsaansluiting en een parallelle poort waarop de robot arm werd aangesloten.