BiteSized is an IS for a stack machine. The command pops the amount of inputs and pushes the result back onto the stack.
Here are the ops :
00 - unary NAND ~
01 - Interweave #
10 - Select &
11 - Stack copy/if(a=<b) jump 3 commands forward $
NAND :
pops 1, unary nand, pushes the result
ex 1:
~00100111 = 11111001
ex 2:
~01110101 = 10011111
Interweave :
pops 2, interweave, pushes the result
ex 1:
0000 # 1111 = 01010101
ex 2:
1010 # 0110 = 10011100
Select :
pops 2, select, pushes the result
ex :
01010101
&10011100 <- zeros don't drop the digits
---------
0xx101xx or 0101
Stack copy :
pops 3, stack copy, pushes the result(s)
ex :
stack -> {1, 2, 3, 5, 6, 7}
pop 3, [1(a),2(b),3©] stack -> {5,6,7}
if (a=<b) jump 3 commands forward; else copy C to top of the stack
is 1=<2? No, Copy C to top and push back onto stack
stack -> {3,1,2,3,4,5,6,7}
I got as far as making NAND in it after like 5 minutes
which is this
init stack : A,B,10101010
#~& or 10101010 & ~(A#B)
Here are the ops :
00 - unary NAND ~
01 - Interweave #
10 - Select &
11 - Stack copy/if(a=<b) jump 3 commands forward $
NAND :
pops 1, unary nand, pushes the result
ex 1:
~00100111 = 11111001
ex 2:
~01110101 = 10011111
Interweave :
pops 2, interweave, pushes the result
ex 1:
0000 # 1111 = 01010101
ex 2:
1010 # 0110 = 10011100
Select :
pops 2, select, pushes the result
ex :
01010101
&10011100 <- zeros don't drop the digits
---------
0xx101xx or 0101
Stack copy :
pops 3, stack copy, pushes the result(s)
ex :
stack -> {1, 2, 3, 5, 6, 7}
pop 3, [1(a),2(b),3©] stack -> {5,6,7}
if (a=<b) jump 3 commands forward; else copy C to top of the stack
is 1=<2? No, Copy C to top and push back onto stack
stack -> {3,1,2,3,4,5,6,7}
I got as far as making NAND in it after like 5 minutes
which is this
init stack : A,B,10101010
#~& or 10101010 & ~(A#B)