Aan de slag met de CP/M-computer Z80-MBC2

Door: Ronald Smit | 21 juli 2021 13:01

How To

Vorige week hebben we je alvast kennis laten maken met de Z80-MBC2, een single board-computer opgebouwd rondom een Z80 CPU en een moderne microcontroller. Die microcontroller bevat software die nagenoeg alle overige benodigde onderdelen nabootst, dus je treft in totaal maar vijf chips aan op de print. Wat het wel erg makkelijk maakt om het geheel in elkaar te zetten!

Zoals we in de vorige aflevering al meldden kun je het systeem van nul af aan opbouwen en de microcontroller zelf programmeren. Niet heel ingewikkeld, maar het voegt een paar extra stappen toe die net wat te ver voor dit artikel voeren. Handiger is het wellicht om gewoon een kant-en-klaar pakket met alle benodigde onderdelen inclusief al geprogrammeerde microcontroller aan te schaffen. Of nog mooier: ga voor een compleet opgebouwd systeem. Wij scoorden precies dat op eBay, kwestie van wat zoeken daar en de aanbiedingen in de gaten houden. Alleen duurde het wachten wat lang, want sinds Brexit is post uit het VK een drama in 30 delen. Goed, hij is er. In werkende staat zelfs.

Klok en kaartlezer

Heb je alles eenmaal in huis en opgebouwd voor je staan, dan is het zaak om de Z80-MBC2 aan de praat te krijgen. In ons pakket stond alle benodigde software al op een meegeleverd micro-SD geheugenkaartje. Dat prik je in de – bij ons eveneens meegeleverde maar ook los verkrijgbare – kaartlezer. En die module als geheel prik je dan weer op het systeembord. Daar is ook plaats voor een ofwel in een pakket meegeleverde ofwel los aan te schaffen real time klokmodule. Beide onderdelen kosten een appel en een ei, dus adviseren we je om die zeker ook even te bestellen.

De ingeprikte modules, de eerste is de real time klokmodule, daarachter zie je de kaartlezer.

Last but not least is er een USB-naar TTL-serieel-converter nodig. Je raadt het al: ook die zat in ons pakket. Maar je scoort ze op wederom eBay voor een paar Euro. Verbindt de bekabeling zoals uitgelegd op de bij het Z80-MBC2-project behorende website. Nu heb je alleen nog een simpel terminalprogramma nodig. Voor elk besturingssysteem is er wat dat betreft wel wat te vinden. Zo is er bijvoorbeeld Putty, een open source exemplaar beschikbaar voor zowel Windows als Linux. In dit voorbeeld gebruiken we voor de aardigheid eens een progressive web app (PWA) op de Chromebook, ofwel een terminalprogramma dat draait in de browser. Je kunt het zelfs lokaal installeren zodat ’t ook offline werkt. Kwestie van een bezoekje brengen aan deze site en van daaraf Beagle Term – de app die we gebruiken – starten.

De bij ons pakket meegeleverde USB naar TTL-serieel-omzetter.

EVEN OPLETTEN: Als je – zoals wij – nog geen kast hebt liggen om het geheel netjes in te bouwen, is het zaak om het bord bij inschakelen op een schone, niet-geleidende ondergrond te leggen. Een stuk karton of (nog beter) een kartonnen doosje. Dat voorkomt een tranendal vanwege een rondslingerende paperclip of schaar, bijvoorbeeld.

De communicatie-instellingen

Voor de rest maakt het niet uit welk terminalprogramma op welk systeem je gebruikt. Prik de aan de Z80-MBC2 verbonden USB-naar-TTL serieel converter in een vrije USB-poort van je computer. Start het terminalprogramma. Zorg dat je als bitrate een waarde van 115200 kiest (meestal dien je bij de eerste verbinding met het een of ander een profiel aan te maken, of je duikt even in de settings van het terminal-programma). Het aantal data bits dient op 8 ingesteld te zijn, het Stop Bit is 1 bit, Flow Control none. Afhankelijk van de gebruikte USB-converter kies je de correcte seriële poort, in ons voorbeeld op de Chromebook /dev/ttyUSB0. Maar dat kan zomaar iets anders zijn op jouw systeem!

Met deze seriële instellingen moet je vlekkeloos met de Z80-MBC2 kunnen communiceren.

Verbinden

Klik in het terminalprogramma op de knop Connect of iets soortgelijks en je ziet als het allemaal een beetje meezit dat wat je Z80-MBC2 te melden heeft. Vanaf nu moet je het terminalvenster simpelweg als het beeldscherm van de Z80-MBC2 beschouwen. Tegelijkertijd lichten de verschillende LED’s op het systeembord op, en knippert er wat als er seriële data wordt uitgewisseld.

In theorie zie je bij de eerste start een menu verschijnen met daarin diverse opties. Maar ook kan het gebeuren dat de Z80-MBC2 meteen naar bijvoorbeeld een van de CP/M-versies of Basic start. Wacht dan tot het opstarten daarvan voltooid is. Druk vervolgens op de USER-knop en houd deze ingedrukt. Druk daarna kort op de RESET-knop en wacht tot het menu alsnog verschijnt, waarna je de RESET-knop los kunt laten. Op deze manier keer je altijd weer terug naar dat hoofdmenu als het nodig is! Handig is optie 6, waarmee je tussen 4 en 8 MHz kloksnelheid van de Z80 kunt schakelen. Voor antieke software komt 4 MHz soms van pas, meestal werkt 8 MHz uitstekend (en dubbel zo snel…) In dit voorbeeld starten we CP/M 86, ofwel optie 8 en dan op een willekeurige toets drukken tot CP/M 3.0 is geselecteerd. Druk vervolgens op Enter en het gekozen systeem laadt. Voortaan vind je onder menu-optie 3 dit via 8 geselecteerde systeem, veranderen kan weer via 8.

Het startmenu van ’t systeem. Naast CP/M zijn er nog andere besturingssystemen beschikbaar, alsmede de optie om rechtstreeks naar Basic of Forth te starten.

CP/M 3.0 en MBASIC85

Het heeft niet zo heel veel zin om hier een uitgebreide handleiding CP/M neer te schrijven, daarover is meer dan genoeg online te vinden. Heel ingewikkeld is het allemaal niet. Het geheel is tekstgebaseerd en veel opdrachten zullen je bekend voorkomen. Zeker voor hen die nog DOS gebruikt hebben of bekend zijn met de Linux-opdrachtprompt. Je ziet een knipperende cursor staan achter de eerste driveletter, A. Dat is tevens de systeemschijf, tik dir gevolgd door een druk op Enter en je ziet de inhoud van de schijf verschijnen. In het geval van CP/M 3.0 tref je onder meer twee Basic-interpreters aan, plus wat voorbeeldprogramma’s. Om bijvoorbeeld MBASIC85 te starten, tik je precies dat als opdracht, gevolgd door een druk op Enter. Inderdaad: het betreft hier een klassieke Basic-versie, ontwikkeld door Microsoft. Dat bedrijf (toen nog bedrijfje) had destijds zo ongeveer de hele markt in handen wat Basic-interpreters betreft, dus niet heel vreemd om dat ook onder CP/M aan te treffen (de complete handleiding vind je hier). Om een voorbeeldprogramma te openen, tik je bijvoorbeeld eens het commando LOAD “ASCIART.BASR gevolgd door een druk op Enter. Let op: het is allemaal hoofdlettergevoelig qua bestandsnaam! Bovendien moesten we op ons systeem de linker shifttoets gebruiken om een “ te produceren. Ja, het is allemaal even wat wennen! Je had trouwens al gemerkt dat het programma direct na het laden start, daarvoor zorgt ,R achter de laatste aanhalingstekens.

USER LED en GPIO

Het CPM-systeem beschikt over een USER-LED, die kun je vanuit Basic aansturen. Hoe, dat kun je zien in het programma USERLED.BAS. Om het programma te verlaten druk je op de ook aanwezige USER-knop op ’t bord. Heb je een GPIO-chip op je Z80-MBC2 geprikt, dan kun je ook allerlei andere zaken via de GPIO-poort regelen. En ook nu is er weer een voorbeeldprogramma beschikbaar, het heet GPIO.BAS. Precies die GPIO-poort maakt dit systeem ook uitermate interessant voor het besturen van allerlei dingen; de programmeertaal Basic is in z’n jaren tachtig-vorm wel heel makkelijk te leren!

Via de GPIO-poort kun je van alles en nog wat aansturen en uitlezen, wat ervoor zorgt dat je dit systeem ook echt bruikbaar voor een of ander klusje kunt inzetten.

1 Reactie(s) op: Aan de slag met de CP/M-computer Z80-MBC2

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • 11 juni 2022 21:50 Z80-MBC3
    Kort voor de publicatie van dit artikel is er in 2021 een opvolger van de Z80-MBC2 verschenen, die niet verrassend de Z80-MBC3 werd benoemd. Die heeft wat extra mogelijkheden en is nog eenvoudiger samen te stellen. Want door toepassing van een recentere ATmega4809 is de hardware gesimplificeerd, en een aantal componenten aanwezig in de vroegere uitvoering overbodig geworden. Geen kristal, weerstandsnetwerken en lijm-logica meer nodig, en enkele LEDs zijn ook verdwenen. De Z80-MBC3 beschikt nu echter wel over een analoge ingang en een beeper, en de Z80 applicatiesoftware is volledig identiek en dus compatibel met die voor de Z80-MBC2.

    De perikelen voor bestelling zijn ook opgelost want je kunt deze gewoon op Marktplaats.nl, Hood.de of eBay.nl / Ebay.fr bestellen. Uiteraard tegen de bijpassende lokale verzendkosten. Publicaties over dit kant-en-klare systeem en bouwpakket en haar technische kenmerken staan op Github, Hackster, en Facebook.
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.