home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / c64 / utilities / PromShellv2b.sfx / decode.v2.0 (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1990-02-12  |  11.7 KB  |  470 lines

  1. 1 dima$,q,p,r,z$,k,e,i,i$,l,z,p$,q$,j,m,h%,f,n,h$,o$,n$,e$,h,t$,v$,a,d,x%,x,c,o
  2. 3 dimf%,s,bc,w,l%,v,bf,bi,b,b$,m$,c$,d$,f$,g,be,b%,p%,r%,u,v%,y,j$,k$,g$,s$,u$
  3. 5 reado,a,h,t$,v$,b$,g,j$,k$,l$,r$,i$,bl$
  4. 7 dimof,hf,af,a%(o),m$(o),b(o),e(o),i(a),o(a):goto531
  5. 9 :
  6. 11 rem common subroutines
  7. 13 :
  8. 15 rem fetch opcode from ml file
  9. 17 :
  10. 19 get#1,a$:r=st:q=asc(a$+z$):p=p+1:return
  11. 21 :
  12. 23 rem get mnemonic and addressing mode
  13. 25 :
  14. 27 n$=m$(q):n=a%(q):return
  15. 29 :
  16. 31 rem fetch 1-byte operand
  17. 33 :
  18. 35 gosub19:k=q:h=1:goto51
  19. 37 :
  20. 39 rem fetch 2-byte operand
  21. 41 :
  22. 43 gosub19:z=q:gosub19:z=z+q*o:k=z:h=3
  23. 45 :
  24. 47 rem convert k to hex$
  25. 49 :
  26. 51 h$="":form=.toh:d=k:k=int(d/16):d=d-k*16:h$=chr$(d+48-7*(d>9))+h$:next
  27. 53 return
  28. 55 :
  29. 57 rem output subroutines
  30. 59 :
  31. 61 rem construct output string
  32. 63 :
  33. 65 l=l+1:ifl>gthenl=g
  34. 67 :
  35. 69 printl;:ifl>=sthenk=l:h=3:gosub51:printt$h$i$;
  36. 71 printp$:on-(o$="d")goto79:on-(o$="p")goto93:return
  37. 73 :
  38. 75 rem write output to disk file
  39. 77 :
  40. 79 iff%thenifl>=sthenp$=t$+h$+i$+p$
  41. 81 h%=l/o:f=l-h%*o:print#2,""chr$(f)chr$(h%)p$z$;
  42. 83 c=c+5+len(p$):ifc>athengosub477
  43. 85 goto103
  44. 87 :
  45. 89 rem write output to printer
  46. 91 :
  47. 93 ifl>=sthenp$=t$+h$+i$+p$
  48. 95 print#2,mid$(str$(l),2)i$p$
  49. 97 :
  50. 99 rem check command channel
  51. 101 :
  52. 103 input#3,k,e$,d,d:ifkthenprinte$:ifk=72goto113
  53. 105 return
  54. 107 :
  55. 109 rem disk full
  56. 111 :
  57. 113 c=.:p$=b$:l=l+1:h%=l/o:f=l-h%*o:print#2,""chr$(f)chr$(h%)p$z$;
  58. 115 g$=c$+mid$(str$(r%),2):p$=".file "+g$:l=l+1:h%=l/o:f=l-h%*o
  59. 117 print#2,""chr$(f)chr$(h%)p$z$z$z$;:close2:ifof=8thenclose1:close3:end
  60. 119 print"replace disk in"of"and press a key":poke198,0:wait197,64,64:goto479
  61. 121 :
  62. 123 rem clear/set flag for labelling outside addresses
  63. 125 :
  64. 127 x=.:if(x%)orn=2thenifj<>32andj<>76andj<>108thenx=1
  65. 129 return
  66. 131 :
  67. 133 rem increment pointer into table of byte blocks
  68. 135 :
  69. 137 ifp>b(w)thenw=w+1:goto137
  70. 139 return
  71. 141 :
  72. 143 rem pass 2 subroutines
  73. 145 :
  74. 147 rem discard bytes in byte table
  75. 149 :
  76. 151 gosub137:printr$"s"e(w)-b(w)+1;:ifp+1>e(w)thenreturn
  77. 153 fori=p+1toe(w):gosub19:next:return
  78. 155 :
  79. 157 rem 1-byte operands
  80. 159 :
  81. 161 gosub35:z=q:j=q:ifn=3thenz=p+q+(q>127)*o+1:k=z:h=3:gosub51:printt$h$"   ";
  82. 163 if(n=3)and(z<sorz>e)thenreturn
  83. 165 ifn<>3thenprintt$h$"     ";:goto197
  84. 167 goto183
  85. 169 :
  86. 171 rem 2-byte operands
  87. 173 :
  88. 175 gosub43:printt$h$"   ";:ifz<sorz>egoto197
  89. 177 :
  90. 179 rem locate or assign internal address label
  91. 181 :
  92. 183 fori=vto.step-1:ifz<i(i)goto189
  93. 185 ifz=i(i)theni=.:print"[186]i";:goto189
  94. 187 forq=v+1toi+2step-1:i(q)=i(q-1):next:i(q)=z:i=.:v=v+1:printv"internal";
  95. 189 next:return
  96. 191 :
  97. 193 rem locate or assign external address label
  98. 195 :
  99. 197 gosub127:onxgoto53:ifu=.ando(.)=.theno(u)=z
  100. 199 l%=1:fori=.tou:ifz>o(i)goto207
  101. 201 ifz=o(i)thenl%=.:i=u:print"[186]o";:goto207
  102. 203 forq=u+1toi+1step-1:o(q)=o(q-1):next:o(q)=z:i=u:u=u+1:l%=.
  103. 205 printu"external";
  104. 207 next:ifl%theno(i)=z:u=u+1:printu"external";
  105. 209 return
  106. 211 :
  107. 213 rem pass 4 subroutines
  108. 215 :
  109. 217 rem implied addressing
  110. 219 :
  111. 221 p$=left$(q$,len(q$)-1):goto69
  112. 223 :
  113. 225 rem immediate
  114. 227 :
  115. 229 gosub19:k=q:h=1:gosub51:p$=q$+"#$"+h$:goto69
  116. 231 :
  117. 233 rem relative
  118. 235 :
  119. 237 gosub19:z=p+q+(q>127)*o+1:k=z:h=3:gosub51:ifz<sorz>ethenp$=q$+t$+h$:goto69
  120. 239 p$=q$+v$+h$:goto69
  121. 241 :
  122. 243 rem zero page
  123. 245 :
  124. 247 gosub35:p$=q$+"z"+h$:goto69
  125. 249 :
  126. 251 rem zero page,x
  127. 253 :
  128. 255 gosub35:p$=q$+"z"+h$+",x":goto69
  129. 257 :
  130. 259 rem zero page,y
  131. 261 :
  132. 263 gosub35:p$=q$+"z"+h$+",y":goto69
  133. 265 :
  134. 267 rem absolute
  135. 269 :
  136. 271 gosub43:p$=q$+v$+h$:on-(z>=sandz<=e)goto69:gosub127:ifxthenp$=q$+t$+h$
  137. 273 goto69
  138. 275 :
  139. 277 rem absolute,x
  140. 279 :
  141. 281 gosub43:p$=q$+v$+h$+",x":ifz>=sandz<=egoto69
  142. 283 gosub127:ifxthenp$=q$+t$+h$+",x
  143. 285 [137]69
  144. 287 :
  145. 289 [143] absolute,y
  146. 291 :
  147. 293 [141]43:p$[178]q$[170]v$[170]h$[170]",y":[139]z[177][178]s[175]z[179][178]e[137]69
  148. 295 [141]127:[139]x[167]p$[178]q$[170]t$[170]h$[170]",y
  149. 297 goto69
  150. 299 :
  151. 301 rem indirect
  152. 303 :
  153. 305 gosub43:p$=q$+"(ad"+h$+")":goto69
  154. 307 :
  155. 309 rem indirect,x
  156. 311 :
  157. 313 gosub35:p$=q$+"(z"+h$+",x)":goto69
  158. 315 :
  159. 317 rem indirect,y
  160. 319 :
  161. 321 gosub35:p$=q$+"(z"+h$+"),y":goto69
  162. 323 :
  163. 325 rem byte tables
  164. 327 :
  165. 329 gosub137:k=j:h=1:gosub51:p$=q$+r$:af=.
  166. 331 b=p:q=j:s$=str$(q):m$=";47"+h$:u$="71"+chr$(34):gosub369:hf=q:goto359
  167. 333 gosub19:k=q:h=1:gosub51:s$=s$+str$(q):m$=m$+i$+h$:gosub369:hf=hf+q
  168. 335 ifp+1<i(i)goto349
  169. 337 l=b:p$=p$+s$:ifhfthenp$=p$+m$
  170. 339 ifafthenp$=p$+u$
  171. 341 gosub69
  172. 343 b=p+1:k=b:h=3:gosub51:i=i+1
  173. 345 p$=v$+h$+i$+r$:s$="":m$=";46":u$="71"+chr$(34):hf=.:af=.
  174. 347 ifb>e(w)theni=i-1:return
  175. 349 ifp<b+7goto359
  176. 351 l=b:p$=p$+s$:ifhfthenp$=p$+m$
  177. 353 ifafthenp$=p$+u$
  178. 355 gosub69
  179. 357 b=p+1:p$=r$:s$="":m$=";46":u$="71"+chr$(34):hf=.:af=.
  180. 359 ifp<e(w)goto333
  181. 361 l=b:p$=p$+s$:ifhfthenp$=p$+m$
  182. 363 ifafthenp$=p$+u$
  183. 365 on-(len(m$)>4)goto69:k=.:return
  184. 367 :
  185. 369 ifqthenifq>31andq<123orq>192andq<219thenu$=u$+chr$(q):af=af-(q<>32):return
  186. 371 u$=u$+".":return
  187. 373 :
  188. 375 rem pass 3 subroutines
  189. 377 :
  190. 379 rem discard bytes
  191. 381 :
  192. 383 gosub137:ifp+1>e(w)goto387
  193. 385 form=p+1toe(w):gosub19:next
  194. 387 w=w+1:return
  195. 389 :
  196. 391 rem check offset label for 1-byte operand
  197. 393 :
  198. 395 ifp+1=i(i)thengosub415
  199. 397 goto19
  200. 399 :
  201. 401 rem check offset label for 2-byte operand
  202. 403 :
  203. 405 ifp+1=i(i)orp+2=i(i)thengosub415:goto405
  204. 407 gosub19:goto19
  205. 409 :
  206. 411 rem add offset label to table
  207. 413 :
  208. 415 v%=v%+1:u=u+1:o(u)=i(i):printi(i)v%l$:i=i+1:return
  209. 417 :
  210. 419 rem pass 1 subroutines
  211. 421 :
  212. 423 rem construct byte tables
  213. 425 :
  214. 427 b=b-p*(b=.):gosub19:ifrthenb=p+(p>g):goto435
  215. 429 b=b-p*(b=.):gosub19:ifrthenb=p+(p>g):goto435
  216. 431 b=b-p*(b=.):ifrthenb=p+(p>g):goto435
  217. 433 bi=bi+1:ifbi<bethenreturn
  218. 435 b=b-p*(b=.):printb-1;b-b(w):e(w)=b+(r=.):bf=.:bi=.:b=.:w=w+1:return
  219. 437 :
  220. 439 rem byte:  reset tables
  221. 441 :
  222. 443 bi=.:b=.:on-(r<>.)goto435:return
  223. 445 :
  224. 447 rem start byte table, set flag
  225. 449 :
  226. 451 b(w)=p:bf=1:bi=.:b=.:printp;r$"s";:return
  227. 453 :
  228. 455 rem infrequent subroutines
  229. 457 :
  230. 459 rem new pass, get to start of code
  231. 461 :
  232. 463 p%=p%+1:print"pass"p%"":p=y-3
  233. 465 close1:open1,8,2,f$:gosub43:ifp%<1goto103
  234. 467 ifp<(s-1)thengosub19:goto467
  235. 469 goto103
  236. 471 :
  237. 473 rem close disk file and open another
  238. 475 :
  239. 477 c=.:p$=b$:gosub65:g$=c$+mid$(str$(r%),2):p$=".file "+g$:gosub65:gosub499
  240. 479 gosub487:print#2,"";:l=l-3:p$=b$+g$:goto69
  241. 481 :
  242. 483 rem open output file
  243. 485 :
  244. 487 ifo$="d"thenp$="0:"+g$+",p,w":r%=r%+1:open2,of,3,p$:c=2:goto103
  245. 489 ifo$="p"thenopen2,4,7:print#2,mid$(f$,3,len(f$)-6)":  [196]ecode v2.0
  246. 491 [142]
  247. 493 :
  248. 495 [143] close disk file
  249. 497 :
  250. 499 [152]2,z$z$;:[160]2:[137]103
  251. 501 :
  252. 503 [143] translate decimal or hex input
  253. 505 :
  254. 507 k[178].:[145][171]([200](d$,1)[178]t$)[137]515:k[178][197](d$):[142]
  255. 509 :
  256. 511 [143] hex input
  257. 513 :
  258. 515 d$[178][201](d$,[195](d$)[171]1):[139][195](d$)[178].[167][142]
  259. 517 :
  260. 519 [129]h[178]1[164][195](d$):d[178][198]([202](d$,h,1)):d[178]d[171]48[170]7[172](d[177]57):k[178]k[170]d[172](16[174]([195](d$)[171]h))
  261. 521 [130]:d$[178]"":[142]
  262. 523 :
  263. 525 :
  264. 527 [143] initialization
  265. 529 :
  266. 531 z$[178][199](.):r%[178]1:a[178]38000:of[178]8:j$[178]j$[170]i$:k$[178]k$[170]i$:l$[178]l$[170]i$:i$[178]" ":[129]i[178]1[164]151
  267. 533 [135]a$,q,p:m$(p)[178]a$:a%(p)[178]q:[130]:[153]"load"bl$bl$"        str$ecode v2.0 "
  268. 535 :
  269. 537 [143] get user options and data
  270. 539 :
  271. 541 [153]"assembler file to pwaitrinter"
  272. 543 [133]"or dwaitisk or to swaitcreen only  dcmdcmdcmd";o$
  273. 545 [139]o$[179][177]"p"[175]o$[179][177]"d"[175]o$[179][177]"s"[137]543
  274. 547 [139]o$[178]"d"[167][133]"output device number  8cmdcmdcmd";d$:of[178][197](d$):[139]of[179]8[167]of[178]8
  275. 549 [159]3,of,15,"i0"
  276. 551 [133]"decode program";c$:f$[178]"0:"[170]c$[170]",p,r":[141]465:y[178]z:[139]k[137]551
  277. 553 [153]"load address:"y;t$h$:[153]bl$bl$bl$"cmd"h$
  278. 555 [133]"onstart decoding at  $cmdcmdcmd";d$:[141]507:s[178]k[171]y[172](k[178].)
  279. 557 [133]"decode through to  endcmdcmdcmdcmdcmd";d$:[141]507:e[178]k[171]g[172](k[178].):h[178]3
  280. 559 [139]o$[178]"s"[137]567
  281. 561 [153]"  "bl$bl$[200](c$,10)"on":[133]"assembler file";c$
  282. 563 [139][195](c$)[177]10[137]561
  283. 565 [139]o$[178]"d"[167][133]"hex addrs to file  ncmdcmdcmd";d$:[139]d$[178]"y"[167]b%[178]1
  284. 567 [133]"label all outside  ycmdcmdcmd";d$:x%[178][171](d$[178]"n"):[153]"$2c = byte or skw:
  285. 569 input"change skw to bit  y[157][157][157]";d$:a%(44)=-7*(d$="y")
  286. 571 print"escape byte block":print"after how many op
  287. 573 [133]"codes encountered  15cmdcmdcmdcmd";d$:[141]507:be[178]k:[141]463
  288. 575 :
  289. 577 [143] pass 1
  290. 579 :
  291. 581 [143] count bytes, identify byte blocks
  292. 583 :
  293. 585 [145][171]((p[177][178]e)[176](r[179][177].))[137]613:[141]19:[141]27:[139]bf[137]603
  294. 587 :
  295. 589 [143] main loop evaluates opcodes and discards operands, flags non-opcode
  296. 591 :
  297. 593 [145]n[170]1[141]451,53,19,19,19,19,19,43,43,43,43,19,19
  298. 595 [137]585
  299. 597 :
  300. 599 [143] byte loop counts bytes, seeks sequence of properly spaced opcodes
  301. 601 :
  302. 603 [145]n[170]1[141]443,431,429,429,429,429,429,427,427,427,427,429,429
  303. 605 [137]585
  304. 607 :
  305. 609 [143] pass 1 complete, set pointers
  306. 611 :
  307. 613 t[178]p[170](p[177]g):k[178]t:[141]51:e[178]e[171](t[171]g)[172](e[178]g):e(w)[178]e(w)[171]t[172](e(w)[178].):[153]
  308. 615 [153]"high address:"t"($"h$")":[153]"program code:"t[171]y[170]1"bytes
  309. 617 ifs>=yands<tgoto623
  310. 619 k=y:gosub51:printbl$bl$bl$"[157]"h$
  311. 621 input"[145]start decoding at  $[157][157][157]";d$:gosub507:s=k-y*(k=.):goto617
  312. 623 ife>=yande<=tgoto633
  313. 625 input"decode through to  end[157][157][157][157][157]";d$:gosub507:e=k-t*(k=.):goto623
  314. 627 :
  315. 629 rem pass 2
  316. 631 :
  317. 633 gosub463:i(.)=s:v=1:i(v)=t:b(w+1)=g:e(w+1)=.:bc=w:w=.
  318. 635 :
  319. 637 rem construct label tables
  320. 639 :
  321. 641 on-(p>=e)goto653:gosub19:gosub27:j=q:k=p:h=3:gosub51:printp;t$h$i$n$i$;
  322. 643 onn+1gosub151,53,161,161,161,161,161,175,175,175,175,161,161
  323. 645 print:goto641
  324. 647 :
  325. 649 rem pass 2 complete
  326. 651 :
  327. 653 print:printv;j$:printu;k$:i(v+1)=g:o(u+1)=g
  328. 655 :
  329. 657 rem pass 3
  330. 659 :
  331. 661 rem locate offset addresses
  332. 663 :
  333. 665 gosub463:i=.:w=.:ifv<2goto709
  334. 667 :
  335. 669 rem step through label tables
  336. 671 :
  337. 673 on-((p>i(v))or(p>=e))goto697:gosub19:gosub27
  338. 675 :
  339. 677 ifp>i(i)theni=i+1:goto677
  340. 679 ifp=i(i)theni=i+1
  341. 681 :
  342. 683 rem main loop for pass 3
  343. 685 :
  344. 687 onn+1gosub383,53,395,395,395,395,395,405,405,405,405,395,395
  345. 689 goto673
  346. 691 :
  347. 693 rem pass 3 complete
  348. 695 :
  349. 697 ifv%thenprintv%l$
  350. 699 :
  351. 701 rem pass 4
  352. 703 :
  353. 705 rem open output file
  354. 707 :
  355. 709 gosub463:c$=c$+".src":g$=c$:gosub487:l=9:w=.:k=p+1:gosub51:h=1
  356. 711 :
  357. 713 rem screen or printer initialization
  358. 715 :
  359. 717 ifo$<>"d"thenp$="*= $"+h$+i$+c$:gosub69:on-(u=.)goto781:goto735
  360. 719 :
  361. 721 rem disk output initialization
  362. 723 :
  363. 725 print#2,"";:p$="[172]= $"+h$:gosub65:p$=b$+c$:gosub65:p$=b$:gosub65
  364. 727 p$=";.d r/"+mid$(f$,3,len(f$)-6):gosub65:p$=".s":gosub65:ifu=.goto781
  365. 729 :
  366. 731 rem label tables:  zero page
  367. 733 :
  368. 735 p$=b$:gosub65:p$=";zero page":gosub65
  369. 737 fori=.tou:k=o(i):ifk>=otheni=u:goto741
  370. 739 gosub51:p$="z"+h$+" = $"+h$:gosub65
  371. 741 next
  372. 743 :
  373. 745 rem label tables:  outside labels and offset labels
  374. 747 :
  375. 749 h=3:p$=b$:gosub65:p$=b$+k$:gosub65:x=.:fori=1tou:k=o(i):ifk<ogoto757
  376. 751 gosub51:ifi=u-v%+1thenp$=b$:gosub65:p$=b$+l$:gosub65:x=1
  377. 753 p$=v$+h$+" = $"+h$:ifxthenp$=p$+b$+str$(o(i))
  378. 755 gosub65
  379. 757 next:x=.
  380. 759 :
  381. 761 rem byte blocks
  382. 763 :
  383. 765 p$=b$:gosub65:ifbc=.goto781
  384. 767 p$=";byte blocks":gosub65:fori=.tobc-1:k=b(i):gosub51
  385. 769 p$="; $"+h$+"-$":k=e(i):gosub51
  386. 771 p$=p$+h$+" at"+str$(b(i))+" ("+mid$(str$(e(i)-b(i)+1),2)+")"
  387. 773 gosub65:next:p$=b$:gosub65
  388. 775 :
  389. 777 rem initialize indices
  390. 779 :
  391. 781 i=.:f%=b%
  392. 783 :
  393. 785 rem decode program
  394. 787 :
  395. 789 on-(p>=e)goto825:gosub19:j=q:gosub27:l=p:q$="":m$="
  396. 791 :
  397. 793 [143] check pointers to tables and start contructing output string
  398. 795 :
  399. 797 [139]p[177]i(i)[167]i[178]i[170]1:[137]797
  400. 799 [139]p[178]i(i)[167]k[178]p:h[178]3:[141]51:q$[178]v$[170]h$[170]i$:i[178]i[170]1
  401. 801 :
  402. 803 [143] add mnemonic to string
  403. 805 :
  404. 807 [139]n[167]q$[178]q$[170]n$[170]i$
  405. 809 :
  406. 811 [143] fetch operand and add to output string
  407. 813 :
  408. 815 [145]n[170]1[141]329,221,229,237,247,255,263,271,281,293,305,313,321
  409. 817 [137]789
  410. 819 :
  411. 821 [143] pass 4 complete, close output
  412. 823 :
  413. 825 p$[178]b$:[141]65:p$[178]".end "[170]c$:[139]o$[178]"d"[167]p$[178]"."[170][199](128)[170]i$[170]c$
  414. 827 [141]65:[145][171](o$[178]"d")[141]499:[160]1:[160]2:[160]3:[153]"complete
  415. 829 :
  416. 831 :
  417. 833 rem variable data:  o,a,h,t$,v$,b$,g,j$,k$,l$,r$,i$,bl$
  418. 835 :
  419. 837 data256,1600,3,$,ad,;,65535,inside,outside,offset,.byte," labels","       "
  420. 839 :
  421. 841 rem addressing mode assignments
  422. 843 :
  423. 845 rem  0 = byte data
  424. 847 rem  1 = implied
  425. 849 rem  2 = immediate
  426. 851 rem  3 = relative
  427. 853 rem  4 = zero page
  428. 855 rem  5 = zero page,x
  429. 857 rem  6 = zero page,y
  430. 859 rem  7 = absolute
  431. 861 rem  8 = absolute,x
  432. 863 rem  9 = absolute,y
  433. 865 rem 10 = indirect
  434. 867 rem 11 = indirect,x
  435. 869 rem 12 = indirect,y
  436. 871 :
  437. 873 rem mnemomic,addressing mode, opcode
  438. 875 :
  439. 877 databrk, 0,  0,ora,11,  1,ora, 4,  5,asl, 4,  6,php, 1,  8
  440. 879 dataora, 2,  9,asl, 1, 10,ora, 7, 13,asl, 7, 14,bpl, 3, 16
  441. 881 dataora,12, 17,ora, 5, 21,asl, 5, 22,clc, 1, 24,ora, 9, 25
  442. 883 dataora, 8, 29,asl, 8, 30,jsr, 7, 32,and,11, 33,bit, 4, 36
  443. 885 dataand, 4, 37,rol, 4, 38,plp, 1, 40,and, 2, 41,rol, 1, 42
  444. 887 databit, 0, 44,and, 7, 45,rol, 7, 46,bmi, 3, 48,and,12, 49
  445. 889 dataand, 5, 53,rol, 5, 54,sec, 1, 56,and, 9, 57,and, 8, 61
  446. 891 datarol, 8, 62,rti, 1, 64,eor,11, 65,eor, 4, 69,lsr, 4, 70
  447. 893 datapha, 1, 72,eor, 2, 73,lsr, 1, 74,jmp, 7, 76,eor, 7, 77
  448. 895 datalsr, 7, 78,bvc, 3, 80,eor,12, 81,eor, 5, 85,lsr, 5, 86
  449. 897 datacli, 1, 88,eor, 9, 89,eor, 8, 93,lsr, 8, 94,rts, 1, 96
  450. 899 dataadc,11, 97,adc, 4,101,ror, 4,102,pla, 1,104,adc, 2,105
  451. 901 dataror, 1,106,jmp,10,108,adc, 7,109,ror, 7,110,bvs, 3,112
  452. 903 dataadc,12,113,adc, 5,117,ror, 5,118,sei, 1,120,adc, 9,121
  453. 905 dataadc, 8,125,ror, 8,126,sta,11,129,sty, 4,132,sta, 4,133
  454. 907 datastx, 4,134,dey, 1,136,txa, 1,138,sty, 7,140,sta, 7,141
  455. 909 datastx, 7,142,bcc, 3,144,sta,12,145,sty, 5,148,sta, 5,149
  456. 911 datastx, 6,150,tya, 1,152,sta, 9,153,txs, 1,154,sta, 8,157
  457. 913 dataldy, 2,160,lda,11,161,ldx, 2,162,ldy, 4,164,lda, 4,165
  458. 915 dataldx, 4,166,tay, 1,168,lda, 2,169,tax, 1,170,ldy, 7,172
  459. 917 datalda, 7,173,ldx, 7,174,bcs, 3,176,lda,12,177,ldy, 5,180
  460. 919 datalda, 5,181,ldx, 6,182,clv, 1,184,lda, 9,185,tsx, 1,186
  461. 921 dataldy, 8,188,lda, 8,189,ldx, 9,190,cpy, 2,192,cmp,11,193
  462. 923 datacpy, 4,196,cmp, 4,197,dec, 4,198,iny, 1,200,cmp, 2,201
  463. 925 datadex, 1,202,cpy, 7,204,cmp, 7,205,dec, 7,206,bne, 3,208
  464. 927 datacmp,12,209,cmp, 5,213,dec, 5,214,cld, 1,216,cmp, 9,217
  465. 929 datacmp, 8,221,dec, 8,222,cpx, 2,224,sbc,11,225,cpx, 4,228
  466. 931 datasbc, 4,229,inc, 4,230,inx, 1,232,sbc, 2,233,nop, 1,234
  467. 933 datacpx, 7,236,sbc, 7,237,inc, 7,238,beq, 3,240,sbc,12,241
  468. 935 datasbc, 5,245,inc, 5,246,sed, 1,248,sbc, 9,249,sbc, 8,253
  469. 937 datainc, 8,254
  470.