The Museum of HP Calculators

HP Forum Archive 12

[ Return to Index | Top of Index ]

The HP-28S speedup program on my site...
Message #1 Posted by Gene on 22 Apr 2003, 7:35 a.m.

Got the email below about the speedup program for the HP-28S on my site. I thought I had typed it up correctly. Any suggestions? --Gene ------------------

Originally, I was searching for a download manual for my 11c, but at least I found this on your fine site:

HP-28S Speed Up! << RCWS 64 STWS 'FAST' DUP RCL SWAP DUP PURGE HOME  #C6F0302331DFFBCh #E60D51FFF00F1h #C808461241131h OVER STO #DFFB7h SYSEVAL  STO STWS >> 'FAST' STO

I tried it out without much thinking and it does not work. A closer look shows, that the part

#E60D51FFF00F1h #C808461241131h OVER STO

makes not much sense, at it tries to store #C808461241131h in a variable of name #E60D51FFF00F1h.

Are there some brackets missing or something alike? I did not dare a trial and error in order not to erase the memory.

      
Re: The HP-28S speedup program on my site...
Message #2 Posted by Ex-PPC member on 22 Apr 2003, 10:30 a.m.,
in response to message #1 by Gene

Perhaps this may be of help in order to understand the speed-up procedure, as it's commented ...

HP-28S Speed

      
Re: The HP-28S speedup program on my site...
Message #3 Posted by Christoph Giesselink on 22 Apr 2003, 4:59 p.m.,
in response to message #1 by Gene

Writing assembly software for the HP28S using the known address entry of HOME is a crap way of programming.

Alonzo Gariepy published some HP28S based helper tools in his "HP28S PROCESSOR NOTES" for more convenient programming. But I personally use a modified ASS program from Friedrich Schroeder CHK2 article.

  ASS [BE22]
  << -> lm
    << HEX "" 1 lm SIZE
       FOR i
         "#" lm i DUP2 1 + DUP SUB 3 ROLLD
         DUP SUB + + STR-> B->R CHR + 2
       STEP
       # 3CEAAh SYSEVAL
       # 4F3Dh SYSEVAL
    >>
  >>

This allows me to write normal SysRPL programs with the HPTOOLS (v3.1.0) and a modified/expanded HP28S entry point list from Jean-Francois Garnier. From these binary sources I make a so called "MCode" string and also calculate the checksum of the MCode for later verifying on the machine.

Then I type in the MCode String, the most difficulty part, check the checksum to be sure that a didn't made a mistake, and finally call the assembler ASS to make the "System Object".

The machine code for the fast/speed program is always something like this

  RPL
  CODE
    AD0EX
    D0=(5) #FFF00
    LC(1)  #F
    DAT0=C 1
    D0=A
    LOOP
  ENDCODE

00000 69C20 CON(5) =DOCODE 00005 32000 REL(5) LBL000 0000A 132 AD0EX 0000D 1B00F D0=(5) #FFF00 FF 00014 30F LC(1) #F 00017 15C0 DAT0=C 1 0001B 130 D0=A 0001E 142 A=DAT0 A 00021 164 D0=D0+ 5 00024 808C PC=(A) 00028 LBL000

The MCode is

  MSPEED [4861]
  "69C20320001321B0
   0FFF30F15C013014
   2164808C"

Enter the string whithout any white chars, they are only for better reading, then the checksum will be ok. The "assembled" program itself without the program name is only 20 Bytes long!

The HP28S CHK2 checksum program and many other things can be found at http://www.hpcalc.org.

Happy trying

Christoph


[ Return to Index | Top of Index ]

Go back to the main exhibit hall