; Numbers test script
script "NumTest"

; Test incrementing A. Result should be '1'.
A++
message("Result`should`be`'1'")
report_var(A)

; Test increment and decrement on B.
; Result should be '2' (1+1+1-1).
B++
B++
B++
B--
message("Result`should`be`'2'")
report_var(B)

; Test adding one variable to another.
; Result should be '4' (2 twice).
add(C, B)
add(C, B)
message("Result should be '4'")
report_var(C)

; Test adding a constant value.
; Result should be '1234'.
add(D, 1234)
message("Result should be '1234'")
report_var(D)

; Test adding a constant value expressed in hex.
; Result should be '2345'.
add(E, &929)
message("Result should be '2345'")
report_var(E)

; Test adding a constant value expressed in binary.
; Result should be '123'. 
add(F, %1111011)
message("Result should be '123'")
report_var(F)

; Test adding all the variables together.
; Result should be 3709.
add(A, B)
add(A, C)
add(A, D)
add(A, E)
add(A, F)
message("Result should be '3709'")
report_var(A)

; Test the divisor (undocumented!)
A--
; Now an even number, so divide by 4.
; Result should be 927.
div(A, A, 4)
message("Result should be '927'")
report_var(A)

; Test the multiplier (also undocumented!)
; Result should be 1854.
mul(A, A, 2)
message("Result should be '1854'")
report_var(A)

; Now subtract 1854 to return us to 0.
sub(A, 1854)
message("Result should be '0'")
report_var(A)

; We're done
terminate()
