Human-Observable Computer Logic (HOCL) is a class of computer logic designed to be viewable by human beings. It makes all logic circuitry visible to the naked eye, allowing a human observer to know what is happening without the need for tools such as an oscilloscope or logic analyzer. Because the primary purpose of a computer is to be understood, it is the intent of HOCL to create more understandable computer systems.
HOCL may be subdivided into "soft" HOCL and "hard" HOCL. Hard HOCL excludes the use of integrated circuits (ICs), since ICs are closed systems which are not human-observable. However, it is understood that designing an entire computer system without the use of any ICs may not always be practical, and so soft HOCL permits the use of ICs, placing restrictions only on how those ICs are interconnected.
The basic requirements of HOCL are as follows:
1. All digital logic signals require LEDs.
2. All digital logic signals must have a maximum speed of 30 hertz,
unless there is some special reason why this is not possible.
3. All signals which are run on a periodic clock must have a control
knob to adjust their speed, as well as a switch to pause them.
4. All digital inputs must have a 3-position toggle switch, with the
positions having the following effect: 1 = no effect (leave input in its
natural state), 2 = force low (logical 0), 3 = force high (logical 1).
These principles are explained in further detail below.
The human eye cannot tell, by looking at a wire or a trace on a circuit board, what the voltage on that wire is; this can only be done with a voltmeter. However, checking dozens, hundreds, or thousands of circuit points with a voltmeter constantly is not practical when one is trying to observe a computer system in action. HOCL incorporates LEDs on each circuit net so that an observer can quickly see whether that circuit point is logical 1 or logical 0. Assuming active-high logic, the LED will be powered on when the circuit is in a logical 1 state, and powered off when the circuit is in a logical 0 state. Any color and package type of LED may be used, whether through-hole or surface-mount. However, the LED must obviously emit visible light (i.e. infrared LEDs are not permissible).
When viewing a video, 30 frames per second is the general standard for the point where the video's motion becomes so smooth that individual frame transitions are not perceptible to the human eye. Since the purpose of HOCL is to be perceived by the human eye, 30 hertz has been chosen as an upper limit beyond which logic becomes non-observable. In practice, most HOCL will actually need to operate at a significantly lower speed than this, since even if individual transitions can be perceived, the human eye usually needs a considerable period of time to analyze the status of each control line in a computer. The only reason this principle may be violated is if there is some special technical reason why the system will fail at speeds below 30 hertz. For example, audio circuits must oscillate at speeds anywhere from 20 hertz to 20,000 hertz (the normal range of human hearing); if the audio frequency cannot exceed 30 hertz, most music and sound effects become impossible to play. Audio outputs may therefore exceed the 30 hertz speed limit. Similarly, a CRT screen must be redrawn multiple times a second or it rapidly loses its picture, so circuitry used to drive a CRT may (indeed, must) considerably exceed the 30 hertz speed limit.
At different points in time, it may become desirable to increase or decrease the speed of various oscillators inside the computer. A human operator must be able to adjust the speeds of these oscillators using control knobs. Dial-type knobs are preferred over slider-type controls, although both are permissible. Similarly, the operator may wish to pause an oscillator altogether; a switch of some kind must be provided to switch any oscillator on or off. There is some debate whether this principle should be followed in all cases, since some circuits may exhibit unexpected behavior if manually tweaked to unusual speeds or paused altogether. For example, real-time clocks (RTCs) must maintain constant oscillation or they will rapidly lose timing accuracy; some opine that RTC oscillators should therefore be exempt from the requirements of HOCL. However, an operator may have a desire to observe the effects of pausing the RTC, and the purpose of a computer is to do the things requested by its operator. While halting the RTC may well crash the system or do other strange things, it is the operator's fault if this happens; HOCL is not intended to protect hapless computer operators from themselves, but rather to provide maximum flexibility, and so the ability to control all signals is a requirement.
Besides allowing a human observer to passively observe the activity of the computer, HOCL also intends to allow the human observer to observe the effects of actively making changes to the system. To this end, every digital input in the system must allow the operator to force a bit high or low. Each input needs a 3-position switch. In the basic default position, the switch connects the input to whatever circuity it is normally attached to, allowing it to operate without operator intervention. The other 2 positions of the switch detach the input from the circuit and allow the operator to force the input high or low.