Table of Contents
TYMCOM-X Project
Reviving Tymshare's TYMCOM-X Operating System
Possible hosts
- KL-1090 hardware. TYMCOM-X does not work with RH20+RP06 disk, RH20+TU72 tape, or DTE-0 connected terminals. It also has no concept of an NIA20 ethernet. it relies on DMA from its 'Base' to talk to the Tymnet (X.25) network.
- KI-1070 hardware. Might work if it has a Systems Concepts SA10 channel controller, with associated IBM compatible disks (including 3330-II, 3350, 3352) and IBM tape drives.
- KS-2020 hardware. Ok, TYMCOM-X does work with RH11+RP06/RM03 disk, RH11+TU45 tape, but DZ11 terminals were only partially supported.
- KLH10 emulator, KL-1095 or KL-2065 with extended addressing. Same problems as KL-1090, plus Model-B backplane issues.
- KLH10 emulator, KS-2020 with extended addressing (single section). Looked promising; has boot problems.
- Richard Cornwell's KI emulator. Should be able to boot, but TYMCOM-X expects an SA10 with IBM disks and tape drives.
- SIMH emulator, KS-2020 with disk and tape. This is the current host; see SIMH Setup page.
Current plans
- Get system to boot. This is being done by compiling the TYMCOM-X monitor under emulated TOPS-10 and copying the result to
SYS:MON14.EXE[1,4]
. ThenDSKB.dsk
andDSKC.dsk
are copied in whole toTYMB0.dsk
andTYMB1.dsk
. The TOPS-10BOOT v3
is used to loadMON14
and start at location 141 (DDT). This part works. - Get through
REFRESH
dialog. The disks do not have valid TYMCOM-X BAT pages or SAT pages, requiring them to be initialized, DSKB defined, and refreshed. This part works. - Login in Console mode. Success. See TYMCOM-X Startup page.
- Restore from a TITO ALL-FILES tape. An emulated tape with TITO.SAV and an ALL-FILES save need to be placed on the emulator. See the Status page.
- Login to emulated DZ11. Up to 8 telnet users.
- Login to emulated Base. More than 8 users via telnet.
Not in consideration
- Emulate an LSI-11 with DR11 parallel interface.
- Emulate Node Code on a microTymSat.
- Emulate multiple hosts talking over aux circuits through the Tymnet network.
General Notes
Hardware
TYMCOM-X ran on four types of hardware:
- Standard KI-10. Core memory was replaced by Ampex solid-state memory and the RH10 replaced by an Systems Concepts SA10 channel controller. The SA10 allowed the use of second hand IBM 3330-II disk drives and IBM tape drives. No terminals other than the CTY.
- The original KL-10, set up like a KI-10, with external memory and DIA-10 I/O bus. Once the diagnostics were accepted, the DEC memory, RH20 and RP06 would be disconnected and sold off. TYMCOM-X could not run on the Model-B backplane, use internal MOS memory, or RH20 devices. No terminals other than the CTY
- A minor upgrade was to use IBM 3350 disk drives for additional storage.
- A more major upgrade was to treat the IBM 3352 disk drives as two logical 3350 devices, but with coordinated cylinder movement.
- A standard KS2020, with RM03/RP06 disk and TU45 tape. The 2020 also needed a DR-11 parallel interface and a KMC-11 co-processor. DZ11 lines were present, but not used.
- The Foonly F3 had custom hardware for disk and tape, an a parallel intereface for talking to Tymnet.
Connection to the network
TYMCOM-X (the PDP-10 system as a whole) doe not connect to TTYs (other than the Console). Instead, a Tymnet Node (known as a Base) does DMA to/from two circular buffers (IRING and ORING) in the PDP-10's memory. The Base is connected by synchronous serial links to two or more Tyment Nodes using the T201 (Tymnet II) Node Code protocol. The nodes are indirectly connected to the Tymnet Supervisor, which is responsible for creating login circuits (known as Needles when they reach their destination).
The Base-Host protocol is based on the Tymnet Circuit protocol, but designed to be delivered as 32-bit messages over a parallel connection. The KI-10 and KL-10 systems had an EBUS slot (M68000 based) storing data left justified in a 36-bit word, with all ones in the unused low-order 4 bits. The KS-2020 systems had a PDP-11/23 known as a microTymSat using the 16-bit DR-11 parallel interface going into a DR-11 plugged in to the 2020's low-priority UNIBUS. The data from the DR11 is processed by a KMC11 and stored right justified in two 18-bit halfwords. When the KMC11 is used, the KS needs special microcode to implement UUILDB and UUIDPB to process bytes. When the KMC11 is not used, data is left justified just like the KL.
The Base uses a pointer in low memory (IRP620) to write data into the IRING, then update the IRP620 modulo the ring size. The PDP-10 uses its pointer (IRPPDP) to read the IRING whenever the pointers differed. These characters would go into SCNSER's TTY chunks, to be processed at clock level. Output from the PDP-10 would first go into SCNSER's TTY chunks, and from there to the output buffer (ORING). The PDP-10 updates its pointer (ORPPDP) and the Base reads from the ORING whenever its pointer (ORP620) fell behind. Transfers occurred 60 times per second, but each transfer could include many characters from many lines at once.
Cornwell's KI10 emulator now has bare-bones support for the Base interface as used on SUMEX-AIM. See https://github.com/rcornwell/sims/blob/master/PDP10/kx10_tym.c
Host-Base protocol
General format: one byte of code or code+length, one for channel number, two bytes data. A two-word message would include a total of six bytes of data. Code 0 is illegal, the other are:
- 01 Host Open. Includes the max number channel the host accepts.
- 02 Host Shut. No more loggins accepted. Some users (OPER) have shut-override privileges.
- 03 Reset Interface.
- 04 Reset Acknowledge.
- 05 Supervisor Takeover. Message includes date and time for updating host's clock.
- 06 Needle (login from network). Includes origination host number, user name to follow.
- 07 Aux Circuit complete. For outgoing host-to-host connections.
- 10 Backpressure On. XOFF to stop transmitter.
- 11 Backpressure Off. XON to resume incoming transmission.
- 12 Character Gobbler (Control-O) to empty output buffers.
- 13 Circuit Zapper (modem has dropped carrier).
- 14 Enter Deferred Echo (sent after CR, host must do echoing).
- 15 Leave Deferred Echo (Consat will echo input characters).
- 16 Green Ball (used for echo control).
- 17 Red Ball (cancel assumed echo tradeoff).
- 20 Yellow Ball (gets echoed back as an Orange Ball).
- 21 Orange Ball (returned as a result of receiving an Yellow Ball).
- 22 Hang Character.
- 23 Enter Transparency on 2741 terminal.
- 24 Leave Transparency on 2741 terminal.
- 25 Gray Ball / Black Ball.
- 26 Supervisor Request. Used for building Aux Circuits.
- 27 Supervisor Response.
- 30 Character to Supervisor. Used for sending username and host number.
- 31 Test Pattern to Base.
- 32 Test Pattern Response.
- 33 Host Sad (2 words).
- 34 Echo On. After password entered.
- 35 Echo Off. Before entering password.
- 36 Set Terminal Characteristics.
- 37 Terminal Characteristics Probe.
- 40 Terminal Characteristics Response.
- 41 Set Host Number (and number of channels).
- 42 Request Clock, sent to Supervisor.
- 43 Clock Response from Supervisor.
- 44 Initiate Block Output.
- 45 Terminate Block Output (no errors).
- 46 Initiate Block Input.
- 47 Block Input Terminated: out of buffer.
- 50 Block Input Terminated: end of transmission.
- 51 Block Input Terminated: timeout by Base.
- 52 Request Block Input Termination.
Other pages
Overview page, SIMH Setup page, TYMCOM-X Startup page, TITO on disk page, Status page.