home *** CD-ROM | disk | FTP | other *** search
/ Stolen Data 1 / Stolen Data 1.adf / Source / Animballs.s next >
Encoding:
Text File  |  1989-11-03  |  5.1 KB  |  322 lines

  1.     Incdir    Df1:
  2.     Include Source/CustomRegisters
  3.  
  4. Ciaapra = $BFE001
  5. Openlibrary = -30-522    
  6. Disable        = -120
  7. Enable        = -126
  8. Startlist   = 38
  9. Execbase = 4
  10. Planesize = 32*82
  11. Spincllen = 20
  12. Nobobs = 196
  13. Memforbobs = ((Nobobs+14)/15+1)*225*2*4*2
  14.  
  15. Main:
  16.     Move.l    Execbase,a6
  17.     Jsr    Disable(a6)
  18.  
  19.     Move.l    #Ypos1,d0
  20.     Eor.l    #Ypos2,d0
  21.     Move.l    d0,Yeor
  22.  
  23.     Move.l    #$78000,Bobmem
  24.  
  25. ;------ Copy bobs into Bobmem --------
  26.  
  27.     Move    #Memforbobs/225/16,d0
  28.     Move.l    Bobmem(pc),a0
  29.     Move.l    a0,a2
  30.     Add.l    #Memforbobs/2,a2
  31. Bobloop2:
  32.     Move    #449,d1
  33.     Lea    Ball,a1
  34.     Lea    Mask,a3
  35. Bobloop:
  36.     Move.l    (a1)+,(a0)+
  37.     Move.l    (a3)+,(a2)+
  38.     Dbf    d1,Bobloop
  39.     Dbf    d0,Bobloop2
  40.  
  41. ;------- Create second ypos -----------
  42.  
  43.     Lea     Ypos2,a0
  44.     Move    #$4000,d1
  45.     Move    #4095,d0
  46. Yloop
  47.     Add    d1,(a0)+
  48.     Dbf    d0,Yloop
  49.     
  50. ;--------- Switch Copper DMA ----------
  51.  
  52.     Move.l    #Clstart,Cop1lc
  53.     Clr    Copjmp1
  54.  
  55.     Move.w    #$8780,Dmacon
  56.     Move.w    #$002f,Dmacon
  57.  
  58.     Moveq    #7,d0
  59.     Lea    Spr0data,a0
  60. Clclr
  61.     Clr.l    (a0)
  62.     Addq    #8,a0
  63.     Dbf    d0,Clclr
  64.  
  65. ;---------- Demo loop ------------
  66.  
  67. Wait:    Move.b    $dff006,d2
  68.     Bne.s    Wait
  69.     Move.b    $dff005,d2
  70.     Bne.s    Wait
  71.  
  72. ;----------- Move the bobs -----------
  73. Bobs:
  74.     Move    #$4000,d0
  75.     Eor    d0,Bobplst+2
  76.     Eor    d0,Bobplst+10
  77.     Eor    d0,Bobbank+2
  78.     Move.l    Yeor(pc),d0
  79.     Eor.l    d0,Ytab
  80.  
  81.     Clr    Bltdmod
  82.     Move.l    #$ffffffff,Bltafwm
  83.     Move.l    #$01000000,Bltcon0
  84.  
  85.     Move.l    a7,Store
  86.     Move.l    Bobbank(pc),a0
  87.     Move.l    a0,Bltdpth
  88.     Move    #104*64+40,Bltsize
  89.     Movem.l    Blank,d0-d7/a1-a7
  90.     Lea    $3e80(a0),a0
  91.  
  92.     Rept    128
  93.     Movem.l    d0-d7/a1-a7,-(a0)
  94.     Endr    
  95.     Move.l    Store(pc),a7
  96.  
  97.     Add    #9,Xpt1
  98.     And    #$7ff,Xpt1
  99.     Add    #4,Ypt1
  100.     And    #$7ff,Ypt1
  101.  
  102.     Lea    $dff04a,a0
  103.     Lea    $dff056,a1
  104.     Lea    $dff040,a2
  105.     Lea    $dff058,a3
  106.  
  107.     Move    Xpt1(pc),d0
  108.     Add    d0,d0
  109.     Move    d0,d1
  110.     Add    d1,d1
  111.     Move    Ypt1(pc),d2
  112.     Add    d2,d2
  113.     Move.l    Ytab(pc),a4
  114.     Lea    (a4,d2.w),a4
  115.     Lea    Xpos(pc),a5
  116.     Lea    (a5,d0.w),a5
  117.     Lea    Shift(pc),a6
  118.     Lea    (a6,d1.w),a6
  119.  
  120.     Subq    #1,Count
  121.     Bne.s    Nobegin
  122.     Move    #4,Count
  123.     Add.l    #120,Anim
  124.     Cmp.l    #120*15,Anim
  125.     Bne.s    Nobegin
  126.     Clr.l    Anim
  127. Nobegin
  128.     Move    #2+30*$40,d7
  129.     Move.l    #$24,$24(a2)
  130.     Move.l    #$240000,$20(a2)
  131.     Move    #(Nobobs-1)*4,d5
  132.     Move.l    Bobmem(pc),d0
  133.     Add.l    Anim(pc),d0
  134.     Move.l    d0,$10(a2)
  135.     Add.l    #Memforbobs/2,d0
  136.     Move.l    d0,$0c(a2)
  137.     Move    #7,$14(a2)
  138.     Move    #7,$08(a2)
  139.  
  140. A set 0
  141.     Rept    Nobobs
  142.     Move    (45*A*2)&$ffe(a4),d2
  143.     Add    (69*A*2)&$ffe(a5),d2
  144.     Move    d2,(a0)
  145.     Move    d2,(a1)
  146.     Move.l    (69*A*4)&$1ffc(a6),(a2)
  147.     Move    d7,(a3)
  148. A set A+1
  149.     Endr
  150.  
  151.     Btst    #6,Ciaapra
  152.     Bne    Wait
  153.  
  154. ;--------- End Program ------------
  155.  
  156. ;---- Restore old Copper list -----
  157.  
  158.     Move.l    Execbase,a6
  159.     Move.l    Bobmem,a1
  160.     Move.l    #Memforbobs,d0
  161.     Jsr    -$d2(a6)
  162. Nobobmem:
  163.     Move.l    #$70000,a1
  164.     Move.l    #$8000,d0
  165.     Jsr    -$d2(a6)
  166. Noplanemem:
  167.     Move.l    #Grname,a1
  168.     Clr.l    d0
  169.     Jsr    Openlibrary(a6)
  170.     Move.l    d0,a4
  171.     Move.l    Startlist(a4),Cop1lc
  172.     Clr.w    Copjmp1
  173.     Move.l    a4,a1
  174.     Jsr    -$19e(a6)
  175.     Move.w    #$83E0,Dmacon
  176.     Jsr    Enable(a6)
  177.     Moveq.l    #0,d0
  178.     Rts
  179.     
  180. ;------------- Variables ----------------
  181.  
  182. Pointers:
  183. Xpt1        Dc.w $40
  184. Ypt1        Dc.w 0
  185.  
  186. Bobbank        Dc.l $74000
  187.  
  188. Ytab        Dc.l Ypos2
  189. Yeor        Dc.l 0
  190.  
  191. Pressedit    Dc.w 0
  192. Sinuspt        Dc.w 0
  193. Bobmem        Dc.l 0
  194.  
  195. Bobplane1    Dc.l $70000
  196.  
  197. Store        Dc.l 0
  198.  
  199. Anim        Dc.l 0
  200. Count        Dc.w 4
  201.  
  202. ;------------- Constants --------------
  203.  
  204. Grname:    Dc.b    "graphics.library",0
  205.  
  206.     Even
  207.  
  208.  
  209. ;---------- The Copperlists -------------
  210. Clstart:
  211.     Wait    0,6
  212. Bobplst:
  213.     Mov    0,Bpl1ptl
  214.     Mov    7,Bpl1pth
  215.     Mov    40,Bpl2ptl
  216.     Mov    7,Bpl2pth
  217.     Mov    $3281,Diwstrt
  218.     Mov    $fac1,Diwstop
  219.     Mov    $0038,Ddfstrt
  220.     Mov    $00d0,Ddfstop
  221.     Mov    $0000,Color00
  222.     Mov    $0fcc,Color01
  223.     Mov    $0f00,Color02
  224.     Mov    $0a00,Color03
  225.     Mov    40,Bpl1mod
  226.     Mov    40,Bpl2mod
  227.     Mov    0,Bplcon1
  228.     Mov    0,Bplcon2
  229.     Wait    0,50
  230.     Mov    $2200,Bplcon0
  231.  
  232.     Wait    0,250
  233.     Mov    0,Bplcon0
  234.     Wait    $fe,$ff
  235. Clend:
  236. Clsize Equ  Clend-Clstart
  237.     Even
  238.  
  239. ;-------- Various table etc. ---------
  240.  
  241. Blank:    Dcb.w    30,0
  242.  
  243. ;--------- Sintable -------------    
  244. Ypos1    Incbin    Binary/Ypos
  245.     Incbin    Binary/Ypos
  246.  
  247. Ypos2    Incbin    Binary/Ypos
  248.     Incbin    Binary/Ypos
  249.  
  250. Xpos    Incbin    Binary/Xpos
  251.     Incbin    Binary/Xpos
  252.  
  253. Shift    Incbin    Binary/Shifts
  254.     Incbin    Binary/Shifts
  255.  
  256. ;--------- Bob data -------------
  257. Ball    Incbin    Binary/Balls
  258.  
  259. Mask    Incbin    Binary/Mask
  260.  
  261. Sinuses:
  262.     Dc.w    $0140,$0040,$0100,$0000
  263.     Dc.w    $0002,$0003,$0004,$0005
  264.     Dc.w    $0004,$0003,$0005,$0004
  265.  
  266.     Dc.w    $0240,$0040,$0000,$0200
  267.     Dc.w    $00fe,$00ff,$0001,$0002
  268.     Dc.w    $0005,$0007,$0003,$0008
  269.  
  270.     Dc.w    $0340,$0340,$0300,$0300
  271.     Dc.w    $00ff,$0001,$0001,$00ff
  272.     Dc.w    $0002,$0003,$0003,$0002
  273.  
  274.     Dc.w    $0040,$0040,$0000,$0000
  275.     Dc.w    $0002,$0001,$0003,$00ff
  276.     Dc.w    $00fe,$0003,$0003,$00fe
  277.  
  278.     Dc.w    $0040,$0040,$0000,$0000
  279.     Dc.w    $0004,$0003,$0003,$0004
  280.     Dc.w    $00f8,$0004,$0004,$00f8
  281.  
  282.     Dc.w    $0040,$0040,$0000,$0000
  283.     Dc.w    $0002,$0004,$0004,$0002
  284.     Dc.w    $0007,$0009,$0009,$0007
  285.  
  286.     Dc.w    $0140,$0040,$0000,$0100
  287.     Dc.w    $00ff,$0002,$00ff,$0002
  288.     Dc.w    $0084,$0080,$0080,$0084
  289.     
  290.     Dc.w    $0220,$0070,$0000,$0000
  291.     Dc.w    $0001,$0004,$0004,$0001
  292.     Dc.w    $0003,$0006,$0006,$0003
  293.  
  294.     Dc.w    $0240,$0240,$0200,$0200
  295.     Dc.w    $0002,$0001,$0001,$00fe
  296.     Dc.w    $0084,$0084,$0084,$0084
  297.  
  298.     Dc.w    $0040,$0040,$0000,$0000
  299.     Dc.w    $00fd,$00fe,$00fe,$00fd
  300.     Dc.w    $007d,$007f,$007f,$007d
  301.  
  302.     Dc.w    $0040,$0040,$0000,$0000
  303.     Dc.w    $0003,$0002,$0002,$0003
  304.     Dc.w    $004e,$004f,$004f,$004e
  305.  
  306.     Dc.w    $0340,$0240,$0100,$0200
  307.     Dc.w    $0001,$0002,$0003,$0004
  308.     Dc.w    $0004,$0003,$0002,$0003
  309.  
  310.     Dc.w    $0040,$0040,$0000,$0000
  311.     Dc.w    $0001,$0002,$0002,$0001
  312.     Dc.w    $0074,$0002,$0002,$0074
  313.  
  314.     Dc.w    $0213,$0134,$0054,$0078
  315.     Dc.w    $0003,$0001,$0003,$0005
  316.     Dc.w    $0004,$0004,$0005,$0007
  317.  
  318.     Dc.w    $0040,$0000,$0000,$00c0
  319.     Dc.w    $0001,$0002,$0002,$0001
  320.     Dc.w    $0044,$00c4,$00c4,$0044
  321.  
  322.