home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_06 / PP31.ZIP / PP31.MSA / AUTOMATI.ON / SOURCE / LUCAS3.S < prev    next >
Text File  |  1985-11-20  |  8KB  |  460 lines

  1.         opt c+,d-
  2.  
  3. ;SET TABS TO 10 FOR DISASSEMBLY
  4.  
  5.     
  6. main    MOVEA.L    4(A7),A5
  7. ;    lea $77ff8,a7
  8.     move.l a5,$4(a7)
  9.     move.l $c(a5),d0
  10.     add.l $14(a5),d0
  11.     add.l $1c(a5),d0
  12.     add.l #$100,d0
  13.     move.l d0,-(sp)
  14.     move.l a5,-(sp)
  15.     move.l #$4a0000,-(sp)
  16.     trap #1
  17.     lea $c(a7),a7
  18. CHEAT    CLR.L    -(A7)
  19.     MOVE.W    #$20,-(A7)
  20.     TRAP    #$01
  21.     ADDQ.L    #6,A7
  22.     LEA    SUPERLNG(PC),A6
  23.     MOVE.L    D0,(A6)
  24.     MOVE.L    $84,tr1
  25.     MOVE.L    #T1,$84
  26.     move.l #$4fc0,-(sp)
  27.     move.w #$48,-(sp)
  28.     trap #1
  29.     move.l d0,addr3
  30.     MOVE.L    SUPERLNG(PC),-(A7)
  31.     MOVE.W    #$20,-(A7)
  32.     TRAP    #$01
  33.     ADDQ.L    #6,A7
  34.     clr.w -(sp)
  35.     pea $ffffffff
  36.     move.l (a7),-(sp)
  37.     move.w #5,-(sp)
  38.     trap #14
  39.     lea $c(a7),a7
  40.     pea text
  41.     move.w #9,-(sp)
  42.     trap #1
  43. stkk    addq.l #6,sp
  44.     clr.l $60000
  45.     pea $60000
  46.     move.l (a7),-(sp)
  47.     pea fil
  48.     move.l #$4b0000,-(sp)
  49.     trap #1
  50. SUPERLNG    DC.L    0
  51. ope        dc.w $0
  52. T1        movem.l    a0-a6/d0-d7,reg
  53.         movea.l    a7,a1
  54.         addq.l     #6,a1
  55.         move.w     (a7),d0
  56.         btst     #$d,d0
  57.         bne.s     ok1
  58.         move.l     usp,a1
  59. ok1        cmpi.w     #$3d,(a1)
  60.         bne     notopen
  61.         cmp.w #$ffff,nd
  62.         beq.s open
  63.         move.w #$ffff,ope
  64.         move.l $2(a1),a1
  65.         cmp.b #$31,$3(a1)
  66.         beq.s open2
  67.         clr.w vol
  68.         move.l $2(a7),ex3d
  69.         move.l #dohan,$2(a7)
  70. open        movem.l     reg,a0-a6/d0-d7
  71. bye        dc.w     $4ef9
  72. tr1        dc.l     $0
  73. open2        move.w #$ffff,vol
  74.         bra.s open
  75. vol        dc.w 0
  76. loadit        dc.l 0
  77. add1a        dc.l 0
  78. mai        dc.l 0
  79. dohan        movem.l a0-a6/d0-d7,-(sp)
  80.         move.w #$ffff,flag
  81.         move.w d0,han
  82.         tst.w d0
  83.         bmi ex3d2
  84. n9        move.l addr3,-(sp)
  85.         move.l #$3ffff,-(sp)
  86.         move.w han,-(sp)
  87.         move.w #$3f,-(sp)
  88.         trap #1
  89.         lea $c(a7),a7
  90.         move.l addr3,a0
  91.         move.l a0,addr1
  92.         move.l a0,addr1+4
  93. ex3d2        clr.w flag
  94.         movem.l (sp)+,a0-a6/d0-d7
  95.         move.w han,d0
  96.         dc.w $4ef9
  97. ex3d        dc.l 0
  98. flag        dc.w 0
  99. han        dc.w 0
  100. siz2        dc.l 0
  101. notopen        cmpi.w     #$3f,(a1)
  102.         bne     not3f
  103.         cmp.w #$ffff,nd
  104.         beq open
  105.         cmp.w #$ffff,vol
  106.         beq open
  107.         move.l $8(a1),loadit
  108.         cmp.w #$ffff,flag
  109.         beq.s nff
  110.         clr.w ope
  111.         move.l $4(a1),siz2
  112.         move.l $4(a1),d0
  113.         sub.l d0,siz3
  114.         move.l siz3,d1
  115.         tst.l d1
  116.         bpl.s okx
  117.         add.l d0,d1
  118.         move.l d1,d0
  119.         move.l d0,siz2
  120. okx        lea addr1(pc),a0
  121.         move.l a0,-(sp)
  122.         move.l $4(a0),a0
  123.         move.l $8(a1),a1
  124. lp1        move.b (a0)+,(a1)+
  125.         subq.l #1,d0
  126.         cmp.l #0,d0
  127.         bne.s lp1
  128.         move.l (a7)+,a2
  129.         move.l a0,$4(a2)
  130. ex3f        movem.l reg,d0-d7/a0-a6
  131.         move.l siz2,d0
  132.         rte
  133. nff        move.l $4(a1),siz2
  134.         move.l $2(a7),xread
  135.         move.l #dp,$2(a7)
  136.         bra open
  137. dp        movem.l d0-d7/a0-a6,-(sp)
  138.         move.l d0,siz2
  139.         move.l d0,siz3
  140.         move.l d0,mai
  141.         move.l d0,addr2
  142.         pea close
  143.         move.w #$26,-(sp)
  144.         trap #14
  145.         addq.l #6,sp
  146.         movem.l (a7)+,d0-d7/a0-a6
  147.         move.l siz2,d0
  148.         dc.w $4ef9
  149. xread        dc.l 0
  150. siz3        dc.l 0
  151. close        move.l loadit,a1
  152.         cmp.b #$4c,(a1)
  153.         bne gg
  154.         cmp.b #$53,$1(a1)
  155.         bne gg
  156.         cmp.b #$44,$2(a1)
  157.         bne gg
  158.         cmp.b #$21,$3(a1)
  159.         bne gg
  160.         move.l $4(a1),addr2
  161.         move.l $4(a1),siz3
  162.         move.l $4(a1),mai
  163.         move.l $4(a1),siz2
  164.         sub.l #$40,a1
  165.         lea     savdat(pc),a0
  166.         moveq.l     #$3f,d0
  167. kk        move.b     (a1)+,(a0)+
  168.         dbf     d0,kk
  169.         move.l loadit,a0
  170.         move.l a0,a1
  171.         sub.l #$40,a1
  172.         move.l a7,stksav
  173.         lea stkk(PC),A7
  174.         move.l $8(a0),d0
  175.         addq.l #4,d0
  176. xc        move.b (a0)+,(a1)+
  177.         subq.l #1,d0
  178.         cmp.l #0,d0
  179.         bne.s xc
  180.         move.l    loadit,a0
  181.         move.l a0,a1
  182.         sub.l    #$40,a0
  183.         bsr    DEPACK
  184.         move.l loadit,a0
  185.         sub.l    #$40,a0
  186.         lea    savdat(pc),a1
  187.         moveq.l    #$3f,d0
  188. kk2        move.b    (a1)+,(a0)+
  189.         dbf    d0,kk2
  190.         move.l stksav,a7
  191. gg        rts
  192. reg        dc.l $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
  193. savdat        dc.l $0,$0,$0,$0,$0,$0,$0,$0,0,0,0,0,0,0,0,0
  194. crunpos        dc.l 0
  195. DEPACK        adda.l #4,a0
  196.         move.w $ff8240,-(sp)
  197.         move.l a0,crunpos
  198.         move.l (a0)+,d5
  199.         adda.l d5,a1
  200.         adda.l (a0),a0
  201.         subq.l #4,a0
  202.         tst.w -(a0)
  203.         bpl.s L_1
  204.         subq.l #1,a0
  205. L_1        move.b -(a0),d0
  206. L_2        lsl.b #1,d0
  207.         bne.s L_3
  208.         MOVE.B    -(A0),D0
  209.         ROXL.B    #1,D0
  210. L_3        BCC.S    L_10
  211.         CLR.W    D1
  212.         LSL.B    #1,D0
  213.         BNE.S    L_4
  214.         MOVE.B    -(A0),D0
  215.         ROXL.B    #1,D0
  216. L_4        BCC.S    L_9
  217.         LEA    NUMS(PC),A3
  218.         MOVEQ    #3,D3
  219. L_5        CLR.W    D1
  220.         MOVE.B    0(A3,D3.W),D2
  221.         EXT.W    D2
  222.         MOVEQ    #-1,D4
  223.         LSL.W    D2,D4
  224.         NOT.W    D4
  225.         SUBQ.W    #1,D2
  226. L_6        LSL.B    #1,D0
  227.         BNE.S    L_7
  228.         MOVE.B    -(A0),D0
  229.         ROXL.B    #1,D0
  230. L_7        ROXL.W    #1,D1
  231.         DBF    D2,L_6
  232.         TST.W    D3
  233.         BEQ.S    L_8
  234.         CMP.W    D1,D4
  235.         DBNE    D3,L_5
  236. L_8        MOVE.B    4(A3,D3.W),D2
  237.         EXT.W    D2
  238.         ADD.W    D2,D1
  239.         BRA    L_9
  240.  
  241. NUMS        DC.B    $0A,$03,$02,$02,$0E,$07,$04,$01
  242.  
  243. L_9        MOVE.B    -(A0),-(A1)
  244.         MOVE.W    d0,$FFFF8240
  245.         DBF    D1,L_9
  246. L_10        MOVE.L    crunpos,A3
  247.         ADDQ.L    #$8,A3
  248.         CMPA.L    A3,A0
  249.         BLE    BYENOW
  250.         LEA    NUMS2(PC),A3
  251.         MOVEQ    #3,D2
  252. L_11        LSL.B    #1,D0
  253.         BNE.S    L_12
  254.         MOVE.B    -(A0),D0
  255.         ROXL.B    #1,D0
  256. L_12        BCC.S    L_13
  257.         DBF    D2,L_11
  258. L_13        CLR.W    D1
  259.         ADDQ.W    #1,D2
  260.         MOVE.B    0(A3,D2.W),D3
  261.         BEQ.S    L_16
  262.         EXT.W    D3
  263.         SUBQ.W    #1,D3
  264. L_14        LSL.B    #1,D0
  265.         BNE.S    L_15
  266.         MOVE.B    -(A0),D0
  267.         ROXL.B    #1,D0
  268. L_15        ROXL.W    #1,D1
  269.         DBF    D3,L_14
  270. L_16        MOVE.B    5(A3,D2.W),D3
  271.         EXT.W    D3
  272.         ADD.W    D3,D1
  273.         BRA    L_161
  274.  
  275. NUMS2        DC.B    $0A,$02,$01,$00,$00,$0A,$06,$04,$03,$02
  276.  
  277. L_161        CMPI.W    #2,D1
  278.         BEQ.S    L_22
  279.         LEA    NUMS3(PC),A3
  280.         MOVEQ    #1,D3
  281. L_17        LSL.B    #1,D0
  282.         BNE.S    L_18
  283.         MOVE.B    -(A0),D0
  284.         ROXL.B    #1,D0
  285. L_18        BCC.S    L_19
  286.         DBF    D3,L_17
  287. L_19        ADDQ.W    #1,D3
  288.         CLR.W    D2
  289.         MOVE.B    0(A3,D3.W),D4
  290.         EXT.W    D4
  291. L_20        LSL.B    #1,D0
  292.         BNE.S    L_21
  293.         MOVE.B    -(A0),D0
  294.         ROXL.B    #1,D0
  295. L_21        ROXL.W    #1,D2
  296.         DBF    D4,L_20
  297.         LSL.W    #1,D3
  298.         ADD.W    4(A3,D3.W),D2
  299.         BRA.S    L_26
  300.  
  301. NUMS3        DC.B    $0B,$04,$07,$00,$01,$20,$00,$00
  302.         DC.B    $00,$20,$00,$00
  303.  
  304. L_22        CLR.W    D2
  305.         MOVEQ    #5,D3
  306.         CLR.W    D4
  307.         LSL.b    #1,D0
  308.         BNE.S    L_23
  309.         MOVE.B    -(A0),D0
  310.         ROXL.B    #1,D0
  311. L_23        BCC.S    L_24
  312.         MOVEQ    #8,D3
  313.         MOVEQ    #$40,D4
  314. L_24        LSL.B    #1,D0
  315.         BNE.S    L_25
  316.         MOVE.B    -(A0),D0
  317.         ROXL.B    #1,D0
  318. L_25        ROXL.W    #1,D2
  319.         DBF    D3,L_24
  320.         ADD.W    D4,D2
  321. L_26        LEA    0(A1,D2.W),A2
  322.         EXT.L    D1
  323.         ADDA.L    D1,A2
  324.         SUBQ.W    #1,D1
  325. L_27        MOVE.B    -(A2),-(A1)
  326.         DBF    D1,L_27
  327.         BRA    L_2
  328. BYENOW        move.w (a7)+,$ff8240
  329.         RTS
  330. stksav        dc.l 0
  331. fw        dc.w 0
  332. amt        dc.l 0
  333. not3f        cmp.w #$1a,(a1)
  334.         bne.s n1a
  335.         move.l $2(a1),add1a
  336.         add.l #$1a,add1a
  337.         bra open
  338. n1a        cmp.w #$2f,(a1)
  339.         bne.s n2f
  340.         move.l $2(a7),ex2f
  341.         move.l #en2f,$2(a7)
  342.         bra open
  343. en2f        move.l d0,add1a
  344.         add.l #$1a,add1a
  345.         dc.w $4ef9
  346. ex2f        dc.l 0
  347. n2f        cmp.w #$4e,(a1)
  348.         bne not3fb
  349.         move.l $2(a7),ex4e
  350.         move.l $2(a1),nm
  351.         move.l #en4e,$2(a7)
  352.         bra open
  353. en4e        movem.l a0-a1/d0-d0,-(sp)
  354.         move.l nm,a1
  355.         cmp.b #$31,$3(a1)
  356.         beq.s exxx
  357.         cmp.w #0,ope
  358.         beq.s need
  359.         move.l add1a,a0
  360.         move.l mai,d0
  361.         move.l d0,(a0)
  362. exxx        movem.l (a7)+,a0-a1/d0-d0
  363. exx        dc.w $4ef9
  364. ex4e        dc.l 0
  365. nd        dc.w 0
  366. nm        dc.l 0
  367. eight        dc.l 0,0
  368. str        dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  369. need        move.w #$ffff,nd
  370.         movem.l (a7)+,a0-a1/d0-d0
  371.         movem.l a0-a6/d0-d7,str
  372.         clr.w -(sp)
  373.         move.l nm,-(sp)
  374.         move.w #$3d,-(sp)
  375.         trap #1
  376.         addq.l #8,sp
  377.         move.w d0,d5
  378.         pea eight
  379.         move.l #8,-(sp)
  380.         move.w d5,-(sp)
  381.         move.w #$3f,-(sp)
  382.         trap #1
  383.         lea $c(a7),a7
  384.         move.w d5,-(sp)
  385.         move.w #$3e,-(sp)
  386.         trap #1
  387.         addq.l #4,sp
  388.         cmp.l #$4c534421,eight
  389.         bne.s cvv
  390.         move.l eight+4,d0
  391.         move.l add1a,a0
  392.         move.l d0,(a0)
  393. cvv        clr.w nd
  394.         movem.l str,a0-a6/d0-d7
  395.         bra exx
  396. not3fb        cmp.w #$42,(a1)
  397.         bne open
  398.         cmp.w #$ffff,vol
  399.         beq open
  400.         move.w $6(a1),han
  401.         move.l $2(a1),amt
  402.         move.w $8(a1),fw
  403.         move.l $2(a7),ttt
  404.         move.l #more,$2(a7)
  405.         movem.l reg,d0-d7/a0-a6
  406.         rte
  407. more        movem.l d0-d7/a0-a6,-(sp)
  408.         move.l addr2,siz3
  409.         lea addr1(pc),a0
  410.         move.l a0,a1
  411.         add.l #4,a1        
  412.         move.l amt,d0
  413.         cmp.w #0,fw
  414.         beq.s pos
  415.         cmp.w #2,fw
  416.         beq.s neg
  417.         cmp.l #0,amt
  418.         bne.s n000
  419.         move.l addr1+4,d0
  420.         move.l d0,siz42
  421.         move.l addr3,d0
  422.         sub.l d0,siz42
  423.         bra.s ex42
  424. n000        cmp.w #1,posneg
  425.         beq.s ispos
  426. isneg        sub.l d0,(a1)
  427.         move.l siz3,d1
  428.         sub.l d0,d1
  429.         sub.l d1,siz3
  430.         bra ex42
  431. ispos        add.l d0,(a1)
  432.         sub.l d0,siz3
  433.         bra ex42
  434. pos        move.l (a0),a2
  435.         add.l d0,a2
  436.         move.l a2,(a1)
  437.         move.w #1,posneg
  438.         move.l d0,siz42
  439.         bra ex42
  440. neg        move.l (a0),a2
  441.         add.l addr2,a2
  442.         lea addr2,a0
  443.         move.l (a0),siz42
  444.         move.l siz42,amt
  445.         sub.l d0,a2
  446.         move.l a2,(a1)
  447.         clr.w posneg
  448. ex42        movem.l (a7)+,d0-d7/a0-a6
  449. ;        move.l siz42,d0
  450.         move.l amt,d0
  451.         dc.w $4ef9
  452. ttt        dc.l 0
  453. siz42        dc.l 0
  454. posneg        dc.w 0
  455. filflg        dc.w 0,0,0,0
  456. addr1        dc.l $0,$0
  457. addr2        dc.l 0
  458. addr3        dc.l 0    
  459. fil        dc.b "afrvap",0
  460. text        dc.b "VAPOUR PRESENTS . . .",0