![]() |
Routines |
| Prev: 95BB | Up: Map | Next: 960C |
|
Used by the routine at CountDuplicates.
|
||||||||||||
| CountSuits | 95EF | PUSH IX | Load the hand pointer into DE (using the stack). | |||||||||
| 95F1 | POP DE | |||||||||||
|
Only having all four suits present is meaningful.
|
||||||||||||
| 95F2 | LD B,$04 | Set a counter in B for the number of cards left to check. | ||||||||||
| 95F4 | LD A,(DE) | Fetch the primary card for comparison. | ||||||||||
| 95F5 | AND %11110000 | Store the suit value in H. | ||||||||||
| 95F7 | LD H,A | |||||||||||
|
Loop through the remaining 04 cards.
|
||||||||||||
| CountSuits_Loop | 95F8 | INC DE | Move the pointer to the next card. | |||||||||
| 95F9 | LD A,(DE) | Fetch the card. | ||||||||||
| 95FA | AND %11110000 | Store the suit value in A. | ||||||||||
| 95FC | CP H | Jump to NotAFlush if the suits of the two cards differ. | ||||||||||
| 95FD | JR NZ,NotAFlush | |||||||||||
| 95FF | DJNZ CountSuits_Loop | Decrease the suit counter by one and loop back to CountSuits_Loop until counter is zero. | ||||||||||
|
All four suits are present in the hand! We have a flush.
|
||||||||||||
| 9601 | LD A,$01 | A=01. | ||||||||||
| WriteFlushFlag | 9603 | LD ($954D),A | Write A to *FlushFlag. | |||||||||
| 9606 | JP CalculateHand | Jump to CalculateHand. | ||||||||||
|
This hand doesn't contain a flush.
|
||||||||||||
| NotAFlush | 9609 | XOR A | A=00. | |||||||||
| 960A | JR WriteFlushFlag | Jump to WriteFlushFlag. | ||||||||||
| Prev: 95BB | Up: Map | Next: 960C |