+ // --------------\r
+ ot("CycloneSetRealTAS_JT%s\n", ms?"":":");\r
+#if (CYCLONE_FOR_GENESIS == 2)\r
+ ot(" tst r0,r0\n");\r
+ ot(" add r12,r1,#0x4a00*4\n");\r
+ ot(" add r12,r12,#0x00d0*4\n");\r
+ ot(" adr r2,CycloneOT_TAS_\n");\r
+ ot(" addeq r2,r2,#%lu*4\n", sizeof(tas_ops) / sizeof(tas_ops[0]));\r
+\r
+ ChangeTASGet(0);\r
+ ot(" mov r1,#8\n");\r
+ ot("setrtas_loop0%s ;@ 4ad0-4ad7\n",ms?"":":");\r
+ ot(" subs r1,r1,#1\n");\r
+ ot(" str r0,[r12],#4\n");\r
+ ot(" bne setrtas_loop0\n");\r
+\r
+ ChangeTASGet(1);\r
+ ot(" mov r1,#7\n");\r
+ ot("setrtas_loop1%s ;@ 4ad8-4ade\n",ms?"":":");\r
+ ot(" subs r1,r1,#1\n");\r
+ ot(" str r0,[r12],#4\n");\r
+ ot(" bne setrtas_loop1\n");\r
+\r
+ ChangeTASGet(2);\r
+ ot(" str r0,[r12],#4\n");\r
+ ChangeTASGet(3);\r
+ ot(" mov r1,#7\n");\r
+ ot("setrtas_loop2%s ;@ 4ae0-4ae6\n",ms?"":":");\r
+ ot(" subs r1,r1,#1\n");\r
+ ot(" str r0,[r12],#4\n");\r
+ ot(" bne setrtas_loop2\n");\r
+\r
+ ChangeTASGet(4);\r
+ ot(" str r0,[r12],#4\n");\r
+ ChangeTASGet(5);\r
+ ot(" mov r1,#8\n");\r
+ ot("setrtas_loop3%s ;@ 4ae8-4aef\n",ms?"":":");\r
+ ot(" subs r1,r1,#1\n");\r
+ ot(" str r0,[r12],#4\n");\r
+ ot(" bne setrtas_loop3\n");\r
+\r
+ ChangeTASGet(6);\r
+ ot(" mov r1,#8\n");\r
+ ot("setrtas_loop4%s ;@ 4af0-4af7\n",ms?"":":");\r
+ ot(" subs r1,r1,#1\n");\r
+ ot(" str r0,[r12],#4\n");\r
+ ot(" bne setrtas_loop4\n");\r
+\r
+ ChangeTASGet(7);\r
+ ot(" str r0,[r12],#4\n");\r
+ ChangeTASGet(8);\r
+ ot(" str r0,[r12],#4\n");\r
+#endif\r
+ ot(" bx lr\n");\r
+ ot("\n");\r
+\r
+ // --------------\r
+ // offset table to avoid .text relocations (forbidden by Android and iOS)\r
+#if (CYCLONE_FOR_GENESIS == 2)\r
+ ot("CycloneOT_TAS_%s\n", ms?"":":"); // working TAS (no MD bug)\r
+ for (size_t i = 0; i < sizeof(tas_ops) / sizeof(tas_ops[0]); i++)\r
+ ot(" %s %s_-CycloneOT_TAS_\n", ms?"dcd":".long", tas_ops[i]);\r
+ ot("CycloneOT_TAS%s\n", ms?"":":"); // broken TAS\r
+ for (size_t i = 0; i < sizeof(tas_ops) / sizeof(tas_ops[0]); i++)\r
+ ot(" %s %s-CycloneOT_TAS\n", ms?"dcd":".long", tas_ops[i]);\r
+ ot("\n");\r
+#endif\r
+\r