Routines |
Prev: 9D44 | Up: Map | Next: 9DBD |
|
||||||||
ObjectCount | 9D97 | PUSH IX | Stash IX, IY and BC on the stack. | |||||
9D99 | PUSH IY | |||||||
9D9B | PUSH BC | |||||||
9D9C | LD B,$00 | Initialise the count of the number of objects. | ||||||
9D9E | LD IX,$C060 | Set IX to $C060 which is 3 bytes less than the start of the object table due to the following line adding $0003 and moving us on to the first record. | ||||||
ObjectCount_Loop | 9DA2 | CALL Step3ByteTable_Next | Call Step3ByteTable_Next to fetch the next record in IY. | |||||
9DA5 | JR Z,ObjectCount_End | Jump to ObjectCount_End if we've reached the end of the table data. | ||||||
9DA7 | CP (IY+$01) | Don't count this record if it's a "Mother Object", if it is then loop back to ObjectCount_Loop to continue. | ||||||
9DAA | JR NZ,ObjectCount_Loop | |||||||
9DAC | BIT 7,(IY+$07) | Don't count this record if it's not "visible", if not then loop back to ObjectCount_Loop to continue. | ||||||
9DB0 | JR Z,ObjectCount_Loop | |||||||
9DB2 | INC B | Increase B, the object counter, by one. | ||||||
9DB3 | JP ObjectCount_Loop | Jump to ObjectCount_Loop. | ||||||
ObjectCount_End | 9DB6 | LD A,B | Store the object count in A. | |||||
9DB7 | POP BC | Restore BC, IY and IX from the stack. | ||||||
9DB8 | POP IY | |||||||
9DBA | POP IX | |||||||
9DBC | RET | Return. |
Prev: 9D44 | Up: Map | Next: 9DBD |