The Museum of HP Calculators

HP Forum Archive 15

[ Return to Index | Top of Index ]

Recognize this HP-87 CATalog?
Message #1 Posted by Howard Owen on 18 Oct 2005, 6:28 p.m.

I got a bunch of old software on floppy via an eBay auction. The haul included a disk with a handwritten label of "hp87 bin." The catalog of the disk's image looks like the following. Does anyone recognize it?

hbo@Quirk|1166> lifdir -f hdrive1.dat Volume : :D601 BUILD E020 512/512 CRUNCH2 E020 8960/8960 EDITR8 E020 23552/23552 ED87TX E010 19200/19200 REDZERg E008 768/768 LINCURg E008 512/512 STRNGBg E008 1024/1024 KEYONBg E008 768/768 GETSAVEg E008 1536/1536 GCURSBg E008 1024/1024 MATHBIg E008 1792/1792 TRACKBg E008 1024/1024 SORTB2g E008 768/768 IPBINg E008 4096/4096 FORMSBg E008 768/768 LIF87 E020 9728/9728 LIFg E008 1024/1024 FORM E008 5888/5888 CFORM E008 6144/6144 EFORM E008 6400/6400 TR87TX E010 19200/19200 TERMIN E020 29440/29440 MUNAVF E020 5120/5120 MUNAVL E020 6912/6912 MAKE_PROG E020 1792/1792 CBIN E008 256/256 COUNT TEXT 512/512

      
Re: Recognize this HP-87 CATalog?
Message #2 Posted by Jim Rudnick on 18 Oct 2005, 8:59 p.m.,
in response to message #1 by Howard Owen

Yes-The programs with the lower case 'g' are binaries for the HP-86,7. The other programs are HP supplied and user supplied. A good find I would say. they need to be copied and freely shared. If you prefer, copy the disc and offer for sale on eBay. Jim

            
Re: Recognize this HP-87 CATalog?
Message #3 Posted by Howard Owen on 18 Oct 2005, 9:38 p.m.,
in response to message #2 by Jim Rudnick

I bought them with the intention of making them available (for free). It's only one of 30 or so disks! (Only one for the 80 series, as far as I can tell.)

The disk has errors halfway through. I've copied all the good sectors, along with garbage for the bad ones. Hopefully the damage only cut across 3-5 files.

                  
Re: Recognize this HP-87 CATalog?
Message #4 Posted by Vassilis Prevelakis on 20 Oct 2005, 11:37 p.m.,
in response to message #3 by Howard Owen

Howard Owen wrote:
> The disk has errors halfway through. I've copied all the good
> sectors, along with garbage for the bad ones. Hopefully
> the damage only cut across 3-5 files. 

In your site you mention that the problem was in sectors 32 - 35. Assuming 16 sectors per track (as used by the 9121 drive), that means that sectors 512 till 560 of the medium will have problems.

Now looking at the CAT listing of the diskette:

   NAME     START NBLOCK   TYPE    LENGTH  RECLEN    IMP BYTES
BUILD         16     2    BASIC       276     256    1401 0001
CRUNCH2       18    35    BASIC      8924     256    dc22 0001
EDITR8        53    92    BASIC     23535     256    ef5b 0001
ED87TX       145    75    DATA      19200   19162    b606 da4a
REDZERg      220     3    BPGM        540     256    1c02 0001
LINCURg      223     2    BPGM        334     256    4e01 0001
STRNGBg      225     4    BPGM        894     256    7e03 0001
KEYONBg      229     3    BPGM        630     256    7602 0001
GETSAVEg     232     6    BPGM       1480     256    c805 0001
GCURSBg      238     4    BPGM        829     256    3d03 0001
MATHBIg      242     7    BPGM       1569     256    2106 0001
TRACKBg      249     4    BPGM       1004     256    ec03 0001
SORTB2g      253     3    BPGM        618     256    6a02 0001
IPBINg       256    16    BPGM       3930     256    5a0f 0001
FORMSBg      272     3    BPGM        737     256    e102 0001
LIF87        275    38    BASIC      9622     256    9625 0001
LIFg         313     4    BPGM        896     256    8003 0001
FORM         317    23    BPGM       5633     256    0116 0001
CFORM        340    24    BPGM       5997     256    6d17 0001
EFORM        364    25    BPGM       6314     256    aa18 0001
TR87TX       389    75    DATA      19200   19162    004f da4a
TERMIN       464   115    BASIC     29322     256    8a72 0001
MUNAVF       579    20    BASIC      5120     256    0014 0001
MUNAVL       599    27    BASIC      6845     256    bd1a 0001
MAKE PROG    626     7    BASIC      1672     256    8806 0001
CBIN         633     1    BPGM         61     256    3d00 0001
COUNT        634     2    TEXT        512     256    d901 0001

We see that file TERMIN contains the bad blocks (it starts on sector 464 and occupies the next 115 sectors). You will find that this file has problems.

It may be, however, that the drive has "spared" tracks, i.e. spare tracks that have been used instead of the damaged tracks. In this case the file may be recoverable if you copy the original floppy to a known good floppy on the 9121.

Best Regards

**vp

Edited: 20 Oct 2005, 11:39 p.m.

                        
Re: Recognize this HP-87 CATalog?
Message #5 Posted by Howard Owen on 21 Oct 2005, 12:20 a.m.,
in response to message #4 by Vassilis Prevelakis

Thanks for that advice, Vassilis. I'll certainly give it a try.

                        
Re: Recognize this HP-87 CATalog?
Message #6 Posted by Howard Owen on 22 Oct 2005, 6:26 p.m.,
in response to message #4 by Vassilis Prevelakis

The bad tracks weren't "spared" unfortunately.

                              
Re: Recognize this HP-87 CATalog?
Message #7 Posted by Vassilis Prevelakis on 24 Oct 2005, 2:21 a.m.,
in response to message #6 by Howard Owen

Howard Owen wrote:
> The bad tracks weren't "spared" unfortunately. 

No big loss, its just a terminal emulation program. I am really happy that the binary utilities apparently escaped unharmed.

**vp

      
Re: Recognize this HP-87 CATalog?
Message #8 Posted by Valentin Albillo on 19 Oct 2005, 4:23 a.m.,
in response to message #1 by Howard Owen

Hi, Howard:

Have a look at this link.

Best regards from V.

      
Re: Recognize this HP-87 CATalog?
Message #9 Posted by Olivier De Smet on 19 Oct 2005, 5:25 a.m.,
in response to message #1 by Howard Owen

You can still use André Koppel 0x38 rom to identify the keywords of the HP86 binaries (if you have an image of the disk and an S80 emulator)

For more informations, I can still disassemble binaries.

Olivier

            
Re: Recognize this HP-87 CATalog?
Message #10 Posted by Vassilis Prevelakis on 19 Oct 2005, 2:59 p.m.,
in response to message #9 by Olivier De Smet

Olivier De Smet wrote:
> You can still use André Koppel 0x38 rom to identify the keywords
> of the HP86 binaries (if you have an image of the
> disk and an S80 emulator)

Oh, please, there is a command catalog at the beginning of each ROM or binary file. It only takes 40-50 lines of C to pretty-print this info.

**vp

            
Re: Recognize this HP-87 CATalog?
Message #11 Posted by Patrice Torchet on 20 Oct 2005, 10:55 a.m.,
in response to message #9 by Olivier De Smet

If I am successfull in digging in the attic, I think I can provide the assembler source code along with the copied book I got at the time.

Patrice

      
Re: Recognize this HP-87 CATalog?
Message #12 Posted by Vassilis Prevelakis on 19 Oct 2005, 2:49 p.m.,
in response to message #1 by Howard Owen

Looks like you got the HP-86/87 Binary Utilities package which contains:

        8291002 - Logical Interchange Format (LIFg)
        8291011 - String/Retrieving Programs as Data (GETSAVg)
        8291013 - Sorting Groups of Elements of a String (SORTB2g)
        8291016 - Enhanced String Manipulation (STRNGBg)
        8291018 - Mathematical Functions (MATHBIg)
        8291020 - Numeric Array Organization/Initialization (REDGZERg)
        8291022 - Programmer Control of CRT/Keyboard (IPBINg)
        8291024 - Enhanced CRT, Cursor, Keyboard Control (FORMSBg)
        8291030 - FORMS/80
        8291033 - Graphical Cursor (GCURSg)
        8291035 - Enhanced String Input/Cursor Control (LINCURg)
        8291036 - Immediate Execute Keys (KEYONg)
        8291003 - Graphics Tablet Display (TRACKg)
(the 8291xxx number is the Series 80 Program Library Catalog number).

I have documentation for some of these utilities and summaries for the rest. I will post these as soon as I get home.

**vp

Edited: 19 Oct 2005, 3:05 p.m.

            
Re: Recognize this HP-87 CATalog?
Message #13 Posted by Howard Owen on 19 Oct 2005, 4:54 p.m.,
in response to message #12 by Vassilis Prevelakis

Thanks Vassilis!

Like I said, there were 3 tracks in the middle of the disk with errors. I haven't gotten to the point of figuring out which files were affected yet.

I'm about to post the major part of my haul on retrocalculator.com. Stay tuned!

            
HP-86/87 Binary Utilities package
Message #14 Posted by Vassilis Prevelakis on 19 Oct 2005, 11:56 p.m.,
in response to message #12 by Vassilis Prevelakis

the contents are as follows:

        8291001 - Logical Interchange Format (LIFG)
        8291002 - Logical Interchange Format (LIFg)
                Provides LIF type 1 interchange to allow file transfer to 9826,
                9642, RTE-7.  (Contains both binary and BASIC programs).

8291030 - FORMS/80 FORMS/80 is a data entry/display package created to simplify application programs that require data entry/display, provide a convenient user interface, and provide independence of the CRT Form from the Applications program. Consists of 3 binary programs, two for the creation and modification of a form; the third provides operating system and BASIC language extensions which allow a BASIC program to utilize the form.

8291035 - Enhanced String Input/Cursor Control (LINCURg) Binary program designed to enhance string input by allowing you to input any character (including the comma and quotation marks) as a string variable and to move the cursor to any location (of the alpha display) on the CRT.

8291036 - Immediate Execute Keys (KEYONg) Binary program designed to define any key on the keyboard as an immediate-execute key (similar in operation to the special function keys).

8291002 - Graphics Tablet Display (TRACK) 8291003 - Graphics Tablet Display (TRACKg) binary program designed for use with the 9111A Graphics Tablet. TRACKg uses the CRT as a visual display of the movements of the pen on the tablet. The program can be very useful in generating graphics when used in conjunction with the BREAD function in the Plotter ROM.

8291010 - String/Retrieving Programs as Data (GETSAV) 8291011 - String/Retrieving Programs as Data (GETSAVg) Normally, Series 80 computers store programs in their own unique internal language. GETSAVg is a binary program designed to enable you to store and retrieve programs as data. When a program is saved as a data file, it can be read, modified or rewritten as string data by other programs.

8291012 - Sorting Groups of Elements of a String (SORTB2) 8291013 - Sorting Groups of Elements of a String (SORTB2g) SORT2B is a binary program designed to sort groups of elements of a string. Two sort procedures are available. Both produce the same result, however, one of the procedures requires no additional memory to operate.

8291015 - Enhanced String Manipulation (STRNGB) 8291016 - Enhanced String Manipulation (STRNGBg) STRNGBg is a binary program which contains eight programmable string functions designed to enhance string manipulation. The functions are as follows: 1) highlight, 2) lowercase, 3) repeat, 4) reverse, 5) trim, 6) rotate, 7) search and replace, and 8) number of manipulation.

8291018 - Mathematical Functions (MATHBIg) MATHBIg is a binary program containing nine programmable mathematical functions including hyperbolics, octal to decimal and decimal to octal conversions and factorial.

8291020 - Numeric Array Organization/Initialization (REDGZERg) REDZERg is a binary program designed to enhance numeric array manipulation capabilities of the HP86/87. A numeric array can be reorganized (redimentioned) or initialized to zero with use of one of the two statements offered.

8291021 - Programmer Control of CRT/Keyboard (IPBIN) 8291022 - Programmer Control of CRT/Keyboard (IPBINg) IPBINg is a binary program designed to provide programmer control of the internal CRT and keyboard. Capabilities are intended to make development of a good terminal emulator possible. Capabilities provided are also intended to be of general use in CRT control or special keyboard entry or control.

8291023 - Enhanced CRT, Cursor, Keyboard Control (FORMSB) 8291024 - Enhanced CRT, Cursor, Keyboard Control (FORMSBg) FORMSg is an binary program designed to enhance control of the CRT, cursor, and keyboard. The functions or expressions offered are: page, cursor, xpos, ypos, home, readchar, writechar, key1, key2, key3, setkey, and end key.

8291032 - Graphical Cursor (GCURS) 8291033 - Graphical Cursor (GCURSg) This is a binary program designed to provide graphics cursor capabilities. You should be familiar with the Graphics Section of the HP-86/87 Owner's Manual and Programming Guide.

      
Re: Recognize this HP-87 CATalog?
Message #15 Posted by Vassilis Prevelakis on 21 Oct 2005, 3:06 a.m.,
in response to message #1 by Howard Owen

The file COUNT is assembler source:

10 !         NAM COUNT
20          DEF RUNTIM  
30          DEF ASCIIS  
40          DEF PARSE   
50          DEF ERMSG   
60          DEF INIT    
70 PARSE    BYT 0,0
80 RUNTIM   BYT 0,0
90          DEF COUNT.  
100          BYT 377,377
110 ASCIIS   BSZ 0
120          ASP "COUNT"
130          BYT 377
140 ERMSG    BSZ 0
150          BYT 377
160 INIT     BSZ 0
170          RTN 
180          BYT 0,56
200 COUNT.   BIN 
220          LDM R40,=0,0,0,0,0,0,0,0
221          LDM R50,=0,0,0,0,1D,0,0,0
230 LIN1     ADM R40,R50
244          CMM R40,=0,0,0,0,0,0,0,1D
245          JNC LIN1    
250          PUMD R40,+R12
260          RTN 
265 !ASSEMBLE "CBIN"
266 ONER     DAD 56215
270          FIN 

I suspect that the BPGM file CBIN is executable version of the above program. This is the hex dump of CBIN:

 000000000000    434f554e  54200200    00000000  00000000    *COUNT ..........*
 000000000010    00000000  00000000    00002600  2c002400    *..........&.,.$.*
 000000000020    32003300  00000000    3600ffff  434f554e    *2.3.....6...COUN*
 000000000030    d4ffff9e  002e9860    a8010ae4  9e......    *.......`........*

Anybody knows what this thing is supposed to be doing?

**vp

            
Re: Recognize this HP-87 CATalog?
Message #16 Posted by patrice torchet on 21 Oct 2005, 12:43 p.m.,
in response to message #15 by Vassilis Prevelakis

Hello all,

This BPGM : CBIN is not the binary belonging to that assembler source code.

Your assembler source code for COUNT seems to be a WAIT function of some sort.

Patrice

            
Re: Recognize this HP-87 CATalog?
Message #17 Posted by Valentin Albillo on 24 Oct 2005, 4:44 a.m.,
in response to message #15 by Vassilis Prevelakis

Hi, Vassilis:

It's been ages since I last programmed in Series 80 Assembler, but seems to me this assembler source is nothing but a very basic training example.

As far as I can tell, this source simply defines a single keyword, a function named COUNT which takes no parameters and does nothing except increment a counter and test whether it's reached a final value, which is returned. An attempt to comment your source follows:

      10 !        NAM COUNT       
      20          DEF RUNTIM      define for the runtime table
      30          DEF ASCIIS      define for the ASCII name table
      40          DEF PARSE       define for the parse table
      50          DEF ERMSG       define for the error messages table
      60          DEF INIT        define for initialization
      70 PARSE    BYT 0,0         no parse table
      80 RUNTIM   BYT 0,0         run time table
      90          DEF COUNT.      a single keyword, COUNT
      100          BYT 377,377    
      110 ASCIIS   BSZ 0          
      120          ASP "COUNT"    function's ASCII name
      130          BYT 377        
      140 ERMSG    BSZ 0          no error message table
      150          BYT 377
      160 INIT     BSZ 0          no special initialization
      170          RTN 
      180          BYT 0,56       a function, no parameters, returns numeric value
      200 COUNT.   BIN            set binary mode for math
      220          LDM R40,=0,0,0,0,0,0,0,0    load 0 into R40-47
      221          LDM R50,=0,0,0,0,1D,0,0,0   load increment in R50-57
      230 LIN1     ADM R40,R50                 loop: add increment in R50-57 to R40-47
      244          CMM R40,=0,0,0,0,0,0,0,1D   compare multiple: see if R40-47 exceed fixed final value
      245          JNC LIN1                    logical test: if no carry, then loop back to label LIN1   
      250          PUMD R40,+R12               multi-byte push, returns final value in R40-47
      260          RTN                         end execution
      265 !ASSEMBLE "CBIN"
      266 ONER     DAD 56215
      270          FIN 
All of this is purely from memory from several decades ago, so there may be errors in the comments above.

Best regards from V.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall