We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

MCA v1.1

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