added txt.print_bool, several fixes

This commit is contained in:
Irmen de Jong 2024-02-21 17:04:39 +01:00
parent a5110b1f96
commit a1574a7187
13 changed files with 379 additions and 578 deletions

View File

@ -1412,6 +1412,7 @@ _gt""")
else -> {
asmgen.assignExpressionToVariable(right, subroutineFloatEvalResultVar1, DataType.FLOAT)
lessf(asmgen.asmVariableName(left), subroutineFloatEvalResultVar1)
asmgen.subroutineExtra(left.definingISub()!!).usedFloatEvalResultVar1 = true
}
}
} else {
@ -1421,6 +1422,7 @@ _gt""")
else -> {
asmgen.assignExpressionToVariable(right, subroutineFloatEvalResultVar1, DataType.FLOAT)
lessf(left, subroutineFloatEvalResultVar1)
asmgen.subroutineExtra(left.definingISub()!!).usedFloatEvalResultVar1 = true
}
}
}

View File

@ -36,4 +36,11 @@ _offsets .byte 128, 0, 64, 32, 64, 192, 128, 128
}
sub print_bool(bool value) {
if value
txt.print("true")
else
txt.print("false")
}
}

View File

@ -73,6 +73,13 @@ sub print_b (byte value) {
print(conv.string_out)
}
sub print_bool(bool value) {
if value
print("true")
else
print("false")
}
sub print_ubhex (ubyte value, ubyte prefix) {
; ---- print the ubyte in hex form
if prefix!=0

View File

@ -30,42 +30,42 @@ main {
if length!=3 txt.print("error strlen2\n")
; ANY
ub = any(ubarr)
ub = any(ubarr) as ubyte
if ub==0 txt.print("error any1\n")
ub = any(barr)
ub = any(barr) as ubyte
if ub==0 txt.print("error any2\n")
ub = any(uwarr)
ub = any(uwarr) as ubyte
if ub==0 txt.print("error any3\n")
ub = any(warr)
ub = any(warr) as ubyte
if ub==0 txt.print("error any4\n")
ub = any(farr)
ub = any(farr) as ubyte
if ub==0 txt.print("error any5\n")
; ALL
ub = all(ubarr)
ub = all(ubarr) as ubyte
if ub==1 txt.print("error all1\n")
ub = all(barr)
ub = all(barr) as ubyte
if ub==1 txt.print("error all2\n")
ub = all(uwarr)
ub = all(uwarr) as ubyte
if ub==1 txt.print("error all3\n")
ub = all(warr)
ub = all(warr) as ubyte
if ub==1 txt.print("error all4\n")
ub = all(farr)
ub = all(farr) as ubyte
if ub==1 txt.print("error all5\n")
ubarr[1]=$40
barr[1]=$40
uwarr[1]=$4000
warr[1]=$4000
farr[1]=1.1
ub = all(ubarr)
ub = all(ubarr) as ubyte
if ub==0 txt.print("error all6\n")
ub = all(barr)
ub = all(barr) as ubyte
if ub==0 txt.print("error all7\n")
ub = all(uwarr)
ub = all(uwarr) as ubyte
if ub==0 txt.print("error all8\n")
ub = all(warr)
ub = all(warr) as ubyte
if ub==0 txt.print("error all9\n")
ub = all(farr)
ub = all(farr) as ubyte
if ub==0 txt.print("error all10\n")
txt.print("\nyou should see no errors printed above (only at first run).")

View File

@ -259,12 +259,6 @@ main {
uw = shiftruw15()
txt.print_uwbin(uw, true)
txt.chrout('\n')
uw = shiftruw16()
txt.print_uwbin(uw, true)
txt.chrout('\n')
uw = shiftruw17()
txt.print_uwbin(uw, true)
txt.chrout('\n')
txt.print("enter to continue:\n")
void txt.input_chars(inputbuffer)
@ -459,16 +453,6 @@ main {
return (q >> 15)
}
sub shiftruw16() -> uword {
uword @shared q = $a49f
return (q >> 16)
}
sub shiftruw17() -> uword {
uword @shared q = $a49f
return (q >> 17)
}
sub shiftrsw0() -> word {
word @shared q = -12345
return q >> 0

View File

@ -227,15 +227,15 @@ main {
txt.print("rol_ub error ")
txt.print_ub(original)
txt.spc()
txt.print_ub(carry)
txt.print_bool(carry)
txt.spc()
txt.print_ub(value)
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
@ -252,15 +252,15 @@ main {
txt.print("rol_ub array error ")
txt.print_ub(original)
txt.spc()
txt.print_ub(carry)
txt.print_bool(carry)
txt.spc()
txt.print_ub(ubarray[1])
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
@ -277,15 +277,15 @@ main {
txt.print("rol_ub mem error ")
txt.print_ub(original)
txt.spc()
txt.print_ub(carry)
txt.print_bool(carry)
txt.spc()
txt.print_ub(@($8001))
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
}
@ -304,15 +304,15 @@ main {
txt.print("ror_ub error ")
txt.print_ub(original)
txt.spc()
txt.print_ub(carry)
txt.print_bool(carry)
txt.spc()
txt.print_ub(value)
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
@ -329,15 +329,15 @@ main {
txt.print("ror_ub array error ")
txt.print_ub(original)
txt.spc()
txt.print_ub(carry)
txt.print_bool(carry)
txt.spc()
txt.print_ub(ubarray[1])
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
@ -354,15 +354,15 @@ main {
txt.print("ror_ub mem error ")
txt.print_ub(original)
txt.spc()
txt.print_ub(carry)
txt.print_bool(carry)
txt.spc()
txt.print_ub(@($8001))
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
}
@ -437,15 +437,15 @@ main {
txt.print("rol_uw error ")
txt.print_uw(original)
txt.spc()
txt.print_uw(carry)
txt.print_bool(carry)
txt.spc()
txt.print_uw(value)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -462,15 +462,15 @@ main {
txt.print("rol_uw array error ")
txt.print_uw(original)
txt.spc()
txt.print_uw(carry)
txt.print_bool(carry)
txt.spc()
txt.print_uw(uwarray[1])
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}
@ -489,15 +489,15 @@ main {
txt.print("ror_uw error ")
txt.print_uw(original)
txt.spc()
txt.print_uw(carry)
txt.print_bool(carry)
txt.spc()
txt.print_uw(value)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -514,15 +514,15 @@ main {
txt.print("ror_uw array error ")
txt.print_uw(original)
txt.spc()
txt.print_uw(carry)
txt.print_bool(carry)
txt.spc()
txt.print_uw(uwarray[1])
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}
@ -540,11 +540,11 @@ main {
txt.spc()
txt.print_ub(value)
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
@ -560,11 +560,11 @@ main {
txt.spc()
txt.print_ub(ubarray[1])
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
}
@ -582,11 +582,11 @@ main {
txt.spc()
txt.print_ub(value)
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
@ -602,11 +602,11 @@ main {
txt.spc()
txt.print_ub(ubarray[1])
txt.spc()
txt.print_ub(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_ub(test)
txt.spc()
txt.print_ub(newcarry)
txt.print_bool(newcarry)
txt.nl()
}
}
@ -624,11 +624,11 @@ main {
txt.spc()
txt.print_uw(value)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -644,11 +644,11 @@ main {
txt.spc()
txt.print_uw(uwarray[1])
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}
@ -666,11 +666,11 @@ main {
txt.spc()
txt.print_uw(value)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -686,11 +686,11 @@ main {
txt.spc()
txt.print_uw(uwarray[1])
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_uw(test)
txt.spc()
txt.print_uw(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}
@ -708,11 +708,11 @@ main {
txt.spc()
txt.print_b(value)
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_b(test)
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -728,11 +728,11 @@ main {
txt.spc()
txt.print_b(barray[1])
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_b(test)
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}
@ -750,11 +750,11 @@ main {
txt.spc()
txt.print_b(value)
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_b(test)
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -770,11 +770,11 @@ main {
txt.spc()
txt.print_b(barray[1])
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_b(test)
txt.spc()
txt.print_b(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}
@ -792,11 +792,11 @@ main {
txt.spc()
txt.print_w(value)
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_w(test)
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -812,11 +812,11 @@ main {
txt.spc()
txt.print_w(warray[1])
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_w(test)
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}
@ -834,11 +834,11 @@ main {
txt.spc()
txt.print_w(value)
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_w(test)
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
@ -854,11 +854,11 @@ main {
txt.spc()
txt.print_w(warray[1])
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.print(" exp: ")
txt.print_w(test)
txt.spc()
txt.print_w(carrycheck)
txt.print_bool(carrycheck)
txt.nl()
}
}

View File

@ -351,59 +351,59 @@ main {
txt.print_w(ww)
txt.nl()
ub = any(ubarr)
ub = any(ubarr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+any(ubarr)*1+zero
ub = zero+(any(ubarr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = any(barr)
ub = any(barr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+any(barr)*1+zero
ub = zero+(any(barr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = any(uwarr)
ub = any(uwarr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+any(uwarr)*1+zero
ub = zero+(any(uwarr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = any(warr)
ub = any(warr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+any(warr)*1+zero
ub = zero+(any(warr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = all(ubarr)
ub = all(ubarr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+all(ubarr)*1+zero
ub = zero+(all(ubarr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = all(barr)
ub = all(barr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+all(barr)*1+zero
ub = zero+(all(barr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = all(uwarr)
ub = all(uwarr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+all(uwarr)*1+zero
ub = zero+(all(uwarr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = all(warr)
ub = all(warr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+all(warr)*1+zero
ub = zero+(all(warr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
@ -436,16 +436,16 @@ main {
txt.print_b(bb)
txt.nl()
ub = any(flarr)
ub = any(flarr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+any(flarr)*1+zero
ub = zero+(any(flarr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()
ub = all(flarr)
ub = all(flarr) as ubyte
txt.print_ub(ub)
txt.nl()
ub = zero+all(flarr)*1+zero
ub = zero+(all(flarr) as ubyte)*1+zero
txt.print_ub(ub)
txt.nl()

View File

@ -1,206 +0,0 @@
%import textio
%zeropage basicsafe
main {
sub ftrue(ubyte arg) -> ubyte {
arg++
return 128
}
sub ffalse(ubyte arg) -> ubyte {
arg++
return 0
}
sub start() {
ubyte ub1 = 2
ubyte ub2 = 4
ubyte ub3 = 8
ubyte ub4 = 0
ubyte bvalue
txt.print("const not 0: ")
txt.print_ub(not 129)
txt.nl()
txt.print("const not 1: ")
txt.print_ub(not 0)
txt.nl()
txt.print("const inv 126: ")
txt.print_ub(~ 129)
txt.nl()
txt.print("const inv 255: ")
txt.print_ub(~ 0)
txt.nl()
bvalue = 129
txt.print("bitwise inv 126: ")
bvalue = ~ bvalue
txt.print_ub(bvalue)
txt.nl()
bvalue = 0
txt.print("bitwise inv 255: ")
bvalue = ~ bvalue
txt.print_ub(bvalue)
txt.nl()
txt.print("bitwise or 14: ")
txt.print_ub(ub1 | ub2 | ub3 | ub4)
txt.nl()
txt.print("bitwise or 142: ")
txt.print_ub(ub1 | ub2 | ub3 | ub4 | 128)
txt.nl()
txt.print("bitwise and 0: ")
txt.print_ub(ub1 & ub2 & ub3 & ub4)
txt.nl()
txt.print("bitwise and 8: ")
txt.print_ub(ub3 & ub3 & 127)
txt.nl()
txt.print("bitwise xor 14: ")
txt.print_ub(ub1 ^ ub2 ^ ub3 ^ ub4)
txt.nl()
txt.print("bitwise xor 6: ")
txt.print_ub(ub1 ^ ub2 ^ ub3 ^ 8)
txt.nl()
txt.print("bitwise not 247: ")
txt.print_ub(~ub3)
txt.nl()
txt.print("bitwise not 255: ")
txt.print_ub(~ub4)
txt.nl()
txt.print("not 0: ")
bvalue = 3 * (ub4 | not (ub3 | ub3 | ub3))
txt.print_ub(bvalue)
if 3*(ub4 | not (ub1 | ub1 | ub1))
txt.print(" / fail")
else
txt.print(" / ok")
txt.nl()
txt.print("not 0: ")
bvalue = not ub3
txt.print_ub(bvalue)
if not ub1
txt.print(" / fail")
else
txt.print(" / ok")
txt.nl()
txt.print("not 1: ")
bvalue = not ub4
txt.print_ub(bvalue)
if not ub4
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
bvalue = bvalue and 128
txt.print("bvl 1: ")
txt.print_ub(bvalue)
if bvalue and 128
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print("and 1: ")
bvalue = ub1 and ub2 and ub3
txt.print_ub(bvalue)
if ub1 and ub2 and ub3
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print("and 1: ")
bvalue = ub1 and ub2 and ub3 and 64
txt.print_ub(bvalue)
if ub1 and ub2 and ub3 and 64
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print("and 1: ")
bvalue = ub1 and ub2 and ub3 and ftrue(99)
txt.print_ub(bvalue)
if ub1 and ub2 and ub3 and ftrue(99)
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print("and 0: ")
bvalue = ub1 and ub2 and ub3 and ub4
txt.print_ub(bvalue)
if ub1 and ub2 and ub3 and ub4
txt.print(" / fail")
else
txt.print(" / ok")
txt.nl()
txt.print("and 0: ")
bvalue = ub1 and ub2 and ub3 and ffalse(99)
txt.print_ub(bvalue)
if ub1 and ub2 and ub3 and ffalse(99)
txt.print(" / fail")
else
txt.print(" / ok")
txt.nl()
txt.print(" or 1: ")
bvalue = ub1 or ub2 or ub3 or ub4
txt.print_ub(bvalue)
if ub1 or ub2 or ub3 or ub4
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print(" or 1: ")
bvalue = ub4 or ub4 or ub1
txt.print_ub(bvalue)
if ub4 or ub4 or ub1
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print(" or 1: ")
bvalue = ub1 or ub2 or ub3 or ftrue(99)
txt.print_ub(bvalue)
if ub1 or ub2 or ub3 or ftrue(99)
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print("xor 1: ")
bvalue = ub1 xor ub2 xor ub3 xor ub4
txt.print_ub(bvalue)
if ub1 xor ub2 xor ub3 xor ub4
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print("xor 1: ")
bvalue = ub1 xor ub2 xor ub3 xor ffalse(99)
txt.print_ub(bvalue)
if ub1 xor ub2 xor ub3 xor ffalse(99)
txt.print(" / ok")
else
txt.print(" / fail")
txt.nl()
txt.print("xor 0: ")
bvalue = ub1 xor ub2 xor ub3 xor ub4 xor true
txt.print_ub(bvalue)
if ub1 xor ub2 xor ub3 xor ub4 xor true
txt.print(" / fail")
else
txt.print(" / ok")
txt.nl()
txt.print("xor 0: ")
bvalue = ub1 xor ub2 xor ub3 xor ftrue(99)
txt.print_ub(bvalue)
if ub1 xor ub2 xor ub3 xor ftrue(99)
txt.print(" / fail")
else
txt.print(" / ok")
}
}

View File

@ -410,9 +410,9 @@ def gen_comp_greaterequal(dt):
def generate_test_routine_equalsnotequals(dt):
print(f"""
sub test_comparisons() {{
{dt} left
{dt} right
{dt} zero = 0
{dt} @shared left
{dt} @shared right
{dt} @shared zero = 0
""")
gen_comp_equal(dt)
gen_comp_notequal(dt)
@ -422,9 +422,9 @@ def generate_test_routine_equalsnotequals(dt):
def generate_test_routine_lessgreater(dt):
print(f"""
sub test_comparisons() {{
{dt} left
{dt} right
{dt} zero = 0
{dt} @shared left
{dt} @shared right
{dt} @shared zero = 0
""")
gen_comp_less(dt)
gen_comp_greater(dt)
@ -434,9 +434,9 @@ def generate_test_routine_lessgreater(dt):
def generate_test_routine_lessequalsgreaterequals(dt):
print(f"""
sub test_comparisons() {{
{dt} left
{dt} right
{dt} zero = 0
{dt} @shared left
{dt} @shared right
{dt} @shared zero = 0
""")
gen_comp_lessequal(dt)
gen_comp_greaterequal(dt)
@ -456,7 +456,7 @@ main {{
uword num_errors = 0
uword num_successes = 0
str datatype = "{dt}"
uword comparison
uword @shared comparison
sub start() {{
test_comparisons()

View File

@ -30,80 +30,80 @@ main {
}
sub test_compare_literal() {
byte b = -100
ubyte ub = 20
word w = -20000
uword uw = 2000
float f = -100
byte @shared b = -100
ubyte @shared ub = 20
word @shared w = -20000
uword @shared uw = 2000
float @shared f = -100
txt.print("all 1: ")
txt.print_ub(b == -100)
txt.print_ub(b != -99)
txt.print_ub(b < -99)
txt.print_ub(b <= -100)
txt.print_ub(b > -101)
txt.print_ub(b >= -100)
txt.print_ub(ub ==20)
txt.print_ub(ub !=19)
txt.print_ub(ub <21)
txt.print_ub(ub <=20)
txt.print_ub(ub>19)
txt.print_ub(ub>=20)
txt.print_bool(b == -100)
txt.print_bool(b != -99)
txt.print_bool(b < -99)
txt.print_bool(b <= -100)
txt.print_bool(b > -101)
txt.print_bool(b >= -100)
txt.print_bool(ub ==20)
txt.print_bool(ub !=19)
txt.print_bool(ub <21)
txt.print_bool(ub <=20)
txt.print_bool(ub>19)
txt.print_bool(ub>=20)
txt.spc()
txt.print_ub(w == -20000)
txt.print_ub(w != -19999)
txt.print_ub(w < -19999)
txt.print_ub(w <= -20000)
txt.print_ub(w > -20001)
txt.print_ub(w >= -20000)
txt.print_ub(uw == 2000)
txt.print_ub(uw != 2001)
txt.print_ub(uw < 2001)
txt.print_ub(uw <= 2000)
txt.print_ub(uw > 1999)
txt.print_ub(uw >= 2000)
txt.print_bool(w == -20000)
txt.print_bool(w != -19999)
txt.print_bool(w < -19999)
txt.print_bool(w <= -20000)
txt.print_bool(w > -20001)
txt.print_bool(w >= -20000)
txt.print_bool(uw == 2000)
txt.print_bool(uw != 2001)
txt.print_bool(uw < 2001)
txt.print_bool(uw <= 2000)
txt.print_bool(uw > 1999)
txt.print_bool(uw >= 2000)
txt.spc()
txt.print_ub(f == -100.0)
txt.print_ub(f != -99.0)
txt.print_ub(f < -99.0)
txt.print_ub(f <= -100.0)
txt.print_ub(f > -101.0)
txt.print_ub(f >= -100.0)
txt.print_bool(f == -100.0)
txt.print_bool(f != -99.0)
txt.print_bool(f < -99.0)
txt.print_bool(f <= -100.0)
txt.print_bool(f > -101.0)
txt.print_bool(f >= -100.0)
txt.nl()
txt.print("all 0: ")
txt.print_ub(b == -99)
txt.print_ub(b != -100)
txt.print_ub(b < -100)
txt.print_ub(b <= -101)
txt.print_ub(b > -100)
txt.print_ub(b >= -99)
txt.print_ub(ub ==21)
txt.print_ub(ub !=20)
txt.print_ub(ub <20)
txt.print_ub(ub <=19)
txt.print_ub(ub>20)
txt.print_ub(ub>=21)
txt.print_bool(b == -99)
txt.print_bool(b != -100)
txt.print_bool(b < -100)
txt.print_bool(b <= -101)
txt.print_bool(b > -100)
txt.print_bool(b >= -99)
txt.print_bool(ub ==21)
txt.print_bool(ub !=20)
txt.print_bool(ub <20)
txt.print_bool(ub <=19)
txt.print_bool(ub>20)
txt.print_bool(ub>=21)
txt.spc()
txt.print_ub(w == -20001)
txt.print_ub(w != -20000)
txt.print_ub(w < -20000)
txt.print_ub(w <= -20001)
txt.print_ub(w > -20000)
txt.print_ub(w >= -19999)
txt.print_ub(uw == 1999)
txt.print_ub(uw != 2000)
txt.print_ub(uw < 2000)
txt.print_ub(uw <= 1999)
txt.print_ub(uw > 2000)
txt.print_ub(uw >= 2001)
txt.print_bool(w == -20001)
txt.print_bool(w != -20000)
txt.print_bool(w < -20000)
txt.print_bool(w <= -20001)
txt.print_bool(w > -20000)
txt.print_bool(w >= -19999)
txt.print_bool(uw == 1999)
txt.print_bool(uw != 2000)
txt.print_bool(uw < 2000)
txt.print_bool(uw <= 1999)
txt.print_bool(uw > 2000)
txt.print_bool(uw >= 2001)
txt.spc()
txt.print_ub(f == -99.0)
txt.print_ub(f != -100.0)
txt.print_ub(f < -100.0)
txt.print_ub(f <= -101.0)
txt.print_ub(f > -100.0)
txt.print_ub(f >= -99.0)
txt.print_bool(f == -99.0)
txt.print_bool(f != -100.0)
txt.print_bool(f < -100.0)
txt.print_bool(f <= -101.0)
txt.print_bool(f > -100.0)
txt.print_bool(f >= -99.0)
txt.nl()
txt.print("all .: ")
@ -306,102 +306,102 @@ main {
}
sub test_compare_variable() {
byte b = -100
ubyte ub = 20
word w = -20000
uword uw = 2000
float f = -100
byte @shared b = -100
ubyte @shared ub = 20
word @shared w = -20000
uword @shared uw = 2000
float @shared f = -100
byte minus_100 = -100
byte minus_99 = -99
byte minus_20 = -20
byte minus_101 = -101
ubyte nineteen = 19
ubyte twenty = 20
ubyte twenty1 = 21
ubyte twohundred = 200
float f_minus_100 = -100.0
float f_minus_101 = -101.0
float f_minus_99 = -99.0
float twodottwo = 2.2
word minus8000 = -8000
word eightthousand = 8000
word w_min_20000 = -20000
word w_min_19999 = -19999
word w_min_20001 = -20001
uword twothousand = 2000
uword twothousand1 = 2001
uword nineteen99 = 1999
byte @shared minus_100 = -100
byte @shared minus_99 = -99
byte @shared minus_20 = -20
byte @shared minus_101 = -101
ubyte @shared nineteen = 19
ubyte @shared twenty = 20
ubyte @shared twenty1 = 21
ubyte @shared twohundred = 200
float @shared f_minus_100 = -100.0
float @shared f_minus_101 = -101.0
float @shared f_minus_99 = -99.0
float @shared twodottwo = 2.2
word @shared minus8000 = -8000
word @shared eightthousand = 8000
word @shared w_min_20000 = -20000
word @shared w_min_19999 = -19999
word @shared w_min_20001 = -20001
uword @shared twothousand = 2000
uword @shared twothousand1 = 2001
uword @shared nineteen99 = 1999
txt.print("all 1: ")
txt.print_ub(b == minus_100)
txt.print_ub(b != minus_99)
txt.print_ub(b < minus_99)
txt.print_ub(b <= minus_100)
txt.print_ub(b > minus_101)
txt.print_ub(b >= minus_100)
txt.print_ub(ub ==twenty)
txt.print_ub(ub !=nineteen)
txt.print_ub(ub <twenty1)
txt.print_ub(ub <=twenty)
txt.print_ub(ub>nineteen)
txt.print_ub(ub>=twenty)
txt.print_bool(b == minus_100)
txt.print_bool(b != minus_99)
txt.print_bool(b < minus_99)
txt.print_bool(b <= minus_100)
txt.print_bool(b > minus_101)
txt.print_bool(b >= minus_100)
txt.print_bool(ub ==twenty)
txt.print_bool(ub !=nineteen)
txt.print_bool(ub <twenty1)
txt.print_bool(ub <=twenty)
txt.print_bool(ub>nineteen)
txt.print_bool(ub>=twenty)
txt.spc()
txt.print_ub(w == w_min_20000)
txt.print_ub(w != w_min_19999)
txt.print_ub(w < w_min_19999)
txt.print_ub(w <= w_min_20000)
txt.print_ub(w > w_min_20001)
txt.print_ub(w >= w_min_20000)
txt.print_ub(uw == twothousand)
txt.print_ub(uw != twothousand1)
txt.print_ub(uw < twothousand1)
txt.print_ub(uw <= twothousand)
txt.print_ub(uw > nineteen99)
txt.print_ub(uw >= twothousand)
txt.print_bool(w == w_min_20000)
txt.print_bool(w != w_min_19999)
txt.print_bool(w < w_min_19999)
txt.print_bool(w <= w_min_20000)
txt.print_bool(w > w_min_20001)
txt.print_bool(w >= w_min_20000)
txt.print_bool(uw == twothousand)
txt.print_bool(uw != twothousand1)
txt.print_bool(uw < twothousand1)
txt.print_bool(uw <= twothousand)
txt.print_bool(uw > nineteen99)
txt.print_bool(uw >= twothousand)
txt.spc()
txt.print_ub(f == f_minus_100)
txt.print_ub(f != f_minus_99)
txt.print_ub(f < f_minus_99)
txt.print_ub(f <= f_minus_100)
txt.print_ub(f > f_minus_101)
txt.print_ub(f >= f_minus_100)
txt.print_bool(f == f_minus_100)
txt.print_bool(f != f_minus_99)
txt.print_bool(f < f_minus_99)
txt.print_bool(f <= f_minus_100)
txt.print_bool(f > f_minus_101)
txt.print_bool(f >= f_minus_100)
txt.nl()
txt.print("all 0: ")
txt.print_ub(b == minus_99)
txt.print_ub(b != minus_100)
txt.print_ub(b < minus_100)
txt.print_ub(b <= minus_101)
txt.print_ub(b > minus_100)
txt.print_ub(b >= minus_99)
txt.print_ub(ub ==twenty1)
txt.print_ub(ub !=twenty)
txt.print_ub(ub <twenty)
txt.print_ub(ub <=nineteen)
txt.print_ub(ub>twenty)
txt.print_ub(ub>=twenty1)
txt.print_bool(b == minus_99)
txt.print_bool(b != minus_100)
txt.print_bool(b < minus_100)
txt.print_bool(b <= minus_101)
txt.print_bool(b > minus_100)
txt.print_bool(b >= minus_99)
txt.print_bool(ub ==twenty1)
txt.print_bool(ub !=twenty)
txt.print_bool(ub <twenty)
txt.print_bool(ub <=nineteen)
txt.print_bool(ub>twenty)
txt.print_bool(ub>=twenty1)
txt.spc()
txt.print_ub(w == w_min_20001)
txt.print_ub(w != w_min_20000)
txt.print_ub(w < w_min_20000)
txt.print_ub(w <= w_min_20001)
txt.print_ub(w > w_min_20000)
txt.print_ub(w >= w_min_19999)
txt.print_ub(uw == nineteen99)
txt.print_ub(uw != twothousand)
txt.print_ub(uw < twothousand)
txt.print_ub(uw <= nineteen99)
txt.print_ub(uw > twothousand)
txt.print_ub(uw >= twothousand1)
txt.print_bool(w == w_min_20001)
txt.print_bool(w != w_min_20000)
txt.print_bool(w < w_min_20000)
txt.print_bool(w <= w_min_20001)
txt.print_bool(w > w_min_20000)
txt.print_bool(w >= w_min_19999)
txt.print_bool(uw == nineteen99)
txt.print_bool(uw != twothousand)
txt.print_bool(uw < twothousand)
txt.print_bool(uw <= nineteen99)
txt.print_bool(uw > twothousand)
txt.print_bool(uw >= twothousand1)
txt.spc()
txt.print_ub(f == f_minus_99)
txt.print_ub(f != f_minus_100)
txt.print_ub(f < f_minus_100)
txt.print_ub(f <= f_minus_101)
txt.print_ub(f > f_minus_100)
txt.print_ub(f >= f_minus_99)
txt.print_bool(f == f_minus_99)
txt.print_bool(f != f_minus_100)
txt.print_bool(f < f_minus_100)
txt.print_bool(f <= f_minus_101)
txt.print_bool(f > f_minus_100)
txt.print_bool(f >= f_minus_99)
txt.nl()
txt.print("all .: ")

View File

@ -25,312 +25,312 @@ main {
}
sub greater () {
ubyte b1 = 10
ubyte b2 = 20
ubyte b3 = 10
ubyte @shared b1 = 10
ubyte @shared b2 = 20
ubyte @shared b3 = 10
txt.print(">(u): 101010: ")
ubyte xx
bool xx
xx = b2>10
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b3>b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>value(10)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b3>value(20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()
}
sub greater_signed () {
byte b1 = -20
byte b2 = -10
byte b3 = -20
byte @shared b1 = -20
byte @shared b2 = -10
byte @shared b3 = -20
txt.print(">(s): 101010: ")
ubyte xx
bool xx
xx = b2 > -20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2 > -10
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b3>b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>svalue(-20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b3>svalue(-10)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()
}
sub less () {
ubyte b1 = 20
ubyte b2 = 10
ubyte b3 = 20
ubyte @shared b1 = 20
ubyte @shared b2 = 10
ubyte @shared b3 = 20
txt.print("<(u): 101010: ")
ubyte xx
bool xx
xx = b2<20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<10
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b3<b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<value(20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<value(10)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()
}
sub less_signed () {
byte b1 = -10
byte b2 = -20
byte b3 = -10
byte @shared b1 = -10
byte @shared b2 = -20
byte @shared b3 = -10
txt.print("<(s): 101010: ")
ubyte xx
bool xx
xx = b2 < -10
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2 < -20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b3<b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<svalue(-10)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b3<svalue(-20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()
}
sub greatereq () {
ubyte b1 = 19
ubyte b2 = 20
ubyte b3 = 21
ubyte b4 = 20
ubyte @shared b1 = 19
ubyte @shared b2 = 20
ubyte @shared b3 = 21
ubyte @shared b4 = 20
txt.print(">=(u): 110110110: ")
ubyte xx
bool xx
xx = b2>=19
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=21
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=b4
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=b3
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=value(19)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=value(20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=value(21)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()
}
sub greatereq_signed () {
byte b1 = -19
byte b2 = -20
byte b3 = -21
byte b4 = -20
byte @shared b1 = -19
byte @shared b2 = -20
byte @shared b3 = -21
byte @shared b4 = -20
txt.print(">=(s): 011011011: ")
ubyte xx
bool xx
xx = b2>= -19
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>= -20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>= -21
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=b4
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=b3
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=svalue(-19)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=svalue(-20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2>=svalue(-21)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()
}
sub lesseq () {
ubyte b1 = 19
ubyte b2 = 20
ubyte b3 = 21
ubyte b4 = 20
ubyte @shared b1 = 19
ubyte @shared b2 = 20
ubyte @shared b3 = 21
ubyte @shared b4 = 20
txt.print("<=(u): 011011011: ")
ubyte xx
bool xx
xx = b2<=19
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=21
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=b4
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=b3
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=value(19)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=value(20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=value(21)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()
}
sub lesseq_signed () {
byte b1 = -19
byte b2 = -20
byte b3 = -21
byte b4 = -20
byte @shared b1 = -19
byte @shared b2 = -20
byte @shared b3 = -21
byte @shared b4 = -20
txt.print("<=(s): 110110110: ")
ubyte xx
bool xx
xx = b2<= -19
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<= -20
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<= -21
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=b1
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=b4
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=b3
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=svalue(-19)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=svalue(-20)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
xx = b2<=svalue(-21)
txt.print_ub(xx)
txt.print_ub(xx as ubyte)
txt.spc()
txt.nl()

View File

@ -172,7 +172,7 @@ textio (txt.*)
This will probably be the most used library module. It contains a whole lot of routines
dealing with text-based input and output (to the screen). Such as
- printing strings and numbers
- printing strings, numbers and booleans
- reading text input from the user via the keyboard
- filling or clearing the screen and colors
- scrolling the text on the screen

View File

@ -1,5 +1,5 @@
%import textio
%import floats
; %import floats
%zeropage basicsafe
%option no_sysinit
@ -12,9 +12,14 @@ main {
sub start() {
if cx16.r0L==0 or not staticbool2
cx16.r0L++
if cx16.r0 > cx16.r1
cx16.r0L++
txt.print_bool(true)
; TODO all this for uwords
; if sbb<0
@ -136,6 +141,8 @@ main {
; bb = not bb
}
/*
sub while_bool_efficient() {
while staticbool1 {
cx16.r0L++
@ -608,5 +615,5 @@ main {
sub voidfuncub(ubyte arg) {
cx16.r0L++
}
}*/
}