HP Forums
Synthetic Programming on the HP-9815A/S - Printable Version

+- HP Forums (https://archived.hpcalc.org/museumforum)
+-- Forum: HP Museum Forums (https://archived.hpcalc.org/museumforum/forum-1.html)
+--- Forum: Old HP Forum Archives (https://archived.hpcalc.org/museumforum/forum-2.html)
+--- Thread: Synthetic Programming on the HP-9815A/S (/thread-83606.html)



Synthetic Programming on the HP-9815A/S - John Ioannidis - 12-01-2005

Before there was Synthetic Programming on the HP41 (and even the 67/97), there could have been SP on the 9815. To wit:

The HP-IB interface for the 9815 has some commands that allow you to manipulate individual bytes in storage registers and then transfer them to program memory! (The reason for this was to allow character strings to be sent to and from the HPIB interface under program control). Some interesting facts so far:

* Most instructions occupy one byte; some are two bytes, with a prefix and an argument. Storage register operations and GOTO/GOSUBs are examples of the two-byte instructions.

* There are several one-byte instructions that are undocumented.

- One instruction appears to be a NOP, except it doesn't print onthe printer. There does not seem to be a way to enter it from the keyboard.

- CALL A through CALL E can actually be typed on the keyboard, but they make no sense; CALL A tries to access the cartridge drive, but it's unclear what it's doing (it reports "WRONG FILE TYPE"). CALL B through CALL D appear to be no-ops, and CALL E must be trying to access some I/O device unsuccessfully.

* Some 2-byte instructions have interesting properties

- FIX n, SCI n, and SCI3 n (they hadn't invented the term Engineering Notation yet) with n not in the range 0-9 just set the mode to FIX, SCI, and SCI3 without changing the number of visible digits, thus behaving like the HP-67/97 FIX, SCI, and ENG.

- LBL xx, GOTO L xx and GOSUB L xx are prefixes that take the actual label number (00 through 99) as an argument. With SP you can set the argument to any number between 0 and 255, so in effect you have 256 labels, rather than "only" 99. It's also amusing how these print on the printer.

- For some weird reason, the argument for the register operations is only 7 bits; there are separate prefixes for RCL Rxx and RCL R+128xx. The high bit of the argument appears to be ignored.

- The prefix for STO I A through STO I J can be used with arguments other than A through J (101-110). I'm still trying to decipher the results.

I'm in the process of formatting properly a complete "byte table", which I'll post here. Let's see if we can uncover some more secrets :)

/ji


Re: Synthetic Programming on the HP-9815A/S - Howard Owen - 12-02-2005

Congratulations, John! Great job of paleocybernetics there. 8) I suppose the relative cost of the 9815 and the HP-41 explains why more hacking was done on the latter than the former.


Re: Synthetic Programming on the HP-9815A/S - Tony Duell - 12-02-2005

Something else that I've not had time to fully investigate yet :

The 9815A has 7 off 2K ROM chips on the CPU board and a space for an eighth. The 9815S has 2 off 8K ROM chips (and more RAM). The address decoder circuit only enables a total of 14K of the ROM, same as for the 9815A.

If you solder in a link on the CPU board it enables all 16K of ROM (this is obvious from the schematics). The extra 2K of ROM has the correct headers for being an I/O device ROM, and in fact seems to contain meaningful names.

One day I am going to sit down with a 6800 disassembler and figure out just what those extra functions do.


Re: Synthetic Programming on the HP-9815A/S - Eric Smith - 12-02-2005

Can you make ROM dumps available?


Re: Synthetic Programming on the HP-9815A/S - John Ioannidis - 12-02-2005

Have you actually tried soldering the jumper? If the upper 2K looks like an I/O rom, then [CALL] [n] [A-J] would probably be the way to access its functions.

Were there any patents filed for the insides of the 9815?

/ji


Re: Synthetic Programming on the HP-9815A/S - Eric Smith - 12-02-2005

US Patent 4,089,059: Programmable calculator employing a read-write memory having a movable boundary between program and data storage sections thereof


Re: Synthetic Programming on the HP-9815A/S - Tony Duell - 12-03-2005

Yes, I've soldered the jumper in my 9815S.

From what I remember CALL 7 A, etc produce names that print out sensibly on the built-in printer, but I haven't worked out what they do yet.


I guess I have an upgraded 9815A after all - John Ioannidis - 12-03-2005

My case says "9815 A" in the front, and has a "9815S" sticker inside the paper well. I opened the beastie again, and sure enough it only has 7 ROMs with space for an 8th, but it has eight 2114 RAM chips (so 4K of RAM) and no edge connector for an extension RAM board.

I wonder if this is an early-run 9815S board?


Re: I guess I have an upgraded 9815A after all - db (martinez, ca.) - 12-03-2005

John; Or possibly a repaired unit. Did hp ever do factory upgrades? It would have made sense to want more memory if you were using the plotter.


Re: I guess I have an upgraded 9815A after all - John Ioannidis - 12-04-2005

yes, HP did factory upgrades, hence the 9815S sticker inside the printer well. A repaired A would just have received a regular A board, with the 2111 RAM chips.

According to a prior post by Tony Duell, the S had the eight 2114 chips and two 8K ROMs. I would guess that configuration must have been a later-model version, when 8K ROMs had become cheaper. HP would change the innards of their machines during the machine's lifetime, so that doesn't surprise me.