From NDWiki
Jump to navigation Jump to search
The good old ND-100/CX. The orange rack to the left of the console terminal.

Other pages found here

Missing-docs, a list of documents that doesn't yet have, with info about where to possibly find them (and eventually provide scans for

Floppy disks, a list of ND floppy disks that I have (nearly all 5.25" 1.2MB)

ND Hardware

  • Happy owner of an ND-110 Satellite system, graciously donated by Gandalf
  • Nokia NOTIS VDU 301 S terminal, also from Gandalf
  • ND-5000 extension board, from a co-worker

Other Hardware

  • Anritsu 9-track CCT drive, can read ND CCTs

Alternative to physical SCSI disks for ND machines

I noticed that Tingo just ordered a SCSI2SD v5 adapter from itead. I have one of those already, bought from the same place, which I bought with a future ND SCSI system (which I now have) in mind. It looks like just the thing, with support for reprogrammable SCSI sector size and more. Unfortunately I seem to have managed to forget it in Japan, but I'll bring it along when I return in November. --TArntsen (talk) 11:44, 5 September 2016 (UTC)

About me

These days a Unix and Linux geek, but I used to work with a Nord-10/S system back in 1982. From 1983 and until about 1986 I worked with real-time systems on ND-100, after that also ND-500, and ND-5000 systems as soon as they became available. The latter systems (first ND-550 and later ND-5500/5700) were deployed at ESA (the European Space Agency) from 1988 to approximately 1995 (when we replaced them with Silicon Graphics systems), where they were used for reception and processing of data from the ERS-1 satellite, and also the ERS-2 satellite in the final year. ERS-1 was launched in 1991 but ESA did fully manned 24/7 simulation-data operations on the first deployed system (ND plus VAX) for two years until launch.. how does that compare to your regular testing regime? :-)

I used to have several sets of what must have been close to every manual Norsk Data ever produced, but unfortunately everything somehow got thrown away at some point (by someone, not me), except for a few documents. I also have lots of CCT backup tapes (although some of them are probably quite degraded by now), and I once wrote a tool to read backup-system format tapes on an SGI system, but unfortunately I only copied a couple of tapes back then when I still had a CCT tape drive.

Update: The last CCT drive magically re-appeared a few years ago, and since I wrote the above I copied nearly all my CCTs, via a setup including an SGI Octane, an Anritsu CCT drive (a heavy monster now stored in my garage - the Anritsu is still much smaller than those full-height Tandberg/Kennedy/Pertec racks we used with the actual ND machines), and my own software. It turned out 99.9% of the CCTs were fine, all initial problems disappeared after a little cleaning of the CCT drive. Unfortunately I'm still short of real disk images, at some point in the far past I had thought that image backups had less value than file backups, so I dumped most of the image backups. Not a smart thing to do, as it turned out - emulators like disk image backups, and there are more files on those than on dedicated file backups.

All of which goes to show that despite the best of intentions information loss does continue to happen..

(oh, and I'm also writing my own ND500(x) and ND100 emulators.. the latter just so I can use assembler-500.prog to generate test programs for the former)

Edit: Updating the timeline a bit as and when my memory recall improves.

License for contributions

TArntsen 11:09, 19 October 2009 (UTC): For my contributions to the wiki Mike may use any license he sees fit.

Software for ND-100

* File:Snpcal.tar.gz

Snoopy calendar program for ND-100. It creates a SNPCAL:OUT file with calendar for 1988. This is the original IBM version modified for PDP-11 slightly modified for ND. The tar file contains source and data files, and an ND-100 executable compiled in 1-bank mode for easy network transfer. There is also a sample output file. Source files have Sintran line endings, but names must be changed from FILE.TYPE to FILE:TYPE

ND-100 disassembler for Unix

* ND100-disassembler-i686-static.tar.gz

This is a disassembler for ND-100 which executes on *nix (this particular one is for Linux). Disassembles BPUN and PROG files, but also non-programs like floppy bootstrap code or SINTRAN:DATA (which is a file in a Sintran filesystem which simply maps to the first pages of the directory image itself). Usage is fairly simple:

./dump100 -h
Usage: ./dump100 [options] <nd100program.[bpun|prog]>
-h              Print this help and exit.
-o <offset>     Optional start offset, in 16-bit words. Default is start
                address for PROG and BPUN files, and 0 for RAW files.
-b              File is a BPUN file.
-p              File is a PROG file.
-r              File is a RAW file (no header).

Default file type is deduced from the file extension unless -p or -b
is specified. -r must ALWAYS be set for raw files. If both -p and -b
are specifed then the last takes precedence. Don't use -b or -p with -r.
./dump100 ~/brf-linker-c01.prog |more
Start address  : 30031b
Restart address: 30031b
First address  : 0b
Last address   : 77023b
Bank 2:
First address  : 0b
Last address   : 26011b
030031 : 171400 SAX 0
030032 : 135137 JPL I * 137
030033 : 000002 STZ * 2
030034 : 002372 STZ ,X - 6
030035 : 010000 STT * 0
030036 : 000001 STZ * 1
030037 : 000000 STZ * 0
030040 : 124024 JMP * 24
030041 : 146147 COPY SL DX
./dump100 -r ~/nd-image |more
Start offset  : 0b
First address : 0
Last address  : 177777b
000000 : 150405 PIOF
000001 : 150001 TRA STS
000002 : 170412 SAA 12
000003 : 150103 TRR PCR
000004 : 170400 SAA 0
000005 : 150111 TRR LCIL

Sorry for the simple link. This is only a tar.gz file with a statically linked 'dump100' application, it will work on Linux i686 or x86-64 if the kernel is reasonably new - it won't work on 2.6.8, for example, but it will work on at least 2.6.22 or later. Maybe as old as 2.6.18, I'm not sure.

I'll do a proper release at a later point, with source etc. It'll be GPL'ed. I will also add the actual lib function itself (the dump100 tool is just a user interface to the function). The function itself is useful e.g. in emulators/emulator debuggers where you want a trace of the executing code, for example. I'll add an update for that as soon as I can, I'm rather busy right now so this is just to get something out that maybe a very few persons might find useful. A rather limited market I presume, but so be it :-) --TArntsen 16:50, 31 May 2011 (CEST)

Norsk Data filesystem lister and extractor for Unix

* ndfs-tool-1.2.tar.gz
* ndfs-tool-1.3.tar.gz
* ndfs-tool-1.4.tar.gz
* ndfs-tool-1.5.tar.gz

This is a filesystem tool for Norsk Data filesystem images (e.g. floppy images or hard disk images) which I wrote in 2009. Version 1.2 is from 2012, the latest version 1.5 is from May 2020. Source code in tar files.

Version 1.3 corrects handling of sub-indexed files for accounts set up with more than 256 files, and it adds special handling for Norsk Data timestamps where the timestamp is zero (which should be interpreted as 1/1 1950, not 31/12 1949)-

Version 1.4 includes rudimentary consistency verification of the masterblock, for early detection of corrupt images. It cannot, however, detect if the actual data of files is corrupt. But it has better error messages for when data blocks are pointing outside the filesystem image. This version also prints the physical size of the filesystem image, in pages (2048 bytes/page). Version 1.4 also adds build support for Sun, AIX, and OSF. It is known to build and work correctly on SGI (IRIX), Linux, AIX, FreeBSD, DragonFly, Sun Solaris.

Version 1.5 fixes an issue with 1.4 (not present in earlier releases) where direct reading from e.g. /dev/fd1 didn't work. This version also includes a simple build script as an alternative if you don't have GNU Make.

  • Build with 'make -f Makefile.ndfs'. Needs GNU Make. Works on 32/64-bit, big-endian, little-endian *nix and Linux. (From 1.4: Just 'make' is sufficient).
  • Version 1.5 was released 2020-05-22
  • License: GPL V3

If you don't have GNU Make available the tool can be built on most platforms like so:

cc -c ndfs.c
cc -o ndfs ndfs.o

Or simply execute the provided build script (since v1.5):


It works a bit like 'zip' or 'tar' in list- or extraction mode.

Usage: ./ndfs [-t | -x [-d] | other options] <Sintran filesystem image>
-h      Print this help and exit
-i      Info mode: Show more info from directory entry
-t      List files in image
-u      List user entries (-v also sets this)
-x      Extract files from image
-d      If used with -x, also extract directories
-l      Convert names to lower case letters
        (This also changes ':' to '.' for extracted files)
-c      Ignore bytepointer for contiguous files
-v      Verbose output when extracting files
-V      Show version number and exit

./ndfs -V
ndfs: Sintran Filesystem tool version 1.5

I have it installed in /usr/local/bin and can thus do:

$ ndfs -t 210523G02-XX-02D.image
Directory name            : 210523G02-XX-02D
Filesystem image size     : 616 pages
Object file index pointer : 508 SI: 0x1 (indexed)
User file index pointer   : 510 SI: 0x1 (indexed)
Bit file pointer          : 306 SI: 0x0 (contiguous)
No. of unreserved pages   : 1
  0   0: I       28 pages     56182 bytes 1988-03-04 20:13:49 (FLOPPY-USER)TPE-MON-100-B00:BPUN
  0   1: I       36 pages     72192 bytes 1988-06-09 11:17:46 (FLOPPY-USER)DISK-MM-B00:TEST
  0   2: I       36 pages     72704 bytes 1988-06-15 08:33:31 (FLOPPY-USER)SCSI-TV-B00:TEST
  0   3: I       19 pages     37376 bytes 1988-06-15 08:33:33 (FLOPPY-USER)SCSI-TV-OVL1-B00:NEXT
  0   4: I       16 pages     31232 bytes 1988-06-15 08:33:36 (FLOPPY-USER)SCSI-TV-OVL2-B00:NEXT
  0   5: I       19 pages     37376 bytes 1988-06-15 08:33:37 (FLOPPY-USER)SCSI-TV-OVL3-B00:NEXT
  0   6: I       18 pages     36352 bytes 1988-06-15 08:33:38 (FLOPPY-USER)SCSI-TV-OVL4-B00:NEXT
Directory size            : 611 pages
Bit file size             : 1 page 


$ mkdir tmp
$ cd tmp
$ ndfs -x -l ../210523G02-XX-02D.image
Directory name            : 210523g02-xx-02d
Filesystem image size     : 616 pages
Object file index pointer : 508 SI: 0x1 (indexed)
User file index pointer   : 510 SI: 0x1 (indexed)
Bit file pointer          : 306 SI: 0x0 (contiguous)
No. of unreserved pages   : 1
Directory size            : 611 pages
Bit file size             : 1 page 
Extracting: tpe-mon-100-b00.bpun
Extracting: disk-mm-b00.test
Extracting: scsi-tv-b00.test
$ ls
disk-mm-b00.test  tpe-mon-100-b00.bpun

or, without -l, and with -d:

$ ndfs -x -d ../210523G02-XX-02D.image
Directory name            : 210523G02-XX-02D
Filesystem image size     : 616 pages
Object file index pointer : 508 SI: 0x1 (indexed)
User file index pointer   : 510 SI: 0x1 (indexed)
Bit file pointer          : 306 SI: 0x0 (contiguous)
No. of unreserved pages   : 1
Directory size            : 611 pages
Bit file size             : 1 page 
Extracting: FLOPPY-USER/TPE-MON-100-B00:BPUN
$ ls

It can't extract single files, i.e. you can't give it optional file arguments as with e.g. tar or zip. I can add that if someone needs it.

Extract ND disk images from WINCH-TO-FLOPP backups

I wrote a small tool to recreate an ND filesystem image from floppy disk backups made with the SINTRAN tool WINCH-TO-FLOPP. It can be found on github. It compiles on various Unix versions as well as Linux. GPL licensed.


ND-100 on a mobile phone:

My ND-100 emulator (user-level only) on my Nokia 900, running PED:

PED Editor on the Nokia N900

The LED editor help screen

Notice this spelling error in the first A01 release. It was still there in later versions, at least as late as verson B03!

LED A01 editor help page