Back to TOC        Back to Basic Computer Simulation        

                Chapter 14 Instruction and Specification Appendix 
Back to Chapter 14 (Basic Computer Simulation) 

Basic Computer Specifications
Recommend that you Print this page or Open it in New Tap.

Instruction Set:

Operation Code
Dec(Hex)

01(01)    CLRRA (clear register A)
02(02)   CLRRB  (clear register B)
03 (03)   CLRACC  (clear Accumulator)
04 (04)   LDRA (immediate, load register A)
05 (05)   LDRA (direct, load register A)
06 (06)   LDRB (immediate, load register B)
07 (07)   LDRB (direct, load register B)
08 (08)   DECRA (decrement registry A)
09 (09)   DECRB  (decrement registry B)
10 (0A)  DECACC (decrement accumulator)
11 (0B)  INCRA (increment registry A)
12 (0C)  INCRB (increment registry B)
13 (0D)  INCRACC (increment accumulator)
14 (0E)  STRA (direct, store Register A)
15 (0F)  STRB (direct, store Register B)
16 (10)  STACC (direct, store accumulator)
17 (11)  ADD (add register B to register A and store results in accumulator) 
18 (12)  JMP () ( immediate, jump unconditionally (load PC) immediate Mode). 
19  (13) JMP(>) (immediate, JMP if comparator greater than output true.)
20  (14) JMP(=) (JMP if comparator equal output true)
21  (15) JMP(<) (JMP if comparator less than output is true)
    
 Notes:

1. Immediate Mode: Operation is performed on address immediately following operation code.   

2. Direct Mode: Address immediately following operation code contains address of  operand.

3. Implied Mode: Operand is implied by operation code. Example: Code 01, CLRRA operates on register RA.

4. Only three arithmetic functions are performed by this computer. 
    a. Count (up or down)
    b. Addition
    c. Comparison

 5. This programmers model of computer only shows registers, Buses, an Accumulator to show result of addition, and bit indicators (< =  >) to show results of comparison. 

6.  Negative numbers or 2's compliment arithmetic is not supported.

7.  Burn Proms : Simulates the burning of the program you wrote into a uvProm. Actually it causes the data in the text boxes to be written into an array (JAVA script).  

8.  Load RAM : Simulates loading data into 16 byte Random Access Memory. Naturally you cannot type data directly into memory. But the I/O for writing data into memory is beyond the scope of this introduction to computers. 

9.  Single Step: Causes program to advance through one completes operation. At end of cycle program counter will point to next instruction. All remaining register contents are whatever was in register at end of the cycle. Data Bus and Address Bus reflect last valid data and address of previous instruction cycle.

10. I express all numbers as decimal.  The numbers are really binary in simulation metaphor and in JAVA program.  The numbers could also be represented as octal or hexadecimal. The numbers cannot be represented as Binary Coded Decimal (BCD).

Metaphor for a Prom Programmer that displays binary numbers as a decimal numbers.

 Back in 1970 a technician may have had to program this prom burner in binary using eight toggle switches for data.  Grouping the eight toggle switches in two groups of four would enable technician to input a two Hexadecimal inputs using four fingers.  A thumbwheel switch with 16 positions " 0,1,2 ....A,B,C,D,F" could eliminate the need of training fingers to quickly input HEX numbers.  HEX data could be displayed using LED's.  That is the way it was done back then. 

 Now let us consider a modern system that allows you to program proms using the same machine while eliminating need of most of those switches and LED's. This can be done by interfacing PROM programmer with a computer.  Now the GUI that you type and View decimal numbers with is literally your user interface.  My JavaScript program literally converts the decimal numbers you type to two digit HEX numbers when "Burn Prom" button is clicked and then burns  these eight bit binary numbers into virtual Basic Computer prom's.  Data is loaded into virtual RAM in a similar fashion.  

This Metaphor does not only justify my use of decimal numbers for the benefit those not familiar with binary number systems (HEX, OCT, BCD etc.).  It also makes it clear that you only type into GUI and virtual program is not affected until "Burn Prom" or "Load Ram" buttons are clicked.