5

The DEC Type 30 was an early vector graphics display, that was used for an astonishingly wide range of applications for the 1960s. It used a 16-inch circular CRT with high persistence phosphor originally designed for use as a radar screen, and the resolution (presumably determined by the DEC-built digital electronics) was 1024 x 1024.

I've been trying to look up just how quickly it could refresh, and the figure I'm seeing is one operation every 50 microseconds, which seems straightforward enough, but https://www.masswerk.at/nowgobang/2021/spacewar1

The PDP-1 is capable of displaying a maximum of 20,000 dots per second — assuming our program doesn’t anything other than issuing display command. Which gives us, with a reasonable frame rate for a flicker free display of, say, 18 fps, about 1,100 display instructions per frame, which is just good enough for a single line accross the display.

That didn't look quite right, so a bit of searching found what looks like an original manual, http://www.computinghistory.org.uk/userdata/files/digital-precision-crt-display-type-30.pdf

Discrete points may be plotted in any sequence at a 20 kilocycle rate (one point every 50 microseconds)

Okay, that does seem to confirm.

... huh? In a vector display, the fundamental operation is not plotting a point but drawing a line between two points. That's useless if what you want to show is a photograph, but great for things like circuit diagrams, molecule diagrams and suchlike visibly geometric things that were representative of early graphical applications.

If you can only do one point at a time, well it will still work in principle, but effective performance will drop by orders of magnitude, and you lose the ability to draw lines at angles that don't necessarily stick to the grid of points defined by the resolution.

Did the Type 30 really only draw one point at a time? If so, why? Had a vector display just not been thought of yet, or was there some other reason it couldn't be done?

8
  • 1
    I would guess that the "discrete points" are just that, whether or not the device also has been instructed to plot a line segment between them. So if you wanted an X, that's two line segments but (at least) four discrete points. Commented May 5, 2021 at 8:56
  • 1
    Spacewar was flicker free, and this was an important feature in demonstrating the capabilities of a PDP-1 with a type 30 display. The scene being displayed was mostly the start background, anyway. Commented May 5, 2021 at 10:30
  • 1
    The PDP-6 display was cabable of drawing lines. The big difference wasn't in the display, but in the controller. Commented May 5, 2021 at 10:32
  • 2
    Since I once worked for them, I'll add that one of the first graphic [vector] workstations was the Imlac PDS-1: en.wikipedia.org/wiki/Imlac_PDS-1 Commented May 6, 2021 at 19:03
  • 2
    @WalterMitty, maybe we should clarity that the Type 340 display used with the PDP-6 and other PDP computers was still point plotting. It was just that the display hardware handled plotting the points on a line autonomously on command from the main CPU. The display could also draw characters. Commented May 28, 2021 at 7:18

3 Answers 3

14

This might just be stating the obvious, but Type 30 manual linked in the question describes the device as a random-position point-plotting cathode ray tube. Nowhere does the manual suggest it's a vector graphics display.

It then further describes how the computer supplies the X,Y coordinates of a single point to be plotted. There is no facility to plot a line.

8

The description of the Spacewar game gives some clues that the Type 30 was not able to display lines, but instead dots.

Towards the end of the description, there is the listing how the spaceships were rendered, and even linear sections were given as repeated individual dots. With a true line-rendering capability, the engineers had surely used that instead of the single-pixel approach.

And, from a technical point of view, producing a line on an X/Y display has a few quirks. To have short and long lines appear with the same intensity, you need to move the beam with constant speed, meaning that long lines take more time than short ones, which doesn't fit the documentation of an apparently fixed 50-microsecond cycle.

And you need circuitry to do a linear interpolation between start and end point of the line. Around 1961, I bet that integrating a digital solution (based e.g. on Bresenham's algorithm) was no option - it was invented in 1962 at IBM, if Wikipedia is correct, and would need complex digital circuitry close to an ALU. So, it would have been based on analog processing, and apparently, the DEC engineers decided not to go that way.

7
  • 1
    Bresenham's algorithm is easy to implement in hardware. See cs.columbia.edu/~sedwards/classes/2012/4840/lines.pdf for example.
    – alephzero
    Commented May 5, 2021 at 10:57
  • 2
    Yes, from 2021's point of view, Bresenham is super easy, but 1961 the concept of an integrated circuit had just been invented and not yet made its way into mainline products. So the adders and comparators had to be built at transistor level. My estimate is that the Bresenham hardware transistor count would have been at least 20% of the PDP-1 CPU. Commented May 5, 2021 at 14:19
  • 1
    I don't get your comments about the problems of linear interpolation. Other displays (maybe slightly later in time) were able to do it fine with analog circuitry. (A problem that did exist was visible "overshoot" at corners (two consecutive drawn lines in different directions with beam on) which is a function of the electromagnetic circuit that drove the electron beam.)
    – davidbak
    Commented May 5, 2021 at 14:54
  • 1
    @davidbak: I've been somewhat curious how the analog line drawing would work, but a fairly simple approach would be to design a display electronics so that full-scale coordinates would be a fair bit bigger than the screen, but the signal would pass through an RC filter that whose output would move 25% of the way toward each input during each sampling interval. Thus, if the beam was at (150,25) and one wanted to draw a line to (100, 100) one would output coordinate (-50, 325). That would effectively ask the beam to move by (-200,+300) but it would only have time to move 25% of that distance.
    – supercat
    Commented May 5, 2021 at 15:39
  • 1
    @davidbak: Such an approach would yield lines of not-quite-uniform intensity, but it should just require one calibration resistor for each axis and allow a simple calibration procedure (draw a square and adjust the pots so the edges are straight and vertical).
    – supercat
    Commented May 5, 2021 at 15:42
5

NOTE: This actually refers to the type 340, not the type 30, so it may be irrelevant!

The Type 30 input commands worked in several different "modes", including point mode, vector mode, and character mode (with an optional character generator).

The actual display was always point-based, unlike the Tektronix 4011/4014 displays which drew straight line vectors using analog circuitry.

The "internal clock increment" for rasterizing vectors to points was 1.5 microseconds.

See http://www.bitsavers.org/pdf/dec/graphics/H-340_Type_340_Precision_Incremental_CRT_System_Nov64.pdf for the full story.

4
  • 1
    The 340 is basically what we'd call a graphics coprocessor driving the display.
    – dave
    Commented May 5, 2021 at 16:34
  • 1
    My memory fails me. But I think the type 340 was what came with a PDP-6. In any event, I had a summer job programming a stick figure of a complex molecule on the PDP-6 in the summer of 1964. That was definitely a line drawing display. In order to give a 3 dimensional effect, it was necessary to slowly rotate the stick figure. This took of the processing power of a PDP-6, along with the power of the line drawing display. Commented May 6, 2021 at 10:47
  • 1
    It was also an option for the PDP-1. 1964 price list.
    – dave
    Commented May 6, 2021 at 22:40
  • Also for the PDP-7, and possibly 4 and 9. There was a Type 338 for the PDP-8. Commented May 28, 2021 at 7:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .