TENET (Timex Educational Network)

The TENET (Timex Educational NETwork) is a Local Area Network (LAN) developed by Timex of Portugal with the primary use to be in schools and it consisted of a network similar to the ZX Net provided by the Sinclair ZX Interface 1 but more advanced. Programmers could develop programs or games to take advantage of the network.

The network consists of a Master station with a Timex FDD 3000, a Timex 2080 printer and to a maximum of 24 client stations. The Master station can load programs/data, reset, retrieve the screen and send messages to any client station. Client stations can send messages to any station and be given permission to access files on the FDD 3000 and to print data on the printer.

The machine shown (it’s currently located in the LOAD “ZX” Museum) here is one of the first units to be used to demonstrate how the network worked. It is manly a TC2048 with TENET first version board below it. It consists on discrete TTL logic, a Intel 8031 microcontroller and the FDD (TI) interface. TENET Z80 ROM uses 8K (TI used 4K ROM that was mirrored on top of it, so now it uses the full 8K address space for TENET ROM) and on top of that, is the 2K RAM as it is on TI. 8031/8051 ROM is less than 1K and takes care of network communitations.
A more refined version with a gate array made by Thompson was made in a much smaller interface form instead of a daughter board inside the computer to allow the ZX Spectrum to access TENET. Later the TENET system was incorporated into the Timex Computer 3256.

  • Network topology of 2 wire bus
  • Up to 25 stations (1 master + 24 clients)
  • Maximum network length 100 meters
  • Data transmission is asynchronous with an 11-bit frame at 187.500 bits/second
  • Network protocol packed switched master-slave with error detection and packet retransmission
  • Interface hardware with a single chip microcomputer (8031/8051) with 2 port TAM for communication with the host computer

BASIC extensions available at the Master station:

  • DIM &x – defines the station to receive program/data (0 to broadcast to all stations)
  • CLEAR &x – resets station x (0 resets all stations)
  • RANDOMISE & USR xxxxx – force a machine code jump to xxxxx at the station defined by DIM &
  • LOAD &”file” – loads (file) a basic program or machine code to the station defined by DIM &*
  • LIST &x;”string” – sends a message (string) to station x (0 to broadcast to all stations)
  • SCREEN$ &x – retrieves screen from station x
  • MOVE &x – receives a command from station x
  • VERIFY &x – check station x status**

Basic extensions available at the Client stations:

  • OPEN# &x;”file”;m – open remote file (file) on stream x (same parameters as TOS)
  • CLOSE# &x – close remote file on stream x (same as TOS)
  • PRINT &#x – write to remote file on stream x (same as TOS)
  • INPUT &#x – read from remote file on stream x (same as TOS)
  • SAVE &”file” – saves (file) a program or machine code on the master’s disk drive (same as TOS)
  • LOAD &”file” – loads (file) a program or machine code from the master’s disk drive (same as TOS)*
  • MERGE &”file” – combines a BASIC program from the master’s disk drive (same as TOS)
  • LIST &x;”string” – sends a message (string) to station x (0 to master station)

* At current version, the value followed by CODE is ignored. If you try to LOAD &”block” CODE 40000, a block saved from address 32000, it will be always loaded at 32000.
** If station does not exist, error J Invalid I/O device is generated. TOS error traping mechanism can be used to avoid program stopping. Status can be checked with PEEK at address 23728: 0 if OK, else failed.

Other functions are available from machine code for general purposes, memory-to-memory transfers and message passing.