[comp.sys.hp48.d] Machine Language Info

JMEYERS@MTUS5.BITNET (04/30/91)

I vaguely remember someone posting some highly recomended reading material
concerning machine level programing on the HP-48.  Could someone, preferable
the orginal poster or a copy of the original post, please give me a second
copy of that information.  At the time I wasn't interested in machine level
programming; however, I have recently decided to explore the internals of
my HP-48SX.  Any advise on good sources of information would be great.  I am
most definitely a beginner.  The only assembly language experience that I
have had was last term in my one of my EE classes involving the Motorola
MC6809.  Thanks in advance.

Jason P. Meyers
JMEYERS@mtus5.cts.mtu.edu

ervin@pinbot.enet.dec.com (Joseph James Ervin) (04/30/91)

>I vaguely remember someone posting some highly recomended reading material
>concerning machine level programing on the HP-48.  Could someone, preferable
>the orginal poster or a copy of the original post, please give me a second
>copy of that information.  At the time I wasn't interested in machine level
>programming; however, I have recently decided to explore the internals of
>my HP-48SX.  Any advise on good sources of information would be great.  I am
>most definitely a beginner.  The only assembly language experience that I
>have had was last term in my one of my EE classes involving the Motorola
>MC6809.  Thanks in advance.
>
>Jason P. Meyers
>JMEYERS@mtus5.cts.mtu.edu
>


Ah yes, the good old 6809.  Actually I grew up on the 6800 family of
processesors, and I understand that the 6809 is considerably more advanced than
the 6800's I used back at U-Maine.

Anyway, I believe that I am the original poster to which you refer.  Here is a
copy of the information you requested.  Enjoy!

>>>Joe Ervin

***********************************************************************
To all who are interested about doing machine language programming on the
HP48SX, and who have been frustrated at trying to find information on how
to do so:

To my knowledge there is no official documentation or books which describe
how to do ML programming on the HP48SX.  Here are some sources of
information that have served me well.

First, check out Alonzo Gariepy's notes on the  Saturn processor, which is
the processor HP used in the 28 and also in the  48SX.  This will give you
a decent introduction to the instruction set and the basic architecture of
the processor.

Then, you should read Alonzo Gariepy's notes on doing ML programming on 
the HP48SX.   These notes provide some useful information, and give some 
decent examples of how to do things.

Next, I recommend you take a look at the internals description by Derek
Nickel. This gives a decent explanation of the different data types used 
in the 48SX, and how they are each represented.  Of all the internals lists
that have been posted I believe that his has the best descriptions of  the
various object types, their prologs and how they are stored.

Next, I recommend that you get the list of internal addresses that Jake
Schwartz posted to the net.  This gives a good description of all (?) the
known  internal addresses and what they do.

Finally, I suggest you get the Star assembler.  After reading the README
file and the STAR.REF files which come as part of the Star  assemlber, you
should have a pretty decent feel for how to program the 48SX. STAR was
written by Jan Brittenson, and he has put in a good effort to make it
fairly transportable.  I was able to compile and run it on a VAX/VMS system
without requiring much effort on my part.

For some more involved examples of machine language code, check out the
sources for CHIP-48.  This also gives some good hints on how to access the
keyboard and display.

Lastly, let me make one more suggestion.  READ THE DOCUMENTS I HAVE
MENTIONED ABOVE, in the order I have specified them.  Alonzo's notes will
give you a decent foundation regarding the architecture of the SATURN
processor and the instruction set.   Derek's notes will give you a good
foundation  in the object types and how the 48SX stores information
internally.  After reading these documents, I have been able to undertake
non-trivial ML projects. 

Another tool which you will find very valuable is Derek Nickel's Voyager
program.  Voyager is a tool for examining the code in the HP48's ROM.  It's
a great way to find those ML routines that the people at HP wrote to do all
those wonderful things like reading the keyboard, playing with the display,
and reading the hardware timer.

I hope that helps.

>>>Joe 

P.S. All of the documents mentioned above are available on Wayne's mail
server; a service that I highly recommend.  

ervin@pinbot.enet.dec.com (Joseph James Ervin) (04/30/91)

For those interested in the ML documents I mentioned in my previous post, here
is the information on how to access Wayne's mail server.

>>>Joe

*******************************************************************
Article         7149
From: wscott@en.ecn.purdue.edu (Wayne H Scott)
Newsgroups: comp.sys.handhelds
Subject: Wayne's Mailserver has moved.
Organization: Purdue University Engineering Computer Network
Lines: 58
 
This is a notice to everyone that my mail server has now moved
to a new location.
 
The address is now:  hp-mail-server@seq.uncwil.edu
 
No special subject is now needed!
 
Many thanks to Chris Spell for providing computer time and space for this
service and for offering to keep it running this summer when I am away
from school.
 
Stay tuned for the FTP address. :)
 
The revised help file follows:
 
How to reach Wayne's Mail Server
--------------------------------
To request files for your HP-48 or HP-28 you can send command my mail
to my mail server.
 
Mail commands to: hp-mail-server@seq.uncwil.edu
Subject is ignored.
 
The server will mail responses to the Reply-To: header on your mail.  If 
not found, the From: field will be used.  If you want to overide this path
put this command in the message:
	path <your address> 
 
To get help:
	send HELP
 
The HP-48 files are used by default.  To reach the HP-28 files include:
	HP28
 
To get an index of files:
	send INDEX
 
If you don't get a response within a day or so, your email address is 
probably bad.  Include a path command with an address like one of the following:
	path login@machine.place.edu
	path login@PLACE.Bitnet
	path place!machine!login
 
Files are send in a uuencoded (atob on request) format and the programs are
usually compressed. (if they end in .Z)   PC users should request PC.starter
and u16.exe to extract files on a PC. 
 
If you have any other problems send me mail.  (Same address, different
subject)  I hope you enjoy the server.
 
Wayne Scott
 
 
-- 
_________________________________________________________________________
Wayne Scott             |  INTERNET: wscott@ecn.purdue.edu
Electrical Engineering  |  BITNET:   wscott%ecn.purdue.edu@purccvm
Purdue University       |  UUCP:     {purdue, pur-ee}!ecn.purdue.edu!wscott