Test for AT instruction code 0x12 (JMP_SUB)
-------------------------------------------

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 - Check some basic usage (using ret).
Test 3 - Jump to not valid address point
Test 4 - infinite loop

Assembly Code (Test 1):
-----------------------

00000000* SET @00000000 #0000000000000000
0000000d  JSR :0000001f
00000012  SET @00000000 #1111111111111111
0000001f  INC @00000000
00000024  FIN

Machine Code (Test 1):
----------------------

01000000000000000000000000121f00000001000000001111111111111111040000000028

Data Dump (Test 1):
-------------------

00000000 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
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 00 00 00 00 00 00 00 00 

Assembly Code (Test 2):
-----------------------

00000000  SET @00000000 #0000000000000000
0000000d* JSR :00000018
00000012  INC @00000000
00000017  FIN
00000018  SET @00000000 #1111111111111110
00000025  RET

Machine Code (Test 2):
----------------------

0100000000000000000000000012180000000400000000280100000000101111111111111113

Data Dump (Test 2):
-------------------

00000000  11 11 11 11 11 11 11 11 00 00 00 00 00 00 00 00
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 00 00 00 00 00 00 00 00

Assembly Code (Test 3):
-----------------------

00000000  SET @00000000 #0000000000000000
0000000d* JSR :00000020
00000012  INC @00000000
00000017  FIN
00000018  SET @00000000 #1111111111111110
00000025  RET

Machine Code (Test 3):
-----------------------

0100000000000000000000000012220000000400000000280100000000101111111111111113

Runtime Error (Test 3):
-----------------------

error: invalid code

Assembly Code (Test 4):
-----------------------

00000000  SET @00000000 #0000000000000000
0000000d  INC @00000000
00000012* JSR :00000000
00000017  FIN

Machine Code (Test 4):
-----------------------

010000000000000000000000000400000000120000000028

Runtime Error (Test 4):
-----------------------

error: overflow