Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Anyone running CP/M on an HP-85 or HP-87 using the 82900A CP/M Module?

192 views
Skip to first unread message

j...@barrera.org

unread,
Oct 16, 2018, 12:54:37 PM10/16/18
to
If so... do you have the HP FORMAT command and can I have a copy?

I just bought an 82900A module and it came with a few bootable CP/M floppies but none have the FORMAT command on them which makes it hard to make more bootable floppies.

Thanks!

(I can explain more about the system if people are interested, although there are lots of good links on the web already)

Larry Kraemer

unread,
Oct 16, 2018, 6:13:31 PM10/16/18
to
22DISK by Sydex has a Definition for the HP87:
BEGIN HEW1 Hewlett-Packard HP86/87/120/125 - DSDD 48 tpi 5.25" - 256 x 16

And 22DISK can format the Floppy. 22DISK requires DOS. Or if you have a good Floppy, and have a Linux Box you can use dd to create a file of the Image.
CREATE .IMG:
dd if=/dev/fd0 of=/path/to/your/image/subdir/HP87.img conv=notrunc

WRITE FLOPPY:
dd if=/path/to/your/image/subdir/HP87.img of=/dev/fd0 conv=notrunc

Assuming you have a 5.25" Floppy on the Linux Box.


Larry

Larry Kraemer

unread,
Oct 16, 2018, 7:15:22 PM10/16/18
to
I found this URL that has several files for the HP8x system.
[url]
http://hpmuseum.net/exhibit.php?swc=3
[/url]

I conjured up a definition for cpmtools and libdsk:

# HEW1 Hewlett-Packard HP86/87/120/125 - DSDD 48 tpi 5.25" - 256 x 16
diskdef hew1
seclen 256
tracks 80
sectrk 16
secbase 0
blocksize 1024
maxdir 128
skew 1
boottrk 3
os 2.2
end

# libdsk data below
[hew1]
description = HEW1 Hewlett-Packard HP86/87/120/125 - DSDD 48 tpi 5.25" - 256 x 16
sides = alt
cylinders = 80
heads = 2
secsize = 256
sectors = 16
secbase = 0
datarate = DD

Then downloaded the files to my Laptop. Some have mixed sectors if the
Imagedisk utils are telling the truth about what it's verifying......

85-CS80_2Discs.zip
86TO305.TD0
DATACOMM.TD0
HP87CPM.TD0
FMMAST.TD0

TD02IMD had some errors when creating the IMD.
HP87 CP/M SYSTEM
32/1: CRC error (bad sector)
33/1: Duplicate sector numbers
33/1: CRC error (bad sector)
34/1: CRC error (bad sector)
72 tracks, 1134 sectors converted.


The HP87CPM dir is:

larry@debian:~/IMDs/hp87$ cpmls -f hew1 -D HP87CPM.RAW
Name Bytes Recs Attr update create
------------ ------ ------ ---- ----------------- -----------------
ASM .COM 8K 64
DDT .COM 5K 38
DUMP .ASM 5K 33
DUMP .COM 1K 4
ED .COM 7K 52
FORMAT .COM 3K 23
LOAD .COM 2K 14
PIP .COM 8K 58
STAT .COM 6K 41
SUBMIT .COM 2K 10
XSUB .COM 1K 6
11 Files occupying 6K, 298K Free.
larry@debian:~/IMDs/hp87$

It should be simple to extract the files with cpmtools (but I'm getting an error)

cpmls -f hew1 HP87CPM.RAW 0:*.* /path/to/location/files/are/stored/

Let me try a few different things.

Larry

Craig Ruff

unread,
Oct 16, 2018, 7:46:52 PM10/16/18
to
In article <89c17afc-72a6-49de...@googlegroups.com>,
<j...@barrera.org> wrote:
>If so... do you have the HP FORMAT command and can I have a copy?
>
>I just bought an 82900A module and it came with a few bootable CP/M floppies but none have the FORMAT command on
>them which makes it hard to make more bootable floppies.

If you are not aware of the HP Series 80 group, check this out:
https://groups.io/g/hpseries80. Lots of people there and definitely lots
of files and documentation about the CP/M module.

Larry Kraemer

unread,
Oct 16, 2018, 8:53:52 PM10/16/18
to
DUMP.ASM now looks sane:
; FILE DUMP PROGRAM, READS AN INPUT FILE AND PRINTS IN HEX
;
; COPYRIGHT (C) 1975, 1976, 1977, 1978
; DIGITAL RESEARCH
; BOX 579, PACIFIC GROVE
; CALIFORNIA, 93950
;
ORG 100H
BDOS EQU 0005H ;DOS ENTRY POINT
CONS EQU 1 ;READ CONSOLE
TYPEF EQU 2 ;TYPE FUNCTION
PRINTF EQU 9 ;BUFFER PRINT ENTRY
BRKF EQU 11 ;BREAK KEY FUNCTION (TRUE IF CHAR READY)
OPENF EQU 15 ;FILE OPEN
READF EQU 20 ;READ FUNCTION
;
FCB EQU 5CH ;FILE CONTROL BLOCK ADDRESS
BUFF EQU 80H ;INPUT DISK BUFFER ADDRESS
;
; NON GRAPHIC CHARACTERS
CR EQU 0DH ;CARRIAGE RETURN
LF EQU 0AH ;LINE FEED
;
; FILE CONTROL BLOCK DEFINITIONS
FCBDN EQU FCB+0 ;DISK NAME
FCBFN EQU FCB+1 ;FILE NAME
FCBFT EQU FCB+9 ;DISK FILE TYPE (3 CHARACTERS)
FCBRL EQU FCB+12 ;FILE'S CURRENT REEL NUMBER
FCBRC EQU FCB+15 ;FILE'S RECORD COUNT (0 TO 128)
FCBCR EQU FCB+32 ;CURRENT (NEXT) RECORD NUMBER (0 TO 127)
FCBLN EQU FCB+33 ;FCB LENGTH
;
; SET UP STACK
LXI H,0
DAD SP
; ENTRY STACK POINTER IN HL FROM THE CCP
SHLD OLDSP
; SET SP TO LOCAL STACK AREA (RESTORED AT FINIS)
LXI SP,STKTOP
; READ AND PRINT SUCCESSIVE BUFFERS
CALL SETUP ;SET UP INPUT FILE
CPI 255 ;255 IF FILE NOT PRESENT
JNZ OPENOK ;SKIP IF OPEN IS OK
;
; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN
LXI D,OPNMSG
CALL ERR
JMP FINIS ;TO RETURN
;
OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END
MVI A,80H
STA IBP ;SET BUFFER POINTER TO 80H
; HL CONTAINS NEXT ADDRESS TO PRINT
LXI H,0 ;START WITH 0000
;
GLOOP:
PUSH H ;SAVE LINE POSITION
CALL GNB
POP H ;RECALL LINE POSITION
JC FINIS ;CARRY SET BY GNB IF END FILE
MOV B,A
; PRINT HEX VALUES
; CHECK FOR LINE FOLD
MOV A,L
ANI 0FH ;CHECK LOW 4 BITS
JNZ NONUM
; PRINT LINE NUMBER
CALL CRLF
;
; CHECK FOR BREAK KEY
CALL BREAK
; ACCUM LSB = 1 IF CHARACTER READY
RRC ;INTO CARRY
JC FINIS ;DON'T PRINT ANY MORE
;
MOV A,H
CALL PHEX
MOV A,L
CALL PHEX
NONUM:
INX H ;TO NEXT LINE NUMBER
MVI A,' '
CALL PCHAR
MOV A,B
CALL PHEX
JMP GLOOP
;
FINIS:
; END OF DUMP, RETURN TO CCP
; (NOTE THAT A JMP TO 0000H REBOOTS)
CALL CRLF
LHLD OLDSP
SPHL
; STACK POINTER CONTAINS CCP'S STACK LOCATION
RET ;TO THE CCP
;
;
; SUBROUTINES
;
BREAK: ;CHECK BREAK KEY (ACTUALLY ANY KEY WILL DO)
PUSH H! PUSH D! PUSH B; ENVIRONMENT SAVED
MVI C,BRKF
CALL BDOS
POP B! POP D! POP H; ENVIRONMENT RESTORED
RET
;
PCHAR: ;PRINT A CHARACTER
PUSH H! PUSH D! PUSH B; SAVED
MVI C,TYPEF
MOV E,A
CALL BDOS
POP B! POP D! POP H; RESTORED
RET
;
CRLF:
MVI A,CR
CALL PCHAR
MVI A,LF
CALL PCHAR
RET
;
;
PNIB: ;PRINT NIBBLE IN REG A
ANI 0FH ;LOW 4 BITS
CPI 10
JNC P10
; LESS THAN OR EQUAL TO 9
ADI '0'
JMP PRN
;
; GREATER OR EQUAL TO 10
P10: ADI 'A' - 10
PRN: CALL PCHAR
RET
;
PHEX: ;PRINT HEX CHAR IN REG A
PUSH PSW
RRC
RRC
RRC
RRC
CALL PNIB ;PRINT NIBBLE
POP PSW
CALL PNIB
RET
;
ERR: ;PRINT ERROR MESSAGE
; D,E ADDRESSES MESSAGE ENDING WITH "$"
MVI C,PRINTF ;PRINT BUFFER FUNCTION
CALL BDOS
RET
;
;
GNB: ;GET NEXT BYTE
LDA IBP
CPI 80H
JNZ G0
; READ ANOTHER BUFFER
;
;
CALL DISKR
ORA A ;ZERO VALUE IF READ OK
JZ G0 ;FOR ANOTHER BYTE
; END OF DATA, RETURN WITH CARRY SET FOR EOF
STC
RET
;
G0: ;READ THE BYTE AT BUFF+REG A
MOV E,A ;LS BYTE OF BUFFER INDEX
MVI D,0 ;DOUBLE PRECISION INDEX TO DE
INR A ;INDEX=INDEX+1
STA IBP ;BACK TO MEMORY
; POINTER IS INCREMENTED
; SAVE THE CURRENT FILE ADDRESS
LXI H,BUFF
DAD D
; ABSOLUTE CHARACTER ADDRESS IS IN HL
MOV A,M
; BYTE IS IN THE ACCUMULATOR
ORA A ;RESET CARRY BIT
RET
;
SETUP: ;SET UP FILE
; OPEN THE FILE FOR INPUT
XRA A ;ZERO TO ACCUM
STA FCBCR ;CLEAR CURRENT RECORD
;
LXI D,FCB
MVI C,OPENF
CALL BDOS
; 255 IN ACCUM IF OPEN ERROR
RET
;
DISKR: ;READ DISK FILE RECORD
PUSH H! PUSH D! PUSH B
LXI D,FCB
MVI C,READF
CALL BDOS
POP B! POP D! POP H
RET
;
; FIXED MESSAGE AREA
SIGNON: DB 'FILE DUMP VERSION 1.4$'
OPNMSG: DB CR,LF,'NO INPUT FILE PRESENT ON DISK$'

; VARIABLE AREA
IBP: DS 2 ;INPUT BUFFER POINTER
OLDSP: DS 2 ;ENTRY SP VALUE FROM CCP
;
; STACK AREA
DS 64 ;RESERVE 32 LEVEL STACK
STKTOP:
;
END


So, it's very likely that FORMAT.COM is also correct.

The Image is Single Sided, 35 Tracks, of 16 X 256 Sectors.

Larry

Larry Kraemer

unread,
Oct 16, 2018, 9:08:41 PM10/16/18
to

...HP CP/M Diskette Formatter...Version 1.0 Revision date: 01/28/82...Copyright (c) 1982 by Hewlett Packard...
$..Formatting options:...
1) Create a CP/M data diskette..
2) Create a CP/M system diskette..
3) Copy CP/M system to existing diskette...Select one (or press <END LINE> to exit):

$...Which drive will the source diskette be on?.. (or press <END LINE> to exit)
$...Place source diskette on drive .:, and press any key.
$...Which drive will the new system diskette be made on ?.. (or press <END LINE>to exit)
$...Place destination diskette on drive .:, and press any key.
$...System generation complete....
$...Which disk drive will you use to format?.. (or press <END LINE> to exit) :
$...Formatting failed...Try another diskette...
$...Formatting complete...
$...Insert diskette to be formatted in drive ., and press any key.
$...Formatting in progress...
$...Invalid menu choice...try again....
$...That disk drive does not exist....
$...IBM disks are not supported....
$...Illegal input .. Drive letter must be A-P....
$...Source diskette read error... Correct and press <ENDLINE> or press ^C to exit.
$...Read/write error on destination diskette... Correct and press <END LINE> or press ^C to exit.
$...Insert system disk in drive A: and press any key.
$.......q.t.

Larry

Joseph S. Barrera III

unread,
Oct 17, 2018, 1:29:09 PM10/17/18
to
Thanks so much, Larry and Craig! I have a (registered!) version of 22disk and a Linux box with a 5.25" drive so I should be set... and no, I didn't know about the https://groups.io/g/hpseries80 group!
0 new messages