ND100 emulator project

The ND100 Emulator Project (nd100em) strives to be able to completely run ND-100 code and emulate a ND-100 computer to the degree it can boot and run SINTRAN III.

Authors

 * Per-Olof Åström
 * Roger Abrahamsson
 * Zdravko Dimitrov
 * Göran Axelsson

Status

 * In active development. Most of the basic instructions implemented and some of the system ones. MMS implemented. Able to run some ND100 software.


 * It can run BPUN files, but has a long way until all system functions are working. MAC sort of works, as well as INSTRUCTION-B, which is the main test program used for now to see how well it behaves.


 * Version 0.1.6 introduced functions to measure emulator speed, and on a 2.6GHz P4, it is around 5-10 times on average faster than an original ND-100, counted per instruction over a large number of instructions. The code is NOT optimized for speed at all.


 * Version 0.1.9 runs a lot more code, and can handle BPUN files straight off.


 * Usually the projects experimental code is further ahead than these versions available here.


 * You can join the project mailinglist (closed sumbission).

Wanted Information

 * Specifications for IOX1-3.
 * ✅ Partially solved, Rack Controller.


 * Specifications for IOX4-7.
 * ✅ Partially solved, Memory Parity.


 * Information about expected behaviour of CLEPT and SETPT (Inparameters, effects etc)


 * Information about undocumented instructions, particularly 142700...
 * ✅ Partially solved
 * 142700 - GECO
 * 161000 - IOT SKA


 * PROG File format.
 * ✅ Solved


 * Details of Floppy IOX calls...
 * ✅ Solved, see 3010.


 * Newer version of INSTRUCTION VERIFY, this one lacks test for BCD and CX instructions.
 * Current one is...
 * DATE ISSUED  - 83.11.01

Known Bugs

 * MOVB
 * Needs fixing for a few edge cases.


 * MOVBF
 * Total rewrite needed.


 * NLZ
 * Not properly identified yet what needs to be done.


 * DNZ
 * Not properly identified yet what needs to be done.


 * FAD
 * Not properly identified yet what needs to be done.


 * FDIV
 * Not properly identified yet what needs to be done.

Documentation
Some online documentation is generated with Doxygen.

Also a copy of README-CODING-IO has been added here on the wiki for easy access.

Code
Latest development code can be found in the development git tree.


 * v0.1 - Initial release, able to run image of ND100 MAC
 * v0.1.1 - New command parser, some floating point support
 * v0.1.2 - Rearranged to new structure, new instructions added
 * v0.1.3 - Lots of bugfixes and some more instructions
 * v0.1.4 - multithreading, IOX infrastructure. Bugfixes.
 * v0.1.5 - Runlevel switching in WAIT, basic rtc interrupt functionality, fixes all over
 * v0.1.6 - IDENT infrastructure, Config file handling, bugfixes, profiling
 * v0.1.7 - Bugfixes, handles paging and interrupt. New tracing model.
 * v0.1.8 - Bugfixes, partially runs INSTRUCTION-B testprogram now.
 * v0.1.9 - Bugfixes,new tracing, runs INSTRUCTION-B to a degree we can use it to test instructions.
 * v0.2.0 - Corrected PT/APT handling, IRQ fixes, runs completely through PAGING-B.BPUN, don't crash out on RTC-12-1902B.BPUN anymore.
 * v0.2.1 - Bugfixes, some memory leaks fixed. Change from mutex to semaphores, and tested build on 64 bit Linux and FreeBSD.