Advertisement
Guest User

Untitled

a guest
Oct 8th, 2017
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ==================================================================================
  2. ; Amiga Blit Tiles To Screen,Sprite control,SpriteAnimation,Sprite Tile Collision
  3. ;=================================================================================
  4.  
  5.   section Tutorial,code_c
  6.  
  7.   move.l 4,a6                       ;Get base of exec lib
  8.   lea gfxlib(pc),a1                 ;Address of gfxlib string to a1
  9.   jsr OpenLib(a6)                   ;Call OpenLibrary()
  10.   move.l d0,gfxbase                 ;Save base of graphics library
  11.   move.l  d0,a6                     ;graphics library
  12.   jsr -$1c8(a6)                     ;OwnBlitter
  13.   move.l a6,_SaveAddressRegister6   ;Save  
  14.  
  15.  
  16.    
  17.   lea BitPlanePointers,a1            ;Address of bitplanepointers in copperlist
  18. SetupBitPlanePointers:
  19.  move.l #BitPlane1,d0               ;Insert bitplane1 address into bitplane pointer1 in 'copperlist'
  20.   move.w d0,6(a1)
  21.   swap d0                  
  22.   move.w d0,2(a1)
  23.   add.l #8,a1
  24.   move.l #BitPlane2,d0
  25.   move.w d0,6(a1)                    ;Insert bitplane2 address into bitplane pointer2 in 'copperlist'
  26.   swap d0    
  27.   move.w d0,2(a1)
  28.   add.l #8,a1
  29.   move.l #BitPlane3,d0
  30.   move.w d0,6(a1)                    ;Insert bitplane3 address into bitplane pointer3 in 'copperlist'
  31.   swap d0    
  32.   move.w d0,2(a1)
  33.   add.l #8,a1
  34.   move.l #BitPlane4,d0
  35.   move.w d0,6(a1)                    ;Insert bitplane4 address into bitplane pointer4 in 'copperlist'
  36.   swap d0    
  37.   move.w d0,2(a1)
  38. ;----------------------------------------------------------
  39.   move.l #14,d2
  40.   move.w #DMASET,$dff096
  41.   move.l #CopperList,$dff080
  42.   move.w #80,_BalloonYPosition
  43.   move.w #150,_BalloonXPosition
  44. ;----------------------------------------------------------
  45.   move.l #BalloonFrame1,d0
  46.   move.l d0,_pSpriteStructure
  47.   move.b #4,_AnimationTimer
  48.   move.b #0,_AnimationFrame
  49.   jsr Do_BlitTilesToScreen
  50. GameLoop:
  51.   bsr.w Delay
  52.   bsr.w Do_BalloonControl
  53. mouse:
  54.   btst #6,$bfe001                    ;Left mouse clicked?
  55.   bne GameLoop                       ;No,continue loop
  56.   move.l _SaveAddressRegister6,a6    ;Restore
  57.   move.l gfxbase(pc),a1              ;Base of graphics.library to a1
  58.   jsr -$1ce(a6)                      ;Disable OwnBlitter
  59.   move.l 38(a1),$dff080              ;Restore old copperlist
  60.   jsr -414(a6)                       ;Call CloseLibrary()
  61.   moveq #0,d0  
  62.   rts        
  63. ;----------------------------------------------------------  
  64. Do_BalloonControl:
  65.  bsr.w Do_GetJoyStickInput
  66.   bsr.w Do_BalloonMovement
  67.   bsr.w SpriteAnimation
  68.   bsr.w Do_UpdateSprite
  69.   rts
  70. ;----------------------------------------------------------
  71. Do_GetJoyStickInput:
  72.  move.w $dff00c,d0
  73.   lea _JoyStickInput,a0
  74.   clr.b (a0)
  75.   move.w d0,d1
  76.   lsr.w #1, d1
  77.   eor.w d0,d1
  78. ChkJoyStickRight:
  79.   btst.l #1,d0
  80.   beq ChkJoyStickLeft
  81.   bset.b #JoyStickPressedRight,(a0)  
  82. ChkJoyStickLeft:
  83.  btst.l #9,d0
  84.   beq ChkJoyStickDown
  85.   bset.b #JoyStickPressedLeft,(a0)
  86. ChkJoyStickDown:
  87.  btst.l #0,d1
  88.   beq ChkJoyStickUp
  89.   bset.b #JoyStickPressedDown,(a0)
  90. ChkJoyStickUp:
  91.   btst.l #8,d1
  92.   beq JoyStickExit
  93.   bset.b #JoyStickPressedUp,(a0)
  94. JoyStickExit:
  95.   rts
  96. ;----------------------------------------------------------
  97. Do_BalloonMovement:
  98.  btst.b #JoyStickPressedUp,(a0)
  99.   beq BalloonMovement1
  100.   bsr Do_BallonMovementUp
  101. BalloonMovement1:
  102.   btst.b #JoyStickPressedDown,(a0)
  103.   beq BalloonMovement2
  104.   bsr Do_BallonMovementDown
  105. BalloonMovement2:
  106.   btst.b #JoyStickPressedLeft,(a0)
  107.   beq BalloonMovement3
  108.   bsr Do_BallonMovementLeft
  109. BalloonMovement3:
  110.   btst.b #JoyStickPressedRight,(a0)
  111.   beq BalloonMovementExit
  112.   bsr Do_BallonMovementRight
  113. BalloonMovementExit:
  114.  rts  
  115. ;----------------------------------------------------------  
  116. Do_BallonMovementUp:
  117.  jsr Do_TileUpCheck
  118.   beq BallonMovementUpDone  
  119.   sub.w #1,_BalloonYPosition
  120. BallonMovementUpDone:  
  121.   rts
  122. ;----------------------------------------------------------  
  123. Do_BallonMovementDown:
  124.  jsr Do_TileDownCheck
  125.   beq BallonMovementDownDone
  126.   add.w #1,_BalloonYPosition
  127. BallonMovementDownDone:
  128.   rts
  129. ;----------------------------------------------------------  
  130. Do_BallonMovementLeft:
  131.  jsr Do_TileLeftCheck
  132.   beq BallonMovementLeftDone
  133.   sub.w #1,_BalloonXPosition
  134. BallonMovementLeftDone:
  135.   rts
  136. ;----------------------------------------------------------
  137. Do_BallonMovementRight:
  138.   jsr Do_TileRightCheck
  139.   beq BallonMovementRightDone
  140.   add.w #1,_BalloonXPosition
  141. BallonMovementRightDone:
  142.   rts
  143.  
  144.  
  145.  
  146. ;-----------------------------------------------------------------------------------------------------
  147. ;The amiga horizontal sprites move at double pixel width'2 pixels per x axis movement"  
  148. ;horizontal border = 64 pixels*2 = 128
  149. ;vertical border = 44 pixels
  150. ;-----------------------------------------------------------------------------------------------------
  151. Do_TileUpCheck:
  152. ;CheckBalloonTopLeft:
  153.   move.w _BalloonXPosition,d0
  154.   sub.w #128,d0                                      ;Horizontal border = 64 pixels*2 = 128 'Gives us the left x axis of our balloon collision box"
  155.   lsr.w #4,d0                                        ;Divide by 16'our tile size'
  156.   move.w _BalloonYPosition,d1
  157.   sub.w #46,d1                                       ;BalloonYPosition-Vertical border+2 = 46 pixels"Gives us the top y axis of our balloon collision box"
  158.   lsr.w #4,d1                                        ;Divide by 16'our tile size'
  159.   mulu.w #20,d1                                      ;Multiply (Yposition/16*Map Width)our map width is 20,16x16 tiles per row
  160.   add.w d1,d0
  161.   move.l #Map,a2
  162.   move.b (a2,d0),d2
  163.   cmpi.b #1,d2
  164.   beq Collision
  165. ;CheckBalloonTopRight:  
  166.   move.w _BalloonXPosition,d0
  167.   sub.w #114,d0
  168.   lsr.w #4,d0                                         ;Divide by 16'our tile size'
  169.   move.w _BalloonYPosition,d1
  170.   sub.w #46,d1
  171.   lsr.w #4,d1                                         ;Divide by 16'our tile size'  
  172.   mulu.w #20,d1                                       ;Multiply (Yposition/16*Map Width)our map width is 20,16x16 tiles per row
  173.   add.w d1,d0
  174.   move.l #Map,a2
  175.   move.b (a2,d0),d2
  176.   cmpi.b #1,d2
  177.   beq Collision
  178. ;----------------------------------------------------------  
  179. NoCollision:
  180.  move.b #1,d2
  181.   rts  
  182. Collision:
  183.  move.b #0,d2
  184.   rts
  185. ;----------------------------------------------------------  
  186. Do_TileDownCheck:
  187. ;CheckBalloonBottomLeft:
  188.   move.w _BalloonXPosition,d0
  189.   sub.w #128,d0
  190.   lsr.w #4,d0
  191.   move.w _BalloonYPosition,d1
  192.   sub.w #32,d1
  193.   lsr.w #4,d1
  194.   mulu.w #20,d1
  195.   add.w d1,d0
  196.   move.l #Map,a2
  197.   move.b (a2,d0),d2
  198.   cmpi.b #1,d2
  199.   beq TileDownCollision
  200. ;CheckBalloonBottomRight:  
  201.   move.w _BalloonXPosition,d0
  202.   sub.w #114,d0
  203.   lsr.w #4,d0
  204.   move.w _BalloonYPosition,d1
  205.   sub.w #32,d1
  206.   lsr.w #4,d1
  207.   mulu.w #20,d1
  208.   add.w d1,d0
  209.   move.l #Map,a2
  210.   move.b (a2,d0),d2
  211.   cmpi.b #1,d2
  212.   beq TileDownCollision
  213.   jmp NoCollision  
  214. TileDownCollision:
  215.   jmp Collision
  216. ;----------------------------------------------------------  
  217. Do_TileLeftCheck:
  218. ;CheckBalloonTopLeft:
  219.   move.w _BalloonXPosition,d0
  220.   sub.w #130,d0
  221.   lsr.w #4,d0
  222.   move.w _BalloonYPosition,d1
  223.   sub.w #48,d1
  224.   lsr.w #4,d1
  225.   mulu.w #20,d1
  226.   add.w d1,d0
  227.   move.l #Map,a2
  228.   move.b (a2,d0),d2
  229.   cmpi.b #1,d2
  230.   beq TileLeftCollision
  231. ;CheckBalloonBottomLeft:  
  232.   move.w _BalloonXPosition,d0
  233.   sub.w #130,d0
  234.   lsr.w #4,d0
  235.   move.w _BalloonYPosition,d1
  236.   sub.w #34,d1
  237.   lsr.w #4,d1
  238.   mulu.w #20,d1
  239.   add.w d1,d0
  240.   move.l #Map,a2
  241.   move.b (a2,d0),d2
  242.   cmpi.b #1,d2
  243.   beq TileLeftCollision  
  244.   jmp NoCollision  
  245. TileLeftCollision:
  246.   jmp Collision  
  247. ;----------------------------------------------------------  
  248. Do_TileRightCheck:
  249. ;CheckBalloonTopRight:
  250.   move.w _BalloonXPosition,d0
  251.   sub.w #112,d0
  252.   lsr.w #4,d0
  253.   move.w _BalloonYPosition,d1
  254.   sub.w #48,d1
  255.   lsr.w #4,d1                                        
  256.   mulu.w #20,d1                                      
  257.   add.w d1,d0
  258.   move.l #Map,a2
  259.   move.b (a2,d0),d2
  260.   cmpi.b #1,d2
  261.   beq TileRightCollision
  262. ;CheckBalloonBottomRight:  
  263.   move.w _BalloonXPosition,d0
  264.   sub.w #112,d0
  265.   lsr.w #4,d0
  266.   move.w _BalloonYPosition,d1
  267.   sub.w #34,d1
  268.   lsr.w #4,d1
  269.   mulu.w #20,d1
  270.   add.w d1,d0
  271.   move.l #Map,a2
  272.   move.b (a2,d0),d2
  273.   cmpi.b #1,d2
  274.   beq TileRightCollision  
  275.   jmp NoCollision  
  276. TileRightCollision:
  277.   jmp Collision    
  278. ;----------------------------------------------------------  
  279. Do_UpdateSprite:
  280.   move.l _pSpriteStructure,a0
  281.   move.l a0,d0
  282.   move.w d0,PlayerSpritePointerL
  283.   swap d0
  284.   move.w d0,PlayerSpritePointerH
  285.   move.w _BalloonYPosition,d2
  286.   move.b d2,BalloonYPositionStart(a0)
  287.   add.w #17,d2                          ;Length Of our Sprite
  288.   move.b d2,BalloonYPositionEnd(a0)
  289.   move.w _BalloonXPosition,d2
  290.   lsr.w #1,d2
  291.   move.b d2,BalloonXPositionStart(a0)
  292.   rts
  293. ;----------------------------------------------------------  
  294. SpriteAnimation:
  295.   addi.b #1,_AnimationTimer
  296.   cmpi.b #7,_AnimationTimer
  297.   bne SpriteAnimationDone
  298.   clr.b _AnimationTimer
  299.   addi.b #1,_AnimationFrame
  300.   cmpi.b #8,_AnimationFrame
  301.   bne.s SpriteAnimationCont
  302.   clr.b _AnimationFrame
  303. SpriteAnimationCont:
  304.  move.l #BalloonFramePointerTable,a0
  305.   clr.l d0
  306.   move.b _AnimationFrame,d0
  307.   asl.b #2,d0
  308.   move.l (a0,d0.w),_pSpriteStructure
  309. SpriteAnimationDone:
  310.  rts  
  311. ;----------------------------------------------------------  
  312. Do_BlitTilesToScreen:
  313.  movea.l #BitPlane1,a2
  314.   movea.l #BitPlane2,a3
  315.   movea.l #BitPlane3,a4
  316.   movea.l #BitPlane4,a5
  317.   move.l #Map,a0
  318.   move.l #TileDataPointers,a6
  319.   move.l #12,d1                 ;Number Of Rows To Draw
  320. BlitTilesToScreenCont:
  321.   moveq #19,d0                  ;Number Of Columns To Draw
  322. BlitTilesToScreenLoop:
  323.  move.l #0,d2
  324.   move.b (a0)+,d2
  325.   asl.w #2,d2
  326.   move.l (a6,d2.w),_pBlitSource  
  327.   move.l a2,_pBlitDestination
  328.   bsr Do_Blit
  329. ;------------------------------------------------------------------------------------
  330. ;Add offset to blitsource so it points to next correct 16*16 tile
  331. ;Move bitplane pointer to BlitDestination Pointer
  332. ;Blit 16*16 tile to screen  
  333. ;------------------------------------------------------------------------------------
  334.   add.l #32,_pBlitSource          ;Each Tile is '16*16' and word size is two bytes so 16*2 = 32
  335.   move.l a3,_pBlitDestination     ;Move bitplane pointer to BlitDestination Pointer
  336.   bsr Do_Blit                     ;Blit 16*16 tile to screen
  337.   add.l #32,_pBlitSource
  338.   move.l a4,_pBlitDestination
  339.   bsr Do_Blit
  340.   add.l #32,_pBlitSource
  341.   move.l a5,_pBlitDestination
  342.   bsr Do_Blit
  343. ;------------------------------------------------------------------------------------
  344. ;Add two'2' to bitplane pointers for next column in row
  345. ;------------------------------------------------------------------------------------  
  346.   add.l #2,a2
  347.   add.l #2,a3
  348.   add.l #2,a4
  349.   add.l #2,a5
  350.   dbra d0,BlitTilesToScreenLoop
  351. ;------------------------------------------------------------------------------------
  352. ;Add sixhundred'600' to bitplane pointers for next row
  353. ;Since are screenwidth is 320/8 = 40 pixels,and our tiles are 16*16 pixels and we draw
  354. ;20 tiles per row.We added two'2' to our bitplane offsets above to draw across the screen
  355. ;that's 20 tiles * 2 = 40,we add 600 to bitplane pointers for next screen row.
  356. ;Since the tiles are 16 pixels/width and 16 pixel/Height each and we draw 20 per column
  357. ;we need to skip screenwidth*2 for correct row offset."320*2 = 640',we already added
  358. ;40 to the bitplane pointers above so we add 600 to them below.
  359. ;------------------------------------------------------------------------------------  
  360.   add.l #600,a2
  361.   add.l #600,a3
  362.   add.l #600,a4
  363.   add.l #600,a5
  364.   dbra d1,BlitTilesToScreenCont
  365.   rts
  366. ;------------------------------------------------------------------------------------
  367. Do_Blit:
  368.  move.l _pBlitSource,$dff050          ;BlitAPionter (source)
  369.   move.l _pBlitDestination,$dff054     ;BlitDPointer (destination)
  370.   move.w #0,$dff064                   ;BlitAMod
  371.   move.w #38,$dff066                  ;BlitDMod
  372.   move.w #$ffff,$dff044               ;BltAfwm
  373.   move.w #$ffff,$dff046               ;BltAlwm
  374.   move.w #$09f0,$dff040               ;BlitControl0
  375.   move.w #$0000,$dff042               ;BlitControl1
  376.   move.w #16*64+1,$dff058             ;BlitSize
  377.   bsr Do_BlitterWait
  378.   rts  
  379. ;------------------------------------------------------------------------------------
  380. Do_BlitterWait:
  381.  btst #6,$dff002
  382.   bne Do_BlitterWait
  383.   rts
  384. ;------------------------------------------------------------------------------------
  385. Delay:
  386.  cmpi.b #255,$dff006
  387.   bne Delay
  388. Delay2:
  389.  cmpi.b #255,$dff006
  390.   beq Delay2
  391.   rts    
  392. ;------------------------------------------------------------------------------------
  393. ; Stuff
  394. ; *****
  395. ;------------------------------------------------------------------------------------
  396. CopperList:  
  397.   dc.w $008e,$2c81,$0090,$3fc1    ; Setting up display,
  398.   dc.w $0092,$0038,$0094,$00d0    ; modulo and so on
  399.   dc.w $0102,$0000,$0104,$0020    ;Sprite Priority"all sprites have spriority on bitplanes"
  400.   dc.w $0106,$0000,$0108,$0000    
  401.   dc.w $010a,$0000
  402. SpritePointers:
  403.   dc.w $0120
  404. PlayerSpritePointerH:
  405.   dc.w $0000
  406.   dc.w $0122
  407. PlayerSpritePointerL:
  408.   dc.w $0000    
  409.   dc.w $0124,NullSprite,$0126,NullSprite
  410.   dc.w $0128,NullSprite,$012a,NullSprite
  411.   dc.w $012c,NullSprite,$012e,NullSprite
  412.   dc.w $0130,NullSprite,$0132,NullSprite
  413.   dc.w $0134,NullSprite,$0136,NullSprite
  414.   dc.w $0138,NullSprite,$013a,NullSprite
  415.   dc.w $013c,NullSprite,$013e,NullSprite
  416. ;-------------------------------------------------------------------------
  417. ; Setting up the colors
  418. ;-------------------------------------------------------------------------  
  419.   dc.w BitPlaneColor0,$0000,BitPlaneColor1,$0f00
  420.   dc.w BitPlaneColor2,$0a00,BitPlaneColor3,$0a00
  421.   dc.w BitPlaneColor4,$0f08,BitPlaneColor5,$033a
  422.   dc.w BitPlaneColor6,$0852,BitPlaneColor7,$0822
  423.   dc.w BitPlaneColor8,$0f04,BitPlaneColor9,$0f55
  424.   dc.w BitPlaneColor10,$0f04,BitPlaneColor11,$0fff
  425.   dc.w BitPlaneColor12,$0f04,BitPlaneColor13,$0fff
  426.   dc.w BitPlaneColor14,$0f04,BitPlaneColor15,$0f55
  427.   dc.w $1A2,$40e                             ;BitPlaneColor17,is also Color1 of the sprite0  
  428.   dc.w $1A4,$60f                             ;BitPlaneColor18,is also Color2 of the sprite0  
  429.   dc.w $1A6,$fff                             ;BitPlaneColor19,is also Color3 of the sprite0  
  430. ;-------------------------------------------------------------------------    
  431.   dc.w $0100,$4200                           ;4 Bitplanes,Color Burst
  432. ;-------------------------------------------------------------------------  
  433. BitPlanePointers:
  434.   dc.w $00e0,$0000,$00e2,$0000               ;BitPlanePointer1
  435.   dc.w $00e4,$0000,$00e6,$0000               ;BitPlanePointer2
  436.   dc.w $00e8,$0000,$00ea,$0000               ;BitPlanePointer3
  437.   dc.w $00ec,$0000,$00ee,$0000               ;BitPlanePointer4
  438.   dc.w $ffff,$fffe
  439. ;-------------------------------------------------------------------------  
  440. TileDataPointers:
  441. dc.l Tile1
  442.  dc.l Tile2  
  443. ;-------------------------------------------------------------------------
  444. Tile1:
  445.  dc.w %1111111111111111
  446.   dc.w %1000000000000001
  447.   dc.w %1011111111111101
  448.   dc.w %1010000000000101
  449.   dc.w %1010000000000101
  450.   dc.w %1010000000000101
  451.   dc.w %1010000110000101
  452.   dc.w %1010000110000101
  453.   dc.w %1010001111000101
  454.   dc.w %1010001111000101
  455.   dc.w %1010000000000101
  456.   dc.w %1010000000000101
  457.   dc.w %1010000000000101
  458.   dc.w %1011111111111101
  459.   dc.w %1000000000000001
  460.   dc.w %1111111111111111
  461. ;-------------------------------------------------------------------------
  462.   dc.w %0000000000000000
  463.   dc.w %0000000000000000
  464.   dc.w %0011111111111100
  465.   dc.w %0010000000000100
  466.   dc.w %0010000000000100
  467.   dc.w %0010000000000100
  468.   dc.w %0010000000000100
  469.   dc.w %0010000000000100
  470.   dc.w %0010000000000100
  471.   dc.w %0010000000000100
  472.   dc.w %0010000000000100
  473.   dc.w %0010000000000100
  474.   dc.w %0010000000000100
  475.   dc.w %0011111111111100
  476.   dc.w %0000000000000000
  477.   dc.w %0000000000000000
  478. ;-------------------------------------------------------------------------
  479.   dc.w %0000000000000000
  480.   dc.w %0000000000000000
  481.   dc.w %0000000000000000
  482.   dc.w %0000000000000000
  483.   dc.w %0000111111110000
  484.   dc.w %0000100000010000
  485.   dc.w %0000100000010000
  486.   dc.w %0000100000010000
  487.   dc.w %0000100000010000
  488.   dc.w %0000100000010000
  489.   dc.w %0000100000010000
  490.   dc.w %0000111111110000
  491.   dc.w %0000000000000000
  492.   dc.w %0000000000000000
  493.   dc.w %0000000000000000
  494.   dc.w %0000000000000000
  495. ;-------------------------------------------------------------------------
  496.   dc.w %0000000000000000
  497.   dc.w %0000000000000000
  498.   dc.w %0000000000000000
  499.   dc.w %0000000000000000
  500.   dc.w %0000000000000000
  501.   dc.w %0000000000000000
  502.   dc.w %0000001111000000
  503.   dc.w %0000001111000000
  504.   dc.w %0000000000000000
  505.   dc.w %0000000000000000
  506.   dc.w %0000000000000000
  507.   dc.w %0000000000000000
  508.   dc.w %0000000000000000
  509.   dc.w %0000000000000000
  510.   dc.w %0000000000000000
  511.   dc.w %0000000000000000
  512. Tile2:
  513. ;BitPlane1  
  514.   dc.w %1111111111111111
  515.   dc.w %1111111111111111
  516.   dc.w %1111111111111111
  517.   dc.w %1111111111111111
  518.   dc.w %1111111111111111
  519.   dc.w %1111111111111111
  520.   dc.w %1111111111111111
  521.   dc.w %1111111111111111
  522.   dc.w %1111111111111111
  523.   dc.w %1111111111111111
  524.   dc.w %1111111111111111
  525.   dc.w %1111111111111111
  526.   dc.w %1111111111111111
  527.   dc.w %1111111111111111
  528.   dc.w %1111111111111111
  529.   dc.w %1111111111111111
  530. ;BitPlane2  
  531.   dc.w %0000000011111111
  532.   dc.w %0000000011111111
  533.   dc.w %0000000011111111
  534.   dc.w %0000000011111111
  535.   dc.w %0000000011111111
  536.   dc.w %0000000011111111
  537.   dc.w %0000000011111111
  538.   dc.w %0000000011111111
  539.   dc.w %1111111100000000
  540.   dc.w %1111111100000000
  541.   dc.w %1111111100000000
  542.   dc.w %1111111100000000
  543.   dc.w %1111111100000000
  544.   dc.w %1111111100000000
  545.   dc.w %1111111100000000
  546.   dc.w %1111111100000000
  547. ;BitPlane3  
  548.   dc.w %0000000000000000
  549.   dc.w %0000000000000000
  550.   dc.w %0000000000000000
  551.   dc.w %0000000000000000
  552.   dc.w %0000000000000000
  553.   dc.w %0000000000000000
  554.   dc.w %0000000000000000
  555.   dc.w %0000000000000000
  556.   dc.w %0000000000000000
  557.   dc.w %0000000000000000
  558.   dc.w %0000000000000000
  559.   dc.w %0000000000000000
  560.   dc.w %0000000000000000
  561.   dc.w %0000000000000000
  562.   dc.w %0000000000000000
  563.   dc.w %0000000000000000
  564. ;BitPlane4  
  565.   dc.w %0000000000000000
  566.   dc.w %0000000000000000
  567.   dc.w %0000000000000000
  568.   dc.w %0000000000000000
  569.   dc.w %0000000000000000
  570.   dc.w %0000000000000000
  571.   dc.w %0000000000000000
  572.   dc.w %0000000000000000
  573.   dc.w %0000000000000000
  574.   dc.w %0000000000000000
  575.   dc.w %0000000000000000
  576.   dc.w %0000000000000000
  577.   dc.w %0000000000000000
  578.   dc.w %0000000000000000
  579.   dc.w %0000000000000000
  580.   dc.w %0000000000000000
  581. ;-----------------------------------------------  
  582. BalloonFramePointerTable:
  583. dc.l BalloonFrame1
  584.  dc.l BalloonFrame2
  585.  dc.l BalloonFrame3
  586.  dc.l BalloonFrame2
  587.  dc.l BalloonFrame1
  588.  dc.l BalloonFrame4
  589.  dc.l BalloonFrame5
  590.  dc.l BalloonFrame4
  591.  dc.l BalloonFrame1
  592. ;-----------------------------------------------  
  593.  
  594. ;-----------------------------------------------
  595. BalloonFrame1:
  596.  dc.w $0000,$0000
  597.   dc.w %0000111111110000,%0000000000000000
  598.   dc.w %0001000000001000,%0000111111110000
  599.   dc.w %0010000000000100,%0001111111111000
  600.   dc.w %0100000000000010,%0011111111111100
  601.   dc.w %0100000000000010,%0011111111111100
  602.   dc.w %0100000000000010,%0011111111111100
  603.   dc.w %0100000000000010,%0011111111111100
  604.   dc.w %0010000000000100,%0001111111111000
  605.   dc.w %0001000000001000,%0000111111110000
  606.   dc.w %0000110000110000,%0000001111000000
  607.   dc.w %0000011001100000,%0000000110000000
  608.   dc.w %0000000110000000,%0000000000000000
  609.   dc.w %0000000010000000,%0000000010000000
  610.   dc.w %0000000010000000,%0000000010000000
  611.   dc.w %0000000010000000,%0000000010000000
  612.   dc.w %0000000010000000,%0000000010000000
  613.   dc.w %0000000010000000,%0000000010000000
  614.   dc.w %0000000010000000,%0000000010000000
  615.   dc.w 0,0                                 ;End of the sprite.
  616. ;-----------------------------------------------
  617. BalloonFrame2:
  618.  dc.w $0000,$0000
  619.   dc.w %0000111111110000,%0000000000000000
  620.   dc.w %0001000000001000,%0000111111110000
  621.   dc.w %0010000000000100,%0001111111111000
  622.   dc.w %0100000000000010,%0011111111111100
  623.   dc.w %0100000000000010,%0011111111111100
  624.   dc.w %0100000000000010,%0011111111111100
  625.   dc.w %0100000000000010,%0011111111111100
  626.   dc.w %0010000000000100,%0001111111111000
  627.   dc.w %0001000000001000,%0000111111110000
  628.   dc.w %0000110000110000,%0000001111000000
  629.   dc.w %0000011001100000,%0000000110000000
  630.   dc.w %0000000110000000,%0000000000000000
  631.   dc.w %0000000010000000,%0000000010000000
  632.   dc.w %0000000010000000,%0000000010000000
  633.   dc.w %0000000001000000,%0000000001000000
  634.   dc.w %0000000001000000,%0000000001000000
  635.   dc.w %0000000000100000,%0000000000100000
  636.   dc.w %0000000000100000,%0000000000100000
  637.   dc.w 0,0                                 ;End of the sprite.
  638. ;-----------------------------------------------
  639. BalloonFrame3:
  640.  dc.w $0000,$0000
  641.   dc.w %0000111111110000,%0000000000000000
  642.   dc.w %0001000000001000,%0000111111110000
  643.   dc.w %0010000000000100,%0001111111111000
  644.   dc.w %0100000000000010,%0011111111111100
  645.   dc.w %0100000000000010,%0011111111111100
  646.   dc.w %0100000000000010,%0011111111111100
  647.   dc.w %0100000000000010,%0011111111111100
  648.   dc.w %0010000000000100,%0001111111111000
  649.   dc.w %0001000000001000,%0000111111110000
  650.   dc.w %0000110000110000,%0000001111000000
  651.   dc.w %0000011001100000,%0000000110000000
  652.   dc.w %0000000110000000,%0000000000000000
  653.   dc.w %0000000010000000,%0000000010000000
  654.   dc.w %0000000001000000,%0000000001000000
  655.   dc.w %0000000000100000,%0000000000100000
  656.   dc.w %0000000000010000,%0000000000010000
  657.   dc.w %0000000000001000,%0000000000001000
  658.   dc.w %0000000000000100,%0000000000000100
  659.   dc.w 0,0                                 ;End of the sprite.
  660. ;-----------------------------------------------
  661. BalloonFrame4:
  662.  dc.w $0000,$0000
  663.   dc.w %0000111111110000,%0000000000000000
  664.   dc.w %0001000000001000,%0000111111110000
  665.   dc.w %0010000000000100,%0001111111111000
  666.   dc.w %0100000000000010,%0011111111111100
  667.   dc.w %0100000000000010,%0011111111111100
  668.   dc.w %0100000000000010,%0011111111111100
  669.   dc.w %0100000000000010,%0011111111111100
  670.   dc.w %0010000000000100,%0001111111111000
  671.   dc.w %0001000000001000,%0000111111110000
  672.   dc.w %0000110000110000,%0000001111000000
  673.   dc.w %0000011001100000,%0000000110000000
  674.   dc.w %0000000110000000,%0000000000000000
  675.   dc.w %0000000100000000,%0000000100000000
  676.   dc.w %0000000100000000,%0000000100000000
  677.   dc.w %0000001000000000,%0000001000000000
  678.   dc.w %0000001000000000,%0000001000000000
  679.   dc.w %0000010000000000,%0000010000000000
  680.   dc.w %0000010000000000,%0000010000000000
  681.   dc.w 0,0                                 ;End of the sprite.            
  682. ;-----------------------------------------------
  683. BalloonFrame5:
  684.  dc.w $0000,$0000
  685.   dc.w %0000111111110000,%0000000000000000
  686.   dc.w %0001000000001000,%0000111111110000
  687.   dc.w %0010000000000100,%0001111111111000
  688.   dc.w %0100000000000010,%0011111111111100
  689.   dc.w %0100000000000010,%0011111111111100
  690.   dc.w %0100000000000010,%0011111111111100
  691.   dc.w %0100000000000010,%0011111111111100
  692.   dc.w %0010000000000100,%0001111111111000
  693.   dc.w %0001000000001000,%0000111111110000
  694.   dc.w %0000110000110000,%0000001111000000
  695.   dc.w %0000011001100000,%0000000110000000
  696.   dc.w %0000000110000000,%0000000000000000
  697.   dc.w %0000000100000000,%0000000100000000
  698.   dc.w %0000001000000000,%0000001000000000
  699.   dc.w %0000010000000000,%0000010000000000
  700.   dc.w %0000100000000000,%0000100000000000
  701.   dc.w %0001000000000000,%0001000000000000
  702.   dc.w %0010000000000000,%0010000000000000
  703.   dc.w 0,0                                 ;End of the sprite.
  704. ;-----------------------------------------------  
  705. Map:
  706.  dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
  707.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
  708.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
  709.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
  710.   dc.b 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1
  711.   dc.b 1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1
  712.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
  713.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1
  714.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
  715.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
  716.   dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1
  717.   dc.b 1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,1,1
  718.   dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
  719. ;-----------------------------------------------  
  720. ;Equates
  721. ;-----------------------------------------------
  722. BitPlaneColor0 equ $0180
  723. BitPlaneColor1 equ $0182
  724. BitPlaneColor2 EQU $0184
  725. BitPlaneColor3 EQU $0186
  726. BitPlaneColor4 EQU $0188
  727. BitPlaneColor5 EQU $018a
  728. BitPlaneColor6 EQU $018c
  729. BitPlaneColor7 EQU $018e
  730. BitPlaneColor8 equ $0190
  731. BitPlaneColor9 equ $0192
  732. BitPlaneColor10 equ $0194
  733. BitPlaneColor11 equ $0196
  734. BitPlaneColor12 equ $0198
  735. BitPlaneColor13 equ $019a
  736. BitPlaneColor14 equ $019c
  737. BitPlaneColor15 equ $019e
  738. SpriteColor1 equ $01a2
  739. SpriteColor2 equ $01a4
  740. SpriteColor3 equ $01a6
  741. ScreenWidth equ 320
  742. BitPlaneDepth equ 3
  743. TileSize equ 16
  744. TileHeight equ 16
  745. BlitControl0 equ $40
  746. BlitControl1 equ $42
  747. BLTAPT equ $50
  748. BLTBPT equ $4c
  749. BLTDPT equ $54
  750. BLTCPT equ $48
  751. BLTSize equ $58
  752. BlitCMod equ $60
  753. BlitBMod equ $62
  754. BlitAMod equ $64
  755. BlitDMod equ $66
  756. Custom equ $dff000
  757. JoyDat1 equ $dff00c
  758. BalloonYPositionStart equ 0
  759. BalloonXPositionStart equ 1
  760. BalloonYPositionEnd equ 2
  761. NullSprite EQU $0000
  762. ;---------------------------------------------------------------
  763. JoyStickPressedDown equ 2
  764. JoyStickPressedUp equ 1
  765. JoyStickPressedLeft equ 4
  766. JoyStickPressedRight equ 8
  767. ;---------------------------------------------------------------
  768. OpenLib equ -408
  769. gfxlib:  dc.b  "graphics.library",0,0
  770. gfxbase: dc.l  0  
  771. DMASET EQU %1000001111000000                                    ; copper,bitplane,blitter DMA
  772. ;---------------------------------------------------------------
  773.   section blah,bss_c
  774. ;---------------------------------------------------------------
  775. BitPlane1: ds.b 320*256/8*1
  776. BitPlane2: ds.b 320*256/8*1
  777. BitPlane3: ds.b 320*256/8*1
  778. BitPlane4: ds.b 320*256/8*1
  779. _BalloonXPosition ds.w 1
  780. _BalloonYPosition ds.w 1
  781. _pBlitSource ds.l 1
  782. _pBlitDestination ds.l 1
  783. _SaveAddressRegister6 ds.l 1
  784. _JoyStickInput ds.l 1
  785. _pSpriteStructure ds.l 1
  786. _AnimationTimer ds.b 1
  787. _AnimationFrame ds.b 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement