248 lines
3.2 KiB
Plaintext
248 lines
3.2 KiB
Plaintext
' {$STAMP BS1}
|
|
DEBUG CR,"test references and composition.."
|
|
SYMBOL new = NEW 16
|
|
SYMBOL big = W0
|
|
SYMBOL small_right = B0
|
|
SYMBOL small_left = B1
|
|
SYMBOL tiny_beg = BIT0
|
|
SYMBOL tiny_end = BIT7
|
|
SYMBOL int1 = W0
|
|
SYMBOL int2 = B2
|
|
SYMBOL int3 = new
|
|
SYMBOL counter = W0
|
|
SYMBOL bool = BIT11
|
|
ASSERT new = 0
|
|
ASSERT big = 0
|
|
ASSERT small_left = 0
|
|
ASSERT small_right = 0
|
|
'BREAKPOINT
|
|
|
|
|
|
new = 1
|
|
W0 = new
|
|
ASSERT big = new
|
|
ASSERT small_left = 0
|
|
ASSERT small_right = 1
|
|
ASSERT tiny_beg = 1
|
|
ASSERT tiny_end = 0
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test comments.." 'test
|
|
'test
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test arithmetics.."
|
|
int1 = 1
|
|
int2 = 2
|
|
int3 = 3
|
|
int1 = int1 + int2 * int3 MAX 5 / 3 MIN int1 // 2 & 1 - 1 + 65000 ** 65000 - 64467 | 0
|
|
'result= 3 9 9 3 1 1 1 0 65000 64468 1 1
|
|
ASSERT int1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test control-commands.."
|
|
counter = 0
|
|
label:
|
|
IF counter = 10 THEN fin
|
|
counter = counter + 1
|
|
GOTO label
|
|
fin:
|
|
ASSERT counter = 10
|
|
'BREAKPOINT
|
|
|
|
|
|
counter = 0
|
|
branch_start:
|
|
BRANCH counter, (test1,test2,test3,branch_end)
|
|
test1:
|
|
counter = 1
|
|
GOTO branch_start
|
|
test2:
|
|
counter = 2
|
|
GOTO branch_start
|
|
test3:
|
|
counter = 3
|
|
GOTO branch_start
|
|
branch_end:
|
|
ASSERT counter = 3
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test subroutines.."
|
|
GOSUB subroutine
|
|
ASSERT counter = 5
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test power/time-commands.."
|
|
NAP 1
|
|
SLEEP 1
|
|
PAUSE 500
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test io-commands.."
|
|
HIGH 1
|
|
ASSERT PIN1 = 1
|
|
ASSERT DIR1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
LOW 1
|
|
ASSERT PIN1 = 0
|
|
ASSERT DIR1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
OUTPUT 1
|
|
ASSERT DIR1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
INPUT 1
|
|
ASSERT DIR1 = 0
|
|
'BREAKPOINT
|
|
|
|
|
|
TOGGLE 1
|
|
ASSERT PIN1 = 1
|
|
ASSERT DIR1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
TOGGLE 1
|
|
ASSERT PIN1 = 0
|
|
ASSERT DIR1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
REVERSE 1
|
|
ASSERT DIR1 = 0
|
|
'BREAKPOINT
|
|
|
|
|
|
REVERSE 1
|
|
ASSERT DIR1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
SOUND 1, (80,50)
|
|
ASSERT DIR1 = 1
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test loops"
|
|
bool = 1
|
|
FOR counter = 0 TO 10
|
|
IF bool = 1 THEN check_init
|
|
inside_for:
|
|
NEXT
|
|
ASSERT counter = 10
|
|
'BREAKPOINT
|
|
|
|
|
|
FOR counter = 10 TO 0 STEP -1
|
|
NEXT
|
|
ASSERT counter = 0
|
|
'BREAKPOINT
|
|
|
|
|
|
FOR int3 = 0 TO 9
|
|
FOR int2 = 0 TO 9
|
|
counter = counter + 1
|
|
NEXT
|
|
NEXT
|
|
ASSERT int3 = 9
|
|
ASSERT int2 = 9
|
|
ASSERT counter = 100
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test numeric commands.."
|
|
int1 = 3
|
|
LOOKUP int1, ("ABRAKADABRA"), int2
|
|
ASSERT int1 = 3
|
|
ASSERT int2 = 65
|
|
'BREAKPOINT
|
|
|
|
|
|
LOOKDOWN int2, ("ABRAKADABRA"), int1
|
|
ASSERT int1 = 3
|
|
ASSERT int2 = 65
|
|
'BREAKPOINT
|
|
|
|
|
|
LOOKUP int1, (0,1,2,3), int2
|
|
ASSERT int1 = 3
|
|
ASSERT int2 = 3
|
|
'BREAKPOINT
|
|
|
|
|
|
LOOKDOWN int2, (0,1,2,3), int1
|
|
ASSERT int1 = 3
|
|
ASSERT int2 = 3
|
|
'BREAKPOINT
|
|
|
|
|
|
RANDOM new
|
|
'DEBUG "a random value: ", #new
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test storage-modifying-commands.."
|
|
READ 0, int1
|
|
ASSERT int1 = 0
|
|
WRITE 0, int2
|
|
READ 0, int1
|
|
ASSERT int1 = 3
|
|
EEPROM int1, (3,4)
|
|
READ 4, int1
|
|
ASSERT int1 = 4
|
|
EEPROM (0,1,2)
|
|
READ 0, int1
|
|
ASSERT int1 = 0
|
|
DEBUG EEPROM
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test debug.."
|
|
DEBUG CR,"text",W0," ",#W0," ",%W0," ",$W0, 0, @68
|
|
SEROUT 1, 1, ("text", W0, "text")
|
|
'BREAKPOINT
|
|
|
|
|
|
DEBUG "test formatters.."
|
|
DIRS = %00000011
|
|
PINS = $FF
|
|
new = @A + 1
|
|
ASSERT DIRS = 3
|
|
ASSERT PINS = 255
|
|
ASSERT new = 66
|
|
'BREAKPOINT
|
|
|
|
|
|
END
|
|
|
|
|
|
check_init:
|
|
bool = 0
|
|
ASSERT counter = 0
|
|
GOTO inside_for
|
|
|
|
subroutine:
|
|
'BREAKPOINT
|
|
counter = counter + 1
|
|
GOSUB subsubroutine 'test nested subroutines
|
|
RETURN
|
|
|
|
subsubroutine:
|
|
'BREAKPOINT
|
|
counter = counter + 1
|
|
RETURN
|
|
|
|
|
|
|
|
|