HP-35/45 Simulator for PDP-8
kylevowen at gmail.com
Tue Sep 13 18:30:29 CDT 2016
On Tue, Sep 13, 2016 at 2:55 PM, Klemens Krause <
krause at informatik.uni-stuttgart.de> wrote:
> First PAL8 complained about "IFNZER". PAL8 wants "IFNZRO"!
> After changing this, assambly was successfull, and I could start the
> program on the straight-8. All seemed to be ok, with the exception,
> that sine (keyboard I) and roll (keyboard L) do not work with your
> new version. These keys are just ignored.
> Same behaviour on my 8/E, no difference to the straight-8.
Huh, palbart understands both IFNZER and IFNZRO, so I'll fix it to use the
The keys were updated for the HP-35 and HP-45 to be more intuitive for the
commonly-used functions, 'S' and 'R' are now sine and roll, which were
formerly store and recall. Store and recall are now '<' and '>',
respectively. Look in the code for the key lookup table; I have an ASCII
table of keys arranged in the HP-35/45 keyboard pattern. Both the HP-35
only and HP-35/45 versions use the same keyboard code.
Another issue: your BSWSUB has still the bug, that
> DCA BSWTMP
> DCA BSWLNK
> CLL / THIS MUST BE!
> the CLL is missing. Without this, the bit 0 on entry of this routine
> is inverted, when the link is set on entry.
> Remember, the link is not a carry!
Hmm. Sounds like I need some more complicated test vectors! Either that or
the link is never set prior to entry, which I doubt. I'll look at adding
Doug's new code to the mix. Nice work, Doug!
Next question: my hp35 has 36 keys. The 36th key is not accessible
> for normal users. It's hidden below the "ENTER" key. What does this
> key do? If I remember right, it's a kind of debug-key. I believe it
> shifts the whole register including exponent and signs digit by digit
> to the left.
Sounds like Eric has answered your question, but no, this simulator doesn't
support the extra button without changing one line of code; I can add that
as an option if interested for the HP-45 portion, but I'd think the
stopwatch mode serves zero purpose on this simulator, as it would never run
anywhere close to the accurate time anyways.
More information about the cctalk