they specify other sources and destinations. Jumps The 305's instruction set does not include any jumps, instead these are programmed on the control panel: Unconditional jump – the program exit code (P field) specifies a Program exit hub on the control panel, which has a wire plugged into it and, via distributors, to Program entry hubs specifying the first, second and third address digit of the instruction to jump to. Conditional jump – the program exit code (P field) specifies a Program exit hub on the control panel, which has a wire plugged into it and the appropriate Condition selector common hub to be tested, the corresponding two Condition selector output hubs have wires plugged into them and the Program entry hubs specifying the instructions to jump to or the Program advance hub to continue in sequence. Complicated conditions involving many Condition selectors could be wired to execute in a single instruction (e.g., Testing the sign and zero states of multiple accumulators), with one of several Program entry hubs activated. Multi-way jump – the destination track (T2 field) is set to - and the appropriate Character selector hubs on the control panel have wires plugged into them and the Program entry hubs specifying the instructions to jump to or the Program advance hub to continue in sequence. Timing All timing signals for the 305 were derived from a factory recorded clock track on the drum. The clock track contained 816 pulses 12 μs apart with a 208 μs gap for sync. Reading or writing a character took 96 μs. The 305's typical instruction took three revolutions of the drum (30 ms): one (I phase) to fetch the instruction, one (R phase) to read the source operand and copy it to the core buffer, and one (W phase) to write the destination operand from the core buffer. If the P field (Program exit code) was not blank, then two (D phase and P phase) additional revolutions of the drum (20 ms) were added to the execution time to allow relays to be picked. The Improved Processing Speed option could be installed that allowed the three instruction phases (IRW) to immediately follow each other instead of waiting for the next revolution to start; with this option and well optimized code and operand placement a typical instruction could execute in as little as one revolution of the drum (10 ms). Certain instructions though