NC100 Software

A selection of readily available NC100 and related platforms’ utility software.

macOS/Linux

The following run on a host machine to process received files.

Notepad2Text

A short C program with no dependencies to convert transferred NC100 word processor files into rich or plain text files. Runs on macOS and Linux; untested on Windows.

Notepad2Text Source Code

Notepad2Bmp

A short C program with no dependencies to convert transferred NC100 screenshot files into BMP format and scale up by 3x. The repo also contains code to convert to the PCX format (see the Read Me file for details). Runs on macOS and Linux; untested on Windows.

Notepad2Bmp Source Code

NC100

Basic Menu

This is a modified version of the BBC Basic loader presented in the Amstrad Notepad Advanced User Guide. I have tweaked it slightly. When saved as AUTO (note the lack of a .BAS file extension), it will be auto-run every time Basic is loaded to present a file-selection menu. Choose a Basic program to run.

Download the code as a text file or copy the listing:

 10 REM Auto program loader
 20 REM From Amstrad NC100 Advanced User Guide
 30 CLEAR: DIM MC% 22 REM code plus buffer bytes
 40 PROCasm
 50 CALL MC%
 60 IF buffer?0 = 0 THEN CLS:PRINT "Press FN-B for menu.":PRINT:END
 70 R$=""
 80 FOR J%=0 TO 11
 90   IF buffer?J% THEN R$=R$+CHR$(buffer?J%) ELSE J%=12
 100 NEXT
 110 E$=RIGHT$(R$,4)
 120 IF E$<>".LIS" AND E$<>".lis" AND E$<>".TXT" AND E$<>".txt" THEN 180
 130 PRINT "This is a text file. Press STOP at the menu to enter Basic"
 140 PRINT "and use *exec """+R$+""" to load the file."
 150 PRINT "Press any key to continue"
 160 K$=GET$
 170 GOTO 50
 180 IF E$<>".BAS" AND E$<>".bas" THEN 50
 190 CHAIN R$
 200 DEF PROCasm
 210 FOR PASS=0 TO 2 STEP 2
 220   P%=MC%
 230   [
 240   OPT PASS
 250   CALL &B8C3
 260   LD DE,buffer
 270   JR C,found
 280   LD A,0
 290   LD (DE),A
 300   RET
 310   .found LD B,12
 320   .loop  LD A,(HL)
 330   LD (DE),A
 340   INC HL
 350   INC DE
 360   DJNZ loop
 370   RET
 380   .buffer
 390   ]
 400 NEXT
 410 ENDPROC

NC100 State

This utility presents information about the NC100’s batteries, power source and, if present, its memory card. It uses one of the NC100’s output ports to gather this information.

Curiously, the Amstrad NC100 I/O Specification states that bit 5 of read status byte indicates “input voltage, 1 if >= 4 volts”. The Amstrad Notepad Advanced User Guide interprets this as AC power (as I have), but running the code with or without a mains adaptor connected to the NC100 doesn’t change the value of the bit! I’m coming round to thinking that this is bit simply indicates whether or not the NC100 has enough power from any source to run happily.

I’d love to know what the correct interpretation is. If you know, please tell me via nc100@smittytone.net.

Download the code as a text file or copy the listing:

 10 REM NC100 state reporter (1.0.0)
 20 DIM MC% 16
 30 PROCasm
 40 CALL MC%
 50 VA%=?value
 60 CLS:PRINT "NC100 State ("+STR$(VA%)+")":PRINT
 70 PRINT "AA batteries ";
 80 IF (VA% AND &08)=0 PRINT "good" ELSE PRINT "weak"
 90 PRINT "Li battery ";
 100 IF (VA% AND &04)=0 PRINT "good" ELSE PRINT "weak"
 110 IF (VA% AND &20)=0 PRINT "AC power on" ELSE PRINT "AC power off"
 120 PRINT "Memory card ";
 130 IF (VA% AND &80)=0 PRINT "present "; ELSE PRINT "not present ":GOTO 160
 140 IF (VA% AND &40)>0 PRINT "(write protected, "; ELSE PRINT "(writeable, ";
 150 IF (VA% AND &10)>0 PRINT "battery good)" ELSE PRINT "battery weak)"
 160 PRINT:PRINT "PRESS ANY KEY TO EXIT";:G%=GET
 170 CLS:END
 180 DEF PROCasm
 190 FOR PA%=0 TO 2 STEP 2
 200   P%=MC%
 210   [
 220   OPT PA%
 230   :
 240   PUSH AF
 250   IN A,(&A0)
 260   LD (value),A
 270   POP AF
 280   RET
 290   .value DEFB 0
 300   ]
 310   :
 320 NEXT
 330 ENDPROC