ND100 emulator project

From NDWiki
Jump to navigation Jump to search

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.

Wanted Information

  • Specifications for IOX1-3.
DoneDone Partially solved, Rack Controller.
  • Specifications for IOX4-7.
DoneDone Partially solved, Memory Parity.
  • Information about expected behaviour of CLEPT and SETPT (Inparameters, effects etc)
  • Information about undocumented instructions, particularly 142700...
  • PROG File format.
  • Details of Floppy IOX calls...
DoneDone Solved, see 3010.

Known Bugs

MOVB and MOVBF instructions need complete rewrite.

Documentation

Some online documentation is generated with Doxygen.

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.