Simple as Possible Computer You can program the ROM to do simple operations like addition and subtraction. To run the program, set the clear input to ground. The ROM currently performs 5+11-6. Instruction OP-Code
LDA - 0x
ADD - 1x
Subtract - 2x
Output - ee
Halt - ff
Created:
Jan 23, 2018
Updated:
Apr 19, 2021
Add members
Enter Email IDs separated by commas, spaces or enter. Users need to be registered already on the platform. Note that collaboration is not real time as of now. Every save overwites the previous data.
Delete
Are you sure you want to delete this project?
Delete
Are you sure you want to remove this collaborator?
My best guess at the nomenclature for C39-43 has to do with the encoding of instructions each segment performs. To back this statement up some, take a look at CS-SAP. In it, each sub-circuit is used to re-encode the decoded instructions that are fed from the iDecoder (instruction decoder), and the control signals from T-Clock. As to the exact instruction pattern that this nomenclature follows, I haven't the foggiest.
@glitchkiller872 it's a mnemonic for "load register A", or load a word into the accumulator register. The accumulator is the register where the magic happens, where you get operands from memory, add them, subtract them, or perform bitwise operators on them, then store from to memory if you have RAM to do so. This computer design doesn't have any RAM to store its data to, so sadly it doesn't have those instructions.
Also as a sidenote, LDA isn't necessarily a mnemonic used in many CPU architectures, as the register files are much larger, typically 32-64 registers in total in most computers. Because of this, we can't use LDA in the Assembly we write (there is a specific name for the accumulator register, but we won't talk about that ), so...... we use the LDx mnemonic, where x can be a register id in the file. Most cases, this can be subdivided if the registers are 32 bits wide, so we can have Ax, Bx, etc for 8 bit segments of these larger registers. A more comprehensive list of register names in x86 architecture can be found here: https://en.wikibooks.org/wiki/X86_Assembly/X86_Architecture.
Posted on Apr 27 2021 at 01:34PM UTC.
Last modified by SDC on Apr 27 2021 at 01:37PM UTC.
Comment deleted by abc.
Very cool. Thanks! I am working on modelling a rotating drum sequencer Like those that preceded the IBM 650. This is a great reference.
this is righteous
This is cool ,but why does the program counter count 0 8 1 9 2 A... instead of 0,1,2,3,4...
@Aiex2 it seems like it's simply splitting the ROM into two portions. The top two rows of hex entries are the instructions,
while the bottom two rows are the numbers. This way, it's better organized. It would be pretty hard to wrap your head
around instructions if they were sequential.
How were the C39, C40, C41 and C43 names chosen? What logic is there behind them?
David Stevens
http://joshcorbin.com/sap-1-complete/ This sap circuit was taken from the Logisim implementation of the same.
Comment deleted by herty10.
Maybe @DavidStevens Those are models of stuff and those ones worked.
Hi, I'm also developing a simple computer but I don't understand most of the stuff you put there.
My best guess at the nomenclature for C39-43 has to do with the encoding of instructions each segment performs. To back this statement up some, take a look at CS-SAP. In it, each sub-circuit is used to re-encode the decoded instructions that are fed from the iDecoder (instruction decoder), and the control signals from T-Clock. As to the exact instruction pattern that this nomenclature follows, I haven't the foggiest.
How did you even manage to program the ROM? ROM cannot be modified, are they?
@BeepBeepImASheep237BeepBeepImASheep237 not sure.
but this project is good btw
@BeepBeepImASheep237BeepBeepImASheep237 got it. click a square on the rom and use the number keys to replace the number.
What is "LDA" (I don't know anything about this stuff....) someone pls, explain?
@glitchkiller872 it's a mnemonic for "load register A", or load a word into the accumulator register. The accumulator is the register where the magic happens, where you get operands from memory, add them, subtract them, or perform bitwise operators on them, then store from to memory if you have RAM to do so. This computer design doesn't have any RAM to store its data to, so sadly it doesn't have those instructions.
Also as a sidenote, LDA isn't necessarily a mnemonic used in many CPU architectures, as the register files are much larger, typically 32-64 registers in total in most computers. Because of this, we can't use LDA in the Assembly we write (there is a specific name for the accumulator register, but we won't talk about that ), so...... we use the LDx mnemonic, where x can be a register id in the file. Most cases, this can be subdivided if the registers are 32 bits wide, so we can have Ax, Bx, etc for 8 bit segments of these larger registers. A more comprehensive list of register names in x86 architecture can be found here: https://en.wikibooks.org/wiki/X86_Assembly/X86_Architecture.
literally has 11037 views
Comment deleted by Aravind.