**What is the Simple As Possible (SAP)-1 computer?** The SAP-1 computer is *a bus-organized computer that uses of the von Neumann architecture.* > **What does the Simple As Possible (SAP)-1 computer make use of?** > The SAP-1 computer makes use of *an 8-bit central bus and ten main components.* > > **What is a diagram of the Simple As Possible (SAP)-1 computer?** > A diagram of the SAP-1 computer is: > ![SAP-1 Computer Diagram](https://github.com/KarenOk/SAP-1-Computer/raw/main/images/sap-1-architecture.png) # SAP-1 Components **What are the ten components of the Simple As Possible (SAP)-1 computer?** The ten components of the SAP-1 computer are: 1. Program Counter. 2. Input and Memory Address Register (MAR). 3. Random-Access Memory (RAM). 4. Instruction Register. 5. Controller-Sequencer. 6. Accumulator. 7. Adder-Subtractor. 8. B-Register. 9. Output Register. 10. Binary Display. **What does the Program Counter (PC) do?** The PC *stores and sends out the memory address of the next instruction to be fetched and executed.* **What does the Memory Address Register (MAR) do?** The MAR *stores the 4-bit address of data or an instruction which is placed in memory.* > **Where does the Memory Address Register (MAR) get the 4-bit address of data or an instruction when the Simple As Possible (SAP)-1 computer is running?** > When the SAP-1 computer is running, the MAR gets the 4-bit address of data or an instruction *from the Program Counter through the W-bus.* > > **Where is the 4-bit address stored in the Memory Address Register (MAR) sent?** > The 4-bit address stored in the MAR is sent *to the RAM.* **How many memory locations does the Random Access Memory (RAM) of the Simple As Possible (SAP)-1 computer have?** The RAM of the SAP-1 computer has *16 memory locations.* > **How many bytes is each memory location in the Random Access Memory (RAM) of the Simple As Possible (SAP)-1 computer have?** > Each memory location in the RAM of the SAP-1 computer has *8 bytes.* > > ... **What does the Instruction Register of the Simple As Possible (SAP)-1 computer do?** The Instruction Register of the SAP-1 computer *receives and stores the instruction placed on the bus from the RAM.* > **What happens to the content of the Instruction Register?** > The content of the Instruction Register *splits into two nibbles called the upper and lower nibble.* > > **What is the upper nibble and where does it go?** > > The upper nibble is *a two-state output that goes into the Controller-Sequencer.* > > > > **What is the lower nibble and where does it go?** > > The lower nibble is *a three-state output that is read from the bus when needed.* **What does the Controller-Sequencer do in the Simple As Possible (SAP)-1 computer?** In the SAP-1 computer, the Controller-Sequencer *sends out signals that control the computer and makes sure things happen only when they're supposed to.* > **What is the 12-bit output signal of the Controller-Sequencer called?** > The 12-bit output signal of the Controller-Sequencer is called *the control word.* > >> **What does the control word determine?** >> The control word determines *how the registers will react to the next positive clock edge.* >> > > **What is the format of the control word?** > > The format of the control word is *`CON = Cp Ep ~Lm ~CE ~Li ~Ei ~La Eu Su Eu ~Lb ~Lo`.* **What is the Accumulator in the Simple As Possible (SAP)-1 computer?** In the SAP-1 computer, the Accumulator is *an 8-bit buffer register that stores intermediate answers during a computer run.* > **What are the two outputs of the Accumulator in the Simple As Possible (SAP)-1 computer?** > The two outputs of the Accumulator in the SAP-1 computer are: > 1. The two-state output. > 2. The three-state output. > > > **Where does the two-state output of the Accumulator go?** > > The two-state output of the Accumulator goes *to the Adder-Subtractor.* > > > > **Where does the three-state output of the Accumulator go?** > > The three-state output of the Accumulator goes *to the bus.* **What does the Adder-Subtractor do in the Simple As Possible (SAP)-1 computer?** In the SAP-1 computer, the Adder-Subtractor *asynchronously adds to or subtracts a value from the Accumulator depending on the value of `Su`.* > **What does the Adder-Subtractor make use of in order to perform addition or subtraction?** > In order to perform addition or subtraction, the Adder-Subtractor makes use of *Two's Complement.* > > **What does the Adder-Subtractor do when `Su` is low?** > When `Su` is low, the Adder-Subtractor *adds the values in the Accumulator and the B-Register.* > > **What does the Adder-Subtractor do when `Su` is high?** > When `Su` is high, the Adder-Subtractor *subtracts the values in the Accumulator and the B-Register.* **What does the B-Register in the Simple As Possible (SAP)-1 computer do?** The B-Register in the SAP-1 computer *supplies the number to be added or subtracted from the contents of the Accumulator and the Adder-Subtractor.* > **When does the B-Register retrieve and store data?** > The B-Register retrieves and stores data *when its available at the bus while `Lb` is low at the positive clock edge.* **What does the Output Register of the Simple As Possible (SAP)-1 computer do?** The Output Register of the SAP-1 computer *retrieves and stores the value stored in the Accumulator, typically after an arithmetic operation is performed.* > **Through what is the answer stored in the Accumulator loaded into the Output Register and when?** > The answer stored in the Accumulator is loaded into the Output Register through *the W-bus during the next positive clock edge when `Ea` is high and `Lo` is low.* **What does the Binary Display of the Simple As Possible (SAP)-1 computer do?** The Binary Display of the SAP-1 computer *displays the contents of the Output Register.* # SAP-1 Instruction Set **What is the instruction set of a computer?** The instruction set of a computer is *the basic operations it can perform.* **What is the instruction set of the Simple As Possible (SAP)-1 computer?** The instruction set of the SAP-1 computer is: * Load - Load data from memory to the Accumulator. * Add - Add data from memory to the value in the Accumulator. * Subtract - Subtract data from memory from the value in the Accumulator. * Output - Load data from the Accumulator to the Output Register. * Halt - Stop processing. ...