HP-35/45 Simulator for PDP-8

Klemens Krause krause at informatik.uni-stuttgart.de
Fri Sep 9 10:07:02 CDT 2016


On Thu, 8 Sep 2016, Vincent Slyngstad wrote:

> From: Kyle Owen: Thursday, September 08, 2016 5:43 PM
>> On Sep 8, 2016 8:28 PM, "Vincent Slyngstad" wrote:
>>> That should probably be:
>>>   7 00402 7620         snl cla         / Link set?
>>>   8 00403 7140         cll cma         / No, remember it
>>> 
>>> Needs more testing :-/.

Yes, I think, there is a bug in your code:

    SNL CLA    /CLA IS REDUNDANT, AS AC is 0 here
    CLL CMA    /CLL MAKES NO SENSE BECAUSE LINK IS NOT SET, IF THE SNL
               /DOES NOT SKIP
    CLL        /IS NEEDED AFTER THE SNL, OTHERWAYS THE MSB WOULD BE
               /INVERTED AFTER THE BSW-ROUTINE.

I tried both versions with the emulator, and both gave identical
results. So I tested another "BSW"-replacement, simply:
BSWEMU,	0000
 	RTR
 	RTR
 	RTR
 	JMP I BSWEMU
This also worked. ;-) I didn't look in the code, but evidently the
BSWs are only used, to get the higher 6 bits of a word.


And now another question came up. What does a hp-calculator answer,
if you ask fot tan(90)?

Answer:
hp35_emu:  90 t     gives 9.9999999999 E99
hp35_real:          didn't find the power supply :-(
hp9100:    90 tan   gives 9.9999999999 E99
hp9810:    90 tan   gives 9.9999999999 E98 (yes, E98!)
hp9820:    90 tan   gives "NOTE 01"



Here are the three version of BSW:

/  K. KRAUSE                 K. OWEN                      V. SLYNGSTEDT
BSWEMU, NOP             /BSWSUB, 0                   /BSW,   0
         DCA     AC      /        DCA    BSWTMP       /       DCA     SAVEAC
         RAL             /        SZL                 /       SNL
         DCA     LINK    /        TAD    C0100        /       CMA
         TAD     AC      /        DCA    BSWLINK      /       CLL
         RTR             /        TAD    BSWTMP       /       DCA     SAVEL
         RTR             /        CLL                 /       TAD     SAVEAC
         RTR             /        AND    C7700        /       AND     C7700
         AND     M0077   /        RAL                 /       TAD     SAVEAC
         DCA     BH      /        TAD    BSWLNK       /       RTL
         TAD     AC      /        DCA    BSWLNK       /       RTL
         AND     M0077   /        TAD    BSWTMP       /       RTL
         RTL             /        AND    C0077        /       ISZ     SAVEL
         RTL             /        TAD    BSWLNK       /       CML
         RTL             /        RTL                 /       JMP I   BSW
         TAD     BH      /        RTL                 /SAVEAC,0
         CLL RAL         /        RTL                 /SAVEL, 0
         TAD     LINK    /        JMP I  BSWSUB       /C7700, 7700
         RAR             /        BSWTMP
         JMP I   BSWEMU  /        BSWLNK
AC,     0000            /        C7700
LINK,   0000            /        C0077
BH,     0000            /        C0100
M0077,  0077 
/
I added literals an temporary locations to the code, because one cannot
be sure, that a special literal, as for example 0100 or 0077 exists in
the other code.


Klemens



--

klemens krause
Stuttgarter KompetenzZentrum fyr Minimal- & Retrocomputing.
http://computermuseum.informatik.uni-stuttgart.de



More information about the cctalk mailing list