September 1973 Cover Image
Copyright © 1973 Poptronix, Inc.; used by permission.
In September 1973 Don Lancaster introduced his TV Typewriter. It would display 2 pages of 16 lines of 32 characters each. There was a built in RF modulator so you could connect it to any TV. The memory consisted of 512 bit shift registers. The magazine article had a 6 page summary of the design. You had to send off for the 16 page package of construction details. Radio-Electronics sold thousands of copies for $2.00 each.
Southwest Technical Products (SWTPC) sold the printed circuit boards for the TV Typewriter as they did for many of Don's projects. In the late 1960s and early 1970s Don had a construction article almost every month in Popular Electronics or Radio-Electronics.
In 1975 SWTPC introduced the TV Typewriter II (CT-1024). Don had nothing to do with that version and he will tell you so if you ask him about it. It was published as series in Radio Electronics.
Bob Rethemeyer built a TV Typewriter and has provided these pictures.
A surplus keyboard is used on this version of the TV Typewriter. This unit is now on display in the Computer History Museum in Mountain View, CA. The unit on the cover has the homemade keyboard from the February issue.
By DON LANCASTER
This construction project started out as a, very low cost computer terminal for home use, but as it went together, we became aware of the many possible non-computer uses for such a device, particularly since it is priced right. What can you do with a machine that puts letters and numbers on an ordinary unmodified TV set?
Obviously, it's a computer terminal for timesharing services, schools, and experimental uses. It's a ham radio Teletype terminal. Coupled to the right services, it can also display news, stock quotations, time, and weather. It's a communications aide for the deaf. It's a teaching machine, particularly good for helping preschoolers learn the alphabet and words. It also keeps them busy for hours as an educational toy.
It's a super sales promoter, either locally or on a store wide basis. It's easily converted to a title machine for a video recorder. It's a message generator or "answer back" unit for advanced two way cable TV systems. Tied to a cassette recorder, it's an electronic notebook and study aid, or a custom catalog. It's an annunciator for plant, schools, and hospitals that tells not only that someone is needed, but why and where.
And, if all that isn't enough, it's easy to convert into a 12 or 16 place electronic calculator. You can also make a clock out of it, and, with extensive modification, you can even make a 32 register, 16 place serial digital computer out of the beast!
Cost of the project? Around $120 for the basic unit. This is slightly under two month's normal rental of commercial units that don't do nearly as much, and less than 1/10 the cost of anything commercial you could buy to do the same job. And we feel that this cost is finally low enough that a lot of new uses are now not only possible, but reasonable as well.
The low cost comes about by using the latest available semiconductors, leaving the keyboard and case as flexible options, and working in kit form.
Printed circuit boards and complete kits are readily available as are any special or hard to get normally parts. A limited quantity of high quality keyboards are also available from the same source. This is not the sort of thing you'd want to try as a first electronic project, but if you are willing to slowly and methodically work things out and carefully reason out any debugging problems, you shouldn't have an unreasonable amount of trouble getting the thing to work. Once you're past a certain stage early in the construction, the TV set itself becomes a self testing display that greatly simplifies debugging.
To make things easier, you can get a complete copy of the entire story that includes additional design information, how it works, PC patterns, construction details, etc. DO NOT ATTEMPT CONSTRUCTION WITHOUT THIS ADDITIONAL INFORMATION!
Construction is done in stages. Once each stage is tested,
it is safe to go into the next, progressively working up to a
complete unit. The basic machine we'll show you works from a keyboard
or a set of six switches and a pushbutton. Thanks to the plug
in construction, low cost add on circuit boards can let you talk
to a computer or a cassette recorder, or adapt the unit for 12
place calculation. These add ons will be picked up later if enough
readers seem interested. They're not needed for most of the possible
applications of this TV Typewriter.
Specs of the unit
Complete specs appear in Table 1. The basic device generates and stores 512 characters, arranged as sixteen lines of 32 characters each. A second page of characters is easily added internally to bring the total up to 1024 characters. For more storage, a C90 cassette can store well over a hundred pages, so the total capability is quite large. The characters available are standard ASCII ones that include the capital letters, numerals, and most punctuation.
The TV Typewriter is self powered and contains its own miniature TV transmitter which simply clips onto the antenna terminals of an unmodified TV tuned to an unused channel. Several TV's may be driven simultaneously, and a direct video output is also available for industrial and experimental uses. While any TV can be "borrowed" and used with the typewriter, small, high quality portables give the nicest presentation, and slight size and position adjustments can further help the appearance, although they are not needed.
The characters are added one at a time and normally go on the screen just like you were typing. This is done by providing the proper ASCII character code on seven input lines and tripping an eighth "key pressed" line to enter the character. A winking cursor tells you where the next character is to go, but you can turn this off if you want to. Should the screen get filled, the machine starts over again on the top, rewriting over the old message.
Besides the normal operation, you have a complete editing capability. You' can move the cursor either direction anywhere you want and then change only the characters or words you wish to, thus editing something you already have on the screen. This nicely handles mistakes without having to start over again. A REPEAT key is available for putting down a group of identical characters or getting to a given position in a hurry. There's a KEEP CHANGE switch to protect what you have written while you are moving around, and you can home the cursor to the upper left either by itself or erasing the whole picture on the way. Other switches control the direction the cursor goes, which page is being displayed, and optionally whether the mode will be a full screen one for typewriter use or a line scan one for calculator use.
Computer people would call this a parallel input system with off line editing. A single machine command is available; this is the LINE FEED. Thus, any CTRL key moves you down a line. Other remote commands are easily added, but were left off to hold the cost down. The contents of the memory can be retransmitted with simple circuit modifications, and the whole system is bus-oriented to allow all sorts of add ons without major circuit rework.
Character input rate is asynchronous and up to 30 characters per second, thus making the beast three times faster and compatible with the industry standard ASR 33 teletype. Hard copy is via cassette recorder or Polaroid, photos.
To keep things as simple as possible, the circuit is arranged like a set of snap together blocks. This way, the only interconnect wiring consists of the line cord and the 300 ohm twinlead output. Since the interconnect wiring is locked into the board and 60 pin connector system, the biggest single headache and potential error source is eliminated.
Fig. 1 shows the basic blocks. The MAINFRAME contains a power supply of + 12, + 5, 5, and 12 volts; the control switches; the RF modulator; the internal test system; and connectors for both the keyboard and the other boards in the stack.
There are three other essential boards. The MEMORY board is the most important and the most complex. It contains a dynamic MOS (Metal Oxide Semiconductor) shift register that stores 512 words of 6 bits each. It also holds a single line memory; a character generator; and an output video register. We'll see later that the single line memory is needed to get each character back eight times in sequence for eight successive TV scans.
For a page A memory, you need all of this board. The additional page B memory does not need a new single line memory, character generator, and output video register, as it can borrow the one in the page A memory when the second page is in use. This is called bus organization. The character generator will respond to anything that is enabled on the bus, be it page A memory, page B memory, a calculator add-on, or whatever. Of course, we have to be careful to only enable one possible source of characters at a time, but this is easy. We can also use the bus optionally to output characters to the outside world.
The output of the memory board also contains a video combiner that assembles the character video, sync signals, and the internal test signal into one composite video output. This output may either be used directly or routed to the RF modulator for clip on operation of an unmodified TV. It can be optionally flashed or blinked.
The TIMING board contains a crystal divider and TTL (Transistor Transistor Logic) countdown chain that generates all the needed signals to run the typewriter in proper sequence. It does not normally use interlace, but the timing chain is split so that the somewhat more complex TV full-interlace system can be added if you need this sort of thing for video titling. There are two principal areas to the timing board, the MAIN timing, and the DERIVED timing. The main timing is the continuous waveforms obtained off the crystal divider, while the derived outputs combine portions of the main timing signals into properly coded signals needed to run the rest of the typewriter. Two examples are the composite sync signal and a blinker used for flashing, cursor winking, and repeat functions.
The third essential board is a CURSOR board. Anyone who ever tried to design and debug a simple one of these will easily understand why it is called a cursor board. Anyway, the cursor keeps track of where the next character is to go; runs the winking line that shows the character position; controls entry of the character; and optionally sets up characters for output. It also contains an input conditioner, and debouncer and a detector for CTRL commands that tells the typewriter to carriage return rather than enter a character.
Many cursor systems are extremely complex. This one is relatively simple in that it uses a phase shift counting technique. The cursor has a continuously running counter just like the main timing chain does. Its output drops suddenly in some relative position, indicating where the next character is to go.
To back the cursor up, we throw in another count pulse. To run it forward, we hold back one normal count pulse. Thus, the relative position or phase of the cursor counter advances or backs up with respect to the system timing. Actually, to go forward, we hold back two normal system timing pulses and throw in a new one. This buys us a simplification of circuitry, but still ends up with the same result.
An ADD SUBTRACT switch on the mainframe controls the cursor
direction for editing. LINEFEED is handled by adding and removing
the proper number of counts in the proper position in the cursor
counter so that the new position is reached. Just like most typewriters,
the linefeed always returns to the left hand side.
In normal operation, each character entry moves the cursor over
one character. When it gets to the end of the line, it star again
on the next line. When it gets to the bottom of the page, it starts
again at the top. A CLEAR or HOME override also moves the cursor
to the upper left hand position.
And, this is about all you need for a normal parallel entry type of TV typewriter. One possible optional board is a MODEM or frequency shift keying interface. This would use a MOS chip and some TTL to convert to or from a serial tone input, suitable for computer or telephone line communication. A cassette recorder will work just as well with the modem for electronic notebook use.
Another possible add on makes the typewriter into a calculator. This is done by converting the scan from a complete frame to a single line of numerals and would use a surplus calculator chip to provide the familiar calculator functions. If you already have or need the TV typewriter for something else, this add on is far cheaper than a conventional calculator would be, and its display would be obviously larger and more readable.
Or, you can add most anything else you want onto the machine by tieing into the bus oriented lines (b1 through b6). For instance you can think of the memory as sixteen registers of 32 numbers each, and those numbers are decimal numbers plus, not bits! With six bits per word, you can store 10 possible numerals and 54 machine commands in any word! Or, you can split the registers into 32 registers of 16 decimal numbers each, building your own computer or programmable calculator.
Of course, this computer add on is very much an advanced experimenter project, but it really doesn't take much more than a double handful of TTL to pull it off. While such a computer will be relatively slow (around a 33 ms cycle time), it does provide an extremely accurate and very low cost computer approach, particularly when you are working directly with BCD numbers instead of binary.
Before we turn to the actual circuitry, some basics of what a character is and how it can get on a TV screen is in order. Lets start with the characters:
If we had six possible binary bits of either 1 or 0, we would have sixty four different possible combinations ranging from 000000, 000001, 000010, . . . through to 111110 and finally 111111. These 64 different states can represent all the capital letters, all the numbers, a blank, and most punctuation, following the standard ASCII code. In the TV Typewriter, all of the six bits of this code must be presented at once or in parallel form, and this is the only code the circuitry shown can use. Other codes can be converted to ASCII before going into the TV Typewriter. A seventh bit is used to separate characters from internal commands.
Our final presented character consists of an array of 5 x 7 dots. Since it only takes 6 bits to store a coded character and at least 35 bits to store a generated one, its obviously much better and cheaper to generate the characters after they are stored, rather than before.
For other keyboards and encoders, the typewriter gives you lots of +5 and a choice of +12 or -12 volts at relatively low current. The original Radio Electronics ASCII encoder needs the +12; a mechanically encoded keyboard will only need +5, while a MOS encoded keyboard probably will need +5 and -12 volts.
A limited quantity of suitable keyboards is presently available from the kit source. Other sources of input material include computers, calculators, the phone line, or a cassette recorder. Many of these signals will be in serial or one bit at a time form and have to be changed to the parallel ASCII code. This takes an add on board using a MOS terminal receiver chip. Regardless of the source, your input must be in parallel form when presented to the typewriter, with a "1" near but not exceeding the internal +5 and a "0" near but not going below ground. Internal debouncing is provided on the cursor board for manual keyboard entry.
To use an unmodified TV, we have to build a miniature transmitter and arrange the signals so they compare as closely as possible to a normal broadcast set of scanning standards. This way, any TV can be driven by the typewriter simply by clipping onto the antenna terminals and tuning to an unused low channel.
A TV starts in the upper left hand corner and sweeps a dot rapidly to the right and slowly downward, taking around 62 us to get across the screen and 33 ms to get to the bottom. It then repeats the process again and again, presenting a series of dots that assemble into a series of still pictures that the tube phosphor and your eye integrate to get the effect of a complete and usually moving picture.
Brightness is changed on each dot by controlling the picture tube's cathode current, which in turn follows the input RF signal seen at the antenna terminals. Very low signal is seen as white. The stronger the signal, the blacker the picture. The sync signals are the strongest of all, or "blacker than black", and are used to synchronize the scanning of the television set to the transmitted signal.
To provide sync, we need one horizontal sync pulse at the beginning of each scan line, and one vertical sync pulse for the beginning of each frame. To keep things simple, we make all the frames identical in the TV Typewriter instead of using interlace. Interlace has no advantage on a stationary message presentation and simply adds parts. If you have to you can easily add it for video titling or other places where you must superimpose the TV Typewriter's output onto an existing program.
We assign 48 possible character positions across the TV screen, but we only use 32 of them. The remaining 16 allow for retrace and the extreme overscan used on economy TV's. We assign 12 scan lines per row of characters. The uppermost scan line is blank except possibly for a winking cursor that appears as a bar above the next character to get input. The next 7 lines form the character as a series of dots 5 dots wide by 7 dots high, and the final 4 lines are blank. These allow for the space between character lines.
We likewise assign 22 possible character lines but only use 16 of them, this time saving 7 for vertical retrace and overscan. By picking the right timing frequencies, we obtain a horizontal rate that's so close to the normal rate the TV doesn't know the difference, and a vertical rate of exactly 60 Hz. The latter is especially important to keep hum bars out of the display. Since each frame is stationary and ends with a bunch of blanks, Equalizing pulses are neither needed nor used.
Each character takes six bits of storage, arranged as one parallel 6 bit word. The storage is used to hold the character from time of entry until it is no longer needed, which can range from seconds to days. For a single page memory of 512 characters, we use six 512 bit recirculating MOS shift registers. These go around once each TV frame. The timing and cursor boards together decide where in each of the six registers a new character is to go. Once in memory, the character stays in the same relative slot until it is cleared or replaced. The memory is volatile, meaning that you lose the message if power drops for more than a half a second or so.
Note that an ASCII blank is 100000. All 1's is a "?" and all 0's is an "@". This is helpful when troubleshooting, for its rather difficult to get a totally blank screen by accident. On the other hand, this means we have to be careful when we clear our memory to erase the screen. Here, we purposely have to set up the 100000 code. One way to do this, is to hold down the keyboard's space bar during the clearing process. A better way is to remove the keyboard encoder power (via the UNCLEAR or not clear line from HOME switch S6) from the encoder to get all 0's out. Then a "1" can be force fed to the a6 input line to set up the proper code. This gives us a onebutton clearing operation. Other schemes can easily be worked out, but the essential thing is that the 100000 code gets set up during the time you want to erase what you have.
We normally put a character into memory and leave it there for a relatively long time. The memory usually is in a recirculate mode where its own output is connected 'internally back to its input. The memory is a serial device the bits take turns coming out one at a time, and 512 pairs of clock pulses are needed to turn the memory over exactly once.
The memory is normally in the recirculate mode. We keep it
there if we are using the other page or if we have our KEEP CHANGE
switch in the KEEP position. We also force it to recirculate if
a CARRIAGE RETURN command (a6 and a7 = 0) arrives, for, just like
a typewriter, we don't want to enter anything while the carriage
goes back to the beginning of a line.
The only time we actually enter a character is once when the cursor
board tells us it is the right time, then only if we are working
on this page, want to change the character, and are not trying
to return the carriage.
So where do we get our characters? The simplest and far cheapest source is from six switches and a pushbutton, arranged to get us + 5 for a "1" and ground for a "0" and set up so the pushbutton gives you a sudden + 5 to ground "Keypressed" output. This is handy (almost essential) for testing, and can be used for message generation, although it takes quite a bit of practice to get any speed.
A keyboard is the next best bet, such as the low cost keyboard in the February 1973 issue of Radio Electronics, and its low cost companion ASCII encoder (April 1973). Many of the surplus keyboards offered in the back pages of Radio Electronics can also be either used directly or readily adapted.
The input code must be in ASCII. Any keyboard that consists of one or two make contacts per key must be converted in a suitable encoder, again such as the low cost ASCII encoder described in the March 1973 issue of Radio Electronics. Further, the ASCII output must never exceed the internal + 5 volt supply of the typewriter, nor should it go below ground, even by a small amount.
Jumpers on the timing band allow for selection of 12 possible display positions so that internal TV adjustments need not be changed.
We use raster scan dot matrix characters providing an array of 5 dots wide by 7 dots high for each character with one "undot" between characters for spacing. Seven passes of the TV raster are needed to generate each line of characters. This says we must borrow one line's worth of characters (32) from the memory and put it into a new line register memory, use it over again at least seven times, and then later on, go get a new line of characters. To do this, we need a line memory, a single IC consisting of six 32 bit recirculating shift registers.
Let's go through a typical scan and see what happens. Most of the circuitry is shown in Fig. 2.
Suppose we just retraced to the upper left hand corner. We're now on line 1 of the top of the characters. On line No. 1, our line register is connected to the memory and it samples the next 32 characters to be presented. The main memory thus fills the line register. For the next twelve scans, the memory is idle, but the line register brings the same characters back over and over again. On scans No. 2 through No. 8, the character is actually generated. The line register drives a character generator.
The character generator is also connected to logic that tells it which part of each character it is working on. The output of the character generator goes to an output register that converts the characters into actual video
Since line No. 1 is supposed to be all blanks, the character generator is told this and we get all blanks, except possibly for a brief cursor winking bar.
On the second scan line, we again clock the line register 32 times, letting it go once around. The main memory just waits. This time, the character generator is told to work on line No. 2 and please put down the top row of dots on each character. For instance, if a "T" comes up, we get five "1's" in a row. An "S" would be 01110 and so on. As the TV scans across, each top row of dots for each following character is put down.
On the next pass, we again clock the line register 32 times. This time, the second row of dots gets output, with a "T" being a 00100 and an "S" being 10001, and so on. Lines No. 4, 5, 6, 7, and 8 are handled the same way, with the character generator working on the line it is told to and the line register going once around for each line. By the end of the eighth line we have put down all the dots we need for a line of 32 complete dot matrix characters. The circuitry is blanked for the next four scan lines, providing us with a space between character lines.
On line No. 13 (a new line "1"), our main character memory is once again clocked 32 times and the line register is simultaneously clocked. This fills up the line register with a new set of 32 characters. The same operation repeats for each of the sixteen rows of characters that we want to put down.
Notice that the timing runs in bursts and is not continuous. Thus, the line register runs for 32 counts and waits 16 for retrace and so on. The memory does the same thing, but only on every twelfth line during the active scan. Carefully established internal timing delays take care of settling times between memory, line register, character generator, and the final video generating output register. The output register converts the five parallel outputs of the character generator into seal, high speed video.
So far, we've assumed that we were using the page A memory with the page A character generator. Thanks to the memory bus (bl through b6) we can connect anything we like to the character generator, including the page A memory, the page B memory, or anything else we want to hang on these lines.
To run page B, we simply disable the page A memory and enable
the page B memory's output. The handy thing about bus organization
is that no complex switching is involved. Whatever is enabled
gets connected to the character generator; other things tacked
on just sit there. The only restriction is that we have to enable
only one character source at a time. We can also use the same
memory bus optionally to output characters to a computer, a cassette
recorder, or a phone line.
This way, with suitable add ons we have a choice. We can send
one character at a time directly from the keyboard, or we can
send an entire page at a time from the memory. The latter is faster
and more complex but has the advantages that you can fix all the
mistakes first and don't tie up nearly as much outside equipment
TABLE I
COMPLETE SPECIFICATIONS TV TYPEWRITER
STORAGE: | 1024 Characters arranged as 2 pages of 16 lines of 32 characters each. |
OUTPUTS: | RF Output tuneable from channel 2 through 5; clips directly to the antenna terminals of one or more unmodified television sets. Optional positivewhite video output. |
INPUTS: | Parallel, TTL compatible, ASCII character code (Table II) is in­put with positive logic on six lines; a seventh keypressed line is suddenly brought to ground to input character, Internal de-bouncing. The full 8bit ASCII code may also be used as an input. If done, any CTRL input will be interpreted as a combined CARRIAGE RETURN and LINE FEED, CTRL output available for code extension. |
FORMAT: | Begins in upper left HOME position and proceeds as in normal typing. Carriage return and linefeed automatic at end of line. At bottom of screen, jumps to upper left HOME position and rewrites over old text. |
EDITING: | Winking cursor indicates next character position. Cursor may be blanked and may be independently moved in any direction with or without changing text. One or more letters may be easily changed at any time. |
TIME BASE: | Internal, crystal controlled TTL divider. Basic video clocking rate = 4.562 MHz. 15,840 kHz noninterlaced horizontal scan rate; 60Hz vertical scan rate. Easily converted to full interlace for Video Recorder titling applications. |
MEMORY: | 512 word by 6 bit MOS dynamic storage, bus oriented for easy page conversion, optional memory output, and optional extension to calculator, computer, and other functions. |
CONTROLS: |
Internal: RF frequency (trimmer capacitor) EXTERNAL: ONOFF |
CONSTRUCTION: | Modular motherdaughter boards. Mother board contains power supply, RF modulator, and control switches. Timing board, cursor board and one or two memory boards snap on as a stack. Addons such as calculator and MODEM FSK unit snap onto same stack; not included in basic unit. 33 integrated circuits, of which 8 are MOS LSI. |
SIZE: | 7"x8'/z"x3",not including keyboard or case. |