Prev: B6C2 Up: Map Next: B761
B742: Draw Opponent Portrait
Used by the routines at DrawCurrentOpponent, QuarterFinals, SemiFinals and TheFinal.
Input
BC Pointer to the opponent graphic
D Destination Y position
E Destination X position
On return from CalculateScreenBuffer HL will contain the screen buffer destination.
Draw_OpponentPortrait B742 CALL CalculateScreenBuffer Call CalculateScreenBuffer.
B745 LD D,B Copy the opponent pointer to display into DE.
B746 LD E,C
B747 LD B,$38 Set a counter in B for the height of the opponent image.
Draw_OpponentPortrait_Loop B749 PUSH BC Stash the height counter and destination pointer on the stack.
B74A PUSH HL
B74B EX DE,HL Swap the source and destination registers.
B74C LDI Copy 06 bytes of data from the source address to the destination.
B74E LDI
B750 LDI
B752 LDI
B754 LDI
B756 LDI
B758 EX DE,HL Swap the source and destination registers back again.
B759 POP HL Restore the original screen position from the stack.
B75A CALL NextScreenBufferLine Call NextScreenBufferLine.
B75D POP BC Restore the height counter from the stack.
B75E DJNZ Draw_OpponentPortrait_Loop Decrease the height counter by one and loop back to Draw_OpponentPortrait_Loop until the whole image has been displayed.
B760 RET Return.
Prev: B6C2 Up: Map Next: B761