The JUMP Code — The Key to Dynamic Computing
Ebrahim Hussain
University Transition Program
Floor Location : S 128 R

The documentation of so-called "high-level" programming is abundant. The web is littered with forums for every syntax, function, and error imaginable; programming has been appealing to young minds because the documentation and resources enable it to be picked up at a moment's notice. "Low-level" hardware computing is the opposite. It's difficult to begin with — it requires wires, cutters, soldering irons, and once all the necessary tools are acquired, there need to be actual chips to wire together. This difficult entry has decreased the amount of students entering the field, and as such documentation is scarce, creating a loop as there are little to enter the field, and so little motivation to create introductory topics to the field, which continues to decrease the amount of those looking to become a part of computer engineering. This independent research study has been focused on decompiling the 74XX datasheets and applying them in scaled-down yet modern and applicable demonstration of a computer's Central Processing Unit (CPU), with a focus of simplifying and connecting the two fields of computer science (CPSC/software) and computer engineering (CPEN/hardware). So far, an 8-bit CPU with 16 bytes of RAM in the SAP-1 configuration first outlined by Dr. Paul Malvino in his 1977 book Digital Computer Electronics has been proven to functionally execute a variable retrieval, as in Python would be written as "x = 1, print(x)". Being able to fetch instructions from the RAM, it served as a proof of concept that executing mathematical operations and writing to a LCD display would use the near-same fundamental binary code. This secondary research component looks at how a CPU is able to execute dynamic if, for, and while functions through the JUMP statement. The raw SAP-1 architecture is incapable of executing this as it is unable to send signals to the instruction register to switch the CPU's execution path, and as a result the architecture can only execute instructions from 0000 to 1111 either once or in a loop. The modular design of the research-built CPU was modified to add a component called a splitter. Both the for and while loop contain an if-statement at a fundamental level, and the if-statement functionality was added by first taking the two values to be compared and feeding them into an ALU (Arithmetic Logic Unit). The ALU would output one of three binary possibilities (001, 010, or 100) based on arithmetic comparisons ( < , = , > ). This three-bit code is sent into a splitter which assembles a JUMP function and sends it to the instruction register, which jumps to the intended segment script based on the outcome of the if-comparison. Testing has shown that the JUMP code takes x-3 extra cycles to continue, x being the value of cycles available for each system disk function, while the if-statement is a linked, two-stage function taking 2·x cycles to complete; calculating the seconds taken for (x-3) and (2x) can be done by dividing by the number of cycles per second.