CP/M on HP-86B



#12

Hello all,

I am having a great adventure with my new-to-me HP-86B.

I currently have the following equipment working:

HP-86B
HP-9121D dual 3.5 inch floppy drive (single sided, 270K capacity disks)
Dynex 17" LCD TV / video monitor with underscan capability on the VGA input
VideoSecu TV Video RCA to PC VGA Converter Adapter Switch Box
HP-82900A Auxiliary Processor (AKA CP/M System module)

My goal was to ultimately get the HP-86B working with CP/M, and I have had CP/M up and running since Friday, June 15, 2012.

Recently, I have spent my time getting back familiar with CP/M version 2.2, using PIP, ED, ASM and DDT as well as a couple of the old CP/M primers that I have saved over the years.

Now that I have my appetite whetted again, I am looking to embark on getting some additional software running on my machine. I have come up with an interesting problem: How the heck can I get CP/M programs into this machine?

Let me explain: This machine is not your run-of-the-mill CP/M machine. The best metaphor might be an Apple IIe with a Z-80 processor card installed and running CP/M (I never had one of those, but the HP-86B is similarly set up).

The HP-86B has a custom HP processor inside along with 128K of memory for user programs. It normally boots up into its HP proprietary BASIC operating system, and it has the capability for folks to write their own programs, purchase programs for a variety of uses from HP, or utilize programs uploaded by users into HP's user library. In addition to other specialty modules produced by HP, HP also created a module originally named 82900A CP/M System, then later changed to 82900A Auxiliary Processor. Simply stated, this module is a Z-80 with 64K memory and an interface to the HP module bus in the back of the HP-86B. There is a special HP CP/M boot disk that contains 3 files: Autost, CP/M, and CP/MSYS.

Autost is a very small BASIC program that the HP-86B will read from the disk drive if it's available on power-up. It sets the screen size and sets the keyboard to be normally lower case, and then loads the binary called CP/M.

CP/M is the binary that stays resident in the HP-86B, loads the CP/M system into the Z-80 Auxiliary Processor, and performs the interface between the Z-80 and the console and disk interfaces in the HP-86B.

CP/MSYS is a large file on the disk that contains the CP/M file system and the basic files normally expected in a bare bones CP/M system.

I believe this is where my problem lies. If the HP-86B is operating normally as an HP-86B, the CAT command will display the directory of the disk as containing the 3 files I just described. When this disk is used to boot up and run CP/M, the DIR command in CP/M will show the normally expected files: PIP, DUMP, LOAD, DDT, ED, ASM, STAT, SUBMIT, XSUB and FORMAT.

When operating within CP/M, I can create my own programs. I have created my HELLO.ASM program in assembly language using ED, and I have assembled it using ASM. I have used LOAD to create a .COM file from the assembled code. On the disk I now see several additional files in CP/M: HELLO.ASM, HELLO.BAK, HELLO.PRN, HELLO.HEX, and HELLO.COM. Everything seems to be working fine.

Now for the Catch. If I boot up the HP-86B normally and use the HP CAT command again, I still get back the same original 3 files: Autost, CP/M, and CP/MSYS. All my HELLO.* files are buried within the CP/MSYS file.

So, I am looking for a way to get a large source file into CP/M on this system. Time to check out the manuals.

The Introduction to the HP 82900A CP/M System clearly states the operation I detailed above on how the Autost program is detected and then runs the CP/M binary, etc. It also states that when CP/M is running, "The HP 82900A CP/M System appears to standard CP/M software as a 61K CP/M system, version 2.2, with 56K bytes of user memory." Then it says, "Only application software that is HP disc-formatted is compatible with your system." (That sounds pretty ominous to me. )

The HP 82900A CP/M System Reference Manual describes the use of PIP, and states that CON: and RDR: are source devices that can be re-mapped to other devices such as TTY:, CRT:, BAT:, PTR:, etc., but then also states that, "All physical input devices use keyboard input." (Things are not getting any better )

Similarly, the CP/M Reference Manual states that CON:, PUN:, and LST: are destination devices, and they also can be re-mapped to a variety of devices. Except for mapping CON: to CRT: or BAT:, and mapping LST: to LPT: or CRT:, it also states that, except when using only those mappings, "Output data is lost." (Oh, my! )

So, there's my situation. I have the source listing for FIG-Forth, and I was hoping to find a way to get the text file onto a disk and then be able to see it in CP/M on the HP-86B, but I have no idea how I could get the text file into the CP/MSYS file properly for the CP/M file system. As well, it does not appear to me that I have the ability to re-map some input to a serial port (I have the HP-82939A Serial I/O module) where I could create a program to read the text file in under CP/M.

Am I doomed to typing this entire source file in by hand? Am I doomed to typing any source text file that I want in by hand?

Any and all comments, observation, or advice are welcome.

Thanks for listening!

smp


#13

Hello,

have you tried contacting the maintainer of www.series80.org ?

Ray

#14

Stephen, the CP/M file system is damn simple. If you can get the large CP/MSYS file transferred to a PC for modification (and back to your HP-86B, of course), it should be possible to add the files on the PC.

#15

I think what you want is a copy of Kermit-80, a serial cable and a lot of pairence...

Providing that the BIOS exposes the standard interfaces for the serial port it should be possible to load a generic Kermit-80 using a BASIC interpreter or PIP.

Mike T.

Instruction to install a generic Kermit-80


Edited: 24 June 2012, 5:19 p.m.


#16

Mike T.

You seem to have missed the main point of my post. I apologize if it was too verbose.

Thank you for the Kermit idea, that would be perfect to get programs into the HP-86B using its normal BASIC operating system via the serial interface.

However the problem is that once I get my source program into the HP-86B and saved onto a disk, when I switch into the CP/M operating system, that program will no longer be visible.

I need a method to encode the source file into the CP/MSYS file that is used as the CP/M file system so it will be available to me when I am in CP/M.

Thanks for trying.
smp

Edited: 25 June 2012, 7:43 p.m.


#17

I wasn't thinking of running Kermit using HP BASIC but rather of running the generic version Kermit-80 under CPM itself - any files would be transferred directly into the CPM filesystem.

From memory (20 ish years old) I think you need to use PIP to copy a hex dump of a minimal 'boot' file to CPM - using the slowest baud rate you can. Turn this into an execuitable COM file using LOAD and then use it to transfer the source files for the generic version of Kermit-80 into CPM and assemble them using ASM and LOAD.

Unfortunatly I don't know if this will work on the HP implementaion of CPM as it requires access to the serial device in the CPM BIOS (and BIOS support for IO byte redirection).

Mike T.

Edited: 26 June 2012, 5:24 p.m.

#18

Stephen:

If you're in CP/M can you swap in a new disk and format it? If so, do that, then use "ED" to write out a simple file or two and exit out of CP/M.
Then transfer the resulting CP/MSys file from your new disk over to a PC and have a go at it with a hex editor (or maybe even tinker with it under a file dump utility in BASIC on the HP if you're adventurous!)

The CP/M file system is pretty simple and reasonably well documented. Armed with that knowledge, and the details of what you wrote out, you should be able to figure out how the CP/MSys file is encoded, at least to a first level (ignoring file fragmentation, etc.)

With that in hand, you could then perhaps write a program that would "build" a CP/MSys file from a given input file or two. Then boot CP/M, swap in your new CP/MSys disk, CTRL-C, and you should be good to go. Transferring those files back to your boot disk is an exercise for the reader :-)

You can write the hypothetical file building utility in whatever language you're familiar with on the PC, but it would probably be possible to do so in BASIC on the HP if it allows you direct access to data files.

All speculation, of course, but it's fun to think about...and I don't have to do any of the work :-)

Good luck - sounds like a nice project.

Bob


#19

Quote:

If you're in CP/M can you swap in a new disk and format it? If so, do that, then use "ED" to write out a simple file or two and exit out of CP/M.
Then transfer the resulting CP/MSys file from your new disk over to a PC and have a go at it with a hex editor (or maybe even tinker with it under a file dump utility in BASIC on the HP if you're adventurous!)

The CP/M file system is pretty simple and reasonably well documented. Armed with that knowledge, and the details of what you wrote out, you should be able to figure out how the CP/MSys file is encoded, at least to a first level (ignoring file fragmentation, etc.)

With that in hand, you could then perhaps write a program that would "build" a CP/MSys file from a given input file or two. Then boot CP/M, swap in your new CP/MSys disk, CTRL-C, and you should be good to go. Transferring those files back to your boot disk is an exercise for the reader :-)

You can write the hypothetical file building utility in whatever language you're familiar with on the PC, but it would probably be possible to do so in BASIC on the HP if it allows you direct access to data files.


Before doing that check out cpmtools (http://www.moria.de/~michael/cpmtools/). You should be able to edit the diskdefs file and add an entry for the format of the CP/MSys. Also reach out to comp.os.cpm.

I should have added that if you can send me (egan@sense.net) a copy of the CP/Msys file I can test cpmtools for you.

Edited: 26 June 2012, 8:12 p.m.


#20

Hello Egan,

Unfortunately, I am a Macintosh guy and I currently do not have a PC to be able to try and read these files to send them to you electronically. I do not know if attempting to read or handle these files with a Macintosh will corrupt the files.

However, if you would send me your mailing address in a private message, I can send you a copy of the HP CP/M boot disk, and a data disk containing my HELLO.* files.

My personal e-mail address is: spereira1952@comcast.net

Thanks!
smp

#21

Hi Bob,

Thank you very much for your thoughts.

Yes, I can write a file to a blank formatted data disk. When I use DIR in CP/M, I see the file that I have written there. Then, when I CAT the disk in the HP BASIC operating system, all I see is one file called CP/MSYS. This is the same if I write one file or several files to the disk in CP/M. All I see in HP BASIC is one file, CP/MSYS.

I agree that taking that disk and examining the file using a hex editor or some such tool can reveal what the tracks and sectors contain. I have sent a couple of disks to someone who has volunteered to take a look at them on the Vintage Computer Forum. I am waiting for him to receive them now. If there is some sort of breakthrough, I will post the results back here.

Thanks very much again,
smp


#22

Glad to help...such that it was.

Egan had an excellent idea (above)!

Bob


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP 86/87 - CP/M Ph.Théry 3 171 05-27-2013, 04:02 AM
Last Post: Olivier De Smet
  HP-80 Series & CP/M Stephen Pereira 7 358 05-16-2012, 06:34 AM
Last Post: Juergen Keller
  OT: CP/M-68K for HP 9000 Series 200 computers Juergen Keller 5 206 09-22-2010, 10:09 AM
Last Post: Olivier De Smet
  HP-86 CP/M 3.5" boot image? J. Wesley 0 103 11-12-2008, 08:16 PM
Last Post: J. Wesley
  Data Structure on a 12C/CP -- sorting, median Katie Wasserman 2 138 06-17-2006, 05:53 PM
Last Post: tony(nz)
  HP 12c and HP 12 cp at CES Kalevipoeg 2 131 01-11-2006, 10:13 AM
Last Post: Gene Wright
  HP 86A/86B/87A/87XM ROM query John 5 217 12-21-2005, 05:07 AM
Last Post: john
  CP/M autoload Jim Rudnick 1 103 10-19-2005, 02:19 PM
Last Post: Vassilis Prevelakis
  86B error message rob rivas 2 136 05-15-2005, 07:58 AM
Last Post: Patrice
  CP/M on an HP-86/87XM Mike 7 263 08-10-2003, 12:22 AM
Last Post: Mike

Forum Jump: