c $97D1 Searches for current player in tables at $E01F, $E2A0 and then does something else :-) C $97D1 point HL and unknown12 at "map area object code table" C $97D7 set loop counter to $9F (150 decimal) C $97D9 load A with the byte pointed to by HL and subtract $29 to convert it to a player number 0-7 C $97DC point HL at "current player (0-7)" C $97DF jump ahead to $97FB if we have found the current player in the "map area object code table" C $97E2 load HL with byte pointed to by unknown12 (i.e. a byte in map area object code table?) C $97E5 add an offset of $0281 (641 decimal) to HL to make HL point into "fifth map area table?" C $97E9 jump ahead to $97FB if the byte pointed to by HL is equal to "current player (0-7)" C $97F2 increment HL and unknown12 - a pointer into 5th map area table C $97F9 loop back to $97D9 149 times C $97FB copy pointer (unknown12) to D_ADD, "position of cursor", X_ADD C $9807 call $C703 in THRTAB - sets HL to something? C $980A is SkoolKit confused here? Or did Gollop's assembler do some optimisation magic? RRCA=$0F, LD A,(BC)=$0A => copy HL to $0A0F but that's in ROM! C $980D return