c $BBE7 Moves cursor on screen depending on direction key pressed. unknown*** is set to 2 for non-diagonal movement, and 3 for diagonal movement. In the manual, going diagonally counts as 1.5 movement points so it looks like unknown**** holds double the movement points being used C $BBE7 preserve HL, DE C $BBE9 set CAPS mode C $BBEE preserve BC - cursor coords C $BBEF jump to $CDC0 if player is computer-controlled C $BBF6 call KEYBOARD (ROM) C $BBF9 restore BC - cursor coords C $BBFA store value of A (key pressed) in unknown31 C $BBFD jump to $BC09 if 'W' not pressed C $BC01 'W' was pressed so set unknown**** to 2 and call $BC6C to decrement y-coord C $BC09 jump to $BC15 if 'X' not pressed C $BC0D 'X' pressed - set unknown**** to 2 and call $BC72 to increment y-coordinate C $BC15 jump to $BC21 if 'A' not pressed C $BC19 'A' pressed - set unknown**** to 2 and call $BC7D to decrement x-coordinate C $BC21 jump to $BC2D if 'D' not pressed C $BC25 'D' pressed - set unknown**** to 2 and call $BC83 to increment x-coordinate C $BC2D jump to $BC3C if 'Q' not pressed C $BC31 'Q' pressed - DIAGONAL MOVEMENT - set unknown**** to 3 and decrement x & y coords C $BC3C jump to $BC4B if 'E' not pressed C $BC40 'E' pressed - DIAGONAL MOVEMENT - set unknown**** to 3 - increment x, decrement y coords C $BC4B jump to $BC5A if 'Z' not pressed C $BC4F 'Z' pressed - DIAGONAL MOVEMENT - set unknown**** to 3 - increment y, decrement x coords C $BC5A jump to $BC69 if 'C' not pressed C $BC5E 'C' pressed - DIAGONAL MOVEMENT - set unknown**** to 3 - increment x & y coords C $BC69 restore DE, HL C $BC68 return