DrawSprite: modify ASM function, to be called from ORCA C
This commit is contained in:
parent
0c2f9bb0c5
commit
c00d2c1360
|
@ -9,13 +9,32 @@
|
|||
Dummy4 start ASMCODE
|
||||
end
|
||||
*-------------------------------------------------------------------------------
|
||||
|
||||
*
|
||||
*void DrrawSprite(int offset, into SpriteNo);
|
||||
*
|
||||
DrawSprite start ASMCODE
|
||||
|
||||
iOffset equ 5
|
||||
iSpriteNo equ 7
|
||||
|
||||
PHB
|
||||
PHK
|
||||
PLB
|
||||
|
||||
lda iOffset,s ; Screen Address
|
||||
tay ; Y=Target Screen Address ($2000-$9D00)
|
||||
|
||||
lda iSpriteNo,s
|
||||
ASL A ; A=Sprite Number ($0000-$01C1)
|
||||
TAX ; Y=Target Screen Address ($2000-$9D00)
|
||||
tax
|
||||
* Repair Stack
|
||||
lda 3,s
|
||||
sta iSpriteNo,s
|
||||
lda 1,s
|
||||
sta iSpriteNo-2,s
|
||||
pla
|
||||
pla
|
||||
* Dispatch bank specific
|
||||
LDA xrickNum,X ; Relative Sprite Number Table
|
||||
JMP (xrickBank,X) ; Bank Number Table
|
||||
|
||||
|
|
|
@ -182,6 +182,7 @@ extern volatile unsigned long* tick;
|
|||
extern void SetTileBank(short bank);
|
||||
extern void DrawTile(int offset, int tileNo);
|
||||
extern void SetSpriteBanks(short b0, short b1, short b2, short b3);
|
||||
extern void DrawSprite(int offset, into SpriteNo);
|
||||
|
||||
// ADB Support Code
|
||||
extern char KeyArray[128];
|
||||
|
|
Loading…
Reference in New Issue