The Museum of HP Calculators

HP Forum Archive 08

[ Return to Index | Top of Index ]

Saturn processors
Message #1 Posted by Randy Sloyer on 5 July 2002, 9:38 a.m.

I would like to poke around a bit in my 42S rom. Just because its there. I've been able to download it to my 48G and get it to a PC. So now it's time for the dissassembler. As I have never seen anything done specifically for the 42S, I was wondering if the processor in the 48's is identical in core features? If it is, I could use the tools already out there for the 48.

Good way to go, or am I going to have start from scratch?

      
Re: Saturn processors
Message #2 Posted by Vieira, Luiz C. (Brazil) on 6 July 2002, 2:10 a.m.,
in response to message #1 by Randy Sloyer

Hi;

Both calculators share different O.S. structure (RPL/RPN, just to start), but you are correct when mentioning Saturn-based platform for both. If you think this way, chances are that some routines already built in the 42's O.S. will run under the 48's O.S. control, BUT... will you find input/output points to, say, read and write data? Maybe routines' structure allow parameters to be passed as arguments, but I believe memory referenced contents will be the best way to give the routines their arguments and read results back. Will the 48's O.S. crash this way?

You know what? I'm curious, now. Will you let us know what you have been doing?

Success!

            
Re: Saturn processors
Message #3 Posted by Randy Sloyer on 6 July 2002, 7:55 a.m.,
in response to message #2 by Vieira, Luiz C. (Brazil)

Thanks Luiz.

I've been daydreaming after reading this article: HP-42S New Facts. Just for fun, I would like to try and extend my 42S in two areas:

  1. IR Input
  2. Load common programs I use into a ROM
These two desires are somewhat exclusive of one another, that is if I can get (1) to work, I don't need (2). But I think the ROM might be the easiest to do. The hardware position is already there, all I have to do is figure out what format the code needs to be in. And of course this requires an understanding of the machine. I've already started on my own dissassembler based on the opcode listing from HP for the 48. Maybe it's all a waste of time, but I'm sure I'll learn something out of the exercise and that's enough for me.

I would most certainly share whatever information I might discover in this exploration.

                  
Re: Saturn processors
Message #4 Posted by Jonathan Busby on 8 July 2002, 12:26 a.m.,
in response to message #3 by Randy Sloyer

To the best of my knowledge there have been 5 versions of the Saturn processor. Here they are in chronological order :

- 1LF2 :

Original stand alone processor used in the 71B. Clock speed was 640 KHz.

- 1LK7 :

Stand alone updated version of the 1LF2 used in the 18C, 28C and later versions of the 71B. Added some new instructions including those designed to speed up RPL execution.

- 1LR2 :

Strictly speaking, "1LR2" isn't really the designation for the Saturn core but instead an integrated cpu/ram/rom/display-driver IC. (among other things) This also had the code name "Lewis" and was used in the 28S, 17B, 19B, 27S, 42S, 17BII, and 19BII. The low level software based interfaces of the Lewis peripherals are probably very similar to those of the 28C as it's basically the 28C motherboard "on-a-chip" . Maximum rated clock speed is around 2 MHz. In terms of software compatibility with the 1LK7, the Lewis instruction set is a superset. Many instructions have been added.

For the most detailed explanation yet of the Lewis hardware see http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=275 .

Also, for some pointers to information relating to the Lewis chip see :

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=htng9uo2ho8lsmpur7nus3ob52ie94631h%404ax.com&rnum=1

- 1LT8 :

This is a leveraged redesign of the Lewis also known by the code name "Clarke" . On the software side, the CPU instruction set is pretty much the same as the Lewis but the low level software based interfaces to the on board peripherals have changed. The Clarke is another multi-function IC and in addition to the functionality provided by the Lewis (minus the on-board RAM) the Clarke added a UART, an updated display driver with a different display bitmap organization and software configurable memory controllers. The clock speed is also around 2 MHz .

- Yorke : ( Internal HP designation unknown )

This is the chip used in current high end HP graphicals. It's basically identical to the Clarke on the software side. On the hardware side the speed has been increased to 4 Mhz and instructions timings have been improved. ( either by doubling the rate at which the internal ALU/control-unit works or expanding the amount of data operated on at a time internally to 8 bits. )

Also in the Saturn based chip family are the Bert and Saca (Sacajawea) ICs used in some Pioneer models but I believe they use the same Saturn core as the Lewis. (albeit running at a lower speed such as 640 KHz )

If you're looking for disassemblers probably the most sophisticated and feature rich one (on any platform) would be SADHP . ( http://www.hpcalc.org/details.php?id=3815 ) Unfortunately it only supports the 48SX/GX but with some minor modifications to the source code it should be able to work with the 42S .

Hope this helps...

Jonathan

-----------------------------------------------------------------------------------------------------------------------

Remove the random permutation of "NOSPAM" from my e-mail address before replying.

                        
Re: Saturn processors
Message #5 Posted by Randy Sloyer on 8 July 2002, 1:30 a.m.,
in response to message #4 by Jonathan Busby

Thanks Jonathan!

Most helpful. Since you seem to know a get deal about the the Saturns - do you know if the system rom of the 42S was done in assembly or in RPL? I think it might have been RPL since it was after the 28 series machines.

I ask only because if it was done in RPL, its going to be I think somewhat tougher to understand since a compiler always generates more code than necessary to do the job.

                              
Re: Saturn processors
Message #6 Posted by Jonathan Busby on 8 July 2002, 5:47 p.m.,
in response to message #5 by Randy Sloyer

Randy Sloyer wrote :

"do you know if the system rom of the 42S was done in assembly or in RPL? I think it might have been RPL since it was after the 28 series machines."

It's a combination of RPL and pure assembly I believe.

"I ask only because if it was done in RPL, its going to be I think somewhat tougher to understand since a compiler always generates more code than necessary to do the job. "

Actually, applying the word "compiled" to RPL is kind of a misnomer - it's "compiled" in the same sense that assembly is "compiled" . It's really a "Threaded Interpretive Language" (TIL) like Forth for example. An RPL program is basically a sequence of 5-nibble pointers to ROM subroutines possibly intermixed with embedded objects. ( for information on how an RPL program is executed see sections 2.3-2.4 of RPLMAN.DOC which can found in http://www.hpcalc.org/hp48/compilations/horn/horn4.zip ) For the bulk of an RPL program there is a direct 1-to-1 correspondence between each symbol/token/identifier in the source code and the 5-nibble binary addresses in the output file. This combined with the fact that RPL is a higher level language than assembly with many more facilities makes reverse engineering RPL easier.

Jonathan

---------------------------------------------------------------------------------------------------------------------

Remove the random permutation of "NOSPAM" from my e-mail address before replying.

                                    
Re: Saturn processors
Message #7 Posted by Randy Sloyer on 8 July 2002, 8:28 p.m.,
in response to message #6 by Jonathan Busby

Thank you again Jonathan for the great help. The information is most appreciated.

I obviously have not dug very deep into this project at this point. I have been studying the "The guide to Saturn Assembly Language" by F.H. Gilbert. Its all starting to make some sense as I have only ever worked with Intel machines from the 8008 onward. The Saturn kind of reminds me of a 8051 with Z80 addressing modes but of course with those whopper 64 bit registers.

With all the pointers you've given me, I have a few weeks of well directed work ahead. Thanks again.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall