"Choices" refers to considerations in your application.
1. Assume that all software has been loaded into each machine via floppy or other means and is ready to run.
2. Tell each node to "RUN", then "RUN" the console. After the console runs the diagnostics, press any key to run the programs in all machines.
3. All machines are now running the program you assigned it. There are three choices, and not all nodes need to use the same method, or combination of methods.
a. The node performs its task without checking the communication line. This is the safest and fastest for the node, but there is time lost if other nodes are waiting for data. Depending on your application, this may be the very fastest method overall. It also might be the best for a slow machine that has a lighter workload. The main drawback is that ALL nodes must finish before ring communication can resume.
b. Check for a new byte when it is convenient, then relaying anything new to the next node.
c. Use "TIME" somewhere in the routine to pause long enough to check for new input. Say, every 1/10 second.
4. Machines will finish at different times. There are many choices:
a. When a machine has finished, it can check to see if communication is clear, then output, signaling that it is done. This could be hazardous if two machines try to talk at once
b. Wait for its ID number to be called by the console unit, but while waiting re-transmitting bytes that come in to the next node. (Safest)
c. In a more advanced scheme, it might go on to other tasks, waiting until later to transmit its data.
d. Write the data to a floppy for later retrieval if there is a lot data. Graphics manipulation might be one example of this.
e. Further calculations could be made using the data generated by the first run. A command could even be issued to make a different machine the console.
Example: Node x is in control until event unless event2.