c $9168 CAST_S C $9168 reset sixteen byte table at $9156 (table used by CAST_S) C $9175 set UDG to point to S cursor sprite data C $917B load B with NO_PLA C $917F set "current player" to zero C $9184 disable interrupts C $9185 preserve BC (number of players) C $9186 point HL at "unknown table 3" C $9189 load A with "current player" C $918C add "current player" as an offset to HL C $9190 jump way ahead to $929E if bit 4 of (HL) is not zero C $9195 jump to $929E if current player is computer-controlled C $919C point HL at the 5-byte data block at $C2E3 (sound effect data? needs commenting) C $919F call play_sound_effect_in_HL C $91A2 call $BBCC (?) C $91A5 clear the screen C $91A8 set ATTR-T to bright red on yellow C $91AD call ZRDR_P C $91B0 jump to $9230 if CH_LAW is zero C $91B6 load BC with print coords (7,7) C $91B9 jump to $91F6 if SIGN flag is set (?) C $91BC set ATTR-T to bright yellow on black C $91C1 load A with $47 (71 decimal) for message "(LAW" C $91C3 call MPRINT to display "(LAW " C $91C6 load A with CH_LAW C $91C9 jump ahead to $91EF if value in A is less than four C $91D0 set POSPRI to (7,7) C $91D4 load B with the value of A C $91D5 preserve BC - loop counter C $91D6 call DH_P to print message $5E ("ILLUSION? (PRESS Y OR N)") at POSPRI C $91DF increment x-coordinate of POSPRI C $91E8 restore BC - loop counter C $91E9 loop back to $91D5 nine times C $91EB load BC with POSPRI C $91EF call DH_P to display a double-height ')' and jump to $9230 C $91F6 set ATTR-T to bright cyan on black C $91FB call MPRINT to display message $46 ("(CHAOS ") C $9200 load A with CH_LAW C $9203 store BC in POSPRI C $9207 negate the contents of A C $9209 divide contents of A by 4 C $920D jump ahead to $922B if A is zero (why? not sure what value it'd start with for that) C $9210 load B with value in A and preserve BC C $9212 call DH_P to print character $2A ('*' ?) at POSPRI C $921B increment x-coordinate of POSPRI C $9224 restore loop counter and loop back to $ $9211 ... times C $9227 load BC with POSPRI C $922B call DH_P to display ')' C $9230 We are about to display the menu, so set ATTR-T to bright yellow on black C $9235 load A with current player (0-7) C $9238 call MPRINT to display message $29 (wizard 0's name) at (7,5) C $9240 set ATTR-T to bright cyan on black C $9245 call MPRINT to display message $59 ("1. EXAMINE SPELLS") at (7,9) C $924D call MPRINT to display message $5A ("2. SELECT SPELL") at (7,11) C $9255 call MPRINT to display message $5B ("3. EXAMINE BOARD") at (7,13) C $925D call MPRINT to display message $5C ("4. CONTINUE WITH GAME") at (7,15) C $9265 set ATTR-T to bright yellow on red C $926A call MPRINT to display message $57 (" PRESS KEYS 1 TO 4 ") at (0,16) C $9272 call GETHIS C $9275 call KEYBOARD (in ROM) to get a key C $9278 set "something" to zero C $927D call $9385 if user chose menu option 1, then jump back to $919C - otherwise jump ahead to $9287 C $9287 jump ahead to $929E if user chose menu option 4 C $928B jump to $92BE if user chose menu option 3 C $928F jump back to $9275 if user did not pick one of the menu options C $9293 otherwise, user chose menu option 2 so set unknown9 to 1 C $9298 call $9385 C $929B jump back to $919C C $929E menu option 4 to continue game: restore BC C $929F increment current player (0-7) variable C $92A3 decrement B (number of players) C $92A4 jump back to $9185 if there are more players to process C $92A7 jump to $95C7