Google Analytics

28 november 2021

Upgrade: ZCN: een CP/M hack voor de Amstrad NC100

In een eerdere blog werd een reparatie van de Amstrad NC100 beschreven. Deze notebook computer is voorgeprogrammeerd met een tekstverwerker, calculator en een dagboek.

Ook is een krachtige BBC Basic aanwezig. Deze programmeertaal is oorspronkelijk geschreven voor de Britse omroep BBC en is te starten door middel van de Function+B toetscombinatie.

Kijkend om meer te kunnen doen met de NC100 stuitte ik op de mogelijkheid om het CP/M operating system te installeren. Specifiek voor de Amstrad is ruim 20 jaar geleden een speciale versie geschreven genaamd ZCN. De laatste versie hiervan is 1.3 en is gebaseerd op CP/M 2.2

CP/M (Control Program/Monitor) is een operating system geschreven door Gary Kildall in 1973 en is de voorloper van het meer bekende DOS (Disk Operating System). Voor CP/M is veel public domain software geschreven die nog steeds van internet is te downloaden. Denk hierbij aan spellen, een C-compiler, allerlei hulpprogramma's, etc.

In de nu volgende stap voor stap handleiding wordt beschreven wat er voor nodig is om ZCN op een Amstrad NC100 te installeren en hoe dit te bereiken is.

Benodigde hardware

De 64kB geheugen in een NC100 is niet voldoende om CP/M te installeren en daarom is een geheugen uitbreiding nodig in de vorm van een "PCMCIA" of "PC Card" insteekkaart. Deze gestandaardiseerde geheugen uitbreiding was vooral begin jaren 90 in gebruik bij notebooks. De maximale hoeveelheid geheugen die de NC100 aan kan is (slechts) 1 Mb. Er bestaan verschillende type PCMCIA kaarten, zoals static RAM (SRAM) en Flash RAM kaarten. Alleen de SRAM kaarten werken in een NC100. Tegenwoordig zijn ze bijna niet meer te krijgen en als ze worden aangeboden (meestal via eBay) dan zijn de prijzen zeer hoog. Voor dit experiment heb ik een 1MB SRAM PCMCIA kaart kunnen bemachtigen op eBay. Deze is van het merk Sunmax. Om het geheugen actief te houden worden SRAM kaarten in tegenstelling tot Flash kaarten voorzien van een CR2025 lithium batterij. De + van de batterij moet gericht zijn naar de voorkant van de kaart, zoals op de foto. Deze zou ongeveer een jaar mee moeten gaan voordat deze weer aan vervanging toe is.

De NC100 wordt verbonden met een computer via de seriële poort om de nodige bestanden over te kunnen zenden. Dit is o.a. mogelijk door middel van een virtuele COM poort via USB. Je hebt hiervoor een USB A naar RS232 nullmodem kabel nodig. (Sub-D 9 pins female). Bij een nullmodem kabel zijn de transmit, receive en handshake signalen gekruist. Aangezien zo'n kabel moeilijk te verkrijgen en vrij duur is, kies ik voor een losse USB A naar RS232 kabel en een losse nullmodem kabel die gewoon aan elkaar zijn te koppelen.

Links de USB A naar RS232 kabel en rechts de nullmodem kabel

Het voordeel van de hier gekozen datakabel die is uitgerust met een Prolific chipset is dat deze direct wordt herkend door Windows 10, dus installatie van een aparte driver is niet nodig.
Na het aansluiten van de kabel hebben we de beschikking over (in mijn geval) een virtuele  COM3: poort. Het COM poort volgnummer kan variëren naar gelang er al andere (virtuele) COM poorten eerder zijn geïnstalleerd.

Benodige software

Download de ZCN versie 1.3 software: zcn13.zip Dit zip bestand bevat alle benodigde bestanden en pak deze vervolgens uit op de PC.
Daarnaast is een programma nodig die bestanden via de seriële poort kan versturen met het XModem protocol. Ik heb gekozen voor ExtraPuTTY, een afsplitsing van de bekende PuTTY terminal software die in bestandsoverdracht via diverse protocollen voorziet.

Software installatie

In de hieronder aangegeven stappen is COM3: als seriële poort gebruikt, dat kan natuurlijk worden vervangen door een andere poort. De gebruikte snelheid is 2400 baud. Dit is vrij langzaam maar wel het meest betrouwbaar op een NC100.

Start extraPuTTY en stel de seriële verbinding in op COM3 en 2400 baud.

Bij installatie van ZCN gaan alle aanwezige documenten en NC100 instellingen verloren. Als deze bewaard moeten blijven doorloop dan eerst de stappen tot aan het kopje "Vervolg".

Stappen op de PC.

In de PuTTY sessie selecteer Files Transfer > Xmodem > Send en selecteer het rrinit.bin bestand uit de map ''bin'' van de uitgepakte zcn13.zip op de PC.

Stappen op de NC100

Verwijder de geheugenkaart op de NC100.
Er moet tenminste 1 bestand opgeslagen zijn op de NC100 anders is er geen bestandsoverdracht mogelijk.

Ga naar het terminal programma: Function+S
Stel 2400 baud in: Menu, down*3, left*2, Stop
Stop het terminal programma: Stop
Laad een document: Function+L
Ontvang het rrinit bestand: Menu, T, M, rrinit, return
Wacht tot het bestand is ontvangen en druk op Stop
Plaats de geheugenkaart in de NC100.
Formatteer de geheugenkaart: 
Menu, F, Y, Stop
Zorg dat het rrinit bestand is geselecteerd.
Bewaar het rrinit bestand op de geheugenkaart: 
Menu, T, P, Stop
Stop de bestandsselectie: Stop
Run rrinit: Function+X
Het display geeft nu aan: "Snapshot written - press Stop".
Druk op
Stop om terug te keren naar het hoofdmenu van de NC100.

Vervolg

Stappen op de PC.

In de PuTTY sessie selecteer: Files Transfer > Xmodem > Send en selecteer het zcn.bin bestand uit de map ''bin'' van de uitgepakte zcn13.zip op de PC.

Stappen op de NC100

Laad een document: Function+L
Ontvang het bestand als tmp: Menu, T, M, tmp, return
Wacht tot het bestand is ontvangen en druk op Stop
Ga naar Basic: Function+B
Laad het tmp bestand: *LOAD TMP 6000
Start ZCN: CALL &6000

ZCN start nu op en onderstaande tekst verschijnt op het display:


Om meer tekst weer te kunnen geven wordt een kleiner lettertype gebruikt zodat in plaats van 8 regels van 80 tekens er nu ruimte is voor 10 regels van 120 tekens.

Er zijn 4 drives beschikbaar A: t/m D:. Formatteer drives B: C: en D: door:

format b:
format c:
format d:

Maak de A: drive "bootable": sys a:

Test het opstarten door middel van een koude herstart:
Zet de NC100 uit.
Houd te toetsen
Function, Stop en <-Del tegelijk ingedrukt en zet de NC100 aan.
De NC100 start nu normaal op, druk op
Function+X om ZCN te starten.

Met behulp van het interne ZCN commando rexec kan naar keuze de rest van de bestanden worden overgezet.

Als voorbeeld zetten we het programma qterm.com over, die ook te vinden is in de uitgepakte zcn.zip in een uuencoded formaat (qterm.uue) omdat de bestandoverdracht van rexec op ASCII formaat is gebaseerd. 

Op de NC100

Ontvang een bestand: rexec qterm.com

Stappen op de PC

Open een opdrachtprompt: Windows-toets+R, cmd, OK
Stel de baudrate in op 2400 baud:
mode com3:2400,N,8
Kopieer het qterm programma:
copy qterm.uue com3:

Nadat het kopiëren is afgerond staat het programma op de NC100 A: drive.
Vervolgens wordt qterm zelf gebruikt om de overige bestanden (in binair formaat) over te zetten. Via qterm kunnen bestanden ook naar de PC worden gestuurd om een backup te maken.

Vanaf dit punt valt er natuurlijk nog ontzettend veel te verkennen en te leren en ik wens iedereen die een NC100 / 150 of 200 heeft en dit ook wil uitproberen veel plezier.

Geen opmerkingen:

Een reactie posten