Sprite.txt, the doc file for sprite.inc by Kari Lammassaari 1997 Sprite.inc handles msx type 2 sprites on screens 4..8. The procedures use system varibles, so modifications for different screens are not needed. Sprite.inc contains following types,constants, variables and procedures: - Type Sprite8Type = Array[0..7] Of Byte; {Defines sprite shape } SpriteColorArrayType=Array[0..15] Of Byte; {Defines the colours of sprite lines } {Following are 8*8 sprite patterns} - Const ArrowSprite :Sprite8Type = ($fe,$fc,$f0,$f8,$dc,$ce,$87,$03); ArrowSprite2:Sprite8Type = ($fe,$84,$88,$88,$b4,$ca,$85,$02); FingerSprite:Sprite8Type = ($06,$06,$06,$57,$7f,$7f,$7e,$3c); SquareSprite:Sprite8Type = (255,129,129,129,129,129,129,255); TimeGlassSprite:Sprite8Type =($7e,$7e,$3c,$18,$18,$3c,$7e,$7e); {Folliwing are color arrays for 8*8 sprites } WhiteArray :SpriteColorArrayType = (15,15,15,15,15,15,15,15, 15,15,15,15,15,15,15,15); (Use to create white sprite.) YellowArray :SpriteColorArrayType = (10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10); RedArray :SpriteColorArrayType = (8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8); - Procedure SetSpritePattern(PatternNumber:Byte; PatternArray:Sprite8Type); (Sets the shape of sprite pattern. Bit array .) (There can be 256 different shapes for 8*8 sprites. Use for animation.) - Procedure SetSpriteColors(SpriteNum:Byte; AttributeA:SpriteColorArrayType); (Sets the color of the sprite.) (Define arrys of your own for multicolour sprites.) - Procedure PutSprite(SpriteNum,SpritePatternNum,x,y:Byte); (Put sprite (0..31) with the pattern (0..255) at x,y on screen.) (You can have 32 different sprites on screen. There can be 256 different sprite patterns (=shapes) defined with SetSpritePattern.) - Procedure DisableSprites; (Get some speed to graphic operations. ) - Procedure EnableSprites; (Loose some speed in graphic operations. ) - Procedure SpriteSize8; (Default situation. Sprite size = 8*8 bits ) - Procedure SpriteSize16; (4 sprites joined together to 16*16 sprite ) - Procedure SpriteSizeNormal; (Default situation = sprite size 8*8 bits) - Procedure SpriteSizeMagnified; (Sprite magnified to double size) * * * * * * - Procedure _WriteVram(VramBlockUsed:Byte; VramAddr,RamAddr,ByteCount:Integer); (system used) - Procedure _FillVram(VramBlockUsed:Byte; VramAddr:Integer;FillValue :Byte; (system used ) ByteCount:Integer); - Procedure _WrtVdp(VdpRegister,Value:Byte); (system used )