NASCOM-1: Mijn Z80-computer uit 1980 (deel 2)

In deze tweede aflevering van het verhaal over mijn NASCOM-1 laat ik zien hoe ik het binnenwerk van de cassetterecorder heb vervangen door het binnenwerk van een MP3-speler. Het was een leuk knutselwerkje om dit allemaal passend te krijgen… Ook moest er een voeding komen als vervanger voor de AA-batterij van de MP3-speler. Het eerste programma dat ik op de MP3-speler heb opgeslagen om vervolgens in het geheugen van de NASCOM-1 te laden was 37 bytes groot en maakte dat de tekst “Hello World!” op de monitor werd weergegeven. Hierbij gebruikte ik onder andere de erg handige LDIR-instructie van de Z80 (daar vertel ik verderop meer over).

In figuur 1 zie je de MP3-speler, een RC300 van Ricatech.

Fig. 1 Ricatech RC300.

In Fig. 2 en Fig. 3 zie je de voor- en achterkant van het inwendige van de RC300 met wat aangesoldeerde draden voor een eerste test.

Fig. 2 MP3-speler voorkant.
Fig. 3 MP3-speler achterkant.

Na een succesvolle eerste test heb ik de MP3-speler op gaatjesprint gemonteerd (Fig. 4). Omdat de bedieningstoetsen aan de zijkant zaten en je er daardoor in de behuizing van de cassetterecorder niet goed bij kon komen, heb ik deze uitgevoerd naar aparte druktoetsen bovenop de gaatjesprint. Rechtsonder de 1,5 V voeding met een LM317, en daarboven 2 instelpotmeters voor het opname- en weergaveniveau. En dit werkte prima in de testopstelling van figuur 5.

Fig. 4 De MP3-speler op gaatjesprint met voeding en volumeregeling.
Fig. 5 Het werkt! Programma opgeslagen en weer geladen met MP3-speler.

In figuur 6 zie je de listing van het programma (37 bytes) dat de tekst “Hello World” laat verschijnen. Het beeldscherm is bij de NASCOM-1 ingedeeld in 16 regels van 48 karakters (letters, cijfers, leestekens) en is ‘memory-mapped’, dit betekent dat elk van de 16 x 48 = 768 zichtbare schermposities overeenkomt met een geheugenplaats in het videogeheugen. Die geheugenplaats bevat de code van het karakter wat op die schermpositie moet worden weergegeven. Alle geheugenplaatsen van het videogeheugen worden continu uitgelezen, en de karakter-codes die ze bevatten gaan naar een ‘karaktergenerator’. Dit is een ROM met alle weer te geven karakters. De karakter-codes uit het videogeheugen zijn de adressen van de karakters in deze ROM. Die karakters worden vervolgens samen met lijn- en rastersynchronisatiesignalen naar de video-uitgang voor het beeldscherm gestuurd.

Als je het beeldscherm helemaal ‘leeg’ wil maken, moet je elke plaats in het videogeheugen dus vullen met de code voor een ‘onzichtbaar’ karakter, en dat is de spatie (20H). Daar heb ik de instructie LDIR (load, increment and repeat) voor gebruikt Hier kun je blokken data mee verplaatsen. Het werkt hier als volgt: In het registerpaar HL laad je het adres van de eerste plaats in het videogeheugen (800H). Vervolgens zet je daar een spatie neer. Dan laad je in het registerpaar DE het adres van de tweede plaats in het videogeheugen (801H), en in het BC-registerpaar de grootte van het videogeheugen (400H). LDIR verplaatst de inhoud van het adres in HL (de spatie) naar het adres in DE, vervolgens worden HL en DE opgehoogd met 1, en wordt BC met 1 verlaagd. Dit proces wordt herhaald totdat BC = 0. En dan staat het hele videogeheugen vol met spaties.

Om een stuk tekst weer te geven laad je het beginadres op het scherm in HL, het beginadres van het tekstblok in DE en de lengte van de tekst in BC, vervolgens zet je met LDIR de tekst op het scherm.

Fig. 6 Programmalisting “Hello World!”.

Nu dit werkte moest de MP3-speler onder het front van de (gestripte) cassetterecorder worden gemonteerd. Ik heb daar een soort aluminium frame voor geknutseld waar de MP3-speler op kwam te liggen (Fig. 7).

Fig. 7 Gestripte cassetterecorder met frame voor MP3-speler

Maar helaas paste de print die ik had gemaakt hier niet lekker op, en moest er een stuk van deze print worden afgezaagd (Fig. 8). En toen paste het wel (Fig. 9). Het afgezaagde stuk met de voeding en de volumeregelaars heb ik er onder op de bodem van het ‘hoofd-chassis’ van de NASCOM-1 gemonteerd (Fig. 10).

Fig. 8 Stukje van de print afgezaagd…
Fig. 9 De MP3-speler op het ‘cassetteframe’.
Fig. 10 De MP3-voeding op de bodem van de NASCOM-1

Alles weer netjes ingebouwd (Fig. 11). Ik heb het veersysteem van de EJECT-knop van de cassetterecorder laten zitten zodat je hiermee het deksel kan openklappen. De MP3-speler zit op het chassis geklemd, waardoor deze er kan worden uitgehaald om via de USB-aansluiting backups van de programma’s op een pc te kunnen maken.

Fig. 11 De MP3-‘cassette’ ingebouwd in het frontpaneel.
Fig. 12 NASCOM-1 in actie.

In FIG. 12 het uiteindelijke resultaat. De NASCOM-1 staat nu op zolder te wachten totdat ik weer met Z80-assembly wil knutselen…

Meer info over de NASCOM-1: www.nascomhomepage.com.

Scroll naar boven