Google Analytics

Posts tonen met het label Amstrad. Alle posts tonen
Posts tonen met het label Amstrad. Alle posts tonen

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.

19 september 2021

Reparatie: Amstrad NC100

De Amstrad NC100 is een notebook computer ongeveer ter grootte van een A4-tje, uitgebracht in 1992. Hij bevat een ingebouwde tekstverwerker een calculator met basis functies en een dagboek. Het geheel is ontworpen om het zo eenvoudig mogelijk te gebruiken.


Het toetsenbord bevat gekleurde knoppen waarmee tussen de diverse functies kan worden geschakeld. Het LCD display kan 8 regels van 80 tekens weergeven (480 x 64 pixels).

Het probleem met deze computer is dat de blauwe toets rechtsonder niet werkt.

Aan de achterkant zien we aansluitingen voor een 6V gelijkstroom voeding. Let op de polariteit bij het aansluiten van een adapter, op de pin zit de negatieve polariteit, terwijl bij veel apparaten dit juist de positieve polariteit heeft. Verder zien we de aansluitingen voor een RS-232 seriële poort en een parallelle poort t.b.v. een printer.

Aan de linkerkant zit een uitsparing voor het plaatsen van een PCMCIA geheugenkaart van maximaal 1Mb.

en aan de rechterkant een knop waarmee het contrast van het LCD display worden ingesteld.

Aan de onderkant zien we een batterij compartiment t.b.v. 4 AA batterijen en een compartiment voor een CR2032 knoopcel t.b.v. backup voor het het geheugen.


Onder het klepje met de rode stip zit een 256kB ROM, waar alle software in is opgeslagen. Het handige hiervan is dat de ROM vervangen kan worden door een ROM met meer functionaliteit of een andere taal, zonder dat de kast open hoeft.


Met 5 schroeven (waarvan er een onder het klepje van het batterij compartiment zit) kan de kast worden opengeschroefd.


We zien nu een metalen afscherming die uit twee delen bestaat, het bovenste deel bevat het toetsenbord en het onderste deel de elektronica. De sticker rechtsboven laat zien dat de Amstrad (of in ieder geval het toetsenbord) is geproduceerd door het Japanse Nakajima, bekend van de elektrische typemachines.

Als we het onderste deel voorzichtig optillen zien we 2 connectoren waarmee we het toetsenbord kunnen loskoppelen.

Daarna kan de printplaat naar links worden gekanteld en zien we een bandkabel die het moederbord met het display verbind. Ook deze kan worden losgemaakt en ook de kleine witte connector voor de speaker, deze is net onder de bandkabel zichtbaar.

Nu is de PCB van het LCD goed zichtbaar, er zijn 6 OKI MSM5299C IC's aanwezig die elk een deel (80x16 pixels) van het display aansturen. De display unit is geproduceerd door Citizen.

De display unit kan met 4 schroeven worden losgeschroefd.
Op het LCD gedeelte zijn een viertal vlekken te zien, deze worden veroorzaakt doordat het polarisatie folie heeft losgelaten en op die plek een beetje gewelfd is.

Het blauwkleurige LCD heeft niet zo'n hoog contrast maar is met voldoende omgevingslicht goed leesbaar. Voor nu laten we dit nog zo, er bestaan betere high contrast LCD units en mocht er een voor een redelijk prijs voorbij komen kan het display altijd nog worden vervangen.

Nu zijn we aangekomen bij het onderdeel waar waarschijnlijk het probleem in zit: het toetsenbord.



Het blik aan de achterkant van het toetsenbord kan voorzichtig worden los geklikt.

We zien dat het binnenwerk bestaat uit een folie met opgedampte metaal lagen. Daarachter zitten per toets een kunststof bol cupje die ervoor zorgt dat de toets terugveert nadat deze is losgelaten en het folie op de plaats van de toets doorverbind als deze wordt ingedrukt.


Er zijn 3 lagen folie, de bovenkant en onderkant bevatten de opgedampte sporen en een geperforeerde tussenlaag zorgt voor afstand tussen de lagen zodat er alleen contact kan worden gemaakt als een toets wordt ingedrukt.


De lagen folie zijn maar op een paar plaatsen met elkaar versmolten zodat er gemakkelijk stof en vuil tussen de lagen kan komen en dat is ook precies de oorzaak van het probleem. Nadat stof en vuil is weggeblazen blijkt het contact voor de betreffende toets weer prima te werken en kan alles weer in elkaar worden gezet. Gelukkig een heel eenvoudig reparatie klusje.


De functionaliteit van de NC100 is natuurlijk niet meer van deze tijd, maar vanwege de aanwezigheid van de seriële- en parallelle poort is hij geschikt om dienst te doen als compacte seriële terminal voor aansturing/uitlezen of het testen van apparatuur die over een parallelle poort beschikt.