Routines |
Prev: 46380 | Up: Map | Next: 46463 |
|
||||||||||||||
46408 | LD (46437),A | Modify instruction at 46436 with room index | ||||||||||||
46411 | PUSH HL | Store HL | ||||||||||||
46412 | PUSH BC | Store BC | ||||||||||||
46413 | PUSH DE | Store DE | ||||||||||||
46414 | PUSH IX | Store IX | ||||||||||||
46416 | LD A,255 | Set A to 255 (end marker) | ||||||||||||
46418 | LD HL,23429 | Point HL at end of table of characters in room of interest | ||||||||||||
46421 | LD B,8 | Load B with 8 (as we are clearing 8 entries in the list) | ||||||||||||
46423 | LD (HL),A | Set value at address in HL to 255 | ||||||||||||
46424 | DEC HL | Move HL back one byte | ||||||||||||
46425 | DJNZ 46423 | Loop back to 46423 | ||||||||||||
46427 | LD IX,24898 | Point IX at start of table of characters' current positions at 24898 | ||||||||||||
46431 | LD D,0 | Set D (index of current character) to zero | ||||||||||||
46433 | LD B,8 | Load B with 8 (as there are 8 characters in the game) | ||||||||||||
46435 | LD C,D | Set C (count of characters in room of interest) to zero | ||||||||||||
The operand of the instruction at 46436 represents a room index. This is modified by the instruction at 46408.
|
||||||||||||||
46436 | LD A,0 | Load A with room index | ||||||||||||
46438 | CP (IX+0) | If current character's current room is not the room of interest... | ||||||||||||
46441 | JR NZ,46446 | ...then skip ahead to 46446 | ||||||||||||
46443 | INC C | Increase C (count of number of characters in room of interest) | ||||||||||||
46444 | INC HL | Advance HL by one byte | ||||||||||||
46445 | LD (HL),D | Load index of current character into address in HL | ||||||||||||
46446 | INC IX | Advance IX to next character's position data... | ||||||||||||
46448 | INC IX | ... | ||||||||||||
46450 | INC IX | ... | ||||||||||||
46452 | INC D | Increase index of current character (i.e. advance to next character) | ||||||||||||
46453 | DJNZ 46436 | Loop back to 46436 | ||||||||||||
46455 | LD A,C | Load number of characters in room of interest into A | ||||||||||||
46456 | OR A | Set zero flag is there are no characters in room, otherwise reset | ||||||||||||
46457 | POP IX | Restore IX | ||||||||||||
46459 | POP DE | Restore DE | ||||||||||||
46460 | POP BC | Restore BC | ||||||||||||
46461 | POP HL | Restore HL | ||||||||||||
46462 | RET | Return |
Prev: 46380 | Up: Map | Next: 46463 |