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

  1. 4000           DATA >AA02,>0000,>4044,>0000,>404A,>4010,>0000,>0000,>4016
  2. 4012           DATA >5B38,>0110,>401C,>5B48,>0111,>4022,>5B52,>0112,>4028
  3. 4024           DATA >5BAC,>0113,>402E,>5C78,>0114,>4034,>5CE8,>0115,>403A
  4. 4036           DATA >5DAE,>0116,>0000,>5D5A,>0546,>494C,>4553,>0000,>4070
  5. 4048           DATA >0000,>4052,>504E,>0344,>534B,>405C,>505C,>0444,>534B
  6. 405A           DATA >3100,>4066,>5062,>0444,>534B,>3200,>0000,>5068,>0444
  7. 406C           DATA >534B,>3300
  8.  
  9. 4000 AA             BYTE >AA        Identification
  10. 4001 02             BYTE 2        Version Number
  11. 4002 00             BYTE 0        Number of programs
  12. 4003 00             BYTE 0        Reserved
  13. 4004 4044           DATA >4044        Power up routine
  14. 4006 0000           DATA 0        User program header
  15. 4008 404A           DATA >404A        DSR Header
  16. 400A 4010           DATA >4010        Subroutine link header
  17. 400C 0000           DATA 0        Address of interrupt link
  18. 400E 0000           DATA 0        Address of BASIC subroutine libraries
  19.  
  20. *
  21. * SUBROUTINE LINK HEADER
  22. *
  23. 4010 4016           DATA >4016        Sector READ / WRITE
  24. 4012 5B38           DATA >5B38
  25. 4014 01             BYTE >01
  26. 4015 10             BYTE >10
  27.  
  28. 4016 401C           DATA >401C        Disk Formatting
  29. 4018 5B48           DATA >5B48
  30. 401A 01             BYTE >01
  31. 401B 11             BYTE >11
  32.  
  33. 401C 4022           DATA >4022        Modify File Protection
  34. 401E 5B52           DATA >5B52
  35. 4020 01             BYTE >01
  36. 4021 12             BYTE >12
  37.  
  38. 4022 4028           DATA >4028        File Rename
  39. 4024 5BAC           DATA >5BAC
  40. 4026 01             BYTE >01
  41. 4027 13             BYTE >13
  42.  
  43. 4028 402E           DATA >402E        Access Direct Input File
  44. 402A 5C78           DATA >5C78
  45. 402C 01             BYTE >01
  46. 402D 14             BYTE >14
  47.  
  48. 402E 4034           DATA >4034        Access Direct Output File
  49. 4030 5CE8           DATA >5CE8
  50. 4032 01             BYTE >01
  51. 4033 15             BYTE >15
  52.  
  53. 4034 403A           DATA >403A        Buffer Allocation
  54. 4036 5DAE           DATA >5DAE
  55. 4038 01             BYTE >01
  56. 4039 16             BYTE >16
  57.  
  58. 403A 0000           DATA >0000
  59. 403C 5D5A           DATA >5D5A
  60. 403E 05             BYTE >05
  61. 403F 46494C4553     TEXT 'FILES'
  62.  
  63. 4044 0000           DATA >0000        Link to next power up routine
  64. 4046 4070           DATA >4070        Power up routine
  65.  
  66. 4048 0000           DATA >0000
  67.  
  68. *
  69. * DSR HEADER
  70. *
  71. 404A 4052           DATA >4052
  72. 404C 504E           DATA >504E
  73. 404E 03             BYTE >03
  74. 404F 44534B         TEXT 'DSK'
  75.  
  76. 4052 405C           DATA >405C
  77. 4054 505C           DATA >505C
  78. 4056 04             BYTE >04
  79. 4057 44534B31       TEXT 'DSK1'
  80.  
  81. 405C 4066           DATA >4066
  82. 405E 5062           DATA >5062
  83. 4060 04             BYTE >04
  84. 4061 44534B32       TEXT 'DSK2'
  85.  
  86. 4066 0000           DATA >0000
  87. 4068 5068           DATA >5068
  88. 406A 04             BYTE >04
  89. 406B 44534B33       TEXT 'DSK3'
  90.  
  91. *************************************************************************
  92. *                                    *
  93. *            POWER UP ROUTINE                *
  94. *                                    *
  95. *************************************************************************
  96.  
  97. 4070 C1CB           MOV  R11,R7
  98. 4072 02A9           STWP R9
  99. 4074 0229 FF20      AI   R9,>FF20
  100. 4078 C029 0070      MOV  @>0070(R9),R0    Allocate space in VDP ram
  101. 407C C080           MOV  R0,R2
  102. 407E 0220 F7D8      AI   R0,>F7D8    2088 bytes
  103. 4082 CA40 0070      MOV  R0,@>0070(R9)
  104. 4086 0580           INC  R0
  105. 4088 06A0 40DA      BL   @>40DA
  106. 408C 0201 0828      LI   R1,>0828    Clear out the VDP memory buffer
  107. 4090 04EF FFFE      CLR  @>FFFE(R15)
  108. 4094 0601           DEC  R1
  109. 4096 16FC           JNE  >4090
  110. 4098 06A0 40DA      BL   @>40DA
  111. 409C 0203 AA03      LI   R3,>AA03
  112. 40A0 DBC3 FFFE      MOVB R3,@>FFFE(R15)    Put in validity code
  113. 40A4 1000           NOP
  114. 40A6 DBC2 FFFE      MOVB R2,@>FFFE(R15)    Put in previous top of memory
  115. 40AA 06C2           SWPB R2
  116. 40AC DBC2 FFFE      MOVB R2,@>FFFE(R15)
  117. 40B0 1000           NOP
  118. 40B2 DBCC FFFE      MOVB R12,@>FFFE(R15) Put in CRU ID
  119. 40B6 06C3           SWPB R3
  120. 40B8 DBC3 FFFE      MOVB R3,@>FFFE(R15)    Put in number of files (default 3)
  121. 40BC 06A0 4726      BL   @>4726
  122. 40C0 06A0 4658      BL   @>4658
  123. 40C4 4554           DATA >4554
  124. 40C6 04E9 0054      CLR  @>0054(R9)
  125. 40CA 0429 005A      BLWP @>005A(R9)
  126. 40CE 0011           DATA >0011
  127. 40D0 CA60 40D8 006C MOV  @>40D8,@>006C(R9)
  128. 40D6 045B           RT
  129.  
  130. 40D8 0404           DATA >0404
  131.  
  132. 40DA 0260 4000      ORI  R0,>4000    Move R0 to VDP write address
  133. 40DE 06C0           SWPB R0
  134. 40E0 D7C0           MOVB R0,*R15
  135. 40E2 06C0           SWPB R0
  136. 40E4 D7C0           MOVB R0,*R15
  137. 40E6 045B           RT
  138.  
  139. 40E8 0204 000A      LI   R4,10
  140. 40EC DA60 4630 0050 MOVB @>4630,@>0050(R9)
  141. 40F2 06A0 4496      BL   @>4496
  142. 40F6 06A0 45F0      BL   @>45F0
  143. 40FA 04C0           CLR  R0
  144. 40FC D02F FBFE      MOVB @>FBFE(R15),R0
  145. 4100 0280 D700      CI   R0,>D700
  146. 4104 1B03           JH   >410C
  147. 4106 06A0 4524      BL   @>4524
  148. 410A 0700           SETO R0
  149. 410C D800 5FFA      MOVB R0,@>5FFA
  150. 4110 C069 004A      MOV  @>004A(R9),R1
  151. 4114 1E07           SBZ  7
  152. 4116 04C7           CLR  R7
  153. 4118 0281 02D0      CI   R1,720      720 Sectors
  154. 411C 144C           JHE  >41B6
  155. 411E 0281 0168      CI   R1,360      360 Sectors
  156. 4122 1A0D           JL   >413E
  157. 4124 0221 FD31      AI   R1,>FD31
  158. 4128 0741           ABS  R1
  159. 412A 04C0           CLR  R0
  160. 412C 3C20 4632      DIV  @>4632,0
  161. 4130 0221 FFF8      AI   R1,>FFF8
  162. 4134 0741           ABS  R1
  163. 4136 1D07           SBO  7
  164. 4138 0207 0100      LI   R7,>0100
  165. 413C 1008           JMP  >414E
  166. 413E 0281 0001      CI   R1,1
  167. 4142 1B02           JH   >4148
  168. 4144 06A0 4524      BL   @>4524
  169. 4148 04C0           CLR  R0
  170. 414A 3C20 4632      DIV  @>4632,0
  171. 414E 06C0           SWPB R0
  172. 4150 0540           INV  R0
  173. 4152 06A0 4614      BL   @>4614
  174. 4156 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  175. 415A D800 5FFE      MOVB R0,@>5FFE
  176. 415E 06C1           SWPB R1
  177. 4160 0541           INV  R1
  178. 4162 D801 5FFC      MOVB R1,@>5FFC
  179. 4166 9800 5FF2      CB   R0,@>5FF2
  180. 416A 1307           JEQ  >417A
  181. 416C 06A0 45CA      BL   @>45CA
  182. 4170 E100           DATA >E100
  183. 4172 06A0 4482      BL   @>4482
  184. 4176 0AD0           SLA  R0,13
  185. 4178 181B           JOC  >41B0
  186. 417A 06A0 45CA      BL   @>45CA
  187. 417E 3F00           DATA >3F00
  188. 4180 1D02           SBO  2
  189. 4182 D020 5FF6      MOVB @>5FF6,R0
  190. 4186 0206 0004      LI   R6,4
  191. 418A D160 5FF6      MOVB @>5FF6,R5
  192. 418E 0545           INV  R5
  193. 4190 D020 5FF6      MOVB @>5FF6,R0
  194. 4194 0606           DEC  R6
  195. 4196 16FC           JNE  >4190
  196. 4198 06A0 4480      BL   @>4480
  197. 419C 0AD0           SLA  R0,13
  198. 419E 180E           JOC  >41BC
  199. 41A0 1110           JLT  >41C2
  200. 41A2 0A20           SLA  R0,2
  201. 41A4 1811           JOC  >41C8
  202. 41A6 9147           CB   R7,R5
  203. 41A8 1312           JEQ  >41CE
  204. 41AA 06A0 45AC      BL   @>45AC
  205. 41AE 0600           DATA >0600
  206. 41B0 06A0 4590      BL   @>4590
  207. 41B4 1100           DATA >1100
  208. 41B6 06A0 45AC      BL   @>45AC
  209. 41BA 0700           DATA >0700
  210. 41BC 06A0 4590      BL   @>4590
  211. 41C0 2100           DATA >2100
  212. 41C2 06A0 4590      BL   @>4590
  213. 41C6 2200           DATA >2200
  214. 41C8 06A0 4590      BL   @>4590
  215. 41CC 2300           DATA >2300
  216. 41CE D801 5FFC      MOVB R1,@>5FFC
  217. 41D2 C0A9 004E      MOV  @>004E(R9),R2
  218. 41D6 D029 004D      MOVB @>004D(R9),R0
  219. 41DA 1340           JEQ  >425C
  220. 41DC 06A0 4614      BL   @>4614
  221. 41E0 06A0 45CA      BL   @>45CA
  222. 41E4 7700           DATA >7700
  223. 41E6 0206 0100      LI   R6,>0100
  224. 41EA 0705           SETO R5
  225. 41EC 1D02           SBO  2
  226. 41EE D029 004D      MOVB @>004D(R9),R0
  227. 41F2 1610           JNE  >4214
  228. 41F4 04C0           CLR  R0
  229. 41F6 D020 5FF6      MOVB @>5FF6,R0
  230. 41FA B02F FBFE      AB   @>FBFE(R15),R0
  231. 41FE 0280 FF00      CI   R0,>FF00
  232. 4202 1615           JNE  >422E
  233. 4204 5020 5FF6      SZCB @>5FF6,R0
  234. 4208 702F FBFE      SB   @>FBFE(R15),R0
  235. 420C 1610           JNE  >422E
  236. 420E 0646           DECT R6
  237. 4210 16F2           JNE  >41F6
  238. 4212 100C           JMP  >422C
  239. 4214 D020 5FF6      MOVB @>5FF6,R0
  240. 4218 0540           INV  R0
  241. 421A DBC0 FFFE      MOVB R0,@>FFFE(R15)
  242. 421E D020 5FF6      MOVB @>5FF6,R0
  243. 4222 0540           INV  R0
  244. 4224 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  245. 4228 0646           DECT R6
  246. 422A 16F4           JNE  >4214
  247. 422C 04C5           CLR  R5
  248. 422E 06A0 4480      BL   @>4480
  249. 4232 0AD0           SLA  R0,13
  250. 4234 1807           JOC  >4244
  251. 4236 1109           JLT  >424A
  252. 4238 C145           MOV  R5,R5
  253. 423A 160D           JNE  >4256
  254. 423C 0A20           SLA  R0,2
  255. 423E 1808           JOC  >4250
  256. 4240 0460 4676      B    @>4676
  257. 4244 06A0 4590      BL   @>4590
  258. 4248 2100           DATA >2100
  259. 424A 06A0 4590      BL   @>4590
  260. 424E 2200           DATA >2200
  261. 4250 06A0 4590      BL   @>4590
  262. 4254 2300           DATA >2300
  263. 4256 06A0 4590      BL   @>4590
  264. 425A 2800           DATA >2800
  265. 425C 06A0 461E      BL   @>461E
  266. 4260 06A0 45CA      BL   @>45CA
  267. 4264 5700           DATA >5700
  268. 4266 0206 0100      LI   R6,>0100
  269. 426A 1D02           SBO  2
  270. 426C D02F FBFE      MOVB @>FBFE(R15),R0
  271. 4270 0540           INV  R0
  272. 4272 D800 5FFE      MOVB R0,@>5FFE
  273. 4276 D02F FBFE      MOVB @>FBFE(R15),R0
  274. 427A 0540           INV  R0
  275. 427C D800 5FFE      MOVB R0,@>5FFE
  276. 4280 0646           DECT R6
  277. 4282 16F4           JNE  >426C
  278. 4284 06A0 4480      BL   @>4480
  279. 4288 0AB0           SLA  R0,11
  280. 428A 1807           JOC  >429A
  281. 428C 0A20           SLA  R0,2
  282. 428E 1808           JOC  >42A0
  283. 4290 0A20           SLA  R0,2
  284. 4292 1809           JOC  >42A6
  285. 4294 06A0 461E      BL   @>461E
  286. 4298 10A3           JMP  >41E0
  287. 429A 06A0 45AC      BL   @>45AC
  288. 429E 3400           DATA >3400
  289. 42A0 06A0 4590      BL   @>4590
  290. 42A4 3100           DATA >3100
  291. 42A6 06A0 4590      BL   @>4590
  292. 42AA 3300           DATA >3300
  293.  
  294. * Disk format routine
  295.  
  296. 42AC 04E9 004A      CLR  @>004A(R9)        Clear # of sectors/disk
  297. 42B0 D229 004C      MOVB @>004C(R9),R8
  298. 42B4 09C8           SRL  R8,12
  299. 42B6 1306           JEQ  >42C4            Branch if DSR version = 0
  300. 42B8 8808 4630      C    R8,@>4630        Does R8 = 1?
  301. 42BC 1303           JEQ  >42C4            Branch if so
  302. 42BE 06A0 45AC      BL   @>45AC            Report error #7
  303. 42C2 0700           DATA >0700
  304.  
  305. 42C4 5A60 4638 004C SZCB @>4638,@>004C(R9)    Just leave Unit #
  306. 42CA 9829 0051 4657 CB   @>0051(R9),@>4657    Check if double sided
  307. 42D0 1602           JNE  >42D6            Branch if not
  308. 42D2 0729 004A      SETO @>004A(R9)        Sectors/disk = -1
  309. 42D6 DA60 4630 0050 MOVB @>4630,@>0050(R9)    Density = 0
  310. 42DC 06A0 4496      BL   @>4496
  311. 42E0 06A0 4524      BL   @>4524
  312. 42E4 04C3           CLR  R3
  313. 42E6 CA69 004A 004A MOV  @>004A(R9),@>004A(R9)
  314. 42EC 1305           JEQ  >42F8
  315. 42EE 1D07           SBO  7
  316. 42F0 0207 0100      LI   R7,>0100
  317. 42F4 06A0 43AA      BL   @>43AA
  318. 42F8 1E07           SBZ  7
  319. 42FA 04C7           CLR  R7
  320. 42FC 06A0 43AA      BL   @>43AA
  321. 4300 06A0 45CA      BL   @>45CA
  322. 4304 A500           DATA >A500
  323. 4306 06A0 4482      BL   @>4482
  324. 430A 0223 0100      AI   R3,>0100
  325. 430E 9A43 004D      CB   R3,@>004D(R9)
  326. 4312 16E9           JNE  >42E6
  327. 4314 CA69 004A 004A MOV  @>004A(R9),@>004A(R9)
  328. 431A 132F           JEQ  >437A
  329. 431C 1D07           SBO  7
  330. 431E 0204 000A      LI   R4,10
  331. 4322 06A0 4524      BL   @>4524
  332. 4326 C0A9 004E      MOV  @>004E(R9),R2
  333. 432A 06A0 4614      BL   @>4614
  334. 432E 06A0 45CA      BL   @>45CA
  335. 4332 3F00           DATA >3F00
  336. 4334 0206 0006      LI   R6,6
  337. 4338 1D02           SBO  2
  338. 433A D020 5FF6      MOVB @>5FF6,R0
  339. 433E 0540           INV  R0
  340. 4340 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  341. 4344 D020 5FF6      MOVB @>5FF6,R0
  342. 4348 0540           INV  R0
  343. 434A DBC0 FFFE      MOVB R0,@>FFFE(R15)
  344. 434E 0646           DECT R6
  345. 4350 16F4           JNE  >433A
  346. 4352 06A0 4480      BL   @>4480
  347. 4356 0AD0           SLA  R0,13
  348. 4358 181F           JOC  >4398
  349. 435A 1121           JLT  >439E
  350. 435C 0A20           SLA  R0,2
  351. 435E 1822           JOC  >43A4
  352. 4360 C0A9 004E      MOV  @>004E(R9),R2
  353. 4364 0582           INC  R2
  354. 4366 06A0 461E      BL   @>461E
  355. 436A 04C0           CLR  R0
  356. 436C D02F FBFE      MOVB @>FBFE(R15),R0
  357. 4370 1304           JEQ  >437A
  358. 4372 D029 004D      MOVB @>004D(R9),R0
  359. 4376 0A10           SLA  R0,1
  360. 4378 1005           JMP  >4384
  361. 437A DA60 4631 0051 MOVB @>4631,@>0051(R9)
  362. 4380 D029 004D      MOVB @>004D(R9),R0        R0 = Number of tracks
  363. 4384 0980           SRL  R0,8            put in lower byte
  364. 4386 3820 4632      MPY  @>4632,0        Multiply by 9 to get sectors
  365. 438A CA41 004A      MOV  R1,@>004A(R9)        Store
  366. 438E DA60 4633 004D MOVB @>4633,@>004D(R9)
  367. 4394 0460 4676      B    @>4676
  368. 4398 06A0 4590      BL   @>4590
  369. 439C 2101           DATA >2101
  370. 439E 06A0 4590      BL   @>4590
  371. 43A2 2201           DATA >2201
  372. 43A4 06A0 4590      BL   @>4590
  373. 43A8 2301           DATA >2301
  374. 43AA C20B           MOV  R11,R8
  375. 43AC C0A9 004E      MOV  @>004E(R9),R2
  376. 43B0 06A0 4614      BL   @>4614
  377. 43B4 0206 0016      LI   R6,>0016
  378. 43B8 04C2           CLR  R2
  379. 43BA 1002           JMP  >43C0
  380. 43BC 0206 0006      LI   R6,6
  381. 43C0 DBE0 4630 FFFE MOVB @>4630,@>FFFE(R15)
  382. 43C6 0606           DEC  R6
  383. 43C8 16FB           JNE  >43C0
  384. 43CA DBE0 4639 FFFE MOVB @>4639,@>FFFE(R15)
  385. 43D0 1000           NOP
  386. 43D2 DBC3 FFFE      MOVB R3,@>FFFE(R15)
  387. 43D6 1000           NOP
  388. 43D8 DBC7 FFFE      MOVB R7,@>FFFE(R15)
  389. 43DC D003           MOVB R3,R0
  390. 43DE 0980           SRL  R0,8
  391. 43E0 06C7           SWPB R7
  392. 43E2 3827 4635      MPY  @>4635(R7),0
  393. 43E6 06C7           SWPB R7
  394. 43E8 A042           A    R2,R1
  395. 43EA 3C20 4632      DIV  @>4632,0
  396. 43EE DBE1 464F FFFE MOVB @>464F(R1),@>FFFE(R15)
  397. 43F4 0206 FFEC      LI   R6,>FFEC
  398. 43F8 DBE6 464E FFFE MOVB @>464E(R6),@>FFFE(R15)
  399. 43FE 0586           INC  R6
  400. 4400 16FB           JNE  >43F8
  401. 4402 0200 E5E5      LI   R0,>E5E5
  402. 4406 06A0 4474      BL   @>4474
  403. 440A 0100           DATA >0100
  404. 440C DBE0 464E FFFE MOVB @>464E,@>FFFE(R15)
  405. 4412 0700           SETO R0
  406. 4414 06A0 4474      BL   @>4474
  407. 4418 002D           DATA >002D
  408. 441A 0582           INC  R2
  409. 441C 0282 0009      CI   R2,9
  410. 4420 16CD           JNE  >43BC
  411. 4422 06A0 4474      BL   @>4474
  412. 4426 00E7           DATA >00E7
  413. 4428 0204 0003      LI   R4,3
  414. 442C D0A9 004E      MOVB @>004E(R9),R2
  415. 4430 06A0 461E      BL   @>461E
  416. 4434 06A0 45CA      BL   @>45CA
  417. 4438 0B00           DATA >0B00
  418. 443A 0206 0CA3      LI   R6,>0CA3
  419. 443E 1D02           SBO  2
  420. 4440 D02F FBFE      MOVB @>FBFE(R15),R0
  421. 4444 0540           INV  R0
  422. 4446 D800 5FFE      MOVB R0,@>5FFE
  423. 444A D02F FBFE      MOVB @>FBFE(R15),R0
  424. 444E 0540           INV  R0
  425. 4450 D800 5FFE      MOVB R0,@>5FFE
  426. 4454 0646           DECT R6
  427. 4456 15F4           JGT  >4440
  428. 4458 06A0 4480      BL   @>4480
  429. 445C 0AB0           SLA  R0,11
  430. 445E 1702           JNC  >4464
  431. 4460 0460 429A      B    @>429A
  432. 4464 0A40           SLA  R0,4
  433. 4466 1705           JNC  >4472
  434. 4468 0604           DEC  R4
  435. 446A 16E0           JNE  >442C
  436. 446C 06A0 45AC      BL   @>45AC
  437. 4470 3300           DATA >3300
  438. 4472 0458           B    *R8
  439. 4474 C1BB           MOV  *R11+,R6
  440. 4476 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  441. 447A 0606           DEC  R6
  442. 447C 16FC           JNE  >4476
  443. 447E 045B           RT
  444.  
  445. 4480 1E02           SBZ  2
  446. 4482 D020 5FF0      MOVB @>5FF0,R0
  447. 4486 0540           INV  R0
  448. 4488 1103           JLT  >4490
  449. 448A 0B90           SRC  R0,9
  450. 448C 18FA           JOC  >4482
  451. 448E 045B           RT
  452.  
  453. 4490 06A0 45AC      BL   @>45AC
  454. 4494 0600           DATA >0600
  455.  
  456. 4496 C1CB           MOV  R11,R7
  457. 4498 C0A9 0058      MOV  @>0058(R9),R2
  458. 449C 0222 FFF6      AI   R2,>FFF6
  459. 44A0 06A0 461E      BL   @>461E        Set VDP Read Address to R2
  460. 44A4 D02F FBFE      MOVB @>FBFE(R15),R0
  461. 44A8 04C5           CLR  R5
  462. 44AA 9A40 004C      CB   R0,@>004C(R9)    Is current disk # the one we format?
  463. 44AE 1301           JEQ  >44B2        Branch if so
  464. 44B0 0705           SETO R5        Otherwise set R5 = -1
  465. 44B2 04C0           CLR  R0
  466. 44B4 D029 004C      MOVB @>004C(R9),R0
  467. 44B8 1332           JEQ  >451E        Branch if format unit #0
  468. 44BA 06A0 4614      BL   @>4614        Set VDP write address to R2
  469. 44BE DBC0 FFFE      MOVB R0,@>FFFE(R15)    Store current disk # in status info
  470. 44C2 06C0           SWPB R0
  471. 44C4 0280 0003      CI   R0,3        Branch if unit # > 3
  472. 44C8 1B2A           JH   >451E
  473. 44CA 0202 0080      LI   R2,>0080
  474. 44CE 0A02           SLA  R2,0
  475. 44D0 022C 0008      AI   R12,>0008
  476. 44D4 C145           MOV  R5,R5
  477. 44D6 1317           JEQ  >4506        Skip code if disk is current
  478. 44D8 30E0 4505      LDCR @>4505,3    Tell controller we want to
  479. 44DC 022C FFFA      AI   R12,-6        access a new disk
  480. 44E0 34C0           STCR R0,3
  481. 44E2 022C 0006      AI   R12,6
  482. 44E6 2402           CZC  R2,0
  483. 44E8 130E           JEQ  >4506
  484. 44EA 04C0           CLR  R0
  485. 44EC C0A9 0058      MOV  @>0058(R9),R2
  486. 44F0 0222 FFF6      AI   R2,>FFF6
  487. 44F4 06A0 4614      BL   @>4614
  488. 44F8 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  489. 44FC 022C FFF8      AI   R12,>FFF8
  490. 4500 06A0 45AC      BL   @>45AC
  491. 4504 0600           DATA >0600
  492. 4506 30C2           LDCR R2,3
  493. 4508 022C FFF8      AI   R12,>FFF8
  494. 450C C145           MOV  R5,R5
  495. 450E 1306           JEQ  >451C
  496. 4510 0200 0BB8      LI   R0,>0BB8
  497. 4514 0B45           SRC  R5,4
  498. 4516 0B45           SRC  R5,4
  499. 4518 0600           DEC  R0
  500. 451A 16FC           JNE  >4514
  501. 451C 0457           B    *R7
  502. 451E 06A0 45AC      BL   @>45AC        Report disk error #7
  503. 4522 0700           DATA >0700
  504. 4524 C20B           MOV  R11,R8
  505. 4526 06A0 45CA      BL   @>45CA
  506. 452A F500           DATA >F500
  507. 452C 06A0 4482      BL   @>4482
  508. 4530 06A0 4544      BL   @>4544
  509. 4534 06A0 45F0      BL   @>45F0
  510. 4538 06A0 4614      BL   @>4614
  511. 453C DBE0 4640 FFFE MOVB @>4640,@>FFFE(R15)
  512. 4542 0458           B    *R8
  513. 4544 D020 5FF0      MOVB @>5FF0,R0
  514. 4548 0540           INV  R0
  515. 454A 0A60           SLA  R0,6
  516. 454C 1802           JOC  >4552
  517. 454E 0460 4490      B    @>4490
  518. 4552 045B           RT
  519.  
  520. 4554 022C 0008      AI   R12,>0008
  521. 4558 3120 4630      LDCR @>4630,4
  522. 455C 022C FFF8      AI   R12,>FFF8
  523. 4560 1E01           SBZ  1
  524. 4562 1D01           SBO  1
  525. 4564 D820 45BC 5FF8 MOVB @>45BC,@>5FF8
  526. 456A C0A9 0058      MOV  @>0058(R9),R2
  527. 456E 0222 FFF6      AI   R2,>FFF6
  528. 4572 06A0 4614      BL   @>4614
  529. 4576 0200 0004      LI   R0,4
  530. 457A DBC0 FFFE      MOVB R0,@>FFFE(R15)
  531. 457E 0600           DEC  R0
  532. 4580 16FC           JNE  >457A
  533. 4582 06A0 4480      BL   @>4480
  534. 4586 DA60 4630 0050 MOVB @>4630,@>0050(R9)
  535. 458C 0460 4676      B    @>4676
  536. 4590 0604           DEC  R4
  537. 4592 130C           JEQ  >45AC
  538. 4594 C2DB           MOV  *R11,R11
  539. 4596 0B1B           SRC  R11,1
  540. 4598 1702           JNC  >459E
  541. 459A 0460 4322      B    @>4322
  542. 459E 0284 0005      CI   R4,5
  543. 45A2 1B02           JH   >45A8
  544. 45A4 06A0 4524      BL   @>4524
  545. 45A8 0460 40EC      B    @>40EC
  546.  
  547. 45AC C01B           MOV  *R11,R0
  548. 45AE DA40 0050      MOVB R0,@>0050(R9)
  549. 45B2 0280 0600      CI   R0,>0600
  550. 45B6 1607           JNE  >45C6
  551. 45B8 06A0 45CA      BL   @>45CA
  552. 45BC 2F00           DATA >2F00
  553. 45BE D020 5FF0      MOVB @>5FF0,R0
  554. 45C2 0B90           SRC  R0,9
  555. 45C4 17FC           JNC  >45BE
  556. 45C6 0460 4676      B    @>4676
  557.  
  558. 45CA C03B           MOV  *R11+,R0
  559. 45CC D1A0 5FF0      MOVB @>5FF0,R6
  560. 45D0 0A16           SLA  R6,1
  561. 45D2 1E01           SBZ  1
  562. 45D4 1D01           SBO  1
  563. 45D6 1806           JOC  >45E4
  564. 45D8 0206 7530      LI   R6,>7530
  565.  
  566. 45DC 0B45           SRC  R5,4        Some sort of bizarre delay
  567. 45DE 0B45           SRC  R5,4
  568. 45E0 0606           DEC  R6
  569. 45E2 16FC           JNE  >45DC
  570.  
  571. 45E4 D800 5FF8      MOVB R0,@>5FF8
  572. 45E8 1D03           SBO  3
  573. 45EA 0B85           SRC  R5,8
  574. 45EC 0B85           SRC  R5,8
  575. 45EE 045B           RT
  576.  
  577. 45F0 04C0           CLR  R0
  578. 45F2 D029 004C      MOVB @>004C(R9),R0
  579. 45F6 130B           JEQ  >460E
  580. 45F8 06C0           SWPB R0
  581. 45FA 0280 0003      CI   R0,3
  582. 45FE 1B07           JH   >460E
  583. 4600 C0A9 0058      MOV  @>0058(R9),R2
  584. 4604 0222 FFF6      AI   R2,>FFF6
  585. 4608 A080           A    R0,R2
  586. 460A 0460 461E      B    @>461E
  587. 460E 06A0 45AC      BL   @>45AC
  588. 4612 0700           DATA >0700
  589. 4614 0262 4000      ORI  R2,>4000
  590. 4618 0242 7FFF      ANDI R2,>7FFF
  591. 461C 1002           JMP  >4622
  592.  
  593. 461E 0242 3FFF      ANDI R2,>3FFF
  594. 4622 06C2           SWPB R2
  595. 4624 D7C2           MOVB R2,*R15
  596. 4626 06C2           SWPB R2
  597. 4628 D7C2           MOVB R2,*R15
  598.  
  599. 462A 0242 3FFF      ANDI R2,>3FFF
  600. 462E 045B           RT
  601.  
  602. 4630 0001           DATA 1
  603. 4632 0009           DATA 9
  604. 4634 0006           DATA 6
  605. 4636 0003           DATA 3
  606. 4638 F0             BYTE >F0
  607. 4639 FE             BYTE >FE
  608. 463A 01F7           DATA >01F7
  609. 463C FFFF           SOCB *R15+,*R15+
  610. 463E FFFF           SOCB *R15+,*R15+
  611. 4640 FFFF           SOCB *R15+,*R15+
  612. 4642 FFFF           SOCB *R15+,*R15+
  613. 4644 FFFF           SOCB *R15+,*R15+
  614. 4646 FF00           SOCB R0,*R12+
  615. 4648 0000           DATA >0000
  616. 464A 0000           DATA >0000
  617. 464C 00FB           DATA >00FB
  618. 464E F700           SOCB R0,*R12
  619. 4650 0705           SETO R5
  620. 4652 0301 0806      LIMI >0806
  621. 4656 0402           BLWP R2
  622. 4658 0669 0066      DECT @>0066(R9)
  623. 465C C2A9 0066      MOV  @>0066(R9),R10
  624. 4660 0429 005A      BLWP @>005A(R9)
  625. 4664 0143           DATA >0143
  626. 4666 C2BB           MOV  *R11+,R10
  627. 4668 06CB           SWPB R11
  628. 466A DBCB FFFE      MOVB R11,@>FFFE(R15)
  629. 466E 06CB           SWPB R11
  630. 4670 DBCB FFFE      MOVB R11,@>FFFE(R15)
  631. 4674 045A           B    *R10
  632.  
  633. * Get return address off the stack and return
  634.  
  635. 4676 C2E9 0066      MOV  @>0066(R9),R11
  636. 467A 0429 005A      BLWP @>005A(R9)
  637. 467E 0162           DATA >0162
  638. 4680 D2EF FBFE      MOVB @>FBFE(R15),R11
  639. 4684 06CB           SWPB R11
  640. 4686 D2EF FBFE      MOVB @>FBFE(R15),R11
  641. 468A 05E9 0066      INCT @>0066(R9)
  642. 468E 045B           RT
  643.  
  644. 4690 C28D           MOV  R13,R10
  645. 4692 C23E           MOV  *R14+,R8
  646. 4694 C248           MOV  R8,R9
  647. 4696 0949           SRL  R9,4
  648. 4698 0248 0003      ANDI R8,>0003
  649. 469C A208           A    R8,R8
  650. 469E C2ED 001E      MOV  @>001E(R13),R11  Put caller's R15 into R11
  651. 46A2 C228 46A8      MOV  @>46A8(R8),R8
  652. 46A6 0458           B    *R8
  653.  
  654. 46A8 46B0           DATA >46B0
  655. 46AA 46DC           DATA >46DC
  656. 46AC 4712           DATA >4712    Sets VDP read address to Register (R9)
  657. 46AE 4708           DATA >4708
  658.  
  659. 46B0 022A 0016      AI   R10,>0016
  660. 46B4 0919           SRL  R9,1
  661. 46B6 1710           JNC  >46D8
  662. 46B8 064C           DECT R12
  663. 46BA C21A           MOV  *R10,R8    Get a register from caller's workspace
  664. 46BC 06CC           SWPB R12        Set VDP Write address
  665. 46BE D6CC           MOVB R12,*R11
  666. 46C0 06CC           SWPB R12
  667. 46C2 026C 4000      ORI  R12,>4000
  668. 46C6 D6CC           MOVB R12,*R11
  669. 46C8 06C8           SWPB R8        Write what's in R8 into VDP
  670. 46CA DAC8 FFFE      MOVB R8,@>FFFE(R11)
  671. 46CE 06C8           SWPB R8
  672. 46D0 DAC8 FFFE      MOVB R8,@>FFFE(R11)
  673. 46D4 C249           MOV  R9,R9
  674. 46D6 1317           JEQ  >4706
  675. 46D8 064A           DECT R10
  676. 46DA 10EC           JMP  >46B4
  677. 46DC 0A49           SLA  R9,4
  678. 46DE 0A19           SLA  R9,1
  679. 46E0 1710           JNC  >4702
  680. 46E2 06CC           SWPB R12
  681. 46E4 D6CC           MOVB R12,*R11
  682. 46E6 06CC           SWPB R12
  683. 46E8 024C 3FFF      ANDI R12,>3FFF
  684. 46EC D6CC           MOVB R12,*R11
  685. 46EE 1000           NOP
  686. 46F0 D22B FBFE      MOVB @>FBFE(R11),R8
  687. 46F4 06C8           SWPB R8
  688. 46F6 D22B FBFE      MOVB @>FBFE(R11),R8
  689. 46FA C688           MOV  R8,*R10
  690. 46FC 05CC           INCT R12
  691. 46FE C249           MOV  R9,R9
  692. 4700 1302           JEQ  >4706
  693. 4702 05CA           INCT R10
  694. 4704 10EC           JMP  >46DE
  695. 4706 0380           RTWP
  696.  
  697. 4708 A24D           A    R13,R9
  698. 470A C219           MOV  *R9,R8
  699. 470C 0268 4000      ORI  R8,>4000
  700. 4710 1004           JMP  >471A
  701.  
  702. 4712 A24D           A    R13,R9        Add callers WP to R9
  703. 4714 C219           MOV  *R9,R8        Put callers R0 into R8
  704. 4716 0248 3FFF      ANDI R8,>3FFF    Set VDP read address
  705. 471A 06C8           SWPB R8
  706. 471C D6C8           MOVB R8,*R11
  707. 471E 06C8           SWPB R8
  708. 4720 D6C8           MOVB R8,*R11
  709. 4722 0380           RTWP
  710.  
  711. * General purpose setup routine.  This gets called by just about
  712. * everything.  It does the following:
  713. *
  714. * Set up a transfer vector at 835A
  715. *     835A: 834E    Workspace pointer
  716. *     835C: 4690    Transfer address
  717. *
  718. *     8358: Pointer to VIP in VDP RAM
  719. *     8366: Pointer to additional info in VDP RAM (probably not used)
  720. *
  721. 4724 05C7           INCT R7
  722. 4726 C28B           MOV  R11,R10    Save return address in R10
  723. 4728 02A9           STWP R9
  724. 472A 0229 FF20      AI   R9,>FF20    Set R9 to >8300
  725. 472E 0200 4690      LI   R0,>4690    Set up a transer vector
  726. 4732 CA40 005C      MOV  R0,@>005C(R9)  for a BLWP instruction
  727. 4736 C009           MOV  R9,R0
  728. 4738 0220 004E      AI   R0,>004E    Use >834E for a workspace
  729. 473C CA40 005A      MOV  R0,@>005A(R9)
  730.  
  731. 4740 C229 0070      MOV  @>0070(R9),R8    Get highest VDP RAM address
  732. 4744 05C8           INCT R8
  733. 4746 06A0 4B76      BL   @>4B76        Get pointer to next buffer
  734. 474A C088           MOV  R8,R2
  735. 474C C200           MOV  R0,R8
  736. 474E D06F FBFE      MOVB @>FBFE(R15),R1    Get CRU ID of VDP RAM Block
  737. 4752 904C           CB   R12,R1        If it's not ours, look again.
  738. 4754 16F7           JNE  >4744
  739. 4756 0228 FEF6      AI   R8,-266    Subtract 266
  740. 475A CA48 0058      MOV  R8,@>0058(R9)    Save pointer to VIB
  741. 475E 0228 FFF6      AI   R8,-10        Subtract 10
  742. 4762 CA48 0066      MOV  R8,@>0066(R9)    Save pointer to Add'l Info
  743. 4766 0429 005A      BLWP @>005A(R9)    Push R8 on stack
  744. 476A 0100           DATA >0100
  745. 476C C1E9 0056      MOV  @>0056(R9),R7    Get pointer to filename
  746. 4770 C0C7           MOV  R7,R3        Save pointer in R3
  747. 4772 61E9 0054      S    @>0054(R9),R7    Subtract device name length
  748. 4776 CA42 0056      MOV  R2,@>0056(R9)
  749. 477A 0607           DEC  R7
  750. 477C 04C2           CLR  R2
  751. 477E 0429 005A      BLWP @>005A(R9)
  752. 4782 00E2           DATA >00E2
  753. 4784 D0AF FBFE      MOVB @>FBFE(R15),R2
  754. 4788 06C2           SWPB R2
  755. 478A 60A9 0054      S    @>0054(R9),R2
  756. 478E 0227 FFF7      AI   R7,>FFF7
  757. 4792 CA47 0054      MOV  R7,@>0054(R9)
  758. 4796 045A           B    *R10
  759.  
  760. 4798 06A0 4658      BL   @>4658
  761. 479C 4E02           DATA >4E02
  762. 479E C104           MOV  R4,R4
  763. 47A0 1604           JNE  >47AA
  764. 47A2 06A0 4658      BL   @>4658
  765. 47A6 48DE           DATA >48DE
  766. 47A8 1045           JMP  >4834
  767. 47AA 06A0 4B0A      BL   @>4B0A
  768. 47AE 0701           SETO R1
  769. 47B0 06A0 4658      BL   @>4658
  770. 47B4 4EF6           DATA >4EF6
  771. 47B6 C000           MOV  R0,R0
  772. 47B8 1603           JNE  >47C0
  773. 47BA 06A0 4C72      BL   @>4C72
  774. 47BE 8000           C    R0,R0
  775. 47C0 0429 005A      BLWP @>005A(R9)
  776. 47C4 0103           DATA >0103
  777. 47C6 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  778. 47CA 06C0           SWPB R0
  779. 47CC DBC0 FFFE      MOVB R0,@>FFFE(R15)
  780. 47D0 06C0           SWPB R0
  781. 47D2 C069 0056      MOV  @>0056(R9),R1
  782. 47D6 0221 FFFC      AI   R1,>FFFC
  783. 47DA 0429 005A      BLWP @>005A(R9)
  784. 47DE 0023           DATA >0023
  785. 47E0 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  786. 47E4 06C0           SWPB R0
  787. 47E6 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  788. 47EA 0221 0003      AI   R1,3
  789. 47EE 0429 005A      BLWP @>005A(R9)
  790. 47F2 0023           DATA >0023
  791. 47F4 DBC6 FFFE      MOVB R6,@>FFFE(R15)
  792. 47F8 04C2           CLR  R2
  793. 47FA 0581           INC  R1
  794. 47FC 06A0 4658      BL   @>4658
  795. 4800 4D36           DATA >4D36
  796. 4802 C169 0058      MOV  @>0058(R9),R5
  797. 4806 04C4           CLR  R4
  798. 4808 06A0 4658      BL   @>4658
  799. 480C 4D4E           DATA >4D4E
  800. 480E C0C5           MOV  R5,R3
  801. 4810 0223 0101      AI   R3,>0101
  802. 4814 0202 000A      LI   R2,10
  803. 4818 0429 005A      BLWP @>005A(R9)
  804. 481C 0062           DATA >0062
  805. 481E D02F FBFE      MOVB @>FBFE(R15),R0
  806. 4822 0583           INC  R3
  807. 4824 0429 005A      BLWP @>005A(R9)
  808. 4828 0023           DATA >0023
  809. 482A DBC0 FFFE      MOVB R0,@>FFFE(R15)
  810. 482E 0581           INC  R1
  811. 4830 0602           DEC  R2
  812. 4832 16F2           JNE  >4818
  813. 4834 C069 0056      MOV  @>0056(R9),R1
  814. 4838 0221 000A      AI   R1,10
  815. 483C 0202 00F6      LI   R2,>00F6
  816. 4840 0429 005A      BLWP @>005A(R9)
  817. 4844 0023           DATA >0023
  818. 4846 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  819. 484A 0602           DEC  R2
  820. 484C 16FC           JNE  >4846
  821. 484E 1010           JMP  >4870
  822. 4850 C169 0056      MOV  @>0056(R9),R5
  823. 4854 0429 005A      BLWP @>005A(R9)
  824. 4858 00A2           DATA >00A2
  825. 485A D12F FBFE      MOVB @>FBFE(R15),R4
  826. 485E 1101           JLT  >4862
  827. 4860 100A           JMP  >4876
  828. 4862 0244 7F00      ANDI R4,>7F00
  829. 4866 0429 005A      BLWP @>005A(R9)
  830. 486A 00A3           DATA >00A3
  831. 486C DBC4 FFFE      MOVB R4,@>FFFE(R15)
  832. 4870 04C2           CLR  R2
  833. 4872 0460 4D40      B    @>4D40
  834. 4876 0460 4676      B    @>4676
  835. 487A 06A0 4658      BL   @>4658
  836. 487E 489A           DATA >489A
  837. 4880 06A0           BL   @>4658
  838. 4884 4850           DATA >4850
  839. 4886 C169 0056      MOV  @>0056(R9),R5
  840. 488A 04C6           CLR  R6
  841. 488C 0429 005A      BLWP @>005A(R9)
  842. 4890 00A3           DATA >00A3
  843. 4892 DBC6 FFFE      MOVB R6,@>FFFE(R15)
  844. 4896 0460 4CD2      B    @>4CD2
  845. 489A C129 0056      MOV  @>0056(R9),R4
  846. 489E 0604           DEC  R4
  847. 48A0 0429 005A      BLWP @>005A(R9)
  848. 48A4 0082           DATA >0082
  849.  
  850. 48A6 D06F FBFE      MOVB @>FBFE(R15),R1
  851. 48AA 1101           JLT  >48AE
  852. 48AC 1016           JMP  >48DA
  853. 48AE 0241 7F00      ANDI R1,>7F00
  854. 48B2 0429 005A      BLWP @>005A(R9)
  855. 48B6 0083           DATA >0083
  856. 48B8 DBC1 FFFE      MOVB R1,@>FFFE(R15)
  857. 48BC 0224 FFFB      AI   R4,>FFFB
  858. 48C0 0429 005A      BLWP @>005A(R9)
  859. 48C4 0082           DATA >0082
  860. 48C6 D0EF FBFE      MOVB @>FBFE(R15),R3
  861. 48CA 06C3           SWPB R3
  862. 48CC D0EF FBFE      MOVB @>FBFE(R15),R3
  863. 48D0 06C3           SWPB R3
  864. 48D2 C1C4           MOV  R4,R7
  865. 48D4 0227 0106      AI   R7,>0106
  866. 48D8 103A           JMP  >494E
  867. 48DA 0460 4676      B    @>4676
  868. 48DE C0A9 0056      MOV  @>0056(R9),R2
  869. 48E2 0222 000C      AI   R2,>000C
  870. 48E6 0429 005A      BLWP @>005A(R9)
  871. 48EA 0042           DATA >0042
  872. 48EC D02F FBFE      MOVB @>FBFE(R15),R0
  873. 48F0 0240 0800      ANDI R0,>0800
  874. 48F4 1303           JEQ  >48FC
  875. 48F6 06A0 4C72      BL   @>4C72
  876. 48FA 2000           COC  R0,0
  877. 48FC C229 0056      MOV  @>0056(R9),R8
  878. 4900 0228 001C      AI   R8,>001C
  879. 4904 0704           SETO R4
  880. 4906 06A0 4EB6      BL   @>4EB6
  881. 490A 0228 0003      AI   R8,3
  882. 490E C041           MOV  R1,R1
  883. 4910 130C           JEQ  >492A
  884. 4912 C002           MOV  R2,R0
  885. 4914 6084           S    R4,R2
  886. 4916 C100           MOV  R0,R4
  887. 4918 06A0 4658      BL   @>4658
  888. 491C 4FC2           DATA >4FC2
  889. 491E C048           MOV  R8,R1
  890. 4920 6069 0056      S    @>0056(R9),R1
  891. 4924 0281 0100      CI   R1,>0100
  892. 4928 16EE           JNE  >4906
  893. 492A 0460 4676      B    @>4676
  894. 492E 06A0 4B70      BL   @>4B70
  895. 4932 000E           DATA >000E
  896. 4934 80C0           C    R0,R3
  897. 4936 1B03           JH   >493E
  898. 4938 06A0 4C72      BL   @>4C72
  899. 493C A000           A    R0,R0
  900. 493E 06A0 4658      BL   @>4658
  901. 4942 4A4E           DATA >4A4E
  902. 4944 A101           A    R1,R4
  903. 4946 0702           SETO R2
  904. 4948 C147           MOV  R7,R5
  905. 494A 0460 4D4E      B    @>4D4E
  906. 494E 0429 005A      BLWP @>005A(R9)
  907. 4952 8100           DATA >8100
  908. 4954 06A0 4658      BL   @>4658
  909. 4958 4964           DATA >4964
  910. 495A 0429 005A      BLWP @>005A(R9)
  911. 495E 8101           DATA >8101
  912. 4960 04C2           CLR  R2
  913. 4962 10F2           JMP  >4948
  914. 4964 06A0 4B70      BL   @>4B70
  915. 4968 000E           DATA >000E
  916. 496A 80C0           C    R0,R3
  917. 496C 1B47           JH   >49FC
  918. 496E C000           MOV  R0,R0
  919. 4970 1301           JEQ  >4974
  920. 4972 0600           DEC  R0
  921. 4974 C143           MOV  R3,R5
  922. 4976 C0C0           MOV  R0,R3
  923. 4978 06A0 4658      BL   @>4658
  924. 497C 4A4E           DATA >4A4E
  925. 497E 0429 005A      BLWP @>005A(R9)
  926. 4982 4000           DATA >4000
  927. 4984 A044           A    R4,R1
  928. 4986 C105           MOV  R5,R4
  929. 4988 06A0 4658      BL   @>4658
  930. 498C 4EF6           DATA >4EF6
  931. 498E C000           MOV  R0,R0
  932. 4990 1604           JNE  >499A
  933. 4992 C142           MOV  R2,R5
  934. 4994 06A0 4A08      BL   @>4A08
  935. 4998 101B           JMP  >49D0
  936. 499A C041           MOV  R1,R1
  937. 499C 1320           JEQ  >49DE
  938. 499E 0581           INC  R1
  939. 49A0 8040           C    R0,R1
  940. 49A2 131C           JEQ  >49DC
  941. 49A4 0429 005A      BLWP @>005A(R9)
  942. 49A8 4001           DATA >4001
  943. 49AA 0429 005A      BLWP @>005A(R9)
  944. 49AE A000           DATA >A000
  945. 49B0 06A0 4ED2      BL   @>4ED2
  946. 49B4 0429 005A      BLWP @>005A(R9)
  947. 49B8 A001           DATA >A001
  948. 49BA 0228 0003      AI   R8,3
  949. 49BE C048           MOV  R8,R1
  950. 49C0 6069 0056      S    @>0056(R9),R1
  951. 49C4 0281 0100      CI   R1,>0100
  952. 49C8 1605           JNE  >49D4
  953. 49CA 06A0 4658      BL   @>4658
  954. 49CE 4FBC           DATA >4FBC
  955. 49D0 0460 4E28      B    @>4E28
  956. 49D4 C040           MOV  R0,R1
  957. 49D6 0429 005A      BLWP @>005A(R9)
  958. 49DA 4000           DATA >4000
  959. 49DC 1007           JMP  >49EC
  960. 49DE 0429 005A      BLWP @>005A(R9)
  961. 49E2 4001           DATA >4001
  962. 49E4 0429 005A      BLWP @>005A(R9)
  963. 49E8 8000           DATA >8000
  964. 49EA 0702           SETO R2
  965. 49EC C040           MOV  R0,R1
  966. 49EE 0582           INC  R2
  967. 49F0 8102           C    R2,R4
  968. 49F2 16CA           JNE  >4988
  969. 49F4 C144           MOV  R4,R5
  970. 49F6 06A0 4A08      BL   @>4A08
  971. 49FA 1004           JMP  >4A04
  972. 49FC 06A0 4658      BL   @>4658
  973. 4A00 4A4E           DATA >4A4E
  974. 4A02 A101           A    R1,R4
  975. 4A04 0460 4676      B    @>4676
  976. 4A08 C28B           MOV  R11,R10
  977. 4A0A C101           MOV  R1,R4
  978. 4A0C 0429 005A      BLWP @>005A(R9)
  979. 4A10 4001           DATA >4001
  980. 4A12 C041           MOV  R1,R1
  981. 4A14 131B           JEQ  >4A4C
  982. 4A16 06A0 4ED2      BL   @>4ED2
  983. 4A1A C0A9 0056      MOV  @>0056(R9),R2
  984. 4A1E 0429 005A      BLWP @>005A(R9)
  985. 4A22 0042           DATA >0042
  986. 4A24 D06F FBFE      MOVB @>FBFE(R15),R1
  987. 4A28 0261 8000      ORI  R1,>8000
  988. 4A2C 0429 005A      BLWP @>005A(R9)
  989. 4A30 0043           DATA >0043
  990. 4A32 DBC1 FFFE      MOVB R1,@>FFFE(R15)
  991. 4A36 0222 000E      AI   R2,>000E
  992. 4A3A 0585           INC  R5
  993. 4A3C 0429 005A      BLWP @>005A(R9)
  994. 4A40 0043           DATA >0043
  995. 4A42 DBC5 FFFE      MOVB R5,@>FFFE(R15)
  996. 4A46 06C5           SWPB R5
  997. 4A48 DBC5 FFFE      MOVB R5,@>FFFE(R15)
  998. 4A4C 045A           B    *R10
  999. 4A4E C229 0056      MOV  @>0056(R9),R8
  1000. 4A52 0228 001C      AI   R8,>001C
  1001. 4A56 C103           MOV  R3,R4
  1002. 4A58 06A0 4EB6      BL   @>4EB6
  1003. 4A5C 80C2           C    R2,R3
  1004. 4A5E 1101           JLT  >4A62
  1005. 4A60 1006           JMP  >4A6E
  1006. 4A62 0228 0003      AI   R8,3
  1007. 4A66 C103           MOV  R3,R4
  1008. 4A68 6102           S    R2,R4
  1009. 4A6A 0604           DEC  R4
  1010. 4A6C 10F5           JMP  >4A58
  1011. 4A6E 0460 4676      B    @>4676
  1012. 4A72 06A0 4658      BL   @>4658
  1013. 4A76 4DA4           DATA >4DA4
  1014. 4A78 C104           MOV  R4,R4
  1015. 4A7A 1307           JEQ  >4A8A
  1016. 4A7C 06A0 4658      BL   @>4658
  1017. 4A80 4E0C           DATA >4E0C
  1018. 4A82 C104           MOV  R4,R4
  1019. 4A84 1313           JEQ  >4AAC
  1020. 4A86 0460 4676      B    @>4676
  1021. 4A8A 0581           INC  R1
  1022. 4A8C CA41 0056      MOV  R1,@>0056(R9)
  1023. 4A90 06A0 4658      BL   @>4658
  1024. 4A94 4D34           DATA >4D34
  1025. 4A96 06A0 4B70      BL   @>4B70
  1026. 4A9A FFFC           DATA >FFFC
  1027. 4A9C C0C0           MOV  R0,R3
  1028. 4A9E C205           MOV  R5,R8
  1029. 4AA0 06A0 4B76      BL   @>4B76
  1030. 4AA4 05C8           INCT R8
  1031. 4AA6 80C0           C    R0,R3
  1032. 4AA8 16FB           JNE  >4AA0
  1033. 4AAA 0648           DECT R8
  1034. 4AAC 0429 005A      BLWP @>005A(R9)
  1035. 4AB0 0080           DATA >0080
  1036. 4AB2 06A0 4658      BL   @>4658
  1037. 4AB6 48DE           DATA >48DE
  1038. 4AB8 0429           BLWP @>005A(R9)
  1039. 4ABC 0081           DATA >0081
  1040. 4ABE 06A0 4ADA      BL   @>4ADA
  1041. 4AC2 04C2           CLR  R2
  1042. 4AC4 06A0 4658      BL   @>4658
  1043. 4AC8 4D36           DATA >4D36
  1044. 4ACA 06A0 4B70      BL   @>4B70
  1045. 4ACE FFFC           DATA >FFFC
  1046. 4AD0 06A0 4658      BL   @>4658
  1047. 4AD4 4FBC           DATA >4FBC
  1048. 4AD6 0460 4886      B    @>4886
  1049. 4ADA C169 0056      MOV  @>0056(R9),R5
  1050. 4ADE 0225 0100      AI   R5,>0100
  1051. 4AE2 C0C5           MOV  R5,R3
  1052. 4AE4 0223 0100      AI   R3,>0100
  1053. 4AE8 C088           MOV  R8,R2
  1054. 4AEA 05C2           INCT R2
  1055. 4AEC 0429 005A      BLWP @>005A(R9)
  1056. 4AF0 0042           DATA >0042
  1057. 4AF2 D02F FBFE      MOVB @>FBFE(R15),R0
  1058. 4AF6 0582           INC  R2
  1059. 4AF8 0429 005A      BLWP @>005A(R9)
  1060. 4AFC 0103           DATA >0103
  1061. 4AFE DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1062. 4B02 0588           INC  R8
  1063. 4B04 80C2           C    R2,R3
  1064. 4B06 16F2           JNE  >4AEC
  1065. 4B08 045B           RT
  1066.  
  1067. 4B0A C28B           MOV  R11,R10
  1068. 4B0C C048           MOV  R8,R1
  1069. 4B0E 06A0 4B70      BL   @>4B70
  1070. 4B12 01FC           DATA >01FC
  1071. 4B14 C000           MOV  R0,R0
  1072. 4B16 1302           JEQ  >4B1C
  1073. 4B18 0460 4E28      B    @>4E28
  1074. 4B1C 0608           DEC  R8
  1075. 4B1E 0429 005A      BLWP @>005A(R9)
  1076. 4B22 0102           DATA >0102
  1077. 4B24 D02F FBFE      MOVB @>FBFE(R15),R0
  1078. 4B28 05C8           INCT R8
  1079. 4B2A 0429 005A      BLWP @>005A(R9)
  1080. 4B2E 0103           DATA >0103
  1081. 4B30 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1082. 4B34 0648           DECT R8
  1083. 4B36 8048           C    R8,R1
  1084. 4B38 16F1           JNE  >4B1C
  1085. 4B3A 045A           B    *R10
  1086. 4B3C C0A9 0058      MOV  @>0058(R9),R2
  1087. 4B40 0222 0100      AI   R2,>0100
  1088. 4B44 0429 005A      BLWP @>005A(R9)
  1089. 4B48 0022           DATA >0022
  1090. 4B4A D02F FBFE      MOVB @>FBFE(R15),R0
  1091. 4B4E 0240 7FFF      ANDI R0,>7FFF
  1092. 4B52 0429 005A      BLWP @>005A(R9)
  1093. 4B56 0042           DATA >0042
  1094. 4B58 D0EF FBFE      MOVB @>FBFE(R15),R3
  1095. 4B5C 90C0           CB   R0,R3
  1096. 4B5E 1604           JNE  >4B68
  1097. 4B60 0581           INC  R1
  1098. 4B62 0582           INC  R2
  1099. 4B64 0604           DEC  R4
  1100. 4B66 16EE           JNE  >4B44
  1101. 4B68 045B           RT
  1102.  
  1103. 4B6A C229 0054      MOV  @>0054(R9),R8
  1104. 4B6E 1002           JMP  >4B74
  1105. 4B70 C229 0056      MOV  @>0056(R9),R8
  1106. 4B74 A23B           A    *R11+,R8
  1107.  
  1108. 4B76 0429 005A      BLWP @>005A(R9)    Set VDP Read address to R8
  1109. 4B7A 0102           DATA >0102
  1110. 4B7C D02F FBFE      MOVB @>FBFE(R15),R0    Read word from VDP RAM
  1111. 4B80 06C0           SWPB R0
  1112. 4B82 D02F FBFE      MOVB @>FBFE(R15),R0
  1113. 4B86 0B80           SRC  R0,8
  1114. 4B88 045B           RT
  1115.  
  1116. 4B8A C069 0058      MOV  @>0058(R9),R1
  1117. 4B8E 0221 0100      AI   R1,>0100
  1118. 4B92 06A0 4C14      BL   @>4C14
  1119. 4B96 0429 005A      BLWP @>005A(R9)
  1120. 4B9A 3000           DATA >3000
  1121. 4B9C C000           MOV  R0,R0
  1122. 4B9E 1101           JLT  >4BA2
  1123. 4BA0 1005           JMP  >4BAC
  1124. 4BA2 C180           MOV  R0,R6
  1125. 4BA4 0246 0300      ANDI R6,>0300
  1126. 4BA8 1337           JEQ  >4C18
  1127. 4BAA 102F           JMP  >4C0A
  1128. 4BAC 04C6           CLR  R6
  1129. 4BAE 06A0 4658      BL   @>4658
  1130. 4BB2 4CD2           DATA >4CD2
  1131. 4BB4 0226 0100      AI   R6,>0100
  1132. 4BB8 0707           SETO R7
  1133. 4BBA 0702           SETO R2
  1134. 4BBC 04C4           CLR  R4
  1135. 4BBE 06A0 4658      BL   @>4658
  1136. 4BC2 4D50           DATA >4D50
  1137. 4BC4 C1C7           MOV  R7,R7
  1138. 4BC6 161D           JNE  >4C02
  1139. 4BC8 0204 000A      LI   R4,10
  1140. 4BCC C069 0058      MOV  @>0058(R9),R1
  1141. 4BD0 0429 005A      BLWP @>005A(R9)
  1142. 4BD4 7000           DATA >7000
  1143. 4BD6 06A0 4B3C      BL   @>4B3C
  1144. 4BDA 0429 005A      BLWP @>005A(R9)
  1145. 4BDE 7001           DATA >7001
  1146. 4BE0 C104           MOV  R4,R4
  1147. 4BE2 160F           JNE  >4C02
  1148. 4BE4 C006           MOV  R6,R0
  1149. 4BE6 0260 8000      ORI  R0,>8000
  1150. 4BEA 0429 005A      BLWP @>005A(R9)
  1151. 4BEE 0063           DATA >0063
  1152. 4BF0 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1153. 4BF4 0605           DEC  R5
  1154. 4BF6 0429 005A      BLWP @>005A(R9)
  1155. 4BFA 00A3           DATA >00A3
  1156. 4BFC DBC6 FFFE      MOVB R6,@>FFFE(R15)
  1157. 4C00 1004           JMP  >4C0A
  1158. 4C02 0286 0300      CI   R6,>0300
  1159. 4C06 16D6           JNE  >4BB4
  1160. 4C08 1007           JMP  >4C18
  1161. 4C0A 0429 005A      BLWP @>005A(R9)
  1162. 4C0E 3001           DATA >3001
  1163. 4C10 0460 4676      B    @>4676
  1164. 4C14 0602           DEC  R2
  1165. 4C16 1B03           JH   >4C1E
  1166. 4C18 06A0 4C9E      BL   @>4C9E
  1167. 4C1C E000           DATA >E000
  1168. 4C1E 0200 2000      LI   R0,>2000
  1169. 4C22 0429 005A      BLWP @>005A(R9)
  1170. 4C26 0023           DATA >0023
  1171. 4C28 0208 000A      LI   R8,10
  1172. 4C2C DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1173. 4C30 0608           DEC  R8
  1174. 4C32 16FC           JNE  >4C2C
  1175. 4C34 0208 000B      LI   R8,>000B
  1176. 4C38 0583           INC  R3
  1177. 4C3A 0429 005A      BLWP @>005A(R9)
  1178. 4C3E 0062           DATA >0062
  1179. 4C40 D02F FBFE      MOVB @>FBFE(R15),R0
  1180. 4C44 13E9           JEQ  >4C18
  1181. 4C46 1110           JLT  >4C68
  1182. 4C48 0280 2E00      CI   R0,>2E00
  1183. 4C4C 130D           JEQ  >4C68
  1184. 4C4E 0608           DEC  R8
  1185. 4C50 13E3           JEQ  >4C18
  1186. 4C52 0280 2000      CI   R0,>2000
  1187. 4C56 13E0           JEQ  >4C18
  1188. 4C58 0429 005A      BLWP @>005A(R9)
  1189. 4C5C 0023           DATA >0023
  1190. 4C5E DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1191. 4C62 0581           INC  R1
  1192. 4C64 0602           DEC  R2
  1193. 4C66 16E8           JNE  >4C38
  1194. 4C68 0288 000B      CI   R8,>000B
  1195. 4C6C 13D5           JEQ  >4C18
  1196. 4C6E 045B           RT
  1197.  
  1198. 4C70 AA00 C00B      A    R0,@>C00B(R8)
  1199. 4C74 C0E9 0056      MOV  @>0056(R9),R3
  1200. 4C78 0603           DEC  R3
  1201. 4C7A 0429 005A      BLWP @>005A(R9)
  1202. 4C7E 0062           DATA >0062
  1203. 4C80 D0AF FBFE      MOVB @>FBFE(R15),R2
  1204. 4C84 9802 4C70      CB   R2,@>4C70
  1205. 4C88 1309           JEQ  >4C9C
  1206. 4C8A 0429 005A      BLWP @>005A(R9)
  1207. 4C8E 8000           DATA >8000
  1208. 4C90 06A0 4658      BL   @>4658
  1209. 4C94 487A           DATA >487A
  1210. 4C96 0429 005A      BLWP @>005A(R9)
  1211. 4C9A 8001           DATA >8001
  1212. 4C9C C2C0           MOV  R0,R11
  1213. 4C9E C069 0054      MOV  @>0054(R9),R1
  1214. 4CA2 130D           JEQ  >4CBE
  1215. 4CA4 0581           INC  R1
  1216. 4CA6 0429 005A      BLWP @>005A(R9)
  1217. 4CAA 0022           DATA >0022
  1218. 4CAC D0AF FBFE      MOVB @>FBFE(R15),R2
  1219. 4CB0 E0BB           SOC  *R11+,R2
  1220. 4CB2 0429 005A      BLWP @>005A(R9)
  1221. 4CB6 0023           DATA >0023
  1222. 4CB8 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  1223. 4CBC 1002           JMP  >4CC2
  1224. 4CBE CA7B 0050      MOV  *R11+,@>0050(R9)
  1225. 4CC2 C229 0058      MOV  @>0058(R9),R8
  1226. 4CC6 0228 FFF4      AI   R8,>FFF4
  1227. 4CCA CA48 0066      MOV  R8,@>0066(R9)
  1228. 4CCE 0460 4676      B    @>4676
  1229. 4CD2 0429 005A      BLWP @>005A(R9)
  1230. 4CD6 3000           DATA >3000
  1231. 4CD8 C169 0058      MOV  @>0058(R9),R5
  1232. 4CDC 0605           DEC  R5
  1233. 4CDE 0429 005A      BLWP @>005A(R9)
  1234. 4CE2 00A2           DATA >00A2
  1235. 4CE4 D0AF FBFE      MOVB @>FBFE(R15),R2
  1236. 4CE8 C0C2           MOV  R2,R3
  1237. 4CEA 04C4           CLR  R4
  1238. 4CEC 0242 0300      ANDI R2,>0300
  1239. 4CF0 9182           CB   R2,R6
  1240. 4CF2 131A           JEQ  >4D28
  1241. 4CF4 C0C3           MOV  R3,R3
  1242. 4CF6 1101           JLT  >4CFA
  1243. 4CF8 100A           JMP  >4D0E
  1244. 4CFA 0429 005A      BLWP @>005A(R9)
  1245. 4CFE 00A3           DATA >00A3
  1246. 4D00 DBC4 FFFE      MOVB R4,@>FFFE(R15)
  1247. 4D04 0585           INC  R5
  1248. 4D06 06A0 4658      BL   @>4658
  1249. 4D0A 4D52           DATA >4D52
  1250. 4D0C 0605           DEC  R5
  1251. 4D0E 0702           SETO R2
  1252. 4D10 D086           MOVB R6,R2
  1253. 4D12 1305           JEQ  >4D1E
  1254. 4D14 0585           INC  R5
  1255. 4D16 06A0 4658      BL   @>4658
  1256. 4D1A 4D50           DATA >4D50
  1257. 4D1C 0605           DEC  R5
  1258. 4D1E 0429 005A      BLWP @>005A(R9)
  1259. 4D22 00A3           DATA >00A3
  1260. 4D24 DBC6 FFFE      MOVB R6,@>FFFE(R15)
  1261. 4D28 0585           INC  R5
  1262. 4D2A 0429 005A      BLWP @>005A(R9)
  1263. 4D2E 3001           DATA >3001
  1264. 4D30 0460 4676      B    @>4676
  1265. 4D34 0702           SETO R2
  1266. 4D36 0204 0001      LI   R4,1
  1267. 4D3A 0205 0100      LI   R5,>0100
  1268. 4D3E 1005           JMP  >4D4A
  1269. 4D40 06A0 4B70      BL   @>4B70
  1270. 4D44 FFFC           DATA >FFFC
  1271. 4D46 C100           MOV  R0,R4
  1272. 4D48 04C5           CLR  R5
  1273. 4D4A A169 0056      A    @>0056(R9),R5
  1274. 4D4E 04C7           CLR  R7
  1275. 4D50 D086           MOVB R6,R2
  1276. 4D52 0429 005A      BLWP @>005A(R9)
  1277. 4D56 FF80           DATA >FF80
  1278. 4D58 CA44 004A      MOV  R4,@>004A(R9)
  1279. 4D5C CA42 004C      MOV  R2,@>004C(R9)
  1280. 4D60 CA45 004E      MOV  R5,@>004E(R9)
  1281. 4D64 06A0 4658      BL   @>4658
  1282. 4D68 40E8           DATA >40E8
  1283. 4D6A 0429 005A      BLWP @>005A(R9)
  1284. 4D6E FF81           DATA >FF81
  1285. 4D70 D1E9 0050      MOVB @>0050(R9),R7
  1286. 4D74 06C7           SWPB R7
  1287. 4D76 1312           JEQ  >4D9C
  1288. 4D78 C1C7           MOV  R7,R7
  1289. 4D7A 1501           JGT  >4D7E
  1290. 4D7C 100B           JMP  >4D94
  1291. 4D7E 0247 00FF      ANDI R7,>00FF
  1292. 4D82 0287 0034      CI   R7,>0034
  1293. 4D86 1603           JNE  >4D8E
  1294. 4D88 06A0 4C72      BL   @>4C72
  1295. 4D8C 2000           COC  R0,0
  1296. 4D8E 06A0 4C72      BL   @>4C72
  1297. 4D92 C000           MOV  R0,R0
  1298. 4D94 DA69 004D 004D MOVB @>004D(R9),@>004D(R9)
  1299. 4D9A 13F1           JEQ  >4D7E
  1300. 4D9C 0247 00FF      ANDI R7,>00FF
  1301. 4DA0 0460 4676      B    @>4676
  1302. 4DA4 C069 0058      MOV  @>0058(R9),R1
  1303. 4DA8 0221 0100      AI   R1,>0100
  1304. 4DAC 0429 005A      BLWP @>005A(R9)
  1305. 4DB0 0023           DATA >0023
  1306. 4DB2 DBC6 FFFE      MOVB R6,@>FFFE(R15)
  1307. 4DB6 0581           INC  R1
  1308. 4DB8 06A0 4C14      BL   @>4C14
  1309. 4DBC C082           MOV  R2,R2
  1310. 4DBE 1302           JEQ  >4DC4
  1311. 4DC0 0460 4C18      B    @>4C18
  1312. 4DC4 C069 0056      MOV  @>0056(R9),R1
  1313. 4DC8 0221 0003      AI   R1,3
  1314. 4DCC 0429 005A      BLWP @>005A(R9)
  1315. 4DD0 0022           DATA >0022
  1316. 4DD2 D0AF FBFE      MOVB @>FBFE(R15),R2
  1317. 4DD6 0982           SRL  R2,8
  1318. 4DD8 C0C2           MOV  R2,R3
  1319. 4DDA 0221 0006      AI   R1,6
  1320. 4DDE 0204 000B      LI   R4,11
  1321. 4DE2 0429 005A      BLWP @>005A(R9)
  1322. 4DE6 7000           DATA >7000
  1323. 4DE8 06A0 4B3C      BL   @>4B3C
  1324. 4DEC 0429 005A      BLWP @>005A(R9)
  1325. 4DF0 7001           DATA >7001
  1326. 4DF2 C104           MOV  R4,R4
  1327. 4DF4 1304           JEQ  >4DFE
  1328. 4DF6 0221 0206      AI   R1,>0206
  1329. 4DFA 0602           DEC  R2
  1330. 4DFC 16F0           JNE  >4DDE
  1331. 4DFE 0460 4676      B    @>4676
  1332. 4E02 06A0 4658      BL   @>4658
  1333. 4E06 4DA4           DATA >4DA4
  1334. 4E08 C104           MOV  R4,R4
  1335. 4E0A 13DA           JEQ  >4DC0
  1336. 4E0C C169 0056      MOV  @>0056(R9),R5
  1337. 4E10 0225 000A      AI   R5,10
  1338. 4E14 0429 005A      BLWP @>005A(R9)
  1339. 4E18 00A2           DATA >00A2
  1340. 4E1A D0AF FBFE      MOVB @>FBFE(R15),R2
  1341. 4E1E 1307           JEQ  >4E2E
  1342. 4E20 0225 0206      AI   R5,>0206
  1343. 4E24 0603           DEC  R3
  1344. 4E26 16F6           JNE  >4E14
  1345. 4E28 06A0 4C72      BL   @>4C72
  1346. 4E2C 8000           C    R0,R0
  1347. 4E2E CA45 0056      MOV  R5,@>0056(R9)
  1348. 4E32 06A0 4658      BL   @>4658
  1349. 4E36 4D34           DATA >4D34
  1350. 4E38 C229 0056      MOV  @>0056(R9),R8
  1351. 4E3C 0228 017E      AI   R8,>017E
  1352. 4E40 0202 0040      LI   R2,>0040
  1353. 4E44 0704           SETO R4
  1354. 4E46 06A0 4B76      BL   @>4B76
  1355. 4E4A C000           MOV  R0,R0
  1356. 4E4C 132E           JEQ  >4EAA
  1357. 4E4E 0429 005A      BLWP @>005A(R9)
  1358. 4E52 2000           DATA >2000
  1359. 4E54 0702           SETO R2
  1360. 4E56 06A0 4658      BL   @>4658
  1361. 4E5A 4D46           DATA >4D46
  1362. 4E5C C045           MOV  R5,R1
  1363. 4E5E 0225 FFFC      AI   R5,>FFFC
  1364. 4E62 0429 005A      BLWP @>005A(R9)
  1365. 4E66 00A3           DATA >00A3
  1366. 4E68 DBC4 FFFE      MOVB R4,@>FFFE(R15)
  1367. 4E6C 06C4           SWPB R4
  1368. 4E6E DBC4 FFFE      MOVB R4,@>FFFE(R15)
  1369. 4E72 C141           MOV  R1,R5
  1370. 4E74 0601           DEC  R1
  1371. 4E76 0429 005A      BLWP @>005A(R9)
  1372. 4E7A 0023           DATA >0023
  1373. 4E7C DBC6 FFFE      MOVB R6,@>FFFE(R15)
  1374. 4E80 0204 000B      LI   R4,>000B
  1375. 4E84 06A0 4B3C      BL   @>4B3C
  1376. 4E88 0429 005A      BLWP @>005A(R9)
  1377. 4E8C 2001           DATA >2001
  1378. 4E8E 130B           JEQ  >4EA6
  1379. 4E90 0429 005A      BLWP @>005A(R9)
  1380. 4E94 00A3           DATA >00A3
  1381. 4E96 DBC4 FFFE      MOVB R4,@>FFFE(R15)
  1382. 4E9A 80C0           C    R0,R3
  1383. 4E9C 1B06           JH   >4EAA
  1384. 4E9E A202           A    R2,R8
  1385. 4EA0 C082           MOV  R2,R2
  1386. 4EA2 1606           JNE  >4EB0
  1387. 4EA4 05C8           INCT R8
  1388. 4EA6 0460 4676      B    @>4676
  1389. 4EAA 6202           S    R2,R8
  1390. 4EAC C082           MOV  R2,R2
  1391. 4EAE 13FB           JEQ  >4EA6
  1392. 4EB0 0922           SRL  R2,2
  1393. 4EB2 A082           A    R2,R2
  1394. 4EB4 10C7           JMP  >4E44
  1395. 4EB6 C28B           MOV  R11,R10
  1396. 4EB8 06A0 4B76      BL   @>4B76
  1397. 4EBC 06C0           SWPB R0
  1398. 4EBE D0AF FBFE      MOVB @>FBFE(R15),R2
  1399. 4EC2 C040           MOV  R0,R1
  1400. 4EC4 0241 0FFF      ANDI R1,>0FFF
  1401. 4EC8 4001           SZC  R1,R0
  1402. 4ECA 0982           SRL  R2,8
  1403. 4ECC E080           SOC  R0,R2
  1404. 4ECE 0BC2           SRC  R2,12
  1405. 4ED0 045A           B    *R10
  1406. 4ED2 0B42           SRC  R2,4
  1407. 4ED4 C002           MOV  R2,R0
  1408. 4ED6 0240 F000      ANDI R0,>F000
  1409. 4EDA E040           SOC  R0,R1
  1410. 4EDC 0429 005A      BLWP @>005A(R9)
  1411. 4EE0 0103           DATA >0103
  1412. 4EE2 06C1           SWPB R1
  1413. 4EE4 DBC1 FFFE      MOVB R1,@>FFFE(R15)
  1414. 4EE8 06C1           SWPB R1
  1415. 4EEA DBC1 FFFE      MOVB R1,@>FFFE(R15)
  1416. 4EEE 06C2           SWPB R2
  1417. 4EF0 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  1418. 4EF4 045B           RT
  1419.  
  1420. 4EF6 0429 005A      BLWP @>005A(R9)
  1421. 4EFA 7800           DATA >7800
  1422. 4EFC 06A0 4658      BL   @>4658
  1423. 4F00 4CD2           DATA >4CD2
  1424. 4F02 C041           MOV  R1,R1
  1425. 4F04 1602           JNE  >4F0A
  1426. 4F06 0201 0021      LI   R1,>0021
  1427. 4F0A 0581           INC  R1
  1428. 4F0C C001           MOV  R1,R0
  1429. 4F0E 0931           SRL  R1,3
  1430. 4F10 0202 00FF      LI   R2,>00FF
  1431. 4F14 0240 0007      ANDI R0,>0007
  1432. 4F18 1301           JEQ  >4F1C
  1433. 4F1A 0A02           SLA  R2,0
  1434. 4F1C C0C1           MOV  R1,R3
  1435. 4F1E A0C5           A    R5,R3
  1436. 4F20 0223 0038      AI   R3,>0038
  1437. 4F24 0281 00C8      CI   R1,>00C8
  1438. 4F28 1101           JLT  >4F2C
  1439. 4F2A 04C1           CLR  R1
  1440. 4F2C A045           A    R5,R1
  1441. 4F2E 0221 0038      AI   R1,>0038
  1442. 4F32 0429 005A      BLWP @>005A(R9)
  1443. 4F36 0022           DATA >0022
  1444. 4F38 0700           SETO R0
  1445. 4F3A D02F FBFE      MOVB @>FBFE(R15),R0
  1446. 4F3E C100           MOV  R0,R4
  1447. 4F40 E002           SOC  R2,R0
  1448. 4F42 04C2           CLR  R2
  1449. 4F44 0580           INC  R0
  1450. 4F46 1610           JNE  >4F68
  1451. 4F48 0581           INC  R1
  1452. 4F4A C001           MOV  R1,R0
  1453. 4F4C 0220 FF00      AI   R0,>FF00
  1454. 4F50 8140           C    R0,R5
  1455. 4F52 1605           JNE  >4F5E
  1456. 4F54 0221 FF38      AI   R1,>FF38
  1457. 4F58 0429 005A      BLWP @>005A(R9)
  1458. 4F5C 0022           DATA >0022
  1459. 4F5E 80C1           C    R1,R3
  1460. 4F60 16EB           JNE  >4F38
  1461. 4F62 C004           MOV  R4,R0
  1462. 4F64 0580           INC  R0
  1463. 4F66 1325           JEQ  >4FB2
  1464. 4F68 0600           DEC  R0
  1465. 4F6A C080           MOV  R0,R2
  1466. 4F6C 04C0           CLR  R0
  1467. 4F6E 06C2           SWPB R2
  1468. 4F70 0580           INC  R0
  1469. 4F72 0B12           SRC  R2,1
  1470. 4F74 18FD           JOC  >4F70
  1471. 4F76 0202 0080      LI   R2,>0080
  1472. 4F7A 0A02           SLA  R2,0
  1473. 4F7C 0600           DEC  R0
  1474. 4F7E E102           SOC  R2,R4
  1475. 4F80 0429 005A      BLWP @>005A(R9)
  1476. 4F84 0023           DATA >0023
  1477. 4F86 DBC4 FFFE      MOVB R4,@>FFFE(R15)
  1478. 4F8A 0221 FFC8      AI   R1,>FFC8
  1479. 4F8E 6045           S    R5,R1
  1480. 4F90 0A31           SLA  R1,3
  1481. 4F92 E040           SOC  R0,R1
  1482. 4F94 C001           MOV  R1,R0
  1483. 4F96 0605           DEC  R5
  1484. 4F98 0429 005A      BLWP @>005A(R9)
  1485. 4F9C 00A2           DATA >00A2
  1486. 4F9E D06F FBFE      MOVB @>FBFE(R15),R1
  1487. 4FA2 0261 8000      ORI  R1,>8000
  1488. 4FA6 0429 005A      BLWP @>005A(R9)
  1489. 4FAA 00A3           DATA >00A3
  1490. 4FAC DBC1 FFFE      MOVB R1,@>FFFE(R15)
  1491. 4FB0 0585           INC  R5
  1492. 4FB2 0429 005A      BLWP @>005A(R9)
  1493. 4FB6 7801           DATA >7801
  1494. 4FB8 0460 4676      B    @>4676
  1495. 4FBC C040           MOV  R0,R1
  1496. 4FBE 0202 0001      LI   R2,1
  1497. 4FC2 0429 005A      BLWP @>005A(R9)
  1498. 4FC6 7800           DATA >7800
  1499. 4FC8 06A0 4658      BL   @>4658
  1500. 4FCC 4CD2           DATA >4CD2
  1501. 4FCE C001           MOV  R1,R0
  1502. 4FD0 0240 0007      ANDI R0,>0007
  1503. 4FD4 0931           SRL  R1,3
  1504. 4FD6 A045           A    R5,R1
  1505. 4FD8 0221 0038      AI   R1,>0038
  1506. 4FDC C0C0           MOV  R0,R3
  1507. 4FDE 0500           NEG  R0
  1508. 4FE0 0220 0008      AI   R0,8
  1509. 4FE4 0204 00FF      LI   R4,>00FF
  1510. 4FE8 8002           C    R2,R0
  1511. 4FEA 1101           JLT  >4FEE
  1512. 4FEC 100B           JMP  >5004
  1513. 4FEE 0200 0008      LI   R0,8
  1514. 4FF2 6002           S    R2,R0
  1515. 4FF4 0B04           SRC  R4,0
  1516. 4FF6 C003           MOV  R3,R0
  1517. 4FF8 1301           JEQ  >4FFC
  1518. 4FFA 0A04           SLA  R4,0
  1519. 4FFC 1001           JMP  >5000
  1520. 4FFE 0939           SRL  R9,3
  1521. 5000 06C4           SWPB R4
  1522. 5002 1019           JMP  >5036
  1523. 5004 0B04           SRC  R4,0
  1524. 5006 6080           S    R0,R2
  1525. 5008 0429 005A      BLWP @>005A(R9)
  1526. 500C 0022           DATA >0022
  1527. 500E D02F FBFE      MOVB @>FBFE(R15),R0
  1528. 5012 4004           SZC  R4,R0
  1529. 5014 0429 005A      BLWP @>005A(R9)
  1530. 5018 0023           DATA >0023
  1531. 501A DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1532. 501E 0204 FF00      LI   R4,>FF00
  1533. 5022 0581           INC  R1
  1534. 5024 0200 0008      LI   R0,8
  1535. 5028 8002           C    R2,R0
  1536. 502A 1101           JLT  >502E
  1537. 502C 10EC           JMP  >5006
  1538. 502E C002           MOV  R2,R0
  1539. 5030 0204 00FF      LI   R4,>00FF
  1540. 5034 0A04           SLA  R4,0
  1541. 5036 0429 005A      BLWP @>005A(R9)
  1542. 503A 0022           DATA >0022
  1543. 503C D02F FBFE      MOVB @>FBFE(R15),R0
  1544. 5040 4004           SZC  R4,R0
  1545. 5042 0429 005A      BLWP @>005A(R9)
  1546. 5046 0023           DATA >0023
  1547. 5048 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1548. 504C 10A4           JMP  >4F96
  1549. 504E C1CB           MOV  R11,R7
  1550. 5050 06A0 4724      BL   @>4724
  1551. 5054 06A0 4658      BL   @>4658
  1552. 5058 4B8A           DATA >4B8A
  1553. 505A 100B           JMP  >5072           - CHECK
  1554.  
  1555. * Device service routine entry point.  R6 contains the
  1556. * drive number.
  1557.  
  1558. 505C 0206 0100      LI   R6,>0100
  1559. 5060 1005           JMP  >506C
  1560. 5062 0206 0200      LI   R6,>0200
  1561. 5066 1002           JMP  >506C
  1562. 5068 0206 0300      LI   R6,>0300
  1563.  
  1564. 506C C1CB           MOV  R11,R7        Save return address
  1565. 506E 06A0 4724      BL   @>4724
  1566. 5072 C029 0054      MOV  @>0054(R9),R0    R0 points to device name length
  1567. 5076 0429 005A      BLWP @>005A(R9)    Set VDP read address to R0
  1568. 507A 0002           DATA >0002
  1569. 507C D06F FBFE      MOVB @>FBFE(R15),R1    Read filename length
  1570. 5080 0981           SRL  R1,8
  1571. 5082 0281 0009      CI   R1,9        See if filename length is too large
  1572. 5086 1B19           JH   >50BA
  1573. 5088 0282 0001      CI   R2,1
  1574. 508C 1605           JNE  >5098
  1575. 508E 0221 000A      AI   R1,10
  1576. 5092 0281 000C      CI   R1,12
  1577. 5096 1B11           JH   >50BA
  1578. 5098 A041           A    R1,R1
  1579. 509A C061 50A0      MOV  @>50A0(R1),R1
  1580. 509E 0451           B    *R1
  1581. 50A0 50C0           DATA >50C0        I/O Op Code 0  - Open
  1582. 50A2 52D2           DATA >52D2        I/O Op Code 1  - Close
  1583. 50A4 52DC           DATA >52DC        I/O Op Code 2  - Read
  1584. 50A6 53C6           DATA >53C6        I/O Op Code 3  - Write
  1585. 50A8 567A           DATA >567A        I/O Op Code 4
  1586. 50AA 56CE           DATA >56CE        I/O Op Code 5
  1587. 50AC 5770           DATA >5770        I/O Op Code 6
  1588. 50AE 4A72           DATA >4A72        I/O Op Code 7
  1589. 50B0 4C9E           DATA >4C9E        I/O Op Code 8
  1590. 50B2 57F4           DATA >57F4        I/O Op Code 9
  1591. 50B4 58B4           DATA >58B4        I/O Op Code 10 - Open catalog
  1592. 50B6 5912           DATA >5912        I/O Op Code 11 - Close catalog
  1593. 50B8 5928           DATA >5928        I/O Op Code 12 - Read catalog
  1594.  
  1595. 50BA 06A0 4C72      BL   @>4C72
  1596. 50BE 6000           DATA >6000
  1597. 50C0 04C0           CLR  R0
  1598. 50C2 D02F FBFE      MOVB @>FBFE(R15),R0
  1599. 50C6 0429 005A      BLWP @>005A(R9)
  1600. 50CA 8000           DATA >8000
  1601. 50CC 0240 1600      ANDI R0,>1600
  1602. 50D0 0280 0600      CI   R0,>0600
  1603. 50D4 1603           JNE  >50DC
  1604. 50D6 06A0 4C72      BL   @>4C72
  1605. 50DA 4000           DATA >4000
  1606. 50DC 120A           JLE  >50F2
  1607. 50DE C040           MOV  R0,R1
  1608. 50E0 06A0 4B6A      BL   @>4B6A
  1609. 50E4 0004           DATA >0004
  1610. 50E6 0280 FF00      CI   R0,>FF00
  1611. 50EA 14F5           JHE  >50D6
  1612. 50EC C001           MOV  R1,R0
  1613. 50EE 0240 0600      ANDI R0,>0600
  1614. 50F2 0280 0200      CI   R0,>0200
  1615. 50F6 1657           JNE  >51A6
  1616. 50F8 06A0 4658      BL   @>4658
  1617. 50FC 4798           DATA >4798
  1618. 50FE 06A0 5280      BL   @>5280
  1619. 5102 0429 005A      BLWP @>005A(R9)
  1620. 5106 0083           DATA >0083
  1621. 5108 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  1622. 510C C0E9 0054      MOV  @>0054(R9),R3
  1623. 5110 0223 0004      AI   R3,4
  1624. 5114 04C5           CLR  R5
  1625. 5116 0429 005A      BLWP @>005A(R9)
  1626. 511A 0062           DATA >0062
  1627. 511C D16F FBFE      MOVB @>FBFE(R15),R5
  1628. 5120 1607           JNE  >5130
  1629. 5122 0205 5000      LI   R5,>5000
  1630. 5126 0429 005A      BLWP @>005A(R9)
  1631. 512A 0063           DATA >0063
  1632. 512C DBC5 FFFE      MOVB R5,@>FFFE(R15)
  1633. 5130 0224 0005      AI   R4,5
  1634. 5134 0429 005A      BLWP @>005A(R9)
  1635. 5138 0083           DATA >0083
  1636. 513A DBC5 FFFE      MOVB R5,@>FFFE(R15)
  1637. 513E 0201 0100      LI   R1,>0100
  1638. 5142 C082           MOV  R2,R2
  1639. 5144 1101           JLT  >5148
  1640. 5146 1002           JMP  >514C
  1641. 5148 A141           A    R1,R5
  1642. 514A 0601           DEC  R1
  1643. 514C 06C5           SWPB R5
  1644. 514E 04C0           CLR  R0
  1645. 5150 3C05           DIV  R5,0
  1646. 5152 0224 FFFC      AI   R4,>FFFC
  1647. 5156 C040           MOV  R0,R1
  1648. 5158 06C0           SWPB R0
  1649. 515A 0429 005A      BLWP @>005A(R9)
  1650. 515E 0083           DATA >0083
  1651. 5160 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1652. 5164 C229 0056      MOV  @>0056(R9),R8
  1653. 5168 0429 005A      BLWP @>005A(R9)
  1654. 516C 0102           DATA >0102
  1655. 516E D02F FBFE      MOVB @>FBFE(R15),R0
  1656. 5172 0260 8000      ORI  R0,>8000
  1657. 5176 0429 005A      BLWP @>005A(R9)
  1658. 517A 0103           DATA >0103
  1659. 517C DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1660. 5180 0429 005A      BLWP @>005A(R9)
  1661. 5184 8001           DATA >8001
  1662. 5186 06A0 4B6A      BL   @>4B6A
  1663. 518A 0006           DATA >0006
  1664. 518C C100           MOV  R0,R4
  1665. 518E 1309           JEQ  >51A2
  1666. 5190 11A2           JLT  >50D6
  1667. 5192 A101           A    R1,R4
  1668. 5194 0604           DEC  R4
  1669. 5196 04C3           CLR  R3
  1670. 5198 3CC1           DIV  R1,3
  1671. 519A 0603           DEC  R3
  1672. 519C 06A0 4658      BL   @>4658
  1673. 51A0 4964           DATA >4964
  1674. 51A2 0460 56A8      B    @>56A8
  1675. 51A6 0429 005A      BLWP @>005A(R9)
  1676. 51AA 8000           DATA >8000
  1677. 51AC 06A0 4658      BL   @>4658
  1678. 51B0 4E02           DATA >4E02
  1679. 51B2 0429 005A      BLWP @>005A(R9)
  1680. 51B6 8001           DATA >8001
  1681. 51B8 C104           MOV  R4,R4
  1682. 51BA 1309           JEQ  >51CE
  1683. 51BC 0280 0400      CI   R0,>0400
  1684. 51C0 1304           JEQ  >51CA
  1685. 51C2 06A0 4658      BL   @>4658
  1686. 51C6 47AA           DATA >47AA
  1687. 51C8 109A           JMP  >50C2               -- CHECK
  1688. 51CA 0460 50D6      B    @>50D6
  1689. 51CE C1C0           MOV  R0,R7
  1690. 51D0 06A0 5280      BL   @>5280
  1691. 51D4 0429 005A      BLWP @>005A(R9)
  1692. 51D8 0082           DATA >0082
  1693. 51DA D02F FBFE      MOVB @>FBFE(R15),R0
  1694. 51DE C0C0           MOV  R0,R3
  1695. 51E0 0243 0800      ANDI R3,>0800
  1696. 51E4 1306           JEQ  >51F2
  1697. 51E6 0287 0400      CI   R7,>0400
  1698. 51EA 1303           JEQ  >51F2
  1699. 51EC 06A0 4C72      BL   @>4C72
  1700. 51F0 2000           COC  R0,0
  1701. 51F2 0240 8300      ANDI R0,>8300
  1702. 51F6 2802           XOR  R2,0
  1703. 51F8 16E8           JNE  >51CA
  1704. 51FA C0E9 0054      MOV  @>0054(R9),R3
  1705. 51FE 0223 0004      AI   R3,4
  1706. 5202 0224 0005      AI   R4,5
  1707. 5206 0429 005A      BLWP @>005A(R9)
  1708. 520A 0082           DATA >0082
  1709. 520C D02F FBFE      MOVB @>FBFE(R15),R0
  1710. 5210 0429 005A      BLWP @>005A(R9)
  1711. 5214 0062           DATA >0062
  1712. 5216 D0AF FBFE      MOVB @>FBFE(R15),R2
  1713. 521A 1302           JEQ  >5220
  1714. 521C 9080           CB   R0,R2
  1715. 521E 16D5           JNE  >51CA
  1716. 5220 0429 005A      BLWP @>005A(R9)
  1717. 5224 0063           DATA >0063
  1718. 5226 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1719. 522A 0429 005A      BLWP @>005A(R9)
  1720. 522E 8001           DATA >8001
  1721. 5230 0240 0600      ANDI R0,>0600
  1722. 5234 04C2           CLR  R2
  1723. 5236 0703           SETO R3
  1724. 5238 0280 0600      CI   R0,>0600
  1725. 523C 161D           JNE  >5278
  1726. 523E C129 0056      MOV  @>0056(R9),R4
  1727. 5242 C1C4           MOV  R4,R7
  1728. 5244 0224 000E      AI   R4,>000E
  1729. 5248 0429 005A      BLWP @>005A(R9)
  1730. 524C 0082           DATA >0082
  1731. 524E D0EF FBFE      MOVB @>FBFE(R15),R3
  1732. 5252 06C3           SWPB R3
  1733. 5254 D0EF FBFE      MOVB @>FBFE(R15),R3
  1734. 5258 06C3           SWPB R3
  1735. 525A D0AF FBFE      MOVB @>FBFE(R15),R2
  1736. 525E 0603           DEC  R3
  1737. 5260 110B           JLT  >5278
  1738. 5262 0429 005A      BLWP @>005A(R9)
  1739. 5266 3000           DATA >3000
  1740. 5268 0227 0100      AI   R7,>0100
  1741. 526C 06A0 4658      BL   @>4658
  1742. 5270 492E           DATA >492E
  1743. 5272 0429 005A      BLWP @>005A(R9)
  1744. 5276 3001           DATA >3001
  1745. 5278 06A0 52AA      BL   @>52AA
  1746. 527C 0460 4676      B    @>4676
  1747. 5280 0429 005A      BLWP @>005A(R9)
  1748. 5284 8001           DATA >8001
  1749. 5286 0429 005A      BLWP @>005A(R9)
  1750. 528A 8000           DATA >8000
  1751. 528C 0202 0002      LI   R2,2
  1752. 5290 C129 0056      MOV  @>0056(R9),R4
  1753. 5294 0A40           SLA  R0,4
  1754. 5296 1703           JNC  >529E
  1755. 5298 0202 0082      LI   R2,>0082
  1756. 529C C000           MOV  R0,R0
  1757. 529E 1101           JLT  >52A2
  1758. 52A0 0642           DECT R2
  1759. 52A2 0224 000C      AI   R4,>000C
  1760. 52A6 06C2           SWPB R2
  1761. 52A8 045B           RT
  1762.  
  1763. 52AA C129 0056      MOV  @>0056(R9),R4
  1764. 52AE 0224 FFFA      AI   R4,>FFFA
  1765. 52B2 0429 005A      BLWP @>005A(R9)
  1766. 52B6 0083           DATA >0083
  1767. 52B8 DBC3 FFFE      MOVB R3,@>FFFE(R15)
  1768. 52BC 06C3           SWPB R3
  1769. 52BE DBC3 FFFE      MOVB R3,@>FFFE(R15)
  1770. 52C2 0224 0004      AI   R4,4
  1771. 52C6 0429 005A      BLWP @>005A(R9)
  1772. 52CA 0083           DATA >0083
  1773. 52CC DBC2 FFFE      MOVB R2,@>FFFE(R15)
  1774. 52D0 045B           RT
  1775.  
  1776. * Read I/O op code
  1777.  
  1778. 52D2 06A0 4658      BL   @>4658
  1779. 52D6 54D0           DATA >54D0
  1780. 52D8 0460 487A      B    @>487A
  1781. 52DC 06A0 4658      BL   @>4658
  1782. 52E0 54D0           DATA >54D0
  1783. 52E2 0240 0200      ANDI R0,>0200
  1784. 52E6 1302           JEQ  >52EC
  1785. 52E8 0460 50BA      B    @>50BA
  1786. 52EC 06A0 54FC      BL   @>54FC
  1787. 52F0 110A           JLT  >5306
  1788. 52F2 06A0 5510      BL   @>5510
  1789. 52F6 1A03           JL   >52FE
  1790. 52F8 06A0 4C72      BL   @>4C72
  1791. 52FC A000           A    R0,R0
  1792. 52FE 06A0 4658      BL   @>4658
  1793. 5302 5576           DATA >5576
  1794. 5304 1011           JMP  >5328
  1795. 5306 06A0 4658      BL   @>4658
  1796. 530A 5362           DATA >5362
  1797. 530C 10F5           JMP  >52F8        -- CHECK 
  1798. 530E 0582           INC  R2
  1799. 5310 A004           A    R4,R0
  1800. 5312 0580           INC  R0
  1801. 5314 C169 0056      MOV  @>0056(R9),R5
  1802. 5318 0645           DECT R5
  1803. 531A 06C0           SWPB R0
  1804. 531C 0429 005A      BLWP @>005A(R9)
  1805. 5320 00A3           DATA >00A3
  1806. 5322 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1807. 5326 C004           MOV  R4,R0
  1808. 5328 C129 0054      MOV  @>0054(R9),R4
  1809. 532C 0224 0005      AI   R4,5
  1810. 5330 06C0           SWPB R0
  1811. 5332 0429 005A      BLWP @>005A(R9)
  1812. 5336 0083           DATA >0083
  1813. 5338 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  1814. 533C 06C0           SWPB R0
  1815. 533E C000           MOV  R0,R0
  1816. 5340 130E           JEQ  >535E
  1817. 5342 0429 005A      BLWP @>005A(R9)
  1818. 5346 0042           DATA >0042
  1819. 5348 D0EF FBFE      MOVB @>FBFE(R15),R3
  1820. 534C 0582           INC  R2
  1821. 534E 0429 005A      BLWP @>005A(R9)
  1822. 5352 0023           DATA >0023
  1823. 5354 DBC3 FFFE      MOVB R3,@>FFFE(R15)
  1824. 5358 0581           INC  R1
  1825. 535A 0600           DEC  R0
  1826. 535C 16F2           JNE  >5342
  1827. 535E 0460 4676      B    @>4676
  1828. 5362 06A0 5650      BL   @>5650
  1829. 5366 C0C3           MOV  R3,R3
  1830. 5368 1101           JLT  >536C
  1831. 536A 1012           JMP  >5390
  1832. 536C C003           MOV  R3,R0
  1833. 536E 0580           INC  R0
  1834. 5370 8080           C    R0,R2
  1835. 5372 13F5           JEQ  >535E
  1836. 5374 06A0 4658      BL   @>4658
  1837. 5378 489A           DATA >489A
  1838. 537A C0C0           MOV  R0,R3
  1839. 537C 04C5           CLR  R5
  1840. 537E 06A0 55EE      BL   @>55EE
  1841. 5382 0227 0100      AI   R7,>0100
  1842. 5386 06A0 4658      BL   @>4658
  1843. 538A 492E           DATA >492E
  1844. 538C 04C0           CLR  R0
  1845. 538E 1004           JMP  >5398          -- CHECK
  1846. 5390 C000           MOV  R0,R0
  1847. 5392 1602           JNE  >5398
  1848. 5394 8080           C    R0,R2
  1849. 5396 13E3           JEQ  >535E
  1850. 5398 C080           MOV  R0,R2
  1851. 539A 06A0 4658      BL   @>4658
  1852. 539E 55CA           DATA >55CA
  1853. 53A0 0429 005A      BLWP @>005A(R9)
  1854. 53A4 0042           DATA >0042
  1855. 53A6 D12F FBFE      MOVB @>FBFE(R15),R4
  1856. 53AA 0984           SRL  R4,8
  1857. 53AC C000           MOV  R0,R0
  1858. 53AE 1306           JEQ  >53BC
  1859. 53B0 0284 00FF      CI   R4,>00FF
  1860. 53B4 1603           JNE  >53BC
  1861. 53B6 06A0 5650      BL   @>5650
  1862. 53BA 10D8           JMP  >536C
  1863. 53BC 0429 005A      BLWP @>005A(R9)
  1864. 53C0 0011           DATA >0011
  1865. 53C2 05CB           INCT R11
  1866. 53C4 045B           RT
  1867.  
  1868. 53C6 06A0 4658      BL   @>4658
  1869. 53CA 54D0           DATA >54D0
  1870. 53CC 0240 0600      ANDI R0,>0600
  1871. 53D0 0280 0400      CI   R0,>0400
  1872. 53D4 1389           JEQ  >52E8
  1873. 53D6 06A0 54FC      BL   @>54FC
  1874. 53DA 1113           JLT  >5402
  1875. 53DC 06A0 5510      BL   @>5510
  1876. 53E0 1A0C           JL   >53FA
  1877. 53E2 0429 005A      BLWP @>005A(R9)
  1878. 53E6 D800           DATA >D800
  1879. 53E8 C0C0           MOV  R0,R3
  1880. 53EA 06A0 4658      BL   @>4658
  1881. 53EE 4964           DATA >4964
  1882. 53F0 0429 005A      BLWP @>005A(R9)
  1883. 53F4 D801           DATA >D801
  1884. 53F6 06A0 561A      BL   @>561A
  1885. 53FA 06A0 4658      BL   @>4658
  1886. 53FE 5576           DATA >5576
  1887. 5400 1053           JMP  >54A8
  1888. 5402 06A0 5650      BL   @>5650
  1889. 5406 C0C3           MOV  R3,R3
  1890. 5408 1101           JLT  >540C
  1891. 540A 100B           JMP  >5422
  1892. 540C 0429 005A      BLWP @>005A(R9)
  1893. 5410 3000           DATA >3000
  1894. 5412 06A0 4658      BL   @>4658
  1895. 5416 489A           DATA >489A
  1896. 5418 0429 005A      BLWP @>005A(R9)
  1897. 541C 3001           DATA >3001
  1898. 541E 0583           INC  R3
  1899. 5420 04C0           CLR  R0
  1900. 5422 8083           C    R3,R2
  1901. 5424 1609           JNE  >5438
  1902. 5426 0429 005A      BLWP @>005A(R9)
  1903. 542A 9000           DATA >9000
  1904. 542C 06A0 4658      BL   @>4658
  1905. 5430 4964           DATA >4964
  1906. 5432 0429 005A      BLWP @>005A(R9)
  1907. 5436 9001           DATA >9001
  1908. 5438 C169 0054      MOV  @>0054(R9),R5
  1909. 543C 0225 0005      AI   R5,5
  1910. 5440 0429 005A      BLWP @>005A(R9)
  1911. 5444 00A2           DATA >00A2
  1912. 5446 D12F FBFE      MOVB @>FBFE(R15),R4
  1913. 544A 0984           SRL  R4,8
  1914. 544C C144           MOV  R4,R5
  1915. 544E A140           A    R0,R5
  1916. 5450 0585           INC  R5
  1917. 5452 0285 00FF      CI   R5,>00FF
  1918. 5456 1BDA           JH   >540C
  1919. 5458 0702           SETO R2
  1920. 545A C069 0056      MOV  @>0056(R9),R1
  1921. 545E A045           A    R5,R1
  1922. 5460 0221 0100      AI   R1,>0100
  1923. 5464 0429 005A      BLWP @>005A(R9)
  1924. 5468 0023           DATA >0023
  1925. 546A DBC2 FFFE      MOVB R2,@>FFFE(R15)
  1926. 546E 0429 005A      BLWP @>005A(R9)
  1927. 5472 8000           DATA >8000
  1928. 5474 C003           MOV  R3,R0
  1929. 5476 06A0 55EE      BL   @>55EE
  1930. 547A 0221 0012      AI   R1,>0012
  1931. 547E 0429 005A      BLWP @>005A(R9)
  1932. 5482 0023           DATA >0023
  1933. 5484 DBC5 FFFE      MOVB R5,@>FFFE(R15)
  1934. 5488 06A0 561A      BL   @>561A
  1935. 548C 0429 005A      BLWP @>005A(R9)
  1936. 5490 2001           DATA >2001
  1937. 5492 C004           MOV  R4,R0
  1938. 5494 06A0 4658      BL   @>4658
  1939. 5498 55CA           DATA >55CA
  1940. 549A 06C4           SWPB R4
  1941. 549C 0429 005A      BLWP @>005A(R9)
  1942. 54A0 0043           DATA >0043
  1943. 54A2 DBC4 FFFE      MOVB R4,@>FFFE(R15)
  1944. 54A6 0582           INC  R2
  1945. 54A8 C0C2           MOV  R2,R3
  1946. 54AA C081           MOV  R1,R2
  1947. 54AC C043           MOV  R3,R1
  1948. 54AE C129 0056      MOV  @>0056(R9),R4
  1949. 54B2 0604           DEC  R4
  1950. 54B4 0429 005A      BLWP @>005A(R9)
  1951. 54B8 0082           DATA >0082
  1952. 54BA D16F FBFE      MOVB @>FBFE(R15),R5
  1953. 54BE 0265 8000      ORI  R5,>8000
  1954. 54C2 0429 005A      BLWP @>005A(R9)
  1955. 54C6 0083           DATA >0083
  1956. 54C8 DBC5 FFFE      MOVB R5,@>FFFE(R15)
  1957. 54CC 0460 533E      B    @>533E
  1958. 54D0 06A0 4658      BL   @>4658
  1959. 54D4 4DA4           DATA >4DA4
  1960. 54D6 C104           MOV  R4,R4
  1961. 54D8 1303           JEQ  >54E0
  1962. 54DA 06A0 4C72      BL   @>4C72
  1963. 54DE E000           DATA >E000
  1964. 54E0 0581           INC  R1
  1965. 54E2 CA41 0056      MOV  R1,@>0056(R9)
  1966. 54E6 C129 0054      MOV  @>0054(R9),R4
  1967. 54EA 0584           INC  R4
  1968. 54EC 04C0           CLR  R0
  1969. 54EE 0429 005A      BLWP @>005A(R9)
  1970. 54F2 0082           DATA >0082
  1971. 54F4 D02F FBFE      MOVB @>FBFE(R15),R0
  1972. 54F8 0460 4676      B    @>4676
  1973. 54FC C129 0056      MOV  @>0056(R9),R4
  1974. 5500 0224 000C      AI   R4,>000C
  1975. 5504 0429 005A      BLWP @>005A(R9)
  1976. 5508 0082           DATA >0082
  1977. 550A D02F FBFE      MOVB @>FBFE(R15),R0
  1978. 550E 045B           RT
  1979.  
  1980. 5510 D16F FBFE      MOVB @>FBFE(R15),R5
  1981. 5514 0985           SRL  R5,8
  1982. 5516 1602           JNE  >551C
  1983. 5518 0205 0100      LI   R5,>0100
  1984. 551C C0E9 0054      MOV  @>0054(R9),R3
  1985. 5520 0223 0006      AI   R3,6
  1986. 5524 0429 005A      BLWP @>005A(R9)
  1987. 5528 0062           DATA >0062
  1988. 552A D06F FBFE      MOVB @>FBFE(R15),R1
  1989. 552E 06C1           SWPB R1
  1990. 5530 D06F FBFE      MOVB @>FBFE(R15),R1
  1991. 5534 06C1           SWPB R1
  1992. 5536 C001           MOV  R1,R0
  1993. 5538 1101           JLT  >553C
  1994. 553A 1003           JMP  >5542
  1995. 553C 06A0 4C72      BL   @>4C72
  1996. 5540 8000           C    R0,R0
  1997. 5542 0580           INC  R0
  1998. 5544 0429 005A      BLWP @>005A(R9)
  1999. 5548 0063           DATA >0063
  2000. 554A DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2001. 554E 06C0           SWPB R0
  2002. 5550 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2003. 5554 04C0           CLR  R0
  2004. 5556 C0C1           MOV  R1,R3
  2005. 5558 3C05           DIV  R5,0
  2006. 555A C0A9 0056      MOV  @>0056(R9),R2
  2007. 555E 0222 0012      AI   R2,>0012
  2008. 5562 0429 005A      BLWP @>005A(R9)
  2009. 5566 0042           DATA >0042
  2010. 5568 D0AF FBFE      MOVB @>FBFE(R15),R2
  2011. 556C 06C2           SWPB R2
  2012. 556E D0AF FBFE      MOVB @>FBFE(R15),R2
  2013. 5572 8083           C    R3,R2
  2014. 5574 045B           RT
  2015.  
  2016. 5576 0429 005A      BLWP @>005A(R9)
  2017. 557A 4000           DATA >4000
  2018. 557C 0224 FFEE      AI   R4,>FFEE
  2019. 5580 0429 005A      BLWP @>005A(R9)
  2020. 5584 0082           DATA >0082
  2021. 5586 D16F FBFE      MOVB @>FBFE(R15),R5
  2022. 558A 06C5           SWPB R5
  2023. 558C D16F FBFE      MOVB @>FBFE(R15),R5
  2024. 5590 0B85           SRC  R5,8
  2025. 5592 1105           JLT  >559E
  2026. 5594 8005           C    R5,R0
  2027. 5596 130B           JEQ  >55AE
  2028. 5598 06A0 4658      BL   @>4658
  2029. 559C 489A           DATA >489A
  2030. 559E C0C0           MOV  R0,R3
  2031. 55A0 06A0 55EE      BL   @>55EE
  2032. 55A4 0227 0100      AI   R7,>0100
  2033. 55A8 06A0 4658      BL   @>4658
  2034. 55AC 492E           DATA >492E
  2035. 55AE 0429 005A      BLWP @>005A(R9)
  2036. 55B2 4001           DATA >4001
  2037. 55B4 C0E9 0056      MOV  @>0056(R9),R3
  2038. 55B8 0223 0011      AI   R3,>0011
  2039. 55BC 0429 005A      BLWP @>005A(R9)
  2040. 55C0 0062           DATA >0062
  2041. 55C2 D02F FBFE      MOVB @>FBFE(R15),R0
  2042. 55C6 0980           SRL  R0,8
  2043. 55C8 3840           MPY  R0,1
  2044. 55CA A0A9 0056      A    @>0056(R9),R2
  2045. 55CE 0222 0100      AI   R2,>0100
  2046. 55D2 C0E9 0054      MOV  @>0054(R9),R3
  2047. 55D6 05C3           INCT R3
  2048. 55D8 0429 005A      BLWP @>005A(R9)
  2049. 55DC 0062           DATA >0062
  2050. 55DE D06F FBFE      MOVB @>FBFE(R15),R1
  2051. 55E2 06C1           SWPB R1
  2052. 55E4 D06F FBFE      MOVB @>FBFE(R15),R1
  2053. 55E8 06C1           SWPB R1
  2054. 55EA 0460 4676      B    @>4676
  2055. 55EE C1E9 0056      MOV  @>0056(R9),R7
  2056. 55F2 C047           MOV  R7,R1
  2057. 55F4 0221 FFFA      AI   R1,>FFFA
  2058. 55F8 0429 005A      BLWP @>005A(R9)
  2059. 55FC 0023           DATA >0023
  2060. 55FE DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2061. 5602 06C0           SWPB R0
  2062. 5604 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2063. 5608 0221 0004      AI   R1,4
  2064. 560C 06C5           SWPB R5
  2065. 560E 0429 005A      BLWP @>005A(R9)
  2066. 5612 0023           DATA >0023
  2067. 5614 DBC5 FFFE      MOVB R5,@>FFFE(R15)
  2068. 5618 045B           RT
  2069.  
  2070. 561A C0A9 0056      MOV  @>0056(R9),R2
  2071. 561E 0429 005A      BLWP @>005A(R9)
  2072. 5622 0042           DATA >0042
  2073. 5624 D2AF FBFE      MOVB @>FBFE(R15),R10
  2074. 5628 026A 8000      ORI  R10,>8000
  2075. 562C 0429 005A      BLWP @>005A(R9)
  2076. 5630 0043           DATA >0043
  2077. 5632 DBCA FFFE      MOVB R10,@>FFFE(R15)
  2078. 5636 0222 0012      AI   R2,>0012
  2079. 563A 0583           INC  R3
  2080. 563C 0429 005A      BLWP @>005A(R9)
  2081. 5640 0043           DATA >0043
  2082. 5642 06C3           SWPB R3
  2083. 5644 DBC3 FFFE      MOVB R3,@>FFFE(R15)
  2084. 5648 06C3           SWPB R3
  2085. 564A DBC3 FFFE      MOVB R3,@>FFFE(R15)
  2086. 564E 045B           RT
  2087.  
  2088. 5650 C229 0056      MOV  @>0056(R9),R8
  2089. 5654 C108           MOV  R8,R4
  2090. 5656 0224 0100      AI   R4,>0100
  2091. 565A 0648           DECT R8
  2092. 565C 0429 005A      BLWP @>005A(R9)
  2093. 5660 0102           DATA >0102
  2094. 5662 D0AF FBFE      MOVB @>FBFE(R15),R2
  2095. 5666 0982           SRL  R2,8
  2096. 5668 C28B           MOV  R11,R10
  2097. 566A 06A0 4B74      BL   @>4B74
  2098. 566E FFFC           DATA >FFFC
  2099. 5670 C0C0           MOV  R0,R3
  2100. 5672 C2CA           MOV  R10,R11
  2101. 5674 C002           MOV  R2,R0
  2102. 5676 0460 555A      B    @>555A
  2103. 567A 06A0 4658      BL   @>4658
  2104. 567E 54D0           DATA >54D0
  2105. 5680 0429 005A      BLWP @>005A(R9)
  2106. 5684 8000           DATA >8000
  2107. 5686 0240 0600      ANDI R0,>0600
  2108. 568A 1305           JEQ  >5696
  2109. 568C 0280 0400      CI   R0,>0400
  2110. 5690 1302           JEQ  >5696
  2111. 5692 0460 50BA      B    @>50BA
  2112. 5696 06A0 4658      BL   @>4658
  2113. 569A 489A           DATA >489A
  2114. 569C 0429 005A      BLWP @>005A(R9)
  2115. 56A0 8001           DATA >8001
  2116. 56A2 0240 0100      ANDI R0,>0100
  2117. 56A6 1611           JNE  >56CA
  2118. 56A8 04C2           CLR  R2
  2119. 56AA 0703           SETO R3
  2120. 56AC 06A0 52AA      BL   @>52AA
  2121. 56B0 04C0           CLR  R0
  2122. 56B2 C229 0054      MOV  @>0054(R9),R8
  2123. 56B6 0228 0006      AI   R8,6
  2124. 56BA 0429 005A      BLWP @>005A(R9)
  2125. 56BE 0103           DATA >0103
  2126. 56C0 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2127. 56C4 1000           NOP
  2128. 56C6 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2129. 56CA 0460 4676      B    @>4676
  2130. 56CE 06A0 4658      BL   @>4658
  2131. 56D2 4E02           DATA >4E02
  2132. 56D4 C104           MOV  R4,R4
  2133. 56D6 1303           JEQ  >56DE
  2134. 56D8 06A0 4C72      BL   @>4C72
  2135. 56DC E000           DATA >E000
  2136. 56DE 06A0 4B70      BL   @>4B70
  2137. 56E2 000C           DATA >000C
  2138. 56E4 0240 0100      ANDI R0,>0100
  2139. 56E8 13F7           JEQ  >56D8
  2140. 56EA 05C8           INCT R8
  2141. 56EC 0429 005A      BLWP @>005A(R9)
  2142. 56F0 0102           DATA >0102
  2143. 56F2 D06F FBFE      MOVB @>FBFE(R15),R1
  2144. 56F6 06C1           SWPB R1
  2145. 56F8 D06F FBFE      MOVB @>FBFE(R15),R1
  2146. 56FC 0B81           SRC  R1,8
  2147. 56FE 13EC           JEQ  >56D8
  2148. 5700 06A0 57C0      BL   @>57C0
  2149. 5704 05C8           INCT R8
  2150. 5706 04C4           CLR  R4
  2151. 5708 0429 005A      BLWP @>005A(R9)
  2152. 570C 0102           DATA >0102
  2153. 570E D12F FBFE      MOVB @>FBFE(R15),R4
  2154. 5712 8081           C    R1,R2
  2155. 5714 1BE1           JH   >56D8
  2156. 5716 1602           JNE  >571C
  2157. 5718 8100           C    R0,R4
  2158. 571A 1ADE           JL   >56D8
  2159. 571C 04C3           CLR  R3
  2160. 571E 06C4           SWPB R4
  2161. 5720 0601           DEC  R1
  2162. 5722 130D           JEQ  >573E
  2163. 5724 0429 005A      BLWP @>005A(R9)
  2164. 5728 D900           DATA >D900
  2165. 572A 06A0 4658      BL   @>4658
  2166. 572E 492E           DATA >492E
  2167. 5730 0429 005A      BLWP @>005A(R9)
  2168. 5734 D901           DATA >D901
  2169. 5736 0583           INC  R3
  2170. 5738 0227 0100      AI   R7,>0100
  2171. 573C 10F1           JMP  >5720
  2172. 573E C104           MOV  R4,R4
  2173. 5740 1604           JNE  >574A
  2174. 5742 06A0 4658      BL   @>4658
  2175. 5746 492E           DATA >492E
  2176. 5748 1011           JMP  >576C        -- CHECK
  2177. 574A C147           MOV  R7,R5
  2178. 574C C1E9 0056      MOV  @>0056(R9),R7
  2179. 5750 0227 0100      AI   R7,>0100
  2180. 5754 0429 005A      BLWP @>005A(R9)
  2181. 5758 0D00           DATA >0D00
  2182. 575A 06A0 4658      BL   @>4658
  2183. 575E 492E           DATA >492E
  2184. 5760 0429 005A      BLWP @>005A(R9)
  2185. 5764 E001           DATA >E001
  2186. 5766 06A0 4658      BL   @>4658
  2187. 576A 533E           DATA >533E
  2188. 576C 0460 487A      B    @>487A
  2189. 5770 06A0 4658      BL   @>4658
  2190. 5774 4798           DATA >4798
  2191. 5776 06A0 57C0      BL   @>57C0
  2192. 577A 04C3           CLR  R3
  2193. 577C 0429 005A      BLWP @>005A(R9)
  2194. 5780 B100           DATA >B100
  2195. 5782 06A0 4658      BL   @>4658
  2196. 5786 494E           DATA >494E
  2197. 5788 0429 005A      BLWP @>005A(R9)
  2198. 578C B101           DATA >B101
  2199. 578E 0583           INC  R3
  2200. 5790 0227 0100      AI   R7,>0100
  2201. 5794 0602           DEC  R2
  2202. 5796 16F2           JNE  >577C
  2203. 5798 C069 0056      MOV  @>0056(R9),R1
  2204. 579C 0221 000C      AI   R1,>000C
  2205. 57A0 0202 0100      LI   R2,>0100
  2206. 57A4 0429 005A      BLWP @>005A(R9)
  2207. 57A8 0023           DATA >0023
  2208. 57AA DBC2 FFFE      MOVB R2,@>FFFE(R15)
  2209. 57AE 0221 0004      AI   R1,4
  2210. 57B2 0429 005A      BLWP @>005A(R9)
  2211. 57B6 0023           DATA >0023
  2212. 57B8 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2213. 57BC 0460 487A      B    @>487A
  2214. 57C0 C029 0054      MOV  @>0054(R9),R0
  2215. 57C4 05C0           INCT R0
  2216. 57C6 0429 005A      BLWP @>005A(R9)
  2217. 57CA 0002           DATA >0002
  2218. 57CC D1EF FBFE      MOVB @>FBFE(R15),R7
  2219. 57D0 06C7           SWPB R7
  2220. 57D2 D1EF FBFE      MOVB @>FBFE(R15),R7
  2221. 57D6 06C7           SWPB R7
  2222. 57D8 0220 0004      AI   R0,4
  2223. 57DC 0429 005A      BLWP @>005A(R9)
  2224. 57E0 0002           DATA >0002
  2225. 57E2 D0AF FBFE      MOVB @>FBFE(R15),R2
  2226. 57E6 0982           SRL  R2,8
  2227. 57E8 04C0           CLR  R0
  2228. 57EA D02F FBFE      MOVB @>FBFE(R15),R0
  2229. 57EE 1301           JEQ  >57F2
  2230. 57F0 0582           INC  R2
  2231. 57F2 045B           RT
  2232.  
  2233. 57F4 06A0 4658      BL   @>4658
  2234. 57F8 4DA4           DATA >4DA4
  2235. 57FA C104           MOV  R4,R4
  2236. 57FC 1310           JEQ  >581E
  2237. 57FE 06A0 4658      BL   @>4658
  2238. 5802 4E0C           DATA >4E0C
  2239. 5804 0200 8000      LI   R0,>8000
  2240. 5808 C104           MOV  R4,R4
  2241. 580A 1649           JNE  >589E
  2242. 580C C069 0056      MOV  @>0056(R9),R1
  2243. 5810 04C2           CLR  R2
  2244. 5812 0429 005A      BLWP @>005A(R9)
  2245. 5816 0023           DATA >0023
  2246. 5818 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  2247. 581C 1036           JMP  >588A
  2248. 581E 06A0 4658      BL   @>4658
  2249. 5822 54E0           DATA >54E0
  2250. 5824 06A0 54FC      BL   @>54FC
  2251. 5828 1101           JLT  >582C
  2252. 582A 1006           JMP  >5838
  2253. 582C 06A0 4658      BL   @>4658
  2254. 5830 5362           DATA >5362
  2255. 5832 1013           JMP  >585A        -- CHECK
  2256. 5834 04C2           CLR  R2
  2257. 5836 1029           JMP  >588A
  2258. 5838 D16F FBFE      MOVB @>FBFE(R15),R5
  2259. 583C 0985           SRL  R5,8
  2260. 583E 1602           JNE  >5844
  2261. 5840 0205 0100      LI   R5,>0100
  2262. 5844 06A0 4B6A      BL   @>4B6A
  2263. 5848 0006           DATA >0006
  2264. 584A C0C0           MOV  R0,R3
  2265. 584C 111C           JLT  >5886
  2266. 584E 06A0 555A      BL   @>555A
  2267. 5852 04C2           CLR  R2
  2268. 5854 1A1A           JL   >588A
  2269. 5856 3C85           DIV  R5,2
  2270. 5858 C0C2           MOV  R2,R3
  2271. 585A 06A0 4B70      BL   @>4B70
  2272. 585E 000E           DATA >000E
  2273. 5860 0583           INC  R3
  2274. 5862 0202 0100      LI   R2,>0100
  2275. 5866 60C0           S    R0,R3
  2276. 5868 1501           JGT  >586C
  2277. 586A 100F           JMP  >588A
  2278. 586C 06A0 4658      BL   @>4658
  2279. 5870 4CD2           DATA >4CD2
  2280. 5872 C103           MOV  R3,R4
  2281. 5874 C205           MOV  R5,R8
  2282. 5876 0228 000A      AI   R8,10
  2283. 587A 06A0 5A68      BL   @>5A68
  2284. 587E 0202 0100      LI   R2,>0100
  2285. 5882 8103           C    R3,R4
  2286. 5884 1402           JHE  >588A
  2287. 5886 0202 0200      LI   R2,>0200
  2288. 588A 06A0 4B70      BL   @>4B70
  2289. 588E 000C           DATA >000C
  2290. 5890 0240 8F00      ANDI R0,>8F00
  2291. 5894 1502           JGT  >589A
  2292. 5896 0260 0080      ORI  R0,>0080
  2293. 589A 0A30           SLA  R0,3
  2294. 589C F002           SOCB R2,R0
  2295. 589E C069 0054      MOV  @>0054(R9),R1
  2296. 58A2 0221 0008      AI   R1,8
  2297. 58A6 0429 005A      BLWP @>005A(R9)
  2298. 58AA 0023           DATA >0023
  2299. 58AC DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2300. 58B0 0460 4676      B    @>4676
  2301. 58B4 D02F FBFE      MOVB @>FBFE(R15),R0
  2302. 58B8 0240 1E00      ANDI R0,>1E00
  2303. 58BC 0280 0C00      CI   R0,>0C00
  2304. 58C0 1303           JEQ  >58C8
  2305. 58C2 06A0 4C9E      BL   @>4C9E
  2306. 58C6 4000           DATA >4000
  2307. 58C8 06A0 4B6A      BL   @>4B6A
  2308. 58CC 0004           DATA >0004
  2309. 58CE 0980           SRL  R0,8
  2310. 58D0 1303           JEQ  >58D8
  2311. 58D2 0280 0026      CI   R0,>0026
  2312. 58D6 16F5           JNE  >58C2
  2313. 58D8 0200 2600      LI   R0,>2600
  2314. 58DC 0429 005A      BLWP @>005A(R9)
  2315. 58E0 0103           DATA >0103
  2316. 58E2 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2317. 58E6 04C7           CLR  R7
  2318. 58E8 06A0 5AA2      BL   @>5AA2
  2319. 58EC 58F4           DATA >58F4
  2320. 58EE 06A0 4C72      BL   @>4C72
  2321. 58F2 E000           DATA >E000
  2322. 58F4 C1C7           MOV  R7,R7
  2323. 58F6 1603           JNE  >58FE
  2324. 58F8 06A0 4C9E      BL   @>4C9E
  2325. 58FC 8000           C    R0,R0
  2326. 58FE 0429 005A      BLWP @>005A(R9)
  2327. 5902 00E3           DATA >00E3
  2328. 5904 DBC3 FFFE      MOVB R3,@>FFFE(R15)
  2329. 5908 06C3           SWPB R3
  2330. 590A DBC3 FFFE      MOVB R3,@>FFFE(R15)
  2331. 590E 0460 4676      B    @>4676
  2332. 5912 06A0 5AA2      BL   @>5AA2
  2333. 5916 58EE           DATA >58EE
  2334. 5918 04C0           CLR  R0
  2335. 591A 0429 005A      BLWP @>005A(R9)
  2336. 591E 0103           DATA >0103
  2337. 5920 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2338. 5924 0460 4676      B    @>4676
  2339.  
  2340. **
  2341. *
  2342. * Here we are reading from the directory
  2343. *
  2344. **
  2345.  
  2346. 5928 06A0 5AA2      BL   @>5AA2
  2347. 592C 58EE           DATA >58EE
  2348. 592E 0588           INC  R8
  2349. 5930 C148           MOV  R8,R5
  2350. 5932 06A0 4B6A      BL   @>4B6A
  2351. 5936 0006           DATA >0006
  2352. 5938 C080           MOV  R0,R2
  2353. 593A 0582           INC  R2
  2354. 593C 0429 005A      BLWP @>005A(R9)
  2355. 5940 0103           DATA >0103
  2356. 5942 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  2357. 5946 06C2           SWPB R2
  2358. 5948 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  2359. 594C 0A10           SLA  R0,1
  2360. 594E D000           MOVB R0,R0
  2361. 5950 1303           JEQ  >5958
  2362. 5952 06A0 4C72      BL   @>4C72
  2363. 5956 A000           A    R0,R0
  2364. 5958 0702           SETO R2
  2365. 595A C100           MOV  R0,R4
  2366. 595C 133B           JEQ  >59D4
  2367. 595E 0204 0001      LI   R4,1
  2368. 5962 06A0 4658      BL   @>4658
  2369. 5966 4D4E           DATA >4D4E
  2370. 5968 C205           MOV  R5,R8
  2371. 596A 0225 00FF      AI   R5,>00FF
  2372. 596E 0640           DECT R0
  2373. 5970 A200           A    R0,R8
  2374. 5972 06A0 4B76      BL   @>4B76
  2375. 5976 C100           MOV  R0,R4
  2376. 5978 1328           JEQ  >59CA
  2377. 597A 06A0 4658      BL   @>4658
  2378. 597E 4D4E           DATA >4D4E
  2379. 5980 06A0 4B70      BL   @>4B70
  2380. 5984 010E           DATA >010E
  2381. 5986 C180           MOV  R0,R6
  2382. 5988 0586           INC  R6
  2383. 598A D0EF FBFE      MOVB @>FBFE(R15),R3
  2384. 598E 0202 0A00      LI   R2,>0A00
  2385. 5992 D0EF FBFE      MOVB @>FBFE(R15),R3
  2386. 5996 0983           SRL  R3,8
  2387. 5998 0648           DECT R8
  2388. 599A 0429 005A      BLWP @>005A(R9)
  2389. 599E 0102           DATA >0102
  2390. 59A0 D02F FBFE      MOVB @>FBFE(R15),R0
  2391. 59A4 C1C0           MOV  R0,R7
  2392. 59A6 0240 0800      ANDI R0,>0800
  2393. 59AA 51C0           SZCB R0,R7
  2394. 59AC 0987           SRL  R7,8
  2395. 59AE 0587           INC  R7
  2396. 59B0 0287 0002      CI   R7,2
  2397. 59B4 1602           JNE  >59BA
  2398. 59B6 0227 0003      AI   R7,3
  2399. 59BA 0287 0008      CI   R7,8
  2400. 59BE 1A02           JL   >59C4
  2401. 59C0 0227 FF81      AI   R7,>FF81
  2402. 59C4 0A40           SLA  R0,4
  2403. 59C6 E1C0           SOC  R0,R7
  2404. 59C8 1004           JMP  >59D2
  2405. 59CA 04C2           CLR  R2
  2406. 59CC 04C6           CLR  R6
  2407. 59CE 04C3           CLR  R3
  2408. 59D0 04C7           CLR  R7
  2409. 59D2 100F           JMP  >59F2
  2410. 59D4 0225 00FF      AI   R5,>00FF
  2411. 59D8 06A0 4658      BL   @>4658
  2412. 59DC 4D4E           DATA >4D4E
  2413. 59DE 06A0 4B70      BL   @>4B70
  2414. 59E2 010A           DATA >010A
  2415. 59E4 C180           MOV  R0,R6
  2416. 59E6 0646           DECT R6
  2417. 59E8 06A0 5A68      BL   @>5A68
  2418. 59EC 04C7           CLR  R7
  2419. 59EE 0202 0A00      LI   R2,>0A00
  2420. 59F2 06A0 4B6A      BL   @>4B6A
  2421. 59F6 0002           DATA >0002
  2422. 59F8 C200           MOV  R0,R8
  2423. 59FA 0588           INC  R8
  2424. 59FC 0982           SRL  R2,8
  2425. 59FE 1316           JEQ  >5A2C
  2426. 5A00 04C1           CLR  R1
  2427. 5A02 0429 005A      BLWP @>005A(R9)
  2428. 5A06 00A2           DATA >00A2
  2429. 5A08 D06F FBFE      MOVB @>FBFE(R15),R1
  2430. 5A0C 0281 2000      CI   R1,>2000
  2431. 5A10 1309           JEQ  >5A24
  2432. 5A12 0429 005A      BLWP @>005A(R9)
  2433. 5A16 0103           DATA >0103
  2434. 5A18 DBC1 FFFE      MOVB R1,@>FFFE(R15)
  2435. 5A1C 0585           INC  R5
  2436. 5A1E 0588           INC  R8
  2437. 5A20 0602           DEC  R2
  2438. 5A22 16EF           JNE  >5A02
  2439. 5A24 0502           NEG  R2
  2440. 5A26 0222 000A      AI   R2,10
  2441. 5A2A 06C2           SWPB R2
  2442. 5A2C 0429 005A      BLWP @>005A(R9)
  2443. 5A30 0003           DATA >0003
  2444. 5A32 DBC2 FFFE      MOVB R2,@>FFFE(R15)
  2445. 5A36 0429 005A      BLWP @>005A(R9)
  2446. 5A3A 0103           DATA >0103
  2447. 5A3C C047           MOV  R7,R1
  2448. 5A3E 06A0 5AE6      BL   @>5AE6
  2449. 5A42 C046           MOV  R6,R1
  2450. 5A44 06A0 5AE6      BL   @>5AE6
  2451. 5A48 C043           MOV  R3,R1
  2452. 5A4A 06A0 5AE6      BL   @>5AE6
  2453. 5A4E C229 0054      MOV  @>0054(R9),R8
  2454. 5A52 0228 0005      AI   R8,5
  2455. 5A56 0200 2600      LI   R0,>2600
  2456. 5A5A 0429 005A      BLWP @>005A(R9)
  2457. 5A5E 0103           DATA >0103
  2458. 5A60 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2459. 5A64 0460 4676      B    @>4676
  2460. 5A68 0228 002E      AI   R8,>002E
  2461. 5A6C 0202 00C8      LI   R2,>00C8
  2462. 5A70 04C3           CLR  R3
  2463. 5A72 0429 005A      BLWP @>005A(R9)
  2464. 5A76 0102           DATA >0102
  2465. 5A78 D06F FBFE      MOVB @>FBFE(R15),R1
  2466. 5A7C 0221 0100      AI   R1,>0100
  2467. 5A80 0981           SRL  R1,8
  2468. 5A82 130C           JEQ  >5A9C
  2469. 5A84 0601           DEC  R1
  2470. 5A86 1603           JNE  >5A8E
  2471. 5A88 0223 0008      AI   R3,8
  2472. 5A8C 1007           JMP  >5A9C
  2473. 5A8E 0200 0008      LI   R0,8
  2474. 5A92 0911           SRL  R1,1
  2475. 5A94 1801           JOC  >5A98
  2476. 5A96 0583           INC  R3
  2477. 5A98 0600           DEC  R0
  2478. 5A9A 16FB           JNE  >5A92
  2479. 5A9C 0602           DEC  R2
  2480. 5A9E 16EC           JNE  >5A78
  2481. 5AA0 045B           RT
  2482.  
  2483. 5AA2 C2BB           MOV  *R11+,R10
  2484. 5AA4 C14B           MOV  R11,R5
  2485. 5AA6 C229 0056      MOV  @>0056(R9),R8
  2486. 5AAA 0228 0003      AI   R8,3
  2487. 5AAE 0429 005A      BLWP @>005A(R9)
  2488. 5AB2 0102           DATA >0102
  2489. 5AB4 D0AF FBFE      MOVB @>FBFE(R15),R2
  2490. 5AB8 0882           SRA  R2,8
  2491. 5ABA 0228 0006      AI   R8,6
  2492. 5ABE 0203 0020      LI   R3,>0020
  2493. 5AC2 D0C6           MOVB R6,R3
  2494. 5AC4 06A0 4B76      BL   @>4B76
  2495. 5AC8 8003           C    R3,R0
  2496. 5ACA 1309           JEQ  >5ADE
  2497. 5ACC 0240 00FF      ANDI R0,>00FF
  2498. 5AD0 1601           JNE  >5AD4
  2499. 5AD2 C1C8           MOV  R8,R7
  2500. 5AD4 0228 0206      AI   R8,>0206
  2501. 5AD8 0602           DEC  R2
  2502. 5ADA 16F4           JNE  >5AC4
  2503. 5ADC 045A           B    *R10
  2504. 5ADE 0588           INC  R8
  2505. 5AE0 CA48 0056      MOV  R8,@>0056(R9)
  2506. 5AE4 0455           B    *R5
  2507. 5AE6 0202 0800      LI   R2,>0800
  2508. 5AEA DBC2 FFFE      MOVB R2,@>FFFE(R15)
  2509. 5AEE C141           MOV  R1,R5
  2510. 5AF0 0241 7FFF      ANDI R1,>7FFF
  2511. 5AF4 0281 0064      CI   R1,>0064
  2512. 5AF8 1A07           JL   >5B08
  2513. 5AFA 04C0           CLR  R0
  2514. 5AFC 0204 0064      LI   R4,>0064
  2515. 5B00 3C04           DIV  R4,0
  2516. 5B02 0260 4100      ORI  R0,>4100
  2517. 5B06 1005           JMP  >5B12
  2518. 5B08 C001           MOV  R1,R0
  2519. 5B0A 1302           JEQ  >5B10
  2520. 5B0C 0260 4000      ORI  R0,>4000
  2521. 5B10 04C1           CLR  R1
  2522. 5B12 C145           MOV  R5,R5
  2523. 5B14 1101           JLT  >5B18
  2524. 5B16 1001           JMP  >5B1A
  2525. 5B18 0500           NEG  R0
  2526. 5B1A DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2527. 5B1E 06C0           SWPB R0
  2528. 5B20 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2529. 5B24 06C1           SWPB R1
  2530. 5B26 DBC1 FFFE      MOVB R1,@>FFFE(R15)
  2531. 5B2A 0202 0005      LI   R2,5
  2532. 5B2E DBC2 FFFE      MOVB R2,@>FFFE(R15)
  2533. 5B32 0602           DEC  R2
  2534. 5B34 16FC           JNE  >5B2E
  2535. 5B36 045B           RT
  2536.  
  2537. *************************************************************************
  2538. *                                    *
  2539. *  Sector READ / WRITE                            *
  2540. *                                    *
  2541. *************************************************************************
  2542.  
  2543. 5B38 C1CB           MOV  R11,R7
  2544. 5B3A 06A0 4724      BL   @>4724
  2545. 5B3E CA69 0050 004A MOV  @>0050(R9),@>004A(R9)
  2546. 5B44 0460 40E8      B    @>40E8
  2547.  
  2548. *************************************************************************
  2549. *                                    *
  2550. *  Disk Formatting                            *
  2551. *                                    *
  2552. *************************************************************************
  2553.  
  2554. 5B48 C1CB           MOV  R11,R7
  2555. 5B4A 06A0 4724      BL   @>4724
  2556. 5B4E 0460 42AC      B    @>42AC
  2557.  
  2558. *************************************************************************
  2559. *                                    *
  2560. *  Modify file Protection                        *
  2561. *                                    *
  2562. *************************************************************************
  2563.  
  2564. 5B52 C1CB           MOV  R11,R7
  2565. 5B54 06A0 4724      BL   @>4724
  2566. 5B58 D029 004D      MOVB @>004D(R9),R0
  2567. 5B5C 0240 0800      ANDI R0,>0800
  2568. 5B60 0429 005A      BLWP @>005A(R9)
  2569. 5B64 8000           DATA >8000
  2570. 5B66 C029 004E      MOV  @>004E(R9),R0
  2571. 5B6A 06A0 4658      BL   @>4658
  2572. 5B6E 5C54           DATA >5C54
  2573. 5B70 0429 005A      BLWP @>005A(R9)
  2574. 5B74 2001           DATA >2001
  2575. 5B76 06A0 4B70      BL   @>4B70
  2576. 5B7A 000C           DATA >000C
  2577. 5B7C 0240 F700      ANDI R0,>F700
  2578. 5B80 F002           SOCB R2,R0
  2579. 5B82 0429 005A      BLWP @>005A(R9)
  2580. 5B86 0103           DATA >0103
  2581. 5B88 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2582. 5B8C C229 0056      MOV  @>0056(R9),R8
  2583. 5B90 0429 005A      BLWP @>005A(R9)
  2584. 5B94 0102           DATA >0102
  2585. 5B96 D02F FBFE      MOVB @>FBFE(R15),R0
  2586. 5B9A 0260 8000      ORI  R0,>8000
  2587. 5B9E 0429 005A      BLWP @>005A(R9)
  2588. 5BA2 0103           DATA >0103
  2589. 5BA4 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2590. 5BA8 0460 487A      B    @>487A
  2591.  
  2592. *************************************************************************
  2593. *                                    *
  2594. *  File Rename                                *
  2595. *                                    *
  2596. *************************************************************************
  2597.  
  2598. 5BAC C1CB           MOV  R11,R7
  2599. 5BAE 06A0 4724      BL   @>4724
  2600. 5BB2 C029 004E      MOV  @>004E(R9),R0
  2601. 5BB6 0429 005A      BLWP @>005A(R9)
  2602. 5BBA 8000           DATA >8000
  2603. 5BBC C029 0050      MOV  @>0050(R9),R0
  2604. 5BC0 06A0 4658      BL   @>4658
  2605. 5BC4 5C54           DATA >5C54
  2606. 5BC6 06A0 4ADA      BL   @>4ADA
  2607. 5BCA 06A0 4B70      BL   @>4B70
  2608. 5BCE 000C           DATA >000C
  2609. 5BD0 0240 0800      ANDI R0,>0800
  2610. 5BD4 1303           JEQ  >5BDC
  2611. 5BD6 06A0 4C72      BL   @>4C72
  2612. 5BDA 2000           COC  R0,0
  2613. 5BDC 06A0 4B70      BL   @>4B70
  2614. 5BE0 FFFC           DATA >FFFC
  2615. 5BE2 C040           MOV  R0,R1
  2616. 5BE4 0429 005A      BLWP @>005A(R9)
  2617. 5BE8 8001           DATA >8001
  2618. 5BEA 0429 005A      BLWP @>005A(R9)
  2619. 5BEE 4000           DATA >4000
  2620. 5BF0 06A0 5E9C      BL   @>5E9C
  2621. 5BF4 06A0 4658      BL   @>4658
  2622. 5BF8 4E38           DATA >4E38
  2623. 5BFA C104           MOV  R4,R4
  2624. 5BFC 1338           JEQ  >5C6E
  2625. 5BFE 06A0 4B0A      BL   @>4B0A
  2626. 5C02 0429 005A      BLWP @>005A(R9)
  2627. 5C06 0801           DATA >0801
  2628. 5C08 0429 005A      BLWP @>005A(R9)
  2629. 5C0C 0103           DATA >0103
  2630. 5C0E DBC4 FFFE      MOVB R4,@>FFFE(R15)
  2631. 5C12 06C4           SWPB R4
  2632. 5C14 DBC4 FFFE      MOVB R4,@>FFFE(R15)
  2633. 5C18 06C4           SWPB R4
  2634. 5C1A 0702           SETO R2
  2635. 5C1C 04C5           CLR  R5
  2636. 5C1E 06A0 4658      BL   @>4658
  2637. 5C22 4D4A           DATA >4D4A
  2638. 5C24 C045           MOV  R5,R1
  2639. 5C26 C029 0058      MOV  @>0058(R9),R0
  2640. 5C2A 0220 0101      AI   R0,>0101
  2641. 5C2E 0601           DEC  R1
  2642. 5C30 06A0 5EB2      BL   @>5EB2
  2643. 5C34 04C2           CLR  R2
  2644. 5C36 06A0 4658      BL   @>4658
  2645. 5C3A 4D4E           DATA >4D4E
  2646. 5C3C 06A0 4658      BL   @>4658
  2647. 5C40 4D36           DATA >4D36
  2648. 5C42 C069 0056      MOV  @>0056(R9),R1
  2649. 5C46 0429 005A      BLWP @>005A(R9)
  2650. 5C4A 0023           DATA >0023
  2651. 5C4C DBC4 FFFE      MOVB R4,@>FFFE(R15)
  2652. 5C50 0460 4676      B    @>4676
  2653. 5C54 04C6           CLR  R6
  2654. 5C56 D1A9 004C      MOVB @>004C(R9),R6
  2655. 5C5A 06A0 5E9C      BL   @>5E9C
  2656. 5C5E 06A0 4658      BL   @>4658
  2657. 5C62 4DC4           DATA >4DC4
  2658. 5C64 06A0 4658      BL   @>4658
  2659. 5C68 4E08           DATA >4E08
  2660. 5C6A C104           MOV  R4,R4
  2661. 5C6C 1303           JEQ  >5C74
  2662. 5C6E 06A0 4C9E      BL   @>4C9E
  2663. 5C72 E000           DATA >E000
  2664. 5C74 0460 4676      B    @>4676
  2665.  
  2666. *************************************************************************
  2667. *                                    *
  2668. *  Access Direct Input File                        *
  2669. *                                    *
  2670. *************************************************************************
  2671.  
  2672. 5C78 C1CB           MOV  R11,R7
  2673. 5C7A 06A0 4724      BL   @>4724
  2674. 5C7E 06A0 5ED4      BL   @>5ED4
  2675. 5C82 06A0 5EFA      BL   @>5EFA
  2676. 5C86 C082           MOV  R2,R2
  2677. 5C88 131E           JEQ  >5CC6
  2678. 5C8A 6003           S    R3,R0
  2679. 5C8C 1502           JGT  >5C92
  2680. 5C8E 04C2           CLR  R2
  2681. 5C90 1017           JMP  >5CC0
  2682. 5C92 8002           C    R2,R0
  2683. 5C94 1A01           JL   >5C98
  2684. 5C96 C080           MOV  R0,R2
  2685. 5C98 0429 005A      BLWP @>005A(R9)
  2686. 5C9C 2000           DATA >2000
  2687. 5C9E 0429 005A      BLWP @>005A(R9)
  2688. 5CA2 3100           DATA >3100
  2689. 5CA4 06A0 4658      BL   @>4658
  2690. 5CA8 492E           DATA >492E
  2691. 5CAA 0429 005A      BLWP @>005A(R9)
  2692. 5CAE 3101           DATA >3101
  2693. 5CB0 0583           INC  R3
  2694. 5CB2 0227 0100      AI   R7,>0100
  2695. 5CB6 0602           DEC  R2
  2696. 5CB8 16F2           JNE  >5C9E
  2697. 5CBA 0429 005A      BLWP @>005A(R9)
  2698. 5CBE 2001           DATA >2001
  2699. 5CC0 CA42 004C      MOV  R2,@>004C(R9)
  2700. 5CC4 100A           JMP  >5CDA
  2701. 5CC6 CD00           MOV  R0,*R4+
  2702. 5CC8 0648           DECT R8
  2703. 5CCA 05C2           INCT R2
  2704. 5CCC 06A0 5F2E      BL   @>5F2E
  2705. 5CD0 0202 0004      LI   R2,4
  2706. 5CD4 A202           A    R2,R8
  2707. 5CD6 06A0 5F2E      BL   @>5F2E
  2708. 5CDA 06A0 4658      BL   @>4658
  2709. 5CDE 487A           DATA >487A
  2710. 5CE0 04E9 0050      CLR  @>0050(R9)
  2711. 5CE4 0460 4676      B    @>4676
  2712.  
  2713. (************************************************************************)
  2714. (*                                    *)
  2715. (*  I don't know - probably Access Direct Output File            *)
  2716. (*                                    *)
  2717. (************************************************************************)
  2718.  
  2719. 5CE8 C1CB           MOV  R11,R7
  2720. 5CEA 06A0 4724      BL   @>4724
  2721. 5CEE 06A0 5ED4      BL   @>5ED4
  2722. 5CF2 1314           JEQ  >5D1C
  2723. 5CF4 06A0 5EFA      BL   @>5EFA
  2724. 5CF8 0429 005A      BLWP @>005A(R9)
  2725. 5CFC 2000           DATA >2000
  2726. 5CFE 0429 005A      BLWP @>005A(R9)
  2727. 5D02 3100           DATA >3100
  2728. 5D04 06A0 4658      BL   @>4658
  2729. 5D08 494E           DATA >494E
  2730. 5D08 0429           BLWP @>005A(R9)
  2731. 5D0E 3101           DATA >3101
  2732. 5D10 0583           INC  R3
  2733. 5D12 0227 0100      AI   R7,>0100
  2734. 5D16 0602           DEC  R2
  2735. 5D18 16F2           JNE  >5CFE
  2736. 5D1A 10CF           JMP  >5CBA
  2737. 5D1C 06A0 4658      BL   @>4658
  2738. 5D20 4DC4           DATA >4DC4
  2739. 5D22 06A0 4658      BL   @>4658
  2740. 5D26 4E08           DATA >4E08
  2741. 5D28 06A0 4658      BL   @>4658
  2742. 5D2C 479E           DATA >479E
  2743. 5D2E 0429 005A      BLWP @>005A(R9)
  2744. 5D32 0801           DATA >0801
  2745. 5D34 C229 0056      MOV  @>0056(R9),R8
  2746. 5D38 05C4           INCT R4
  2747. 5D3A C0F4           MOV  *R4+,R3
  2748. 5D3C 0228 000A      AI   R8,10
  2749. 5D40 06A0 5F3E      BL   @>5F3E
  2750. 5D44 0002           DATA >0002
  2751. 5D46 06A0 5F3E      BL   @>5F3E
  2752. 5D4A 0004           DATA >0004
  2753. 5D4C 0603           DEC  R3
  2754. 5D4E 1103           JLT  >5D56
  2755. 5D50 06A0 4658      BL   @>4658
  2756. 5D54 4964           DATA >4964
  2757. 5D56 0460 5B8C      B    @>5BB0
  2758.  
  2759. *************************************************************************
  2760. *                                    *
  2761. *  Files subprogram                            *
  2762. *                                    *
  2763. *************************************************************************
  2764.  
  2765. 5D5A C1CB           MOV  R11,R7
  2766. 5D5C 06A0 4724      BL   @>4724
  2767. 5D60 C229 002C      MOV  @>002C(R9),R8
  2768. 5D64 0228 0007      AI   R8,7
  2769. 5D68 06A0 4B76      BL   @>4B76        Read word in VDP
  2770. 5D6C 0280 C801      CI   R0,>C801
  2771. 5D70 161C           JNE  >5DAA
  2772. 5D72 05C8           INCT R8
  2773. 5D74 06A0 4B76      BL   @>4B76
  2774. 5D78 06C0           SWPB R0
  2775. 5D7A 0220 49D0      AI   R0,>49D0
  2776. 5D7E 0280 0009      CI   R0,>0009
  2777. 5D82 1B13           JH   >5DAA
  2778. 5D84 06C0           SWPB R0
  2779. 5D86 DA40 004C      MOVB R0,@>004C(R9)
  2780. 5D8A 06A0 4658      BL   @>4658
  2781. 5D8E 5DB4           DATA >5DB4
  2782. 5D90 DA69 0050 0050 MOVB @>0050(R9),@>0050(R9)
  2783. 5D96 1609           JNE  >5DAA
  2784. 5D98 C229 002C      MOV  @>002C(R9),R8
  2785. 5D9C 0228 000C      AI   R8,>000C
  2786. 5DA0 CA48 002C      MOV  R8,@>002C(R9)
  2787. 5DA4 5A69 0042 0042 SZCB @>0042(R9),@>0042(R9)
  2788. 5DAA 0460 4676      B    @>4676
  2789.  
  2790. *************************************************************************
  2791. *                                    *
  2792. *  Buffer Allocation                            *
  2793. *                                    *
  2794. *************************************************************************
  2795.  
  2796. 5DAE C1CB           MOV  R11,R7
  2797. 5DB0 06A0 4724      BL   @>4724
  2798. 5DB4 04C0           CLR  R0
  2799. 5DB6 D029 004C      MOVB @>004C(R9),R0
  2800. 5DBA 136C           JEQ  >5E94
  2801. 5DBC C229 0056      MOV  @>0056(R9),R8
  2802. 5DC0 0228 0003      AI   R8,3
  2803. 5DC4 04C3           CLR  R3
  2804. 5DC6 0429 005A      BLWP @>005A(R9)
  2805. 5DCA 0102           DATA >0102
  2806. 5DCC D0EF FBFE      MOVB @>FBFE(R15),R3
  2807. 5DD0 0205 0206      LI   R5,>0206
  2808. 5DD4 90C0           CB   R0,R3
  2809. 5DD6 135B           JEQ  >5E8E
  2810. 5DD8 122B           JLE  >5E30
  2811. 5DDA C180           MOV  R0,R6
  2812. 5DDC 0280 1000      CI   R0,>1000
  2813. 5DE0 1B59           JH   >5E94
  2814. 5DE2 6003           S    R3,R0
  2815. 5DE4 0980           SRL  R0,8
  2816. 5DE6 3805           MPY  R5,0
  2817. 5DE8 C101           MOV  R1,R4
  2818. 5DEA 0504           NEG  R4
  2819. 5DEC C0A9 0070      MOV  @>0070(R9),R2
  2820. 5DF0 C002           MOV  R2,R0
  2821. 5DF2 6001           S    R1,R0
  2822. 5DF4 0280 0800      CI   R0,>0800
  2823. 5DF8 114D           JLT  >5E94
  2824. 5DFA C040           MOV  R0,R1
  2825. 5DFC 0582           INC  R2
  2826. 5DFE 0580           INC  R0
  2827. 5E00 0429 005A      BLWP @>005A(R9)
  2828. 5E04 0042           DATA >0042
  2829. 5E06 D0EF FBFE      MOVB @>FBFE(R15),R3
  2830. 5E0A 0429 005A      BLWP @>005A(R9)
  2831. 5E0E 0003           DATA >0003
  2832. 5E10 DBC3 FFFE      MOVB R3,@>FFFE(R15)
  2833. 5E14 8202           C    R2,R8
  2834. 5E16 16F2           JNE  >5DFC
  2835. 5E18 0429 005A      BLWP @>005A(R9)
  2836. 5E1C 0003           DATA >0003
  2837. 5E1E DBC6 FFFE      MOVB R6,@>FFFE(R15)
  2838. 5E22 04C6           CLR  R6
  2839. 5E24 6080           S    R0,R2
  2840. 5E26 DBC6 FFFE      MOVB R6,@>FFFE(R15)
  2841. 5E2A 0602           DEC  R2
  2842. 5E2C 16FC           JNE  >5E26
  2843. 5E2E 101A           JMP  >5E64
  2844. 5E30 0429 005A      BLWP @>005A(R9)
  2845. 5E34 0103           DATA >0103
  2846. 5E36 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2847. 5E3A 60C0           S    R0,R3
  2848. 5E3C 0983           SRL  R3,8
  2849. 5E3E 38C5           MPY  R5,3
  2850. 5E40 C044           MOV  R4,R1
  2851. 5E42 A048           A    R8,R1
  2852. 5E44 C0A9 0070      MOV  @>0070(R9),R2
  2853. 5E48 0429 005A      BLWP @>005A(R9)
  2854. 5E4C 0102           DATA >0102
  2855. 5E4E D02F FBFE      MOVB @>FBFE(R15),R0
  2856. 5E52 0429 005A      BLWP @>005A(R9)
  2857. 5E56 0023           DATA >0023
  2858. 5E58 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2859. 5E5C 0601           DEC  R1
  2860. 5E5E 0608           DEC  R8
  2861. 5E60 8088           C    R8,R2
  2862. 5E62 16F2           JNE  >5E48
  2863. 5E64 CA41 0070      MOV  R1,@>0070(R9)
  2864. 5E68 C201           MOV  R1,R8
  2865. 5E6A 05C8           INCT R8
  2866. 5E6C 06A0 4B76      BL   @>4B76
  2867. 5E70 D06F FBFE      MOVB @>FBFE(R15),R1
  2868. 5E74 904C           CB   R12,R1
  2869. 5E76 130B           JEQ  >5E8E
  2870. 5E78 A004           A    R4,R0
  2871. 5E7A 0429 005A      BLWP @>005A(R9)
  2872. 5E7E 0103           DATA >0103
  2873. 5E80 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2874. 5E84 C200           MOV  R0,R8
  2875. 5E86 06C0           SWPB R0
  2876. 5E88 DBC0 FFFE      MOVB R0,@>FFFE(R15)
  2877. 5E8C 10EE           JMP  >5E6A
  2878. 5E8E 04E9 0050      CLR  @>0050(R9)
  2879. 5E92 1002           JMP  >5E98
  2880. 5E94 0729 0050      SETO @>0050(R9)
  2881. 5E98 0460 4676      B    @>4676
  2882.  
  2883. 5E9C 04E9 0054      CLR  @>0054(R9)
  2884. 5EA0 C069 0058      MOV  @>0058(R9),R1
  2885. 5EA4 0221 0100      AI   R1,>0100    R1 points to name compare buffer
  2886. 5EA8 0429 005A      BLWP @>005A(R9)
  2887. 5EAC 0023           DATA >0023
  2888. 5EAE DBC6 FFFE      MOVB R6,@>FFFE(R15)
  2889. 5EB2 0202 000A      LI   R2,10
  2890. 5EB6 0581           INC  R1
  2891. 5EB8 0429 005A      BLWP @>005A(R9)
  2892. 5EBC 0002           DATA >0002
  2893. 5EBE D0EF FBFE      MOVB @>FBFE(R15),R3
  2894. 5EC2 0580           INC  R0
  2895. 5EC4 0429 005A      BLWP @>005A(R9)
  2896. 5EC8 0023           DATA >0023
  2897. 5ECA DBC3 FFFE      MOVB R3,@>FFFE(R15)
  2898. 5ECE 0602           DEC  R2
  2899. 5ED0 16F2           JNE  >5EB6
  2900. 5ED2 045B           RT
  2901.  
  2902. 5ED4 C28B           MOV  R11,R10
  2903. 5ED6 04C6           CLR  R6
  2904. 5ED8 D1A9 004C      MOVB @>004C(R9),R6    Unit number
  2905. 5EDC C029 004E      MOV  @>004E(R9),R0  Pointer to filename in VDP RAM
  2906. 5EE0 06A0 5E9C      BL   @>5E9C
  2907. 5EE4 D129 0050      MOVB @>0050(R9),R4
  2908. 5EE8 0984           SRL  R4,8
  2909. 5EEA A109           A    R9,R4
  2910. 5EEC D029 004D      MOVB @>004D(R9),R0    Access code
  2911. 5EF0 0429 005A      BLWP @>005A(R9)
  2912. 5EF4 0800           DATA >0800
  2913. 5EF6 0980           SRL  R0,8
  2914. 5EF8 045A           B    *R10
  2915. 5EFA 0429 005A      BLWP @>005A(R9)
  2916. 5EFE 8010           DATA >8010
  2917. 5F00 06A0 4658      BL   @>4658
  2918. 5F04 4DC4           DATA >4DC4
  2919. 5F06 06A0 4658      BL   @>4658
  2920. 5F0A 4E08           DATA >4E08
  2921. 5F0C C104           MOV  R4,R4
  2922. 5F0E 1303           JEQ  >5F16
  2923. 5F10 06A0 4C72      BL   @>4C72
  2924. 5F14 E000           DATA >E000
  2925. 5F16 06A0 4B70      BL   @>4B70
  2926. 5F1A 000E           DATA >000E
  2927. 5F1C 0429 005A      BLWP @>005A(R9)
  2928. 5F20 2011           DATA >2011
  2929. 5F22 0429 005A      BLWP @>005A(R9)
  2930. 5F26 0801           DATA >0801
  2931. 5F28 C1F4           MOV  *R4+,R7
  2932. 5F2A C0D4           MOV  *R4,R3
  2933. 5F2C 045B           RT
  2934.  
  2935. 5F2E 0429 005A      BLWP @>005A(R9)
  2936. 5F32 0102           DATA >0102
  2937. 5F34 DD2F FBFE      MOVB @>FBFE(R15),*R4+
  2938. 5F38 0602           DEC  R2
  2939. 5F3A 16FC           JNE  >5F34
  2940. 5F3C 045B           RT
  2941.  
  2942. 5F3E C0BB           MOV  *R11+,R2
  2943. 5F40 A202           A    R2,R8
  2944. 5F42 0429 005A      BLWP @>005A(R9)
  2945. 5F46 0103           DATA >0103
  2946. 5F48 DBF4 FFFE      MOVB *R4+,@>FFFE(R15)
  2947. 5F4C 0602           DEC  R2
  2948. 5F4E 16FC           JNE  >5F48
  2949. 5F50 045B           RT
  2950.  
  2951. 5F52 FFFF           SOCB *R15+,*R15+
  2952. 5F54 FFFF           SOCB *R15+,*R15+
  2953. 5F56 FFFF           SOCB *R15+,*R15+
  2954. 5F58 FFFF           SOCB *R15+,*R15+
  2955. 5F5A FFFF           SOCB *R15+,*R15+
  2956. 5F5C FFFF           SOCB *R15+,*R15+
  2957. 5F5E FFFF           SOCB *R15+,*R15+
  2958. 5F60 FFFF           SOCB *R15+,*R15+
  2959. 5F62 FFFF           SOCB *R15+,*R15+
  2960. 5F64 FFFF           SOCB *R15+,*R15+
  2961. 5F66 FFFF           SOCB *R15+,*R15+
  2962. 5F68 FFFF           SOCB *R15+,*R15+
  2963. 5F6A FFFF           SOCB *R15+,*R15+
  2964. 5F6C FFFF           SOCB *R15+,*R15+
  2965. 5F6E FFFF           SOCB *R15+,*R15+
  2966. 5F70 FFFF           SOCB *R15+,*R15+
  2967. 5F72 FFFF           SOCB *R15+,*R15+
  2968. 5F74 FFFF           SOCB *R15+,*R15+
  2969. 5F76 FFFF           SOCB *R15+,*R15+
  2970. 5F78 FFFF           SOCB *R15+,*R15+
  2971. 5F7A FFFF           SOCB *R15+,*R15+
  2972. 5F7C FFFF           SOCB *R15+,*R15+
  2973. 5F7E FFFF           SOCB *R15+,*R15+
  2974. 5F80 FFFF           SOCB *R15+,*R15+
  2975. 5F82 FFFF           SOCB *R15+,*R15+
  2976. 5F84 FFFF           SOCB *R15+,*R15+
  2977. 5F86 FFFF           SOCB *R15+,*R15+
  2978. 5F88 FFFF           SOCB *R15+,*R15+
  2979. 5F8A FFFF           SOCB *R15+,*R15+
  2980. 5F8C FFFF           SOCB *R15+,*R15+
  2981. 5F8E FFFF           SOCB *R15+,*R15+
  2982. 5F90 FFFF           SOCB *R15+,*R15+
  2983. 5F92 FFFF           SOCB *R15+,*R15+
  2984. 5F94 FFFF           SOCB *R15+,*R15+
  2985. 5F96 FFFF           SOCB *R15+,*R15+
  2986. 5F98 FFFF           SOCB *R15+,*R15+
  2987. 5F9A FFFF           SOCB *R15+,*R15+
  2988. 5F9C FFFF           SOCB *R15+,*R15+
  2989. 5F9E FFFF           SOCB *R15+,*R15+
  2990. 5FA0 FFFF           SOCB *R15+,*R15+
  2991. 5FA2 FFFF           SOCB *R15+,*R15+
  2992. 5FA4 FFFF           SOCB *R15+,*R15+
  2993. 5FA6 FFFF           SOCB *R15+,*R15+
  2994. 5FA8 FFFF           SOCB *R15+,*R15+
  2995. 5FAA FFFF           SOCB *R15+,*R15+
  2996. 5FAC FFFF           SOCB *R15+,*R15+
  2997. 5FAE FFFF           SOCB *R15+,*R15+
  2998. 5FB0 FFFF           SOCB *R15+,*R15+
  2999. 5FB2 FFFF           SOCB *R15+,*R15+
  3000. 5FB4 FFFF           SOCB *R15+,*R15+
  3001. 5FB6 FFFF           SOCB *R15+,*R15+
  3002. 5FB8 FFFF           SOCB *R15+,*R15+
  3003. 5FBA FFFF           SOCB *R15+,*R15+
  3004. 5FBC FFFF           SOCB *R15+,*R15+
  3005. 5FBE FFFF           SOCB *R15+,*R15+
  3006. 5FC0 FFFF           SOCB *R15+,*R15+
  3007. 5FC2 FFFF           SOCB *R15+,*R15+
  3008. 5FC4 FFFF           SOCB *R15+,*R15+
  3009. 5FC6 FFFF           SOCB *R15+,*R15+
  3010. 5FC8 FFFF           SOCB *R15+,*R15+
  3011. 5FCA FFFF           SOCB *R15+,*R15+
  3012. 5FCC FFFF           SOCB *R15+,*R15+
  3013. 5FCE FFFF           SOCB *R15+,*R15+
  3014. 5FD0 FFFF           SOCB *R15+,*R15+
  3015. 5FD2 FFFF           SOCB *R15+,*R15+
  3016. 5FD4 FFFF           SOCB *R15+,*R15+
  3017. 5FD6 FFFF           SOCB *R15+,*R15+
  3018. 5FD8 FFFF           SOCB *R15+,*R15+
  3019. 5FDA FFFF           SOCB *R15+,*R15+
  3020. 5FDC FFFF           SOCB *R15+,*R15+
  3021. 5FDE FFFF           SOCB *R15+,*R15+
  3022. 5FE0 FFFF           SOCB *R15+,*R15+
  3023. 5FE2 FFFF           SOCB *R15+,*R15+
  3024. 5FE4 FFFF           SOCB *R15+,*R15+
  3025. 5FE6 FFFF           SOCB *R15+,*R15+
  3026. 5FE8 FFFF           SOCB *R15+,*R15+
  3027. 5FEA FFFF           SOCB *R15+,*R15+
  3028. 5FEC FFFF           SOCB *R15+,*R15+
  3029. 5FEE FFFF           SOCB *R15+,*R15+
  3030. 5FF0 7FFF           SB   *R15+,*R15+
  3031. 5FF2 E3FF           SOC  *R15+,R15
  3032. 5FF4 FDFF           SOCB *R15+,*R7+
  3033. 5FF6 FFFF           SOCB *R15+,*R15+
  3034. 5FF8 FFFF           SOCB *R15+,*R15+
  3035. 5FFA FFFF           SOCB *R15+,*R15+
  3036. 5FFC FFFF           SOCB *R15+,*R15+
  3037. 5FFE FFFF           SOCB *R15+,*R15+
  3038.