MCA v1.1

From Esolang
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).