%import floats
%import textio
%zeropage basicsafe

main {

    sub start() {
        byte b1
        byte b2
        ubyte ub1
        ubyte ub2
        word w1
        word w2
        uword uw1
        uword uw2
        float f1
        float f2

        b1 = 10
        b2 = 10
        if sgn(b2-b1) != 0
            txt.print("sgn1 error1\n")

        b1 = -100
        b2 = -100
        if sgn(b2-b1) != 0
            txt.print("sgn1 error2\n")

        ub1 = 200
        ub2 = 200
        if sgn(ub2-ub1) != 0
            txt.print("sgn1 error3\n")

        w1 = 100
        w2 = 100
        if sgn(w2-w1) != 0
            txt.print("sgn1 error4\n")

        w1 = -2000
        w2 = -2000
        if sgn(w2-w1) != 0
            txt.print("sgn1 error5\n")

        uw1 = 999
        uw2 = 999
        if sgn(uw2-uw1) != 0
            txt.print("sgn1 error6\n")

        f1 = 3.45
        f2 = 3.45
        if sgn(f2-f1) != 0
            txt.print("sgn1 error7\n")


        ; -1
        b1 = 11
        b2 = 10
        if sgn(b2-b1) != -1
            txt.print("sgn2 error1\n")

        b1 = -10
        b2 = -100
        if sgn(b2-b1) != -1
            txt.print("sgn2 error2\n")

        ub1 = 202
        ub2 = 200
        if sgn(ub2 as byte - ub1 as byte) != -1
            txt.print("sgn2 error3\n")

        w1 = 101
        w2 = 100
        if sgn(w2-w1) != -1
            txt.print("sgn2 error4\n")

        w1 = -200
        w2 = -2000
        if sgn(w2-w1) != -1
            txt.print("sgn2 error5\n")

        uw1 = 2222
        uw2 = 999
        if sgn((uw2 as word) - (uw1 as word)) != -1
            txt.print("sgn2 error6a\n")
        if sgn(uw2 - uw1) != 1      ; always 0 or 1 if unsigned
            txt.print("sgn2 error6b\n")

        f1 = 3.45
        f2 = 1.11
        if sgn(f2-f1) != -1
            txt.print("sgn2 error7\n")

        ; +1
        b1 = 11
        b2 = 20
        if sgn(b2-b1) != 1
            txt.print("sgn3 error1\n")

        b1 = -10
        b2 = -1
        if sgn(b2-b1) != 1
            txt.print("sgn3 error2\n")

        ub1 = 202
        ub2 = 205
        if sgn(ub2-ub1) != 1
            txt.print("sgn3 error3\n")

        w1 = 101
        w2 = 200
        if sgn(w2-w1) != 1
            txt.print("sgn3 error4\n")

        w1 = -200
        w2 = -20
        if sgn(w2-w1) != 1
            txt.print("sgn3 error5\n")

        uw1 = 2222
        uw2 = 9999
        if sgn(uw2-uw1) != 1
            txt.print("sgn3 error6\n")

        f1 = 3.45
        f2 = 5.11
        if sgn(f2-f1) != 1
            txt.print("sgn3 error7\n")

        txt.print("should see no sgn errors\n")
    }
 }
