111000 ----- dump heap (debug.pvvs)
111001 ----- dump stack (debug.pvvs)
1xxxxxx - reserved for less common entry points
- 1000000 ----- <empty>
- 1000001 ----- <empty>
+ 1000000 ----- lowbitand (logic.pvvs)
+ 1000001 ----- isnegative (math.pvvs)
1000010 ----- print sign of number (stdio.pvvs)
1000011 ----- print magnitude of number (stdio.pvvs)
1000100 ----- print string from stack (stdio.pvvs)
SNN | DROP
NTN | RTS
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@ Name:
+@ lowbitand (1000000)
+@ Description:
+@ Performs logical AND on the least-significant bit of 'X' and 'Y'.
+@ Returns either 1 or 0, no other values.
+@ Call Stack:
+@ X
+@ Y
+@ Return Stack:
+@ lsb(X) AND lsb(Y)
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+NSSVTSSSSSSN | Mark: 1000000 (lowbitand)
+SSSTSN | PUSH 2
+TSTT | MODULO
+SNT | SWAP
+SSSTSN | PUSH 2
+TSTT | MODULO
+TSSS | ADD
+SSSTSN | PUSH 2
+TSTS | DIVIDE
+NTN | RTS
+
#endif
NSSVSSSTSSSTSSSSSSSTN | Mark: 00010001 00000001
NTN | RTS
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@ Name:
+@ isnegative (1000001)
+@ Description:
+@ Returns 1 if 'number' is negative, 0 if positive.
+@ Call Stack:
+@ number <-- TOS
+@ Return Stack:
+@ 1 or 0 <-- TOS
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+NSSVTSSSSSTN | Mark: 1000001 (isnegative)
+NTTSTSSSSSTSSSSSSSSN | BMI > 01000001 00000000
+SSSSN | PUSH 0
+NTN | RTS
+NSSVSTSSSSSTSSSSSSSSN | Mark: 01000001 00000000
+SSSTN | PUSH 1
+NTN | RTS
+
#endif