This repository contains documentation and code for an assembler and an emulator of a subset of the instruction set of the 16-bit minicomputer NORD-10 produced by Norsk Data in 1973.
ND-06.009.01.md contains a markdown formatted version of parts of the NORD-10/S Functional Description (See references).
Clone the repo and cd into the folder:
git clone https://github.com/albertaillet/nord-10
cd nord-10The assembler is written in Python (version 3.13.5 for development, version 3.10 or higher should work).
./assembler.py --helpThe emulator is written in the Odin (version dev-2026-02:b942f72cb for development) programming language.
odin run emulator.odin -file -- <path_to_assembled_program>The tests for the assembler are written in Python and can be run with
./test.pyTo assemble a file and then run it:
./assembler.py examples/arg_instructions.asm -o a.out && odin run emulator.odin -file -- a.out
# Or if you want to run the assembled program with input from stdin:
echo " STZ -127" | ./assembler.py | odin run emulator.odin -fileOr compile the emulator first and then run with these commands:
odin build emulator.odin -file
./assembler.py examples/arg_instructions.asm -o a.out && ./emulator a.outThe tests for the emulator are written in Odin and can be run with
odin test .- At CERN https://s3.cern.ch/inspire-prod-files-7/7d44720d4bab506c2032840f87e50689
- Archive.org
- NorskData search: https://archive.org/search?query=NorskData
- Nord 10/S manual: https://archive.org/details/NorskData_ND-06.010.01-NORD-10-S-MICROPROGRAM/page/n43/mode/2up
- Forum diskussion about Nord emulator https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=103978
- Wikipedia https://en.wikipedia.org/wiki/Nord-10
- NDwiki https://www.ndwiki.org/wiki/Main_Page
- Documentationlist https://www.ndwiki.org/wiki/Documentation_list-Hardware
- Emulator https://www.ndwiki.org/wiki/Talk:ND100_emulator_project
- 48-bit floating point http://www.ndwiki.org/wiki/48-bit_floating_point
- vtda.org https://vtda.org/docs/computing/NorskData/
- bitraf.no
- http://heim.bitraf.no/tingo/files/nd/
- has a copy of ND-06.014.02 ND-100 Reference Manual January 1982
- has a copy of ND-06.008 NORD-10/S REFERENCE MAUAL
- bitsavers.org:
- datormuseum.se http://www.datormuseum.se/documentation-software/norsk-data-documentation.html
List of scanned documents available at datormuseum.se as of 21/07/2025
| ND-06.009.01 | NORD-10/S Functional Description |
| ND-06.010.01 | NORD-10/S MICROPROGRAM |
| ND-06.012.01 | NORD-10/S Input/Output System |
| ND-06.013.01 | NORD-10/S General Description |
| ND-11.009.01 | HAWK Disk System |
| ND-11.010.01 | NORD-10 Hawk Disk Controller |
| ND-11.012.01 | Floppy Disk System |
| ND-30.004.02 | NORD-10/S Hardware Maintenance Manual |
| ND-60.044.01 | SINTRAN II OPERATOR'S GUIDE |
| ND-12.008.01 | NORD 10/HP 7970 Mag Tape interace |
How it is possible that LDT and MIN has the same code (040000)?
Same question for SSO and SSQ (000040)?
I think it must be a typo and should be LDT:050000 and SSO:000050.
Why does Robert use XOR instead of OR to combine the different 16 bits to the instruction in the Livecode program?
See USE OF THE PVL REGISTER to get an example of how to use ,X