Consider a shopping list of 50 items that you make up before going to the shopping mall. Ten items are filled at the first store, and you prepare to depart. The store manager sez, “Friend, give me half of the items left on the list and I’ll send out to get them while you’re finding the other items”. If we do that we are “multitasking” the shopping list.
Normally, the TS-2068 operates in “one store at a time”. The shelves in the store may contain a disk drive, a monitor, a printer, a modem; and the CPU of the TS-2068 uses one of the items at a time. The other items are just sitting there waiting. Really, it would be convenient and time saving to be able to use the printer while focusing upon another job to be accomplished. Or, we could perhaps be communicating with Compu Serve while printing a document. All we need to do in order to SHARE or use other periphreal devices is to have another CPU in operation, and a “messenger” to send a flag signal to the other CPU to get started doing something. The “Slave” CPU could be one of our TS-1000 computers that are collecting dust, or available at a hock shop for $9.95.
The Slave TS-1000 could be programmed to do as much and as many tasks as our trusty TS-2068 normally does. But, it would wait until a messenger told it to do something.
The “Messenger” would be a small plug-on circuit board, or an interface. Then anytime we pulled up a menu and punched “S for Slave”, the TS-1000 would wake up and return a question, “Whata you want done, Boss?”, and would present a menu of things that it is programmed to do. Once we put it to work, we continue doing things with the Master TS-2068.
In a multitasking system there is usually an interface that acts as the messenger between the two CPU’s. This interface is called a “Temporary Master Access Control Circuit” (TMAC). The TMAC controls INPUT and OUTPUT devices such as printers, modems, etc, and which CPU has control. The TMAC therefore prevents more than one CPU from accessing the same device at the same time.
There are several ways of avoiding this type of system clash. Two of the more common methods are to use a INTERRUPT DRIVEN System (IDS), or to use TEMPORARY MASTER ACCESS (TMA).
In a IDS system, an INTERRUPT is initiated by the Slave processor to the Master Processor when it requests the use of a system resource. The slave processor is programmed within its own ROM or RAM to do functions operating under self control. When the Slave CPU needs a periphreal, it interrups the Master CPU to tell it to disconnect from that periphreal. Depending upon the PRIORITY, the Master CPU may disconnect or it may send a WAIT signal back. Eventually, when the Slave is given control, it uses the periphreal, BUT is still subject to being INTERRUTED by the main CPU for more important tasks. Eventually, when the Slave CPU is finished with its task, it cancels its request for control of the periphreal. In the meantime, the Master CPU continues other tasks that are not concerned with the use of the periphreal that is being used by the Slave processor.
The difference in a TMA system is that the TMAC (interface) is the resources manager instead of the Host CPU “once the host CPU has released control via priority evaluation”.
All of the above and more are discussed in detail in a book “Interfacing to S-100/IEEE 696 Microcomputers” by Sol Libes and Mark Garatz. Anyone intending to interface a TS-1000 to the TS-2068 for Slave operation should obtain this book.
Developing Periphreals for IN OUT Job Control
Have you seen ads offering simple “Z80 Development Boards” for around $150? These boards are “less than the equilivant” of a TS-1000 circuit board, and are used for designers to access the Z80 CPU for dedicated tasks. Many of us have from one to a dozen TS-1000 computers or circuit boards that can be put to use as “Slave Processors”. Larry Kenny is doing it to control a milling machine. The principles are discussed broadly in the article “Slave Processing”, and is applicable to any HOST Computer.