home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / source / console.src < prev    next >
Text File  |  2006-10-19  |  132KB  |  3,911 lines

  1. 0000 83E0 0024      DATA >83E0,>0024        Reset Interrupt
  2. 0004 83C0 0900      DATA >83C0,>0900
  3. 0008 83C0 0A92      DATA >83C0,>0A92
  4. 000C 30             BYTE >30            Clock Speed (3.0 MHz)
  5. 000D AA             BYTE >AA
  6. 000E 0460 02B2      B    @>02B2            Keyboard scan routine
  7. 0012 0008           DATA >0008
  8. 0014 1E00           SBZ  0
  9. 0016 0460 007A      B    @>007A
  10. 001A 1E00           SBZ  0
  11. 001C 0460 0078      B    @>0078
  12. 0020 0460 04B2      B    @>04B2                 Function-4 detection
  13.  
  14. *************************************************************************
  15. *                                    *
  16. *            MAIN CONSOLE ROUTINE                *
  17. *                                    *
  18. *************************************************************************
  19.  
  20. *************************************************************************
  21. *                                    *
  22. *  GPL Instruction >0B - EXIT                        *
  23. *                                    *
  24. *     Return control to the system monitor.                *
  25. *                                    *
  26. *************************************************************************
  27.  
  28. 0024 020D 9800      LI   R13,>9800        GROM Read Data
  29. 0028 020E 0100      LI   R14,>0100        System Flags
  30. 002C 020F 8C02      LI   R15,VDPWA        VDP Write Address
  31. 0030 0200 0020      LI   R0,>0020
  32. 0034 1013           JMP  >005C
  33.  
  34. 0036 1000           DATA >1000
  35.  
  36. 0038 1E00           SBZ  0
  37. 003A 02E0 280A      LWPI >280A
  38. 003E 0380           RTWP
  39.  
  40. 0040 280A           DATA >280A        XOP 0 Workspace Address
  41. 0042 0C1C           DATA >0C1C        XOP 0 Program Counter
  42. 0044 FFD8           DATA >FFD8        XOP 1 Workspace Address
  43. 0046 FFF8           DATA >FFF8        XOP 1 Program Counter
  44. 0048 83A0           DATA >83A0        XOP 2 Workspace Address
  45. 004A 8300           DATA >8300        XOP 2 Program Counter
  46. 004C 1100           DATA >1100
  47.  
  48. *************************************************************************
  49. *                                    *
  50. *  GPL Instruction >F8,>F9,>FA,>FB - UNUSED (yea right)            *
  51. *                                    *
  52. *************************************************************************
  53.  
  54. 004E 06A0 0864      BL   @>0864
  55. 0052 06A0 0864      BL   @>0864
  56. 0056 C90D 8300      MOV  R13,@>8300(R4)
  57. 005A C342           MOV  R2,R13
  58.  
  59. *************************************************************************
  60. *                                    *
  61. *  GPL interpreter - reading from GROM                    *
  62. *                                    *
  63. *************************************************************************
  64.  
  65. 005C D11D           MOVB *R13,R4
  66. 005E C180           MOV  R0,R6
  67. 0060 DB46 0402      MOVB R6,@>0402(R13)        Set GROM read address
  68. 0064 DB60 83ED 0402 MOVB @>83ED,@>0402(R13)
  69. 006A 5820 011B 837C SZCB @>011B,@>837C        Clear COND bit in GPL status
  70. 0070 0300 0002      LIMI >0002
  71. 0074 0300 0000      LIMI >0000
  72. 0078 D25D           MOVB *R13,R9
  73. 007A 1105           JLT  >0086
  74. 007C D109           MOVB R9,R4        GPL Instructions >00 - >7F
  75. 007E 09C4           SRL  R4,12
  76. 0080 C164 0C36      MOV  @>0C36(R4),R5
  77. 0084 0455           B    *R5
  78.  
  79. 0086 04C4           CLR  R4        GPL Instructions >80 - >FF
  80. 0088 C149           MOV  R9,R5
  81. 008A 0245 0100      ANDI R5,>0100
  82. 008E 06A0 077A      BL   @>077A
  83. 0092 06C4           SWPB R4
  84. 0094 C0C1           MOV  R1,R3
  85. 0096 C080           MOV  R0,R2
  86. 0098 0289 A000      CI   R9,>A000
  87. 009C 1A09           JL   >00B0
  88. 009E 2260 0030      COC  @>0030,9
  89. 00A2 160C           JNE  >00BC
  90. 00A4 C04D           MOV  R13,R1
  91. 00A6 D011           MOVB *R1,R0
  92. 00A8 0601           DEC  R1
  93. 00AA 06A0 07AA      BL   @>07AA
  94. 00AE 1008           JMP  >00C0
  95.  
  96. *************************************************************************
  97. *                                    *
  98. *  GPL Instructions >80 - >9F                        *
  99. *                                    *
  100. *************************************************************************
  101.  
  102. 00B0 C209           MOV  R9,R8
  103. 00B2 0988           SRL  R8,8
  104. 00B4 0700           SETO R0
  105. 00B6 C228 0BFE      MOV  @>0BFE(R8),R8
  106. 00BA 0458           B    *R8
  107.  
  108. 00BC 06A0 077A      BL   @>077A
  109. 00C0 C209           MOV  R9,R8
  110. 00C2 0998           SRL  R8,9
  111. 00C4 C228 0C4E      MOV  @>0C4E(R8),R8
  112. 00C8 8002           C    R2,R0
  113. 00CA 0458           B    *R8
  114.  
  115. *************************************************************************
  116. *                                    *
  117. *  GPL Instruction >D0,>D1,>D2,>D3 - Compare greater or equal        *
  118. *                                    *
  119. *************************************************************************
  120.  
  121. 00CC 11CE           JLT  >006A
  122. 00CE F820 011B 837C SOCB @>011B,@>837C        Set COND bit in GPL status
  123. 00D4 10CD           JMP  >0070
  124.  
  125. *************************************************************************
  126. *                                    *
  127. *  GPL Instruction >C4,>C5,>C6,>C7 - Compare high            *
  128. *                                    *
  129. *************************************************************************
  130.  
  131. 00D6 1BFB           JH   >00CE
  132. 00D8 10C8           JMP  >006A
  133.  
  134. *************************************************************************
  135. *                                    *
  136. *  GPL Instruction >C8,>C9,>CA,>CB - Compare high or equal        *
  137. *                                    *
  138. *************************************************************************
  139.  
  140. 00DA 14F9           JHE  >00CE
  141. 00DC 10C6           JMP  >006A
  142.  
  143. *************************************************************************
  144. *                                    *
  145. *  GPL Instruction >CC,>CD,>CE,>CF - Compare Greater Than        *
  146. *                                    *
  147. *************************************************************************
  148.  
  149. 00DE 15F7           JGT  >00CE
  150. 00E0 10C4           JMP  >006A
  151.  
  152. *************************************************************************
  153. *                                    *
  154. *  GPL Instruction >D8,>D9,>DA,>DB - CLOG                *
  155. *                                    *
  156. *************************************************************************
  157.  
  158. 00E2 0540           INV  R0
  159. 00E4 4080           SZC  R0,R2
  160. 00E6 13F3           JEQ  >00CE
  161. 00E8 10C0           JMP  >006A
  162.  
  163. *************************************************************************
  164. *                                    *
  165. *  GPL Instruction >8E - Compare Zero                    *
  166. *                                    *
  167. *************************************************************************
  168.  
  169. 00EA C082           MOV  R2,R2
  170.  
  171. *************************************************************************
  172. *                                    *
  173. *  GPL Instruction >D4,>D5,>D6,>D7 - Compare Equal            *
  174. *                                    *
  175. *************************************************************************
  176.  
  177. 00EC 02C4           STST R4
  178. 00EE D804 837C      MOVB R4,@>837C
  179. 00F2 10BE           JMP  >0070
  180.  
  181. *************************************************************************
  182. *                                    *
  183. *  GPL Instruction >09 - Test Logical High Bit                *
  184. *  GPL Instruction >0A - Test Arithmetic Greater Than Bit        *
  185. *  GPL Instruction >0C - Test Carry Bit                    *
  186. *  GPL Instruction >0D - Test Overflow Bit                *
  187. *                                    *
  188. *************************************************************************
  189.  
  190. 00F4 C009           MOV  R9,R0
  191. 00F6 0AC0           SLA  R0,12
  192. 00F8 09D0           SRL  R0,13
  193. 00FA D160 837C      MOVB @>837C,R5
  194. 00FE 0A05           SLA  R5,0
  195. 0100 18E6           JOC  >00CE
  196. 0102 10B3           JMP  >006A
  197.  
  198. *************************************************************************
  199. *                                    *
  200. *  GPL Instruction >05 - Branch                        *
  201. *                                    *
  202. *************************************************************************
  203.  
  204. 0104 D19D           MOVB *R13,R6    Get destination address in R6
  205. 0106 1000           NOP
  206. 0108 D81D 83ED      MOVB *R13,@>83ED
  207. 010C 10A9           JMP  >0060
  208.  
  209. *************************************************************************
  210. *                                    *
  211. *  GPL Instructions >60 - >7F - Branch on set                *
  212. *                                    *
  213. *     The first three bits of the instruction are the opcode.  The    *
  214. *  last five bits are the high order destination address.  The        *
  215. *  operand contains the low byte of the destination address        *
  216. *                                    *
  217. *************************************************************************
  218.  
  219. 010E D120 837C      MOVB @>837C,R4    Get GPL status register
  220. 0112 0A24           SLA  R4,2        Check COND bit
  221. 0114 1106           JLT  >0122
  222. 0116 D11D           MOVB *R13,R4    Skip past operand
  223. 0118 10A8           JMP  >006A
  224.  
  225. *************************************************************************
  226. *                                    *
  227. *  GPL Instructions >60 - >7F - Branch on reset                *
  228. *                                    *
  229. *     The first three bits of the instruction are the opcode.  The    *
  230. *  last five bits are the high order destination address.  The        *
  231. *  operand contains the low byte of the destination address        *
  232. *                                    *
  233. *************************************************************************
  234.  
  235. 011A D120 837C      MOVB @>837C,R4    Get GPL status register
  236. 011E 0A24           SLA  R4,2        Check COND bit
  237. 0120 11FA           JLT  >0116
  238. 0122 D81D 83F3      MOVB *R13,@>83F3    Get branch address in low byte of R9
  239. 0126 0249 1FFF      ANDI R9,>1FFF
  240. 012A D1AD 0002      MOVB @>0002(R13),R6
  241. 012E 0246 E000      ANDI R6,>E000
  242. 0132 E189           SOC  R9,R6
  243. 0134 1095           JMP  >0060
  244.  
  245. *************************************************************************
  246. *                                    *
  247. *  GPL Instruction >80 - Absolute Value                    *
  248. *                                    *
  249. *  Definition:  Replace the GD with the absolute value of the        *
  250. *               GD. Does not affect status bits.            *
  251. *                                    *
  252. *************************************************************************
  253.  
  254. 0136 0742           ABS  R2
  255. 0138 107A           JMP  >022E
  256.  
  257. *************************************************************************
  258. *                                    *
  259. *  GPL Instruction >82 - Negate                        *
  260. *                                    *
  261. *  Definition:  Replace the GD with its two's complement value.        *
  262. *               Does not affect atatus bits.                *
  263. *                                    *
  264. *************************************************************************
  265.  
  266. 013A 0502           NEG  R2
  267. 013C 1078           JMP  >022E
  268.  
  269. *************************************************************************
  270. *                                    *
  271. *  GPL Instruction >86 - Clear Location                    *
  272. *                                    *
  273. *  Definition:  Replace the GD with a zero. Does not affect        *
  274. *               status bits.                        *
  275. *                                    *
  276. *************************************************************************
  277.  
  278. 013E 0702           SETO R2
  279.  
  280. *************************************************************************
  281. *                                    *
  282. *  GPL Instruction >84 - Invert                        *
  283. *                                    *
  284. *  Definition:  Replace the GD with its one's complement value.        *
  285. *               Does not affect status bits.                *
  286. *                                    *
  287. *************************************************************************
  288.  
  289. 0140 0542           INV  R2
  290. 0142 1075           JMP  >022E
  291.  
  292. *************************************************************************
  293. *                                    *
  294. *  GPL Instruction >88 - Fetch                        *
  295. *                                    *
  296. *  Definition:  Retrieves a byte of data pointed to by the return    *
  297. *               address on the subroutine stack and increments        *
  298. *               this return address by 1.                *
  299. *                                    *
  300. *************************************************************************
  301.  
  302. 0144 C184           MOV  R4,R6
  303. 0146 06A0 0864      BL   @>0864
  304. 014A 0644           DECT R4
  305. 014C 06A0 0848      BL   @>0848
  306. 0150 D09D           MOVB *R13,R2
  307. 0152 0882           SRA  R2,8
  308. 0154 05A4 8300      INC  @>8300(R4)
  309. 0158 05C4           INCT R4
  310. 015A 06A0 084C      BL   @>084C
  311. 015E C106           MOV  R6,R4
  312. 0160 1066           JMP  >022E
  313.  
  314. *************************************************************************
  315. *                                    *
  316. *  GPL Instruction >8A - Case                        *
  317. *                                    *
  318. *  Definition:  Add two times the value of the operand to the        *
  319. *               current GROM Program Counter. Reset condition bit    *
  320. *               in status.                        *
  321. *                                    *
  322. *************************************************************************
  323.  
  324. 0162 0602           DEC  R2
  325. 0164 1782           JNC  >006A
  326. 0166 D15D           MOVB *R13,R5
  327. 0168 1000           NOP
  328. 016A D15D           MOVB *R13,R5
  329. 016C 10FA           JMP  >0162
  330.  
  331. *************************************************************************
  332. *                                    *
  333. *  GPL Instruction >8C - Push Onto Data Stack                *
  334. *                                    *
  335. *  Definition:  Increment the data stack pointer & push the        *
  336. *               one byte operand onto it. (Opposite of instruction    *
  337. *               POP). No status bits are affected.            *
  338. *                                    *
  339. *************************************************************************
  340.  
  341. 016E B80E 8372      AB   R14,@>8372
  342. 0172 D1A0 8372      MOVB @>8372,R6
  343. 0176 0986           SRL  R6,8
  344. 0178 D9A0 83E5 8300 MOVB @>83E5,@>8300(R6)
  345. 017E 0460 0070      B    @>0070
  346.  
  347. *************************************************************************
  348. *                                    *
  349. *  GPL Instruction >96 - Decrement by Two                *
  350. *                                    *
  351. *  Definition:  Replace the GD with the GD minus two. The result    *
  352. *               is compared with zero and the status bits are set/    *
  353. *               reset to indicate the result of this comparison.    *
  354. *                                    *
  355. *************************************************************************
  356.  
  357. 0182 09E0           SRL  R0,14
  358.  
  359. *************************************************************************
  360. *                                    *
  361. *  GPL Instruction >94 - Increment by Two                *
  362. *                                    *
  363. *  Definition:  Replace the GD with the GD plus two. The result        *
  364. *               is compared with zero and the status bits are set/    *
  365. *               reset to indicate the result of this comparison.    *
  366. *                                    *
  367. *************************************************************************
  368.  
  369. 0184 0600           DEC  R0
  370.  
  371. *************************************************************************
  372. *                                    *
  373. *  GPL Instruction >90 - Increment by one                *
  374. *           >A4,>A5,>A6,>A7 - SUB
  375. *                                    *
  376. *  Definition:  Replace the GD with the GD plus one. The result        *
  377. *               is compared with zero and the status bits are        *
  378. *               set/reset to indicate the result of this comparion.    *
  379. *                                    *
  380. *************************************************************************
  381.  
  382. 0186 0500           NEG  R0
  383.  
  384. *************************************************************************
  385. *                                    *
  386. *  GPL Instruction >A0,>A1,>A2,>A3 - ADD                *
  387. *                                    *
  388. *  Definition:  Replace GD with the sum of the GS and GD.        *
  389. *               Compare the result to zero and set/reset status        *
  390. *               bits to indicate this result.                *
  391. *                                    *
  392. *  GPL Instruction >92 - Decrement by One                *
  393. *                                    *
  394. *  Definition:  Replace the GD with GD minus one.  The result is    *
  395. *               compared with zero & the status bits are set/reset    *
  396. *               to indicate the result of this comparison.        *
  397. *                                    *
  398. *  Note:  To avoid confusion - if the instruction is >92, R0 is set to    *
  399. *      -1.  If the instruction is >A0 or >A1, R0 is the operand.    *
  400. *            You're welcome - DJN                *
  401. *                                    *
  402. *************************************************************************
  403.  
  404. 0188 D145           MOVB R5,R5
  405. 018A 134B           JEQ  >0222
  406. 018C A080           A    R0,R2
  407. 018E 104C           JMP  >0228
  408.  
  409. *************************************************************************
  410. *                                    *
  411. *  GPL Instruction >B0,>B1,>B2,>B3 - Logical AND            *
  412. *                                    *
  413. *  Definition:  Perform a bit-by-bit AND operation of the 8        *
  414. *               (16) bits in GS with the GD and store the result    *
  415. *               in the GD. The result is compared to zero and the    *
  416. *               status bits are set/reset to indicate the result.    *
  417. *                                    *
  418. *************************************************************************
  419.  
  420. 0190 0540           INV  R0
  421. 0192 4080           SZC  R0,R2
  422. 0194 1049           JMP  >0228
  423.  
  424. *************************************************************************
  425. *                                    *
  426. *  GPL Instruction >B4,>B5,>B6,>B7 - Logical OR                *
  427. *                                    *
  428. *  Definition:  Replace the GD with the GD OR'd with the GS.        *
  429. *               Compare the result to zero & set/reset the        *
  430. *               status bits to indicate this result.            *
  431. *                                    *
  432. *************************************************************************
  433.  
  434. 0196 E080           SOC  R0,R2
  435. 0198 1047           JMP  >0228
  436.  
  437. *************************************************************************
  438. *                                    *
  439. *  GPL Instruction >B8,>B9,>BA,>BB - Exclusive OR            *
  440. *                                    *
  441. *  Definition:  Exclusively OR the GS and GD and replace the GD        *
  442. *               with the result. The result is compared to zero        *
  443. *               and the status bits are set/reset to indicate the    *
  444. *               result.                            *
  445. *                                    *
  446. *************************************************************************
  447.  
  448. 019A 2880           XOR  R0,R2
  449. 019C 1045           JMP  >0228
  450.  
  451. *************************************************************************
  452. *                                    *
  453. *  GPL Instruction >BC,>BD,>BE,>BF - Store                *
  454. *                                    *
  455. *  Definition:  Replace the GD with the GS. The result is compared    *
  456. *        to zero and the status bits are set/reset to indicate    *
  457. *        the result.                        *
  458. *                                    *
  459. *************************************************************************
  460.  
  461. 019E C080           MOV  R0,R2
  462. 01A0 1046           JMP  >022E
  463.  
  464. *************************************************************************
  465. *                                    *
  466. *  GPL Instruction >C0,>C1,>C2,>C3 - EX                    *
  467. *                                    *
  468. *  Definition:  The contents of the first operand is exchanged        *
  469. *               with the contents of the second operand. No status    *
  470. *               bits are affected.                    *
  471. *                                    *
  472. *************************************************************************
  473.  
  474. 01A2 C242           MOV  R2,R9
  475. 01A4 C080           MOV  R0,R2
  476. 01A6 06A0 0232      BL   @>0232
  477. 01AA 06C4           SWPB R4
  478. 01AC C0C1           MOV  R1,R3
  479. 01AE 101B           JMP  >01E6
  480.  
  481. *************************************************************************
  482. *                                    *
  483. *  GPL Instruction >DC,>DD,>DE,>DF - Shift Right Arithmatic        *
  484. *                                    *
  485. *************************************************************************
  486.  
  487. 01B0 0802           SRA  R2,0
  488. 01B2 103D           JMP  >022E
  489.  
  490. *************************************************************************
  491. *                                    *
  492. *  GPL Instruction >E0,>E1,>E2,>E3 - Shift Left Logical            *
  493. *                                    *
  494. *  Definition:  Shift the (GD) left for the (GS) number of bits.    *
  495. *               Fill in the vacated bits with logical zeros.        *
  496. *               Status is not affected.                    *
  497. *                                    *
  498. *************************************************************************
  499.  
  500. 01B4 0A02           SLA  R2,0
  501. 01B6 103B           JMP  >022E
  502.  
  503. *************************************************************************
  504. *                                    *
  505. *  GPL Instruction >E4,>E5,>E6,>EE - Shift Right Logical        *
  506. *                                    *
  507. *  Definition:  Shift the (GD) right for the (GS) number of bits.    *
  508. *               Fill in the vacated bits with logical zeros.        *
  509. *               Status is not affected.                    *
  510. *                                    *
  511. *************************************************************************
  512.  
  513. 01B8 D145           MOVB R5,R5
  514. 01BA 1601           JNE  >01BE
  515. 01BC 7082           SB   R2,R2        If this is a byte operation, clear
  516.                     the high byte of R2 so we don't get
  517.                     errant bits coming into the low byte
  518. 01BE 0902           SRL  R2,0
  519. 01C0 1036           JMP  >022E
  520.  
  521. *************************************************************************
  522. *                                    *
  523. *  GPL Instruction >E8,>E9,>EA,>EB - Shift Right Circular        *
  524. *                                    *
  525. *  Definition:  Shift the (GD) right for the (GS) number of bits.    *
  526. *        Wrap around the bits. Status is not affected.        *
  527. *                                    *
  528. *************************************************************************
  529.  
  530. 01C2 D145           MOVB R5,R5
  531. 01C4 1602           JNE  >01CA
  532. 01C6 D0A0 83E5      MOVB @>83E5,R2    If this is a byte operation,
  533.                     duplicate the low order byte of R2
  534.                     in the high order byte of R2
  535. 01CA 0B02           SRC  R2,0
  536. 01CC 1030           JMP  >022E
  537.  
  538. *************************************************************************
  539. *                                    *
  540. *  GPL Instruction >A8,>A9,>AA,>AB - Multiply                *
  541. *                                    *
  542. *  Definition: Multiply the GD by the GS. In the single byte        *
  543. *              MUL, both operands are single byte values but        *
  544. *              the result is stored in a double byte location        *
  545. *              at GD. The 8 most significant bits are stored in        *
  546. *              the GD. In the double byte DMUL, both operands        *
  547. *              are double byte values and the result is a four        *
  548. *              byte value at GD. No status bits are affected.        *
  549. *              The multiply is an unsigned type.            *
  550. *                                    *
  551. *************************************************************************
  552.  
  553. 01CE C202           MOV  R2,R8
  554. 01D0 D145           MOVB R5,R5
  555. 01D2 1601           JNE  >01D6
  556. 01D4 7208           SB   R8,R8
  557. 01D6 3A00           MPY  R0,8
  558. 01D8 D145           MOVB R5,R5
  559. 01DA 1602           JNE  >01E0
  560. 01DC D809 83F1      MOVB R9,@>83F1
  561. 01E0 C088           MOV  R8,R2
  562. 01E2 06A0 0232      BL   @>0232
  563. 01E6 C089           MOV  R9,R2
  564. 01E8 1022           JMP  >022E
  565.  
  566. *************************************************************************
  567. *                                    *
  568. *  GPL Instruction >AC,>AD,>AE,>AF - Divide                *
  569. *                                    *
  570. *  Definition:  Replace the GD with the quotient and remainder of    *
  571. *               GD divided by GS. Compare the result to zero and    *
  572. *               set/reset status bits to indicate the result.        *
  573. *               The divide is of the signed type.            *
  574. *                                        *
  575. *************************************************************************
  576.  
  577. 01EA D805 837C      MOVB R5,@>837C
  578. 01EE C202           MOV  R2,R8
  579. 01F0 C080           MOV  R0,R2
  580. 01F2 C043           MOV  R3,R1
  581. 01F4 0581           INC  R1
  582. 01F6 D145           MOVB R5,R5
  583. 01F8 1301           JEQ  >01FC
  584. 01FA 0581           INC  R1
  585. 01FC D104           MOVB R4,R4
  586. 01FE 1303           JEQ  >0206
  587. 0200 06A0 07FA      BL   @>07FA
  588. 0204 1002           JMP  >020A
  589. 0206 06A0 07A8      BL   @>07A8
  590. 020A C240           MOV  R0,R9
  591. 020C D145           MOVB R5,R5
  592. 020E 1603           JNE  >0216
  593. 0210 D260 83F1      MOVB @>83F1,R9
  594. 0214 0888           SRA  R8,8
  595. 0216 3E02           DIV  R2,8
  596. 0218 19E3           JNO  >01E0
  597. 021A F820 0013 837C SOCB @>0013,@>837C
  598. 0220 10DF           JMP  >01E0
  599. 0222 B820 83E1 83E5 AB   @>83E1,@>83E5
  600. 0228 02CB           STST R11
  601. 022A D80B 837C      MOVB R11,@>837C
  602. 022E 020B 0070      LI   R11,>0070
  603. 0232 D104           MOVB R4,R4
  604. 0234 130F           JEQ  >0254
  605. 0236 D7E0 83E7      MOVB @>83E7,*R15
  606. 023A 0263 4000      ORI  R3,>4000
  607. 023E D7C3           MOVB R3,*R15
  608. 0240 D145           MOVB R5,R5
  609. 0242 1303           JEQ  >024A
  610. 0244 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  611. 0248 0583           INC  R3
  612. 024A DBE0 83E5 FFFE MOVB @>83E5,@>FFFE(R15)
  613. 0250 0583           INC  R3
  614. 0252 045B           RT
  615.  
  616. 0254 D145           MOVB R5,R5
  617. 0256 1301           JEQ  >025A
  618. 0258 DCC2           MOVB R2,*R3+
  619. 025A 06C2           SWPB R2
  620. 025C DCC2           MOVB R2,*R3+
  621. 025E 0283 837E      CI   R3,>837E
  622. 0262 16F7           JNE  >0252
  623. 0264 C18B           MOV  R11,R6
  624. 0266 06A0 0880      BL   @>0880
  625. 026A DBC2 FFFE      MOVB R2,@>FFFE(R15)
  626. 026E 0456           B    *R6
  627.  
  628. *************************************************************************
  629. *                                    *
  630. *  GPL INSTRUCTIONS >00 - >1F                        *
  631. *                                    *
  632. *    R9 holds the GPL instruction in the upper byte            *
  633. *                                    *
  634. *************************************************************************
  635.  
  636. 0270 0A39           SLA  R9,3
  637. 0272 09A9           SRL  R9,10
  638. 0274 C129 0C3E      MOV  @>0C3E(R9),R4
  639. 0278 0454           B    *R4
  640.  
  641. *************************************************************************
  642. *                                    *
  643. *  GPL Instruction >02 - Generate Random Number                *
  644. *                                    *
  645. *    Generates a random number between 0 and ARG, inclusive and stores    *
  646. *  it in >8375.  Default is 255.                    *
  647. *                                    *
  648. *************************************************************************
  649.  
  650. 027A 0204 6FE5      LI   R4,>6FE5
  651. 027E 3920 83C0      MPY  @>83C0,4
  652. 0282 0225 7AB9      AI   R5,>7AB9
  653. 0286 C805 83C0      MOV  R5,@>83C0
  654. 028A D19D           MOVB *R13,R6
  655. 028C 0986           SRL  R6,8
  656. 028E 0586           INC  R6
  657. 0290 04C4           CLR  R4
  658. 0292 06C5           SWPB R5
  659. 0294 3D06           DIV  R6,4
  660. 0296 D820 83EB 8378 MOVB @>83EB,@>8378
  661. 029C 1006           JMP  >02AA
  662.  
  663. *************************************************************************
  664. *                                    *
  665. *  GPL Instruction >04 - Load backdrop color                *
  666. *                                    *
  667. *************************************************************************
  668.  
  669. 029E 0207 8700      LI   R7,>8700
  670. 02A2 D81D 83EF      MOVB *R13,@>83EF
  671. 02A6 06A0 089A      BL   @>089A
  672. 02AA 0460 0070      B    @>0070
  673.  
  674. *************************************************************************
  675. *                                    *
  676. *  GPL Instruction >03 - Scan Keyboard                    *
  677. *                                    *
  678. *************************************************************************
  679.  
  680. 02AE 020B 0070      LI   R11,>0070
  681.  
  682. *************************************************************************
  683. *                                    *
  684. *              KEYBOARD SCAN ROUTINE                *
  685. *                                    *
  686. *************************************************************************
  687.  
  688. 02B2 C80B 83D8      MOV  R11,@>83D8
  689. 02B6 06A0 0864      BL   @>0864
  690. 02BA 04CC           CLR  R12
  691. 02BC 1D15           SBO  21
  692. 02BE D160 8374      MOVB @>8374,R5
  693. 02C2 0985           SRL  R5,8
  694. 02C4 C185           MOV  R5,R6
  695. 02C6 1312           JEQ  >02EC
  696. 02C8 0200 0FFF      LI   R0,>0FFF
  697. 02CC 0606           DEC  R6
  698. 02CE 1312           JEQ  >02F4
  699. 02D0 0200 F0FF      LI   R0,>F0FF
  700. 02D4 0606           DEC  R6
  701. 02D6 130E           JEQ  >02F4
  702. 02D8 0606           DEC  R6
  703. 02DA 8806 0072      C    R6,@>0072
  704. 02DE 1B51           JH   >0382
  705. 02E0 D806 8374      MOVB R6,@>8374
  706. 02E4 06C6           SWPB R6
  707. 02E6 D806 83C6      MOVB R6,@>83C6
  708. 02EA 04C5           CLR  R5
  709. 02EC 04C0           CLR  R0
  710. 02EE 04C6           CLR  R6
  711. 02F0 101E           JMP  >032E
  712. 02F2 2925           DATA >2925
  713. 02F4 020C 0024      LI   R12,>0024
  714. 02F8 30E5 0405      LDCR @>0405(R5),3
  715. 02FC 020C 0006      LI   R12,>0006
  716. 0300 04C3           CLR  R3
  717. 0302 0704           SETO R4
  718. 0304 3544           STCR R4,5
  719. 0306 0994           SRL  R4,9
  720. 0308 1803           JOC  >0310
  721. 030A D825 02F1 83E7 MOVB @>02F1(R5),@>83E7
  722. 0310 0A14           SLA  R4,1
  723. 0312 0224 16E0      AI   R4,>16E0
  724. 0316 DB44 0402      MOVB R4,@>0402(R13)
  725. 031A DB60 83E9 0402 MOVB @>83E9,@>0402(R13)
  726. 0320 1000           NOP
  727. 0322 D81D 8376      MOVB *R13,@>8376
  728. 0326 D81D 8377      MOVB *R13,@>8377
  729. 032A C0C3           MOV  R3,R3
  730. 032C 163E           JNE  >03AA
  731. 032E 0201 0005      LI   R1,>0005
  732. 0332 04C2           CLR  R2
  733. 0334 04C7           CLR  R7
  734. 0336 020C 0024      LI   R12,>0024
  735. 033A 06C1           SWPB R1
  736. 033C 30C1           LDCR R1,3
  737. 033E 06C1           SWPB R1
  738. 0340 020C 0006      LI   R12,>0006
  739. 0344 0704           SETO R4
  740. 0346 3604           STCR R4,8
  741. 0348 0544           INV  R4
  742. 034A C041           MOV  R1,R1
  743. 034C 1603           JNE  >0354
  744. 034E D1C4           MOVB R4,R7
  745. 0350 0244 0F00      ANDI R4,>0F00
  746. 0354 4100           SZC  R0,R4
  747. 0356 1311           JEQ  >037A
  748. 0358 C041           MOV  R1,R1
  749. 035A 1602           JNE  >0360
  750. 035C C145           MOV  R5,R5
  751. 035E 160D           JNE  >037A
  752. 0360 C082           MOV  R2,R2
  753. 0362 160B           JNE  >037A
  754. 0364 0702           SETO R2
  755. 0366 C0C1           MOV  R1,R3
  756. 0368 0A33           SLA  R3,3
  757. 036A 0603           DEC  R3
  758. 036C 0583           INC  R3
  759. 036E 0A14           SLA  R4,1
  760. 0370 17FD           JNC  >036C
  761. 0372 C041           MOV  R1,R1
  762. 0374 1302           JEQ  >037A
  763. 0376 0201 0001      LI   R1,>0001
  764. 037A 0601           DEC  R1
  765. 037C 18DC           JOC  >0336
  766. 037E C082           MOV  R2,R2
  767. 0380 1614           JNE  >03AA
  768. 0382 04C6           CLR  R6
  769. 0384 D806 83C7      MOVB R6,@>83C7
  770. 0388 0700           SETO R0
  771. 038A 9940 83C8      CB   R0,@>83C8(R5)
  772. 038E 1302           JEQ  >0394
  773. 0390 06A0 0498      BL   @>0498            Delay 0.0025 sec
  774. 0394 D800 83C8      MOVB R0,@>83C8
  775. 0398 D940 83C8      MOVB R0,@>83C8(R5)
  776. 039C C145           MOV  R5,R5
  777. 039E 166C           JNE  >0478
  778. 03A0 D800 83C9      MOVB R0,@>83C9
  779. 03A4 D800 83CA      MOVB R0,@>83CA
  780. 03A8 1067           JMP  >0478
  781. 03AA 9960 83E7 83C8 CB   @>83E7,@>83C8(R5)
  782. 03B0 131A           JEQ  >03E6
  783. 03B2 0206 2000      LI   R6,>2000
  784. 03B6 06A0 0498      BL   @>0498            Delay 0.0025 sec
  785. 03BA D820 83E7 83C8 MOVB @>83E7,@>83C8
  786. 03C0 D960 83E7 83C8 MOVB @>83E7,@>83C8(R5)
  787. 03C6 C145           MOV  R5,R5
  788. 03C8 160C           JNE  >03E2
  789. 03CA C303           MOV  R3,R12
  790. 03CC 022C FFF8      AI   R12,>FFF8
  791. 03D0 1108           JLT  >03E2
  792. 03D2 0201 0002      LI   R1,>0002
  793. 03D6 093C           SRL  R12,3
  794. 03D8 1801           JOC  >03DC
  795. 03DA 0601           DEC  R1
  796. 03DC D860 83E7 83C8 MOVB @>83E7,@>83C8(R1)
  797. 03E2 D807 83C7      MOVB R7,@>83C7
  798. 03E6 D1E0 83C7      MOVB @>83C7,R7
  799. 03EA 0201 17C0      LI   R1,>17C0
  800. 03EE C145           MOV  R5,R5
  801. 03F0 160E           JNE  >040E
  802. 03F2 0201 1790      LI   R1,>1790
  803. 03F6 0A27           SLA  R7,2
  804. 03F8 180A           JOC  >040E
  805. 03FA 0201 1760      LI   R1,>1760
  806. 03FE 09F7           SRL  R7,15
  807. 0400 1806           JOC  >040E
  808. 0402 0201 1730      LI   R1,>1730
  809. 0406 0607           DEC  R7
  810. 0408 1302           JEQ  >040E
  811. 040A 0201 1700      LI   R1,>1700
  812. 040E A043           A    R3,R1
  813. 0410 DB41 0402      MOVB R1,@>0402(R13)
  814. 0414 DB60 83E3 0402 MOVB @>83E3,@>0402(R13)
  815. 041A 1000           NOP
  816. 041C D01D           MOVB *R13,R0
  817. 041E C145           MOV  R5,R5
  818. 0420 162B           JNE  >0478
  819. 0422 D820 83C6 83E7 MOVB @>83C6,@>83E7
  820. 0428 06A0 04A2      BL   @>04A2
  821. 042C 617A           DATA >617A
  822. 042E 160A           JNE  >0444
  823. 0430 04CC           CLR  R12
  824. 0432 C0C3           MOV  R3,R3
  825. 0434 1304           JEQ  >043E
  826. 0436 1E15           SBZ  21
  827. 0438 0BEC           SRC  R12,14
  828. 043A 1F07           TB   7
  829. 043C 1302           JEQ  >0442
  830. 043E 7020 03B4      SB   @>03B4,R0
  831. 0442 1D15           SBO  21
  832. 0444 C0C3           MOV  R3,R3
  833. 0446 1607           JNE  >0456
  834. 0448 06A0 04A2      BL   @>04A2
  835. 044C 101F           DATA >101F
  836. 044E 1399           JEQ  >0382
  837. 0450 9800 0587      CB   R0,@>0587
  838. 0454 1B96           JH   >0382
  839. 0456 0603           DEC  R3
  840. 0458 160F           JNE  >0478
  841. 045A 9800 0025      CB   R0,@>0025
  842. 045E 130C           JEQ  >0478
  843. 0460 9800 02CA      CB   R0,@>02CA
  844. 0464 1B03           JH   >046C
  845. 0466 F020 0470      SOCB @>0470,R0
  846. 046A 1006           JMP  >0478
  847. 046C 06A0 04A2      BL   @>04A2
  848. 0470 809F           DATA >809F
  849. 0472 1602           JNE  >0478
  850. 0474 5020 0470      SZCB @>0470,R0
  851. 0478 D800 8375      MOVB R0,@>8375
  852. 047C 06A0 0842      BL   @>0842
  853. 0480 D806 837C      MOVB R6,@>837C
  854. 0484 1306           JEQ  >0492
  855. 0486 D7E0 83D4      MOVB @>83D4,*R15    Restore VDP R1
  856. 048A 04E0 83D6      CLR  @>83D6        Reset clear screen count down timer
  857. 048E D7E0 0B61      MOVB @>0B61,*R15
  858. 0492 C2E0 83D8      MOV  @>83D8,R11
  859. 0496 045B           RT
  860.  
  861. * Some sort of delay routine.  R12 = >04E2 = 1250.
  862. * ( 1250 iterations ) X ( 6 cycles / iteration )
  863. * -------------------------------------------------- = 0.0025 sec
  864. *                  ( 3Mhz )
  865. *
  866. 0498 020C 04E2      LI   R12,>04E2
  867. 049C 060C           DEC  R12
  868. 049E 16FE           JNE  >049C
  869. 04A0 045B           RT
  870.  
  871. 04A2 C33B           MOV  *R11+,R12
  872. 04A4 9300           CB   R0,R12
  873. 04A6 1A04           JL   >04B0
  874. 04A8 9800 83F9      CB   R0,@>83F9
  875. 04AC 1B01           JH   >04B0
  876. 04AE 9000           CB   R0,R0
  877. 04B0 045B           RT
  878.  
  879. 04B2 020C 0024      LI   R12,>0024
  880. 04B6 30E0 0012      LDCR @>0012,3
  881. 04BA 0B7C           SRC  R12,7
  882. 04BC 020C 0006      LI   R12,>0006
  883. 04C0 360C           STCR R12,8
  884. 04C2 2720 0036      CZC  @>0036,12
  885. 04C6 160A           JNE  >04DC
  886. 04C8 020C 0024      LI   R12,>0024
  887. 04CC 30E0 0074      LDCR @>0074,3
  888. 04D0 0B7C           SRC  R12,7
  889. 04D2 020C 0006      LI   R12,>0006
  890. 04D6 360C           STCR R12,8
  891. 04D8 2720 0036      CZC  @>0036,12
  892. 04DC 045B           RT
  893.  
  894. *************************************************************************
  895. *                                    *
  896. *  GPL Instruction >08 - Formatted Block Move                *
  897. *                                    *
  898. *************************************************************************
  899.  
  900. 04DE 04C9           CLR  R9
  901. 04E0 04C3           CLR  R3
  902. 04E2 06A0 0880      BL   @>0880
  903. 04E6 D21D           MOVB *R13,R8
  904. 04E8 020C 8373      LI   R12,>8373
  905. 04EC C148           MOV  R8,R5
  906. 04EE 0A38           SLA  R8,3
  907. 04F0 09B8           SRL  R8,11
  908. 04F2 0548           INV  R8
  909. 04F4 09C5           SRL  R5,12
  910. 04F6 C165 0CDC      MOV  @>0CDC(R5),R5
  911. 04FA 0202 050A      LI   R2,>050A
  912. 04FE 0704           SETO R4
  913. 0500 0455           B    *R5
  914.  
  915. *************************************************************************
  916. *                                    *
  917. *  GPL Instruction >E4,>E5                        *
  918. *                                    *
  919. *************************************************************************
  920.  
  921. 0502 0A54           SLA  R4,5
  922.  
  923. *************************************************************************
  924. *                                    *
  925. *  GPL Instruction >E2,E3                        *
  926. *                                    *
  927. *************************************************************************
  928.  
  929. 0504 8CB2           C    *R2+,*R2+
  930. 0506 1001           JMP  >050A
  931.  
  932. *************************************************************************
  933. *                                    *
  934. *  GPL Instruction >E0,>E1                        *
  935. *                                    *
  936. *************************************************************************
  937.  
  938. 0508 0A54           SLA  R4,5
  939.  
  940. *************************************************************************
  941. *                                    *
  942. *  GPL Instruction >DE,>DF                        *
  943. *                                    *
  944. *************************************************************************
  945.  
  946. 050A D19D           MOVB *R13,R6
  947. 050C A183           A    R3,R6
  948. 050E DBC6 FFFE      MOVB R6,@>FFFE(R15)
  949. 0512 61C4           S    R4,R7
  950. 0514 0287 0320      CI   R7,>0320
  951. 0518 1405           JHE  >0524
  952. 051A 0287 0300      CI   R7,>0300
  953. 051E 1A02           JL   >0524
  954. 0520 0227 FD00      AI   R7,>FD00
  955. 0524 06A0 05B8      BL   @>05B8
  956. 0528 06A0 0880      BL   @>0880
  957. 052C 0588           INC  R8
  958. 052E 13DB           JEQ  >04E6
  959. 0530 0452           B    *R2
  960.  
  961. *************************************************************************
  962. *                                    *
  963. *  GPL Instruction >E8,>E9                        *
  964. *                                    *
  965. *************************************************************************
  966.  
  967. 0532 0A58           SLA  R8,5
  968.  
  969. *************************************************************************
  970. *                                    *
  971. *  GPL Instruction >E6,>E7                        *
  972. *                                    *
  973. *************************************************************************
  974.  
  975. 0534 61C8           S    R8,R7
  976. 0536 0708           SETO R8
  977. 0538 10F0           JMP  >051A
  978.  
  979. *************************************************************************
  980. *                                    *
  981. *  GPL Instruction >E8,>EB                        *
  982. *                                    *
  983. *************************************************************************
  984.  
  985. 053A 0589           INC  R9
  986. 053C 05DC           INCT *R12
  987. 053E D19C           MOVB *R12,R6
  988. 0540 0986           SRL  R6,8
  989. 0542 D9A0 83F1 8300 MOVB @>83F1,@>8300(R6)
  990. 0548 10CE           JMP  >04E6
  991. 054A 065C           DECT *R12
  992. 054C 0609           DEC  R9
  993. 054E 10CB           JMP  >04E6
  994. 0550 C249           MOV  R9,R9
  995. 0552 1330           JEQ  >05B4
  996. 0554 D11D           MOVB *R13,R4
  997. 0556 D19C           MOVB *R12,R6
  998. 0558 D15D           MOVB *R13,R5
  999. 055A 0986           SRL  R6,8
  1000. 055C B98E 8300      AB   R14,@>8300(R6)
  1001. 0560 13F4           JEQ  >054A
  1002. 0562 DB44 0402      MOVB R4,@>0402(R13)
  1003. 0566 DB45 0402      MOVB R5,@>0402(R13)
  1004. 056A 10BD           JMP  >04E6
  1005.  
  1006. *************************************************************************
  1007. *                                    *
  1008. *  GPL Instruction >EC,>ED - COINCIDENCE                *
  1009. *                                    *
  1010. *  Definition:  The Source operand must indicate a Y,X byte        *
  1011. *               pair for object 1; likewise, the Destination        *
  1012. *               operand indicates the Y,X byte pair for object 2;    *
  1013. *               COINC sets the status equal bit if the objects        *
  1014. *               are in coincidence; otherwise it resets the        *
  1015. *               status equal bit.                    *
  1016. *                                    *
  1017. *************************************************************************
  1018.  
  1019. 056C 0288 FFE4      CI   R8,>FFE4
  1020. 0570 13EF           JEQ  >0550
  1021. 0572 1511           JGT  >0596
  1022. 0574 C04D           MOV  R13,R1
  1023. 0576 0288 FFE2      CI   R8,>FFE2
  1024. 057A 1309           JEQ  >058E
  1025. 057C 150A           JGT  >0592
  1026. 057E 06A0 05B8      BL   @>05B8
  1027.  
  1028. 0582 0508           NEG  R8
  1029. 0584 DA1D 835F      MOVB *R13,@>835F(R8)
  1030. 0588 06A0 0880      BL   @>0880
  1031. 058C 10AC           JMP  >04E6
  1032. 058E 06A0 0778      BL   @>0778
  1033. 0592 D0D1           MOVB *R1,R3
  1034. 0594 10A8           JMP  >04E6
  1035. 0596 06A0 0778      BL   @>0778
  1036. 059A 0202 059E      LI   R2,>059E
  1037. 059E D1B1           MOVB *R1+,R6
  1038. 05A0 10B5           JMP  >050C
  1039.  
  1040. *************************************************************************
  1041. *                                    *
  1042. *  GPL Instruction >07 - LOAD SCREEN                    *
  1043. *                                    *
  1044. *     Fill screen with next character                    *
  1045. *                                    *
  1046. *************************************************************************
  1047.  
  1048. 05A2 D15D           MOVB *R13,R5
  1049. 05A4 06A0 08A4      BL   @>08A4        Set VDP write address to >0000
  1050. 05A8 0207 0300      LI   R7,>0300
  1051. 05AC DBC5 FFFE      MOVB R5,@>FFFE(R15)
  1052. 05B0 0607           DEC  R7
  1053. 05B2 16FC           JNE  >05AC
  1054. 05B4 020B 0070      LI   R11,>0070
  1055. 05B8 0A37           SLA  R7,3
  1056. 05BA D807 837E      MOVB R7,@>837E
  1057. 05BE 0A87           SLA  R7,8
  1058. 05C0 0937           SRL  R7,3
  1059. 05C2 D807 837F      MOVB R7,@>837F
  1060. 05C6 045B           RT
  1061.  
  1062. *************************************************************************
  1063. *                                    *
  1064. *  GPL Instruction >F6 - I/O                        *
  1065. *                                    *
  1066. *************************************************************************
  1067.  
  1068. 05C8 C080           MOV  R0,R2
  1069. 05CA C043           MOV  R3,R1
  1070. 05CC A082           A    R2,R2
  1071. 05CE C122 0CEC      MOV  @>0CEC(R2),R4
  1072. 05D2 04C9           CLR  R9
  1073. 05D4 0454           B    *R4
  1074.  
  1075. *************************************************************************
  1076. *                                    *
  1077. *  GPL Instruction >F0,>F1                        *
  1078. *                                    *
  1079. *************************************************************************
  1080.  
  1081. 05D6 024E FFFE      ANDI R14,>FFFE
  1082. 05DA E380           SOC  R0,R14
  1083. 05DC C813 83CC      MOV  *R3,@>83CC
  1084. 05E0 D80E 83CE      MOVB R14,@>83CE
  1085. 05E4 0460 0070      B    @>0070
  1086.  
  1087. *************************************************************************
  1088. *                                    *
  1089. *  GPL Instruction >F2,>F3                        *
  1090. *                                    *
  1091. *************************************************************************
  1092.  
  1093. 05E8 0589           INC  R9
  1094.  
  1095. *************************************************************************
  1096. *                                    *
  1097. *  GPL Instruction >F4,>F5                        *
  1098. *                                    *
  1099. *************************************************************************
  1100.  
  1101. 05EA C331           MOV  *R1+,R12
  1102. 05EC A30C           A    R12,R12
  1103. 05EE 04C2           CLR  R2
  1104. 05F0 D0B1           MOVB *R1+,R2
  1105. 05F2 0A42           SLA  R2,4
  1106. 05F4 E242           SOC  R2,R9
  1107. 05F6 0B69           SRC  R9,6
  1108. 05F8 0269 3012      ORI  R9,>3012
  1109. 05FC D091           MOVB *R1,R2
  1110. 05FE 06C2           SWPB R2
  1111. 0600 0222 8300      AI   R2,>8300
  1112. 0604 0489           X    R9
  1113. 0606 10EE           JMP  >05E4
  1114.  
  1115. *************************************************************************
  1116. *                                    *
  1117. *  GPL Instruction >0F - Execute Machine Instruction (XMLLNK)        *
  1118. *                                    *
  1119. *************************************************************************
  1120.  
  1121. 0608 D25D           MOVB *R13,R9
  1122. 060A C109           MOV  R9,R4
  1123. 060C 09C9           SRL  R9,12
  1124. 060E 0A19           SLA  R9,1
  1125. 0610 0A44           SLA  R4,4
  1126. 0612 09B4           SRL  R4,11
  1127. 0614 A129 0CFA      A    @>0CFA(R9),R4
  1128. 0618 C114           MOV  *R4,R4
  1129. 061A 0694           BL   *R4
  1130. 061C 10E3           JMP  >05E4
  1131.  
  1132. *************************************************************************
  1133. *                                    *
  1134. *  GPL Instruction >20 - Block move                    *
  1135. *                                      *
  1136. *  Move the specified number of bytes from source to the destination    *
  1137. *    OPERAND 1 - Number of bytes to move                *
  1138. *    OPERAND 2 - Source address                    *
  1139. *    OPERAND 3 - Destination Address                    *
  1140. *                                    *
  1141. *  Register use:                                                        *
  1142. *    R5 = 0 for single byte, <> 0 for double byte            *
  1143. *    R8 = Number of bytes to move                    *
  1144. *    R9 = Copy of the op code                    *
  1145. *                                    *
  1146. *************************************************************************
  1147.  
  1148. 061E D14E           MOVB R14,R5
  1149. 0620 0999           SRL  R9,9
  1150. 0622 1804           JOC  >062C
  1151. 0624 06A0 077A      BL   @>077A        The number of bytes is indirect
  1152. 0628 C200           MOV  R0,R8
  1153. 062A 1004           JMP  >0634
  1154. 062C D21D           MOVB *R13,R8    Get the number of bytes in R8
  1155. 062E 0AF4           SLA  R4,15        delay
  1156. 0630 D81D 83F1      MOVB *R13,@>83F1    Get the rest of # of bytes in R8
  1157. 0634 04C4           CLR  R4
  1158. 0636 0AC9           SLA  R9,12
  1159. 0638 06A0 0758      BL   @>0758
  1160. 063C C081           MOV  R1,R2
  1161. 063E B249           AB   R9,R9
  1162. 0640 1702           JNC  >0646
  1163. 0642 0224 0003      AI   R4,>0003
  1164. 0646 C1C4           MOV  R4,R7
  1165. 0648 04C4           CLR  R4
  1166. 064A 06A0 0758      BL   @>0758
  1167. 064E A104           A    R4,R4
  1168. 0650 C1A4 0CCE      MOV  @>0CCE(R4),R6
  1169. 0654 A1C7           A    R7,R7
  1170. 0656 C1E7 0CD4      MOV  @>0CD4(R7),R7
  1171. 065A 06A0 0864      BL   @>0864
  1172. 065E 0456           B    *R6
  1173.  
  1174. *************************************************************************
  1175. *                                    *
  1176. *  GPL Instruction >D0,>D1                        *
  1177. *                                    *
  1178. *************************************************************************
  1179.  
  1180. * Read a byte from RAM pointed to by R1 and put in into R11
  1181. * Then jump to a section of code that will store R11 somewhere.
  1182. *
  1183. 0660 D2F1           MOVB *R1+,R11
  1184. 0662 0457           B    *R7
  1185.  
  1186. *************************************************************************
  1187. *                                    *
  1188. *  GPL Instruction >D4,>D5                        *
  1189. *                                    *
  1190. *************************************************************************
  1191.  
  1192. 0664 D7E0 83E3      MOVB @>83E3,*R15
  1193. 0668 D7C1           MOVB R1,*R15
  1194. 066A 0581           INC  R1
  1195. 066C D2EF FBFE      MOVB @>FBFE(R15),R11
  1196. 0670 0457           B    *R7
  1197.  
  1198. *************************************************************************
  1199. *                                    *
  1200. *  GPL Instruction >D2,>D3                        *
  1201. *                                    *
  1202. *************************************************************************
  1203.  
  1204. * Read a byte GROM pointed to by R1 and store it in R11
  1205. * Then jump to a section of code that will store R11 somewhere.
  1206. *
  1207.  
  1208. 0672 DB41 0402      MOVB R1,@>0402(R13)
  1209. 0676 DB60 83E3 0402 MOVB @>83E3,@>0402(R13)
  1210. 067C 0581           INC  R1
  1211. 067E D2DD           MOVB *R13,R11
  1212. 0680 0457           B    *R7
  1213.  
  1214. *************************************************************************
  1215. *                                    *
  1216. *  GPL Instruction >D6,>D7                        *
  1217. *                                    *
  1218. *************************************************************************
  1219.  
  1220. * Store the byte in R11 in CPU RAM pointed to by R2
  1221. *
  1222. 0682 DC8B           MOVB R11,*R2+
  1223. 0684 1022           JMP  >06CA
  1224.  
  1225. *************************************************************************
  1226. *                                    *
  1227. *  GPL Instruction >D8,>D9                        *
  1228. *                                    *
  1229. *************************************************************************
  1230.  
  1231. * Store the byte in R11 in GRAM pointed to by R2
  1232. *
  1233. 0686 DB42 0402      MOVB R2,@>0402(R13)
  1234. 068A DB60 83E5 0402 MOVB @>83E5,@>0402(R13)
  1235. 0690 0582           INC  R2
  1236. 0692 DB4B 0400      MOVB R11,@>0400(R13)
  1237. 0696 1019           JMP  >06CA
  1238.  
  1239. *************************************************************************
  1240. *                                    *
  1241. *  GPL Instruction >DC,>DD                        *
  1242. *                                    *
  1243. *************************************************************************
  1244.  
  1245. 0698 93A0 83E5      CB   @>83E5,R14
  1246. 069C 1607           JNE  >06AC
  1247. 069E 23A0 0012      COC  @>0012,14
  1248. 06A2 1602           JNE  >06A8
  1249. 06A4 026B 8000      ORI  R11,>8000
  1250. 06A8 D80B 83D4      MOVB R11,@>83D4
  1251. 06AC D7CB           MOVB R11,*R15
  1252. 06AE 0262 0080      ORI  R2,>0080
  1253. 06B2 D7E0 83E5      MOVB @>83E5,*R15
  1254. 06B6 0582           INC  R2
  1255. 06B8 1008           JMP  >06CA
  1256.  
  1257. *************************************************************************
  1258. *                                    *
  1259. *  GPL Instruction >DA,>DB                        *
  1260. *                                    *
  1261. *************************************************************************
  1262.  
  1263. 06BA D7E0 83E5      MOVB @>83E5,*R15
  1264. 06BE 0262 4000      ORI  R2,>4000
  1265. 06C2 D7C2           MOVB R2,*R15
  1266. 06C4 0582           INC  R2
  1267. 06C6 DBCB FFFE      MOVB R11,@>FFFE(R15)
  1268. 06CA 0608           DEC  R8
  1269. 06CC 15C8           JGT  >065E
  1270. 06CE 0460 083E      B    @>083E
  1271.  
  1272. *************************************************************************
  1273. *                                    *
  1274. *  GPL Instruction >ED - COINC                         *
  1275. *                                    *
  1276. *************************************************************************
  1277.  
  1278. 06D2 C200           MOV  R0,R8
  1279. 06D4 C0C8           MOV  R8,R3
  1280. 06D6 70C2           SB   R2,R3
  1281. 06D8 06C8           SWPB R8
  1282. 06DA 06C2           SWPB R2
  1283. 06DC 7202           SB   R2,R8
  1284. 06DE D01D           MOVB *R13,R0
  1285. 06E0 0980           SRL  R0,8
  1286. 06E2 D15D           MOVB *R13,R5
  1287. 06E4 06C5           SWPB R5
  1288. 06E6 D15D           MOVB *R13,R5
  1289. 06E8 06C5           SWPB R5
  1290. 06EA 06A0 0864      BL   @>0864
  1291. 06EE DB45 0402      MOVB R5,@>0402(R13)
  1292. 06F2 06C5           SWPB R5
  1293. 06F4 DB45 0402      MOVB R5,@>0402(R13)
  1294. 06F8 06C5           SWPB R5
  1295. 06FA D09D           MOVB *R13,R2
  1296. 06FC 1000           NOP
  1297. 06FE D05D           MOVB *R13,R1
  1298. 0700 1000           NOP
  1299. 0702 D19D           MOVB *R13,R6
  1300. 0704 1000           NOP
  1301. 0706 D1DD           MOVB *R13,R7
  1302. 0708 C000           MOV  R0,R0
  1303. 070A 1302           JEQ  >0710
  1304. 070C 0803           SRA  R3,0
  1305. 070E 0808           SRA  R8,0
  1306. 0710 B207           AB   R7,R8
  1307. 0712 111E           JLT  >0750
  1308. 0714 B0C6           AB   R6,R3
  1309. 0716 111C           JLT  >0750
  1310. 0718 9083           CB   R3,R2
  1311. 071A 151A           JGT  >0750
  1312. 071C 9048           CB   R8,R1
  1313. 071E 1518           JGT  >0750
  1314. 0720 0981           SRL  R1,8
  1315. 0722 0581           INC  R1
  1316. 0724 0983           SRL  R3,8
  1317. 0726 3843           MPY  R3,1
  1318. 0728 0988           SRL  R8,8
  1319. 072A A088           A    R8,R2
  1320. 072C C002           MOV  R2,R0
  1321. 072E 0242 FFF8      ANDI R2,>FFF8
  1322. 0732 6002           S    R2,R0
  1323. 0734 0832           SRA  R2,3
  1324. 0736 A085           A    R5,R2
  1325. 0738 8CB2           C    *R2+,*R2+
  1326. 073A DB42 0402      MOVB R2,@>0402(R13)
  1327. 073E 0580           INC  R0
  1328. 0740 DB60 83E5 0402 MOVB @>83E5,@>0402(R13)
  1329. 0746 0202 2000      LI   R2,>2000
  1330. 074A D0DD           MOVB *R13,R3
  1331. 074C 0A03           SLA  R3,0
  1332. 074E 1801           JOC  >0752
  1333. 0750 04C2           CLR  R2
  1334. 0752 D802 837C      MOVB R2,@>837C
  1335. 0756 10BB           JMP  >06CE
  1336.  
  1337. 0758 B249           AB   R9,R9
  1338. 075A 180F           JOC  >077A        Jump if GD is not in ROM
  1339. 075C D0DD           MOVB *R13,R3    GD is in GROM, put in R3
  1340. 075E 0584           INC  R4
  1341. 0760 D81D 83E7      MOVB *R13,@>83E7
  1342. 0764 C30B           MOV  R11,R12
  1343. 0766 B249           AB   R9,R9
  1344. 0768 1704           JNC  >0772        Jump if not a VDP register
  1345. 076A D05D           MOVB *R13,R1
  1346. 076C 06A0 077E      BL   @>077E
  1347. 0770 A0C0           A    R0,R3
  1348. 0772 C043           MOV  R3,R1
  1349. 0774 0919           SRL  R9,1
  1350. 0776 045C           B    *R12
  1351.  
  1352. 0778 04C5           CLR  R5
  1353.  
  1354. 077A D05D           MOVB *R13,R1
  1355. 077C 111E           JLT  >07BA        Jump if not Direct Addressing (83xx)
  1356. 077E 0981           SRL  R1,8
  1357. 0780 0221 8300      AI   R1,>8300    Add our base address
  1358. 0784 0281 837D      CI   R1,>837D
  1359. 0788 160F           JNE  >07A8
  1360. 078A 04CA           CLR  R10
  1361. 078C C18B           MOV  R11,R6
  1362. 078E 06A0 0884      BL   @>0884
  1363. 0792 C2C6           MOV  R6,R11
  1364. 0794 D02F FBFE      MOVB @>FBFE(R15),R0
  1365. 0798 23A0 0072      COC  @>0072,14
  1366. 079C 1603           JNE  >07A4
  1367. 079E 1701           JNC  >07A2
  1368. 07A0 0A40           SLA  R0,4
  1369. 07A2 0940           SRL  R0,4
  1370. 07A4 D800 837D      MOVB R0,@>837D
  1371. 07A8 D011           MOVB *R1,R0
  1372. 07AA D145           MOVB R5,R5
  1373. 07AC 1602           JNE  >07B2
  1374. 07AE 0880           SRA  R0,8
  1375. 07B0 045B           RT
  1376. 07B2 D821 0001 83E1 MOVB @>0001(R1),@>83E1
  1377. 07B8 045B           RT
  1378.  
  1379. 07BA D81D 83E3      MOVB *R13,@>83E3    Fill in rest of R1
  1380. 07BE C281           MOV  R1,R10
  1381. 07C0 0241 0FFF      ANDI R1,>0FFF
  1382. 07C4 0281 0F00      CI   R1,>0F00    Check for extended address
  1383. 07C8 1103           JLT  >07D0
  1384. 07CA 0A81           SLA  R1,8
  1385. 07CC D81D 83E3      MOVB *R13,@>83E3    Get 2nd byte of extended address
  1386. 07D0 0A2A           SLA  R10,2        Check for Indexed
  1387. 07D2 1708           JNC  >07E4        Branch if not indexed
  1388. 07D4 D19D           MOVB *R13,R6    Get index value
  1389. 07D6 0986           SRL  R6,8
  1390. 07D8 D026 8300      MOVB @>8300(R6),R0
  1391. 07DC D826 8301 83E1 MOVB @>8301(R6),@>83E1
  1392. 07E2 A040           A    R0,R1        Add value to our address
  1393. 07E4 0A1A           SLA  R10,1        Check if VDP RAM
  1394. 07E6 1715           JNC  >0812        Branch if CPU RAM
  1395. 07E8 05C4           INCT R4
  1396. 07EA 0A1A           SLA  R10,1        Check for DIRECT/INDIRECT
  1397. 07EC 1706           JNC  >07FA        Jump if direct
  1398. 07EE D021 8300      MOVB @>8300(R1),R0    VDP INDIRECT addressing
  1399. 07F2 D821 8301 83E1 MOVB @>8301(R1),@>83E1
  1400. 07F8 C040           MOV  R0,R1
  1401. 07FA D7E0 83E3      MOVB @>83E3,*R15    VDP DIRECT addressing
  1402. 07FE D7C1           MOVB R1,*R15    finish setting VDP read address
  1403. 0800 0A80           SLA  R0,8
  1404. 0802 D02F FBFE      MOVB @>FBFE(R15),R0    get byte of data from VDP RAM
  1405. 0806 D145           MOVB R5,R5        check flags
  1406. 0808 13D2           JEQ  >07AE        Single byte operand
  1407. 080A D82F FBFE 83E1 MOVB @>FBFE(R15),@>83E1   Double byte operand
  1408. 0810 045B           RT
  1409.  
  1410. 0812 0A1A           SLA  R10,1        Get operand from CPU RAM
  1411. 0814 17B5           JNC  >0780        Jump if direct addressing
  1412. 0816 0281 007C      CI   R1,>007C    CPU/Indirect addressing
  1413. 081A 1605           JNE  >0826
  1414. 081C D060 8372      MOVB @>8372,R1
  1415. 0820 780E 8372      SB   R14,@>8372
  1416. 0824 10AC           JMP  >077E
  1417. 0826 D061 8300      MOVB @>8300(R1),R1
  1418. 082A 10A9           JMP  >077E
  1419.  
  1420. 082C 06A0 0842      BL   @>0842
  1421. 0830 C364 8300      MOV  @>8300(R4),R13
  1422. 0834 DB44 0400      MOVB R4,@>0400(R13)
  1423.  
  1424. *************************************************************************
  1425. *                                    *
  1426. *  GPL Instruction >00 - Return from subroutine                *
  1427. *                                    *
  1428. *************************************************************************
  1429.  
  1430. 0838 5820 011B 837C SZCB @>011B,@>837C    Clear COND bit in GPL status register
  1431.  
  1432. *************************************************************************
  1433. *                                    *
  1434. *  GPL Instruction >01 - Return from subroutine (save condition)    *
  1435. *                                    *
  1436. *************************************************************************
  1437.  
  1438. 083E 020B 0070      LI   R11,>0070
  1439.  
  1440. 0842 D120 8373      MOVB @>8373,R4    Restore GROM address
  1441. 0846 0984           SRL  R4,8
  1442. 0848 0660 8373      DECT @>8373
  1443. 084C DB64 8300 0402 MOVB @>8300(R4),@>0402(R13)
  1444. 0852 DB64 8301 0402 MOVB @>8301(R4),@>0402(R13)
  1445. 0858 045B           RT
  1446.  
  1447. *************************************************************************
  1448. *                                    *
  1449. *  GPL Instruction >06 - Call subroutine                *
  1450. *                                    *
  1451. *************************************************************************
  1452.  
  1453. 085A D19D           MOVB *R13,R6    Get destination address in R6
  1454. 085C 020B 0060      LI   R11,>0060
  1455. 0860 D81D 83ED      MOVB *R13,@>83ED
  1456. 0864 05E0 8373      INCT @>8373        Save GROM address on stack
  1457. 0868 D120 8373      MOVB @>8373,R4
  1458. 086C 0984           SRL  R4,8
  1459. 086E D92D 0002 8300 MOVB @>0002(R13),@>8300(R4)
  1460. 0874 D92D 0002 8301 MOVB @>0002(R13),@>8301(R4)
  1461. 087A 0624 8300      DEC  @>8300(R4)
  1462. 087E 045B           RT
  1463.  
  1464. 0880 020A 4000      LI   R10,>4000
  1465. 0884 D1E0 837F      MOVB @>837F,R7
  1466. 0888 23A0 0072      COC  @>0072,14
  1467. 088C 130E           JEQ  >08AA
  1468. 088E 0A37           SLA  R7,3
  1469. 0890 0987           SRL  R7,8
  1470. 0892 D1E0 837E      MOVB @>837E,R7
  1471. 0896 0937           SRL  R7,3
  1472. 0898 A1CA           A    R10,R7
  1473. 089A D7E0 83EF      MOVB @>83EF,*R15
  1474. 089E D7C7           MOVB R7,*R15
  1475. 08A0 61CA           S    R10,R7
  1476. 08A2 045B           RT
  1477.  
  1478. 08A4 0207 4000      LI   R7,>4000
  1479. 08A8 10F8           JMP  >089A
  1480. 08AA D020 837E      MOVB @>837E,R0
  1481. 08AE C200           MOV  R0,R8
  1482. 08B0 0A58           SLA  R8,5
  1483. 08B2 09D8           SRL  R8,13
  1484. 08B4 09B0           SRL  R0,11
  1485. 08B6 0A80           SLA  R0,8
  1486. 08B8 A008           A    R8,R0
  1487. 08BA C207           MOV  R7,R8
  1488. 08BC 0247 3E00      ANDI R7,>3E00
  1489. 08C0 0967           SRL  R7,6
  1490. 08C2 A1C0           A    R0,R7
  1491. 08C4 0227 0800      AI   R7,>0800
  1492. 08C8 D7E0 83EF      MOVB @>83EF,*R15
  1493. 08CC 0A88           SLA  R8,8
  1494. 08CE D7C7           MOVB R7,*R15
  1495. 08D0 028B 026A      CI   R11,>026A
  1496. 08D4 16E6           JNE  >08A2
  1497. 08D6 D02F FBFE      MOVB @>FBFE(R15),R0
  1498. 08DA D220 837D      MOVB @>837D,R8
  1499. 08DE 0248 0F00      ANDI R8,>0F00
  1500. 08E2 1804           JOC  >08EC
  1501. 08E4 0240 0F00      ANDI R0,>0F00
  1502. 08E8 0A48           SLA  R8,4
  1503. 08EA 1002           JMP  >08F0
  1504. 08EC 0240 F000      ANDI R0,>F000
  1505. 08F0 0267 4000      ORI  R7,>4000
  1506. 08F4 06A0 089A      BL   @>089A
  1507. 08F8 A008           A    R8,R0
  1508. 08FA DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1509. 08FE 0456           B    *R6
  1510.  
  1511. *************************************************************************
  1512. *                                    *
  1513. *              INTERRUPT ROUTINE                *
  1514. *                                    *
  1515. *************************************************************************
  1516.  
  1517. 0900 0300 0000      LIMI >0000
  1518. 0904 02E0 83E0      LWPI >83E0
  1519. 0908 04CC           CLR  R12
  1520. 090A 23A0 0032      COC  @>0032,14
  1521. 090E 1602           JNE  >0914
  1522. 0910 0460 1404      B    @>1404
  1523. 0914 1F02           TB   2        VDP Vertical Synchronization
  1524. 0916 1619           JNE  >094A
  1525. 0918 020C 0F00      LI   R12,>0F00    Check our peripheral cards for
  1526. 091C 1D01           SBO  1        interrupt routines
  1527. 091E 1E00           SBZ  0
  1528. 0920 022C 0100      AI   R12,>0100
  1529. 0924 028C 2000      CI   R12,>2000
  1530. 0928 130E           JEQ  >0946
  1531. 092A 1D00           SBO  0        Turn on ROM
  1532. 092C 9820 4000 000D CB   @>4000,@>000D    Is there a card present?
  1533. 0932 16F5           JNE  >091E        If not, look for next card
  1534. 0934 C0A0 400C      MOV  @>400C,R2    Does card have an interrupt routine?
  1535. 0938 13F2           JEQ  >091E        If not, check next card
  1536. 093A C002           MOV  R2,R0
  1537. 093C C0A2 0002      MOV  @>0002(R2),R2
  1538. 0940 0692           BL   *R2        Call the card's interrupt routine
  1539. 0942 C090           MOV  *R0,R2
  1540. 0944 10F9           JMP  >0938        OK, We called all the interrupt routines.
  1541. 0946 0460 0AB8      B    @>0AB8
  1542.  
  1543. 094A 1D02           SBO  2
  1544. 094C D060 83C2      MOVB @>83C2,R1    Check our flags to see what we have to
  1545. 0950 0A11           SLA  R1,1        do on the interrupt
  1546. 0952 1702           JNC  >0958
  1547. 0954 0460 0A84      B    @>0A84
  1548. 0958 0A11           SLA  R1,1
  1549. 095A 1846           JOC  >09E8
  1550.  
  1551. 095C D320 837A      MOVB @>837A,R12        Sprite Update
  1552. 0960 1343           JEQ  >09E8
  1553. 0962 098C           SRL  R12,8
  1554. 0964 0202 8800      LI   R2,VDPRD
  1555. 0968 0203 8C00      LI   R3,VDPWD
  1556. 096C 0208 0780      LI   R8,>0780
  1557. 0970 D7E0 83F1      MOVB @>83F1,*R15
  1558. 0974 D7C8           MOVB R8,*R15
  1559. 0976 04C4           CLR  R4
  1560. 0978 D112           MOVB *R2,R4
  1561. 097A 04C6           CLR  R6
  1562. 097C D192           MOVB *R2,R6
  1563. 097E 0844           SRA  R4,4
  1564. 0980 D152           MOVB *R2,R5
  1565. 0982 0845           SRA  R5,4
  1566. 0984 A144           A    R4,R5
  1567. 0986 D1D2           MOVB *R2,R7
  1568. 0988 0846           SRA  R6,4
  1569. 098A 0847           SRA  R7,4
  1570. 098C A1C6           A    R6,R7
  1571. 098E 0228 FB80      AI   R8,>FB80
  1572. 0992 D7E0 83F1      MOVB @>83F1,*R15
  1573. 0996 D7C8           MOVB R8,*R15
  1574. 0998 04C4           CLR  R4
  1575. 099A D112           MOVB *R2,R4
  1576. 099C A105           A    R5,R4
  1577. 099E 0284 C0FF      CI   R4,>C0FF
  1578. 09A2 1209           JLE  >09B6
  1579. 09A4 0284 E000      CI   R4,>E000
  1580. 09A8 1B06           JH   >09B6
  1581. 09AA C145           MOV  R5,R5
  1582. 09AC 1502           JGT  >09B2
  1583. 09AE 0224 C000      AI   R4,>C000
  1584. 09B2 0224 2000      AI   R4,>2000
  1585. 09B6 04C6           CLR  R6
  1586. 09B8 D192           MOVB *R2,R6
  1587. 09BA A187           A    R7,R6
  1588. 09BC 0268 4000      ORI  R8,>4000
  1589. 09C0 D7E0 83F1      MOVB @>83F1,*R15
  1590. 09C4 D7C8           MOVB R8,*R15
  1591. 09C6 D4C4           MOVB R4,*R3
  1592. 09C8 0228 0482      AI   R8,>0482
  1593. 09CC D4C6           MOVB R6,*R3
  1594. 09CE 06C5           SWPB R5
  1595. 09D0 D7E0 83F1      MOVB @>83F1,*R15
  1596. 09D4 D7C8           MOVB R8,*R15
  1597. 09D6 0945           SRL  R5,4
  1598. 09D8 D4C5           MOVB R5,*R3
  1599. 09DA 06C7           SWPB R7
  1600. 09DC 0947           SRL  R7,4
  1601. 09DE D4C7           MOVB R7,*R3
  1602. 09E0 0228 C002      AI   R8,>C002
  1603. 09E4 060C           DEC  R12
  1604. 09E6 15C4           JGT  >0970
  1605.  
  1606. 09E8 0A11           SLA  R1,1
  1607. 09EA 183D           JOC  >0A66
  1608. 09EC D0A0 83CE      MOVB @>83CE,R2    Sound list processor
  1609. 09F0 133A           JEQ  >0A66
  1610. 09F2 780E 83CE      SB   R14,@>83CE
  1611. 09F6 1637           JNE  >0A66
  1612. 09F8 C0E0 83CC      MOV  @>83CC,R3    Get address of sound block
  1613. 09FC C14E           MOV  R14,R5         Check to see if block is in GROM or VDP RAM
  1614. 09FE 0915           SRL  R5,1
  1615. 0A00 180A           JOC  >0A16
  1616. 0A02 06A0 0864      BL   @>0864
  1617. 0A06 0205 0402      LI   R5,>0402
  1618. 0A0A A14D           A    R13,R5
  1619. 0A0C D543           MOVB R3,*R5        Set GROM read address to R3
  1620. 0A0E D560 83E7      MOVB @>83E7,*R5
  1621. 0A12 C18D           MOV  R13,R6
  1622. 0A14 1007           JMP  >0A24
  1623. 0A16 0205 8C02      LI   R5,VDPWA    Block is in VDP RAM
  1624. 0A1A D560 83E7      MOVB @>83E7,*R5
  1625. 0A1E D543           MOVB R3,*R5
  1626. 0A20 0206 8800      LI   R6,VDPRD
  1627. 0A24 D216           MOVB *R6,R8
  1628. 0A26 130F           JEQ  >0A46        Sound block is in another address
  1629. 0A28 9220 0A9C      CB   @>0A9C,R8    (>FF)
  1630. 0A2C 130A           JEQ  >0A42
  1631. 0A2E 0988           SRL  R8,8
  1632. 0A30 A0C8           A    R8,R3
  1633. 0A32 D816 8400      MOVB *R6,@>8400
  1634. 0A36 0608           DEC  R8
  1635. 0A38 16FC           JNE  >0A32
  1636. 0A3A 05C3           INCT R3
  1637. 0A3C D096           MOVB *R6,R2
  1638. 0A3E 1309           JEQ  >0A52
  1639. 0A40 1009           JMP  >0A54
  1640. 0A42 2BA0 0378      XOR  @>0378,14    Switch from GROM to VDP or vice versa
  1641. 0A46 D0D6           MOVB *R6,R3
  1642. 0A48 0202 0100      LI   R2,>0100
  1643. 0A4C D816 83E7      MOVB *R6,@>83E7
  1644. 0A50 1001           JMP  >0A54
  1645. 0A52 7082           SB   R2,R2
  1646. 0A54 C803 83CC      MOV  R3,@>83CC
  1647. 0A58 D802 83CE      MOVB R2,@>83CE
  1648. 0A5C 0285 8C02      CI   R5,VDPWA
  1649. 0A60 1302           JEQ  >0A66
  1650. 0A62 06A0 0842      BL   @>0842
  1651.  
  1652. 0A66 0A11           SLA  R1,1        Check for QUIT key pressed
  1653. 0A68 180D           JOC  >0A84
  1654. 0A6A 020C 0024      LI   R12,>0024
  1655. 0A6E 30E0 0012      LDCR @>0012,3
  1656. 0A72 0B7C           SRC  R12,7
  1657. 0A74 020C 0006      LI   R12,>0006
  1658. 0A78 3605           STCR R5,8
  1659. 0A7A 2560 004C      CZC  @>004C,5
  1660. 0A7E 1602           JNE  >0A84
  1661. 0A80 0420 0000      BLWP @>0000
  1662.  
  1663. 0A84 D82F FC00 837B MOVB @>FC00(R15),@>837B
  1664. 0A8A 02E0 83C0      LWPI >83C0
  1665. 0A8E 05CB           INCT R11        Check to see if we need to
  1666. 0A90 160B           JNE  >0AA8        clear the screen
  1667. 0A92 D30A           MOVB R10,R12
  1668. 0A94 098C           SRL  R12,8
  1669. 0A96 026C 8160      ORI  R12,>8160
  1670. 0A9A 024C FFBF      ANDI R12,>FFBF
  1671. 0A9E D820 83D9 8C02 MOVB @>83D9,@VDPWA
  1672. 0AA4 D80C 8C02      MOVB R12,@VDPWA
  1673. 0AA8 02E0 83E0      LWPI >83E0
  1674. 0AAC B80E 8379      AB   R14,@>8379
  1675.  
  1676. 0AB0 C320 83C4      MOV  @>83C4,R12        Call user-written interrupt
  1677. 0AB4 1301           JEQ  >0AB8
  1678. 0AB6 069C           BL   *R12
  1679. 0AB8 04C8           CLR  R8
  1680. 0ABA 02E0 83C0      LWPI >83C0
  1681. 0ABE 0380           RTWP
  1682.  
  1683. *************************************************************************
  1684. *                                    *
  1685. *  This routine calls all the power up routines on all the peripheral     *
  1686. *  cards.                                *
  1687. *                                    *
  1688. *************************************************************************
  1689.  
  1690. 0AC0 04C1           CLR  R1
  1691. 0AC2 C320 83D0      MOV  @>83D0,R12
  1692. 0AC6 1618           JNE  >0AF8
  1693. 0AC8 020C 0F00      LI   R12,>0F00
  1694. 0ACC C30C           MOV  R12,R12
  1695. 0ACE 1301           JEQ  >0AD2
  1696. 0AD0 1E00           SBZ  0
  1697. 0AD2 022C 0100      AI   R12,>0100
  1698. 0AD6 04E0 83D0      CLR  @>83D0
  1699. 0ADA 028C 2000      CI   R12,>2000
  1700. 0ADE 1320           JEQ  >0B20
  1701. 0AE0 C80C 83D0      MOV  R12,@>83D0
  1702. 0AE4 1D00           SBO  0
  1703. 0AE6 0202 4000      LI   R2,>4000
  1704. 0AEA 9812 000D      CB   *R2,@>000D    * Check for valid ID
  1705. 0AEE 16EE           JNE  >0ACC
  1706. 0AF0 B820 836D 83E5 AB   @>836D,@>83E5  * Add @>836D to R2
  1707. 0AF6 1003           JMP  >0AFE
  1708. 0AF8 C0A0 83D2      MOV  @>83D2,R2
  1709. 0AFC 1D00           SBO  0
  1710. 0AFE C092           MOV  *R2,R2
  1711. 0B00 13E5           JEQ  >0ACC
  1712. 0B02 C802 83D2      MOV  R2,@>83D2
  1713. 0B06 05C2           INCT R2
  1714. 0B08 C272           MOV  *R2+,R9
  1715. 0B0A 06A0 0BE8      BL   @>0BE8
  1716. 0B0E 10F4           JMP  >0AF8
  1717.  
  1718. 0B10 0581           INC  R1
  1719. 0B12 0699           BL   *R9
  1720. 0B14 10F1           JMP  >0AF8
  1721. 0B16 1E00           SBZ  0
  1722. 0B18 1001           JMP  >0B1C
  1723. 0B1A 04D8           CLR  *R8
  1724. 0B1C 06A0 0842      BL   @>0842
  1725. 0B20 0460 006A      B    @>006A
  1726.  
  1727. 0B24 0207 83D2      LI   R7,>83D2    GROM and RAM search pointers
  1728. 0B28 0208 83D0      LI   R8,>83D0
  1729. 0B2C 06A0 0864      BL   @>0864        Save GROM address
  1730. 0B30 C057           MOV  *R7,R1
  1731. 0B32 C098           MOV  *R8,R2
  1732. 0B34 1604           JNE  >0B3E
  1733. 0B36 0202 9800      LI   R2,>9800
  1734. 0B3A 0201 E000      LI   R1,>E000
  1735. 0B3E 2460 0128      CZC  @>0128,1
  1736. 0B42 160E           JNE  >0B60
  1737. 0B44 C602           MOV  R2,*R8
  1738. 0B46 D881 0402      MOVB R1,@>0402(R2)
  1739. 0B4A D8A0 83E3 0402 MOVB @>83E3,@>0402(R2)
  1740. 0B50 B820 836D 83E3 AB   @>836D,@>83E3
  1741. 0B56 D801 83CB      MOVB R1,@>83CB
  1742. 0B5A 9812 000D      CB   *R2,@>000D    * Check GROM for valid ID
  1743. 0B5E 1632           JNE  >0BC4
  1744. 0B60 D881 0402      MOVB R1,@>0402(R2)
  1745. 0B64 D8A0 83E3 0402 MOVB @>83E3,@>0402(R2)
  1746. 0B6A 0A4A           SLA  R10,4
  1747. 0B6C D0D2           MOVB *R2,R3
  1748. 0B6E 1000           NOP
  1749. 0B70 D812 83E7      MOVB *R2,@>83E7
  1750. 0B74 C5C3           MOV  R3,*R7
  1751. 0B76 1326           JEQ  >0BC4
  1752. 0B78 05C3           INCT R3
  1753. 0B7A D883 0402      MOVB R3,@>0402(R2)
  1754. 0B7E D8A0 83E7 0402 MOVB @>83E7,@>0402(R2)
  1755. 0B84 1000           NOP
  1756. 0B86 D252           MOVB *R2,R9
  1757. 0B88 0A4A           SLA  R10,4
  1758. 0B8A D812 83F3      MOVB *R2,@>83F3
  1759. 0B8E 06A0 0BE8      BL   @>0BE8
  1760. 0B92 10CE           JMP  >0B30
  1761. 0B94 B820 0030 8372 AB   @>0030,@>8372
  1762. 0B9A B80E 836C      AB   R14,@>836C
  1763. 0B9E D120 8372      MOVB @>8372,R4
  1764. 0BA2 0984           SRL  R4,8
  1765. 0BA4 0643           DECT R3
  1766. 0BA6 9820 836D 0C04 CB   @>836D,@>0C04
  1767. 0BAC 1601           JNE  >0BB0
  1768. 0BAE C243           MOV  R3,R9
  1769. 0BB0 D909 8300      MOVB R9,@>8300(R4)
  1770. 0BB4 D920 83F3 8301 MOVB @>83F3,@>8301(R4)
  1771. 0BBA C342           MOV  R2,R13
  1772. 0BBC 06A0 0842      BL   @>0842
  1773. 0BC0 0460 00CE      B    @>00CE
  1774. 0BC4 04C1           CLR  R1
  1775. 0BC6 D060 83CB      MOVB @>83CB,R1
  1776. 0BCA 0221 E000      AI   R1,>E000
  1777. 0BCE C5C1           MOV  R1,*R7
  1778. 0BD0 0281 E000      CI   R1,>E000
  1779. 0BD4 16B4           JNE  >0B3E
  1780. 0BD6 8CB2           C    *R2+,*R2+
  1781. 0BD8 C602           MOV  R2,*R8
  1782. 0BDA 0282 9840      CI   R2,>9840
  1783. 0BDE 139D           JEQ  >0B1A
  1784. 0BE0 D160 8355      MOVB @>8355,R5
  1785. 0BE4 16AA           JNE  >0B3A
  1786. 0BE6 109A           JMP  >0B1C
  1787. 0BE8 D160 8355      MOVB @>8355,R5
  1788. 0BEC 130D           JEQ  >0C08
  1789. 0BEE 9485           CB   R5,*R2
  1790. 0BF0 160C           JNE  >0C0A
  1791. 0BF2 0985           SRL  R5,8
  1792. 0BF4 0206 834A      LI   R6,FAC
  1793. 0BF8 0282 9800      CI   R2,>9800
  1794. 0BFC 1401           JHE  >0C00
  1795.  
  1796. 0BFE 0582           INC  R2
  1797. 0C00 94B6           CB   <something>
  1798. 0C02 1603           JNE  >0C0A
  1799. 0C04 0605           DEC  R5
  1800. 0C06 16F8           JNE  >0BF8
  1801.  
  1802. 0C08 05CB           INCT R11
  1803. 0C0A 045B           RT
  1804.  
  1805. *************************************************************************
  1806. *                                    *
  1807. * GPL Instruction >F0,>F1,>F2,>F3 - UNUSED (yea, right)            *
  1808. *                 >FC,>FD,>FE,>FF - UNUSED (yea, right)            *
  1809. *                                    *
  1810. *************************************************************************
  1811.  
  1812. 0C0C 06A0 0C28      BLWP @>0C28        Turn on card at >1B00
  1813. 0C10 0460 4020      B    @>4020        Some sort of specific card?
  1814.  
  1815. *************************************************************************
  1816. *                                    *
  1817. *        GPL instruction >1F
  1818. *                                    *
  1819. *************************************************************************
  1820.  
  1821. 0C14 06A0 0C28      BL   @>0C28        Turn on card at >1B00
  1822. 0C18 0460 401C      B    @>401C        Branch to some specific routine?
  1823.  
  1824. * XOP 0
  1825.  
  1826. 0C1C 02E0 2800      LWPI >2800        Use low memory for workspace?
  1827.  
  1828. 0C20 06A0 0C28      BL   @>0C28        This looks like a very useless routine made
  1829. 0C24 0460 4028      B    @>4028        for a specific, but unknown peripheral card
  1830. 0C28 020C 1B00      LI   R12,>1B00
  1831. 0C2C 1D00           SBO  0
  1832. 0C2E 045B           RT
  1833.  
  1834. 0C30 0000           ILLEGAL OBJECT CODE
  1835. 0C32 0000           ILLEGAL OBJECT CODE
  1836. 0C34 0000           ILLEGAL OBJECT CODE
  1837.  
  1838. *************************************************************************
  1839. *                                    *
  1840. *  Jump table for GPL instructions                    *
  1841. *                                    *
  1842. *************************************************************************
  1843.  
  1844. 0C36 0270           DATA >0270        Instruction >00 - >1F
  1845. 0C38 061E           DATA >061E        Instruction >20 - >3F MOVE
  1846. 0C3A 011A           DATA >011A        Instruction >40 - >5F BR
  1847. 0C3C 010E           DATA >010E        Instruction >60 - >7F BS
  1848. 0C3E 0838           DATA >0838        Instruction >00
  1849. 0C40 083E           DATA >083E        Instruction >01
  1850. 0C42 027A           DATA >027A        Instruction >02
  1851. 0C44 02AE           DATA >02AE        Instruction >03
  1852. 0C46 029E           DATA >029E        Instruction >04
  1853. 0C48 0104           DATA >0104        Instruction >05
  1854. 0C4A 085A           DATA >085A        Instruction >06
  1855. 0C4C 05A2           DATA >05A2        Instruction >07
  1856. 0C4E 04DE           DATA >04DE        Instruction >08
  1857. 0C50 00F4           DATA >00F4          Instruction >09
  1858. 0C52 00F4           DATA >00F4          Instruction >0A
  1859. 0C54 0024           DATA >0024          Instruction >0B
  1860. 0C56 00F4           DATA >00F4          Instruction >0C
  1861. 0C58 00F4           DATA >00F4          Instruction >0D
  1862. 0C5A 18C8           DATA >18C8          Instruction >0E
  1863. 0C5C 0608           DATA >0608          Instruction >0F
  1864. 0C5E 1920           DATA >1920          Instruction >10
  1865. 0C60 1968           DATA >1968          Instruction >11
  1866. 0C62 19F0           DATA >19F0          Instruction >12
  1867. 0C64 082C           DATA >082C          Instruction >13
  1868. 0C66 0C0C           DATA >0C0C          Instruction >14
  1869. 0C68 0C0C           DATA >0C0C          Instruction >15
  1870. 0C6A 0C0C           DATA >0C0C          Instruction >16
  1871. 0C6C 0C0C           DATA >0C0C          Instruction >17
  1872. 0C6E 0C0C           DATA >0C0C          Instruction >18
  1873. 0C70 0C0C           DATA >0C0C          Instruction >19
  1874. 0C72 0C0C           DATA >0C0C          Instruction >1A
  1875. 0C74 0C0C           DATA >0C0C          Instruction >1B
  1876. 0C76 0C0C           DATA >0C0C          Instruction >1C
  1877. 0C78 0C0C           DATA >0C0C          Instruction >1D
  1878. 0C7A 0C0C           DATA >0C0C          Instruction >1E
  1879. 0C7C 0C14           DATA >0C14          Instruction >1F
  1880.  
  1881. 0C7E 0136           DATA >0136          Instruction >80
  1882. 0C80 013A           DATA >013A          Instruction >82
  1883. 0C82 0140           DATA >0140          Instruction >84
  1884. 0C84 013E           DATA >013E          Instruction >86
  1885. 0C86 0144           DATA >0144          Instruction >88
  1886. 0C88 0162           DATA >0162          Instruction >8A
  1887. 0C8A 016E           DATA >016E          Instruction >8C
  1888. 0C8C 00EA           DATA >00EA          Instruction >8E
  1889. 0C8E 0186           DATA >0186          Instruction >90
  1890. 0C90 0188           DATA >0188          Instruction >92
  1891. 0C92 0184           DATA >0184          Instruction >94
  1892. 0C94 0182           DATA >0182          Instruction >96
  1893. 0C96 0C0C           DATA >0C0C          Instruction >98
  1894. 0C98 0C0C           DATA >0C0C          Instruction >9A
  1895. 0C9A 0C0C           DATA >0C0C          Instruction >9C
  1896. 0C9C 0C0C           DATA >0C0C          Instruction >9E
  1897.  
  1898. 0C9E 0188           DATA >0188          Instruction >A0,A1,A2,A3 - Add
  1899. 0CA0 0186           DATA >0186          Instruction >A4,A5,A6,A7 - Sub
  1900. 0CA2 01CE           DATA >01CE          Instruction >A8,A9,AA,AB - Mul
  1901. 0CA4 01EA           DATA >01EA          Instruction >AC,AD,AE,AF - Div
  1902. 0CA6 0190           DATA >0190          Instruction >B0,B1,B2,B3 - And
  1903. 0CA8 0196           DATA >0196          Instruction >B4,B5,B6,B7 - Or
  1904. 0CAA 019A           DATA >019A          Instruction >B8,B9,BA,BB - XOR
  1905. 0CAC 019E           DATA >019E          Instruction >BC,BD,BE,BF - ST
  1906. 0CAE 01A2           DATA >01A2          Instruction >C0,C1,C2,C3 - EX
  1907. 0CB0 00D6           DATA >00D6          Instruction >C4,C5,C6,C7 - CH
  1908. 0CB2 00DA           DATA >00DA          Instruction >C8,C9,CA,CB - CHE
  1909. 0CB4 00DE           DATA >00DE          Instruction >CC,CD,CE,CF - CGT
  1910. 0CB6 00CC           DATA >00CC          Instruction >D0,D1,D2,D3 - CGE
  1911. 0CB8 00EC           DATA >00EC          Instruction >D4,D5,D6,D7 - CEQ
  1912. 0CBA 00E2           DATA >00E2          Instruction >D8,D9,DA,DB - CLOG
  1913. 0CBC 01B0           DATA >01B0          Instruction >DC,DD,DE,DF - SRA
  1914. 0CBE 01B4           DATA >01B4          Instruction >E0,E1,E2,E3 - SLL
  1915. 0CC0 01B8           DATA >01B8          Instruction >E4,E5,E6,E7 - SRL
  1916. 0CC2 01C2           DATA >01C2          Instruction >E8,E9,EA,EB - SRC
  1917. 0CC4 06D2           DATA >06D2          Instruction >ED          - COINC
  1918. 0CC6 0C0C           DATA >0C0C          Instruction >F0,F1,F2,F3 - UNUSED
  1919. 0CC8 05C8           DATA >05C8          Instruction >F6          - I/O
  1920. 0CCA 004E           DATA >004E          Instruction >F8,F9,FA,FB - UNUSED
  1921. 0CCC 0C0C           DATA >0C0C          Instruction >FC,FD,FE,FF - UNUSED
  1922.  
  1923. 0CCE 0660           DATA >0660
  1924. 0CD0 0672           DATA >0672
  1925. 0CD2 0664           DATA >0664
  1926.  
  1927. 0CD4 0682           DATA >0682
  1928. 0CD6 0686           DATA >0686
  1929. 0CD8 06BA           DATA >06BA
  1930. 0CDA 0698           DATA >0698
  1931. 0CDC 050A           DATA >050A
  1932. 0CDE 0508           DATA >0508
  1933. 0CE0 0504           DATA >0504
  1934. 0CE2 0502           DATA >0502
  1935. 0CE4 0534           DATA >0534
  1936. 0CE6 0532           DATA >0532
  1937. 0CE8 053A           DATA >053A
  1938. 0CEA 056C           DATA >056C
  1939. 0CEC 05D6           DATA >05D6
  1940. 0CEE 05D6           DATA >05D6
  1941. 0CF0 05E8           DATA >05E8
  1942. 0CF2 05EA           DATA >05EA
  1943. 0CF4 1346           DATA >1346
  1944. 0CF6 142E           DATA >142E
  1945. 0CF8 1426           DATA >1426
  1946.  
  1947. *************************************************************************
  1948. *                                    *
  1949. *            XMLLNK TABLES                    *
  1950. *                                    *
  1951. *************************************************************************
  1952.  
  1953. 0CFA 0D1A           DATA >0D1A    Points to floating point routines table
  1954. 0CFC 12A0           DATA >12A0    Points to conversion and TI Basic routines table
  1955. 0CFE 2000           DATA >2000    Points to table in memory expansion unit
  1956. 0D00 3FC0           DATA >3FC0    Points to TI Basic enhancement table
  1957. 0D02 3FE0           DATA >3FE0    Points to TI Basic enhancement table
  1958. 0D04 4010           DATA >4010    Points to peripheral ROM routines table
  1959. 0D06 4030           DATA >4030    Points to peripheral ROM routines table
  1960. 0D08 6010           DATA >6010    Points to Command Module ROM routines table
  1961. 0D0A 6030           DATA >6030    Points to Command Module ROM routines table
  1962. 0D0C 7000           DATA >7000
  1963. 0D0E 8000           DATA >8000
  1964. 0D10 A000           DATA >A000
  1965. 0D12 B000           DATA >B000
  1966. 0D14 C000           DATA >C000
  1967. 0D16 D000           DATA >D000
  1968. 0D18 8300           DATA >8300
  1969.  
  1970. *************************************************************************
  1971. *                                    *
  1972. *            FLOATING POINT ROUTINES TABLE            *
  1973. *                                    *
  1974. *************************************************************************
  1975.  
  1976. 0D1A 0000           DATA >0000        System Reset
  1977. 0D1C 0F54           DATA >0F54        Undocumented
  1978. 0D1E 0FB2           DATA >0FB2        Undocumented
  1979. 0D20 0FA4           DATA >0FA4        Undocumented
  1980. 0D22 0FC2           DATA >0FC2        Undocumented
  1981. 0D24 0FCC           DATA >0FCC        Undocumented
  1982. 0D26 0D80           DATA >0D80    (FADD)    Add 2 floating point numbers
  1983. 0D28 0D7C           DATA >0D7C    (FSUB)    Subtract 2 floating point numbers
  1984. 0D2A 0E88           DATA >0E88    (FMUL)    Multiply 2 floating point numbers
  1985. 0D2C 0FF4           DATA >0FF4    (FDIV)    Divide 2 floating point numbers
  1986. 0D2E 0D3A           DATA >0D3A    (FCOM)    Compare 2 floating point numbers
  1987. 0D30 0D84           DATA >0D84    (SADD)    Add using a stack in VDP RAM
  1988. 0D32 0D74           DATA >0D74    (SSUB)    Subtract using a stack in VDP RAM
  1989. 0D34 0E8C           DATA >0E8C    (SMUL)    Multiply using a stack in VDP RAM
  1990. 0D36 0FF8           DATA >0FF8    (SDIV)    Divide using a stack in VDP RAM
  1991. 0D38 0D46           DATA >0D46    (SCOMP)    Compare using a stack in VDP RAM
  1992.  
  1993. *************************************************************************
  1994. *                                    *
  1995. *  FCOM - Compare two floating point numbers                *
  1996. *                                      *
  1997. *     This routine compares the two floating point numbers at FAC and    *
  1998. *  ARG and sets the status bits.                    *
  1999. *                                    *
  2000. *************************************************************************
  2001.  
  2002. 0D3A C28B           MOV  R11,R10
  2003. 0D3C 0203 0FAA      LI   R3,>0FAA
  2004. 0D40 1007           JMP  >0D50
  2005. 0D42 C0CB           MOV  R11,R3
  2006. 0D44 1003           JMP  >0D4C
  2007. 0D46 0203 0FAA      LI   R3,>0FAA
  2008.  
  2009. *************************************************************************
  2010. *                                    *
  2011. *  SCOMP - Compare using a stack in VDP RAM                *
  2012. *                                      *
  2013. *    This routines compares two floating point numbers.  One is in    *
  2014. *  FAC and the other is in VDP RAM and pointed to by VSPTR.        *
  2015. *                                    *
  2016. *************************************************************************
  2017.  
  2018. 0D4A C28B           MOV  R11,R10
  2019. 0D4C 06A0 1FA8      BL   @>1FA8
  2020. 0D50 0207 835C      LI   R7,ARG
  2021. 0D54 0205 834A      LI   R5,FAC
  2022. 0D58 8D57           C    *R7,*R5+
  2023. 0D5A 160B           JNE  >0D72
  2024. 0D5C C1B7           MOV  *R7+,R6
  2025. 0D5E 1309           JEQ  >0D72
  2026. 0D60 1503           JGT  >0D68
  2027. 0D62 C185           MOV  R5,R6
  2028. 0D64 C147           MOV  R7,R5
  2029. 0D66 C1C6           MOV  R6,R7
  2030. 0D68 8D77           C    *R7+,*R5+
  2031. 0D6A 1603           JNE  >0D72
  2032. 0D6C 8D77           C    *R7+,*R5+
  2033. 0D6E 1601           JNE  >0D72
  2034. 0D70 8557           C    *R7,*R5
  2035. 0D72 0453           B    *R3
  2036.  
  2037. *************************************************************************
  2038. *                                    *
  2039. *  SSUB - Subtract two floating point numbers using a stack        *
  2040. *                                      *
  2041. *    This routines subtracts two floating point numbers.  One is in    *
  2042. *  FAC and the other is in VDP RAM and pointed to by VSPTR.        *
  2043. *                                    *
  2044. *  FAC := VSPTR^ - FAC                            *
  2045. *                                    *
  2046. *************************************************************************
  2047.  
  2048. 0D74 C28B           MOV  R11,R10
  2049. 0D76 06A0 1FA8      BL   @>1FA8
  2050. 0D7A C2CA           MOV  R10,R11
  2051.  
  2052. *************************************************************************
  2053. *                                    *
  2054. *  FSUB - Subtract two floating point numbers                *
  2055. *                                      *
  2056. *    This routine subtracts two floating point numbers.  It does this    *
  2057. *  by negating the number in FAC and using the FADD routine.        *
  2058. *                                      *
  2059. *  FAC := ARG - FAC                            *
  2060. *                                    *
  2061. *************************************************************************
  2062.  
  2063. 0D7C 0520 834A      NEG  @FAC
  2064.  
  2065. *************************************************************************
  2066. *                                    *
  2067. *  FADD - Add two floating point numbers                *
  2068. *                                      *
  2069. *    This routine adds two floating point numbers.            *
  2070. *                                      *
  2071. *  FAC := ARG + FAC                            *
  2072. *                                    *
  2073. *************************************************************************
  2074.  
  2075. 0D80 C28B           MOV  R11,R10
  2076. 0D82 1003           JMP  >0D8A
  2077.  
  2078. *************************************************************************
  2079. *                                    *
  2080. *  SADD - Add two floating point numbers using a stack in VDP RAM    *
  2081. *                                      *
  2082. *  FAC := VSPTR^ + ARG                            *
  2083. *                                    *
  2084. *************************************************************************
  2085.  
  2086. 0D84 C28B           MOV  R11,R10
  2087. 0D86 06A0 1FA8      BL   @>1FA8
  2088. 0D8A C1E0 835C      MOV  @ARG,R7
  2089. 0D8E 130A           JEQ  >0DA4
  2090. 0D90 C220 834A      MOV  @FAC,R8
  2091. 0D94 1609           JNE  >0DA8
  2092. 0D96 0201 FFF8      LI   R1,>FFF8        Move ARG to FAC
  2093. 0D9A C861 8364 8352 MOV  @>8364(R1),@>8352(R1)
  2094. 0DA0 05C1           INCT R1
  2095. 0DA2 11FB           JLT  >0D9A
  2096. 0DA4 0460 0FA6      B    @>0FA6
  2097. 0DA8 29C8           XOR  R8,7
  2098. 0DAA 0760 834A      ABS  @FAC    
  2099. 0DAE 0760 835C      ABS  @ARG
  2100. 0DB2 0203 FFF8      LI   R3,>FFF8
  2101. 0DB6 88E3 8352 8364 C    @>8352(R3),@>8364(R3)
  2102. 0DBC 150E           JGT  >0DDA
  2103. 0DBE 1103           JLT  >0DC6
  2104. 0DC0 05C3           INCT R3
  2105. 0DC2 16F9           JNE  >0DB6
  2106. 0DC4 100A           JMP  >0DDA
  2107. 0DC6 C023 8364      MOV  @>8364(R3),R0
  2108. 0DCA C8E3 8352 8364 MOV  @>8352(R3),@>8364(R3)
  2109. 0DD0 C8C0 8352      MOV  R0,@>8352(R3)
  2110. 0DD4 05C3           INCT R3
  2111. 0DD6 16F7           JNE  >0DC6
  2112. 0DD8 2A07           XOR  R7,8
  2113. 0DDA 04C5           CLR  R5
  2114. 0DDC 04E0 8352      CLR  @>8352
  2115. 0DE0 04E0 8364      CLR  @>8364
  2116. 0DE4 D808 8375      MOVB R8,@>8375
  2117. 0DE8 04C6           CLR  R6
  2118. 0DEA D820 834A 83ED MOVB @FAC,@>83ED
  2119. 0DF0 C806 8376      MOV  R6,@>8376
  2120. 0DF4 D805 834A      MOVB R5,@FAC
  2121. 0DF8 7820 835C 83ED SB   @ARG,@>83ED
  2122. 0DFE 0286 0007      CI   R6,>0007
  2123. 0E02 1540           JGT  >0E84
  2124. 0E04 C006           MOV  R6,R0
  2125. 0E06 0208 0100      LI   R8,>0100
  2126. 0E0A 0209 6400      LI   R9,>6400
  2127. 0E0E 0205 8353      LI   R5,>8353
  2128. 0E12 0206 8365      LI   R6,>8365
  2129. 0E16 6180           S    R0,R6
  2130. 0E18 C100           MOV  R0,R4
  2131. 0E1A 0224 FFF7      AI   R4,>FFF7
  2132. 0E1E C047           MOV  R7,R1
  2133. 0E20 1120           JLT  >0E62
  2134. 0E22 B556           AB   *R6,*R5
  2135. 0E24 9255           CB   *R5,R9
  2136. 0E26 1A03           JL   >0E2E
  2137. 0E28 7549           SB   R9,*R5
  2138. 0E2A B948 FFFF      AB   R8,@>FFFF(R5)
  2139. 0E2E 0605           DEC  R5
  2140. 0E30 0606           DEC  R6
  2141. 0E32 0584           INC  R4
  2142. 0E34 11F6           JLT  >0E22
  2143. 0E36 1002           JMP  >0E3C
  2144. 0E38 0605           DEC  R5
  2145. 0E3A B548           AB   R8,*R5
  2146. 0E3C 7549           SB   R9,*R5
  2147. 0E3E 15FC           JGT  >0E38
  2148. 0E40 13FB           JEQ  >0E38
  2149. 0E42 B549           AB   R9,*R5
  2150. 0E44 D060 834A      MOVB @FAC,R1
  2151. 0E48 130B           JEQ  >0E60
  2152. 0E4A 05A0 8376      INC  @>8376
  2153. 0E4E 0201 8352      LI   R1,>8352
  2154. 0E52 0202 0009      LI   R2,>0009
  2155. 0E56 D851 0001      MOVB *R1,@>0001(R1)
  2156. 0E5A 0601           DEC  R1
  2157. 0E5C 0602           DEC  R2
  2158. 0E5E 16FB           JNE  >0E56
  2159. 0E60 107A           JMP  >0F56
  2160. 0E62 7556           SB   *R6,*R5
  2161. 0E64 1504           JGT  >0E6E
  2162. 0E66 1303           JEQ  >0E6E
  2163. 0E68 B549           AB   R9,*R5
  2164. 0E6A 7948 FFFF      SB   R8,@>FFFF(R5)
  2165. 0E6E 0605           DEC  R5
  2166. 0E70 0606           DEC  R6
  2167. 0E72 0584           INC  R4
  2168. 0E74 11F6           JLT  >0E62
  2169. 0E76 1003           JMP  >0E7E
  2170. 0E78 B549           AB   R9,*R5
  2171. 0E7A 0605           DEC  R5
  2172. 0E7C 7548           SB   R8,*R5
  2173. 0E7E D115           MOVB *R5,R4
  2174. 0E80 11FB           JLT  >0E78
  2175. 0E82 104C           JMP  >0F1C
  2176. 0E84 0460 0F86      B    @>0F86
  2177.  
  2178. *************************************************************************
  2179. *                                    *
  2180. *  FMUL - Multiply two floating point numbers                *
  2181. *                                      *
  2182. *  FAC := ARG * FAC                            *
  2183. *                                    *
  2184. *************************************************************************
  2185.  
  2186. 0E88 C28B           MOV  R11,R10
  2187. 0E8A 1003           JMP  >0E92
  2188.  
  2189. *************************************************************************
  2190. *                                    *
  2191. *  SMUL - Multiply two floating point numbers using a stack in VDP RAM    *
  2192. *                                      *
  2193. *  FAC := VSPTR^ * FAC                            *
  2194. *                                    *
  2195. *************************************************************************
  2196.  
  2197. 0E8C C28B           MOV  R11,R10
  2198. 0E8E 06A0 1FA8      BL   @>1FA8
  2199. 0E92 0203 834A      LI   R3,FAC
  2200. 0E96 0205 835C      LI   R5,ARG
  2201. 0E9A C213           MOV  *R3,R8
  2202. 0E9C 1346           JEQ  >0F2A
  2203. 0E9E 2A15           XOR  *R5,8
  2204. 0EA0 0755           ABS  *R5
  2205. 0EA2 1343           JEQ  >0F2A
  2206. 0EA4 0753           ABS  *R3
  2207. 0EA6 04C9           CLR  R9
  2208. 0EA8 D253           MOVB *R3,R9
  2209. 0EAA B255           AB   *R5,R9
  2210. 0EAC 06C9           SWPB R9
  2211. 0EAE 0229 FFC1      AI   R9,>FFC1
  2212. 0EB2 C809 8376      MOV  R9,@>8376
  2213. 0EB6 D808 8375      MOVB R8,@>8375
  2214. 0EBA 0205 8352      LI   R5,>8352
  2215. 0EBE 04F5           CLR  *R5+
  2216. 0EC0 0285 835A      CI   R5,>835A
  2217. 0EC4 16FC           JNE  >0EBE
  2218. 0EC6 0205 8352      LI   R5,>8352
  2219. 0ECA 0605           DEC  R5
  2220. 0ECC D015           MOVB *R5,R0
  2221. 0ECE 13FD           JEQ  >0ECA
  2222. 0ED0 0207 0008      LI   R7,>0008
  2223. 0ED4 0607           DEC  R7
  2224. 0ED6 D027 835C      MOVB @ARG(R7),R0
  2225. 0EDA 13FC           JEQ  >0ED4
  2226. 0EDC 04C0           CLR  R0
  2227. 0EDE 3880           MPY  R0,2
  2228. 0EE0 C185           MOV  R5,R6
  2229. 0EE2 0208 83E1      LI   R8,>83E1
  2230. 0EE6 0209 0064      LI   R9,>0064
  2231. 0EEA C107           MOV  R7,R4
  2232. 0EEC A187           A    R7,R6
  2233. 0EEE D815 83E7      MOVB *R5,@>83E7
  2234. 0EF2 D543           MOVB R3,*R5
  2235. 0EF4 D624 835C      MOVB @ARG(R4),*R8
  2236. 0EF8 3803           MPY  R3,0
  2237. 0EFA D816 83E5      MOVB *R6,@>83E5
  2238. 0EFE A042           A    R2,R1
  2239. 0F00 3C09           DIV  R9,0
  2240. 0F02 D5A0 83E3      MOVB @>83E3,*R6
  2241. 0F06 0606           DEC  R6
  2242. 0F08 B598           AB   *R8,*R6
  2243. 0F0A 0604           DEC  R4
  2244. 0F0C 15F3           JGT  >0EF4
  2245. 0F0E 0606           DEC  R6
  2246. 0F10 0605           DEC  R5
  2247. 0F12 0285 834A      CI   R5,FAC
  2248. 0F16 15E9           JGT  >0EEA
  2249. 0F18 04E0 8354      CLR  @>8354
  2250. 0F1C 0201 FFF7      LI   R1,>FFF7
  2251. 0F20 D0A1 8354      MOVB @>8354(R1),R2
  2252. 0F24 1607           JNE  >0F34
  2253. 0F26 0581           INC  R1
  2254. 0F28 11FB           JLT  >0F20
  2255.  
  2256. 0F2A 04E0 834A      CLR  @FAC        Set the value at FAC to zero.
  2257. 0F2E 04E0 834C      CLR  @>834C
  2258. 0F32 1039           JMP  >0FA6
  2259.  
  2260. 0F34 C001           MOV  R1,R0
  2261. 0F36 0220 0009      AI   R0,>0009
  2262. 0F3A 130D           JEQ  >0F56
  2263. 0F3C 6800 8376      S    R0,@>8376
  2264. 0F40 0202 834B      LI   R2,>834B
  2265. 0F44 DCA1 8354      MOVB @>8354(R1),*R2+
  2266. 0F48 0581           INC  R1
  2267. 0F4A 11FC           JLT  >0F44
  2268. 0F4C DC81           MOVB R1,*R2+
  2269. 0F4E 0600           DEC  R0
  2270. 0F50 15FD           JGT  >0F4C
  2271. 0F52 1001           JMP  >0F56
  2272.  
  2273. *************************************************************************
  2274. *                                    *
  2275. *    Some sort of undocumented floating point routine         *
  2276. *                                    *
  2277. *************************************************************************
  2278.  
  2279. 0F54 C28B           MOV  R11,R10
  2280. 0F56 0200 3200      LI   R0,>3200    50*256
  2281. 0F5A 8020 8352      C    @>8352,R0
  2282. 0F5E 1113           JLT  >0F86
  2283. 0F60 0201 0007      LI   R1,>0007
  2284. 0F64 0202 0100      LI   R2,>0100
  2285. 0F68 0200 6400      LI   R0,>6400    100*256
  2286. 0F6C B842 834A      AB   R2,@FAC(R1)
  2287. 0F70 9021 834A      CB   @FAC(R1),R0
  2288. 0F74 1A08           JL   >0F86
  2289. 0F76 7840 834A      SB   R0,@FAC(R1)
  2290. 0F7A 0601           DEC  R1
  2291. 0F7C 15F7           JGT  >0F6C
  2292. 0F7E 05A0 8376      INC  @>8376
  2293. 0F82 D802 834B      MOVB R2,@>834B
  2294.  
  2295. 0F86 C0E0 8376      MOV  @>8376,R3
  2296. 0F8A 0283 0080      CI   R3,>0080
  2297. 0F8E 141A           JHE  >0FC4
  2298. 0F90 D820 83E7 834A MOVB @>83E7,@FAC
  2299. 0F96 D0A0 8375      MOVB @>8375,R2
  2300. 0F9A 0542           INV  R2
  2301. 0F9C 1102           JLT  >0FA2
  2302. 0F9E 0520 834A      NEG  @FAC
  2303. 0FA2 1001           JMP  >0FA6
  2304.  
  2305. *************************************************************************
  2306. *                                    *
  2307. *    Some sort of undocumented floating point routine         *
  2308. *                                    *
  2309. *  Compare the value at FAC to zero (integer) and store the status    *
  2310. *  in >837C                                *
  2311. *                                    *
  2312. *************************************************************************
  2313.  
  2314. 0FA4 C28B           MOV  R11,R10
  2315. 0FA6 C060 834A      MOV  @FAC,R1
  2316. 0FAA 02C2           STST R2
  2317. 0FAC D802 837C      MOVB R2,@>837C
  2318. 0FB0 045A           B    *R10
  2319.  
  2320. *************************************************************************
  2321. *                                    *
  2322. *    Some sort of undocumented floating point routine         *
  2323. *                                    *
  2324. *************************************************************************
  2325.  
  2326. 0FB2 C28B           MOV  R11,R10
  2327. 0FB4 D060 8354      MOVB @>8354,R1    Get the error code
  2328. 0FB8 0981           SRL  R1,8        Put it in the lower byte of R1
  2329. 0FBA 10D4           JMP  >0F64
  2330.  
  2331. 0FBC 0209 0200      LI   R9,>0200    Store a great number in FAC
  2332. 0FC0 1008           JMP  >0FD2        and store a 2 at >8351
  2333.  
  2334. *************************************************************************
  2335. *                                    *
  2336. *    Some sort of undocumented floating point routine         *
  2337. *                                    *
  2338. *  This routine will either set FAC to zero, or the greatest number    *
  2339. *  possible depending on the value at >8376 (EXP).            *
  2340. *                                    *
  2341. *************************************************************************
  2342.  
  2343. 0FC2 C28B           MOV  R11,R10
  2344. 0FC4 D0A0 8376      MOVB @>8376,R2
  2345. 0FC8 11B0           JLT  >0F2A
  2346. 0FCA 1001           JMP  >0FCE
  2347.  
  2348. *************************************************************************
  2349. *                                    *
  2350. *    Some sort of undocumented floating point routine         *
  2351. *                                    *
  2352. *  It will store either the greatest positive number in FAC or the    *
  2353. *  greatest negative number in FAC depending on the value at >8375 (SGN)*
  2354. *                                    *
  2355. *************************************************************************
  2356.  
  2357. 0FCC C28B           MOV  R11,R10
  2358. 0FCE 0209 0100      LI   R9,>0100
  2359. 0FD2 0200 809D      LI   R0,>809D
  2360. 0FD6 D0A0 8375      MOVB @>8375,R2    (SGN)
  2361. 0FDA 1101           JLT  >0FDE
  2362. 0FDC 0500           NEG  R0
  2363. 0FDE 0202 834A      LI   R2,FAC        Store +9.9999999999999x10^127 in FAC
  2364. 0FE2 CC80           MOV  R0,*R2+
  2365. 0FE4 0200 6363      LI   R0,>6363
  2366. 0FE8 CC80           MOV  R0,*R2+
  2367. 0FEA CC80           MOV  R0,*R2+
  2368. 0FEC C480           MOV  R0,*R2
  2369. 0FEE D809 8354      MOVB R9,@>8354    Error code 1 - Overflow
  2370. 0FF2 10D9           JMP  >0FA6
  2371.  
  2372. *************************************************************************
  2373. *                                    *
  2374. *  FDIV - Divide two floating point numbers                *
  2375. *                                      *
  2376. *  FAC := ARG / FAC                            *
  2377. *                                    *
  2378. *************************************************************************
  2379.  
  2380. 0FF4 C28B           MOV  R11,R10
  2381. 0FF6 1003           JMP  >0FFE
  2382.  
  2383. *************************************************************************
  2384. *                                    *
  2385. *  SDIV - Divide two floating point numbers using a stack in VDP RAM    *
  2386. *                                      *
  2387. *  FAC := VSPTR^ / FAC                            *
  2388. *                                    *
  2389. *************************************************************************
  2390.  
  2391. 0FF8 C28B           MOV  R11,R10
  2392. 0FFA 06A0 1FA8      BL   @>1FA8
  2393. 0FFE 0203 834A      LI   R3,FAC
  2394. 1002 C213           MOV  *R3,R8
  2395. 1004 0200 835C      LI   R0,ARG
  2396. 1008 2A10           XOR  *R0,8
  2397. 100A D808 8375      MOVB R8,@>8375
  2398. 100E 0753           ABS  *R3
  2399. 1010 13D5           JEQ  >0FBC
  2400. 1012 0750           ABS  *R0
  2401. 1014 138A           JEQ  >0F2A
  2402. 1016 D250           MOVB *R0,R9
  2403. 1018 7253           SB   *R3,R9
  2404. 101A 0889           SRA  R9,8
  2405. 101C 0229 0040      AI   R9,>0040
  2406. 1020 C809 8376      MOV  R9,@>8376
  2407. 1024 0204 0004      LI   R4,>0004
  2408. 1028 0205 8364      LI   R5,>8364
  2409. 102C C8F3 0008      MOV  *R3+,@>0008(R3)
  2410. 1030 04F5           CLR  *R5+
  2411. 1032 0604           DEC  R4
  2412. 1034 15FB           JGT  >102C
  2413. 1036 D804 835C      MOVB R4,@ARG
  2414. 103A 0205 83E1      LI   R5,>83E1
  2415. 103E 0206 83E3      LI   R6,>83E3
  2416. 1042 0207 0064      LI   R7,>0064
  2417. 1046 04C2           CLR  R2
  2418. 1048 D820 8355 83E5 MOVB @>8355,@>83E5
  2419. 104E 0282 0031      CI   R2,>0031
  2420. 1052 151E           JGT  >1090
  2421. 1054 0582           INC  R2
  2422. 1056 04C3           CLR  R3
  2423. 1058 C107           MOV  R7,R4
  2424. 105A 3CC2           DIV  R2,3
  2425. 105C 0209 835C      LI   R9,ARG
  2426. 1060 0204 0008      LI   R4,>0008
  2427. 1064 0604           DEC  R4
  2428. 1066 0609           DEC  R9
  2429. 1068 D019           MOVB *R9,R0
  2430. 106A 13FC           JEQ  >1064
  2431. 106C 04C0           CLR  R0
  2432. 106E C080           MOV  R0,R2
  2433. 1070 D559           MOVB *R9,*R5
  2434. 1072 3803           MPY  R3,0
  2435. 1074 A042           A    R2,R1
  2436. 1076 3C07           DIV  R7,0
  2437. 1078 D656           MOVB *R6,*R9
  2438. 107A 0609           DEC  R9
  2439. 107C 0604           DEC  R4
  2440. 107E 15F7           JGT  >106E
  2441. 1080 0289 8354      CI   R9,>8354
  2442. 1084 1603           JNE  >108C
  2443. 1086 0209 8364      LI   R9,>8364
  2444. 108A 10EA           JMP  >1060
  2445. 108C D815 835C      MOVB *R5,@ARG
  2446. 1090 0206 0008      LI   R6,>0008
  2447. 1094 0606           DEC  R6
  2448. 1096 D026 8354      MOVB @>8354(R6),R0
  2449. 109A 13FC           JEQ  >1094
  2450. 109C 04C7           CLR  R7
  2451. 109E D820 8355 83EF MOVB @>8355,@>83EF
  2452. 10A4 C207           MOV  R7,R8
  2453. 10A6 3A20 1044      MPY  @>1044,8
  2454. 10AA D820 8356 83F1 MOVB @>8356,@>83F1
  2455. 10B0 A248           A    R8,R9
  2456. 10B2 0205 FFF7      LI   R5,>FFF7
  2457. 10B6 020B 835C      LI   R11,ARG
  2458. 10BA 04C2           CLR  R2
  2459. 10BC D81B 83E5      MOVB *R11,@>83E5
  2460. 10C0 38A0 1044      MPY  @>1044,2
  2461. 10C4 04C0           CLR  R0
  2462. 10C6 D82B 0001 83E1 MOVB @>0001(R11),@>83E1
  2463. 10CC A0C0           A    R0,R3
  2464. 10CE 3C87           DIV  R7,2
  2465. 10D0 38E0 1044      MPY  @>1044,3
  2466. 10D4 D82B 0002 83E1 MOVB @>0002(R11),@>83E1
  2467. 10DA A100           A    R0,R4
  2468. 10DC C002           MOV  R2,R0
  2469. 10DE 3808           MPY  R8,0
  2470. 10E0 8802 1044      C    R2,@>1044
  2471. 10E4 1302           JEQ  >10EA
  2472. 10E6 6044           S    R4,R1
  2473. 10E8 1003           JMP  >10F0
  2474. 10EA 6044           S    R4,R1
  2475. 10EC 0602           DEC  R2
  2476. 10EE 6049           S    R9,R1
  2477. 10F0 15FD           JGT  >10EC
  2478. 10F2 C082           MOV  R2,R2
  2479. 10F4 1329           JEQ  >1148
  2480. 10F6 04C3           CLR  R3
  2481. 10F8 C106           MOV  R6,R4
  2482. 10FA A2C6           A    R6,R11
  2483. 10FC C0C0           MOV  R0,R3
  2484. 10FE D824 8354 83E1 MOVB @>8354(R4),@>83E1
  2485. 1104 3802           MPY  R2,0
  2486. 1106 A043           A    R3,R1
  2487. 1108 3C20 1044      DIV  @>1044,0
  2488. 110C 76E0 83E3      SB   @>83E3,*R11
  2489. 1110 1504           JGT  >111A
  2490. 1112 1303           JEQ  >111A
  2491. 1114 B6E0 1045      AB   @>1045,*R11
  2492. 1118 0580           INC  R0
  2493. 111A 060B           DEC  R11
  2494. 111C 0604           DEC  R4
  2495. 111E 15EE           JGT  >10FC
  2496. 1120 76E0 83E1      SB   @>83E1,*R11
  2497. 1124 1511           JGT  >1148
  2498. 1126 1310           JEQ  >1148
  2499. 1128 0602           DEC  R2
  2500. 112A C106           MOV  R6,R4
  2501. 112C A2C6           A    R6,R11
  2502. 112E B6E4 8354      AB   @>8354(R4),*R11
  2503. 1132 981B 1045      CB   *R11,@>1045
  2504. 1136 1A05           JL   >1142
  2505. 1138 76E0 1045      SB   @>1045,*R11
  2506. 113C BAE0 0E59 FFFF AB   @>0E59,@>FFFF(R11)
  2507. 1142 060B           DEC  R11
  2508. 1144 0604           DEC  R4
  2509. 1146 15F3           JGT  >112E
  2510. 1148 D960 83E5 8354 MOVB @>83E5,@>8354(R5)
  2511. 114E 058B           INC  R11
  2512. 1150 0585           INC  R5
  2513. 1152 11B3           JLT  >10BA
  2514. 1154 0460 0F18      B    @>0F18
  2515. 1158 3203           LDCR R3,8
  2516. 115A 04C4           CLR  R4
  2517. 115C 04C0           CLR  R0
  2518. 115E C24B           MOV  R11,R9
  2519. 1160 1008           JMP  >1172
  2520. 1162 3920 117A      MPY  @>117A,4
  2521. 1166 C104           MOV  R4,R4
  2522. 1168 160D           JNE  >1184
  2523. 116A 0580           INC  R0
  2524. 116C A148           A    R8,R5
  2525. 116E C105           MOV  R5,R4
  2526. 1170 1109           JLT  >1184
  2527. 1172 0693           BL   *R3
  2528. 1174 0228 FFD0      AI   R8,>FFD0
  2529. 1178 0288 000A      CI   R8,>000A
  2530. 117C 1AF2           JL   >1162
  2531. 117E C000           MOV  R0,R0
  2532. 1180 1306           JEQ  >118E
  2533. 1182 0459           B    *R9
  2534. 1184 0209 1190      LI   R9,>1190
  2535. 1188 10F4           JMP  >1172
  2536. 118A 0460 0F2A      B    @>0F2A
  2537. 118E 045A           B    *R10
  2538. 1190 0606           DEC  R6
  2539. 1192 C806 8356      MOV  R6,@>8356
  2540. 1196 808C           C    R12,R2
  2541. 1198 13F8           JEQ  >118A
  2542. 119A C801 8376      MOV  R1,@>8376
  2543. 119E 0460 0FC4      B    @>0FC4
  2544. 11A2 D0E0 8389      MOVB @>8389,R3
  2545. 11A6 1303           JEQ  >11AE
  2546. 11A8 0203 1FDA      LI   R3,>1FDA
  2547. 11AC 1002           JMP  >11B2
  2548.  
  2549. *************************************************************************
  2550. *                                    *
  2551. *  CSN - Convert string to number                    *
  2552. *                                      *
  2553. *  FAC + 12 is the address of the string in RAM                *
  2554. *  FAC is the result                            *
  2555. *                                    *
  2556. *************************************************************************
  2557.  
  2558. 11AE 0203 1FC8      LI   R3,>1FC8
  2559. 11B2 C28B           MOV  R11,R10
  2560. 11B4 C1A0 8356      MOV  @>8356,R6
  2561. 11B8 0693           BL   *R3
  2562. 11BA 04C7           CLR  R7
  2563. 11BC C086           MOV  R6,R2
  2564. 11BE 0288 002B      CI   R8,>002B
  2565. 11C2 1304           JEQ  >11CC
  2566. 11C4 0288 002D      CI   R8,>002D
  2567. 11C8 1603           JNE  >11D0
  2568. 11CA 0707           SETO R7
  2569. 11CC 0582           INC  R2
  2570. 11CE 0693           BL   *R3
  2571. 11D0 0288 0030      CI   R8,>0030
  2572. 11D4 13FC           JEQ  >11CE
  2573. 11D6 D807 8375      MOVB R7,@>8375
  2574. 11DA C306           MOV  R6,R12
  2575. 11DC 060C           DEC  R12
  2576. 11DE 0707           SETO R7
  2577. 11E0 1002           JMP  >11E6
  2578. 11E2 0587           INC  R7
  2579. 11E4 0693           BL   *R3
  2580. 11E6 0288 0030      CI   R8,>0030
  2581. 11EA 1A03           JL   >11F2
  2582. 11EC 0288 0039      CI   R8,>0039
  2583. 11F0 12F8           JLE  >11E2
  2584. 11F2 0288 002E      CI   R8,>002E
  2585. 11F6 1614           JNE  >1220
  2586. 11F8 0582           INC  R2
  2587. 11FA C1C7           MOV  R7,R7
  2588. 11FC 1102           JLT  >1202
  2589. 11FE 1007           JMP  >120E
  2590. 1200 0607           DEC  R7
  2591. 1202 0693           BL   *R3
  2592. 1204 0288 0030      CI   R8,>0030
  2593. 1208 13FB           JEQ  >1200
  2594. 120A 0606           DEC  R6
  2595. 120C C306           MOV  R6,R12
  2596. 120E 0693           BL   *R3
  2597. 1210 0288 0030      CI   R8,>0030
  2598. 1214 1A03           JL   >121C
  2599. 1216 0288 0039      CI   R8,>0039
  2600. 121A 12F9           JLE  >120E
  2601. 121C 8086           C    R6,R2
  2602. 121E 13B5           JEQ  >118A
  2603. 1220 C086           MOV  R6,R2
  2604. 1222 04C4           CLR  R4
  2605. 1224 0602           DEC  R2
  2606. 1226 04C1           CLR  R1
  2607. 1228 0288 0045      CI   R8,>0045
  2608. 122C 160F           JNE  >124C
  2609. 122E 0693           BL   *R3
  2610. 1230 0288 002B      CI   R8,>002B
  2611. 1234 1306           JEQ  >1242
  2612. 1236 0288 002D      CI   R8,>002D
  2613. 123A 1602           JNE  >1240
  2614. 123C 0601           DEC  R1
  2615. 123E 1001           JMP  >1242
  2616. 1240 0606           DEC  R6
  2617. 1242 06A0 115A      BL   @>115A
  2618. 1246 D041           MOVB R1,R1
  2619. 1248 1301           JEQ  >124C
  2620. 124A 0504           NEG  R4
  2621. 124C 0606           DEC  R6
  2622. 124E C806 8356      MOV  R6,@>8356
  2623. 1252 808C           C    R12,R2
  2624. 1254 139A           JEQ  >118A
  2625. 1256 0224 0080      AI   R4,>0080
  2626. 125A 04C1           CLR  R1
  2627. 125C A107           A    R7,R4
  2628. 125E C1C4           MOV  R4,R7
  2629. 1260 0814           SRA  R4,1
  2630. 1262 C804 8376      MOV  R4,@>8376
  2631. 1266 0B17           SRC  R7,1
  2632. 1268 0205 0008      LI   R5,>0008
  2633. 126C 0200 834B      LI   R0,>834B
  2634. 1270 C18C           MOV  R12,R6
  2635. 1272 8086           C    R6,R2
  2636. 1274 130F           JEQ  >1294
  2637. 1276 0693           BL   *R3
  2638. 1278 0288 002E      CI   R8,>002E
  2639. 127C 13FA           JEQ  >1272
  2640. 127E 0228 FFD0      AI   R8,>FFD0
  2641. 1282 0547           INV  R7
  2642. 1284 1105           JLT  >1290
  2643. 1286 3A20 117A      MPY  @>117A,8
  2644. 128A D060 83F3      MOVB @>83F3,R1
  2645. 128E 10F1           JMP  >1272
  2646. 1290 B060 83F1      AB   @>83F1,R1
  2647. 1294 DC01           MOVB R1,*R0+
  2648. 1296 04C1           CLR  R1
  2649. 1298 0605           DEC  R5
  2650. 129A 16EB           JNE  >1272
  2651. 129C 0460 0F56      B    @>0F56
  2652.  
  2653. *************************************************************************
  2654. *                                    *
  2655. *        CONVERSION AND TI BASIC ROUTINES TABLE            *
  2656. *                                    *
  2657. *************************************************************************
  2658.  
  2659. 12A0 11AE           DATA >11AE        Convert string to number
  2660. 12A2 11A2           DATA >11A2
  2661. 12A4 12B8           DATA >12B8        Convert floating point to integer
  2662. 12A6 1648           DATA >1648
  2663. 12A8 164E           DATA >164E
  2664. 12AA 1642           DATA >1642
  2665. 12AC 15D6           DATA >15D6
  2666. 12AE 163C           DATA >163C
  2667. 12B0 1F2E           DATA >1F2E
  2668. 12B2 0AC0           DATA >0AC0        Call peripheral routine
  2669. 12B4 0B24           DATA >0B24
  2670. 12B6 1868           DATA >1868
  2671.  
  2672. *************************************************************************
  2673. *                                    *
  2674. *  CFI - Convert floating point to integer                *
  2675. *                                      *
  2676. *  Input:    FAC is the floating point number to be converted    *
  2677. *  Output:    FAC = 1 word integer value                *
  2678. *  If there is an overflow, FAC + 10 (>8354) = >03            *
  2679. *                                    *
  2680. *************************************************************************
  2681.  
  2682. 12B8 C120 834A      MOV  @FAC,R4
  2683. 12BC 1342           JEQ  >1342          If number=0, we just return
  2684. 12BE 04C0           CLR  R0             R0 will be the integer value
  2685. 12C0 0202 834B      LI   R2,FAC+1
  2686. 12C4 04C3           CLR  R3
  2687. 12C6 0760 834A      ABS  @FAC
  2688. 12CA 04C5           CLR  R5
  2689. 12CC D160 834A      MOVB @FAC,R5
  2690. 12D0 0285 3F00      CI   R5,>3F00       See if exponent = -1
  2691. 12D4 1134           JLT  >133E          If less, return 0
  2692. 12D6 1318           JEQ  >1308          If equal, check for rounding up
  2693. 12D8 0285 4100      CI   R5,>4100       See if exponent = 1
  2694. 12DC 1112           JLT  >1302             (1-99)
  2695. 12DE 1308           JEQ  >12F0             (100-9,999)
  2696. 12E0 0285 4200      CI   R5,>4200       See if exponent= 2
  2697. 12E4 1B25           JH   >1330             (>999,999) Overflow
  2698. 12E6 D832 83E1      MOVB *R2+,@>83E1    (10,000-999,999)
  2699. 12EA 3820 1320      MPY  @>1320,0       Multiply by 100
  2700. 12EE C001           MOV  R1,R0
  2701. 12F0 D832 83E7      MOVB *R2+,@>83E7    Move to lower byte of R3
  2702. 12F4 A003           A    R3,R0
  2703. 12F6 3820 1320      MPY  @>1320,0       Multiply by 100
  2704. 12FA C000           MOV  R0,R0          Check for overflow
  2705. 12FC 1619           JNE  >1330
  2706. 12FE C001           MOV  R1,R0
  2707. 1300 1117           JLT  >1330          Overflow if R0 > 32767
  2708. 1302 D832 83E7      MOVB *R2+,@>83E7    Move to lower byte of R3
  2709. 1306 A003           A    R3,R0
  2710. 1308 9832 1158      CB   *R2+,@>1158    See if fraction is 50 or above
  2711. 130C 110B           JLT  >1324
  2712. 130E 1509           JGT  >1322          If so, round up
  2713. 1310 C104           MOV  R4,R4
  2714. 1312 1507           JGT  >1322
  2715. 1314 D0F2           MOVB *R2+,R3
  2716. 1316 1605           JNE  >1322
  2717. 1318 0282 8352      CI   R2,FAC+8
  2718. 131C 1AFB           JL   >1314
  2719. 131E 1002           JMP  >1324
  2720.  
  2721. 1320 0064           DATA 100
  2722.  
  2723. 1322 0580           INC  R0
  2724. 1324 0280 8000      CI   R0,>8000
  2725. 1328 1A07           JL   >1338
  2726. 132A 1B02           JH   >1330
  2727. 132C C104           MOV  R4,R4
  2728. 132E 1106           JLT  >133C
  2729. 1330 D820 1159 8354 MOVB @>1159,@FAC+10   Set overflow flag
  2730. 1336 045B           RT
  2731.  
  2732. 1338 0544           INV  R4
  2733. 133A 1101           JLT  >133E
  2734. 133C 0500           NEG  R0
  2735. 133E C800 834A      MOV  R0,@FAC
  2736. 1342 045B           RT
  2737.  
  2738. 1344 0010           DATA >0010
  2739.  
  2740. *************************************************************************
  2741. *                                    *
  2742. *  GPL Instruction >F6,>F7 - I/O Instruction                *
  2743. *                                    *
  2744. *  Definition:  This is an extended instruction in the sense that    *
  2745. *               the action that occurs depends upon the value of    *
  2746. *               the IMM field. Specifically, this instruction        *
  2747. *               does SOUND , CRU input and output.            *
  2748. *                                    *
  2749. *************************************************************************
  2750.  
  2751. 1346 04C0           CLR  R0
  2752. 1348 0202 0300      LI   R2,>0300
  2753. 134C 0208 1E19      LI   R8,>1E19
  2754. 1350 0203 0023      LI   R3,>0023
  2755. 1354 06A0 13BA      BL   @>13BA
  2756. 1358 0200 13E2      LI   R0,>13E2
  2757. 135C 0300 0001      LIMI >0001
  2758. 1360 04C4           CLR  R4
  2759. 1362 0690           BL   *R0
  2760. 1364 0602           DEC  R2
  2761. 1366 16FC           JNE  >1360
  2762. 1368 0704           SETO R4
  2763. 136A 0690           BL   *R0
  2764. 136C C105           MOV  R5,R4
  2765. 136E 06C4           SWPB R4
  2766. 1370 0690           BL   *R0
  2767. 1372 C105           MOV  R5,R4
  2768. 1374 06C4           SWPB R4
  2769. 1376 0690           BL   *R0
  2770. 1378 04C9           CLR  R9
  2771. 137A 0202 0008      LI   R2,>0008
  2772. 137E 04C4           CLR  R4
  2773. 1380 0690           BL   *R0
  2774. 1382 0602           DEC  R2
  2775. 1384 16FC           JNE  >137E
  2776. 1386 0704           SETO R4
  2777. 1388 0690           BL   *R0
  2778. 138A D7E0 83F5      MOVB @>83F5,*R15
  2779. 138E 0202 0040      LI   R2,>0040
  2780. 1392 D7CA           MOVB R10,*R15
  2781. 1394 04C7           CLR  R7
  2782. 1396 04C4           CLR  R4
  2783. 1398 D12F FBFE      MOVB @>FBFE(R15),R4
  2784. 139C A1C4           A    R4,R7
  2785. 139E 0690           BL   *R0
  2786. 13A0 0602           DEC  R2
  2787. 13A2 16F9           JNE  >1396
  2788. 13A4 C107           MOV  R7,R4
  2789. 13A6 0690           BL   *R0
  2790. 13A8 0549           INV  R9
  2791. 13AA 16E7           JNE  >137A
  2792. 13AC 022A 0040      AI   R10,>0040
  2793. 13B0 0605           DEC  R5
  2794. 13B2 16E3           JNE  >137A
  2795. 13B4 10FF           JMP  >13B4
  2796. 13B6 0460 155E      B    @>155E
  2797. 13BA C171           MOV  *R1+,R5
  2798. 13BC 0225 003F      AI   R5,>003F
  2799. 13C0 0965           SRL  R5,6
  2800. 13C2 E011           SOC  *R1,R0
  2801. 13C4 C280           MOV  R0,R10
  2802. 13C6 D7E0 83E1      MOVB @>83E1,*R15
  2803. 13CA 04C1           CLR  R1
  2804. 13CC 04CC           CLR  R12
  2805. 13CE D7C0           MOVB R0,*R15
  2806. 13D0 E3A0 0032      SOC  @>0032,R14
  2807. 13D4 1E02           SBZ  2
  2808. 13D6 1E0C           SBZ  12
  2809. 13D8 33C3           LDCR R3,15
  2810. 13DA 1E00           SBZ  0
  2811. 13DC 1E01           SBZ  1
  2812. 13DE 1D03           SBO  3
  2813. 13E0 045B           RT
  2814.  
  2815. 13E2 0206 0008      LI   R6,>0008
  2816. 13E6 0544           INV  R4
  2817. 13E8 10FF           JMP  >13E8
  2818. 13EA 0488           X    R8
  2819. 13EC 2A20 135C      XOR  @>135C,8
  2820. 13F0 10FF           JMP  >13F0
  2821. 13F2 C104           MOV  R4,R4
  2822. 13F4 1103           JLT  >13FC
  2823. 13F6 0488           X    R8
  2824. 13F8 2A20 135C      XOR  @>135C,8
  2825. 13FC 0A14           SLA  R4,1
  2826. 13FE 0606           DEC  R6
  2827. 1400 16F3           JNE  >13E8
  2828. 1402 045B           RT
  2829.  
  2830. 1404 1E00           SBZ  0
  2831. 1406 1D03           SBO  3
  2832. 1408 C041           MOV  R1,R1
  2833. 140A 1107           JLT  >141A
  2834. 140C 02E0 83C0      LWPI >83C0
  2835. 1410 881E 13F0      C    *R14,@>13F0
  2836. 1414 1602           JNE  >141A
  2837. 1416 05CE           INCT R14
  2838. 1418 0380           RTWP
  2839.  
  2840. 141A 02E0 83C0      LWPI >83C0
  2841. 141E C3A0 83EC      MOV  @>83EC,R14
  2842. 1422 10FA           JMP  >1418
  2843. 1424 2100           DATA >2100
  2844.  
  2845. *************************************************************************
  2846. *                                    *
  2847. *************************************************************************
  2848.  
  2849. 1426 E3A0 1344      SOC  @>1344,R14
  2850. 142A 04C0           CLR  R0
  2851. 142C 1004           JMP  >1436
  2852.  
  2853. *************************************************************************
  2854. *                                    *
  2855. *************************************************************************
  2856.  
  2857. 142E 43A0 1344      SZC  @>1344,R14
  2858. 1432 0200 4000      LI   R0,>4000
  2859. 1436 0203 002B      LI   R3,>002B
  2860. 143A 06A0 13BA      BL   @>13BA
  2861. 143E C1CA           MOV  R10,R7
  2862. 1440 04C0           CLR  R0
  2863. 1442 D820 1443 837C MOVB @>1443,@>837C
  2864. 1448 0208 7530      LI   R8,>7530
  2865. 144C 0300 0001      LIMI >0001
  2866. 1450 0206 1458      LI   R6,>1458
  2867. 1454 0203 002B      LI   R3,>002B
  2868. 1458 0241 00FF      ANDI R1,>00FF
  2869. 145C 0608           DEC  R8
  2870. 145E 137F           JEQ  >155E
  2871. 1460 0202 0030      LI   R2,>0030
  2872. 1464 C000           MOV  R0,R0
  2873. 1466 1601           JNE  >146A
  2874. 1468 A082           A    R2,R2
  2875. 146A 06A0 1572      BL   @>1572
  2876. 146E 1001           JMP  >1472
  2877. 1470 10F3           JMP  >1458
  2878. 1472 0602           DEC  R2
  2879. 1474 16FA           JNE  >146A
  2880. 1476 0209 7FFF      LI   R9,>7FFF
  2881. 147A 0208 0008      LI   R8,>0008
  2882. 147E 33C9           LDCR R9,15
  2883. 1480 1E00           SBZ  0
  2884. 1482 1D03           SBO  3
  2885. 1484 06A0 15BA      BL   @>15BA
  2886. 1488 1001           JMP  >148C
  2887. 148A 10FC           JMP  >1484
  2888. 148C 0608           DEC  R8
  2889. 148E 16FA           JNE  >1484
  2890. 1490 1D00           SBO  0
  2891. 1492 37C3           STCR R3,15
  2892. 1494 6243           S    R3,R9
  2893. 1496 C0C9           MOV  R9,R3
  2894. 1498 0A29           SLA  R9,2
  2895. 149A A0C9           A    R9,R3
  2896. 149C 0963           SRL  R3,6
  2897. 149E 0263 0001      ORI  R3,>0001
  2898. 14A2 020A 14B0      LI   R10,>14B0
  2899. 14A6 0283 001F      CI   R3,>001F
  2900. 14AA 11D4           JLT  >1454
  2901. 14AC 0460 1580      B    @>1580
  2902. 14B0 06A0 1572      BL   @>1572
  2903. 14B4 10FD           JMP  >14B0
  2904. 14B6 0202 0007      LI   R2,>0007
  2905. 14BA 06A0 1572      BL   @>1572
  2906. 14BE 10CC           JMP  >1458
  2907. 14C0 0602           DEC  R2
  2908. 14C2 16FB           JNE  >14BA
  2909. 14C4 0206 14F8      LI   R6,>14F8
  2910. 14C8 C000           MOV  R0,R0
  2911. 14CA 1631           JNE  >152E
  2912. 14CC D820 1424 837C MOVB @>1424,@>837C
  2913. 14D2 C007           MOV  R7,R0
  2914. 14D4 04C7           CLR  R7
  2915. 14D6 06A0 15A0      BL   @>15A0
  2916. 14DA 8105           C    R5,R4
  2917. 14DC 1A40           JL   >155E
  2918. 14DE C144           MOV  R4,R5
  2919. 14E0 0585           INC  R5
  2920. 14E2 0507           NEG  R7
  2921. 14E4 06A0 15A0      BL   @>15A0
  2922. 14E8 163A           JNE  >155E
  2923. 14EA 101D           JMP  >1526
  2924. 14EC 0247 00FF      ANDI R7,>00FF
  2925. 14F0 0507           NEG  R7
  2926. 14F2 06A0 15A0      BL   @>15A0
  2927. 14F6 1307           JEQ  >1506
  2928. 14F8 C145           MOV  R5,R5
  2929. 14FA 1131           JLT  >155E
  2930. 14FC D7E0 83E1      MOVB @>83E1,*R15
  2931. 1500 0505           NEG  R5
  2932. 1502 D7C0           MOVB R0,*R15
  2933. 1504 10A1           JMP  >1448
  2934. 1506 C145           MOV  R5,R5
  2935. 1508 1108           JLT  >151A
  2936. 150A 0202 0049      LI   R2,>0049
  2937. 150E 0206 1516      LI   R6,>1516
  2938. 1512 06A0 15A0      BL   @>15A0
  2939. 1516 0602           DEC  R2
  2940. 1518 16FA           JNE  >150E
  2941. 151A 0220 0040      AI   R0,>0040
  2942. 151E D7E0 83E1      MOVB @>83E1,*R15
  2943. 1522 0745           ABS  R5
  2944. 1524 D7C0           MOVB R0,*R15
  2945. 1526 04C7           CLR  R7
  2946. 1528 0605           DEC  R5
  2947. 152A 168E           JNE  >1448
  2948. 152C 1015           JMP  >1558
  2949. 152E 0202 0040      LI   R2,>0040
  2950. 1532 04C7           CLR  R7
  2951. 1534 06A0 15A0      BL   @>15A0
  2952. 1538 06C4           SWPB R4
  2953. 153A 23A0 1344      COC  @>1344,14
  2954. 153E 1607           JNE  >154E
  2955. 1540 712F FBFE      SB   @>FBFE(R15),R4
  2956. 1544 1306           JEQ  >1552
  2957. 1546 0285 0001      CI   R5,>0001
  2958. 154A 1303           JEQ  >1552
  2959. 154C 10D5           JMP  >14F8
  2960. 154E DBC4 FFFE      MOVB R4,@>FFFE(R15)
  2961. 1552 0602           DEC  R2
  2962. 1554 16EF           JNE  >1534
  2963. 1556 10CA           JMP  >14EC
  2964. 1558 D820 1438 837C MOVB @>1438,@>837C
  2965. 155E 43A0 1344      SZC  @>1344,R14
  2966. 1562 43A0 0032      SZC  @>0032,R14
  2967. 1566 1E03           SBZ  3
  2968. 1568 1D0C           SBO  12
  2969. 156A 1D01           SBO  1
  2970. 156C 1D02           SBO  2
  2971. 156E 0460 0070      B    @>0070
  2972. 1572 C28B           MOV  R11,R10
  2973. 1574 10FF           JMP  >1574
  2974. 1576 06A0 15BA      BL   @>15BA
  2975. 157A 05CA           INCT R10
  2976. 157C 0261 FF00      ORI  R1,>FF00
  2977. 1580 2460 145A      CZC  @>145A,1
  2978. 1584 1303           JEQ  >158C
  2979. 1586 1F1B           TB   27
  2980. 1588 1603           JNE  >1590
  2981. 158A 10FD           JMP  >1586
  2982. 158C 1F1B           TB   27
  2983. 158E 16FE           JNE  >158C
  2984. 1590 33C3           LDCR R3,15
  2985. 1592 1E00           SBZ  0
  2986. 1594 1D03           SBO  3
  2987. 1596 0241 00FF      ANDI R1,>00FF
  2988. 159A 2860 145A      XOR  @>145A,1
  2989. 159E 045A           B    *R10
  2990. 15A0 0208 0008      LI   R8,>0008
  2991. 15A4 04C4           CLR  R4
  2992. 15A6 C24B           MOV  R11,R9
  2993. 15A8 0A14           SLA  R4,1
  2994. 15AA 06A0 1572      BL   @>1572
  2995. 15AE 1001           JMP  >15B2
  2996. 15B0 0584           INC  R4
  2997. 15B2 0608           DEC  R8
  2998. 15B4 16F9           JNE  >15A8
  2999. 15B6 A1C4           A    R4,R7
  3000. 15B8 0459           B    *R9
  3001. 15BA 1F1B           TB   27
  3002. 15BC 1306           JEQ  >15CA
  3003. 15BE 2460 145A      CZC  @>145A,1
  3004. 15C2 1306           JEQ  >15D0
  3005. 15C4 2860 145A      XOR  @>145A,1
  3006. 15C8 045B           RT
  3007.  
  3008. 15CA 2460 145A      CZC  @>145A,1
  3009. 15CE 13FA           JEQ  >15C4
  3010. 15D0 05CB           INCT R11
  3011. 15D2 045B           RT
  3012.  
  3013. 15D4 6500           S    R0,*R4
  3014. 15D6 06A0 15E0      BL   @>15E0
  3015. 15DA 006A           DATA >006A
  3016. 15DC 0460 00CE      B    @>00CE
  3017. 15E0 C120 833E      MOV  @>833E,R4
  3018. 15E4 1312           JEQ  >160A
  3019. 15E6 D0E0 8359      MOVB @>8359,R3
  3020. 15EA 04C7           CLR  R7
  3021. 15EC 0584           INC  R4
  3022. 15EE D7E0 83E9      MOVB @>83E9,*R15
  3023. 15F2 1000           NOP
  3024. 15F4 D7C4           MOVB R4,*R15
  3025. 15F6 020A 8800      LI   R10,VDPRD
  3026. 15FA 90DA           CB   *R10,R3
  3027. 15FC 1308           JEQ  >160E
  3028. 15FE D19A           MOVB *R10,R6
  3029. 1600 1000           NOP
  3030. 1602 D81A 83ED      MOVB *R10,@>83ED
  3031. 1606 C106           MOV  R6,R4
  3032. 1608 16F1           JNE  >15EC
  3033. 160A C2DB           MOV  *R11,R11
  3034. 160C 045B           RT
  3035.  
  3036. 160E D19A           MOVB *R10,R6
  3037. 1610 1000           NOP
  3038. 1612 D81A 83ED      MOVB *R10,@>83ED
  3039. 1616 1000           NOP
  3040. 1618 D15A           MOVB *R10,R5
  3041. 161A D803 83EF      MOVB R3,@>83EF
  3042. 161E D09A           MOVB *R10,R2
  3043. 1620 D7C2           MOVB R2,*R15
  3044. 1622 1000           NOP
  3045. 1624 D7C5           MOVB R5,*R15
  3046. 1626 0202 834A      LI   R2,FAC
  3047. 162A 9C9A           CB   *R10,*R2+
  3048. 162C 16EC           JNE  >1606
  3049. 162E 0607           DEC  R7
  3050. 1630 15FC           JGT  >162A
  3051. 1632 0604           DEC  R4
  3052. 1634 C804 834A      MOV  R4,@FAC
  3053. 1638 046B 0002      B    @>0002(R11)
  3054. 163C 0206 1EAA      LI   R6,>1EAA
  3055. 1640 1008           JMP  >1652
  3056. 1642 0206 1788      LI   R6,>1788
  3057. 1646 1005           JMP  >1652
  3058. 1648 0206 176A      LI   R6,>176A
  3059. 164C 1002           JMP  >1652
  3060. 164E 0206 1670      LI   R6,>1670
  3061. 1652 C1CB           MOV  R11,R7
  3062. 1654 06A0 0864      BL   @>0864
  3063. 1658 06A0 1E7A      BL   @>1E7A
  3064. 165C 05C9           INCT R9
  3065. 165E C647           MOV  R7,*R9
  3066. 1660 0696           BL   *R6
  3067. 1662 C1D9           MOV  *R9,R7
  3068. 1664 0649           DECT R9
  3069. 1666 06A0 1E8C      BL   @>1E8C
  3070. 166A 06A0 0842      BL   @>0842
  3071. 166E 0457           B    *R7
  3072. 1670 05C9           INCT R9
  3073. 1672 C64B           MOV  R11,*R9
  3074. 1674 C820 834A 834E MOV  @FAC,@>834E
  3075. 167A A820 1816 834E A    @>1816,@>834E
  3076. 1680 06A0 19F6      BL   @>19F6
  3077. 1684 1108           JLT  >1696
  3078. 1686 04E0 834C      CLR  @>834C
  3079. 168A 0288 B700      CI   R8,>B700
  3080. 168E 131E           JEQ  >16CC
  3081. 1690 C2D9           MOV  *R9,R11
  3082. 1692 0649           DECT R9
  3083. 1694 045B           RT
  3084.  
  3085. 1696 0288 B700      CI   R8,>B700
  3086. 169A 1318           JEQ  >16CC
  3087. 169C C820 15D4 834C MOV  @>15D4,@>834C
  3088. 16A2 C0E0 834E      MOV  @>834E,R3
  3089. 16A6 C803 834A      MOV  R3,@FAC
  3090. 16AA 06A0 1880      BL   @>1880
  3091. 16AE D820 8800 83E3 MOVB @VDPRD,@>83E3
  3092. 16B4 C801 834E      MOV  R1,@>834E
  3093. 16B8 C0C1           MOV  R1,R3
  3094. 16BA 1304           JEQ  >16C4
  3095. 16BC 0603           DEC  R3
  3096. 16BE 06A0 1880      BL   @>1880
  3097. 16C2 0981           SRL  R1,8
  3098. 16C4 C801 8350      MOV  R1,@>8350
  3099. 16C8 10E3           JMP  >1690
  3100. 16CA 0007           DATA >0007
  3101. 16CC 0A51           SLA  R1,5
  3102. 16CE 09D1           SRL  R1,13
  3103. 16D0 C801 834C      MOV  R1,@>834C
  3104. 16D4 04C2           CLR  R2
  3105. 16D6 C802 8350      MOV  R2,@>8350
  3106. 16DA 06A0 1F7E      BL   @>1F7E
  3107. 16DE 06A0 1E9C      BL   @>1E9C
  3108. 16E2 B700           AB   R0,*R12
  3109. 16E4 9820 834C 15D4 CB   @>834C,@>15D4
  3110. 16EA 1425           JHE  >1736
  3111. 16EC 04E0 8354      CLR  @>8354
  3112. 16F0 06A0 12B8      BL   @>12B8
  3113. 16F4 D120 8354      MOVB @>8354,R4
  3114. 16F8 1631           JNE  >175C
  3115. 16FA C160 834A      MOV  @FAC,R5
  3116. 16FE 06A0 1F2E      BL   @>1F2E
  3117. 1702 06A0 187C      BL   @>187C
  3118. 1706 834E           C    R14,R13
  3119. 1708 D820 8800 83E3 MOVB @VDPRD,@>83E3
  3120. 170E 8045           C    R5,R1
  3121. 1710 1B25           JH   >175C
  3122. 1712 D120 8343      MOVB @>8343,R4
  3123. 1716 1303           JEQ  >171E
  3124. 1718 0605           DEC  R5
  3125. 171A 1120           JLT  >175C
  3126. 171C 1001           JMP  >1720
  3127. 171E 0581           INC  R1
  3128. 1720 3860 8350      MPY  @>8350,1
  3129. 1724 A085           A    R5,R2
  3130. 1726 05E0 834E      INCT @>834E
  3131. 172A 0620 834C      DEC  @>834C
  3132. 172E 1305           JEQ  >173A
  3133. 1730 0288 B300      CI   R8,>B300
  3134. 1734 13D0           JEQ  >16D6
  3135. 1736 0460 1A2C      B    @>1A2C
  3136. 173A 0288 B600      CI   R8,>B600
  3137. 173E 16FB           JNE  >1736
  3138. 1740 06A0 1F7E      BL   @>1F7E
  3139. 1744 06A0 187C      BL   @>187C
  3140. 1748 834A           C    R10,R13
  3141. 174A 1104           JLT  >1754
  3142. 174C 0A32           SLA  R2,3
  3143. 174E A802 834E      A    R2,@>834E
  3144. 1752 109E           JMP  >1690
  3145. 1754 0A12           SLA  R2,1
  3146. 1756 A802 834E      A    R2,@>834E
  3147. 175A 10A0           JMP  >169C
  3148. 175C 0200 0503      LI   R0,>0503
  3149. 1760 0460 1A30      B    @>1A30
  3150. 1764 0200 0603      LI   R0,>0603
  3151. 1768 10FB           JMP  >1760
  3152. 176A 04E0 8359      CLR  @>8359
  3153. 176E 0202 834A      LI   R2,FAC
  3154. 1772 C04B           MOV  R11,R1
  3155. 1774 DC88           MOVB R8,*R2+
  3156. 1776 05A0 8359      INC  @>8359
  3157. 177A 06A0 1F7E      BL   @>1F7E
  3158. 177E 15FA           JGT  >1774
  3159. 1780 06A0 15E0      BL   @>15E0
  3160. 1784 1736           JNC  >17F2
  3161. 1786 0451           B    *R1
  3162. 1788 C28B           MOV  R11,R10
  3163. 178A 06A0 1FA8      BL   @>1FA8
  3164. 178E 06A0 187C      BL   @>187C
  3165. 1792 835C           C    *R12,R13
  3166. 1794 9820 835E 15D4 CB   @>835E,@>15D4
  3167. 179A 1307           JEQ  >17AA
  3168. 179C 9820 834C 15D4 CB   @>834C,@>15D4
  3169. 17A2 14E0           JHE  >1764
  3170. 17A4 0202 0008      LI   R2,>0008
  3171. 17A8 1051           JMP  >184C
  3172. 17AA 9820 834C 15D4 CB   @>834C,@>15D4
  3173. 17B0 16D9           JNE  >1764
  3174. 17B2 C060 8360      MOV  @>8360,R1
  3175. 17B6 130E           JEQ  >17D4
  3176. 17B8 06A0 187C      BL   @>187C
  3177. 17BC 835C           C    *R12,R13
  3178. 17BE D820 8800 83E3 MOVB @VDPRD,@>83E3
  3179. 17C4 C801 8360      MOV  R1,@>8360
  3180. 17C8 8801 834E      C    R1,@>834E
  3181. 17CC 1317           JEQ  >17FC
  3182. 17CE 04C6           CLR  R6
  3183. 17D0 06A0 18AA      BL   @>18AA
  3184. 17D4 C120 8350      MOV  @>8350,R4
  3185. 17D8 130C           JEQ  >17F2
  3186. 17DA C0E0 834A      MOV  @FAC,R3
  3187. 17DE 0283 001C      CI   R3,>001C
  3188. 17E2 160D           JNE  >17FE
  3189. 17E4 C120 834E      MOV  @>834E,R4
  3190. 17E8 C1A0 835C      MOV  @ARG,R6
  3191. 17EC C044           MOV  R4,R1
  3192. 17EE 06A0 18AA      BL   @>18AA
  3193. 17F2 C060 835C      MOV  @ARG,R1
  3194. 17F6 C184           MOV  R4,R6
  3195. 17F8 06A0 18AE      BL   @>18AE
  3196. 17FC 045A           B    *R10
  3197. 17FE C820 8350 830C MOV  @>8350,@>830C
  3198. 1804 C820 16CA 8322 MOV  @>16CA,@>8322
  3199. 180A 06A0 1EAA      BL   @>1EAA
  3200. 180E C80A 834A      MOV  R10,@FAC
  3201. 1812 06A0 1A4A      BL   @>1A4A
  3202. 1816 0006           DATA >0006
  3203. 1818 C2A0 834A      MOV  @FAC,R10
  3204. 181C 06A0 1F2E      BL   @>1F2E
  3205. 1820 C0E0 834E      MOV  @>834E,R3
  3206. 1824 C160 831C      MOV  @>831C,R5
  3207. 1828 C105           MOV  R5,R4
  3208. 182A C0A0 8350      MOV  @>8350,R2
  3209. 182E 0265 4000      ORI  R5,>4000
  3210. 1832 06A0 1880      BL   @>1880
  3211. 1836 D7E0 83EB      MOVB @>83EB,*R15
  3212. 183A 1000           NOP
  3213. 183C D7C5           MOVB R5,*R15
  3214. 183E 0585           INC  R5
  3215. 1840 D801 8C00      MOVB R1,@VDPWD
  3216. 1844 0583           INC  R3
  3217. 1846 0602           DEC  R2
  3218. 1848 15F4           JGT  >1832
  3219. 184A 10CE           JMP  >17E8
  3220. 184C C160 8360      MOV  @>8360,R5
  3221. 1850 D7E0 83EB      MOVB @>83EB,*R15
  3222. 1854 0265 4000      ORI  R5,>4000
  3223. 1858 D7C5           MOVB R5,*R15
  3224. 185A 0204 834A      LI   R4,FAC
  3225. 185E D834 8C00      MOVB *R4+,@VDPWD
  3226. 1862 0602           DEC  R2
  3227. 1864 15FC           JGT  >185E
  3228. 1866 045A           B    *R10
  3229. 1868 C30B           MOV  R11,R12
  3230. 186A 06A0 0864      BL   @>0864
  3231. 186E 06A0 1F7E      BL   @>1F7E
  3232. 1872 D808 8342      MOVB R8,@>8342
  3233. 1876 06A0 0842      BL   @>0842
  3234. 187A 045C           B    *R12
  3235. 187C C0FB           MOV  *R11+,R3
  3236. 187E C0D3           MOV  *R3,R3
  3237. 1880 D7E0 83E7      MOVB @>83E7,*R15
  3238. 1884 1000           NOP
  3239. 1886 D7C3           MOVB R3,*R15
  3240. 1888 1000           NOP
  3241. 188A D060 8800      MOVB @VDPRD,R1
  3242. 188E 045B           RT
  3243.  
  3244. 1890 D7E0 834F      MOVB @>834F,*R15    Read a Radix 100 value from VDP RAM
  3245. 1894 0202 0008      LI   R2,>0008    into FAC
  3246. 1898 D7E0 834E      MOVB @>834E,*R15
  3247. 189C 0203 834A      LI   R3,FAC
  3248. 18A0 DCE0 8800      MOVB @VDPRD,*R3+
  3249. 18A4 0602           DEC  R2
  3250. 18A6 15FC           JGT  >18A0
  3251. 18A8 045B           RT
  3252.  
  3253. 18AA 0221 FFFD      AI   R1,>FFFD    (-3)
  3254. 18AE D7E0 83E3      MOVB @>83E3,*R15
  3255. 18B2 0261 4000      ORI  R1,>4000
  3256. 18B6 D7C1           MOVB R1,*R15
  3257. 18B8 1000           NOP
  3258. 18BA D806 8C00      MOVB R6,@VDPWD
  3259. 18BE D820 83ED 8C00 MOVB @>83ED,@VDPWD
  3260. 18C4 045B           RT
  3261.  
  3262. 18C6 19CA           JNO  >185C
  3263. 18C8 06A0 1E7A      BL   @>1E7A
  3264. 18CC D2ED 0002      MOVB @>0002(R13),R11
  3265. 18D0 D82D 0002 83F7 MOVB @>0002(R13),@>83F7
  3266. 18D6 022B 7FFF      AI   R11,>7FFF
  3267. 18DA 05C9           INCT R9
  3268. 18DC 0289 83BA      CI   R9,>83BA
  3269. 18E0 1B1D           JH   >191C
  3270. 18E2 C64B           MOV  R11,*R9
  3271. 18E4 D1C8           MOVB R8,R7
  3272. 18E6 1102           JLT  >18EC
  3273. 18E8 0460 1B94      B    @>1B94
  3274. 18EC 06A0 1F7E      BL   @>1F7E
  3275. 18F0 0977           SRL  R7,7
  3276. 18F2 0227 FE92      AI   R7,>FE92
  3277. 18F6 0287 004C      CI   R7,>004C
  3278. 18FA 1B28           JH   >194C
  3279. 18FC C1E7 1CE2      MOV  @>1CE2(R7),R7
  3280. 1900 152B           JGT  >1958
  3281. 1902 0247 7FFF      ANDI R7,>7FFF
  3282. 1906 A1E0 8328      A    @>8328,R7
  3283. 190A 06A0 1E8C      BL   @>1E8C
  3284. 190E DB47 0402      MOVB R7,@>0402(R13)
  3285. 1912 DB60 83EF 0402 MOVB @>83EF,@>0402(R13)
  3286. 1918 0460 006A      B    @>006A
  3287. 191C 0460 1F22      B    @>1F22
  3288. 1920 06A0 1E7A      BL   @>1E7A
  3289. 1924 C199           MOV  *R9,R6
  3290. 1926 1508           JGT  >1938
  3291. 1928 0246 7FFF      ANDI R6,>7FFF
  3292. 192C DB46 0402      MOVB R6,@>0402(R13)
  3293. 1930 DB60 83ED 0402 MOVB @>83ED,@>0402(R13)
  3294. 1936 C18D           MOV  R13,R6
  3295. 1938 9216           CB   *R6,R8
  3296. 193A 1455           JHE  >19E6
  3297. 193C 0288 B800      CI   R8,>B800
  3298. 1940 130C           JEQ  >195A
  3299. 1942 0978           SRL  R8,7
  3300. 1944 0228 FE84      AI   R8,>FE84
  3301. 1948 0288 0010      CI   R8,>0010
  3302. 194C 1B6F           JH   >1A2C
  3303. 194E C1E8 1D2E      MOV  @>1D2E(R8),R7
  3304. 1952 04C8           CLR  R8
  3305. 1954 06A0 1F7E      BL   @>1F7E
  3306. 1958 0457           B    *R7
  3307. 195A 0200 0008      LI   R0,>0008
  3308. 195E 1068           JMP  >1A30
  3309. 1960 0649           DECT R9
  3310. 1962 0227 8001      AI   R7,>8001
  3311. 1966 10D1           JMP  >190A
  3312. 1968 06A0 1E7A      BL   @>1E7A
  3313. 196C 04E0 8322      CLR  @>8322
  3314. 1970 C020 8344      MOV  @>8344,R0
  3315. 1974 1317           JEQ  >19A4
  3316. 1976 0300 0003      LIMI >0003
  3317. 197A 0300 0000      LIMI >0000
  3318. 197E 04E0 83D6      CLR  @>83D6
  3319. 1982 06A0 0020      BL   @>0020          Check for Function-4
  3320. 1986 134F           JEQ  >1A26
  3321. 1988 D020 8388      MOVB @>8388,R0
  3322. 198C 0A30           SLA  R0,3
  3323. 198E 1160           JLT  >1A50
  3324. 1990 C820 832E 832C MOV  @>832E,@>832C
  3325. 1996 06A0 1F7E      BL   @>1F7E
  3326. 199A 1142           JLT  >1A20
  3327. 199C D808 832C      MOVB R8,@>832C
  3328. 19A0 D81A 832D      MOVB *R10,@>832D
  3329. 19A4 05C9           INCT R9
  3330. 19A6 C660 18C6      MOV  @>18C6,*R9
  3331. 19AA 06A0 1F7E      BL   @>1F7E
  3332. 19AE 1102           JLT  >19B4
  3333. 19B0 0460 1BEA      B    @>1BEA
  3334. 19B4 C1C8           MOV  R8,R7
  3335. 19B6 06A0 1FA0      BL   @>1FA0
  3336. 19BA 0977           SRL  R7,7
  3337. 19BC 0227 FEBC      AI   R7,>FEBC
  3338. 19C0 1535           JGT  >1A2C
  3339. 19C2 C1E7 1CE0      MOV  @>1CE0(R7),R7
  3340. 19C6 119D           JLT  >1902
  3341. 19C8 0457           B    *R7
  3342. 19CA 0065           DATA >0065 (101 DECIMAL)
  3343. 19CC C020 8344      MOV  @>8344,R0
  3344. 19D0 1331           JEQ  >1A34
  3345. 19D2 6820 1D4E 832E S    @>1D4E,@>832E
  3346. 19D8 8820 832E 8330 C    @>832E,@>8330
  3347. 19DE 14CB           JHE  >1976
  3348. 19E0 1029           JMP  >1A34
  3349. 19E2 D208           MOVB R8,R8
  3350. 19E4 1623           JNE  >1A2C
  3351. 19E6 C1D9           MOV  *R9,R7
  3352. 19E8 11BB           JLT  >1960
  3353. 19EA 0649           DECT R9
  3354. 19EC 0467 0002      B    @>0002(R7)
  3355.  
  3356. ************************************************************
  3357. *                                                          *
  3358. *  GPL instruction >12 - RETURN                            *
  3359. *                                                          *
  3360. ************************************************************
  3361.  
  3362. 19F0 06A0 1E7A      BL   @>1E7A
  3363. 19F4 10F8           JMP  >19E6
  3364.  
  3365. 19F6 C08B           MOV  R11,R2
  3366. 19F8 06A0 187C      BL   @>187C
  3367. 19FC 834A           C    R10,R13
  3368. 19FE C101           MOV  R1,R4
  3369. 1A00 0A21           SLA  R1,2
  3370. 1A02 1814           JOC  >1A2C
  3371. 1A04 C044           MOV  R4,R1
  3372. 1A06 0452           B    *R2
  3373. 1A08 0000           ILLEGAL OBJECT CODE
  3374. 1A0A 0000           ILLEGAL OBJECT CODE
  3375. 1A0C 0000           ILLEGAL OBJECT CODE
  3376. 1A0E 0000           ILLEGAL OBJECT CODE
  3377. 1A10 0000           ILLEGAL OBJECT CODE
  3378. 1A12 0000           ILLEGAL OBJECT CODE
  3379. 1A14 0000           ILLEGAL OBJECT CODE
  3380. 1A16 0000           ILLEGAL OBJECT CODE
  3381. 1A18 0000           ILLEGAL OBJECT CODE
  3382. 1A1A 0000           ILLEGAL OBJECT CODE
  3383. 1A1C 0000           ILLEGAL OBJECT CODE
  3384. 1A1E 0000           ILLEGAL OBJECT CODE
  3385. 1A20 D020 8389      MOVB @>8389,R0
  3386. 1A24 16BB           JNE  >199C
  3387. 1A26 0200 0001      LI   R0,>0001
  3388. 1A2A 1002           JMP  >1A30
  3389. 1A2C 0200 0003      LI   R0,>0003
  3390. 1A30 C800 8322      MOV  R0,@>8322
  3391. 1A34 C1E0 8326      MOV  @>8326,R7
  3392. 1A38 0460 190A      B    @>190A
  3393. 1A3C 0649           DECT R9
  3394. 1A3E 10FA           JMP  >1A34
  3395. 1A40 C820 1D4E 8322 MOV  @>1D4E,@>8322
  3396. 1A46 020B 1922      LI   R11,>1922
  3397. 1A4A 05C9           INCT R9
  3398. 1A4C C64B           MOV  R11,*R9
  3399. 1A4E 10F2           JMP  >1A34
  3400. 1A50 C820 0072 8322 MOV  @>0072,@>8322
  3401. 1A56 020B 198E      LI   R11,>198E
  3402. 1A5A 10F7           JMP  >1A4A
  3403. 1A5C C820 832C 8356 MOV  @>832C,@>8356
  3404. 1A62 06C8           SWPB R8
  3405. 1A64 A808 832C      A    R8,@>832C
  3406. 1A68 04E0 8354      CLR  @>8354
  3407. 1A6C 06A0 1E90      BL   @>1E90
  3408. 1A70 06A0 11A2      BL   @>11A2
  3409. 1A74 06A0 1E7A      BL   @>1E7A
  3410. 1A78 8820 8356 832C C    @>8356,@>832C
  3411. 1A7E 16D6           JNE  >1A2C
  3412. 1A80 06A0 1F7E      BL   @>1F7E
  3413. 1A84 D020 8354      MOVB @>8354,R0
  3414. 1A88 16DB           JNE  >1A40
  3415. 1A8A 0460 1924      B    @>1924
  3416. 1A8E 04C3           CLR  R3
  3417. 1A90 1017           JMP  >1AC0
  3418. 1A92 06A0 18DA      BL   @>18DA
  3419. 1A96 B366 06A0      AB   @>06A0(R6),R13
  3420. 1A9A 1E70           SBZ  112
  3421. 1A9C 04E0 8354      CLR  @>8354
  3422. 1AA0 06A0 12B8      BL   @>12B8
  3423. 1AA4 D020 8354      MOVB @>8354,R0
  3424. 1AA8 1603           JNE  >1AB0
  3425. 1AAA C0E0 834A      MOV  @FAC,R3
  3426. 1AAE 1503           JGT  >1AB6
  3427. 1AB0 0200 0203      LI   R0,>0203
  3428. 1AB4 10BD           JMP  >1A30
  3429. 1AB6 0288 8500      CI   R8,>8500
  3430. 1ABA 1608           JNE  >1ACC
  3431. 1ABC 06A0 1F7E      BL   @>1F7E
  3432. 1AC0 0288 B100      CI   R8,>B100
  3433. 1AC4 1353           JEQ  >1B6C
  3434. 1AC6 0288 A100      CI   R8,>A100
  3435. 1ACA 1005           JMP  >1AD6
  3436. 1ACC 0288 8600      CI   R8,>8600
  3437. 1AD0 134D           JEQ  >1B6C
  3438. 1AD2 0288 8700      CI   R8,>8700
  3439. 1AD6 16AA           JNE  >1A2C
  3440. 1AD8 06A0 1F7E      BL   @>1F7E
  3441. 1ADC 1002           JMP  >1AE2
  3442. 1ADE 10A6           JMP  >1A2C
  3443. 1AE0 04C3           CLR  R3
  3444. 1AE2 C820 832E 834A MOV  @>832E,@FAC
  3445. 1AE8 D820 1A97 834C MOVB @>1A97,@>834C
  3446. 1AEE C803 8350      MOV  R3,@>8350
  3447. 1AF2 06A0 1EAA      BL   @>1EAA
  3448. 1AF6 C0E0 8350      MOV  @>8350,R3
  3449. 1AFA 1001           JMP  >1AFE
  3450. 1AFC 04C3           CLR  R3
  3451. 1AFE 0288 C900      CI   R8,>C900
  3452. 1B02 16ED           JNE  >1ADE
  3453. 1B04 06A0 1F7E      BL   @>1F7E
  3454. 1B08 D008           MOVB R8,R0
  3455. 1B0A 06A0 1FA0      BL   @>1FA0
  3456. 1B0E 0603           DEC  R3
  3457. 1B10 1528           JGT  >1B62
  3458. 1B12 C060 8330      MOV  @>8330,R1
  3459. 1B16 D0A0 8389      MOVB @>8389,R2
  3460. 1B1A 1307           JEQ  >1B2A
  3461. 1B1C DB41 0402      MOVB R1,@>0402(R13)
  3462. 1B20 C08D           MOV  R13,R2
  3463. 1B22 DB60 83E3 0402 MOVB @>83E3,@>0402(R13)
  3464. 1B28 1005           JMP  >1B34
  3465. 1B2A D7E0 83E3      MOVB @>83E3,*R15
  3466. 1B2E 0202 8800      LI   R2,VDPRD
  3467. 1B32 D7C1           MOVB R1,*R15
  3468. 1B34 8801 8332      C    R1,@>8332
  3469. 1B38 140B           JHE  >1B50
  3470. 1B3A 9012           CB   *R2,R0
  3471. 1B3C 1607           JNE  >1B4C
  3472. 1B3E 9212           CB   *R2,R8
  3473. 1B40 130A           JEQ  >1B56
  3474. 1B42 D0D2           MOVB *R2,R3
  3475. 1B44 0221 0004      AI   R1,>0004
  3476. 1B48 D0D2           MOVB *R2,R3
  3477. 1B4A 10F4           JMP  >1B34
  3478. 1B4C D0D2           MOVB *R2,R3
  3479. 1B4E 10F9           JMP  >1B42
  3480. 1B50 0200 0303      LI   R0,>0303
  3481. 1B54 10AF           JMP  >1AB4
  3482. 1B56 05C1           INCT R1
  3483. 1B58 C801 832E      MOV  R1,@>832E
  3484. 1B5C 0649           DECT R9
  3485. 1B5E 0460 1976      B    @>1976
  3486. 1B62 06A0 1F7E      BL   @>1F7E
  3487. 1B66 0288 B300      CI   R8,>B300
  3488. 1B6A 16A2           JNE  >1AB0
  3489. 1B6C 06A0 1F7E      BL   @>1F7E
  3490. 1B70 10C6           JMP  >1AFE
  3491. 1B72 10B5           JMP  >1ADE
  3492. 1B74 06A0 1F2E      BL   @>1F2E
  3493. 1B78 9820 1A97 834C CB   @>1A97,@>834C
  3494. 1B7E 16FA           JNE  >1B74
  3495. 1B80 D208           MOVB R8,R8
  3496. 1B82 16F7           JNE  >1B72
  3497. 1B84 C820 834A 832E MOV  @FAC,@>832E
  3498. 1B8A 0460 19E6      B    @>19E6
  3499. 1B8E 0200 0006      LI   R0,>0006
  3500. 1B92 1090           JMP  >1AB4
  3501. 1B94 06A0 176A      BL   @>176A
  3502. 1B98 06A0 187C      BL   @>187C
  3503. 1B9C 834A           C    R10,R13
  3504. 1B9E 0A11           SLA  R1,1
  3505. 1BA0 11F6           JLT  >1B8E
  3506. 1BA2 06A0 1670      BL   @>1670
  3507. 1BA6 9820 834C 19CB CB   @>834C,@>19CB
  3508. 1BAC 1302           JEQ  >1BB2
  3509. 1BAE 06A0 1890      BL   @>1890
  3510. 1BB2 0460 1924      B    @>1924
  3511. 1BB6 06A0 18DA      BL   @>18DA
  3512. 1BBA B367 06A0      AB   @>06A0(R7),R13
  3513. 1BBE 1E70           SBZ  112
  3514. 1BC0 04C3           CLR  R3
  3515. 1BC2 0288 B000      CI   R8,>B000
  3516. 1BC6 16D5           JNE  >1B72
  3517. 1BC8 0520 834A      NEG  @FAC    
  3518. 1BCC 16CF           JNE  >1B6C
  3519. 1BCE 06A0 1F7E      BL   @>1F7E
  3520. 1BD2 0288 C900      CI   R8,>C900
  3521. 1BD6 16CD           JNE  >1B72
  3522. 1BD8 05E0 832C      INCT @>832C
  3523. 1BDC 06A0 1F7E      BL   @>1F7E
  3524. 1BE0 0288 8100      CI   R8,>8100
  3525. 1BE4 13C3           JEQ  >1B6C
  3526. 1BE6 0460 19E2      B    @>19E2
  3527. 1BEA 06A0 176A      BL   @>176A
  3528. 1BEE 06A0 1670      BL   @>1670
  3529. 1BF2 0288 BE00      CI   R8,>BE00
  3530. 1BF6 16BD           JNE  >1B72
  3531. 1BF8 06A0 1F7E      BL   @>1F7E
  3532. 1BFC 06A0 1E9C      BL   @>1E9C
  3533. 1C00 8D30           C    *R0+,*R4+
  3534. 1C02 06A0 1788      BL   @>1788
  3535. 1C06 0460 1924      B    @>1924
  3536. 1C0A 0000           ILLEGAL OBJECT CODE
  3537. 1C0C 0000           ILLEGAL OBJECT CODE
  3538. 1C0E 0000           ILLEGAL OBJECT CODE
  3539. 1C10 0000           ILLEGAL OBJECT CODE
  3540. 1C12 0000           ILLEGAL OBJECT CODE
  3541. 1C14 06A0 176A      BL   @>176A
  3542. 1C18 C120 834A      MOV  @FAC,R4
  3543. 1C1C 06A0 1F2E      BL   @>1F2E
  3544. 1C20 9820 834C 1BBB CB   @>834C,@>1BBB
  3545. 1C26 1302           JEQ  >1C2C
  3546. 1C28 0460 1F78      B    @>1F78
  3547. 1C2C 8804 834A      C    R4,@FAC
  3548. 1C30 1304           JEQ  >1C3A
  3549. 1C32 6820 1C68 836E S    @>1C68,@VSPTR
  3550. 1C38 10F1           JMP  >1C1C
  3551. 1C3A 06A0 1890      BL   @>1890
  3552. 1C3E 06A0 1E8C      BL   @>1E8C
  3553. 1C42 06A0 0D84      BL   @>0D84
  3554. 1C46 06A0 1E7A      BL   @>1E7A
  3555. 1C4A A820 1C68 836E A    @>1C68,@VSPTR
  3556. 1C50 06A0 1788      BL   @>1788
  3557. 1C54 6820 1EAC 836E S    @>1EAC,@VSPTR
  3558. 1C5A 06A0 0D42      BL   @>0D42
  3559. 1C5E 02C4           STST R4
  3560. 1C60 130A           JEQ  >1C76
  3561. 1C62 C0E0 836E      MOV  @VSPTR,R3
  3562. 1C66 0223 0010      AI   R3,>0010
  3563. 1C6A 06A0 1880      BL   @>1880
  3564. 1C6E D041           MOVB R1,R1
  3565. 1C70 1112           JLT  >1C96
  3566. 1C72 0A14           SLA  R4,1
  3567. 1C74 150E           JGT  >1C92
  3568. 1C76 A820 1F0E 836E A    @>1F0E,@VSPTR
  3569. 1C7C C0E0 836E      MOV  @VSPTR,R3
  3570. 1C80 0223 0006      AI   R3,>0006
  3571. 1C84 06A0 1880      BL   @>1880
  3572. 1C88 D820 8800 832F MOVB @VDPRD,@>832F
  3573. 1C8E D801 832E      MOVB R1,@>832E
  3574. 1C92 0460 1924      B    @>1924
  3575. 1C96 0A14           SLA  R4,1
  3576. 1C98 15EE           JGT  >1C76
  3577. 1C9A 10FB           JMP  >1C92
  3578. 1C9C 1A2C           JL   >1CF6
  3579. 1C9E 1A2C           JL   >1CF8
  3580. 1CA0 1A2C           JL   >1CFA
  3581. 1CA2 1A2C           JL   >1CFC
  3582. 1CA4 1BB6           JH   >1C12
  3583. 1CA6 1A8E           JL   >1BC4
  3584. 1CA8 1AFC           JL   >1CA2
  3585. 1CAA 1AE0           JL   >1C6C
  3586. 1CAC 1B74           JH   >1D96
  3587. 1CAE 19E6           JNO  >1C7C
  3588. 1CB0 19E6           JNO  >1C7E
  3589. 1CB2 1A3C           JL   >1D2C
  3590. 1CB4 8000           C    R0,R0
  3591. 1CB6 1BEA           JH   >1C8C
  3592. 1CB8 8002           C    R2,R0
  3593. 1CBA 8004           C    R4,R0
  3594. 1CBC 8006           C    R6,R0
  3595. 1CBE 8008           C    R8,R0
  3596. 1CC0 8016           C    *R6,R0
  3597. 1CC2 19E6           JNO  >1C90
  3598. 1CC4 8012           C    *R2,R0
  3599. 1CC6 8014           C    *R4,R0
  3600. 1CC8 1C14           JOP  >1CF2
  3601. 1CCA 800A           C    R10,R0
  3602. 1CCC 1A3C           JL   >1D46
  3603. 1CCE 803E           C    *R14+,R0
  3604. 1CD0 19E6           JNO  >1C9E
  3605. 1CD2 1A92           JL   >1BF8
  3606. 1CD4 800C           C    R12,R0
  3607. 1CD6 800E           C    R14,R0
  3608. 1CD8 19E6           JNO  >1CA6
  3609. 1CDA 8018           C    *R8,R0
  3610. 1CDC 801A           C    *R10,R0
  3611. 1CDE 1A2C           JL   >1D38
  3612. 1CE0 803C           C    *R12+,R0
  3613. 1CE2 801C           C    *R12,R0
  3614. 1CE4 1A2C           JL   >1D3E
  3615. 1CE6 1A2C           JL   >1D40
  3616. 1CE8 1A2C           JL   >1D42
  3617. 1CEA 1A2C           JL   >1D44
  3618. 1CEC 1A2C           JL   >1D46
  3619. 1CEE 1A2C           JL   >1D48
  3620. 1CF0 1A2C           JL   >1D4A
  3621. 1CF2 1A2C           JL   >1D4C
  3622. 1CF4 1A2C           JL   >1D4E
  3623. 1CF6 801E           C    *R14,R0
  3624. 1CF8 8020 1A2C      C    @>1A2C,R0
  3625. 1CFC 1A2C           JL   >1D56
  3626. 1CFE 1A2C           JL   >1D58
  3627. 1D00 1A2C           JL   >1D5A
  3628. 1D02 8010           C    *R0,R0
  3629. 1D04 1A5C           JL   >1DBE
  3630. 1D06 1A2C           JL   >1D60
  3631. 1D08 804A           C    R10,R1
  3632. 1D0A 8022 8024      C    @>8024(R2),R0
  3633. 1D0E 8026 8028      C    @>8028(R6),R0
  3634. 1D12 802A 802C      C    @>802C(R10),R0
  3635. 1D16 802E 8030      C    @>8030(R14),R0
  3636. 1D1A 8032           C    *R2+,R0
  3637. 1D1C 8034           C    *R4+,R0
  3638. 1D1E 8036           C    *R6+,R0
  3639. 1D20 8038           C    *R8+,R0
  3640. 1D22 803A           C    *R10+,R0
  3641. 1D24 8040           C    R0,R1
  3642. 1D26 8046           C    R6,R1
  3643. 1D28 8044           C    R4,R1
  3644. 1D2A 8042           C    R2,R1
  3645. 1D2C 8048           C    R8,R1
  3646.  
  3647. * Jump table for something
  3648.  
  3649. 1D2E 1D5C           DATA >1D5C
  3650. 1D30 1D3E           DATA >1D3E
  3651. 1D32 1D4C           DATA >1D4C
  3652. 1D34 1DEC           DATA >1DEC
  3653. 1D36 1E18           DATA >1E18
  3654. 1D38 1E24           DATA >1E24
  3655. 1D3A 1E30           DATA >1E30
  3656. 1D3C 1E3C           DATA >1E3C
  3657.  
  3658. 1D3E 0202 0002      LI   R2,>0002
  3659. 1D42 0288 C000      CI   R8,>C000
  3660. 1D46 1604           JNE  >1D50
  3661. 1D48 0642           DECT R2
  3662. 1D4A 1005           JMP  >1D56
  3663.  
  3664. 1D4C 0202 0004      LI   R2,>0004
  3665. 1D50 0288 BE00      CI   R8,>BE00
  3666. 1D54 1605           JNE  >1D60
  3667. 1D56 06A0 1F7E      BL   @>1F7E
  3668. 1D5A 1001           JMP  >1D5E
  3669.  
  3670. 1D5C 0702           SETO R2
  3671. 1D5E 0582           INC  R2
  3672. 1D60 05C9           INCT R9
  3673. 1D62 C642           MOV  R2,*R9
  3674. 1D64 06A0 1E9C      BL   @>1E9C
  3675. 1D68 C000           MOV  R0,R0
  3676. 1D6A C119           MOV  *R9,R4
  3677. 1D6C 0649           DECT R9
  3678. 1D6E D324 1DA8      MOVB @>1DA8(R4),R12
  3679. 1D72 088C           SRA  R12,8
  3680. 1D74 06A0 1E4A      BL   @>1E4A
  3681. 1D78 131A           JEQ  >1DAE
  3682. 1D7A 06A0 0D42      BL   @>0D42
  3683. 1D7E 046C 1D82      B    @>1D82(R12)
  3684. 1D82 1504           JGT  >1D8C
  3685. 1D84 1303           JEQ  >1D8C
  3686. 1D86 04C4           CLR  R4
  3687. 1D88 1003           JMP  >1D90
  3688. 1D8A 13FD           JEQ  >1D86
  3689. 1D8C 0204 BFFF      LI   R4,>BFFF
  3690. 1D90 0203 834A      LI   R3,FAC
  3691. 1D94 CCC4           MOV  R4,*R3+
  3692. 1D96 04F3           CLR  *R3+
  3693. 1D98 04F3           CLR  *R3+
  3694. 1D9A 04F3           CLR  *R3+
  3695. 1D9C 1039           JMP  >1E10
  3696. 1D9E 13F6           JEQ  >1D8C
  3697. 1DA0 11F5           JLT  >1D8C
  3698. 1DA2 10F1           JMP  >1D86
  3699. 1DA4 15F3           JGT  >1D8C
  3700. 1DA6 10EF           JMP  >1D86
  3701. 1DA8 0208 1E1C      LI   R8,>1E1C
  3702. 1DAC 2200           COC  R0,8
  3703. 1DAE C2A0 834E      MOV  @>834E,R10
  3704. 1DB2 D1E0 8351      MOVB @>8351,R7
  3705. 1DB6 06A0 1F2E      BL   @>1F2E
  3706. 1DBA C120 834E      MOV  @>834E,R4
  3707. 1DBE D1A0 8351      MOVB @>8351,R6
  3708. 1DC2 D146           MOVB R6,R5
  3709. 1DC4 91C6           CB   R6,R7
  3710. 1DC6 1101           JLT  >1DCA
  3711. 1DC8 D147           MOVB R7,R5
  3712. 1DCA 0985           SRL  R5,8
  3713. 1DCC 130D           JEQ  >1DE8
  3714. 1DCE C0CA           MOV  R10,R3
  3715. 1DD0 058A           INC  R10
  3716. 1DD2 06A0 1880      BL   @>1880
  3717. 1DD6 D001           MOVB R1,R0
  3718. 1DD8 C0C4           MOV  R4,R3
  3719. 1DDA 0584           INC  R4
  3720. 1DDC 06A0 1880      BL   @>1880
  3721. 1DE0 9001           CB   R1,R0
  3722. 1DE2 16CD           JNE  >1D7E
  3723. 1DE4 0605           DEC  R5
  3724. 1DE6 15F3           JGT  >1DCE
  3725. 1DE8 91C6           CB   R6,R7
  3726. 1DEA 10C9           JMP  >1D7E
  3727.  
  3728. 1DEC 06A0 1E9C      BL   @>1E9C
  3729. 1DF0 C200           MOV  R0,R8
  3730. 1DF2 0202 0D84      LI   R2,>0D84
  3731. 1DF6 04E0 8354      CLR  @>8354
  3732. 1DFA 06A0 1E4A      BL   @>1E4A
  3733. 1DFE 1336           JEQ  >1E6C
  3734. 1E00 06A0 1E8C      BL   @>1E8C
  3735. 1E04 0692           BL   *R2
  3736. 1E06 06A0 1E7A      BL   @>1E7A
  3737. 1E0A D0A0 8354      MOVB @>8354,R2
  3738. 1E0E 1602           JNE  >1E14
  3739. 1E10 0460 1924      B    @>1924
  3740. 1E14 0460 1A40      B    @>1A40
  3741.  
  3742. 1E18 06A0 1E9C      BL   @>1E9C
  3743. 1E1C C200           MOV  R0,R8
  3744. 1E1E 0202 0D74      LI   R2,>0D74
  3745. 1E22 10E9           JMP  >1DF6
  3746.  
  3747. 1E24 06A0 1E9C      BL   @>1E9C
  3748. 1E28 C400           MOV  R0,*R0
  3749. 1E2A 0202 0E8C      LI   R2,>0E8C
  3750. 1E2E 10E3           JMP  >1DF6
  3751.  
  3752. 1E30 06A0 1E9C      BL   @>1E9C
  3753. 1E34 C400           MOV  R0,*R0
  3754. 1E36 0202 0FF8      LI   R2,>0FF8
  3755. 1E3A 10DD           JMP  >1DF6
  3756.  
  3757. 1E3C 06A0 1E9C      BL   @>1E9C
  3758. 1E40 C500           MOV  R0,*R4
  3759. 1E42 0200 0005      LI   R0,>0005
  3760. 1E46 0460 1A30      B    @>1A30
  3761. 1E4A C1A0 836E      MOV  @VSPTR,R6
  3762. 1E4E 05C6           INCT R6
  3763. 1E50 D7E0 83ED      MOVB @>83ED,*R15
  3764. 1E54 1000           NOP
  3765. 1E56 D7C6           MOVB R6,*R15
  3766. 1E58 1000           NOP
  3767. 1E5A 9820 8800 19CB CB   @VDPRD,@>19CB
  3768. 1E60 1A07           JL   >1E70
  3769. 1E62 1B04           JH   >1E6C
  3770. 1E64 9820 834C 19CB CB   @>834C,@>19CB
  3771. 1E6A 1306           JEQ  >1E78
  3772. 1E6C 0460 1764      B    @>1764
  3773. 1E70 9820 834C 19CB CB   @>834C,@>19CB
  3774. 1E76 14FA           JHE  >1E6C
  3775. 1E78 045B           RT
  3776.  
  3777. 1E7A 04C8           CLR  R8
  3778. 1E7C D220 8342      MOVB @>8342,R8
  3779. 1E80 D260 8373      MOVB @>8373,R9
  3780. 1E84 0989           SRL  R9,8
  3781. 1E86 0229 8300      AI   R9,>8300
  3782. 1E8A 045B           RT
  3783.  
  3784. 1E8C D808 8342      MOVB R8,@>8342
  3785. 1E90 0229 7D00      AI   R9,>7D00
  3786. 1E94 D820 83F3 8373 MOVB @>83F3,@>8373
  3787. 1E9A 045B           RT
  3788.  
  3789. 1E9C 05C9           INCT R9
  3790. 1E9E 0289 83BA      CI   R9,>83BA
  3791. 1EA2 1B3F           JH   >1F22
  3792. 1EA4 C64B           MOV  R11,*R9
  3793. 1EA6 020B 18E4      LI   R11,>18E4
  3794. 1EAA 0200 0008      LI   R0,>0008
  3795. 1EAE A800 836E      A    R0,@VSPTR
  3796. 1EB2 C060 836E      MOV  @VSPTR,R1
  3797. 1EB6 D7E0 83E3      MOVB @>83E3,*R15
  3798. 1EBA 0261 4000      ORI  R1,>4000
  3799. 1EBE D7C1           MOVB R1,*R15
  3800. 1EC0 0201 834A      LI   R1,FAC
  3801. 1EC4 D831 8C00      MOVB *R1+,@VDPWD
  3802. 1EC8 0600           DEC  R0
  3803. 1ECA 15FC           JGT  >1EC4
  3804. 1ECC C00B           MOV  R11,R0
  3805. 1ECE 9820 834C 19CB CB   @>834C,@>19CB
  3806. 1ED4 160E           JNE  >1EF2
  3807. 1ED6 C1A0 836E      MOV  @VSPTR,R6
  3808. 1EDA 0226 0004      AI   R6,>0004
  3809. 1EDE C060 834A      MOV  @FAC,R1
  3810. 1EE2 0281 001C      CI   R1,>001C
  3811. 1EE6 1605           JNE  >1EF2
  3812. 1EE8 C060 834E      MOV  @>834E,R1
  3813. 1EEC 1302           JEQ  >1EF2
  3814. 1EEE 06A0 18AA      BL   @>18AA
  3815. 1EF2 C060 836E      MOV  @VSPTR,R1
  3816. 1EF6 0221 0010      AI   R1,>0010
  3817. 1EFA 8801 831A      C    R1,@>831A
  3818. 1EFE 123B           JLE  >1F76
  3819. 1F00 05C9           INCT R9
  3820. 1F02 C640           MOV  R0,*R9
  3821. 1F04 D820 18F0 8323 MOVB @>18F0,@>8323
  3822. 1F0A 06A0 1A4A      BL   @>1A4A
  3823. 1F0E 0018           DATA >0018
  3824. 1F10 C019           MOV  *R9,R0
  3825. 1F12 0649           DECT R9
  3826. 1F14 C060 836E      MOV  @VSPTR,R1
  3827. 1F18 0221 0010      AI   R1,>0010
  3828. 1F1C 8801 831A      C    R1,@>831A
  3829. 1F20 122A           JLE  >1F76
  3830. 1F22 0200 0103      LI   R0,>0103
  3831. 1F26 06A0 1E7A      BL   @>1E7A
  3832. 1F2A 0460 1A30      B    @>1A30
  3833. 1F2E 0202 834A      LI   R2,FAC
  3834. 1F32 C060 836E      MOV  @VSPTR,R1
  3835. 1F36 8801 8324      C    R1,@>8324
  3836. 1F3A 121E           JLE  >1F78
  3837. 1F3C D7E0 83E3      MOVB @>83E3,*R15
  3838. 1F40 0200 0008      LI   R0,>0008
  3839. 1F44 D7C1           MOVB R1,*R15
  3840. 1F46 6800 836E      S    R0,@VSPTR
  3841. 1F4A DCA0 8800      MOVB @VDPRD,*R2+
  3842. 1F4E 0600           DEC  R0
  3843. 1F50 15FC           JGT  >1F4A
  3844. 1F52 C00B           MOV  R11,R0
  3845. 1F54 9820 834C 19CB CB   @>834C,@>19CB
  3846. 1F5A 160D           JNE  >1F76
  3847. 1F5C 04C6           CLR  R6
  3848. 1F5E C0E0 834A      MOV  @FAC,R3
  3849. 1F62 0283 001C      CI   R3,>001C
  3850. 1F66 13C0           JEQ  >1EE8
  3851. 1F68 06A0 1880      BL   @>1880
  3852. 1F6C D820 8800 83E3 MOVB @VDPRD,@>83E3
  3853. 1F72 C801 834E      MOV  R1,@>834E
  3854. 1F76 0450           B    *R0
  3855. 1F78 0200 0403      LI   R0,>0403
  3856. 1F7C 10D4           JMP  >1F26
  3857. 1F7E D220 8389      MOVB @>8389,R8
  3858. 1F82 1607           JNE  >1F92
  3859. 1F84 D7E0 832D      MOVB @>832D,*R15
  3860. 1F88 020A 8800      LI   R10,VDPRD
  3861. 1F8C D7E0 832C      MOVB @>832C,*R15
  3862. 1F90 1007           JMP  >1FA0
  3863. 1F92 DB60 832C 0402 MOVB @>832C,@>0402(R13)
  3864. 1F98 DB60 832D 0402 MOVB @>832D,@>0402(R13)
  3865. 1F9E C28D           MOV  R13,R10
  3866. 1FA0 05A0 832C      INC  @>832C
  3867. 1FA4 D21A           MOVB *R10,R8
  3868. 1FA6 045B           RT
  3869.  
  3870. *************************************************************************
  3871. *                                    *
  3872. *  Moves a floating point number from VDP RAM pointed to by VSPTR to    *
  3873. *  ARG.                                    *
  3874. *                                    *
  3875. *************************************************************************
  3876.  
  3877. 1FA8 0205 FFF8      LI   R5,>FFF8
  3878. 1FAC 0206 835C      LI   R6,ARG
  3879. 1FB0 D7E0 836F      MOVB @>836F,*R15
  3880. 1FB4 0207 8800      LI   R7,VDPRD
  3881. 1FB8 D7E0 836E      MOVB @VSPTR,*R15
  3882. 1FBC A805 836E      A    R5,@VSPTR
  3883. 1FC0 DD97           MOVB *R7,*R6+
  3884. 1FC2 0585           INC  R5
  3885. 1FC4 16FD           JNE  >1FC0
  3886. 1FC6 045B           RT
  3887.  
  3888. 1FC8 D7E0 83ED      MOVB @>83ED,*R15        Set VDP Read address to R6
  3889. 1FCC 1000           NOP                and read byte into R8
  3890. 1FCE D7C6           MOVB R6,*R15
  3891. 1FD0 0586           INC  R6
  3892. 1FD2 D220 8800      MOVB @VDPRD,R8
  3893. 1FD6 0988           SRL  R8,8
  3894. 1FD8 045B           RT
  3895.  
  3896. 1FDA DB46 0402      MOVB R6,@>0402(R13)        Set GROM read address to R6
  3897. 1FDE DB60 83ED 0402 MOVB @>83ED,@>0402(R13)    and read byte into R8
  3898. 1FE4 0586           INC  R6
  3899. 1FE6 D21D           MOVB *R13,R8
  3900. 1FE8 10F6           JMP  >1FD6
  3901. 1FEA 0000           ILLEGAL OBJECT CODE
  3902. 1FEC 0000           ILLEGAL OBJECT CODE
  3903. 1FEE 0000           ILLEGAL OBJECT CODE
  3904. 1FF0 0000           ILLEGAL OBJECT CODE
  3905. 1FF2 0000           ILLEGAL OBJECT CODE
  3906. 1FF4 0000           ILLEGAL OBJECT CODE
  3907. 1FF6 0000           ILLEGAL OBJECT CODE
  3908. 1FF8 0000           ILLEGAL OBJECT CODE
  3909. 1FFA 0000           ILLEGAL OBJECT CODE
  3910. 1FFC 2A61 A38A      XOR  @>A38A(R1),9
  3911.