Routines |
Prev: E217 | Up: Map | Next: E33A |
Used by the routines at PlayGame and Handler_Showdown.
|
||||||||
PrintHand | E313 | PUSH IX | Stash IX on the stack. | |||||
E315 | PUSH IX | Copy the hand pointer to HL using the stack. | ||||||
E317 | POP HL | |||||||
Starting from the first card.
|
||||||||
E318 | LD A,$01 | Write 01 to *CardPosition. | ||||||
E31A | LD ($E81F),A | |||||||
Loop round each card in turn and print it to the screen.
|
||||||||
PrintHand_Loop | E31D | PUSH HL | Stash the hand pointer on the stack. | |||||
E31E | LD A,(HL) | Fetch the card "value" and store it in A. | ||||||
E31F | CALL CheckCardType | Call CheckCardType (which will print the card in position to the screen). | ||||||
E322 | POP HL | Restore the hand pointer from the stack. | ||||||
E323 | INC HL | Increment the hand pointer by one to point to the next card. | ||||||
Have all cards been printed yet? There are 05 in a hand.
|
||||||||
E324 | LD A,($E81F) | Jump to PrintHand_Finish if *CardPosition is equal to 05. | ||||||
E327 | CP $05 | |||||||
E329 | JR Z,PrintHand_Finish | |||||||
E32B | INC A | Increment the card position and update *CardPosition count, as on the loop, we'll be looking at the next card. | ||||||
E32C | LD ($E81F),A | |||||||
E32F | JR PrintHand_Loop | Jump to PrintHand_Loop. | ||||||
Housekeeping; restore the CHARS value and the hand pointer to return.
|
||||||||
PrintHand_Finish | E331 | LD HL,$F3C9 | Write F3C9 (CustomFont) to *CHARS. | |||||
E334 | LD ($5C36),HL | |||||||
E337 | POP IX | Restore the original value of IX from the stack. | ||||||
E339 | RET | Return. |
Prev: E217 | Up: Map | Next: E33A |