home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 545b.lha / Fmon_v1.8 / src.lzh / disass.a < prev    next >
Encoding:
Text File  |  1991-09-03  |  25.0 KB  |  936 lines

  1.  
  2. **********************************************************
  3. *                                                        *
  4. *    Fmon V1.8     -     disass.a: the disassembler      *
  5. *                                                        *
  6. *    (c) 1991  Michael Schröder                          *
  7. *                                                        *
  8. *    This program is freely distributable as long as     *
  9. *    the above copyright message is left intact          *
  10. *                                                        *
  11. **********************************************************
  12.  
  13.  
  14.                xref @app
  15.                xref @adds
  16.                xref @addlx
  17.                xref @addax
  18.                xref @addwx
  19.                xref @addbx
  20.                xref @addd
  21.                xref _clearl
  22.                xref _wril
  23.  
  24.                xdef dodis
  25.                xdef _disass
  26.                xdef _comt
  27.  
  28.  
  29.                csect text,0,,2,2
  30.  
  31.                xref _sp
  32.                xref _st
  33.                xref _cbed
  34.                xref _col
  35.                xref _mask1
  36.                xref _mask2
  37.                xref _mask3
  38.  
  39.  
  40.  
  41. dodis          clr.l d0
  42.                move.b d2,d0
  43.                andi.b #7,d0
  44.                move.l d0,a1
  45.                move.b d2,d0
  46.                lsr.b #3,d0
  47.                andi.b #7,d0
  48.                cmp.b #7,d0
  49.                bne.s do2
  50.                add.w a1,d0
  51. do2            cmp.b #12,d0
  52.                bcs.s do3
  53.                moveq.l #23,d0
  54.                bra.s do4
  55. do3            lea _mask3(a4),a0
  56.                add.l d1,a0
  57.                move.w (a0),d3
  58.                btst.l d0,d3
  59.                bne.s do4
  60.                moveq.l #-1,d0
  61.                rts
  62. do4            move.l d0,a2
  63.                move.w d2,d0
  64.                lsr.w #8,d0
  65.                lsr.b #1,d0
  66.                andi.b #7,d0
  67.                move.l d0,a3
  68.                clr.l d7
  69.                move.b d2,d7
  70.                lsr.b #6,d7
  71.                cmp.b #3,d7
  72.                bne.s do1
  73.                moveq.l #5,d7
  74. do1            move.l a2,d3
  75.                move.l a1,d5
  76.                move.l a3,d6
  77.                moveq.l #22,d4
  78.                lea jtab1(pc),a0
  79.                add.w 0(a0,d1.w),a0
  80.                jsr (a0)
  81.                moveq.l #23,d0
  82.                cmp.l d0,d3
  83.                bcc.s errret
  84.                cmp.l d0,d4
  85.                bcc.s errret
  86.                cmp.w #5,d7
  87.                bcc.s errret
  88.                clr.l d0
  89.                rts
  90. errret         moveq.l #1,d0
  91.                rts
  92.  
  93. jtab1          dc.w labcd-jtab1
  94.                dc.w lsbcd-jtab1
  95.                dc.w laddx-jtab1
  96.                dc.w lsubx-jtab1
  97.                dc.w ladd-jtab1
  98.                dc.w lsub-jtab1
  99.                dc.w land-jtab1
  100.                dc.w lor-jtab1
  101.                dc.w ladda-jtab1
  102.                dc.w lsuba-jtab1
  103.                dc.w lcmpa-jtab1
  104.                dc.w laddi-jtab1
  105.                dc.w lsubi-jtab1
  106.                dc.w landi-jtab1
  107.                dc.w lori-jtab1
  108.                dc.w leori-jtab1
  109.                dc.w lcmpi-jtab1
  110.                dc.w laddq-jtab1
  111.                dc.w lsubq-jtab1
  112.                dc.w lasl1-jtab1
  113.                dc.w lasr1-jtab1
  114.                dc.w llsl1-jtab1
  115.                dc.w llsr1-jtab1
  116.                dc.w lrol1-jtab1
  117.                dc.w lror1-jtab1
  118.                dc.w lroxl1-jtab1
  119.                dc.w lroxr1-jtab1
  120.                dc.w lasl2-jtab1
  121.                dc.w lasr2-jtab1
  122.                dc.w llsl2-jtab1
  123.                dc.w llsr2-jtab1
  124.                dc.w lrol2-jtab1
  125.                dc.w lror2-jtab1
  126.                dc.w lroxl2-jtab1
  127.                dc.w lroxr2-jtab1
  128.                dc.w lbcc-jtab1
  129.                dc.w lbset-jtab1
  130.                dc.w lbclr-jtab1
  131.                dc.w lbchg-jtab1
  132.                dc.w lbtst-jtab1
  133.                dc.w lchk-jtab1
  134.                dc.w lcmp-jtab1
  135.                dc.w lclr-jtab1
  136.                dc.w lneg-jtab1
  137.                dc.w lnegx-jtab1
  138.                dc.w lnot-jtab1
  139.                dc.w lswap-jtab1
  140.                dc.w ltst-jtab1
  141.                dc.w lcmpm-jtab1
  142.                dc.w ldbcc-jtab1
  143.                dc.w lmuls-jtab1
  144.                dc.w lmulu-jtab1
  145.                dc.w ldivs-jtab1
  146.                dc.w ldivu-jtab1
  147.                dc.w leor-jtab1
  148.                dc.w lexg-jtab1
  149.                dc.w lext-jtab1
  150.                dc.w lillegal-jtab1
  151.                dc.w lnop-jtab1
  152.                dc.w lreset-jtab1
  153.                dc.w lrte-jtab1
  154.                dc.w lrtr-jtab1
  155.                dc.w lrts-jtab1
  156.                dc.w ltrapv-jtab1
  157.                dc.w ljmp-jtab1
  158.                dc.w ljsr-jtab1
  159.                dc.w llea-jtab1
  160.                dc.w llink-jtab1
  161.                dc.w lmove-jtab1
  162.                dc.w lmoveccr-jtab1
  163.                dc.w lmovezsr-jtab1
  164.                dc.w lmovevsr-jtab1
  165.                dc.w lmoveusp-jtab1
  166.                dc.w lmovea-jtab1
  167.                dc.w lmovem-jtab1
  168.                dc.w lmovep-jtab1
  169.                dc.w lmoveq-jtab1
  170.                dc.w lnbcd-jtab1
  171.                dc.w ltas-jtab1
  172.                dc.w lpea-jtab1
  173.                dc.w lscc-jtab1
  174.                dc.w lstop-jtab1
  175.                dc.w ltrap-jtab1
  176.                dc.w lunlk-jtab1
  177.                dc.w llinea-jtab1
  178.                dc.w llinef-jtab1
  179.                dc.w ldc-jtab1
  180. labcd
  181. lsbcd
  182. laddx
  183. lsubx          btst.l #3,d2
  184.                beq.s ld1
  185.                moveq.l #4,d3
  186.                moveq.l #4,d4
  187.                rts
  188. ld1            clr.l d3
  189.                clr.l d4
  190.                rts
  191. ladd
  192. lsub
  193. land
  194. lor            btst.l #8,d2
  195.                beq.s ld2
  196.                clr.l d3
  197.                move.l a3,d5
  198.                move.l a2,d4
  199.                move.l a1,d6
  200.                cmp.w #2,d4
  201.                bcs.s ld3
  202.                cmp.w #9,d4
  203.                bcs.s ld4
  204. ld3            moveq.l #23,d4
  205. ld4            rts
  206. ld2            clr.l d4
  207.                tst.b d7
  208.                bne.s ld4
  209.                cmp.w #1,d3
  210.                bne.s ld4
  211.                moveq.l #5,d7
  212.                rts
  213. ladda
  214. lsuba
  215. lcmpa          moveq.l #1,d4
  216.                moveq.l #1,d7
  217.                btst.l #8,d2
  218.                beq.s ld4
  219.                moveq.l #2,d7
  220.                rts
  221. laddi
  222. lsubi
  223. landi
  224. lori
  225. leori
  226. lcmpi          moveq.l #11,d3
  227.                move.l a2,d4
  228.                move.l a1,d6
  229.                cmp.w #11,d4
  230.                bne.s ld5
  231.                moveq.l #18,d4
  232.                tst.b d7
  233.                beq.s ld5
  234.                moveq.l #19,d4
  235.                cmp.b #1,d7
  236.                beq.s ld5
  237. ld61           moveq.l #5,d7
  238. ld5            rts
  239. laddq
  240. lsubq          moveq.l #12,d3
  241.                move.l a3,d5
  242.                bne.s ld6
  243.                moveq.l #8,d5
  244. ld6            move.l a2,d4
  245.                move.l a1,d6
  246.                tst.b d7
  247.                bne.s ld5
  248.                cmp.b #1,d4
  249.                bne.s ld5
  250.                bra.s ld61
  251. lasl1
  252. lasr1
  253. llsl1
  254. llsr1
  255. lrol1
  256. lror1
  257. lroxl1
  258. lroxr1         clr.l d4
  259.                move.l a1,d6
  260.                move.l a3,d5
  261.                clr.l d3
  262.                btst.l #5,d2
  263.                bne.s ld7
  264.                moveq.l #12,d3
  265.                tst.b d5
  266.                bne.s ld7
  267.                moveq.l #8,d5
  268. ld7            rts
  269. lasl2
  270. lasr2
  271. llsl2
  272. llsr2
  273. lrol2
  274. lror2
  275. lroxl2
  276. lroxr2         moveq.l #1,d7
  277.                rts
  278. lbcc           moveq.l #22,d3
  279.                moveq.l #13,d4
  280.                move.w d2,d6
  281.                lsr.w #8,d6
  282.                andi.b #15,d6
  283.                cmpi.b #2,d6
  284.                bcc.s ld8
  285.                bset.l #4,d6
  286. ld8            moveq.l #2,d7
  287.                tst.b d2
  288.                beq.s ld9
  289.                moveq.l #3,d7
  290. ld9            rts
  291. lbset
  292. lbclr
  293. lbchg
  294. lbtst          move.l a1,d6
  295.                moveq.l #2,d7
  296.                move.l a2,d4
  297.                beq.s ld10
  298.                clr.b d7
  299. ld10           btst.l #8,d2
  300.                beq.s ld11
  301.                clr.l d3
  302.                move.l a3,d5
  303.                rts
  304. ld11           cmp.b #11,d3
  305.                beq.s ld12
  306.                moveq.l #14,d3
  307.                cmpa.w #4,a3
  308.                beq.s ld13
  309.                moveq.l #23,d4
  310. ld13           rts
  311. ld12           moveq.l #23,d3
  312.                rts
  313. lchk           moveq.l #1,d7
  314. lcmp           clr.l d4
  315.                tst.b d7
  316.                bne.s ld13
  317. ld220          cmp.b #1,d3
  318.                bne.s ld13
  319.                moveq.l #5,d7
  320. lclr
  321. lneg
  322. lnegx
  323. lnot
  324. lswap
  325. ltst
  326.                rts
  327. lcmpm          moveq.l #3,d3
  328.                moveq.l #3,d4
  329.                rts
  330. ldbcc          clr.l d3
  331.                moveq.l #13,d4
  332.                moveq.l #1,d7
  333.                move.w d2,d6
  334.                lsr.l #8,d6
  335.                andi.b #15,d6
  336.                rts
  337. lmuls
  338. lmulu
  339. ldivs
  340. ldivu          clr.l d4
  341.                moveq.l #1,d7
  342.                rts
  343. leor           clr.l d3
  344.                move.l a2,d4
  345.                move.l a3,d5
  346.                move.l a1,d6
  347.                rts
  348. lexg           move.l a3,d5
  349.                move.l a1,d6
  350.                clr.l d4
  351.                btst.l #3,d2
  352.                beq.s ld14
  353.                moveq.l #1,d4
  354. ld14           cmp.b #1,d7
  355.                bne.s ld15
  356.                move.l d4,d3
  357. ld19           moveq.l #2,d7
  358.                rts
  359. ld15           cmp.b #2,d7
  360.                bne.s ld16
  361.                clr.l d3
  362.                cmp.b #1,d4
  363.                beq.s ld17
  364. ld16           moveq.l #5,d7
  365. ld17           rts
  366. lext           clr.l d3
  367. ld24           cmp.b #2,d7
  368.                bne.s ld18
  369.                moveq.l #1,d7
  370.                rts
  371. ld18           cmp.b #5,d7
  372.                beq.s ld19
  373.                bra.s ld16
  374. lmovem         bsr.s ld24
  375.                btst.l #10,d2
  376.                beq.s ld25
  377.                moveq.l #16,d4
  378.                cmp.b #4,d3
  379.                bne.s ld26
  380.                moveq.l #23,d3
  381. ld26           rts
  382. ld25           moveq.l #16,d3
  383.                move.l a2,d4
  384.                move.l a1,d6
  385.                cmp.b #3,d4
  386.                beq.s ld27
  387.                cmp.b #9,d4
  388.                bcs.s ld26
  389. ld27           moveq.l #23,d4
  390.                rts
  391. lillegal
  392. lnop
  393. lreset
  394. lrte
  395. lrtr
  396. lrts
  397. ltrapv         moveq.l #22,d3
  398. ljsr
  399. ljmp           moveq.l #4,d7
  400.                rts
  401. llea           moveq.l #1,d4
  402.                bra.s ljmp
  403. llink          moveq.l #1,d3
  404.                moveq.l #11,d4
  405.                bra.s ljmp
  406. lmove          move.w d2,d4
  407.                lsr.w #6,d4
  408.                andi.b #7,d4
  409.                cmpi.b #1,d4
  410.                beq.s ld21
  411.                cmpi.b #7,d4
  412.                bne.s ld20
  413.                add.l a3,d4
  414.                cmpi.b #9,d4
  415.                bcs.s ld20
  416. ld21           moveq.l #23,d4
  417. ld20           move.w d2,d7
  418.                lsr.w #8,d7
  419.                lsr.b #4,d7
  420.                beq ld16
  421.                subq.b #1,d7
  422.                beq ld220
  423.                eor.b #3,d7
  424. ld22           rts
  425. lmoveccr       moveq.l #18,d4
  426. ld23           moveq.l #1,d7
  427.                rts
  428. lmovevsr       move.l a2,d4
  429.                move.l a1,d6
  430.                moveq.l #19,d3
  431.                bra.s ld23
  432. lmovezsr       moveq.l #19,d4
  433.                bra.s ld23
  434. lmoveusp       moveq.l #2,d7
  435.                moveq.l #1,d3
  436.                moveq.l #20,d4
  437.                btst.l #3,d2
  438. ld29           beq.s ld22
  439.                exg.l d3,d4
  440.                move.l a1,d6
  441.                rts
  442. lmovea         moveq.l #1,d4
  443.                moveq.l #2,d7
  444.                btst.l #12,d2
  445.                beq.s ld22
  446.                moveq.l #1,d7
  447.                rts
  448. lmovep         moveq.l #1,d7
  449.                btst.l #6,d2
  450.                beq.s ld28
  451.                moveq.l #2,d7
  452. ld28           moveq.l #5,d3
  453.                clr.l d4
  454.                btst.l #7,d2
  455.                bra.s ld29
  456. lmoveq         moveq.l #2,d7
  457.                moveq.l #15,d3
  458.                clr.l d4
  459.                move.b d2,d5
  460.                rts
  461. lscc           move.w d2,d6
  462.                lsr.l #8,d6
  463.                andi.b #15,d6
  464. lnbcd
  465. ltas           clr.b d7
  466.                rts
  467. lstop          moveq.l #11,d3
  468. lpea           moveq.l #4,d7
  469.                rts
  470. ltrap          moveq.l #12,d3
  471.                move.b d2,d5
  472.                andi.b #15,d5
  473.                bra.s lpea
  474. lunlk          moveq.l #1,d3
  475.                bra.s lpea
  476. llinea
  477. llinef         moveq.l #4,d7
  478. ld30           moveq.l #17,d3
  479.                move.w d2,d5
  480.                rts
  481. ldc            moveq.l #1,d7
  482.                bra.s ld30
  483.  
  484.  
  485. _disass        movem.l d2-d7/a2/a3/a5,-(a7)
  486.                move.l 4+9*4(a7),a5
  487.                move.w (a5),d2
  488.                clr.l d1
  489. dis3           move.w d2,d0
  490.                lea _mask1(a4),a0
  491.                and.w 0(a0,d1.w),d0
  492.                lea _mask2(a4),a0
  493.                cmp.w 0(a0,d1.w),d0
  494.                bne.s dis1
  495.                bsr dodis
  496.                tst.l d0
  497.                beq.s dis2
  498. dis1           addq.b #2,d1
  499.                bra.s dis3
  500. dis2           move.l d1,-(a7)
  501.                jsr _clearl(pc)
  502.                lea _st(a4),a2
  503.                move.b #'.',(a2)
  504.                move.b #',',1(a2)
  505.                move.w #3,_sp(a4)
  506.                move.l a5,d0
  507.                addq.l #2,a5
  508.                jsr @addax(pc)
  509.                move.b #':',9(a2)
  510.                lea _comt(a4),a0
  511.                move.l (a7)+,d1
  512.                move.w 0(a0,d1.w),d2
  513.                move.w d2,d0
  514.                lsr.w #3,d0
  515.                add.w d0,a0
  516.                and.w #7,d2
  517.                moveq.l #37,d0
  518.                add.w d0,a2
  519. dis5           move.b (a0)+,(a2)+
  520.                dbf d2,dis5
  521. dis6           cmp.b #35*2,d1 ; Bcc
  522.                beq.s dis7
  523.                cmp.b #49*2,d1 ; Dbcc
  524.                beq.s dis7
  525.                cmp.b #80*2,d1 ; Scc
  526.                bne.s dis8
  527. dis7           lea _cbed(a4),a0
  528.                add.w d6,a0
  529.                add.w d6,a0
  530.                move.b (a0)+,(a2)+
  531.                move.b (a0),d2
  532.                beq.s dis8
  533.                move.b d2,(a2)+
  534. dis8           cmpi.b #4,d7
  535.                bcc.s dis10
  536.                move.b #'.',(a2)+
  537.                lea _col(a4),a0
  538.                move.b 0(a0,d7.w),(a2)+
  539. dis10          cmp.b #74*2,d1 ; Movem
  540.                bne.s dis9
  541.                move.w (a5)+,a2
  542. dis9           move.w #45,_sp(a4)
  543.                cmp.b #22,d3
  544.                beq.s dis11
  545.                bsr addarg
  546.                cmp.b #22,d4
  547.                beq.s dis111
  548.                moveq.l #',',d0
  549.                jsr @app(pc)
  550. dis11          move.l d4,d3
  551.                move.l d6,d5
  552.                bsr.s addarg
  553. dis111         move.w _sp(a4),d2
  554.                move.w #11,_sp(a4)
  555.                move.l a5,d7
  556.                move.l 4+9*4(a7),a2
  557.                sub.l a2,d7
  558. dis12          move.w (a2)+,d0
  559.                jsr @addwx(pc)
  560.                addq.w #1,_sp(a4)
  561.                cmp.l a2,a5
  562.                bne.s dis12
  563.                move.w d2,_sp(a4)
  564.                jsr _wril(pc)
  565.                move.l d7,d0
  566.                movem.l (a7)+,d2-d7/a2/a3/a5
  567.                rts
  568.  
  569. addarg         move.l d5,d2
  570.                add.b #'0',d2
  571.                lea jtab2(pc),a0
  572.                lsl.w #1,d3
  573.                add.w 0(a0,d3.w),a0
  574.                jmp (a0)
  575. jtab2          dc.w agr0-jtab2
  576.                dc.w agr1-jtab2
  577.                dc.w agr2-jtab2
  578.                dc.w agr3-jtab2
  579.                dc.w agr4-jtab2
  580.                dc.w agr5-jtab2
  581.                dc.w agr6-jtab2
  582.                dc.w agr7-jtab2
  583.                dc.w agr8-jtab2
  584.                dc.w agr9-jtab2
  585.                dc.w agr10-jtab2
  586.                dc.w agr11-jtab2
  587.                dc.w agr12-jtab2
  588.                dc.w agr13-jtab2
  589.                dc.w agr14-jtab2
  590.                dc.w agr15-jtab2
  591.                dc.w agr16-jtab2
  592.                dc.w agr17-jtab2
  593.                dc.w agr18-jtab2
  594.                dc.w agr19-jtab2
  595.                dc.w agr20-jtab2
  596.                dc.w agr21-jtab2
  597.                dc.w agr22-jtab2
  598.  
  599. agr0           moveq.l #'d',d0
  600.                bra.s ag1
  601. agr1           moveq.l #'a',d0
  602. ag1            jsr @app(pc)
  603.                move.b d2,d0
  604. ap             jmp @app(pc)
  605. agr4           moveq.l #'-',d0
  606.                jsr @app(pc)
  607. agr2           moveq.l #'(',d0
  608.                jsr @app(pc)
  609.                bsr.s agr1
  610. ag6            moveq.l #')',d0
  611.                bra.s ap
  612. agr3           bsr.s agr2
  613.                moveq.l #'+',d0
  614.                bra.s ap
  615. agr5           move.w (a5)+,d0
  616. ag2            ext.l d0
  617.                jsr @addd(pc)
  618.                bra.s agr2
  619. agr6           move.w (a5)+,d3
  620.                move.b d3,d0
  621.                ext.w d0
  622.                bsr.s ag2
  623.                subq.w #1,_sp(a4)
  624.                bra.s ag3
  625. agr10          move.w (a5)+,d3
  626.                move.b d3,d0
  627.                ext.w d0
  628.                ext.l d0
  629.                jsr @addd(pc)
  630.                lea spc(a4),a0
  631.                jsr @adds(pc)
  632. ag3            moveq.l #',',d0
  633.                jsr @app(pc)
  634.                moveq.l #'d',d0
  635.                tst.w d3
  636.                bpl.s ag4
  637.                moveq.l #'a',d0
  638. ag4            jsr @app(pc)
  639.                move.w d3,d0
  640.                lsr.w #7,d0
  641.                lsr.b #5,d0
  642.                add.b #'0',d0
  643.                jsr @app(pc)
  644.                moveq.l #'.',d0
  645.                jsr @app(pc)
  646.                moveq.l #'w',d0
  647.                btst.l #11,d3
  648.                beq.s ag5
  649.                moveq.l #'l',d0
  650. ag5            jsr @app(pc)
  651.                bra ag6
  652. agr7           bsr.s adddol
  653.                move.w (a5)+,d0
  654.                ext.l d0
  655.                bmi.s ag7
  656.                jmp @addwx(pc)
  657. ag7            jmp @addlx(pc)
  658. agr8           bsr.s adddol
  659.                move.l (a5)+,d0
  660.                cmp.l #$1000000,d0
  661.                bcc.s ag7
  662.                jmp @addax(pc)
  663. adddol         moveq.l #'$',d0
  664.                jmp @app(pc)
  665. agr17          bsr.s adddol
  666.                move.w d5,d0
  667.                jmp @addwx(pc)
  668. agr13          bsr.s adddol
  669.                move.l a5,d1
  670.                cmp.b #3,d7
  671.                bne.s ag10
  672.                move.b -1(a5),d0
  673.                ext.w d0
  674.                bra.s ag11
  675. ag10           move.w (a5)+,d0
  676. ag11           ext.l d0
  677.                add.l d1,d0
  678.                jmp @addax(pc)
  679. agr9           move.w (a5),d3
  680.                ext.l d3
  681.                move.l d3,d0
  682.                jsr @addd(pc)
  683.                lea spc2(a4),a0
  684.                jsr @adds(pc)
  685.                move.l d3,d0
  686.                add.l a5,d0
  687.                addq.l #2,a5
  688.                jsr @addax(pc)
  689.                bra ag6
  690. agr11          lea spc3(a4),a0
  691.                jsr @adds(pc)
  692.                cmp.b #2,d7
  693.                bne.s ag8
  694.                move.l (a5)+,d0
  695.                jmp @addlx(pc)
  696. ag8            move.w (a5)+,d0
  697.                tst.b d7
  698.                beq.s ag9
  699.                jmp @addwx(pc)
  700. ag9            jmp @addbx(pc)
  701. agr12          moveq.l #'#',d0
  702.                jsr @app(pc)
  703.                move.l d5,d0
  704.                jmp @addd(pc)
  705. agr14          moveq.l #'#',d0
  706.                jsr @app(pc)
  707.                clr.l d0
  708.                move.w (a5)+,d1
  709.                move.b d1,d0
  710.                jmp @addd(pc)
  711. agr15          lea spc3(a4),a0
  712.                bsr.s ag13
  713.                move.b d5,d0
  714.                jmp @addbx(pc)
  715. agr18          lea spc4(a4),a0
  716. ag13           jmp @adds(pc)
  717. agr19          lea spc5(a4),a0
  718.                bra.s ag13
  719. agr20          lea spc6(a4),a0
  720.                bra.s ag13
  721. agr16          clr.l d2
  722.                move.l a2,d5
  723.                clr.l d3
  724. lloop          cmp.b #4,d4
  725.                beq.s ag20
  726.                lsr.w #1,d5
  727.                bra.s ag21
  728. ag20           lsl.w #1,d5
  729. ag21           bcc.s ag22
  730.                cmp.b #2,d2
  731.                bcs.s ag23
  732.                moveq.l #3,d2
  733.                bra loop
  734. ag23           tst.b d2
  735.                beq.s ag24
  736.                moveq.l #'/',d0
  737.                jsr @app(pc)
  738. ag24           addq.b #1,d3
  739.                bsr.s raus
  740.                moveq.l #2,d2
  741.                bra.s ag26
  742. ag22           bsr.s mraus
  743. loop           addq.b #1,d3
  744. ag26           cmp.b #8,d3
  745.                bne.s ag25
  746.                bsr.s mraus
  747. ag25           cmp.b #16,d3
  748.                bne lloop
  749. mraus          tst.b d2
  750.                beq.s mr2
  751.                cmp.b #3,d2
  752.                bne.s mr3
  753.                moveq.l #'-',d0
  754.                jsr @app(pc)
  755. raus           moveq.l #'d',d0
  756.                cmp.b #9,d3
  757.                bcs.s mr4
  758.                moveq.l #'a',d0
  759. mr4            jsr @app(pc)
  760.                move.b d3,d0
  761.                add.b #'0'-1,d0
  762.                bclr.l #3,d0
  763.                jsr @app(pc)
  764. mr3            moveq.l #1,d2
  765. agr21
  766. agr22
  767. mr2            rts
  768.  
  769.  
  770.  
  771.                csect data,1
  772.  
  773. _comt          dc.w (sabcd-_comt)<<3+3
  774.                dc.w (ssbcd-_comt)<<3+3
  775.                dc.w (saddx-_comt)<<3+3
  776.                dc.w (ssubx-_comt)<<3+3
  777.                dc.w (saddi-_comt)<<3+2
  778.                dc.w (ssubi-_comt)<<3+2
  779.                dc.w (sandi-_comt)<<3+2
  780.                dc.w (sori-_comt)<<3+1
  781.                dc.w (sadda-_comt)<<3+3
  782.                dc.w (ssuba-_comt)<<3+3
  783.                dc.w (scmpa-_comt)<<3+3
  784.                dc.w (saddi-_comt)<<3+3
  785.                dc.w (ssubi-_comt)<<3+3
  786.                dc.w (sandi-_comt)<<3+3
  787.                dc.w (sori-_comt)<<3+2
  788.                dc.w (seori-_comt)<<3+3
  789.                dc.w (scmpi-_comt)<<3+3
  790.                dc.w (saddq-_comt)<<3+3
  791.                dc.w (ssubq-_comt)<<3+3
  792.                dc.w (sasl-_comt)<<3+2
  793.                dc.w (sasr-_comt)<<3+2
  794.                dc.w (slsl-_comt)<<3+2
  795.                dc.w (slsr-_comt)<<3+2
  796.                dc.w (srol-_comt)<<3+2
  797.                dc.w (sror-_comt)<<3+2
  798.                dc.w (sroxl-_comt)<<3+3
  799.                dc.w (sroxr-_comt)<<3+3
  800.                dc.w (sasl-_comt)<<3+2
  801.                dc.w (sasr-_comt)<<3+2
  802.                dc.w (slsl-_comt)<<3+2
  803.                dc.w (slsr-_comt)<<3+2
  804.                dc.w (srol-_comt)<<3+2
  805.                dc.w (sror-_comt)<<3+2
  806.                dc.w (sroxl-_comt)<<3+3
  807.                dc.w (sroxr-_comt)<<3+3
  808.                dc.w (sbset-_comt)<<3+0
  809.                dc.w (sbset-_comt)<<3+3
  810.                dc.w (sbclr-_comt)<<3+3
  811.                dc.w (sbchg-_comt)<<3+3
  812.                dc.w (sbtst-_comt)<<3+3
  813.                dc.w (schk-_comt)<<3+2
  814.                dc.w (scmpi-_comt)<<3+2
  815.                dc.w (sclr-_comt)<<3+2
  816.                dc.w (snegx-_comt)<<3+2
  817.                dc.w (snegx-_comt)<<3+3
  818.                dc.w (snot-_comt)<<3+2
  819.                dc.w (sswap-_comt)<<3+3
  820.                dc.w (stst-_comt)<<3+2
  821.                dc.w (scmpm-_comt)<<3+3
  822.                dc.w (sdb-_comt)<<3+1
  823.                dc.w (smuls-_comt)<<3+3
  824.                dc.w (smulu-_comt)<<3+3
  825.                dc.w (sdivs-_comt)<<3+3
  826.                dc.w (sdivu-_comt)<<3+3
  827.                dc.w (seori-_comt)<<3+2
  828.                dc.w (sexg-_comt)<<3+2
  829.                dc.w (sext-_comt)<<3+2
  830.                dc.w (sillegal-_comt)<<3+6
  831.                dc.w (snop-_comt)<<3+2
  832.                dc.w (sreset-_comt)<<3+4
  833.                dc.w (srte-_comt)<<3+2
  834.                dc.w (srtr-_comt)<<3+2
  835.                dc.w (srts-_comt)<<3+2
  836.                dc.w (strapv-_comt)<<3+4
  837.                dc.w (sjmp-_comt)<<3+2
  838.                dc.w (sjsr-_comt)<<3+2
  839.                dc.w (slea-_comt)<<3+2
  840.                dc.w (slink-_comt)<<3+3
  841.                dc.w (smovea-_comt)<<3+3
  842.                dc.w (smovea-_comt)<<3+3
  843.                dc.w (smovea-_comt)<<3+3
  844.                dc.w (smovea-_comt)<<3+3
  845.                dc.w (smovea-_comt)<<3+3
  846.                dc.w (smovea-_comt)<<3+4
  847.                dc.w (smovem-_comt)<<3+4
  848.                dc.w (smovep-_comt)<<3+4
  849.                dc.w (smoveq-_comt)<<3+4
  850.                dc.w (snbcd-_comt)<<3+3
  851.                dc.w (stas-_comt)<<3+2
  852.                dc.w (spea-_comt)<<3+2
  853.                dc.w (sstop-_comt)<<3+0
  854.                dc.w (sstop-_comt)<<3+3
  855.                dc.w (strapv-_comt)<<3+3
  856.                dc.w (sunlk-_comt)<<3+3
  857.                dc.w (slinea-_comt)<<3+4
  858.                dc.w (slinef-_comt)<<3+4
  859.                dc.w (sdc-_comt)<<3+1
  860.  
  861. ssbcd          dc.b 'sbc'
  862. sdc            dc.b 'd'
  863. scmpa          dc.b 'cmp'
  864. saddx          dc.b 'addx'
  865. ssubx          dc.b 'subx'
  866. saddi          dc.b 'addi'
  867. ssubi          dc.b 'subi'
  868. sandi          dc.b 'andi'
  869. seori          dc.b 'e'
  870. sori           dc.b 'ori'
  871. scmpi          dc.b 'cmpi'
  872. ssuba          dc.b 'sub'
  873. sadda          dc.b 'add'
  874. saddq          dc.b 'addq'
  875. ssubq          dc.b 'subq'
  876. sasr           dc.b 'asr'
  877. sasl           dc.b 'as'
  878. slsl           dc.b 'ls'
  879. slsr           dc.b 'ls'
  880. sror           dc.b 'ro'
  881. srol           dc.b 'rol'
  882. sroxr          dc.b 'rox'
  883. sroxl          dc.b 'rox'
  884. slinea         dc.b 'linea'
  885. slinef         dc.b 'linef'
  886. snbcd          dc.b 'nbc'
  887. sdb            dc.b 'd'
  888. sbset          dc.b 'bset'
  889. sbclr          dc.b 'b'
  890. sclr           dc.b 'clr'
  891. sbchg          dc.b 'bchg'
  892. sbtst          dc.b 'b'
  893. stst           dc.b 'tst'
  894. schk           dc.b 'chk'
  895. snegx          dc.b 'negx'
  896. snot           dc.b 'not'
  897. scmpm          dc.b 'cmp'
  898. smuls          dc.b 'mul'
  899. sswap          dc.b 'swap'
  900. smulu          dc.b 'mulu'
  901. sdivs          dc.b 'divs'
  902. sdivu          dc.b 'div'
  903. sunlk          dc.b 'unlk'
  904. sexg           dc.b 'exg'
  905. sext           dc.b 'ext'
  906. sillegal       dc.b 'illega'
  907. slea           dc.b 'lea'
  908. snop           dc.b 'nop'
  909. sreset         dc.b 'rese'
  910. strapv         dc.b 'trapv'
  911. srte           dc.b 'rte'
  912. srtr           dc.b 'rt'
  913. srts           dc.b 'rts'
  914. sjmp           dc.b 'jmp'
  915. sjsr           dc.b 'jsr'
  916. slink          dc.b 'link'
  917. smovea         dc.b 'movea'
  918. smovem         dc.b 'move'
  919. smovep         dc.b 'movep'
  920. smoveq         dc.b 'moveq'
  921. stas           dc.b 'ta'
  922. sstop          dc.b 'sto'
  923. spea           dc.b 'pe'
  924. sabcd          dc.b 'abcd'
  925.  
  926.  
  927. spc            dc.b '(pc',0
  928. spc2           dc.b '(pc)(=$',0
  929. spc3           dc.b '#$',0
  930. spc4           dc.b 'ccr',0
  931. spc5           dc.b 'sr',0
  932. spc6           dc.b 'usp',0
  933.  
  934.  
  935.                end
  936.