Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ==================================================================================
- ; Amiga Blit Tiles To Screen,Sprite control,SpriteAnimation,Sprite Tile Collision
- ;=================================================================================
- section Tutorial,code_c
- move.l 4,a6 ;Get base of exec lib
- lea gfxlib(pc),a1 ;Address of gfxlib string to a1
- jsr OpenLib(a6) ;Call OpenLibrary()
- move.l d0,gfxbase ;Save base of graphics library
- move.l d0,a6 ;graphics library
- jsr -$1c8(a6) ;OwnBlitter
- move.l a6,_SaveAddressRegister6 ;Save
- lea BitPlanePointers,a1 ;Address of bitplanepointers in copperlist
- SetupBitPlanePointers:
- move.l #BitPlane1,d0 ;Insert bitplane1 address into bitplane pointer1 in 'copperlist'
- move.w d0,6(a1)
- swap d0
- move.w d0,2(a1)
- add.l #8,a1
- move.l #BitPlane2,d0
- move.w d0,6(a1) ;Insert bitplane2 address into bitplane pointer2 in 'copperlist'
- swap d0
- move.w d0,2(a1)
- add.l #8,a1
- move.l #BitPlane3,d0
- move.w d0,6(a1) ;Insert bitplane3 address into bitplane pointer3 in 'copperlist'
- swap d0
- move.w d0,2(a1)
- add.l #8,a1
- move.l #BitPlane4,d0
- move.w d0,6(a1) ;Insert bitplane4 address into bitplane pointer4 in 'copperlist'
- swap d0
- move.w d0,2(a1)
- ;----------------------------------------------------------
- move.l #14,d2
- move.w #DMASET,$dff096
- move.l #CopperList,$dff080
- move.w #80,_BalloonYPosition
- move.w #150,_BalloonXPosition
- ;----------------------------------------------------------
- move.l #BalloonFrame1,d0
- move.l d0,_pSpriteStructure
- move.b #4,_AnimationTimer
- move.b #0,_AnimationFrame
- jsr Do_BlitTilesToScreen
- GameLoop:
- bsr.w Delay
- bsr.w Do_BalloonControl
- mouse:
- btst #6,$bfe001 ;Left mouse clicked?
- bne GameLoop ;No,continue loop
- move.l _SaveAddressRegister6,a6 ;Restore
- move.l gfxbase(pc),a1 ;Base of graphics.library to a1
- jsr -$1ce(a6) ;Disable OwnBlitter
- move.l 38(a1),$dff080 ;Restore old copperlist
- jsr -414(a6) ;Call CloseLibrary()
- moveq #0,d0
- rts
- ;----------------------------------------------------------
- Do_BalloonControl:
- bsr.w Do_GetJoyStickInput
- bsr.w Do_BalloonMovement
- bsr.w SpriteAnimation
- bsr.w Do_UpdateSprite
- rts
- ;----------------------------------------------------------
- Do_GetJoyStickInput:
- move.w $dff00c,d0
- lea _JoyStickInput,a0
- clr.b (a0)
- move.w d0,d1
- lsr.w #1, d1
- eor.w d0,d1
- ChkJoyStickRight:
- btst.l #1,d0
- beq ChkJoyStickLeft
- bset.b #JoyStickPressedRight,(a0)
- ChkJoyStickLeft:
- btst.l #9,d0
- beq ChkJoyStickDown
- bset.b #JoyStickPressedLeft,(a0)
- ChkJoyStickDown:
- btst.l #0,d1
- beq ChkJoyStickUp
- bset.b #JoyStickPressedDown,(a0)
- ChkJoyStickUp:
- btst.l #8,d1
- beq JoyStickExit
- bset.b #JoyStickPressedUp,(a0)
- JoyStickExit:
- rts
- ;----------------------------------------------------------
- Do_BalloonMovement:
- btst.b #JoyStickPressedUp,(a0)
- beq BalloonMovement1
- bsr Do_BallonMovementUp
- BalloonMovement1:
- btst.b #JoyStickPressedDown,(a0)
- beq BalloonMovement2
- bsr Do_BallonMovementDown
- BalloonMovement2:
- btst.b #JoyStickPressedLeft,(a0)
- beq BalloonMovement3
- bsr Do_BallonMovementLeft
- BalloonMovement3:
- btst.b #JoyStickPressedRight,(a0)
- beq BalloonMovementExit
- bsr Do_BallonMovementRight
- BalloonMovementExit:
- rts
- ;----------------------------------------------------------
- Do_BallonMovementUp:
- jsr Do_TileUpCheck
- beq BallonMovementUpDone
- sub.w #1,_BalloonYPosition
- BallonMovementUpDone:
- rts
- ;----------------------------------------------------------
- Do_BallonMovementDown:
- jsr Do_TileDownCheck
- beq BallonMovementDownDone
- add.w #1,_BalloonYPosition
- BallonMovementDownDone:
- rts
- ;----------------------------------------------------------
- Do_BallonMovementLeft:
- jsr Do_TileLeftCheck
- beq BallonMovementLeftDone
- sub.w #1,_BalloonXPosition
- BallonMovementLeftDone:
- rts
- ;----------------------------------------------------------
- Do_BallonMovementRight:
- jsr Do_TileRightCheck
- beq BallonMovementRightDone
- add.w #1,_BalloonXPosition
- BallonMovementRightDone:
- rts
- ;-----------------------------------------------------------------------------------------------------
- ;The amiga horizontal sprites move at double pixel width'2 pixels per x axis movement"
- ;horizontal border = 64 pixels*2 = 128
- ;vertical border = 44 pixels
- ;-----------------------------------------------------------------------------------------------------
- Do_TileUpCheck:
- ;CheckBalloonTopLeft:
- move.w _BalloonXPosition,d0
- sub.w #128,d0 ;Horizontal border = 64 pixels*2 = 128 'Gives us the left x axis of our balloon collision box"
- lsr.w #4,d0 ;Divide by 16'our tile size'
- move.w _BalloonYPosition,d1
- sub.w #46,d1 ;BalloonYPosition-Vertical border+2 = 46 pixels"Gives us the top y axis of our balloon collision box"
- lsr.w #4,d1 ;Divide by 16'our tile size'
- mulu.w #20,d1 ;Multiply (Yposition/16*Map Width)our map width is 20,16x16 tiles per row
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq Collision
- ;CheckBalloonTopRight:
- move.w _BalloonXPosition,d0
- sub.w #114,d0
- lsr.w #4,d0 ;Divide by 16'our tile size'
- move.w _BalloonYPosition,d1
- sub.w #46,d1
- lsr.w #4,d1 ;Divide by 16'our tile size'
- mulu.w #20,d1 ;Multiply (Yposition/16*Map Width)our map width is 20,16x16 tiles per row
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq Collision
- ;----------------------------------------------------------
- NoCollision:
- move.b #1,d2
- rts
- Collision:
- move.b #0,d2
- rts
- ;----------------------------------------------------------
- Do_TileDownCheck:
- ;CheckBalloonBottomLeft:
- move.w _BalloonXPosition,d0
- sub.w #128,d0
- lsr.w #4,d0
- move.w _BalloonYPosition,d1
- sub.w #32,d1
- lsr.w #4,d1
- mulu.w #20,d1
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq TileDownCollision
- ;CheckBalloonBottomRight:
- move.w _BalloonXPosition,d0
- sub.w #114,d0
- lsr.w #4,d0
- move.w _BalloonYPosition,d1
- sub.w #32,d1
- lsr.w #4,d1
- mulu.w #20,d1
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq TileDownCollision
- jmp NoCollision
- TileDownCollision:
- jmp Collision
- ;----------------------------------------------------------
- Do_TileLeftCheck:
- ;CheckBalloonTopLeft:
- move.w _BalloonXPosition,d0
- sub.w #130,d0
- lsr.w #4,d0
- move.w _BalloonYPosition,d1
- sub.w #48,d1
- lsr.w #4,d1
- mulu.w #20,d1
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq TileLeftCollision
- ;CheckBalloonBottomLeft:
- move.w _BalloonXPosition,d0
- sub.w #130,d0
- lsr.w #4,d0
- move.w _BalloonYPosition,d1
- sub.w #34,d1
- lsr.w #4,d1
- mulu.w #20,d1
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq TileLeftCollision
- jmp NoCollision
- TileLeftCollision:
- jmp Collision
- ;----------------------------------------------------------
- Do_TileRightCheck:
- ;CheckBalloonTopRight:
- move.w _BalloonXPosition,d0
- sub.w #112,d0
- lsr.w #4,d0
- move.w _BalloonYPosition,d1
- sub.w #48,d1
- lsr.w #4,d1
- mulu.w #20,d1
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq TileRightCollision
- ;CheckBalloonBottomRight:
- move.w _BalloonXPosition,d0
- sub.w #112,d0
- lsr.w #4,d0
- move.w _BalloonYPosition,d1
- sub.w #34,d1
- lsr.w #4,d1
- mulu.w #20,d1
- add.w d1,d0
- move.l #Map,a2
- move.b (a2,d0),d2
- cmpi.b #1,d2
- beq TileRightCollision
- jmp NoCollision
- TileRightCollision:
- jmp Collision
- ;----------------------------------------------------------
- Do_UpdateSprite:
- move.l _pSpriteStructure,a0
- move.l a0,d0
- move.w d0,PlayerSpritePointerL
- swap d0
- move.w d0,PlayerSpritePointerH
- move.w _BalloonYPosition,d2
- move.b d2,BalloonYPositionStart(a0)
- add.w #17,d2 ;Length Of our Sprite
- move.b d2,BalloonYPositionEnd(a0)
- move.w _BalloonXPosition,d2
- lsr.w #1,d2
- move.b d2,BalloonXPositionStart(a0)
- rts
- ;----------------------------------------------------------
- SpriteAnimation:
- addi.b #1,_AnimationTimer
- cmpi.b #7,_AnimationTimer
- bne SpriteAnimationDone
- clr.b _AnimationTimer
- addi.b #1,_AnimationFrame
- cmpi.b #8,_AnimationFrame
- bne.s SpriteAnimationCont
- clr.b _AnimationFrame
- SpriteAnimationCont:
- move.l #BalloonFramePointerTable,a0
- clr.l d0
- move.b _AnimationFrame,d0
- asl.b #2,d0
- move.l (a0,d0.w),_pSpriteStructure
- SpriteAnimationDone:
- rts
- ;----------------------------------------------------------
- Do_BlitTilesToScreen:
- movea.l #BitPlane1,a2
- movea.l #BitPlane2,a3
- movea.l #BitPlane3,a4
- movea.l #BitPlane4,a5
- move.l #Map,a0
- move.l #TileDataPointers,a6
- move.l #12,d1 ;Number Of Rows To Draw
- BlitTilesToScreenCont:
- moveq #19,d0 ;Number Of Columns To Draw
- BlitTilesToScreenLoop:
- move.l #0,d2
- move.b (a0)+,d2
- asl.w #2,d2
- move.l (a6,d2.w),_pBlitSource
- move.l a2,_pBlitDestination
- bsr Do_Blit
- ;------------------------------------------------------------------------------------
- ;Add offset to blitsource so it points to next correct 16*16 tile
- ;Move bitplane pointer to BlitDestination Pointer
- ;Blit 16*16 tile to screen
- ;------------------------------------------------------------------------------------
- add.l #32,_pBlitSource ;Each Tile is '16*16' and word size is two bytes so 16*2 = 32
- move.l a3,_pBlitDestination ;Move bitplane pointer to BlitDestination Pointer
- bsr Do_Blit ;Blit 16*16 tile to screen
- add.l #32,_pBlitSource
- move.l a4,_pBlitDestination
- bsr Do_Blit
- add.l #32,_pBlitSource
- move.l a5,_pBlitDestination
- bsr Do_Blit
- ;------------------------------------------------------------------------------------
- ;Add two'2' to bitplane pointers for next column in row
- ;------------------------------------------------------------------------------------
- add.l #2,a2
- add.l #2,a3
- add.l #2,a4
- add.l #2,a5
- dbra d0,BlitTilesToScreenLoop
- ;------------------------------------------------------------------------------------
- ;Add sixhundred'600' to bitplane pointers for next row
- ;Since are screenwidth is 320/8 = 40 pixels,and our tiles are 16*16 pixels and we draw
- ;20 tiles per row.We added two'2' to our bitplane offsets above to draw across the screen
- ;that's 20 tiles * 2 = 40,we add 600 to bitplane pointers for next screen row.
- ;Since the tiles are 16 pixels/width and 16 pixel/Height each and we draw 20 per column
- ;we need to skip screenwidth*2 for correct row offset."320*2 = 640',we already added
- ;40 to the bitplane pointers above so we add 600 to them below.
- ;------------------------------------------------------------------------------------
- add.l #600,a2
- add.l #600,a3
- add.l #600,a4
- add.l #600,a5
- dbra d1,BlitTilesToScreenCont
- rts
- ;------------------------------------------------------------------------------------
- Do_Blit:
- move.l _pBlitSource,$dff050 ;BlitAPionter (source)
- move.l _pBlitDestination,$dff054 ;BlitDPointer (destination)
- move.w #0,$dff064 ;BlitAMod
- move.w #38,$dff066 ;BlitDMod
- move.w #$ffff,$dff044 ;BltAfwm
- move.w #$ffff,$dff046 ;BltAlwm
- move.w #$09f0,$dff040 ;BlitControl0
- move.w #$0000,$dff042 ;BlitControl1
- move.w #16*64+1,$dff058 ;BlitSize
- bsr Do_BlitterWait
- rts
- ;------------------------------------------------------------------------------------
- Do_BlitterWait:
- btst #6,$dff002
- bne Do_BlitterWait
- rts
- ;------------------------------------------------------------------------------------
- Delay:
- cmpi.b #255,$dff006
- bne Delay
- Delay2:
- cmpi.b #255,$dff006
- beq Delay2
- rts
- ;------------------------------------------------------------------------------------
- ; Stuff
- ; *****
- ;------------------------------------------------------------------------------------
- CopperList:
- dc.w $008e,$2c81,$0090,$3fc1 ; Setting up display,
- dc.w $0092,$0038,$0094,$00d0 ; modulo and so on
- dc.w $0102,$0000,$0104,$0020 ;Sprite Priority"all sprites have spriority on bitplanes"
- dc.w $0106,$0000,$0108,$0000
- dc.w $010a,$0000
- SpritePointers:
- dc.w $0120
- PlayerSpritePointerH:
- dc.w $0000
- dc.w $0122
- PlayerSpritePointerL:
- dc.w $0000
- dc.w $0124,NullSprite,$0126,NullSprite
- dc.w $0128,NullSprite,$012a,NullSprite
- dc.w $012c,NullSprite,$012e,NullSprite
- dc.w $0130,NullSprite,$0132,NullSprite
- dc.w $0134,NullSprite,$0136,NullSprite
- dc.w $0138,NullSprite,$013a,NullSprite
- dc.w $013c,NullSprite,$013e,NullSprite
- ;-------------------------------------------------------------------------
- ; Setting up the colors
- ;-------------------------------------------------------------------------
- dc.w BitPlaneColor0,$0000,BitPlaneColor1,$0f00
- dc.w BitPlaneColor2,$0a00,BitPlaneColor3,$0a00
- dc.w BitPlaneColor4,$0f08,BitPlaneColor5,$033a
- dc.w BitPlaneColor6,$0852,BitPlaneColor7,$0822
- dc.w BitPlaneColor8,$0f04,BitPlaneColor9,$0f55
- dc.w BitPlaneColor10,$0f04,BitPlaneColor11,$0fff
- dc.w BitPlaneColor12,$0f04,BitPlaneColor13,$0fff
- dc.w BitPlaneColor14,$0f04,BitPlaneColor15,$0f55
- dc.w $1A2,$40e ;BitPlaneColor17,is also Color1 of the sprite0
- dc.w $1A4,$60f ;BitPlaneColor18,is also Color2 of the sprite0
- dc.w $1A6,$fff ;BitPlaneColor19,is also Color3 of the sprite0
- ;-------------------------------------------------------------------------
- dc.w $0100,$4200 ;4 Bitplanes,Color Burst
- ;-------------------------------------------------------------------------
- BitPlanePointers:
- dc.w $00e0,$0000,$00e2,$0000 ;BitPlanePointer1
- dc.w $00e4,$0000,$00e6,$0000 ;BitPlanePointer2
- dc.w $00e8,$0000,$00ea,$0000 ;BitPlanePointer3
- dc.w $00ec,$0000,$00ee,$0000 ;BitPlanePointer4
- dc.w $ffff,$fffe
- ;-------------------------------------------------------------------------
- TileDataPointers:
- dc.l Tile1
- dc.l Tile2
- ;-------------------------------------------------------------------------
- Tile1:
- dc.w %1111111111111111
- dc.w %1000000000000001
- dc.w %1011111111111101
- dc.w %1010000000000101
- dc.w %1010000000000101
- dc.w %1010000000000101
- dc.w %1010000110000101
- dc.w %1010000110000101
- dc.w %1010001111000101
- dc.w %1010001111000101
- dc.w %1010000000000101
- dc.w %1010000000000101
- dc.w %1010000000000101
- dc.w %1011111111111101
- dc.w %1000000000000001
- dc.w %1111111111111111
- ;-------------------------------------------------------------------------
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0011111111111100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0010000000000100
- dc.w %0011111111111100
- dc.w %0000000000000000
- dc.w %0000000000000000
- ;-------------------------------------------------------------------------
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000111111110000
- dc.w %0000100000010000
- dc.w %0000100000010000
- dc.w %0000100000010000
- dc.w %0000100000010000
- dc.w %0000100000010000
- dc.w %0000100000010000
- dc.w %0000111111110000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- ;-------------------------------------------------------------------------
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000001111000000
- dc.w %0000001111000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- Tile2:
- ;BitPlane1
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- dc.w %1111111111111111
- ;BitPlane2
- dc.w %0000000011111111
- dc.w %0000000011111111
- dc.w %0000000011111111
- dc.w %0000000011111111
- dc.w %0000000011111111
- dc.w %0000000011111111
- dc.w %0000000011111111
- dc.w %0000000011111111
- dc.w %1111111100000000
- dc.w %1111111100000000
- dc.w %1111111100000000
- dc.w %1111111100000000
- dc.w %1111111100000000
- dc.w %1111111100000000
- dc.w %1111111100000000
- dc.w %1111111100000000
- ;BitPlane3
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- ;BitPlane4
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- dc.w %0000000000000000
- ;-----------------------------------------------
- BalloonFramePointerTable:
- dc.l BalloonFrame1
- dc.l BalloonFrame2
- dc.l BalloonFrame3
- dc.l BalloonFrame2
- dc.l BalloonFrame1
- dc.l BalloonFrame4
- dc.l BalloonFrame5
- dc.l BalloonFrame4
- dc.l BalloonFrame1
- ;-----------------------------------------------
- ;-----------------------------------------------
- BalloonFrame1:
- dc.w $0000,$0000
- dc.w %0000111111110000,%0000000000000000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0010000000000100,%0001111111111000
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0010000000000100,%0001111111111000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0000110000110000,%0000001111000000
- dc.w %0000011001100000,%0000000110000000
- dc.w %0000000110000000,%0000000000000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000010000000,%0000000010000000
- dc.w 0,0 ;End of the sprite.
- ;-----------------------------------------------
- BalloonFrame2:
- dc.w $0000,$0000
- dc.w %0000111111110000,%0000000000000000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0010000000000100,%0001111111111000
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0010000000000100,%0001111111111000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0000110000110000,%0000001111000000
- dc.w %0000011001100000,%0000000110000000
- dc.w %0000000110000000,%0000000000000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000001000000,%0000000001000000
- dc.w %0000000001000000,%0000000001000000
- dc.w %0000000000100000,%0000000000100000
- dc.w %0000000000100000,%0000000000100000
- dc.w 0,0 ;End of the sprite.
- ;-----------------------------------------------
- BalloonFrame3:
- dc.w $0000,$0000
- dc.w %0000111111110000,%0000000000000000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0010000000000100,%0001111111111000
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0010000000000100,%0001111111111000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0000110000110000,%0000001111000000
- dc.w %0000011001100000,%0000000110000000
- dc.w %0000000110000000,%0000000000000000
- dc.w %0000000010000000,%0000000010000000
- dc.w %0000000001000000,%0000000001000000
- dc.w %0000000000100000,%0000000000100000
- dc.w %0000000000010000,%0000000000010000
- dc.w %0000000000001000,%0000000000001000
- dc.w %0000000000000100,%0000000000000100
- dc.w 0,0 ;End of the sprite.
- ;-----------------------------------------------
- BalloonFrame4:
- dc.w $0000,$0000
- dc.w %0000111111110000,%0000000000000000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0010000000000100,%0001111111111000
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0010000000000100,%0001111111111000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0000110000110000,%0000001111000000
- dc.w %0000011001100000,%0000000110000000
- dc.w %0000000110000000,%0000000000000000
- dc.w %0000000100000000,%0000000100000000
- dc.w %0000000100000000,%0000000100000000
- dc.w %0000001000000000,%0000001000000000
- dc.w %0000001000000000,%0000001000000000
- dc.w %0000010000000000,%0000010000000000
- dc.w %0000010000000000,%0000010000000000
- dc.w 0,0 ;End of the sprite.
- ;-----------------------------------------------
- BalloonFrame5:
- dc.w $0000,$0000
- dc.w %0000111111110000,%0000000000000000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0010000000000100,%0001111111111000
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0100000000000010,%0011111111111100
- dc.w %0010000000000100,%0001111111111000
- dc.w %0001000000001000,%0000111111110000
- dc.w %0000110000110000,%0000001111000000
- dc.w %0000011001100000,%0000000110000000
- dc.w %0000000110000000,%0000000000000000
- dc.w %0000000100000000,%0000000100000000
- dc.w %0000001000000000,%0000001000000000
- dc.w %0000010000000000,%0000010000000000
- dc.w %0000100000000000,%0000100000000000
- dc.w %0001000000000000,%0001000000000000
- dc.w %0010000000000000,%0010000000000000
- dc.w 0,0 ;End of the sprite.
- ;-----------------------------------------------
- Map:
- dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- dc.b 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1
- dc.b 1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
- dc.b 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1
- dc.b 1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,1,1
- dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- ;-----------------------------------------------
- ;Equates
- ;-----------------------------------------------
- BitPlaneColor0 equ $0180
- BitPlaneColor1 equ $0182
- BitPlaneColor2 EQU $0184
- BitPlaneColor3 EQU $0186
- BitPlaneColor4 EQU $0188
- BitPlaneColor5 EQU $018a
- BitPlaneColor6 EQU $018c
- BitPlaneColor7 EQU $018e
- BitPlaneColor8 equ $0190
- BitPlaneColor9 equ $0192
- BitPlaneColor10 equ $0194
- BitPlaneColor11 equ $0196
- BitPlaneColor12 equ $0198
- BitPlaneColor13 equ $019a
- BitPlaneColor14 equ $019c
- BitPlaneColor15 equ $019e
- SpriteColor1 equ $01a2
- SpriteColor2 equ $01a4
- SpriteColor3 equ $01a6
- ScreenWidth equ 320
- BitPlaneDepth equ 3
- TileSize equ 16
- TileHeight equ 16
- BlitControl0 equ $40
- BlitControl1 equ $42
- BLTAPT equ $50
- BLTBPT equ $4c
- BLTDPT equ $54
- BLTCPT equ $48
- BLTSize equ $58
- BlitCMod equ $60
- BlitBMod equ $62
- BlitAMod equ $64
- BlitDMod equ $66
- Custom equ $dff000
- JoyDat1 equ $dff00c
- BalloonYPositionStart equ 0
- BalloonXPositionStart equ 1
- BalloonYPositionEnd equ 2
- NullSprite EQU $0000
- ;---------------------------------------------------------------
- JoyStickPressedDown equ 2
- JoyStickPressedUp equ 1
- JoyStickPressedLeft equ 4
- JoyStickPressedRight equ 8
- ;---------------------------------------------------------------
- OpenLib equ -408
- gfxlib: dc.b "graphics.library",0,0
- gfxbase: dc.l 0
- DMASET EQU %1000001111000000 ; copper,bitplane,blitter DMA
- ;---------------------------------------------------------------
- section blah,bss_c
- ;---------------------------------------------------------------
- BitPlane1: ds.b 320*256/8*1
- BitPlane2: ds.b 320*256/8*1
- BitPlane3: ds.b 320*256/8*1
- BitPlane4: ds.b 320*256/8*1
- _BalloonXPosition ds.w 1
- _BalloonYPosition ds.w 1
- _pBlitSource ds.l 1
- _pBlitDestination ds.l 1
- _SaveAddressRegister6 ds.l 1
- _JoyStickInput ds.l 1
- _pSpriteStructure ds.l 1
- _AnimationTimer ds.b 1
- _AnimationFrame ds.b 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement