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

Reply via email to