the ABCO-1 is a hardware implementation of the OISC abcout.
each abcout
instruction takes the form A, B, C
and adds memory address B
to 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.
-
hardware/ - coming soon.
you can support the development of this project and others via Patreon: