home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 1 / VECTRONIX1.iso / area.1 / 231.lzh / 231.MSA / EMULATOR.C64 / SOURCE / EMULATOR.S < prev    next >
Text File  |  1987-04-22  |  38KB  |  1,840 lines

  1. ********************************************************************************
  2. *                                                                              *
  3. *                              C64-Emulator V3.0                               *
  4. *                             ╜ 1987 by Uwe Seimet                             *
  5. *                             Buchenlochstra₧e 29                              *
  6. *                             6750 Kaiserslautern                              *
  7. *                                                                              *
  8. *                       Linkreihenfolge: C64.O,VC.O,EMULATOR.O                 *
  9. *                                                                              *
  10. ********************************************************************************
  11.  
  12.  
  13.       globl op
  14.       globl c64
  15.       globl area
  16.       globl swlo
  17.       globl swhi
  18.       globl ops
  19.       globl itret
  20.  
  21.  
  22.       text
  23.  
  24. op:
  25.       dc op00-op,sto81-op,op00-op,op00-op,op84-op,op85-op,op86-op,op00-op
  26.       dc op88-op,op00-op,op8a-op,op00-op,sto8c-op,sto8d-op,sto8e-op,op00-op
  27.       dc op90-op,sto91-op,op00-op,op00-op,op94-op,op95-op,op96-op,op00-op
  28.       dc op98-op,sto99-op,op9a-op,op00-op,op00-op,sto9d-op,op00-op,op00-op
  29.       dc opa0-op,opa1-op,opa2-op,op00-op,opa4-op,opa5-op,opa6-op,op00-op
  30.       dc opa8-op,opa9-op,opaa-op,op00-op,opac-op,opad-op,opae-op,op00-op
  31.       dc opb0-op,opb1-op,op00-op,op00-op,opb4-op,opb5-op,opb6-op,op00-op
  32.       dc opb8-op,opb9-op,opba-op,op00-op,opbc-op,opbd-op,opbe-op,op00-op
  33.       dc opc0-op,opc1-op,op00-op,op00-op,opc4-op,opc5-op,opc6-op,op00-op
  34.       dc opc8-op,opc9-op,opca-op,op00-op,opcc-op,opcd-op,opce-op,op00-op
  35.       dc opd0-op,opd1-op,op00-op,op00-op,op00-op,opd5-op,opd6-op,op00-op
  36.       dc opd8-op,opd9-op,op00-op,op00-op,op00-op,opdd-op,opde-op,op00-op
  37.       dc ope0-op,ope1-op,op00-op,op00-op,ope4-op,ope5-op,ope6-op,op00-op
  38.       dc ope8-op,ope9-op,opea-op,op00-op,opec-op,oped-op,opee-op,op00-op
  39.       dc opf0-op,opf1-op,op00-op,op00-op,op00-op,opf5-op,opf6-op,op00-op
  40.       dc opf8-op,opf9-op,op00-op,op00-op,op00-op,opfd-op,opfe-op,op00-op
  41.       dc op00-op,op01-op,op00-op,op00-op,op00-op,op05-op,op06-op,op00-op
  42.       dc op08-op,op09-op,op0a-op,op00-op,op00-op,op0d-op,op0e-op,op00-op
  43.       dc op10-op,ora11-op,op00-op,op00-op,op00-op,op15-op,op16-op,op00-op
  44.       dc op18-op,op19-op,op00-op,op00-op,op00-op,op1d-op,op1e-op,op00-op
  45.       dc op20-op,op21-op,op00-op,op00-op,op24-op,op25-op,op26-op,op00-op
  46.       dc op28-op,op29-op,op2a-op,op00-op,op2c-op,op2d-op,op2e-op,op00-op
  47.       dc op30-op,and31-op,op00-op,op00-op,op00-op,op35-op,op36-op,op00-op
  48.       dc op38-op,op39-op,op00-op,op00-op,op00-op,op3d-op,op3e-op,op00-op
  49.       dc op40-op,op41-op,op00-op,op00-op,op00-op,op45-op,op46-op,op00-op
  50.       dc op48-op,op49-op,op4a-op,op00-op,op4c-op,op4d-op,op4e-op,op00-op
  51.       dc op50-op,eor51-op,op00-op,op00-op,op00-op,op55-op,op56-op,op00-op
  52.       dc op58-op,op59-op,op00-op,op00-op,op00-op,op5d-op,op5e-op,op00-op
  53.       dc op60-op,op61-op,op00-op,op00-op,op00-op,op65-op,op66-op,op00-op
  54.       dc op68-op,op69-op,op6a-op,op00-op,op6c-op,op6d-op,op6e-op,op00-op
  55.       dc op70-op,op71-op,op00-op,op00-op,op00-op,op75-op,op76-op,op00-op
  56.       dc op78-op,op79-op,op00-op,op00-op,op00-op,op7d-op,op00-op,op00-op
  57.  
  58. op00:
  59.       sub.l a6,a5
  60.       move a5,-(a2)
  61.       move.b (a2)+,(a4)
  62.       move.b (a2)+,-(a4)
  63.       move.b d4,-(a4)
  64.       tst.b -(a4)
  65.       move c64+$fffe,d2
  66.       ror #8,d2
  67.       lea (a6,d2.l),a5
  68.       lea l00+2(pc),a0
  69.       move.b (a5)+,(a0)
  70. l00:  jmp 0(a3)
  71.  
  72. op01:
  73.       move.b (a5)+,d3
  74.       add.b d6,d3
  75.       move.b (a6,d3.l),-(a2)
  76.       move.b 1(a6,d3.l),-(a2)
  77.       move (a2)+,d2
  78.       move d4,ccr
  79.       or.b (a6,d2.l),d5
  80.       move sr,d4
  81.       move.b (a5)+,l01-op01+$0102(a3)
  82. l01:  jmp 0(a3)
  83.  
  84. op05:
  85.       move.b (a5)+,d3
  86.       move d4,ccr
  87.       or.b (a6,d3.l),d5
  88.       move sr,d4
  89.       move.b (a5)+,l05-op05+$0502(a3)
  90. l05:  jmp 0(a3)
  91.  
  92. op06:
  93.       move.b (a5)+,d3
  94.       move.b (a6,d3.l),d2
  95.       add.b d2,(a6,d3.l)
  96.       move sr,d4
  97.       move.b (a5)+,l06-op06+$0602(a3)
  98. l06:  jmp 0(a3)
  99.  
  100. op08:
  101.       move.b d4,(a4)
  102.       tst.b -(a4)
  103.       move.b (a5)+,l08-op08+$0802(a3)
  104. l08:  jmp 0(a3)
  105.  
  106. op09:
  107.       move d4,ccr
  108.       or.b (a5)+,d5
  109.       move sr,d4
  110.       move.b (a5)+,l09-op09+$0902(a3)
  111. l09:  jmp 0(a3)
  112.  
  113. op0a:
  114.       add.b d5,d5
  115.       move sr,d4
  116.       move.b (a5)+,l0a-op0a+$0a02(a3)
  117. l0a:  jmp 0(a3)
  118.  
  119. op0d:
  120.       move.b (a5)+,-(a2)
  121.       move.b (a5)+,-(a2)
  122.       move (a2)+,d2
  123.       move d4,ccr
  124.       or.b (a6,d2.l),d5
  125.       move sr,d4
  126.       move.b (a5)+,l0d-op0d+$0d02(a3)
  127. l0d:  jmp 0(a3)
  128.  
  129. op0e:
  130.       move.b (a5)+,-(a2)
  131.       move.b (a5)+,-(a2)
  132.       move (a2)+,d2
  133.       move.b (a6,d2.l),d3
  134.       add.b d3,(a6,d2.l)
  135.       move sr,d4
  136.       move.b (a5)+,l0e-op0e+$0e02(a3)
  137. l0e:  jmp 0(a3)
  138.  
  139. op10:
  140.       move.b (a5)+,d2
  141.       btst #3,d4
  142.       bne rt10
  143.       ext d2
  144.       add d2,a5
  145. rt10: move.b (a5)+,l10-op10+$1002(a3)
  146. l10:  jmp 0(a3)
  147.  
  148. op11:
  149.       move.b (a5)+,d3
  150.       move.b (a6,d3.l),-(a2)
  151.       move.b 1(a6,d3.l),-(a2)
  152.       move (a2)+,d2
  153.       add d7,d2
  154.       move d4,ccr
  155.       or.b (a6,d2.l),d5
  156.       move sr,d4
  157.       move.b (a5)+,l11-op11+$1102(a3)
  158. l11:  jmp 0(a3)
  159.  
  160. ora11:
  161.       move.b (a5)+,d3
  162.       move.b (a6,d3.l),-(a2)
  163.       move.b 1(a6,d3.l),-(a2)
  164.       move (a2)+,d2
  165.       add d7,d2
  166.       cmp #$d000,d2
  167.       bcs or
  168.       sub #$d000,d2
  169.       lea grbss,a0
  170.       move d4,ccr
  171.       or.b (a0,d2.l),d5
  172.       move sr,d4
  173.       move.b (a5)+,l11b-ora11+$1102(a3)
  174. l11b: jmp 0(a3)
  175. or:   move d4,ccr
  176.       or.b (a6,d2.l),d5
  177.       move sr,d4
  178.       move.b (a5)+,l11c-ora11+$1102(a3)
  179. l11c: jmp 0(a3)
  180.  
  181. op15:
  182.       move.b (a5)+,d3
  183.       add.b d6,d3
  184.       move d4,ccr
  185.       or.b (a6,d3.l),d5
  186.       move sr,d4
  187.       move.b (a5)+,l15-op15+$1502(a3)
  188. l15:  jmp 0(a3)
  189.  
  190. op16:
  191.       move.b (a5)+,d3
  192.       add.b d6,d3
  193.       move.b (a6,d3.l),d2
  194.       add.b d2,(a6,d3.l)
  195.       move sr,d4
  196.       move.b (a5)+,l16-op16+$1602(a3)
  197. l16:  jmp 0(a3)
  198.  
  199. op18:
  200.       and.b #$ee,d4
  201.       move.b (a5)+,l18-op18+$1802(a3)
  202. l18:  jmp 0(a3)
  203.  
  204. op19:
  205.       move.b (a5)+,-(a2)
  206.       move.b (a5)+,-(a2)
  207.       move (a2)+,d2
  208.       add d7,d2
  209.       move d4,ccr
  210.       or.b (a6,d2.l),d5
  211.       move sr,d4
  212.       move.b (a5)+,l19-op19+$1902(a3)
  213. l19:  jmp 0(a3)
  214.  
  215. op1d:
  216.       move.b (a5)+,-(a2)
  217.       move.b (a5)+,-(a2)
  218.       move (a2)+,d2
  219.       add d6,d2
  220.       move d4,ccr
  221.       or.b (a6,d2.l),d5
  222.       move sr,d4
  223.       move.b (a5)+,l1d-op1d+$1d02(a3)
  224. l1d:  jmp 0(a3)
  225.  
  226. op1e:
  227.       move.b (a5)+,-(a2)
  228.       move.b (a5)+,-(a2)
  229.       move (a2)+,d2
  230.       add d6,d2
  231.       move.b (a6,d2.l),d3
  232.       add.b d3,(a6,d2.l)
  233.       move sr,d4
  234.       move.b (a5)+,l1e-op1e+$1e02(a3)
  235. l1e:  jmp 0(a3)
  236.  
  237. op20:
  238.       move.b (a5)+,-(a2)
  239.       move.b (a5),-(a2)
  240.       move (a2)+,d2
  241.       sub.l a6,a5
  242.       move a5,-(a2)
  243.       move.b (a2)+,(a4)
  244.       move.b (a2)+,-(a4)
  245.       tst.b -(a4)
  246.       cmp #$ff81,d2
  247.       bcc jr64
  248.       lea (a6,d2.l),a5
  249.       move.b (a5)+,l20-op20+$2002(a3)
  250. l20:  jmp 0(a3)
  251. jr64: jmp jmp64
  252.  
  253. op21:
  254.       move.b (a5)+,d3
  255.       add.b d6,d3
  256.       move.b (a6,d3.l),-(a2)
  257.       move.b 1(a6,d3.l),-(a2)
  258.       move (a2)+,d2
  259.       move d4,ccr
  260.       and.b (a6,d2.l),d5
  261.       move sr,d4
  262.       move.b (a5)+,l21-op21+$2102(a3)
  263. l21:  jmp 0(a3)
  264.  
  265. op24:
  266.       move.b (a5)+,d3
  267.       move.b (a6,d3.l),d2
  268.       move.b d5,d3
  269.       move d4,ccr
  270.       and.b d2,d3
  271.       move sr,d4
  272.       and.b #$f5,d4
  273.       btst #6,d2
  274.       beq l241
  275.       or #$02,d4
  276. l241: tst.b d2
  277.       bpl l242
  278.       or #$08,d4
  279. l242: move.b (a5)+,l24-op24+$2402(a3)
  280. l24:  jmp 0(a3)
  281.  
  282. op25:
  283.       move.b (a5)+,d3
  284.       move d4,ccr
  285.       and.b (a6,d3.l),d5
  286.       move sr,d4
  287.       move.b (a5)+,l25-op25+$2502(a3)
  288. l25:  jmp 0(a3)
  289.  
  290. op26:
  291.       move.b (a5)+,d3
  292.       move.b (a6,d3.l),d2
  293.       move d4,ccr
  294.       roxl.b #1,d2
  295.       move sr,d4
  296.       move.b d2,(a6,d3.l)
  297.       move.b (a5)+,l26-op26+$2602(a3)
  298. l26:  jmp 0(a3)
  299.  
  300. op28:
  301.       tst.b (a4)+
  302.       move.b (a4),d4
  303.       move.b (a5)+,l28-op28+$2802(a3)
  304. l28:  jmp 0(a3)
  305.  
  306. op29:
  307.       move d4,ccr
  308.       and.b (a5)+,d5
  309.       move sr,d4
  310.       move.b (a5)+,l29-op29+$2902(a3)
  311. l29:  jmp 0(a3)
  312.  
  313. op2a:
  314.       move d4,ccr
  315.       roxl.b #1,d5
  316.       move sr,d4
  317.       move.b (a5)+,l2a-op2a+$2a02(a3)
  318. l2a:  jmp 0(a3)
  319.  
  320. op2c:
  321.       move.b (a5)+,-(a2)
  322.       move.b (a5)+,-(a2)
  323.       move (a2)+,d2
  324.       move.b (a6,d2.l),d2
  325.       move.b d2,d3
  326.       move d4,ccr
  327.       and.b d5,d3
  328.       move sr,d4
  329.       and.b #$f5,d4
  330.       btst #6,d2
  331.       beq l2c1
  332.       or #$02,d4
  333. l2c1: tst.b d2
  334.       bpl l2c2
  335.       or #$08,d4
  336. l2c2: move.b (a5)+,l2c-op2c+$2c02(a3)
  337. l2c:  jmp 0(a3)
  338.  
  339. op2d:
  340.       move.b (a5)+,-(a2)
  341.       move.b (a5)+,-(a2)
  342.       move (a2)+,d2
  343.       move d4,ccr
  344.       and.b (a6,d2.l),d5
  345.       move sr,d4
  346.       move.b (a5)+,l2d-op2d+$2d02(a3)
  347. l2d:  jmp 0(a3)
  348.  
  349. op2e:
  350.       move.b (a5)+,-(a2)
  351.       move.b (a5)+,-(a2)
  352.       move (a2)+,d2
  353.       move.b (a6,d2.l),d3
  354.       move d4,ccr
  355.       roxl.b #1,d3
  356.       move sr,d4
  357.       move.b d3,(a6,d2.l)
  358.       move.b (a5)+,l2e-op2e+$2e02(a3)
  359. l2e:  jmp 0(a3)
  360.  
  361. op30:
  362.       move.b (a5)+,d2
  363.       btst #3,d4
  364.       beq rt30
  365.       ext d2
  366.       add d2,a5
  367. rt30: move.b (a5)+,l30-op30+$3002(a3)
  368. l30:  jmp 0(a3)
  369.  
  370. op31:
  371.       move.b (a5)+,d3
  372.       move.b (a6,d3.l),-(a2)
  373.       move.b 1(a6,d3.l),-(a2)
  374.       move (a2)+,d2
  375.       add d7,d2
  376.       move d4,ccr
  377.       and.b (a6,d2.l),d5
  378.       move sr,d4
  379.       move.b (a5)+,l31-op31+$3102(a3)
  380. l31:  jmp 0(a3)
  381.  
  382. and31:
  383.       move.b (a5)+,d3
  384.       move.b (a6,d3.l),-(a2)
  385.       move.b 1(a6,d3.l),-(a2)
  386.       move (a2)+,d2
  387.       add d7,d2
  388.       cmp #$d000,d2
  389.       bcs and
  390.       sub #$d000,d2
  391.       lea grbss,a0
  392.       move d4,ccr
  393.       and.b (a0,d2.l),d5
  394.       move sr,d4
  395.       move.b (a5)+,l31b-and31+$3102(a3)
  396. l31b: jmp 0(a3)
  397. and:  move d4,ccr
  398.       and.b (a6,d2.l),d5
  399.       move sr,d4
  400.       move.b (a5)+,l31c-and31+$3102(a3)
  401. l31c: jmp 0(a3)
  402.  
  403. op35:
  404.       move.b (a5)+,d3
  405.       add.b d6,d3
  406.       move d4,ccr
  407.       and.b (a6,d3.l),d5
  408.       move sr,d4
  409.       move.b (a5)+,l35-op35+$3502(a3)
  410. l35:  jmp 0(a3)
  411.  
  412. op36:
  413.       move.b (a5)+,d3
  414.       add d6,d3
  415.       move.b (a6,d3.l),d2
  416.       move d4,ccr
  417.       roxl.b #1,d2
  418.       move sr,d4
  419.       move.b d2,(a6,d3.l)
  420.       move.b (a5)+,l36-op36+$3602(a3)
  421. l36:  jmp 0(a3)
  422.  
  423. op38:
  424.       or.b d1,d4
  425.       move.b (a5)+,l38-op38+$3802(a3)
  426. l38:  jmp 0(a3)
  427.  
  428. op39:
  429.       move.b (a5)+,-(a2)
  430.       move.b (a5)+,-(a2)
  431.       move (a2)+,d2
  432.       add d7,d2
  433.       move d4,ccr
  434.       and.b (a6,d2.l),d5
  435.       move sr,d4
  436.       move.b (a5)+,l39-op39+$3902(a3)
  437. l39:  jmp 0(a3)
  438.  
  439. op3d:
  440.       move.b (a5)+,-(a2)
  441.       move.b (a5)+,-(a2)
  442.       move (a2)+,d2
  443.       add d6,d2
  444.       move d4,ccr
  445.       and.b (a6,d2.l),d5
  446.       move sr,d4
  447.       move.b (a5)+,l3d-op3d+$3d02(a3)
  448. l3d:  jmp 0(a3)
  449.  
  450. op3e:
  451.       move.b (a5)+,-(a2)
  452.       move.b (a5)+,-(a2)
  453.       move (a2)+,d2
  454.       add d6,d2
  455.       move.b (a6,d2.l),d3
  456.       move d4,ccr
  457.       roxl.b #1,d3
  458.       move sr,d4
  459.       move.b d3,(a6,d2.l)
  460.       move.b (a5)+,l3e-op3e+$3e02(a3)
  461. l3e:  jmp 0(a3)
  462.  
  463. op40:
  464.       tst.b (a4)+
  465.       move.b (a4)+,d4
  466.       move.b (a4)+,-(a2)
  467.       move.b (a4),-(a2)
  468.       move (a2)+,d2
  469.       lea (a6,d2.l),a5
  470.       move.b (a5)+,l40-op40+$4002(a3)
  471. l40:  jmp 0(a3)
  472.  
  473. op41:
  474.       move.b (a5)+,d3
  475.       add.b d6,d3
  476.       move.b (a6,d3.l),-(a2)
  477.       move.b 1(a6,d3.l),-(a2)
  478.       move (a2)+,d2
  479.       move.b (a6,d2.l),d3
  480.       move d4,ccr
  481.       eor.b d3,d5
  482.       move sr,d4
  483.       move.b (a5)+,l41-op41+$4102(a3)
  484. l41:  jmp 0(a3)
  485.  
  486. op45:
  487.       move.b (a5)+,d3
  488.       move.b (a6,d3.l),d3
  489.       move d4,ccr
  490.       eor.b d3,d5
  491.       move sr,d4
  492.       move.b (a5)+,l45-op45+$4502(a3)
  493. l45:  jmp 0(a3)
  494.  
  495. op46:
  496.       move.b (a5)+,d3
  497.       move.b (a6,d3.l),d2
  498.       lsr.b #1,d2
  499.       move sr,d4
  500.       move.b d2,(a6,d3.l)
  501.       move.b (a5)+,l46-op46+$4602(a3)
  502. l46:  jmp 0(a3)
  503.  
  504. op48:
  505.       move.b d5,(a4)
  506.       tst.b -(a4)
  507.       move.b (a5)+,l48-op48+$4802(a3)
  508. l48:  jmp 0(a3)
  509.  
  510. op49:
  511.       move.b (a5)+,d3
  512.       move d4,ccr
  513.       eor.b d3,d5
  514.       move sr,d4
  515.       move.b (a5)+,l49-op49+$4902(a3)
  516. l49:  jmp 0(a3)
  517.  
  518. op4a:
  519.       lsr.b #1,d5
  520.       move sr,d4
  521.       move.b (a5)+,l4a-op4a+$4a02(a3)
  522. l4a:  jmp 0(a3)
  523.  
  524. op4c:
  525.       move.b (a5),-(a2)
  526.       move.b 1(a5),-(a2)
  527.       move (a2)+,d2
  528.       cmp #$ff81,d2
  529.       bcc jp64
  530.       lea (a6,d2.l),a5
  531.       move.b (a5)+,l4c-op4c+$4c02(a3)
  532. l4c:  jmp 0(a3)
  533. jp64: jmp jmp64
  534.  
  535. op4d:
  536.       move.b (a5)+,-(a2)
  537.       move.b (a5)+,-(a2)
  538.       move (a2)+,d2
  539.       move.b (a6,d2.l),d3
  540.       move d4,ccr
  541.       eor.b d3,d5
  542.       move sr,d4
  543.       move.b (a5)+,l4d-op4d+$4d02(a3)
  544. l4d:  jmp 0(a3)
  545.  
  546. op4e:
  547.       move.b (a5)+,-(a2)
  548.       move.b (a5)+,-(a2)
  549.       move (a2)+,d2
  550.       move.b (a6,d2.l),d3
  551.       lsr.b #1,d3
  552.       move sr,d4
  553.       move.b d3,(a6,d2.l)
  554.       move.b (a5)+,l4e-op4e+$4e02(a3)
  555. l4e:  jmp 0(a3)
  556.  
  557. op50:
  558.       move.b (a5)+,d2
  559.       btst #1,d4
  560.       bne rt50
  561.       ext d2
  562.       add d2,a5
  563. rt50: move.b (a5)+,l50-op50+$5002(a3)
  564. l50:  jmp 0(a3)
  565.  
  566. op51:
  567.       move.b (a5)+,d3
  568.       move.b (a6,d3.l),-(a2)
  569.       move.b 1(a6,d3.l),-(a2)
  570.       move (a2)+,d2
  571.       add d7,d2
  572.       move.b (a6,d2.l),d3
  573.       move d4,ccr
  574.       eor.b d3,d5
  575.       move sr,d4
  576.       move.b (a5)+,l51-op51+$5102(a3)
  577. l51:  jmp 0(a3)
  578.  
  579. eor51:
  580.       move.b (a5)+,d3
  581.       move.b (a6,d3.l),-(a2)
  582.       move.b 1(a6,d3.l),-(a2)
  583.       move (a2)+,d2
  584.       add d7,d2
  585.       cmp #$d000,d2
  586.       bcs eor
  587.       sub #$d000,d2
  588.       lea grbss,a0
  589.       move.b (a0,d2.l),d3
  590.       move d4,ccr
  591.       eor.b d3,d5
  592.       move sr,d4
  593.       move.b (a5)+,l51b-eor51+$5102(a3)
  594. l51b: jmp 0(a3)
  595. eor:  move.b (a6,d2.l),d3
  596.       move d4,ccr
  597.       eor.b d3,d5
  598.       move sr,d4
  599.       move.b (a5)+,l51c-eor51+$5102(a3)
  600. l51c: jmp 0(a3)
  601.  
  602. op55:
  603.       move.b (a5)+,d3
  604.       add.b d6,d3
  605.       move.b (a6,d3.l),d3
  606.       move d4,ccr
  607.       eor.b d3,d5
  608.       move sr,d4
  609.       move.b (a5)+,l55-op55+$5502(a3)
  610. l55:  jmp 0(a3)
  611.  
  612. op56:
  613.       move.b (a5)+,d3
  614.       add.b d6,d3
  615.       move.b (a6,d3.l),d2
  616.       lsr.b #1,d2
  617.       move sr,d4
  618.       move.b d2,(a6,d3.l)
  619.       move.b (a5)+,l56-op56+$5602(a3)
  620. l56:  jmp 0(a3)
  621.  
  622. op58:
  623.       bclr #31,d4
  624.       move.b (a5)+,l58-op58+$5802(a3)
  625. l58:  jmp 0(a3)
  626.  
  627. op59:
  628.       move.b (a5)+,-(a2)
  629.       move.b (a5)+,-(a2)
  630.       move (a2)+,d2
  631.       add d7,d2
  632.       move.b (a6,d2.l),d3
  633.       move d4,ccr
  634.       eor.b d3,d5
  635.       move sr,d4
  636.       move.b (a5)+,l59-op59+$5902(a3)
  637. l59:  jmp 0(a3)
  638.  
  639. op5d:
  640.       move.b (a5)+,-(a2)
  641.       move.b (a5)+,-(a2)
  642.       move (a2)+,d2
  643.       add d6,d2
  644.       move.b (a6,d2.l),d3
  645.       move d4,ccr
  646.       eor.b d3,d5
  647.       move sr,d4
  648.       move.b (a5)+,l5d-op5d+$5d02(a3)
  649. l5d:  jmp 0(a3)
  650.  
  651. op5e:
  652.       move.b (a5)+,-(a2)
  653.       move.b (a5)+,-(a2)
  654.       move (a2)+,d2
  655.       add d6,d2
  656.       move.b (a6,d2.l),d3
  657.       lsr.b #1,d3
  658.       move sr,d4
  659.       move.b d3,(a6,d2.l)
  660.       move.b (a5)+,l5e-op5e+$5e02(a3)
  661. l5e:  jmp 0(a3)
  662.  
  663. op60:
  664.       tst.b (a4)+
  665.       move.b (a4)+,-(a2)
  666.       move.b (a4),-(a2)
  667.       move (a2)+,d2
  668.       lea 1(a6,d2.l),a5
  669.       move.b (a5)+,l60-op60+$6002(a3)
  670. l60:  jmp 0(a3)
  671.  
  672. op61:
  673.       move.b (a5)+,d3
  674.       add.b d6,d3
  675.       move.b (a6,d3.l),-(a2)
  676.       move.b 1(a6,d3.l),-(a2)
  677.       move (a2)+,d2
  678.       move.b (a6,d2.l),d3
  679.       move d4,ccr
  680.       btst d1,d4
  681.       bne dc61
  682.       addx.b d3,d5
  683.       move sr,d4
  684.       move.b (a5)+,l61-op61+$6102(a3)
  685. l61:  jmp 0(a3)
  686. dc61: or #$04,ccr
  687.       abcd d3,d5
  688.       move sr,d4
  689.       move.b (a5)+,d61-op61+$6102(a3)
  690. d61:  jmp 0(a3)
  691.  
  692. op65:
  693.       move.b (a5)+,d3
  694.       move.b (a6,d3.l),d3
  695.       move d4,ccr
  696.       btst d1,d4
  697.       bne dc65
  698.       addx.b d3,d5
  699.       move sr,d4
  700.       move.b (a5)+,l65-op65+$6502(a3)
  701. l65:  jmp 0(a3)
  702. dc65: or #$04,ccr
  703.       abcd d3,d5
  704.       move sr,d4
  705.       move.b (a5)+,d65-op65+$6502(a3)
  706. d65:  jmp 0(a3)
  707.  
  708. op66:
  709.       move.b (a5)+,d3
  710.       move.b (a6,d3.l),d2
  711.       move d4,ccr
  712.       roxr.b #1,d2
  713.       move sr,d4
  714.       move.b d2,(a6,d3.l)
  715.       move.b (a5)+,l66-op66+$6602(a3)
  716. l66:  jmp 0(a3)
  717.  
  718. op68:
  719.       tst.b (a4)+
  720.       move d4,ccr
  721.       move.b (a4),d5
  722.       move sr,d4
  723.       move.b (a5)+,l68-op68+$6802(a3)
  724. l68:  jmp 0(a3)
  725.  
  726. op69:
  727.       move.b (a5)+,d3
  728.       move d4,ccr
  729.       btst d1,d4
  730.       bne dc69
  731.       addx.b d3,d5
  732.       move sr,d4
  733.       move.b (a5)+,l69-op69+$6902(a3)
  734. l69:  jmp 0(a3)
  735. dc69: or #$04,ccr
  736.       abcd d3,d5
  737.       move sr,d4
  738.       move.b (a5)+,d69-op69+$6902(a3)
  739. d69:  jmp 0(a3)
  740.  
  741. op6a:
  742.       move d4,ccr
  743.       roxr.b #1,d5
  744.       move sr,d4
  745.       move.b (a5)+,l6a-op6a+$6a02(a3)
  746. l6a:  jmp 0(a3)
  747.  
  748. op6c:
  749.       move.b (a5)+,-(a2)
  750.       move.b (a5),-(a2)
  751.       move (a2)+,d2
  752.       cmp.b #$ff,d2
  753.       bne op6c1
  754.       move.l d2,d0
  755.       clr.b d0
  756.       move.b (a6,d0.l),-(sp)
  757.       bra op6c2
  758. op6c1:move.b 1(a6,d2.l),-(sp)
  759. op6c2:move.b (a6,d2.l),1(sp)
  760.       move (sp)+,d2
  761.       lea (a6,d2.l),a5
  762.       move.b (a5)+,l6c-op6c+$6c02(a3)
  763. l6c:  jmp 0(a3)
  764.  
  765. op6d:
  766.       move.b (a5)+,-(a2)
  767.       move.b (a5)+,-(a2)
  768.       move (a2)+,d2
  769.       move.b (a6,d2.l),d3
  770.       move d4,ccr
  771.       btst d1,d4
  772.       bne dc6d
  773. ndcad:addx.b d3,d5
  774.       move sr,d4
  775.       move.b (a5)+,l6d-op6d+$6d02(a3)
  776. l6d:  jmp 0(a3)
  777. dc6d: or #$04,ccr
  778.       abcd d3,d5
  779.       move sr,d4
  780.       move.b (a5)+,d6d-op6d+$6d02(a3)
  781. d6d:  jmp 0(a3)
  782.  
  783. op6e:
  784.       move.b (a5)+,-(a2)
  785.       move.b (a5)+,-(a2)
  786.       move (a2)+,d2
  787.       move.b (a6,d2.l),d3
  788.       move d4,ccr
  789.       roxr.b #1,d3
  790.       move sr,d4
  791.       move.b d3,(a6,d2.l)
  792.       move.b (a5)+,l6e-op6e+$6e02(a3)
  793. l6e:  jmp 0(a3)
  794.  
  795. op70:
  796.       move.b (a5)+,d2
  797.       btst #1,d4
  798.       beq rt70
  799.       ext d2
  800.       add d2,a5
  801. rt70: move.b (a5)+,l70-op70+$7002(a3)
  802. l70:  jmp 0(a3)
  803.  
  804. op71:
  805.       move.b (a5)+,d3
  806.       move.b (a6,d3.l),-(a2)
  807.       move.b 1(a6,d3.l),-(a2)
  808.       move (a2)+,d2
  809.       add d7,d2
  810.       move.b (a6,d2.l),d3
  811.       move d4,ccr
  812.       btst d1,d4
  813.       bne dc71
  814.       addx.b d3,d5
  815.       move sr,d4
  816.       move.b (a5)+,l71-op71+$7102(a3)
  817. l71:  jmp 0(a3)
  818. dc71: or #$04,ccr
  819.       abcd d3,d5
  820.       move sr,d4
  821.       move.b (a5)+,d71-op71+$7102(a3)
  822. d71:  jmp 0(a3)
  823.  
  824. op75:
  825.       move.b (a5)+,d3
  826.       add.b d6,d3
  827.       move.b (a6,d3.l),d3
  828.       move d4,ccr
  829.       btst d1,d4
  830.       bne dc75
  831.       addx.b d3,d5
  832.       move sr,d4
  833.       move.b (a5)+,l75-op75+$7502(a3)
  834. l75:  jmp 0(a3)
  835. dc75: or #$04,ccr
  836.       abcd d3,d5
  837.       move sr,d4
  838.       move.b (a5)+,d75-op75+$7502(a3)
  839. d75:  jmp 0(a3)
  840.  
  841. op76:
  842.       move.b (a5)+,d3
  843.       add.b d6,d3
  844.       move.b (a6,d3.l),d2
  845.       move d4,ccr
  846.       roxr.b #1,d2
  847.       move sr,d4
  848.       move.b d2,(a6,d3.l)
  849.       move.b (a5)+,l76-op76+$7602(a3)
  850. l76:  jmp 0(a3)
  851.  
  852. op78:
  853.       bset #31,d4
  854.       move.b (a5)+,l78-op78+$7802(a3)
  855. l78:  jmp 0(a3)
  856.  
  857. op79:
  858.       move.b (a5)+,-(a2)
  859.       move.b (a5)+,-(a2)
  860.       move (a2)+,d2
  861.       add d7,d2
  862.       move.b (a6,d2.l),d3
  863.       move d4,ccr
  864.       btst d1,d4
  865.       bne dc79
  866.       addx.b d3,d5
  867.       move sr,d4
  868.       move.b (a5)+,l79-op79+$7902(a3)
  869. l79:  jmp 0(a3)
  870. dc79: or #$04,ccr
  871.       abcd d3,d5
  872.       move sr,d4
  873.       move.b (a5)+,d79-op79+$7902(a3)
  874. d79:  jmp 0(a3)
  875.  
  876. op7d:
  877.       move.b (a5)+,-(a2)
  878.       move.b (a5)+,-(a2)
  879.       move (a2)+,d2
  880.       add d6,d2
  881.       move.b (a6,d2.l),d3
  882.       move d4,ccr
  883.       btst d1,d4
  884.       bne dc7d
  885.       addx.b d3,d5
  886.       move sr,d4
  887.       move.b (a5)+,l7d-op7d+$7d02(a3)
  888. l7d:  jmp 0(a3)
  889. dc7d: or #$04,ccr
  890.       abcd d3,d5
  891.       move sr,d4
  892.       move.b (a5)+,d7d-op7d+$7d02(a3)
  893. d7d:  jmp 0(a3)
  894.  
  895. op81:
  896.       move.b (a5)+,d3
  897.       add.b d6,d3
  898.       move.b (a6,d3.l),-(a2)
  899.       move.b 1(a6,d3.l),-(a2)
  900.       move (a2)+,d2
  901.       move.b d5,(a6,d2.l)
  902.       move.b (a5)+,l81-op81+$8102(a3)
  903. l81:  jmp 0(a3)
  904.  
  905. sto81:
  906.       move.b (a5)+,d3
  907.       add.b d6,d3
  908.       move.b (a6,d3.l),-(a2)
  909.       move.b 1(a6,d3.l),-(a2)
  910.       move (a2)+,d2
  911. stoa: move d5,-(sp)
  912. sto:  cmp #$d000,d2
  913.       bcc grap
  914. grap2:move.b d5,(a6,d2.l)
  915.       move.l d2,d0
  916.       move.b $0288(a6),d2
  917.       asl #8,d2
  918.       sub d2,d0
  919.       bcs c81
  920.       cmp #1000,d0
  921.       bcc c81
  922.       jmp its
  923. itret:moveq #$10,d1
  924. c81:  move (sp)+,d5
  925.       lea l81b(pc),a0
  926.       move.b (a5)+,2(a0)
  927. l81b: jmp 0(a3)
  928. grap: sub #$d000,d2
  929.       cmp #$1000,d2
  930.       bcc grap1
  931.       btst #2,$01(a6)
  932.       beq grap1
  933.       add #$d000,d2
  934.       move.b d5,(a6,d2.l)
  935.       bra c81
  936. grap1:lea grbss,a0
  937.       move.b d5,(a0,d2.l)
  938.       btst #5,c64+$d011                 *Grafik-Modus?
  939.       beq c81                           *nein-
  940.       sub #$1000,d2
  941.       cmp #8000,d2
  942.       bcc c81
  943.       jmp graph
  944.  
  945. op84:
  946.       move.b (a5)+,d3
  947.       move.b d7,(a6,d3.l)
  948.       move.b (a5)+,l84-op84+$8402(a3)
  949. l84:  jmp 0(a3)
  950.  
  951. op85:
  952.       move.b (a5)+,d3
  953.       move.b d5,(a6,d3.l)
  954.       move.b (a5)+,l85-op85+$8502(a3)
  955. l85:  jmp 0(a3)
  956.  
  957. op86:
  958.       move.b (a5)+,d3
  959.       move.b d6,(a6,d3.l)
  960.       move.b (a5)+,l86-op86+$8602(a3)
  961. l86:  jmp 0(a3)
  962.  
  963. op88:
  964.       subq.b #1,d7
  965.       move d4,ccr
  966.       tst.b d7
  967.       move sr,d4
  968.       move.b (a5)+,l88-op88+$8802(a3)
  969. l88:  jmp 0(a3)
  970.  
  971. op8a:
  972.       move d4,ccr
  973.       move.b d6,d5
  974.       move sr,d4
  975.       move.b (a5)+,l8a-op8a+$8a02(a3)
  976. l8a:  jmp 0(a3)
  977.  
  978. op8c:
  979.       move.b (a5)+,-(a2)
  980.       move.b (a5)+,-(a2)
  981.       move (a2)+,d2
  982.       move.b d7,(a6,d2.l)
  983.       move.b (a5)+,l8c-op8c+$8c02(a3)
  984. l8c:  jmp 0(a3)
  985.  
  986. sto8c:
  987.       move.b (a5)+,-(a2)
  988.       move.b (a5)+,-(a2)
  989.       move (a2)+,d2
  990.       move d5,-(sp)
  991.       move.b d7,d5
  992.       jmp sto
  993.  
  994. op8d:
  995.       move.b (a5)+,-(a2)
  996.       move.b (a5)+,-(a2)
  997.       move (a2)+,d2
  998.       move.b d5,(a6,d2.l)
  999.       move.b (a5)+,l8d-op8d+$8d02(a3)
  1000. l8d:  jmp 0(a3)
  1001.       
  1002. sto8d:
  1003.       move.b (a5)+,-(a2)
  1004.       move.b (a5)+,-(a2)
  1005.       move (a2)+,d2
  1006.       jmp stoa
  1007.  
  1008. op8e:
  1009.       move.b (a5)+,-(a2)
  1010.       move.b (a5)+,-(a2)
  1011.       move (a2)+,d2
  1012.       move.b d6,(a6,d2.l)
  1013.       move.b (a5)+,l8e-op8e+$8e02(a3)
  1014. l8e:  jmp 0(a3)
  1015.  
  1016. sto8e:
  1017.       move.b (a5)+,-(a2)
  1018.       move.b (a5)+,-(a2)
  1019.       move (a2)+,d2
  1020.       move d5,-(sp)
  1021.       move.b d6,d5
  1022.       jmp sto
  1023.  
  1024. op90:
  1025.       move.b (a5)+,d2
  1026.       btst #4,d4
  1027.       bne rt90
  1028.       ext d2
  1029.       add d2,a5
  1030. rt90: move.b (a5)+,l90-op90+$9002(a3)
  1031. l90:  jmp 0(a3)
  1032.  
  1033. op91:
  1034.       move.b (a5)+,d3
  1035.       move.b (a6,d3.l),-(a2)
  1036.       move.b 1(a6,d3.l),-(a2)
  1037.       move (a2)+,d2
  1038.       add d7,d2
  1039.       move.b d5,(a6,d2.l)
  1040.       move.b (a5)+,l91-op91+$9102(a3)
  1041. l91:  jmp 0(a3)
  1042.  
  1043. sto91:
  1044.       move.b (a5)+,d3
  1045.       move.b (a6,d3.l),-(a2)
  1046.       move.b 1(a6,d3.l),-(a2)
  1047.       move (a2)+,d2
  1048.       add d7,d2
  1049.       jmp stoa
  1050.  
  1051. op94:
  1052.       move.b (a5)+,d3
  1053.       add.b d6,d3
  1054.       move.b d7,(a6,d3.l)
  1055.       move.b (a5)+,l94-op94+$9402(a3)
  1056. l94:  jmp 0(a3)
  1057.  
  1058. op95:
  1059.       move.b (a5)+,d3
  1060.       add.b d6,d3
  1061.       move.b d5,(a6,d3.l)
  1062.       move.b (a5)+,l95-op95+$9502(a3)
  1063. l95:  jmp 0(a3)
  1064.  
  1065. op96:
  1066.       move.b (a5)+,d3
  1067.       add.b d7,d3
  1068.       move.b d6,(a6,d3.l)
  1069.       move.b (a5)+,l96-op96+$9602(a3)
  1070. l96:  jmp 0(a3)
  1071.  
  1072. op98:
  1073.       move d4,ccr
  1074.       move.b d7,d5
  1075.       move sr,d4
  1076.       move.b (a5)+,l98-op98+$9802(a3)
  1077. l98:  jmp 0(a3)
  1078.  
  1079. op99:
  1080.       move.b (a5)+,-(a2)
  1081.       move.b (a5)+,-(a2)
  1082.       move (a2)+,d2
  1083.       add d7,d2
  1084.       move.b d5,(a6,d2.l)
  1085.       move.b (a5)+,l99-op99+$9902(a3)
  1086. l99:  jmp 0(a3)
  1087.  
  1088. sto99:
  1089.       move.b (a5)+,-(a2)
  1090.       move.b (a5)+,-(a2)
  1091.       move (a2)+,d2
  1092.       add d7,d2
  1093.       jmp stoa
  1094.  
  1095. op9a:
  1096.       lea $0100(a6),a4
  1097.       add.l d6,a4
  1098.       move.b (a5)+,l9a-op9a+$9a02(a3)
  1099. l9a:  jmp 0(a3)
  1100.  
  1101. op9d:
  1102.       move.b (a5)+,-(a2)
  1103.       move.b (a5)+,-(a2)
  1104.       move (a2)+,d2
  1105.       add d6,d2
  1106.       move.b d5,(a6,d2.l)
  1107.       move.b (a5)+,l9d-op9d+$9d02(a3)
  1108. l9d:  jmp 0(a3)
  1109.  
  1110. sto9d:
  1111.       move.b (a5)+,-(a2)
  1112.       move.b (a5)+,-(a2)
  1113.       move (a2)+,d2
  1114.       add d6,d2
  1115.       jmp stoa
  1116.  
  1117. opa0:
  1118.       move d4,ccr
  1119.       move.b (a5)+,d7
  1120.       move sr,d4
  1121.       move.b (a5)+,la0-opa0+$a002(a3)
  1122. la0:  jmp 0(a3)
  1123.  
  1124. opa1:
  1125.       move.b (a5)+,d3
  1126.       add.b d6,d3
  1127.       move.b (a6,d3.l),-(a2)
  1128.       move.b 1(a6,d3.l),-(a2)
  1129.       move (a2)+,d2
  1130.       move d4,ccr
  1131.       move.b (a6,d2.l),d5
  1132.       move sr,d4
  1133.       move.b (a5)+,la1-opa1+$a102(a3)
  1134. la1:  jmp 0(a3)
  1135.  
  1136. opa2:
  1137.       move d4,ccr
  1138.       move.b (a5)+,d6
  1139.       move sr,d4
  1140.       move.b (a5)+,la2-opa2+$a202(a3)
  1141. la2:  jmp 0(a3)
  1142.  
  1143. opa4:
  1144.       move.b (a5)+,d3
  1145.       move d4,ccr
  1146.       move.b (a6,d3.l),d7
  1147.       move sr,d4
  1148.       move.b (a5)+,la4-opa4+$a402(a3)
  1149. la4:  jmp 0(a3)
  1150.  
  1151. opa5:
  1152.       move.b (a5)+,d3
  1153.       move d4,ccr
  1154.       move.b (a6,d3.l),d5
  1155.       move sr,d4
  1156.       move.b (a5)+,la5-opa5+$a502(a3)
  1157. la5:  jmp 0(a3)
  1158.  
  1159. opa6:
  1160.       move.b (a5)+,d3
  1161.       move d4,ccr
  1162.       move.b (a6,d3.l),d6
  1163.       move sr,d4
  1164.       move.b (a5)+,la6-opa6+$a602(a3)
  1165. la6:  jmp 0(a3)
  1166.  
  1167. opa8:
  1168.       move d4,ccr
  1169.       move.b d5,d7
  1170.       move sr,d4
  1171.       move.b (a5)+,la8-opa8+$a802(a3)
  1172. la8:  jmp 0(a3)
  1173.  
  1174. opa9:
  1175.       move d4,ccr
  1176.       move.b (a5)+,d5
  1177.       move sr,d4
  1178.       move.b (a5)+,la9-opa9+$a902(a3)
  1179. la9:  jmp 0(a3)
  1180.  
  1181. opaa:
  1182.       move d4,ccr
  1183.       move.b d5,d6
  1184.       move sr,d4
  1185.       move.b (a5)+,laa-opaa+$aa02(a3)
  1186. laa:  jmp 0(a3)
  1187.  
  1188. opac:
  1189.       move.b (a5)+,-(a2)
  1190.       move.b (a5)+,-(a2)
  1191.       move (a2)+,d2
  1192.       move d4,ccr
  1193.       move.b (a6,d2.l),d7
  1194.       move sr,d4
  1195.       move.b (a5)+,lac-opac+$ac02(a3)
  1196. lac:  jmp 0(a3)
  1197.  
  1198. opad:
  1199.       move.b (a5)+,-(a2)
  1200.       move.b (a5)+,-(a2)
  1201.       move (a2)+,d2
  1202.       move d4,ccr
  1203.       move.b (a6,d2.l),d5
  1204.       move sr,d4
  1205.       move.b (a5)+,lad-opad+$ad02(a3)
  1206. lad:  jmp 0(a3)
  1207.  
  1208. opae:
  1209.       move.b (a5)+,-(a2)
  1210.       move.b (a5)+,-(a2)
  1211.       move (a2)+,d2
  1212.       move d4,ccr
  1213.       move.b (a6,d2.l),d6
  1214.       move sr,d4
  1215.       move.b (a5)+,lae-opae+$ae02(a3)
  1216. lae:  jmp 0(a3)
  1217.  
  1218. opb0:
  1219.       move.b (a5)+,d2
  1220.       btst #4,d4
  1221.       beq rtb0
  1222.       ext d2
  1223.       add d2,a5
  1224. rtb0: move.b (a5)+,lb0-opb0+$b002(a3)
  1225. lb0:  jmp 0(a3)
  1226.  
  1227. opb1:
  1228.       move.b (a5)+,d3
  1229.       move.b (a6,d3.l),-(a2)
  1230.       move.b 1(a6,d3.l),-(a2)
  1231.       move (a2)+,d2
  1232.       add d7,d2
  1233.       move d4,ccr
  1234.       move.b (a6,d2.l),d5
  1235.       move sr,d4
  1236.       move.b (a5)+,lb1-opb1+$b102(a3)
  1237. lb1:  jmp 0(a3)
  1238.  
  1239. opb4:
  1240.       move.b (a5)+,d3
  1241.       add.b d6,d3
  1242.       move d4,ccr
  1243.       move.b (a6,d3.l),d7
  1244.       move sr,d4
  1245.       move.b (a5)+,lb4-opb4+$b402(a3)
  1246. lb4:  jmp 0(a3)
  1247.  
  1248. opb5:
  1249.       move.b (a5)+,d3
  1250.       add.b d6,d3
  1251.       move d4,ccr
  1252.       move.b (a6,d3.l),d5
  1253.       move sr,d4
  1254.       move.b (a5)+,lb5-opb5+$b502(a3)
  1255. lb5:  jmp 0(a3)
  1256.  
  1257. opb6:
  1258.       move.b (a5)+,d3
  1259.       add.b d7,d3
  1260.       move d4,ccr
  1261.       move.b (a6,d3.l),d6
  1262.       move sr,d4
  1263.       move.b (a5)+,lb6-opb6+$b602(a3)
  1264. lb6:  jmp 0(a3)
  1265.  
  1266. opb8:
  1267.       and.b #$fd,d4
  1268.       move.b (a5)+,lb8-opb8+$b802(a3)
  1269. lb8:  jmp 0(a3)
  1270.  
  1271. opb9:
  1272.       move.b (a5)+,-(a2)
  1273.       move.b (a5)+,-(a2)
  1274.       move (a2)+,d2
  1275.       add d7,d2
  1276.       move d4,ccr
  1277.       move.b (a6,d2.l),d5
  1278.       move sr,d4
  1279.       move.b (a5)+,lb9-opb9+$b902(a3)
  1280. lb9:  jmp 0(a3)
  1281.  
  1282. opba:
  1283.       move.l a4,d6
  1284.       sub.l #c64+$0100,d6
  1285.       move d4,ccr
  1286.       tst.b d6
  1287.       move sr,d4
  1288.       move.b (a5)+,lba-opba+$ba02(a3)
  1289. lba:  jmp 0(a3)
  1290.  
  1291. opbc:
  1292.       move.b (a5)+,-(a2)
  1293.       move.b (a5)+,-(a2)
  1294.       move (a2)+,d2
  1295.       add d6,d2
  1296.       move.b (a6,d2.l),d7
  1297.       move.b (a5)+,lbc-opbc+$bc02(a3)
  1298. lbc:  jmp 0(a3)
  1299.  
  1300. opbd:
  1301.       move.b (a5)+,-(a2)
  1302.       move.b (a5)+,-(a2)
  1303.       move (a2)+,d2
  1304.       add d6,d2
  1305.       move d4,ccr
  1306.       move.b (a6,d2.l),d5
  1307.       move sr,d4
  1308.       move.b (a5)+,lbd-opbd+$bd02(a3)
  1309. lbd:  jmp 0(a3)
  1310.  
  1311. opbe:
  1312.       move.b (a5)+,-(a2)
  1313.       move.b (a5)+,-(a2)
  1314.       move (a2)+,d2
  1315.       add d7,d2
  1316.       move d4,ccr
  1317.       move.b (a6,d2.l),d6
  1318.       move sr,d4
  1319.       move.b (a5)+,lbe-opbe+$be02(a3)
  1320. lbe:  jmp 0(a3)
  1321.  
  1322. opc0:
  1323.       move d7,d3
  1324.       sub.b (a5)+,d3
  1325.       move sr,d4
  1326.       eor d1,d4
  1327.       move.b (a5)+,lc0-opc0+$c002(a3)
  1328. lc0:  jmp 0(a3)
  1329.  
  1330. opc1:
  1331.       move.b (a5)+,d3
  1332.       add.b d6,d3
  1333.       move.b (a6,d3.l),-(a2)
  1334.       move.b 1(a6,d3.l),-(a2)
  1335.       move (a2)+,d2
  1336.       move d5,d3
  1337.       sub.b (a6,d2.l),d3
  1338.       move sr,d4
  1339.       eor d1,d4
  1340.       move.b (a5)+,lc1-opc1+$c102(a3)
  1341. lc1:  jmp 0(a3)
  1342.  
  1343. opc4:
  1344.       move.b (a5)+,d3
  1345.       move d7,d2
  1346.       sub.b (a6,d3.l),d2
  1347.       move sr,d4
  1348.       eor d1,d4
  1349.       move.b (a5)+,lc4-opc4+$c402(a3)
  1350. lc4:  jmp 0(a3)
  1351.  
  1352. opc5:
  1353.       move.b (a5)+,d3
  1354.       move d5,d2
  1355.       sub.b (a6,d3.l),d2
  1356.       move sr,d4
  1357.       eor d1,d4
  1358.       move.b (a5)+,lc5-opc5+$c502(a3)
  1359. lc5:  jmp 0(a3)
  1360.  
  1361. opc6:
  1362.       move.b (a5)+,d3
  1363.       subq.b #1,(a6,d3.l)
  1364.       move d4,ccr
  1365.       tst.b (a6,d3.l)
  1366.       move sr,d4
  1367.       move.b (a5)+,lc6-opc6+$c602(a3)
  1368. lc6:  jmp 0(a3)
  1369.  
  1370. opc8:
  1371.       addq.b #1,d7
  1372.       move d4,ccr
  1373.       tst.b d7
  1374.       move sr,d4
  1375.       move.b (a5)+,lc8-opc8+$c802(a3)
  1376. lc8:  jmp 0(a3)
  1377.  
  1378. opc9:
  1379.       move d5,d3
  1380.       sub.b (a5)+,d3
  1381.       move sr,d4
  1382.       eor d1,d4
  1383.       move.b (a5)+,lc9-opc9+$c902(a3)
  1384. lc9:  jmp 0(a3)
  1385.  
  1386. opca:
  1387.       subq.b #1,d6
  1388.       move d4,ccr
  1389.       tst.b d6
  1390.       move sr,d4
  1391.       move.b (a5)+,lca-opca+$ca02(a3)
  1392. lca:  jmp 0(a3)
  1393.  
  1394. opcc:
  1395.       move.b (a5)+,-(a2)
  1396.       move.b (a5)+,-(a2)
  1397.       move (a2)+,d2
  1398.       move d7,d3
  1399.       sub.b (a6,d2.l),d3
  1400.       move sr,d4
  1401.       eor d1,d4
  1402.       move.b (a5)+,lcc-opcc+$cc02(a3)
  1403. lcc:  jmp 0(a3)
  1404.  
  1405. opcd:
  1406.       move.b (a5)+,-(a2)
  1407.       move.b (a5)+,-(a2)
  1408.       move (a2)+,d2
  1409.       move d5,d3
  1410.       sub.b (a6,d2.l),d3
  1411.       move sr,d4
  1412.       eor d1,d4
  1413.       move.b (a5)+,lcd-opcd+$cd02(a3)
  1414. lcd:  jmp 0(a3)
  1415.  
  1416. opce:
  1417.       move.b (a5)+,-(a2)
  1418.       move.b (a5)+,-(a2)
  1419.       move (a2)+,d2
  1420.       subq.b #1,(a6,d2.l)
  1421.       move d4,ccr
  1422.       tst.b (a6,d2.l)
  1423.       move sr,d4
  1424.       move.b (a5)+,lce-opce+$ce02(a3)
  1425. lce:  jmp 0(a3)
  1426.  
  1427. opd0:
  1428.       move.b (a5)+,d2
  1429.       btst #2,d4
  1430.       bne rtd0
  1431.       ext d2
  1432.       add d2,a5
  1433. rtd0: move.b (a5)+,ld0-opd0+$d002(a3)
  1434. ld0:  jmp 0(a3)
  1435.  
  1436. opd1:
  1437.       move.b (a5)+,d3
  1438.       move.b (a6,d3.l),-(a2)
  1439.       move.b 1(a6,d3.l),-(a2)
  1440.       move (a2)+,d2
  1441.       add d7,d2
  1442.       move d5,d3
  1443.       sub.b (a6,d2.l),d3
  1444.       move sr,d4
  1445.       eor d1,d4
  1446.       move.b (a5)+,ld1-opd1+$d102(a3)
  1447. ld1:  jmp 0(a3)
  1448.  
  1449. opd5:
  1450.       move.b (a5)+,d3
  1451.       add.b d6,d3
  1452.       move d5,d2
  1453.       sub.b (a6,d3.l),d2
  1454.       move sr,d4
  1455.       eor d1,d4
  1456.       move.b (a5)+,ld5-opd5+$d502(a3)
  1457. ld5:  jmp 0(a3)
  1458.  
  1459. opd6:
  1460.       move.b (a5)+,d3
  1461.       add.b d6,d3
  1462.       subq.b #1,(a6,d3.l)
  1463.       move d4,ccr
  1464.       tst.b (a6,d3.l)
  1465.       move sr,d4
  1466.       move.b (a5)+,ld6-opd6+$d602(a3)
  1467. ld6:  jmp 0(a3)
  1468.  
  1469. opd8:
  1470.       bclr d1,d4
  1471.       move.b (a5)+,ld8-opd8+$d802(a3)
  1472. ld8:  jmp 0(a3)
  1473.  
  1474. opd9:
  1475.       move.b (a5)+,-(a2)
  1476.       move.b (a5)+,-(a2)
  1477.       move (a2)+,d2
  1478.       add d7,d2
  1479.       move d5,d3
  1480.       sub.b (a6,d2.l),d3
  1481.       move sr,d4
  1482.       eor d1,d4
  1483.       move.b (a5)+,ld9-opd9+$d902(a3)
  1484. ld9:  jmp 0(a3)
  1485.  
  1486. opdd:
  1487.       move.b (a5)+,-(a2)
  1488.       move.b (a5)+,-(a2)
  1489.       move (a2)+,d2
  1490.       add d6,d2
  1491.       move d5,d3
  1492.       sub.b (a6,d2.l),d3
  1493.       move sr,d4
  1494.       eor d1,d4
  1495.       move.b (a5)+,ldd-opdd+$dd02(a3)
  1496. ldd:  jmp 0(a3)
  1497.  
  1498. opde:
  1499.       move.b (a5)+,-(a2)
  1500.       move.b (a5)+,-(a2)
  1501.       move (a2)+,d2
  1502.       add d6,d2
  1503.       subq.b #1,(a6,d2.l)
  1504.       move d4,ccr
  1505.       tst.b (a6,d2.l)
  1506.       move sr,d4
  1507.       move.b (a5)+,lde-opde+$de02(a3)
  1508. lde:  jmp 0(a3)
  1509.  
  1510. ope0:
  1511.       move d6,d3
  1512.       sub.b (a5)+,d3
  1513.       move sr,d4
  1514.       eor d1,d4
  1515.       move.b (a5)+,le0-ope0+$e002(a3)
  1516. le0:  jmp 0(a3)
  1517.  
  1518. ope1:
  1519.       move.b (a5)+,d3
  1520.       add.b d6,d3
  1521.       move.b (a6,d3.l),-(a2)
  1522.       move.b 1(a6,d3.l),-(a2)
  1523.       move (a2)+,d2
  1524.       move.b (a6,d2.l),d3
  1525.       eor d1,d4
  1526.       move d4,ccr
  1527.       btst d1,d4
  1528.       bne dce1
  1529.       subx.b d3,d5
  1530.       move sr,d4
  1531.       eor d1,d4
  1532.       move.b (a5)+,le1-ope1+$e102(a3)
  1533. le1:  jmp 0(a3)
  1534. dce1: or #$04,ccr
  1535.       sbcd d3,d5
  1536.       move sr,d4
  1537.       eor d1,d4
  1538.       move.b (a5)+,de1-ope1+$e102(a3)
  1539. de1:  jmp 0(a3)
  1540.  
  1541. ope4:
  1542.       move.b (a5)+,d3
  1543.       move d6,d2
  1544.       sub.b (a6,d3.l),d2
  1545.       move sr,d4
  1546.       eor d1,d4
  1547.       move.b (a5)+,le4-ope4+$e402(a3)
  1548. le4:  jmp 0(a3)
  1549.  
  1550. ope5:
  1551.       move.b (a5)+,d3
  1552.       move.b (a6,d3.l),d3
  1553.       eor d1,d4
  1554.       move d4,ccr
  1555.       btst d1,d4
  1556.       bne dce5
  1557.       subx.b d3,d5
  1558.       move sr,d4
  1559.       eor d1,d4
  1560.       move.b (a5)+,le5-ope5+$e502(a3)
  1561. le5:  jmp 0(a3)
  1562. dce5: or #$04,ccr
  1563.       sbcd d3,d5
  1564.       move sr,d4
  1565.       eor d1,d4
  1566.       move.b (a5)+,de5-ope5+$e502(a3)
  1567. de5:  jmp 0(a3)
  1568.  
  1569. ope6:
  1570.       move.b (a5)+,d3
  1571.       addq.b #1,(a6,d3.l)
  1572.       move d4,ccr
  1573.       tst.b (a6,d3.l)
  1574.       move sr,d4
  1575.       move.b (a5)+,le6-ope6+$e602(a3)
  1576. le6:  jmp 0(a3)
  1577.  
  1578. ope8:
  1579.       addq.b #1,d6
  1580.       move d4,ccr
  1581.       tst.b d6
  1582.       move sr,d4
  1583.       move.b (a5)+,le8-ope8+$e802(a3)
  1584. le8:  jmp 0(a3)
  1585.  
  1586. ope9:
  1587.       move.b (a5)+,d3
  1588.       eor d1,d4
  1589.       move d4,ccr
  1590.       btst d1,d4
  1591.       bne dce9
  1592.       subx.b d3,d5
  1593.       move sr,d4
  1594.       eor d1,d4
  1595.       move.b (a5)+,le9-ope9+$e902(a3)
  1596. le9:  jmp 0(a3)
  1597. dce9: or #$04,ccr
  1598.       sbcd d3,d5
  1599.       move sr,d4
  1600.       eor d1,d4
  1601.       move.b (a5)+,de9-ope9+$e902(a3)
  1602. de9:  jmp 0(a3)
  1603.  
  1604. opea:
  1605.       move.b (a5)+,lea-opea+$ea02(a3)
  1606. lea:  jmp 0(a3)
  1607.  
  1608. opec:
  1609.       move.b (a5)+,-(a2)
  1610.       move.b (a5)+,-(a2)
  1611.       move (a2)+,d2
  1612.       move d6,d3
  1613.       sub.b (a6,d2.l),d3
  1614.       move sr,d4
  1615.       eor d1,d4
  1616.       move.b (a5)+,lec-opec+$ec02(a3)
  1617. lec:  jmp 0(a3)
  1618.  
  1619. oped:
  1620.       move.b (a5)+,-(a2)
  1621.       move.b (a5)+,-(a2)
  1622.       move (a2)+,d2
  1623.       move.b (a6,d2.l),d3
  1624.       eor d1,d4
  1625.       move d4,ccr
  1626.       btst d1,d4
  1627.       bne dced
  1628. ndcsb:subx.b d3,d5
  1629.       move sr,d4
  1630.       eor d1,d4
  1631.       move.b (a5)+,led-oped+$ed02(a3)
  1632. led:  jmp 0(a3)
  1633. dced: or #$04,ccr
  1634.       sbcd d3,d5
  1635.       move sr,d4
  1636.       eor d1,d4
  1637.       move.b (a5)+,ded-oped+$ed02(a3)
  1638. ded:  jmp 0(a3)
  1639.  
  1640. opee:
  1641.       move.b (a5)+,-(a2)
  1642.       move.b (a5)+,-(a2)
  1643.       move (a2)+,d2
  1644.       addq.b #1,(a6,d2.l)
  1645.       move d4,ccr
  1646.       tst.b (a6,d2.l)
  1647.       move sr,d4
  1648.       move.b (a5)+,lee-opee+$ee02(a3)
  1649. lee:  jmp 0(a3)
  1650.  
  1651. opf0:
  1652.       move.b (a5)+,d2
  1653.       btst #2,d4
  1654.       beq rtf0
  1655.       ext d2
  1656.       add d2,a5
  1657. rtf0: move.b (a5)+,lf0-opf0+$f002(a3)
  1658. lf0:  jmp 0(a3)
  1659.  
  1660. opf1:
  1661.       move.b (a5)+,d3
  1662.       move.b (a6,d3.l),-(a2)
  1663.       move.b 1(a6,d3.l),-(a2)
  1664.       move (a2)+,d2
  1665.       add d7,d2
  1666.       move.b (a6,d2.l),d3
  1667.       eor d1,d4
  1668.       move d4,ccr
  1669.       btst d1,d4
  1670.       bne dcf1
  1671.       subx.b d3,d5
  1672.       move sr,d4
  1673.       eor d1,d4
  1674.       move.b (a5)+,lf1-opf1+$f102(a3)
  1675. lf1:  jmp 0(a3)
  1676. dcf1: or #$04,ccr
  1677.       sbcd d3,d5
  1678.       move sr,d4
  1679.       eor d1,d4
  1680.       move.b (a5)+,df1-opf1+$f102(a3)
  1681. df1:  jmp 0(a3)
  1682.  
  1683. opf5:
  1684.       move.b (a5)+,d3
  1685.       add.b d6,d3
  1686.       move.b (a6,d3.l),d3
  1687.       eor d1,d4
  1688.       move d4,ccr
  1689.       btst d1,d4
  1690.       bne dcf5
  1691.       subx.b d3,d5
  1692.       move sr,d4
  1693.       eor d1,d4
  1694.       move.b (a5)+,lf5-opf5+$f502(a3)
  1695. lf5:  jmp 0(a3)
  1696. dcf5: or #$04,ccr
  1697.       sbcd d3,d5
  1698.       move sr,d4
  1699.       eor d1,d4
  1700.       move.b (a5)+,df5-opf5+$f502(a3)
  1701. df5:  jmp 0(a3)
  1702.  
  1703. opf6:
  1704.       move.b (a5)+,d3
  1705.       add.b d6,d3
  1706.       addq.b #1,(a6,d3.l)
  1707.       move d4,ccr
  1708.       tst.b (a6,d3.l)
  1709.       move sr,d4
  1710.       move.b (a5)+,lf6-opf6+$f602(a3)
  1711. lf6:  jmp 0(a3)
  1712.  
  1713. opf8:
  1714.       bset d1,d4
  1715.       move.b (a5)+,lf8-opf8+$f802(a3)
  1716. lf8:  jmp 0(a3)
  1717.  
  1718. opf9:
  1719.       move.b (a5)+,-(a2)
  1720.       move.b (a5)+,-(a2)
  1721.       move (a2)+,d2
  1722.       add d7,d2
  1723.       move.b (a6,d2.l),d3
  1724.       eor d1,d4
  1725.       move d4,ccr
  1726.       btst d1,d4
  1727.       bne dcf9
  1728.       subx.b d3,d5
  1729.       move sr,d4
  1730.       eor d1,d4
  1731.       move.b (a5)+,lf9-opf9+$f902(a3)
  1732. lf9:  jmp 0(a3)
  1733. dcf9: or #$04,ccr
  1734.       sbcd d3,d5
  1735.       move sr,d4
  1736.       eor d1,d4
  1737.       move.b (a5)+,df9-opf9+$f902(a3)
  1738. df9:  jmp 0(a3)
  1739.  
  1740. opfd:
  1741.       move.b (a5)+,-(a2)
  1742.       move.b (a5)+,-(a2)
  1743.       move (a2)+,d2
  1744.       add d6,d2
  1745.       move.b (a6,d2.l),d3
  1746.       eor d1,d4
  1747.       move d4,ccr
  1748.       btst d1,d4
  1749.       bne dcfd
  1750.       subx.b d3,d5
  1751.       move sr,d4
  1752.       eor d1,d4
  1753.       move.b (a5)+,lfd-opfd+$fd02(a3)
  1754. lfd:  jmp 0(a3)
  1755. dcfd: or #$04,ccr
  1756.       sbcd d3,d5
  1757.       move sr,d4
  1758.       eor d1,d4
  1759.       move.b (a5)+,dfd-opfd+$fd02(a3)
  1760. dfd:  jmp 0(a3)
  1761.  
  1762. opfe:
  1763.       move.b (a5)+,-(a2)
  1764.       move.b (a5)+,-(a2)
  1765.       move (a2)+,d2
  1766.       add d6,d2
  1767.       addq.b #1,(a6,d2.l)
  1768.       move d4,ccr
  1769.       tst.b (a6,d2.l)
  1770.       move sr,d4
  1771.       move.b (a5)+,lfe-opfe+$fe02(a3)
  1772. lfe:  jmp 0(a3)
  1773.  
  1774.  
  1775. swlo:
  1776.         movem.l a0-a3/d0-d3,-(sp)
  1777.         move.l opage,a0
  1778.         lea savnr+6,a1
  1779.         lea sav81,a2
  1780.         lea op,a3
  1781.         moveq #6,d3
  1782. swlo2:  move (a2),d0
  1783.         move 2(a2),(a2)+
  1784.         move d0,(a2)+
  1785.         move (a1)+,d1
  1786.         moveq #16,d2
  1787. swlo1:  move.l (a3,d0),(a0,d1)
  1788.         addq #4,d0
  1789.         addq #4,d1
  1790.         dbf d2,swlo1
  1791.         dbf d3,swlo2
  1792.         movem.l (sp)+,a0-a3/d0-d3
  1793.         rts
  1794.  
  1795. swhi:
  1796.         movem.l a0-a3/d0-d3,-(sp)
  1797.         move.l opage,a0
  1798.         lea savnr,a1
  1799.         lea sav11,a2
  1800.         lea op,a3
  1801.         moveq #2,d3
  1802. swhi2:  move (a2),d0
  1803.         move 2(a2),(a2)+
  1804.         move d0,(a2)+
  1805.         move (a1)+,d1
  1806.         moveq #16,d2
  1807. swhi1:  move.l (a3,d0),(a0,d1)
  1808.         addq #4,d0
  1809.         addq #4,d1
  1810.         dbf d2,swhi1
  1811.         dbf d3,swhi2
  1812.         movem.l (sp)+,a0-a3/d0-d3
  1813.         rts
  1814.  
  1815.  
  1816. sav11:  dc op11-op,ora11-op
  1817. sav31:  dc op31-op,and31-op
  1818. sav51:  dc op51-op,eor51-op
  1819. sav81:  dc op81-op,sto81-op
  1820. sav8d:  dc op8d-op,sto8d-op
  1821. sav91:  dc op91-op,sto91-op
  1822. sav99:  dc op99-op,sto99-op
  1823. sav9d:  dc op9d-op,sto9d-op
  1824. sav8e:  dc op8e-op,sto8e-op
  1825. sav8c:  dc op8c-op,sto8c-op
  1826.  
  1827. savnr:  dc $1100,$3100,$5100,$8100,$8d00,$9100,$9900,$9d00,$8e00,$8c00
  1828.  
  1829.  
  1830.       bss
  1831.  
  1832.       ds.b 2
  1833. area: ds.b 1
  1834.  
  1835.       even
  1836.  
  1837. ops:  ds.b 65536
  1838.  
  1839. c64:  ds.b 65536
  1840.