WO'- My involvement with the PLATO system covered the entire period that I was a graduate student at the University of Illinois. From 1973 to 1980, I worked as a research assistant and occasionally as a teaching assistant in the Medical Computing Lab at the School of Basic Medical Sciences in Urbana, where my PLATO user ID was jones of rhrc (the Regional Health Resource Center) and then jones of mcl (the Medical Computing Lab), also sometimes written jones/rhrc and jones/mcl. While I was there, I did several things.

But first: Why are so many of the screen shots shown here in orange on a black background? The answer is simple: Through the 1970's, the dominant terminal used on the PLATO system was the Magnavox PLATO IV student terminal. In an era when all other computer display screens used CRTs, this display used a neon-discharge plasma panel. Yes, this is exactly the same technology used in plasma flat-screen TV screens today, except without the phosphors, so there was only one color, orange.


Early Social Media: Notesfiles

WO"' The University of Illinois Archives maintains an on-line archive of several early PLATO notesfiles. These were one of the first great experiments in social media, and their archive preserves several of my early notes. The oldest I can find is a complaint about the PLATO text editor from 12/9/1974, when I wrote:

---------- note 614 editing!
 12/09 10.37 jones rhrc
When reading a lesson,it would be nice to be able
to read directly over lesson block bounds instead
of having to back out to the lesson index and type
the letter of the next block. Mabe the -NEXT1- key
could advance to the beginning of the next block
and save changes in the previous block if not in
inspect only mode?

This takes some translation into modern terms. Since PLATO was intended as a computer aided instruction system, all user files were referred to as lessons, regardless of whether they served an instructional purpose. The text editor operated on fixed-size blocks of disk space, and it was up to the user to organize the text of a program or other document into blocks. All PLATO terminals had function keys, -NEXT- was the name of one of them, and -NEXT1- was the standard way to refer to the shifted version of this key.

Responses to this note indicated that indeed, system programmers on PLATO had exactly this function available to them, but they didn't want to release it to the general user community.

At the time, there were only 3 notesfiles in the world, one for system announcements (world readable), one for help requests (world write only), and one for general use (world read-write). The archive only contains the latter. I've extracted all of my old notesfile postings from this archive and annotated them here.


An advertising poster for the Simpler system from 1980 (author's collection). The terminal is a CDC IST-II with the nameplate changed.

Porting Tutor to the Modcomp IV Minicomputer

O-T=" My MS thesis, Run Time Support for the TUTOR Language on a Small Computer System (1976) documents the implementation of PLATO's TUTOR programming language on the Modcomp IV minicomputer. This includes one of the first descriptions of TUTOR's arcane semantics from an outsider's perspective.

The typography of this is rather poor by modern standards. It was printed on a Dataproducts chain printer attached to the Modcomp IV. I had to write both the text editor and the text formatting program needed to print it.

A year later, in May 1977, I revised the thesis slightly, adding an additional 7 pages for release as Technical Report UIUCDCS-R-77-868 UILU-ENG 77 1719. This was digitized by the Internet Archive in 2013, at a resolution higher than necessary for the chain printer text or ballpoint-pen diagrams. They worked from a paper copy in the University of Illinois Library that has circulation stamps indicating that it was checked out by library patrons in 1982, 1995 and 1996.

This thesis documents what became GIST TUTOR, after Global Information Systems Technology was founded in 1980 to market the Modcomp PLATO/TUTOR clone. GIST originally called their clone Simpler, but later, after rewriting my interpreter in C, they called it ACCORD.


HiVolts, the Game of Electric Fences

WO="' The PLATO system was intended for computer-based instruction, but it was incredibly appealing to develop games on it. Some of those games were instructional. Airfight, the first multi-user 3-d graphical flight simulator, really did teach flying, even though the planes were all jet fighters and you could load them as you desired with fuel or ammunition up to the plane's weight limit. (There are many web pages that give pocket histories of the early development of computer games on PLATO. See, for example, Chapter 6 of The Complete Wargames Handbook.)

The relationship between the system staff and game developers on PLATO was a mixed one. On the one hand, games were a great test of the system. On the other hand, many games were resource hogs. PLATO was designed as a timesharing system. The machine could execute one MIPS (Million Instructions Per Second), this made it a supercomputer, by the terms of the early 1970's. If they wanted to support 200 users, the average user load had to be under 5 TIPS (Thousand Instructions per Second). Most games, particularly first-person shooters like Airfight, ran at well over 10 TIPS.

My job developing a TUTOR implementation for the Modcomp IV computer required that I explore the TUTOR language thoroughly, and it was natural for me to try writing a game. I set out to design a game that had the appeal of an arcade game, and along the way, I decided to make it run in under 5 TIPS.

The Result was HiVolts, the Game of Electric Fences, with the title screen as shown below. My artwork for the title survived unchanged through years of evolutionary development by later authors who worked on the game. The core of the game is not entirely original. Greg Chesson had recently demonstrated Unix on campus -- it is noteworthy that Illinois was the first licensed Unix site outside of Bell Labs; UNIX license number 1 was granted to Illinois in 1974. One of the things Greg demonstrated in passing was the suite of games that came with Unix. My memory of seeing him briefly demonstrte one of those games was the root inspiration for the game I wrote.

This game has been preserved as hivolts on cyber1.org, from which the following screen shot was taken in 2008.

[画像:* (big artistic text) Hi-Volts, (regular text) The Game of ELECTRIC FENCES. Originally by: Douglas Jones & Dirk Pellett. Adapted for ACCORD by: Flint & Dirk Pellett. RE-Adapted back to PLATO by: Dirk Pellett. NEXT to play, LAB for notes, BACK to exit, HELP for help, DATA for records, Shift-BACK to return. *]

The preservation of HiVolts was not trivial. The credits in the title page are explained by this quote from Dirk Pellett: "The version of the Hi-Volts source I had on Accord (written in GIST's version of TUTOR) ... declares you, Douglas Jones, as the sole source of the game. I used that source to back-translate to PLATO TUTOR so that it would run on cyber1.org."

In short, each round of play in HiVolts involves dropping the player onto a random spot on a randomly created game board, a field surrounded by electric fences and with fences scattered here and there on the field. The field also contains semi-intelligent mhos (inverse ohms, a lame in-joke) that are attracted to the player and will eat the player if they come too close. The player can survive by manuvering in such a way that the mhos blunder into electric fences. You win the round if you survive without being consumed or electrocuted until all of the mhos have been electrocuted.

Josh Paley did a decent job of reverse engineering the game I finally produced. His specificaiton for the game was available on the web at http://charlotte.pausd.org/~jpaley/AP_CS/hivolts/ (now available from the Wayback Machine).

[画像:* Screenshot of game graphics *]

I believe one of the later authors changed the graphics for the game itself, as illustrated above, replacing the alphabetic symbols I had used with graphics. The original version would have presented the above screen something like this:

# # # # # # # # # # # #
# * # # * * #
# # # #
# # * #
# # * # #
# * #
# * # # * # * #
# * # # #
# # * # #
# # # O #
# # * # #
# # # # # # # # # # # #

# -- An electric fence

* -- A mho, an adversary

O -- The player

The appeal of HiVolts was somewhat of a mystery to me. It isn't a first person shooter where fast twitch reflexes lead to winning. Instead, the game is dominated by carefully and thoughtfully running away from the monsters in the maze. An experienced player has about even odds of surviving one round of play. Each round of the game was short enough that many game sessions involved multiple rounds, and as I realized this, I made the game compute the player's win-loss ratio for the session. Today, we would describe HiVolts as a casual game, and it is fair to say that it was one of the first casual games to achieve success in the PLATO world.

Flint Pellett, one of the authors of the legendary PLATO game DND, one of the first computerized spinoffs of Dungeons and Dragons, worked with me in the Medical Computing Lab. He said that his brother Dirk was interested in HiVolts, so when I moved on to other things, I passed the game to them. The game had already attracted a following, and this grew after Dirk added a record book to the game, so that the game computed (and displayed) a list of the best players, ordered by the win-loss ratios they had achieved.

Apparently, at some point after my involvement with HiVolts ended, someone else modified it. Dirk Pellett remembers "a version of Hi-Volts where the 'mhos' were lightning bolts instead of frowny-faces, there were double-lightning-bolts that could move twice, and the fences were NOT destroyed when a mho walked into it, all of which are different from the version ... re-created on cyber1." This alternative version doesn't ring any bells with me -- the double-mhos idea is particularly alien to my memory, so obviously, the game evolved on PLATO. I'm fairly sure I'd have given a copy of the source to anyone who asked for it back then. Computer games had yet to become important items of commerce at the time.

When Pac-Man came out, I wondered if the developer had ever seen the game of Electric Fences. The relationship between the Pac-Man player and the ghosts of that game has some similarity to the relationship between the player and the mhos of Electric Fences. Pac-Man, however has a static maze, not the random maze of Electric Fences, and Electric Fences has nothing analogous to the "food" dots that Pac-Man consumes.


Dealing with Computer Anxiety

Drawing of a PLATO IV terminal with a piratical figure and clawed hand reaching out of the screen

WO"'. Some students freeze up the first time they find themself in front of a computer keyboard. We had this problem with medical students at the University of Illinois School of Basic Medical Sciences, so in August, 1979, the Medical Computing Lab at the school produced a guide for students on the use of computer assisted instruction using PLATO. I drew this illustration for the guide, showing what the PLATO terminal does not contain. It's a decent drawing of the Magnavox PLATO IV student terminal. That's a flat plasma display panel in front, The bulk of the volume is occupied by the folded light path of the rear-projection microfiche reader in the terminal. The 6-inch wide margin around the screen is because of the electronics around the edge of the flat panel.


Gothic, an Alternative Character Set

[画像:* (in an archaic font) Every computer should have archaic fonts. As tjeu are sp very easy to read compared to the fonts common on modern computers. For every character is a work of art. *]

TU"- PLATO supported user-defined character sets. I knew a bit of calligraphy, so I decided to go out on a limb and try creating a character set that was emphatically not the usual computer-style character set. I called it gothic, not after the modern font, but in the older sense of the word, because it was very much the barbaric font, very unlike the humanist fonts from which most modern typography springs.

The writable character set of the PLATO terminal had only room for so-many capitals, so I put in only 3, made of 6 characters each, where characters on PLATO were 8 by 16 pixels.

You'll notice that the 8 by 16 matrix forced the M to be cramped side to side, and it forced the P to slip up a pixel or two. Those defects were fixed in the later scalable and rotatable lineset version of the character set.

[画像:* (in an archaic font) 01234567890 abcdefghijklmnopqurstuvwxyz .,? AFE *]

The output of the instructional lesson I wrote on the use of the Gothic charset and lineset is available, as it existed in late 1976. According to the Public notes archive for 1975 I announced the availability of Gothic on Dec. 16, 1975. The content of that lesson, in addition to explaining the use of the character sets, also makes it clear that this character set had already made it into the standard character-set library of PLATO by the time I wrote this lesson, but note also that the game of Hangman is not mentioned. Unfortunately, no machine-readable copy of this material appears to survive.

The output mentioned above was printed on paper using a PLATO graphics printer. This was a remarkable impact printer using a "wobble bar" that scanned a horizontal row of on the order of 8 print hammers rapidly back and forth across the page, allowing it to print each of the 512 lines of the screen in under a minute. I do remember this printer being loud. Craig Burson wrote on Nov. 5, 2010 to remind me that Art Carroll of the PLATO Project built the prototype of this printer using an OEM shuttle-bar print mechanism (was it from Genicom?). It was later marketed by CDC at the 726-10 printer. We had one in the school of Basic Medical Sciences in Urbana.

[画像:* (in an archaic font) Ordeal of the Hangman. (back to normal text) Press LAB for introduction, Press DATA for statistics, Press NEXT to start playing, Shift-DATA for credits, Press HELP for wordlist editor, Script: Gary Michael, Program: Michael Berger, Artwork: David Dennis, Typeface: Douglas Jones. Revised: 1993, Control Data Systems Inc. Copyright: 1976 Board of Trustees University of Illinois. *]

The gothic character set was used in the educational game of Hangman (preserved as 0hangman on cyber1.org) to support a rather silly back story explaining why a man was being hung for not being able to spell. (Hangman is preserved as 0hangman on cyber1.org, from which the above screen shot was taken.) to support a rather silly back story explaining why a man was being hung Over a decade or so, I earned about the price of a pizza every year for this contribution to PLATO, through the micropayment scheme PLATO supported. Hangman is copyrighted 1976 and credits me as the designer of the typeface.


Roman, a Useful Character Set

[画像:* Roman: A useful lineset. ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz *]

WOU"- After I designed the Gothic lineset, someone asked me if I couldn't do something more useful -- design a legible character set that people would actually want to use. So, I designed a classical Roman lineset, with decent proportional spacing. The geometry is still basically octagonal, not round, but in the smaller sizes, it looks pretty good, and in the larger sizes, it is far more ligible than the standard PLATO dot matrix fonts.

The illustration here is a screen shot from cyber1.org, where my font is preserved in lesson linesets. I found two printed screenshots in my files that I made using the old PLATO graphics printer some time in the late 1970's. The paper is a bit yellow, but the scanner fixed that. If you zoom in on the PDF, you can see the impact marks of the print hammer for each pixel of the display. The second page of the old screenshot is a manual for the using the lineset.

One trick I used was to define backspace (shift space on PLATO) to be just the right size to kern lower case letters under upper case letters such as Y and T, so typing T(backspace)o or Y(backspace)es would print To or Yes with appropriate kerning.


Tiling the Plane with Character Sets

[画像:* Tiling the plane with Escheresque lizards]

+oU"- I had (and still have) several books of M. C. Escher prints. Several of his prints explore tiling the plane with various objects. In the case of Development 1, Reptiles, and Metamorphose, he used lizards. The most fully developed of the lizard tilings, in Reptiles, has a hexagonal tiling involving 3 lizard colors. Two-color square tilings are developed briefly in the other two, and at the start of the book is a little woodcut exercise in square lizard tiling.

I was taken by what Escher did and tried my hand at tiling the PLATO terminal with lizards. Escher's lizards, both lithographic and woodcut, were designed without regard to pixels, while I had to make do with the the 8 by 16 tiles of the PLATO writable character set. I opted to use a period of 48 pixels, 6 characters wide by 3 characters tall, so my tiling used 18 characters. Facial expressions or even the details of mouths and claws were out.

These were definitely inspired by the lizards in Escher's woodcut exercise, if someone wants to make any commercial use of this image, they'd better clear the copyright with the M. C. Escher company. It would make an interesting textile design for weaving in silk on a Jacquard loom.

I had to solve some new problems in the move to a low resolution pixelized design. It took several tries before I realized that I couldn't make the lizards meet nose to nose. Rather, the midlines of the face-to-face lizards had to be offset by one pixel. I was just barely able to give them nostrils, and the midline of the back is more like a row of stitches than a sharply defined line. There was no hope to divide the toes, and I could only hint at a crease to divide the upper arms from the bodies.

At the time, the best graphics printer available for printing a display from a PLATO IV terminal used a wet process, with results much worse than the later impact printer they developed. I think the actual print engine was a Tektronics graphics printer. The output was on flimsy paper and tended to have both drop-outs and smudges. The fragment shown here was scanned in 2022 from the original printed copy made in the 1970s, and then massaged in GIMP to make black truly black and white (sort of a pale grey in the original printout) truly white. The detail is degraded from the original on-screen image in black and neon-discharge orange. On screen, the black and orange lizards were exact color inverses of each other.


The Problem of Printing

-OM"- PLATO was designed with a focus on interactive computing using graphics terminals, with very limited options for creating any kind of hard copy. The PLATO project offered the following printing solutions:

     1 unit enter
     2 join init
     3 calc v13⇐128
     4 v14⇐128
     5 v16⇐64
     6 v17⇐32
     7 v3⇐64
     8 v2⇐32
     9 at 100,100
    10 join box
    11 write HI!!!
    12 calc v15⇐3
    13 v13⇐32
    14 at 1224
    15 join shade
    16 join box
    17 write WELCOME
    
  • A CDC drum printer. There was an on-line mechanism you could use to request a printout, and you could then walk over to CERL (the Computer-based Education Research Lab) to pick up your printout. The problem with the drum printer was that the output was, to say the least, very jittery, the character set offered by the printer didn't match the character set used for editing, and unless you were lucky to be the first one to use a new ribbon, the results were likely to be quite faint.

    I found the printout shown at the right my files, dated Dec. 24, 1973. Note the vertical jitter in the row of dashes. Note the funny punctuation. It's so bad that I put a translation next to the printout. The entire listing is here:

    PLATO lesson jones from Dec. 24, 1973.

    This is one of the first programs I wrote in the TUTOR language for PLATO. It calls itself an ARTMAKER, but it's poorly commented and I don't really recall what it does.

  • The wet-process screen printer. There was one dedicated PLATO IV terminal attached to this printer in CERL. If you wanted a screen from your lesson printed, you went there and waited until that terminal was vacant, then logged in to use it, brought up your lesson, and when you found the screen you wanted to print, you pressed the print button on the printer. The output was damp, flimsy, and frequently smudged.

    The example shown here, from a term paper I wrote in the Spring of 1975, has spots and drop-outs typical of this printer, although as it aged, the spotting and dropouts got progressively worse. If you click on the image, you can see that the print resolution is more than good enough to show the individual pixels as they were displayed on the plasma panel.

  • A mechanical impact screen printer. This was developed later, after low-cost RAM and microprocessors had developed far enough. The print mechanism verged on being a hilarious kluge, with a row of solenoids on a bar that oscillated back and forth so that each solenoid could cover its share in a row of pixels. The bar wobbled at something like 10 scans per second, while the paper advanced vertically. The printing was done using a fabric typewriter ribbon, and it was pretty good.

    The example shown here is from the manual for my PLATO to IBM Office System 6 printer interface in 1980. The print is crisp, if you enlarge it, you can see the individual pixels just as well as you could with the first PLATO graphics printer, and there are no smudges or drop-outs. The only real problem is that, as with all printers using inked fabric ribbons, your print quality was best with a new ribbon and got progressively fainter as the ink was used up.

We weren't happy with PLATO's printing options, so our lab developed several solutions allowing local printing:

  • The PLATO IV student terminal had a parallel port. There were several uses for this. One of the first was the Gooch Synthetic Woodwinds, a crummy little music synthesizer used in a rather large suite of instructional Music software.

    I built a simple interface to this parallel port that output the data to an RS232 serial line. It was extremely simple, taking advantage of the fact that the native serial data format used by the PLATO IV terminal was exposed on the card-edge connector for the terminal's parallel port.

    Data came to the PLATO IV terminal in the form of 60 data packets per second, 21 bits per packet. That translates to 1260 baud, which is within 5% of 1200 baud, a common standard baud rate for asynchronous serial data. In the absence of bad signals, asynchronous data with one start bit, one stop bit and 8 data bits can be off by this much without causing errors.

    A second signal on the card-edge connector was asserted only during the 18 data bits of a packet addressed to the parallel port. My interface design, therefore, used one SN7400 nand gate chip, plus a 741 op amp, used without feedback to convert TTL voltage levels to RS232 levels. All the remaining problems were solved in software. The start and stop bits, the conversion from CDC/PLATO display code to ASCII and the fact that the bits were sent in the wrong order were all dealt with in a lookup-table used by the print software, all written in PLATO's TUTOR programming language. The big downside of this crude interface was that it could only send 60 characters a second to the printer, while the printer running at 1200 baud could have handled 120 characters per second.

    It worked, and we built several of them to drive GE Terminet 1200 printers. The print legibility on these was far better than that for PLATO's line printer, and they had both upper and lower case, a huge advantage. I used this printer to print the term project from which I took the example shown here.

  • When it came time to print my PhD thesis in 1980, the best printer available was an IBM Office System 6 ink-jet printer in the Medical School's word-processing center — IBM's preferred term for what had previously been called a typing pool. This was very good letter-quality printer, but the problem is, the only path to it was on magnetic cards, usually those prepared by an IBM Mag-Card Selectric typewriter.

    PLATO had an excellent interactive text editor, so my challenge was to move data from PLATO's 6-bit character set (with shift codes) to IBM's word-processing variant of their 8-bit EBCDIC code. How to do this? By this time, we had one PLATO V "smart" terminal – that means that it had an Intel 8080 microprocessor in it that we could program using an officially supported PLATO tool.

    IBM had a Communicating Mag-Card Selectric that had an RS-232 port. Unfortunately, it wasn't an asynch port, it used IBM's Bisync protocol, and the auxiliary port on the PLATO V terminal was a parallel port. Andrew Appel, Frank Mabry and I cobbled together an interface box that allowed the PLATO V terminal to speak Bisync, and then Andrew and I wrote software, both on the PLATO mainframe and on the PLATO V terminal to write mag cards from PLATO.

    I don't know who else ever used it, but I did write a fairly decent user's manual, in the form of a help section of the PLATO lesson that drove the printer:

    PLATO to IBM Office System 6 manual

    The manual was printed on the PLATO wobble-bar graphics printer.


When PLATO and Xerox PARC Interacted

pbdq In the 1970s, there were just two research groups in the world with extensive experience exploring the use of bitmap display technology. One was the PLATO project. The other was based at the Xerox Palo Alto Research Center. In the mid to late 1970s, these two groups traded visits, and I attended at least one lecture sponsored by the PLATO project where visitors from Xerox PARC spoke about what they'd learnd. Later, in 1980, I interviewed with Xexox Rochester Research Labs and gave a talk about some of what I'd learned working with PLATO. If you wonder, yes, they offered me a job that I turned down.

As the Computer History Association of Caifornia was getting off the ground, I wrote "PLATO and Smalltalk" a short piece about this interaction for their newsletter The Analytical Engine (Volume 1, Number 3, January 1994, page 41).


AltStyle によって変換されたページ (->オリジナル) /