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

GSX-80

455 views
Skip to first unread message

Fred Weigel

unread,
May 11, 2020, 5:37:33 PM5/11/20
to
How is output directed from a GSX-80 driver?

I want to send DD7470 output to the printer, and Udo Munks DDXTEK to the screen. The 7470 output seems to be going to the screen as well. I can use ^P to send to printer, but this does not work with Udos GSXBASIC.

I have a fully implemented IOBYTE (using CP/M 2.2).... and I tried STAT CON:=BAT: as well. I can debug and patch DD7470.PRL... but that strikes me as wrong.

FredW

Udo Munk

unread,
May 11, 2020, 7:05:24 PM5/11/20
to
What does 'stat dev:' say? The 7470 is connected to another serial or
parallel port than the console terminal. So you have to redirect LPT or PUN to something
else then the console tty, like stat lst:=lpt:, likely the 7470 driver does output to LST.

Fred Weigel

unread,
May 11, 2020, 7:46:32 PM5/11/20
to
Hello Udo!

E>stat dev:
CON: is CRT:
RDR: is PTR:
PUN: is PTP:
LST: is LPT:

WordStar 3.3 is set to use LST, and it works. Nothing is attached to PTR/PTP at present. Running GSXBASIC, using one line "11 @:DD7470" as ASSIGN.SYS

E>gsxbasic
---------------------------------------------------
GSX-80 1.0 15 Nov 82 Serial No 5000-0000-000292
Copyright (C) 1982
Digital Research, Inc. All Rights Reserved
---------------------------------------------------
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
20530 Bytes free
Ok
load "GRAPPLE"
Ok
merge "GSXFUN"
Ok
run
80;5;6:IN;

And now it waits for a CR -- after giving a CR:

LT;CS0;SS;SI0.15,0.15;PU;PA8801,3691;SP1;PU;PA8801,3691;PD;PA8801,3691;PU;PA8801

and... its waiting again. Enough CRs and the HP plot output is complete. I captured it (with xterm), and fed it through hp2xx to validate the HP plot stream.

The plot stream was spewed to CON: (per above) -- but I want it on LST: gsxbasic (mbasic) WIDTH may have been triggered, and that is why it may have needed all the CRs

I am using my own BIOS -- tarbell 2 sssd floppies and full i/o byte support with (up to) 5 physical devices. Based on z80pack, with some heavy changes. Running CP/NET 1.2 (that is what E: is) with a local linux cp/net server to give access to host resources. (I've ordered an Altair-Duino and when that arrives am transferring over to that.)

Thanks for any help you can give!
FredW


FredW



Udo Munk

unread,
May 12, 2020, 5:18:28 AM5/12/20
to
According to the GSX-80 manual plotter device drivers will output to the CP/M
PUN: device. I tried with z80pack cpmsim and the DD7470 driver, and output goes to PUN:
as documented.

You also need to modify the Workstation ID in the GSX calls in GSXFUN.BAS, the
code will output to WS ID 1, but you want output to WS ID 11, if you setup
assign.sys like this. Or just assign the DD7470 to WS ID 1 in assign.sys,
that works too and then no changes required in GSXFUN.BAS.

On CP/M you then can redirect the PUN: device with stat, to whatever you
implemented in the BIOS. 'stat val:' says:

Iobyte Assign:
CON: = TTY: CRT: BAT: UC1:
RDR: = TTY: PTR: UR1: UR2:
PUN: = TTY: PTP: UP1: UP2:
LST: = TTY: CRT: LPT: UL1:

So if you for example implement UP1: in the BIOS so that it outputs to the printer port
you can redirect with stat pun:=up1: before running GSX-80 programs, and output
from the plotter drivers will go to the printer port.

Hope this helps.

Udo Munk

unread,
May 12, 2020, 6:59:16 AM5/12/20
to
Then the CR problem is not MBASIC related, setting width to 255 doesn't change this.
Looks like the driver is reading every now and then a byte from the I/O channel, which
is a bit odd, if I remember right you cannot read something meaningful from a HP plotter.
All I can imagine that the device driver implements some sort of protocol, like XON/XOFF,
it might help to read the manual for the HP plotter.

Fred Weigel

unread,
May 12, 2020, 7:38:41 AM5/12/20
to
Udo

Thanks! Output to PUN: device... Now, I can fix it.

Thanks again!
FredW

Udo Munk

unread,
May 12, 2020, 12:46:24 PM5/12/20
to
Hrmpf, I had a brief look at the potter manual:

https://pearl-hifi.com/06_Lit_Archive/15_Mfrs_Publications/20_HP_Agilent/HP_7470A/HP_7470A_Operators.pdf

One can read data from this plotter, it can work as digitiser too. That won't explain the behaviour
we see with the driver though, that looks more like it waits for some acknowledge, after several
data was send to the thing.

Thanks to the CP/M BIOS features you can easily overcome the issue by implementing a RDR:
device, that always returns CR. So the driver gets what it's looking for and produces the
complete drawing.

martin....@gmail.com

unread,
Jun 3, 2020, 8:29:35 AM6/3/20
to
Here are my notes for GSX and the HP 7470 driver

HP 7470 Plotter (DDHP7470.PRL)

Digital Research / Graphics Systems Solutions provided this driver together with the GSX-80 system. Unfortunately this plotter driver is hardwired to the PUN/RDR devices (usually a serial port). The serial interface of the plotter is programmed to use the ENQ/ACK handshaking. There seems to be no way to configure it e.g. for output to a file.

If no plotter is attached to the serial port (RDR/PUN), the input and output can be redirected to the console and some handshaking input must be provided to avoid hanging the program due to the missing plotter.
STAT RDR:=TTY:
STAT PUN:=TTY:

The call to Open Workstation outputs configuration commands for the serial interface.
[ESC].(
This first sequence activates the plotter in case it is in a Y-cable eavesdrop configuration.
[ESC].I80;5;6:
This sequence sets the block size to 80, the characters for ENQ to 5 and for ACK to 6.
IN;[ENQ]

This sequence initializes the plotter and sends an ENQ character. It then expects an ACK character from the plotter. Pressing the Enter key seems to satisfy the handshake requirement.

The ENQ/ACK handshaking is a standard protocol for many HP devices and terminals. It injects ENQ characters at regular intervals into the output stream. It then expects an ACK character to continue. This is very similar to the XON/XOFF protocol, only using different characters. Obviously the driver does not test the reply from the plotter – it continues when just something is sent back.
LT;CS0;SS;SI0.15,0.15;

The call to Close Workstation homes the pen and expects an ACK to continue. Again pressing the Enter key resumes operation. It then stops the plotter operation in an eavesdrop configuration.
PU;PA0,0;[ENQ]
[ESC].)

Martin

martin....@gmail.com

unread,
Jun 3, 2020, 8:34:00 AM6/3/20
to
... more on my GSX-related experience:

https://www.mh-aerotools.de/hp/

and especially this document:

https://www.mh-aerotools.de/hp/cpm/GSX-80-Docs.zip

Martin

Udo Munk

unread,
Jun 3, 2020, 11:11:29 AM6/3/20
to
On Wednesday, June 3, 2020 at 2:29:35 PM UTC+2, martin....@gmail.com wrote:
> The ENQ/ACK handshaking is a standard protocol for many HP devices and terminals. It injects
> ENQ characters at regular intervals into the output stream. It then expects an ACK character to
> continue. This is very similar to the XON/XOFF protocol, only using different characters. Obviously
> the driver does not test the reply from the plotter – it continues when just something is sent back.

Thanks, that explains why the driver works when the RDR: device provides a stream of CR
characters.

Martin

unread,
Jun 3, 2020, 1:50:06 PM6/3/20
to
Am 06/03/2020 02:33 PM, martin....@gmail.com schrieb:
> .... more on my GSX-related experience:
Hi Martin!

Would like to tinker with your
"Tektronix Library for Fortran under CP/M 2.2".

I hope to get something going a little bit faster
without the need to first going into GSX-80.

But <https://www.mh-aerotools.de/hp/cpm/TEKLIB.zip>
doesn't work: 404 Not Found

Could you please look after it?


Greetings from another Martin :-)

Martin Hepperle

unread,
Jun 3, 2020, 2:10:55 PM6/3/20
to
[...]
>
> But <https://www.mh-aerotools.de/hp/cpm/TEKLIB.zip>
> doesn't work: 404 Not Found
>
> Could you please look after it?
>
>
> Greetings from another Martin :-)

... oops was a upper case .ZIP - have changed that so that it should work now.

Martin

Martin Hepperle

unread,
Jun 4, 2020, 11:46:01 AM6/4/20
to
BTW: In my GEMVIEW program I implemented the option to redirect the PUN: output and to automatically feed the RDR: so that the plotter driver can be used to e.g. write to a file. Makes it more useable for some applications.

Martin Hepperle

unread,
Jun 17, 2020, 7:58:23 AM6/17/20
to
... in the meantime I made a derivative driver of the HP7470 driver which writes to a file. You can also modify it to output to other devices..

See end of page at https://www.mh-aerotools.de/hp/

Martin

Fred Weigel

unread,
Jun 17, 2020, 8:50:55 AM6/17/20
to
Martin

Many thanks! I have downloaded and will try it out later. I was using a customised BIOS on my emulator, but not on my Altair-Duino. This should
allow me to use the Altair-Duino with plotter software.

FredW

martin....@gmail.com

unread,
Sep 20, 2023, 9:15:33 AM9/20/23
to
While I was looking for new items in the BITSAVERS archive, I noticed that a large source repository of GSX-80 and GSX-86 files was added in August 2023.

I wrote a small script to extract the devices driver names for GSx-80 sytsem (all are written in RATFOR) and created the list below.

Maybe this is interesting for some guys here (some time ago, I wrote a driver for my HP 2648 terminal and now I see that there was one for the 2647, but it was not available at the time).

Greetings
Martin

GSX Sources BITSAVERS
(http://bitsavers.informatik.uni-stuttgart.de/bits/DigitalResearch)

Source code for GSX-80 device drivers (most are also available for GSX-86))

sskeldd skeleton device driver for testing

dd100v ID 100V terminal
dd2647 HP2647
dd4012 TEK 40xx
dd4025 VT100 with Retrographics
dd4662 Tektronix 4662 plotter
dd512 AED 512 terminal
dd6211 Ramtek 6211 terminal
ddadvn Northstar Advantage
ddaret ADM 3A with Retro-Graphics
ddbtur Bascom-Turner 1100 plotter
ddcsa1 Control Systems Artist I (NEC 7220)
ddfcg Florida Computer Graphics terminal
ddgn2a ADM 5 GEN II Digital Engineering Device Driver
ddgn2a LSI ADM5 GEN.II Retro-Graphics
ddgn2b ADDS Viewpoint GEN.II Retro-Graphics
ddgn2c Televideo 910 GEN.II Retro-Graphics
ddgn2d Datamedia Colorscan 10 terminal with
ddgn2e Televideo 910 GEN.II Retro-Graphics
ddtr24at Transiac TR1024
ddtr24 VT125 terminal
ddv185at VT185 terminal
ddvret VT100 with Retrographics
ddotrn Otrona Attache

dd7220 Hewlett Packard 7220 pen plotter
dd7470 Hewlett Packard 7470 pen plotter
ddhi3m Houston Instruments HI PLOT DMP-3
ddhi3m Houston Instruments DMP3
ddhi7m Houston Instruments HI PLOT DMP-7
ddw636 Watanabe WX 4636 Plotter
ddw675 Watanabe WX4675 six pen plotter
ddstrb Strobe pen plotter

ddids IDS printer
ddidsc IDS color printer
ddmx80 Diablo 630 Daisy Wheel printer
ddmx80 Epson MX-80 Printer
ddokid Okidata Microline 92 Printer
ddprtx Printronix P300 and P600 printers

pbi...@gmail.com

unread,
Sep 21, 2023, 2:18:03 AM9/21/23
to
On Wednesday, September 20, 2023 at 9:15:33 AM UTC-4, martin....@gmail.com wrote:
> While I was looking for new items in the BITSAVERS archive, I noticed that a large source repository of GSX-80 and GSX-86 files was added in August 2023.
>
> I wrote a small script to extract the devices driver names for GSx-80 sytsem (all are written in RATFOR) and created the list below.
>
> Maybe this is interesting for some guys here (some time ago, I wrote a driver for my HP 2648 terminal and now I see that there was one for the 2647, but it was not available at the time).
>
> Greetings
> Martin
>
> GSX Sources BITSAVERS
> (http://bitsavers.informatik.uni-stuttgart.de/bits/DigitalResearch)
>
> Source code for GSX-80 device drivers (most are also available for GSX-86))
>
> sskeldd skeleton device driver for testing
>
> dd100v ID 100V terminal
> dd2647 HP2647

Thanks for pointing this out Martin. Could you share your HP 2648 terminal driver?

martin....@gmail.com

unread,
Sep 21, 2023, 8:56:51 AM9/21/23
to
pbi...@gmail.com schrieb am Donnerstag, 21. September 2023 um 08:18:03 UTC+2:
> On Wednesday, September 20, 2023 at 9:15:33 AM UTC-4, martin....@gmail.com wrote:
> > GSX Sources BITSAVERS
> > (http://bitsavers.informatik.uni-stuttgart.de/bits/DigitalResearch)
> >
> > Source code for GSX-80 device drivers (most are also available for GSX-86))
> >
>> ...
> Thanks for pointing this out Martin. Could you share your HP 2648 terminal driver?

As posted some time ago, the sources of my own drivers can be found in individual ZIP archives at the end of this page:

https://www.mh-aerotools.de/hp/

Martin

pbi...@gmail.com

unread,
Sep 22, 2023, 2:47:28 AM9/22/23
to
Alas, I wasn't here "some time ago"! Thank you for the re-reference.
0 new messages