Writing, Transferring & Executing BBC Basic for the Amstrad NC100

By | 16 April 2023

I’ve been writing a bit about the Amstrad NC100 over on mastodon lately, and talking about transferring files to and from macOS as well as experimenting with BBCBasic.

This post, which admittedly is a little niche and may only appeal to a a handful of people, is about that process from start to finish. If I don’t write this stuff down I forget it and have to relearn it all over again, so this is also very much an aide memoir for me too.

What you need

OK, stating the obvious, you will need an Amstrad NC100. You can get these on eBay quite reasonably, especially if you are, unlike me, patient. Also, top tip, if you see one that will not power on sold for parts only, the very high probability is the fuse has been blown by using an incorrect power supply. The fix is dead simple and you can snag a bargain this way.

Next up, and this is the tricky part, you will need at least 1 memory card. The Amstrad NC100 uses the same SRAM memory as the Apple Newton, PCMCIA Type III SRAM with a CR2032 lithium battery. The same battery as the CMOS backup battery inside the NC100 itself. They come in 256KB, 512KB and 1MB (the maximum the NC100 supports)

These cards are getting very hard to find, and as such are ridiculously expensive. You can use the NC100 without a card, but you will have to be very good at space management and be constantly moving files back and forth. Fine for simple word processing etc. but not so good for multiple BBC Basic programs.

I managed to find 2 Apple Newton 1MB cards from Best Electronics in Canada, and if it wasn’t for the price of postage to the UK they would have been an absolute bargain! They were dangerously low on stock when I ordered them, and are unlikely to be getting any more any time soon, but definitely worth emailing them to check – they were incredibly friendly and helpful. Failing that, eBay or your usual retro sources have them, but be prepared to pay a premium.

And the final piece of kit we need is a null modem cable RS232 Serial to USB – this is what I needed for my M1 MacBook Pro so other setups will probably need slightly different cables, but if you are USB only then this cable or similar will work. I have had issues in the past with these cables so now I have found one that works without any issues I will always recommend this particular one.

  • USB to RS232 DB9 female null modem rollover serial serial cable
  • Length:6ft /Chip: CP2102.
  • The USA quality ftdi chip ensures stable transmission of signals
  • Compatible with windows, linux and macOS
  • The drivers listed above are all available to download for free from CP2102 website https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers.

I got the drivers from the site mentioned in the listing and they worked fine on macOS Ventura 13.3.1

After a bit of research and trial and error, I landed on Cool Term for the terminal app. Its a pretty good terminal app in it’s own right, but particularly useful here as it has all the settings and control needed for the quite fussy NC100. It was last updated 4 months ago and runs well on Apple silicon.

OK, so we’re all set to start writing our first bit of BBC Basic.

I thought I’d keep it simple for the first go with a binary to integer converter.

10 REM  Binary to Integer Converter
11 REM  By Jonny Pencils
12 REM  (c) 2023 ElliSoft
13 REM             __     __       
14 REM            /  \~~~/  \    
15 REM      ,----(     ..    ) 
16 REM     /      \__     __/   
17 REM    /|         (\  |(
18 REM   ^ \   /___\  /\ |   
19 REM      |__|   |__|    
20 REM 
100 CLS:PRINT"BINARY TO INTEGER CONVERTER"
110 INPUT"ENTER YOUR BINARY NUMBER NOW:",I$
120 L=LEN(I$):B=0
130 FOR I=1 TO L
140   B=B*2
150   IF MID$(I$,I,1)="1" THEN B=B+1
160 NEXT
170 CLS:PRINT"THE INTEGER FOR ";I$;" IS ";B
180 INPUT"AGAIN",A$
190 IF A$="Y" THEN GOTO 100

This post isn’t about BBC Basic as such, but a good starting point for the differences in syntax between the BBC and the NC100 (there aren’t many at all) is Tim Surtell’s NC100 site which is a really good source of information and is still being maintained today.

OK, so once you have your program written and you are ready to get it across to the NC100, we’ll hook up the Amstrad to the serial cable and start up Cool Term.

If the drivers installed correctly, when selecting the port under Cool Term you should see an option for SLAB_USBtoUART. Select that, and we need to set the BAUD rate to 2400 8-N-1. You can experiment with other settings but I can save you the trouble – any other combination or speed had issues. Bringing the speed down to 2400 was the only way to get in consistently working without error.

Now, making sure the cable is connected both ends of course, we need to go to Connection in the menu and select connect. If all is well the display will change to ‘connected’ and you’ll see green RTS and DTR lights.

Now we need to get the NC100 ready to receive a file.

On the Amstrad NC100 we need to hit the yellow function key and L to ‘List’ the files we have stored into memory or on the card. Here you will just get a directory listing of everything we have written or transferred to date.

From this screen press the SECRET/MENU key to the right of the spacebar, and then select ‘T’ for the transfer options.

We want to receive a file so we want option ‘R’. Once R is selected we can give the file we are receiving a name and hit return. It is best to give the file a TXT extension at this stage, but it can be anything really.

Forgive the quality of the screenshots – there is actually a BBC Basic program that enables screen captures and conversions on the NC100 so I will have to get that sorted out for future use.

When return is hit on the NC100 it will go into ‘Receiving File’ mode and then you can go back to Cool Term, go to Connection, and select ‘Send Text/Binary File’. Choose our BIN2INT.BAS file and hit OK. You should see the bytes received and the message that the file has been saved correctly and to press STOP to exit on the NC100.

If all went as expected we now have the file BIN2INT.TXT on our NC100.

There is one more step we need to do before BBC Basic can recognise and run this file. I spent way too long working this out whilst the instructions were there in black and white in the NC100 book I got – RTFM I guess.

Anyway, we now need to start BBC Basic on the NC100 by hitting Function (yellow) and ‘B’.

Then we need to run the following:

*EXEC “BIN2INT.TXT”

BBC Basic will then load the TXT file into memory one line at a time. Once done we can save as a BAS file. On the NC100 BAS files can be selected and immediately run in BASIC if required, but you can give it any extension and simply LOAD it into memory in the normal way.

Once we have our saved file we can RUN it as you would normally do. We can also go back and delete the TXT file which is good practice to manage memory.

And there we have it. I’ve started to write a vinyl record database and a text adventure for the NC100 so will have those available here once done.

It really is a lovely little machine, and one with quite a bit of untapped potential I fancy. It even has a built in assembler which I haven’t started to look at yet.

Over on Tim’s site there is an emulator available which is going to be my next step as I’ll need to test often when writing anything more complex and an emulator seems sensible for that.

I hope the 3 people that this post is relevant for find it useful 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.