It needs two changes to your emulator: enter by setting IC to point to
first word (load anywhere) rather than through interrupt vector (which
can't be position-independent), and add opcode putc (017) which writes
char in A (LSBs) to stdout or suitable console window.
Let me know how it fares, and whether this is helping to get any
emulator closer to use.
I'm going to give myself a timeline for getting to the point where
others can contribute, because I know some people have been itching to
work on an emulator, and my code is not completely documented and
currently has a few ugly kludges to rework. Sorry about being so busy
in the first place, everyone, but with a timeline I should be able to
maintain a reasonable pace of progress. :)
--Matt Williams
0.70...@gmail.com
I applaud your effort. Maybe you'll benefit from this pair of facts
I've dug out of AL-39:
The EIS decimal subtract SB2D and DV2D do not agree on the order of
the inputs in the RTL:
SB2D: Y1 - Y2 -> Y2
DV2D: Y2 - Y1 -> Y2
I believe SB2D is misdocumented.
The earliest AL-39 on bitsavers appears to document the H6180 w/o
naming it, and others document the DPS/L68 and DPS 8M. I can find
only one architectural difference between these documents; the bit
pattern that causes the SCPR instruction to store the decimal unit
history regs changed from 60 to 10.
I'm moved to speculate that the SCPR change is bogus (a doc error or a
decode that would accept either value, at least on the earlier CPU) so
H6180 is truly a synonym for DPS/L68. I will act on this by using
H6180 in the name of the target-specifying file for my assembler, thus
avoiding the need to explain that - represents /.
Let anyone who knows point out any reason why we shouldn't call the
emulator target H6180.
I dug out a 1972 manual for the EIS add-on (to pre-Multics base),
which confirms that SB2D is Y2 - Y1 -> Y2.