the showcase got kinda broken during compression, sorry for that
inputs:
prev line - moves to the previous line
next line - moves to the next line
WRITE - writes the specified bits to the current line
EXECUTE- increments thru the lines one by one
bit [1 to 16] - the specified bits to be written
next i'll attach it to some simple CPU
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
progress update!
the console records a number or letter on the bottom displays pushing older records up
it's also full of spaghetti
i also replaced the "counter" with a "navigator" which allows me to choose how many lines i want to go forward by rather than just incrementing and decrementing
there are 64 lines in total and they rollover so moving forward by 63 lines is equivalent to moving backwards by 1, this allows the creation of "while true" loops
conditional loops will also be possible with this when i add math and logic operations into the CPU
here's what the ISA for this looks like at the moment with unimplemented features written in bold text:
10-ww-xxxx-yyyy-zzzz - logical test
writes 1 to xxxx if the logical test is true and writes 0 otherwise
ww:
00 => yyyy != zzzz
11 => yyyy == zzzz
01 => yyyy > zzzz
10 => yyyy >= zzzz
01-ww-xxxx-yyyy-zzzz - math operation
performs a math operation on the numbers from the registries yyyy and zzzz, writes the result to the xxxx registry
ww:
00 => yyyy - zzzz
11 => yyyy + zzzz
01 => yyyy * zzzz
10 => yyyy / zzzz
0010-xxxx-yyyy-zzzz - modulo (division remainder)
writes the result from yyyy % zzzz to the xxxx registry
0000-xxxx-yyyyyyyy - write to registry
write the bits yyyyyyyy to the xxxx registry
11000001-x-yyyyYY - jump back
if x is 0 it jumps by yyyyyy lines, if x is 1 it jumps by the number of lines in the yyyy registry (last two YY is ignored)
jumps by the number of lines in the yyyy registry
keep in mind that there are 64 lines in total and they rollover so jumping 64 lines won't do anything and jumping 63 lines will jump forward by one
11000011-x-yyyy - print to console
prints the number in the yyyy registry if x is 0, displays its letter representation if x is 1
11000000-xxxx - input
writes the input pins into the xxxx registry
the program running in the video is:
0000 0000 01000101 //save 69 into registry 0
0000 0001 00010111 //save 23 into registry 1
11000011 0 0000 //print the contents of registry 0 as a number
11000011 1 0001 //print the contents of registry 1 as a letter
11000001 0 000010 //jump back by 2 lines
if anyone wants a screenshot of any of the chips i'm using here, feel free to ask.
lastly i have a question, which of the below looks more like a W?