![]() |
Routines |
| Prev: EC5C | Up: Map | Next: ECF5 |
|
HL Pointer to the data for this action.
|
||||
| ECBC | LD E,(HL) | Get the next byte as the ID for earnings and put it in DE. | ||
| ECBD | INC HL | |||
| ECBE | LD D,$00 | |||
| ECC0 | PUSH HL | Remember the current position in the buffer. | ||
| ECC1 | LD HL,$EC5C | Point HL at the start of the money lookup table. (EC5C) | ||
| ECC4 | ADD HL,DE | Add the ID multiplied by 3 to get to the right address. | ||
| ECC5 | ADD HL,DE | |||
| ECC6 | ADD HL,DE | |||
| ECC7 | LD A,(HL) | Get the ID. | ||
| ECC8 | OR A | Is it zero? ie: money not collected | ||
| ECC9 | JR NZ,$ECF1 | Jump forward if not. | ||
|
Allocate the money to the current character.
|
||||
| ECCB | LD (HL),$01 | Set the money as collected. | ||
| ECCD | INC HL | Move to the next position in the buffer. | ||
| ECCE | LD A,(IY-$0A) | Get the current player's earnings (tens portion). | ||
| ECD1 | ADD A,(HL) | Add the next tens value to the current player's total. | ||
| ECD2 | DAA | Adjust to give an appropriate value in decimal. | ||
| ECD3 | LD (IY-$0A),A | Set that as the new tens value. | ||
| ECD6 | INC HL | Move to the next position in the buffer. | ||
| ECD7 | LD A,(IY-$1E) | Get the current player's earnings (hundreds portion). | ||
| ECDA | ADC A,(HL) | Add the next hundreds value to the current player's total, including any overflow from the tens portion. | ||
| ECDB | DAA | Adjust to give an appropriate value in decimal. | ||
| ECDC | LD (IY-$1E),A | Set that as the new hundreds value. | ||
|
Now update the grand total for all players.
|
||||
| ECDF | DEC HL | Move back to point at the tens portion. | ||
| ECE0 | LD A,($ECFF) | Get the tens portion for the current total. | ||
| ECE3 | ADD A,(HL) | Add the next tens value. | ||
| ECE4 | DAA | Adjust for decimal. | ||
| ECE5 | LD ($ECFF),A | Set the new tens portion. | ||
| ECE8 | INC HL | Move to point at the hundreds portion. | ||
| ECE9 | LD A,($ECFE) | Get the hundreds portion for the current total. | ||
| ECEC | ADC A,(HL) | Add the next hundreds total. | ||
| ECED | DAA | Adjust for decimal. | ||
| ECEE | LD ($ECFE),A | Set the new hunderds portion. | ||
| ECF1 | POP HL | Restore the current position in the buffer. | ||
| ECF2 | JP $EAEB | Jump forward to execute more actions. | ||
| Prev: EC5C | Up: Map | Next: ECF5 |