a186@mindlink.UUCP (Harvey Taylor) (10/19/90)
In <1990Oct19.144611.15253@ecn.purdue.edu>, adnan@en.ecn.purdue.edu [Adnan Q Khan] writes: | | Even though I don't know C, I've been trying to follow C examples to | understand the procedure of simply displaying a sprite. Your spritedata has to be in chip ram. | I don't understand how to use the ChangeSprite library routine. ChangeSprite( vp, ss, si) a0 a1 a2 where vp - pointer to ViewPort structure that this sprite is ss - pointer to SimpleSprite structure si - pointer to SpriteImage structure Do yourself a favour & get a copy of the Autodocs from CATS. -harvey "Once a nation pledges its safety to an absolute weapon, it becomes essential to believe in an absolute enemy." - Blackett Harvey Taylor Meta Media Productions uunet!van-bc!rsoft!mindlink!Harvey_Taylor a186@mindlink.UUCP
adnan@en.ecn.purdue.edu (Adnan Q Khan) (10/19/90)
I have been programming in assembly language for about 5 months. Mainly because I don't have enough to buy a C compiler. Recently, I have been programming graphics, opening screens and windows to use the graphics library routines. So far, it's been going great. Now I'm trying to program sprites. This is a very big problem for me!! Even though I don't know C, I've been trying to follow C examples to understand the procedure of simply displaying a sprite. I don't understand how to use the ChangeSprite library routine. Here is the program that I wrote: Can anyone tell me what the problem is? ;A part of the rectangle fill program ;Press the joystick button to close the window. OpenScreen=-198 CloseScreen=-66 OpenLib=-408 CloseLibrary=-414 Execbase=4 MoveScreen=-162 OpenWindow=-204 CloseWindow=-72 rectfill=-306 SetDrMd=-354 SetAPen=-342 DrawEllipse=-180 _Move=-240 Draw=-246 ChangeSprite=-420 MoveSprite=-426 GetSprite=-408 fire=$bfe001 run: bsr opengfxlib ; bsr openmathffplib ; bsr openmathtranslib bsr openint bsr scropen bsr openwind bsr DisplaySprite bra loop DisplaySprite: move.l gfxbase,a6 move.l simplesprite,a0 move.l #5,d0 ;-1=next available sprite jsr GetSprite(a6) ; move.l d0,spritenum ; lea posctldata,a5 ; move.l a5,posctlptr ; move.w $ffff,$00dff096 ;no need to set sprite bit move.l screenhd,a0 move.l simplesprite,a1 move.l spritedata,a2 jsr ChangeSprite(a6) rts loop: tst.b fire bpl ende bra loop ende: bsr closegfx ; bsr closemathffp ; bsr closemathtrans bsr windclose bsr scrclose bsr closeint rts opengfxlib: move.l execbase,a6 lea gfxname,a1 jsr OpenLib(a6) move.l d0,gfxbase rts openmathffplib: move.l ExecBase,a6 lea mathffpname,a1 jsr OpenLib(a6) move.l d0,mathffpbase rts openmathtranslib: move.l ExecBase,a6 lea mathtransname,a1 jsr OpenLib(a6) move.l d0,mathtransbase rts openint: move.l ExecBase,a6 lea IntName,a1 jsr OpenLib(a6) move.l d0,intbase rts closeint: move.l ExecBase,a6 move.l intbase,a1 jsr CloseLibrary(a6) rts closegfx: move.l ExecBase,a6 move.l gfxbase,a1 jsr CloseLibrary(a6) rts closemathffp: move.l ExecBase,a6 move.l mathffpbase,a1 jsr CloseLibrary(a6) rts closemathtrans: move.l ExecBase,a6 move.l mathtransbase,a1 jsr CloseLibrary(a6) rts OpenWind: move.l intbase,a6 lea windowdef,a0 jsr openwindow(a6) move.l d0,windowhd move.l windowhd,a0 move.l 50(a0),rastport rts Scropen: move.l intbase,a6 lea screen_defs,a0 jsr openscreen(a6) move.l d0,screenhd rts scrclose: move.l intbase,a6 move.l screenhd,a0 jsr CloseScreen(a6) rts windclose: move.l intbase,a6 move.l windowhd,a0 jsr CloseWindow(a6) rts Align screen_defs: dc.w 0,0,320,200,3 ;LtEdge,TopEdge,Wid,Ht,Depth dc.b 1,3 ;DetailPen,BlockPen dc.w 16384,15 ;ViewMode(16384=Sprites On),Type dc.l 0,sname,0,0 ;Font,Title,GadgetPtr,BitMapPtr windowdef: dc.w 0,0,320,200 dc.b 1,3 dc.l $200,$100f,0,0,windowname screenhd: dc.l 0 dc.l 0 dc.w 50,30,320,200,15 windowname: dc.b 'Adnan',0 Align Intbase: dc.l 0 gfxbase: dc.l 0 mathffpbase: dc.l 0 mathtransbase: dc.l 0 windowhd: dc.l 0 IntName: dc.b 'intuition.library',0 gfxname: dc.b 'graphics.library',0 mathffpname: dc.b 'mathffp.library',0 mathtransname: dc.b 'mathtrans.library',0 rastport: dc.l 0 Align sname: dc.b 'Our Screen',0 Align simplesprite: dc.l 0 ;posctldata dc.w 5 ;ht dc.w 160,100 ;x,y dc.w 5 ;spritenum spritedata: dc.l 0 dc.l $ffffffff,$ffff0000,$0000ffff dc.l $ffffffff,$ffff0000 dc.l 0 posctldata: dc.l $6d607200 posctlptr: dc.l 0 spritenum: dc.l 0 end