insn_JUMP.awl 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507
  1. // Test SPA
  2. __STWRST
  3. SPA _101
  4. __ASSERT== 1, 2
  5. _101: NOP 0
  6. __STWRST
  7. SET
  8. SPA _102
  9. __ASSERT== 1, 2
  10. _102: NOP 0
  11. // Test SPB
  12. __STWRST
  13. SPB _201
  14. SPA _202
  15. _201: __ASSERT== 1, 2
  16. _202: NOP 0
  17. __ASSERT== __STW OR, 0
  18. __ASSERT== __STW STA, 1
  19. __ASSERT== __STW VKE, 1
  20. __STWRST
  21. SET
  22. SPB _203
  23. __ASSERT== 1, 2
  24. _203: NOP 0
  25. __ASSERT== __STW OR, 0
  26. __ASSERT== __STW STA, 1
  27. __ASSERT== __STW VKE, 1
  28. // Test SPBN
  29. __STWRST
  30. SET
  31. SPBN _301
  32. SPA _302
  33. _301: __ASSERT== 1, 2
  34. _302: NOP 0
  35. __ASSERT== __STW OR, 0
  36. __ASSERT== __STW STA, 1
  37. __ASSERT== __STW VKE, 1
  38. __STWRST
  39. SPBN _303
  40. __ASSERT== 1, 2
  41. _303: NOP 0
  42. __ASSERT== __STW OR, 0
  43. __ASSERT== __STW STA, 1
  44. __ASSERT== __STW VKE, 1
  45. // Test SPBB
  46. __STWRST
  47. SPBB _401
  48. SPA _402
  49. _401: __ASSERT== 1, 2
  50. _402: NOP 0
  51. __ASSERT== __STW OR, 0
  52. __ASSERT== __STW STA, 1
  53. __ASSERT== __STW VKE, 1
  54. __ASSERT== __STW BIE, 0
  55. __STWRST
  56. SET
  57. SPBB _403
  58. __ASSERT== 1, 2
  59. _403: NOP 0
  60. __ASSERT== __STW OR, 0
  61. __ASSERT== __STW STA, 1
  62. __ASSERT== __STW VKE, 1
  63. __ASSERT== __STW BIE, 1
  64. // Test SPBNB
  65. __STWRST
  66. SET
  67. SPBNB _501
  68. SPA _502
  69. _501: __ASSERT== 1, 2
  70. _502: NOP 0
  71. __ASSERT== __STW OR, 0
  72. __ASSERT== __STW STA, 1
  73. __ASSERT== __STW VKE, 1
  74. __ASSERT== __STW BIE, 1
  75. __STWRST
  76. SPBNB _503
  77. __ASSERT== 1, 2
  78. _503: NOP 0
  79. __ASSERT== __STW OR, 0
  80. __ASSERT== __STW STA, 1
  81. __ASSERT== __STW VKE, 1
  82. __ASSERT== __STW BIE, 0
  83. // Test SPBI
  84. __STWRST
  85. SPBI _601
  86. SPA _602
  87. _601: __ASSERT== 1, 2
  88. _602: NOP 0
  89. __ASSERT== __STW OR, 0
  90. __ASSERT== __STW STA, 1
  91. __ASSERT== __STW BIE, 0
  92. __STWRST
  93. L W#16#0100
  94. T STW
  95. SPBI _603
  96. __ASSERT== 1, 2
  97. _603: NOP 0
  98. __ASSERT== __STW OR, 0
  99. __ASSERT== __STW STA, 1
  100. __ASSERT== __STW BIE, 1
  101. // Test SPBIN
  102. __STWRST
  103. L W#16#0100
  104. T STW
  105. SPBIN _701
  106. SPA _702
  107. _701: __ASSERT== 1, 2
  108. _702: NOP 0
  109. __ASSERT== __STW OR, 0
  110. __ASSERT== __STW STA, 1
  111. __ASSERT== __STW BIE, 1
  112. __STWRST
  113. SPBIN _703
  114. __ASSERT== 1, 2
  115. _703: NOP 0
  116. __ASSERT== __STW OR, 0
  117. __ASSERT== __STW STA, 1
  118. __ASSERT== __STW BIE, 0
  119. // Test SPO
  120. __STWRST
  121. SPO _801
  122. SPA _802
  123. _801: __ASSERT== 1, 2
  124. _802: NOP 0
  125. __ASSERT== __STW OV, 0
  126. __STWRST
  127. L W#16#0020
  128. T STW
  129. SPO _803
  130. __ASSERT== 1, 2
  131. _803: NOP 0
  132. __ASSERT== __STW OV, 1
  133. // Test SPS
  134. __STWRST
  135. SPS _901
  136. SPA _902
  137. _901: __ASSERT== 1, 2
  138. _902: NOP 0
  139. __ASSERT== __STW OS, 0
  140. __STWRST
  141. L W#16#0010
  142. T STW
  143. __ASSERT== __STW OS, 1
  144. SPS _903
  145. __ASSERT== 1, 2
  146. _903: NOP 0
  147. __ASSERT== __STW OS, 0
  148. // Test SPZ
  149. __STWRST
  150. L W#16#0080
  151. T STW
  152. SPZ _A01
  153. SPA _A02
  154. _A01: __ASSERT== 1, 2
  155. _A02: NOP 0
  156. __ASSERT== __STW A0, 0
  157. __ASSERT== __STW A1, 1
  158. __STWRST
  159. L W#16#0040
  160. T STW
  161. SPZ _A03
  162. SPA _A04
  163. _A03: __ASSERT== 1, 2
  164. _A04: NOP 0
  165. __ASSERT== __STW A0, 1
  166. __ASSERT== __STW A1, 0
  167. __STWRST
  168. L W#16#00C0
  169. T STW
  170. SPZ _A05
  171. SPA _A06
  172. _A05: __ASSERT== 1, 2
  173. _A06: NOP 0
  174. __ASSERT== __STW A0, 1
  175. __ASSERT== __STW A1, 1
  176. __STWRST
  177. SPZ _A07
  178. __ASSERT== 1, 2
  179. _A07: NOP 0
  180. __ASSERT== __STW A0, 0
  181. __ASSERT== __STW A1, 0
  182. // Test SPN
  183. __STWRST
  184. L W#16#0080
  185. T STW
  186. SPN _B01
  187. __ASSERT== 1, 2
  188. _B01: NOP 0
  189. __ASSERT== __STW A0, 0
  190. __ASSERT== __STW A1, 1
  191. __STWRST
  192. L W#16#0040
  193. T STW
  194. SPN _B02
  195. __ASSERT== 1, 2
  196. _B02: NOP 0
  197. __ASSERT== __STW A0, 1
  198. __ASSERT== __STW A1, 0
  199. __STWRST
  200. L W#16#00C0
  201. T STW
  202. SPN _B03
  203. SPA _B04
  204. _B03: __ASSERT== 1, 2
  205. _B04: NOP 0
  206. __ASSERT== __STW A0, 1
  207. __ASSERT== __STW A1, 1
  208. __STWRST
  209. SPN _B05
  210. SPA _B06
  211. _B05: __ASSERT== 1, 2
  212. _B06: NOP 0
  213. __ASSERT== __STW A0, 0
  214. __ASSERT== __STW A1, 0
  215. // Test SPP
  216. __STWRST
  217. SPP _C01
  218. SPA _C02
  219. _C01: __ASSERT== 1, 2
  220. _C02: NOP 0
  221. __ASSERT== __STW A0, 0
  222. __ASSERT== __STW A1, 0
  223. __STWRST
  224. L W#16#0080
  225. T STW
  226. SPP _C03
  227. __ASSERT== 1, 2
  228. _C03: NOP 0
  229. __ASSERT== __STW A0, 0
  230. __ASSERT== __STW A1, 1
  231. __STWRST
  232. L W#16#0040
  233. T STW
  234. SPP _C04
  235. SPA _C05
  236. _C04: __ASSERT== 1, 2
  237. _C05: NOP 0
  238. __ASSERT== __STW A0, 1
  239. __ASSERT== __STW A1, 0
  240. __STWRST
  241. L W#16#00C0
  242. T STW
  243. SPP _C06
  244. SPA _C07
  245. _C06: __ASSERT== 1, 2
  246. _C07: NOP 0
  247. __ASSERT== __STW A0, 1
  248. __ASSERT== __STW A1, 1
  249. // Test SPM
  250. __STWRST
  251. SPM _D01
  252. SPA _D02
  253. _D01: __ASSERT== 1, 2
  254. _D02: NOP 0
  255. __ASSERT== __STW A0, 0
  256. __ASSERT== __STW A1, 0
  257. __STWRST
  258. L W#16#0080
  259. T STW
  260. SPM _D03
  261. SPA _D04
  262. _D03: __ASSERT== 1, 2
  263. _D04: NOP 0
  264. __ASSERT== __STW A0, 0
  265. __ASSERT== __STW A1, 1
  266. __STWRST
  267. L W#16#0040
  268. T STW
  269. SPM _D05
  270. __ASSERT== 1, 2
  271. _D05: NOP 0
  272. __ASSERT== __STW A0, 1
  273. __ASSERT== __STW A1, 0
  274. __STWRST
  275. L W#16#00C0
  276. T STW
  277. SPM _D06
  278. SPA _D07
  279. _D06: __ASSERT== 1, 2
  280. _D07: NOP 0
  281. __ASSERT== __STW A0, 1
  282. __ASSERT== __STW A1, 1
  283. // Test SPPZ
  284. __STWRST
  285. SPPZ _E01
  286. __ASSERT== 1, 2
  287. _E01: NOP 0
  288. __ASSERT== __STW A0, 0
  289. __ASSERT== __STW A1, 0
  290. __STWRST
  291. L W#16#0080
  292. T STW
  293. SPPZ _E02
  294. __ASSERT== 1, 2
  295. _E02: NOP 0
  296. __ASSERT== __STW A0, 0
  297. __ASSERT== __STW A1, 1
  298. __STWRST
  299. L W#16#0040
  300. T STW
  301. SPPZ _E03
  302. SPA _E04
  303. _E03: __ASSERT== 1, 2
  304. _E04: NOP 0
  305. __ASSERT== __STW A0, 1
  306. __ASSERT== __STW A1, 0
  307. __STWRST
  308. L W#16#00C0
  309. T STW
  310. SPPZ _E05
  311. SPA _E06
  312. _E05: __ASSERT== 1, 2
  313. _E06: NOP 0
  314. __ASSERT== __STW A0, 1
  315. __ASSERT== __STW A1, 1
  316. // Test SPMZ
  317. __STWRST
  318. SPMZ _F01
  319. __ASSERT== 1, 2
  320. _F01: NOP 0
  321. __ASSERT== __STW A0, 0
  322. __ASSERT== __STW A1, 0
  323. __STWRST
  324. L W#16#0080
  325. T STW
  326. SPMZ _F02
  327. SPA _F03
  328. _F02: __ASSERT== 1, 2
  329. _F03: NOP 0
  330. __ASSERT== __STW A0, 0
  331. __ASSERT== __STW A1, 1
  332. __STWRST
  333. L W#16#0040
  334. T STW
  335. SPMZ _F04
  336. __ASSERT== 1, 2
  337. _F04: NOP 0
  338. __ASSERT== __STW A0, 1
  339. __ASSERT== __STW A1, 0
  340. __STWRST
  341. L W#16#00C0
  342. T STW
  343. SPMZ _F05
  344. SPA _F06
  345. _F05: __ASSERT== 1, 2
  346. _F06: NOP 0
  347. __ASSERT== __STW A0, 1
  348. __ASSERT== __STW A1, 1
  349. // Test SPU
  350. __STWRST
  351. SPU _G01
  352. SPA _G02
  353. _G01: __ASSERT== 1, 2
  354. _G02: NOP 0
  355. __ASSERT== __STW A0, 0
  356. __ASSERT== __STW A1, 0
  357. __STWRST
  358. L W#16#0080
  359. T STW
  360. SPU _G03
  361. SPA _G04
  362. _G03: __ASSERT== 1, 2
  363. _G04: NOP 0
  364. __ASSERT== __STW A0, 0
  365. __ASSERT== __STW A1, 1
  366. __STWRST
  367. L W#16#0040
  368. T STW
  369. SPU _G05
  370. SPA _G06
  371. _G05: __ASSERT== 1, 2
  372. _G06: NOP 0
  373. __ASSERT== __STW A0, 1
  374. __ASSERT== __STW A1, 0
  375. __STWRST
  376. L W#16#00C0
  377. T STW
  378. SPU _G07
  379. __ASSERT== 1, 2
  380. _G07: NOP 0
  381. __ASSERT== __STW A0, 1
  382. __ASSERT== __STW A1, 1
  383. // Test LOOP
  384. L 15
  385. L 10
  386. _333: TAK
  387. INC 1
  388. TAK
  389. LOOP _333
  390. __ASSERT== __ACCU 1, 0
  391. __ASSERT== __ACCU 2, 25
  392. // Test LOOP underrun
  393. L 0
  394. LOOP _334
  395. __ASSERT== 1, 2 // Should not be reached
  396. _334: __ASSERT== __ACCU 1, DW#16#0000FFFF
  397. // Test SPL
  398. L 0
  399. SPL def0
  400. SPA ok0
  401. SPA err0
  402. SPA err0
  403. SPA err0
  404. def0: SPA err0
  405. err0: __ASSERT== 1, 0
  406. ok0: NOP 0
  407. L 3
  408. SPL def1
  409. SPA err1
  410. SPA err1
  411. SPA err1
  412. SPA ok1
  413. def1: SPA err1
  414. err1: __ASSERT== 1, 0
  415. ok1: NOP 0
  416. L 4
  417. SPL def2
  418. SPA err2
  419. SPA err2
  420. SPA err2
  421. def2: SPA ok2
  422. err2: __ASSERT== 1, 0
  423. ok2: NOP 0
  424. L 0
  425. SPL def3
  426. def3: SPA ok3
  427. err3: __ASSERT== 1, 0
  428. ok3: NOP 0
  429. L 0
  430. SPL def4
  431. SPA ok4
  432. def4: SPA err4
  433. err4: __ASSERT== 1, 0
  434. ok4: NOP 0
  435. CALL SFC 46 // STOP CPU