CPCWiki forum

General Category => NC100, NC200, PCW, PDA600 - the rest of the Family! => Topic started by: pmul on 14:37, 07 September 20

Title: NC100 to NC150 conversion
Post by: pmul on 14:37, 07 September 20
(1st post!). Recently on the German-language https://forum.classic-computing.de/forum/index.php?thread/2571-amstrad-nc100-in-nc150-umbauen/ (https://forum.classic-computing.de/forum/index.php?thread/2571-amstrad-nc100-in-nc150-umbauen/)
I found a how-to for converting an NC100 into an NC150. I have two NC100s and decided to try it out. I selected my German NC100 for conversion as the German keyboard layout is closer to the Italian version than the French one is to either UK or German, and I had a copy of the NC150 Italian ROM to work off.
The description from the German forum is pretty good, and was really easy to follow. However the part detailing which null-ohm resistors (soldered jumpers) have to move proved to be incorrect, at least for my German NC, I ended up making mine match those on the NC150 mainboard image from cpcwiki.eu: http://www.cpcwiki.eu/imgs/3/3a/NC150_IT_PCB_Bottom.jpg (http://www.cpcwiki.eu/imgs/3/3a/NC150_IT_PCB_Bottom.jpg)
The settings that worked for me are:

J301 on
J302 off

J303 on
J304 off

J305 on
J306 off

J307 on

J308 off

J312 off
J313 on

Next, the part dealing with the patching of the Rom image is only hinted at.
I patched the Italian ROM (mostly) to English by hand using iHex on my Mac, often using the NC200 (emulated) as a guide. I then extracted all of the bitmap images that contain Italian text from the ROM, and patched them using Gimp. I used https://rawpixels.net/ (https://rawpixels.net/) to help with this: I uploaded the ROM image as if it was a raw image, and instructed the web page to view it as a 1-bit per pixel image, 480 pixels wide. The main images from the Blockade game were easily visible and I could extract them using iHex for modification in Gimp. Some of the smaller images were a bit more tricky to find, I needed to play around with pixel widths other than 480 in order to see them. After modification I patched them back into the ROM. The NC100 emulator was really useful here, I could check everything before committing to real hardware. I programmed the finished ROM image into a 27c4001 and replaced the original ROM with this.
The result is a working NC150, 128k, in English. ZCN and CP/NC both work (they do not use the extra memory). A few of the screen messages look a bit oddly formatted due to the different lengths of the Italian and English text, but they work fine. I have not patched the keyboard, I have no idea how to go about this at the moment.
If there is any interest in this I can make a proper write-up, etc. Let me know here.
Title: Re: NC100 to NC150 conversion
Post by: pmul on 22:42, 13 September 20
Quick update. Keyboard is now mapped correctly (found the keyboard table, took the NC100 German table and patched it to include the extra hot keys from the NC150 (Spreadsheet and Game). I have also patched the built-in spreadsheet demos to English, I copied them over from the NC200 ROM, I only needed to modify the two demos with graphics as the English spreadsheet uses ',' in certain commands and the Italian rom expects ';'. What's left? The spreadsheet uses the continental number format (i.e. 1,23 instead of 1.23) and the aforementioned use of ';' vs. ',' in some commands. Those might be a bit more tricky to patch.

Title: Re: NC100 to NC150 conversion
Post by: pmul on 20:35, 06 October 20
One final, interesting bonus detail. The Tetris game and the Spreadsheet are implemented as if they were a PCMCIA program card, so if you copy the relevant block of memory out of the rom and into a file called 'nc150.card' (without changing a single byte), and use this with the nc emulator in nc150 mode (-5), function+x (run card) will start the relevant program. I tried them also with the emulator in nc100 mode, unfortunately they do not run as they use the extra ram of the nc150. So the only use for this is if you have an nc100 with extra ram, but want to keep the original rom installed, this way you can still try Tetris and the Spreadsheet.  ;D