CYBERNAC
Clark's Youthfull Benevolent and Easily Routined Numeric and Alphabetic Computer

When problems occured with the paper tape reader of the LGP-30 a pseudo computer was developed. This was about the same time as IBM came out with their psudo 360 machines. All were simulated or emulated on some other computer or inner machine.

In addition to removing the "paper tape error" excuse for why a student program fail to function, the simulator was designed to stress the three cycles a computer has.

LOAD CYCLE

The reads in one record/card into memory and sets the location register to that location. {once computers had disk memory - the record would be read from disk when you push an Initial Program Load (IPL) button or later it would be an Intial Micro Program Load (IMPL) or later whatever button you use to fire up your operating system.} The record that is read in must contain the instruction(s) to bring in the program.

FETCH CYCLE

The instruction at the memory location who's address is in the location register is brought to the control unit, decoded, and the location counter is incremented.

EXECUTE CYCLE

The instruction in the control unit is executed. If the instruction is a branch and the branch is to be taken, the contents of the location register are placed in the branch back register & the address of the memory address in the branch instruction is place in the location counter.

In the oldend days of computers you could dim the lights in a room and watch the computer move from EXECUTE to FETCH cycle by observing what ligts on the front of the control pannel were flickering. However as speeds moved from mill-second to micro-second to nano-second the light bulbs could not keep up, so this learning experience was dropped.

CYBERNAC simulated a simple computer which was a mix of the LGP-30 and the IBM 650 machines. It was first simulated on an IBM 1620 using a program written in Fortran II. The simulator has since been written in various languages including APL, Ada, BASIC, Pascal, and PROLOG. {Looks like Java may be the next one.}

Computation commands

COMMAND OP-CODE X-ADR Y-ADR ACTION
CLA 20 mem ACC <- mem
ADD 21 mem ACC <- ACC + mem
SUB 22 mem ACC <- ACC - mem
MUL 23 mem ACC <- ACC * mem
DIV 24 mem ACC <- ACC / mem
STO 25 mem mem <- ACC

Input/Output Commands

COMMAND OP-CODE X-ADR Y-ADR ACTION
READ NUMERIC 36 XX YY READ YY CARDS STARTING IN MEMORY LOCATION XX
WRITE NUMERIC 38 XX YY WRITE YY VALUES FROM LOCATION XX
READ ALPHA 37 XX YY READ YY CARDS STARTING IN MEMORY LOCATION XX
WRITE ALPHA 39 XX YY WRITE YY VALUES FROM LOCATION XX
SPACE 34 XX 01 WRITE YY SPACES ON PRINTER
LINE FEED 34 XX 02 WRITE YY LINE FEEDS ON PRINTER

Control Commands

COMMAND OP-CODE X-ADR Y-ADR ACTION
BRANCH 49 XX BRANCH TO MEMORY LOCATION XX
B RANCH NEG 43 XX BRANCH TO XX IF ACCUMULATOR NEGATIVE
BRANCH ZERO 44 XX BRANCH TO XX IF ACCUMULATOR ZERO
NO-OP 41 DO NOTHING
BRANCH BACK 42 LOCATION REG <- BRANCH BACK REG
HALT 48 STOP

CYBERNAC received nation wide publicity in the book "Data Processing for Decision - Making" by Brightman, Luskin, and Tilton, Macmillan 1968 & 1971. Below is the general diagram pertaining to the simulator.