DrawSprite: modify ASM function, to be called from ORCA C

This commit is contained in:
dwsJason 2018-08-19 16:11:13 -04:00
parent 0c2f9bb0c5
commit c00d2c1360
2 changed files with 22 additions and 2 deletions

View File

@ -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

View File

@ -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];