MCA v1.1
Jump to navigation
Jump to search
MCA v1.1 is an assembly language for a mechanical computer invented by User:Almostahexagon. It is the new version of mecomp, with many changes to the instruction set and computer in general. This page shows all the new things in MCA/Mecomp v1.1, so see MCA (Old) to get the background information.
- This is still a work in progress. It may be changed in the future.
Changes
Mecomp v1.1 is still using the same Harvard architecture.
- Instructions are now 4-bit
- Previously 3
- Added an accumulator
- It can hold an 8-bit number
- Along with this, math operations have changed (see below)
- Changed math operations
- Operations now do memory + accumulator, instead of M0 + M1.
- Changed how operation results are stored
- Result is stored in the destination address if its value is not zero, accumulator otherwise.
- RAM style has changed
- Before, the RAM used a bunch of mechanical bits. This has been changed, and now the RAM is a circular disc with a head, kind of like an HDD. The head has 8 pins that can flip bits.
- Changed amount of bytes in the RAM
- 256 bytes was way too much to build, so it has been decreased to 32 bytes.
New MCA instruction set
Memory and input
Opcode | Name | Full name | Parameter A | Parameter B | Function |
---|---|---|---|---|---|
0000
|
UIP
|
User input | 1 byte from user (00-FF) | M(address) | User loads a value to M(address). |
0001
|
LOD
|
Load | #(value) | M(address) | Loads [value] to M(address). |
0010
|
CPY
|
Copy | M(adrs0) | M(adrs1) | Copies the value of M(adrs0) to M(adrs1). |