ND100 emulator project: Difference between revisions

From NDWiki
Jump to navigation Jump to search
Line 28: Line 28:
:{{done}} Partially solved, Memory Parity.
:{{done}} Partially solved, Memory Parity.
:: More information about these would be good though, like where more documentation about them is found, or register flags/values.
:: More information about these would be good though, like where more documentation about them is found, or register flags/values.
*Information about expected behaviour of [[CLEPT]] and [[SETPT]] (Inparameters, effects etc)


* Information about undocumented instructions, particularly 142700...
* Information about undocumented instructions, particularly 142700...
Line 38: Line 36:
*PROG File format.
*PROG File format.
:{{done}} Solved
:{{done}} Solved
*Details of Floppy IOX calls...
:{{done}} Solved, see [[3010]].
* Newer version of INSTRUCTION VERIFY, this one lacks test for BCD and CX instructions.
:Current one is...
:{{done}}DATE ISSUED  - 83.11.01
: We now have up to versions from 1988
* {{done}}Details about the PANS, PANC registers and the front panel.
: There apparently is a real time clock here that keeps date etc for example, and newer test program versions tries to locate that.


* An output dump from VERSN run on at least one real ND 110+
* An output dump from VERSN run on at least one real ND 110+

Revision as of 01:54, 8 August 2016

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.
More information about these would be good though, like where more documentation about them is found, or register flags/values.
  • Information about undocumented instructions, particularly 142700...
DoneDone Partially solved
142700 - GECO -
DoneDone161000 - IOT. an old ND1 pre IOX instruction, details in ND1 manuals.
  • PROG File format.
DoneDone Solved
  • An output dump from VERSN run on at least one real ND 110+
Has to be run 16 times, as the installation number is that long. A reg bit 11-8 is set to byte num, then VERSN called
Output comes in A, T, AND D register.
Bit 15-4 of A= Print version. 3-0 is ALD, T=Microprogram version, lower byte of D=installation num.

Known Bugs

  • MOVB
Needs fixing for a few edge cases.
  • NLZ
Not properly identified yet what needs to be done.
  • DNZ
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.
  • v0.2.2 - Bugfixes, MOVBF & FAD fixed, IOX on nonexistant devices fixed, disassembly functionality added, and a bunch of small changes. Build tested on 64 bit Linux but not FreeBSD.
  • v0.2.3 - Some compile errors crawled into v0.2.2, so this is a quick new release to fix it.
  • v0.2.4 - Added panel processor functionality. Can now keep a datetime clock running, and passes newer test programs.