the ABCO-1 is a hardware implementation of the OISC abcout.
each abcout
instruction takes the form A, B, C
and adds the value at memory address B
to the value at memory address A
; execution will then branch to memory address C
if the result is greater than 255, or to the next instruction in sequence otherwise. it is assumed that addresses A
and B
both contain an unsigned 8-bit integer.
this is equivalent to the following C-like syntax:
*a += *b; if (*a > 255) { *a %= 256; ip = c; }
instructions are not memory-mapped, and instead instructions and user space are kept in separate blocks of memory.
it is important to keep in mind that abcout and its implementation in the form of the ABCO-1 are different things. i welcome implementations which don't adhere to all of the finer details that this one does.
-
assembler/ - contains an assembler for ABCO-1 ROM files. you'll probably want to start here.
-
simulator/ - contains a software simulation of the ABCO-1.
-
prog/ - contains example programs and useful imports.
-
hardware/ - coming soon.
you can support the development of this project and others via Patreon: