home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src5.dms / in.adf / move.S < prev    next >
Encoding:
Text File  |  1990-05-07  |  7.1 KB  |  396 lines

  1. Main:
  2.   bsr OpenGfx
  3.   bsr InitSprites
  4.   move.l $6c,IrqVec
  5.   move.l #IrqRoutine,$6c
  6. maus:
  7.   btst #6,$bfe001
  8.   bne maus
  9.   move.l IrqVec,$6c
  10.   bsr RemoveSprites
  11.   rts
  12.  
  13. CloseGfx:
  14.   move.l 4,a6
  15.   move.l gfxbase,a1
  16.   jsr -414(a6)
  17.   rts
  18.  
  19. OpenGfx:
  20.   move.l 4,a6
  21.   lea gfxname,a1
  22.   jsr -408(a6)
  23.   move.l d0,gfxbase
  24.   rts
  25.  
  26. InitSprites:
  27.   move.l #0,snr1
  28.   move.l #40,snr2
  29.   move.l #80,snr3
  30.   move.l #120,snr4
  31.   move.l #160,snr5
  32.   move.l #200,snr6
  33.   move.l #240,snr7
  34.   move.l #280,snr8
  35.   rts
  36.  
  37. IrqRoutine:
  38.   movem.l d0/d1/a0/a1/a5/a6,-(a7)    ;save stack
  39.   lea $dff000,a0
  40.   move.l 4,a6
  41.   move.w $1c(a0),d1
  42.   btst #$e,d1            ;irq dissable?
  43.   beq.s    irqend
  44.   and.w    $1e(a0),d1
  45.   btst #6,d1
  46.   beq.s lev3vb
  47.   movem.l $9c(a6),a1/a5
  48.   pea -$24(a6)
  49.   jmp (a5)
  50. lev3vb: 
  51.   btst #5,d1            ;vertical blank
  52.   beq.s    lev3cop
  53.   bsr move
  54.   movem.l $90(a6),a1/a5
  55.   pea -$24(a6)
  56.   jmp (a5)
  57. lev3cop:
  58.   btst #4,d1            ;copper
  59.   beq.s    irqend
  60.   movem.l $84(a6),a1/a5
  61.   pea -$24(a6)
  62.   jmp (a5)
  63. irqend:
  64.   movem.l (a7)+,d0/d1/a0/a1/a5/a6
  65.   rte
  66.  
  67. IrqVec: dc.l 0
  68.  
  69. move:
  70.   movem.l d0-d7/a0-a6,-(sp)
  71.   bsr MoveSpriteMain
  72.   movem.l (sp)+,d0-d7/a0-a6
  73.   rts
  74.  
  75. MoveSpriteMain:
  76.   bsr BewegeSprites
  77.   add.l #4,snr1
  78.   add.l #4,snr2
  79.   add.l #4,snr3
  80.   add.l #4,snr4
  81.   add.l #4,snr5
  82.   add.l #4,snr6
  83.   add.l #4,snr7
  84.   add.l #4,snr8
  85. EndeMainMove:
  86.   rts
  87.  
  88. snr1: dc.l 00
  89. snr2: dc.l 40
  90. snr3: dc.l 80
  91. snr4: dc.l 120
  92. snr5: dc.l 160
  93. snr6: dc.l 200
  94. snr7: dc.l 240
  95. snr8: dc.l 280
  96. sx: dc.l 0
  97. sy: dc.l 0
  98.  
  99. BewegeSprites:
  100.   lea points,a5
  101.   add.l snr1,a5
  102.   move.l PointsNr,d7
  103.   sub.l #4,d7
  104.   mulu #4,d7
  105.   cmp.l snr1,d7
  106.   bcc spr1
  107.   clr.l snr1
  108. spr1:
  109.   move.w (a5)+,d0
  110.   move.w (a5)+,d1
  111.   lea.l sprite00,a1
  112.   bsr SetSprite
  113.  
  114.   lea points,a5
  115.   add.l snr2,a5
  116.   cmp.l snr2,d7
  117.   bcc spr2
  118.   clr.l snr2
  119. spr2:
  120.   move.w (a5)+,d0
  121.   move.w (a5)+,d1
  122.   lea.l sprite01,a1
  123.   bsr SetSprite
  124.  
  125.   lea points,a5
  126.   add.l snr3,a5
  127.   cmp.l snr3,d7
  128.   bcc spr3
  129.   clr.l snr3
  130. spr3:
  131.   move.w (a5)+,d0
  132.   move.w (a5)+,d1
  133.   lea.l sprite02,a1
  134.   bsr SetSprite
  135.  
  136.   lea points,a5
  137.   add.l snr4,a5
  138.   cmp.l snr4,d7
  139.   bcc spr4
  140.   clr.l snr4
  141. spr4:
  142.   move.w (a5)+,d0
  143.   move.w (a5)+,d1
  144.   lea.l sprite03,a1
  145.   bsr SetSprite
  146.  
  147.   lea points,a5
  148.   add.l snr5,a5
  149.   cmp.l snr5,d7
  150.   bcc spr5
  151.   clr.l snr5
  152. spr5:
  153.   move.w (a5)+,d0
  154.   move.w (a5)+,d1
  155.   lea.l sprite04,a1
  156.   bsr SetSprite
  157.  
  158.   lea points,a5
  159.   add.l snr6,a5
  160.   cmp.l snr6,d7
  161.   bcc spr6
  162.   clr.l snr6
  163. spr6:
  164.   move.w (a5)+,d0
  165.   move.w (a5)+,d1
  166.   lea.l sprite05,a1
  167.   bsr SetSprite
  168.  
  169.   lea points,a5
  170.   add.l snr7,a5
  171.   cmp.l snr7,d7
  172.   bcc spr7
  173.   clr.l snr7
  174. spr7:
  175.   move.w (a5)+,d0
  176.   move.w (a5)+,d1
  177.   lea.l sprite06,a1
  178.   bsr SetSprite
  179.  
  180.   lea points,a5
  181.   add.l snr8,a5
  182.   cmp.l snr8,d7
  183.   bcc spr8
  184.   clr.l snr8
  185. spr8:
  186.   move.w (a5)+,d0
  187.   move.w (a5)+,d1
  188.   lea.l sprite07,a1
  189.   bsr SetSprite
  190.   rts
  191.  
  192. SetSprite:
  193.   move.l gfxbase,a6
  194.   move.l #0,a0
  195.   jsr -426(a6)
  196.   rts
  197.  
  198. RemoveSprites:
  199.   move.l gfxbase,a6
  200.   move.b #0,d0
  201.   jsr -414(a6)
  202.   move.b #1,d0
  203.   jsr -414(a6)
  204.   move.b #2,d0
  205.   jsr -414(a6)
  206.   move.b #3,d0
  207.   jsr -414(a6)
  208.   move.b #4,d0
  209.   jsr -414(a6)
  210.   move.b #5,d0
  211.   jsr -414(a6)
  212.   move.b #6,d0
  213.   jsr -414(a6)
  214.   move.b #7,d0
  215.   jsr -414(a6)
  216.   rts
  217.  
  218. sprite00:    dc.l    spritelook0  ;pointer to Sprite-image
  219.         dc.w    8            ;sprite hight
  220.         dc.w    0,0          ;x,y
  221.         dc.w    0            ;Sprite #0
  222.  
  223. sprite01:    dc.l    spritelook1
  224.         dc.w    8
  225.         dc.w    0,0
  226.         dc.w    1            ;Sprite #1
  227.  
  228. sprite02:    dc.l    spritelook2
  229.         dc.w    8
  230.         dc.w    0,0
  231.         dc.w    2
  232.  
  233. sprite03:    dc.l    spritelook3
  234.         dc.w    8
  235.         dc.w    0,0
  236.         dc.w    3
  237.  
  238. sprite04:    dc.l    spritelook4
  239.         dc.w    8
  240.         dc.w    0,0
  241.         dc.w    4
  242.  
  243. sprite05:    dc.l    spritelook5
  244.         dc.w    8
  245.         dc.w    0,0
  246.         dc.w    5
  247.  
  248. sprite06:    dc.l    spritelook6
  249.         dc.w    8
  250.         dc.w    0,0
  251.         dc.w    6
  252.  
  253. sprite07:    dc.l    spritelook7
  254.         dc.w    10
  255.         dc.w    0,0
  256.         dc.w    7
  257.  
  258. spritelook0:    dc.w    0,0
  259.                 dc.w    %1111111100000000,0
  260.                 dc.w    %1000000100000000,0
  261.                 dc.w    %1000000100000000,0
  262.                 dc.w    %1000000100000000,0
  263.                 dc.w    %1000000100000000,0
  264.                 dc.w    %1000000100000000,0
  265.                 dc.w    %1000000100000000,0
  266.                 dc.w    %1111111100000000,0
  267.         dc.w    0,0
  268.  
  269. spritelook1:    dc.w    0,0
  270.                 dc.w    %1000000000000000,0
  271.                 dc.w    %1100000000000000,0
  272.                 dc.w    %1110000000000000,0
  273.                 dc.w    %1111000000000000,0
  274.                 dc.w    %1111100000000000,0
  275.                 dc.w    %1111110000000000,0
  276.                 dc.w    %1111111000000000,0
  277.                 dc.w    %1111111100000000,0
  278.         dc.w    0,0
  279.  
  280. spritelook2:    dc.w    0,0
  281.         dc.w    %1110000000000000,0
  282.         dc.w    %1111100000000000,0
  283.         dc.w    %1111110000000000,0
  284.         dc.w    %1111110000000000,0
  285.         dc.w    %1111110000000000,0
  286.         dc.w    %1111110000000000,0
  287.         dc.w    %1111100000000000,0
  288.         dc.w    %1110000000000000,0
  289.         dc.w    0,0
  290.  
  291. spritelook3:    dc.w    0,0
  292.         dc.w    %1101101100000000,0
  293.         dc.w    %1101101100000000,0
  294.         dc.w    %0001100000000000,0
  295.         dc.w    %1111111100000000,0
  296.         dc.w    %1111111100000000,0
  297.         dc.w    %0001100000000000,0
  298.         dc.w    %1101101100000000,0
  299.         dc.w    %1101101100000000,0
  300.         dc.w    0,0
  301.  
  302. spritelook4:    dc.w    0,0
  303.         dc.w    %0000001110000000,0
  304.         dc.w    %0000010001000000,0
  305.         dc.w    %0000100000100000,0
  306.         dc.w    %0000100000100000,0
  307.         dc.w    %0001000000010000,0
  308.         dc.w    %0001000000010000,0
  309.         dc.w    %0001000000010000,0
  310.         dc.w    %0111000000011100,0
  311.         dc.w    0,0
  312.  
  313. spritelook5:    dc.w    0,0
  314.         dc.w    %0000001000000000,0
  315.         dc.w    %0000010100000000,0
  316.         dc.w    %0000100010000000,0
  317.         dc.w    %0001000001000000,0
  318.         dc.w    %0010000000100000,0
  319.         dc.w    %0100000000010000,0
  320.         dc.w    %1000000000001000,0
  321.         dc.w    %1111111111111000,0
  322.         dc.w    0,0
  323.  
  324. spritelook6:    dc.w    0,0
  325.         dc.w    %0000001100000000,0
  326.         dc.w    %0000011110000000,0
  327.         dc.w    %0000111111000000,0
  328.         dc.w    %0001111111100000,0
  329.         dc.w    %0000111111000000,0
  330.         dc.w    %0000011110000000,0
  331.         dc.w    %0000001100000000,0
  332.         dc.w    0,0
  333.  
  334. spritelook7:    dc.w    0,0
  335.         dc.w    %0000110000000000,0
  336.         dc.w    %0011001100000000,0
  337.         dc.w    %0101111010000000,0
  338.         dc.w    %1010000101000000,0
  339.         dc.w    %1010110101000000,0
  340.         dc.w    %1010110101000000,0
  341.         dc.w    %1010000101000000,0
  342.         dc.w    %0101111010000000,0
  343.         dc.w    %0011001100000000,0
  344.         dc.w    %0000110000000000,0
  345.         dc.w    0,0
  346.  
  347. gfxname: dc.b "graphics.library",0,0
  348. gfxbase: dc.l 0
  349.  
  350. ;
  351. ; Load Point-Data.S at this place
  352. ;
  353.  
  354. PointsNr: dc.l $4E      
  355.  
  356. Points:
  357.  DC.W $1   ,$AF  ,$2   ,$AF  
  358.  DC.W $4   ,$AF  ,$7   ,$AF  
  359.  DC.W $A   ,$AF  ,$E   ,$AF  
  360.  DC.W $13  ,$AF  ,$18  ,$AF  
  361.  DC.W $1D  ,$AF  ,$22  ,$AF  
  362.  DC.W $28  ,$AF  ,$2F  ,$AF  
  363.  DC.W $36  ,$AF  ,$3E  ,$AF  
  364.  DC.W $45  ,$AF  ,$4C  ,$AF  
  365.  DC.W $55  ,$AF  ,$5D  ,$AF  
  366.  DC.W $67  ,$AE  ,$70  ,$AE  
  367.  DC.W $77  ,$AD  ,$81  ,$AD  
  368.  DC.W $89  ,$AD  ,$92  ,$AB  
  369.  DC.W $9B  ,$AB  ,$A5  ,$A9  
  370.  DC.W $B1  ,$A8  ,$BD  ,$A7  
  371.  DC.W $CB  ,$A5  ,$D8  ,$A5  
  372.  DC.W $E5  ,$A3  ,$F1  ,$A1  
  373.  DC.W $FD  ,$9F  ,$10A ,$9D  
  374.  DC.W $117 ,$9B  ,$125 ,$99  
  375.  DC.W $132 ,$97  ,$13F ,$96  
  376.  DC.W $13F ,$95  ,$13F ,$95  
  377.  DC.W $13F ,$94  ,$13F ,$93  
  378.  DC.W $13F ,$93  ,$13F ,$93  
  379.  DC.W $13F ,$93  ,$13F ,$93  
  380.  DC.W $13F ,$93  ,$13F ,$94  
  381.  DC.W $13D ,$95  ,$13B ,$96  
  382.  DC.W $137 ,$97  ,$132 ,$99  
  383.  DC.W $12C ,$9A  ,$124 ,$9C  
  384.  DC.W $11C ,$9D  ,$115 ,$9F  
  385.  DC.W $10B ,$A1  ,$101 ,$A3  
  386.  DC.W $F5  ,$A4  ,$EA  ,$A6  
  387.  DC.W $DC  ,$A8  ,$CD  ,$AB  
  388.  DC.W $BE  ,$AD  ,$AD  ,$B1  
  389.  DC.W $9C  ,$B3  ,$8B  ,$B5  
  390.  DC.W $77  ,$B7  ,$64  ,$B8  
  391.  DC.W $4F  ,$B9  ,$3D  ,$BA  
  392.  DC.W $26  ,$BB  ,$12  ,$BB  
  393.  DC.W $0   ,$BB  ,$0   ,$BB  
  394.  DC.W $0   ,$BB  ,$0   ,$BA  
  395.  DC.W $0   ,$B9  ,$0   ,$B9  
  396.  DC.W $0