New GTTY - A Glass TTY + Load paper tape for a PDP-8/E/F/M/A - now WITH "PACING"
lbickley at bickleywest.com
Mon Apr 24 21:46:09 CDT 2006
Want a program to act as a "Glass" TTY for your PDP-8x - with paper tape file
upload and capture capabilities? Free? You can download if via anonymous FTP
from "bickleywest.com" or using your browser via "ftp://bickleywest.com".
The new version of "GTTY" contains pacing, so that slow PDP-8 programs can
read from the "paper tape reader" without issues. Included: The hardware
changes you'll need to make on your console async. board to get "pacing"
To make it work you'll need a serial cable from your PDP-8/x TTY console
(EIA RS-232 mode) to the serial port of a DOS capable PC. GTTY has been
tested with DOS 6.22 and a DOS Window in Windows 98se and Windows XT.
A copy of the file "gtty.txt" which describes it's capabilities and
limitations is below.
GTTY - A Glass TTY + Load paper tape software into a PDP-8
Version 0.91, 4/24/2006
Lyle Bickley, Bickley Consulting West Inc.
Note: Changes from release 0.8 include:
1) Ability to "pace" using hardware CTS based on Reader Run.
Helpful in dealing with slow software reads from "paper
tape" by FOCAL, etc.
2) New function to allow escaping from a "hung" load from
CTS drop (Reader Run off). Useful when the BIN loader halts on
completion of a load - and there is still "paper tape"
trailer in a file.
3) Now supports up to 38400 baud.
4) There is a new function key and a new parameter (see below)
This software was inspired by K. McQuiggin's "RIM Client, Version 0.2"
(July, 1998), AKA "send.c":
The hardware modifications recommended below are directly or indirectly
from Aaron Nabil's site: http://pdp-8.org/flow.html.
Also helpful are Douglas Jones "Notes" on the
KL8E and KL8JA asynchronous Interfaces:
Software - "Glass TTY - GTTY"
I decided to write a complete "Glass" TTY that could be used as a console,
paper tape "reader" and "punch" for my PDP-8/F. I also wanted it to be
capable of "pacing", so it could be functional with programs such as FOCAL
and multi-segement tapes.
Starting up, it is a full duplex glass TTY - and sends the characters
you type to the PDP-8 and displays the characters received from the
PDP-8 on the screen/monitor. Hitting the "F2" key - it asks you for a
PT (paper tape) filename - lets you specify whether you want it to strip
"garbage" characters from the tape before uploading it to the PDP8.
After the upload, it automatically switches back to "glass" TTY mode.
If GTTY get's "hung" while uploading (typically the BIN loader halting
after complition of a load with trailer remaining in the "reader") hit F3.
This will escape the pacing wait from CTS dropping (RDR RUN off).
Hitting the "F4" key asks for the name of a "Capture" file. After entering
a filename and hitting "Enter", all data received from the PDP-8 will be
captured to the file. Note that the display is turned off - as typically
the data to be "captured" is a binary punch file. Hitting the "F5" key
closes the capture file and GTTY switches back to "glass" TTY mode.
The other two active function keys are "F1" - Help, and "F6" - Exit.
1. No function keys get passed to the PDP-8 (even those that are
not "progamatically active".
2. Filenames are limited to DOS's 8.3 filename format.
3. The GTTY startup parameters (upper or lower case) are:
-P port [COM port=1,2,3 or 4] Default "1"
-B baud [Baud rate=110,300,600,1200,2400,4800,9600 or 19200]
-S stop bits [Number of stop bits=1 or 2] Default "1"
-N No CTS hardware (Turns of pacing for those who haven't made
the appropriate hardware changes to their KL8E or
4. I'm a *NIX buff and haven't written DOS code for years, but I wrote
GTTY as a DOS program because I know there are a lot of collectors
that use "imagedisk", "Teledisk", "PUTR", etc. which only operate
on DOS - and many folks who don't have *NIX systems. I've successfully
tested GTTY on DOS 6.22, Windows 98 SE in a DOS window, and Windows XT
[Home Edition] in a DOS window.
5. I'm including the source code, for anyone who would like to "hack"
the program, add feature, etc. My only request is that if you release
it back to the community that you change it's name, and maintain
my copyright notice in the code and startup. Note that it is totally
"free" when used for non-commercial use. Please contact me at
lbickley at bickleywest.com for commercial use.
6. I wrote GTTY in "C" - and wanted to use a freely available DOS compiler
and libraries. I selected Dave Dunfield's "Micro-C". Dave's compiler
and libraries let you get close enough to the "metal" to make a
program such as GTTY responsive and effective - easily handling
communications, screen and keyboard control simultaneously. His
compiler can be downloaded from: www.dunfield.com, either "free" or if
you want all the examples and library source (I did) for the modest
cost of $25.
7. I've successfully uploaded virtually every paper tape diagnostic available
for my system (and it's I/O). In addition, I've uploaded FOCAL and
other software without error at 9600 baud. I've tried it using both
the M8550-YA and the M8655 "TTY" console boards with equal success.
8. I've tested GTTY with 38400 baud and slow reading - and pacing works!
9. The keyboard backspace and delete keys both generate a TTY rubout
(Octal 377) character.
NEW Section - Hardware changes to implement "Pacing"
When running programs like the RIM or BIN loaders, the PDP-8/E is easily able
to "keep up" reading a paper tape file from GTTY. However, some programs as
FOCAL, read the paper tape reader slowly. Without hardware modifications,
GTTY will attempt to "cram" characters to the PDP-8 when it isn't capable of
reading them - hence missed data.
To fix this problem, your M8550 or M8655 TTY console board needs to be
modified. The modification essentially ties RTS/DTR (CTS after a full
handshake null modem) to the Reader Run flip flop on the console board. GTTY
is able to sense CTS and wait until Reader Run is set (CTS O.K.) before
sending a character to the PDP-8.
The hardware changes for the KL8-JA are written up nicely by Aaron Nabil at
his website: http://pdp-8.org/flow.html. I suggest that you use the
"UNTESTED BUT SHOULD WORK" procedure described after steps 1-5. I've tested
it - and it works perfectly. The big advantage of this procedure is that
current loop remains functional.
I also wanted GTTY to work with the older KL8E async controller (M8650). It
turns out that the hardware modifications are much easier on the older board!
On E32 (MC1488) remove the solder from pins 4 and 5. Gently bend the pins away
from the board so they no longer make contact. Solder both pins 4 and 5 to a
jumper wire. Connect the other end of the jumper to E48 (7474 - Rdr Run) pin
9. That's it! The older board works great with both current and EIA modes
without any other changes.
Bickley Consulting West Inc.
Mountain View, CA
"Black holes are where God is dividing by zero"
More information about the cctech