Test for AT instruction code 0x1e (BNZ_DAT)
-------------------------------------------
For each test the assembly and machine code are listed as is the data dump or expected error if test case has
been created specifically to fail (with a data dump if any data was expected to have changed before the error
occurred).
A summary of the tests follows:
Test 1 - Check some basic usage.
Test 2 - Jump forwards and backwords.
Test 3 - Jump to out range address
Test 4 - Jump to not valid address point
Test 5 - infinite loop
Assembly Code (Test 1):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000021
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 DEC @00000000
00000026 BNZ $00000000, :00000039
0000002c SET @00000002 #ffffffffffffffff
00000039 FIN
Machine Code (Test 1):
----------------------
010000000001000000000000001e0000000014010100000011111111111111112805000000001e00000000130102000000ffffff
ffffffffff28
Data Dump (Test 1):
-------------------
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000010 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Assembly Code (Test 2):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000021
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 SET @0000003f #ffffffffffffffff
0000002e BNZ $0000003f, :00000013
00000034 SET @00000002 #ffffffffffffffff
00000041 FIN
Machine Code (Test 2):
----------------------
010000000001000000000000001e00000000140101000000111111111111111128013f000000ffffffffffffffff1e3f000000e5
0102000000ffffffffffffffff28
Data Dump (Test 2):
-------------------
00000000 01 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000001f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
Assembly Code (Test 3):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000023
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 SET @0000003f #ffffffffffffffff
0000002e BNZ $0000003f, :00000013
00000034 SET @00000002 #ffffffffffffffff
00000041 FIN
Machine Code (Test 3):
----------------------
010000000001000000000000001e00000000160101000000111111111111111128013f000000ffffffffffffffff1e3f000000e5
0102000000ffffffffffffffff28
Runtime Error (Test 3):
-----------------------
error: invalid code
Assembly Code (Test 4):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000021
00000013 SET @00000001 #1111111111111111
00000020 FIN
00000021 SET @0000003f #ffffffffffffffff
0000002e BNZ $0000003f, :ffffffff
00000034 SET @00000002 #ffffffffffffffff
00000041 FIN
Machine Code (Test 4):
----------------------
010000000001000000000000001e00000000140101000000111111111111111128013f000000ffffffffffffffff1e3f000000d1
0102000000ffffffffffffffff28
Runtime Error (Test 4):
-----------------------
error: invalid code
Assembly Code (Test 5):
-----------------------
00000000* SET @00000000 #0000000000000001
0000000d BNZ $00000000, :00000020
00000013 SET @00000001 #1111111111111111
00000020 SET @0000003f #ffffffffffffffff
0000002d BNZ $0000003f, :00000013
00000033 SET @00000002 #ffffffffffffffff
00000040 FIN
Machine Code (Test 5):
----------------------
010000000001000000000000001e000000001301010000001111111111111111013f000000ffffffffffffffff1e3f000000e601
02000000ffffffffffffffff28
Runtime Result (Test 5):
-----------------------
stopped - zero balance