+EQU = defPrim("=", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a==b ? -1 : 0)
+ return mem[NEXT]
+end)
+
+NEQU = defPrim("<>", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a!=b ? -1 : 0)
+ return mem[NEXT]
+end)
+
+LT = defPrim("<", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a<b ? -1 : 0)
+ return mem[NEXT]
+end)
+
+GT = defPrim(">", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a>b ? -1 : 0)
+ return mem[NEXT]
+end)
+
+LE = defPrim("<=", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a<=b ? -1 : 0)
+ return mem[NEXT]
+end)
+
+GE = defPrim(">=", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a>=b ? -1 : 0)
+ return mem[NEXT]
+end)
+
+ZEQU = defPrim("0=", () -> begin
+ pushPS(popPS() == 0 ? -1 : 0)
+ return mem[NEXT]
+end)
+
+ZNEQU = defPrim("0<>", () -> begin
+ pushPS(popPS() != 0 ? -1 : 0)
+ return mem[NEXT]
+end)
+
+ZLT = defPrim("0<", () -> begin
+ pushPS(popPS() < 0 ? -1 : 0)
+ return mem[NEXT]
+end)
+
+ZGT = defPrim("0>", () -> begin
+ pushPS(popPS() > 0 ? -1 : 0)
+ return mem[NEXT]
+end)
+
+ZLE = defPrim("0<=", () -> begin
+ pushPS(popPS() <= 0 ? -1 : 0)
+ return mem[NEXT]
+end)
+
+ZGE = defPrim("0>=", () -> begin
+ pushPS(popPS() >= 0 ? -1 : 0)
+ return mem[NEXT]
+end)
+
+AND = defPrim("AND", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a & b)
+ return mem[NEXT]
+end)
+
+OR = defPrim("OR", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a | b)
+ return mem[NEXT]
+end)
+
+XOR = defPrim("XOR", () -> begin
+ b = popPS()
+ a = popPS()
+ pushPS(a $ b)
+ return mem[NEXT]
+end)
+
+INVERT = defPrim("INVERT", () -> begin
+ pushPS(~popPS())
+ return mem[NEXT]
+end)
+
+# Literals
+