|  | Routines | 
| Prev: 32886 | Up: Map | Next: 33100 | 
| 
Used by the routine at 55726.
 | ||||
| 32895 | LD A,(23700) | Load B with USS Pisces' current location... | ||
| 32898 | LD B,A | ... | ||
| 32899 | LD HL,48004 | Point HL at start of planets' "REQUEST HELP" strings | ||
| 32902 | CALL 54269 | Advance HL to "REQUEST HELP" string for current location | ||
| 32905 | LD A,(HL) | Load first byte of data (usually height of text) into A... | ||
| 32906 | OR A | ...and if this zero (i.e. the current location is not valid for communication)... | ||
| 32907 | JP Z,55298 | ...then display "THERE IS NOBODY WITHIN SUB-SPACE COMMUNICATOR RANGE" window (12) and return to game | ||
| 32910 | CALL 54333 | Print or update command summary window at top of screen | ||
| 32913 | LD DE,42180 | Point DE at "COMMUNICATE WITH"... | ||
| 32916 | CALL 54283 | ...and print in command summary window at top of screen | ||
| 32919 | LD HL,42191 | Point HL at "CHOOSE COMMUNICATION" menu text | ||
| 32922 | LD DE,37091 | Adjust height of main menu (game) / "choose communication" window to accommodate text... | ||
| 32925 | CALL 33774 | ... | ||
| 32928 | PUSH HL | Store HL (pointer to start of text to print) | ||
| 32929 | XOR A | Draw "choose communication" menu window... | ||
| 32930 | CALL 34982 | ... | ||
| 32933 | POP HL | Restore HL (pointer to start of text to print) | ||
| 32934 | CALL 34762 | Print text to screen | ||
| 32937 | CALL 35296 | Process keyboard / joystick input on a menu and load A with selected item index | ||
| 32940 | LD (32984),A | Store index of selected menu item as operand of instruction at 32983... | ||
| 32943 | LD B,A | ...and load into B | ||
| 32944 | LD HL,42300 | Point HL at "REQUEST HELP" text | ||
| 32947 | CALL 54269 | Advance HL to "REFUEL STARSHIP" text if refuel option was selected | ||
| 32950 | EX DE,HL | Swap HL and DE (DE now points to "REQUEST HELP" or "REFUEL STARSHIP" text)... | ||
| 32951 | CALL 54283 | ...and print in command summary window at top of screen | ||
| 32954 | CALL 55115 | Display execute / reject command window and return here if execute chosen, else exit to main game loop | ||
| 32957 | CALL 33788 | If Gordon and Sarab are both asleep then reset zero flag, otherwise increase their happiness by five if not | ||
| 32960 | JP NZ,55291 | If zero flag is reset then display "GORDON AND SARAB ARE BOTH ASLEEP" window (12) and return to game | ||
| 32963 | LD A,27 | If Magic Knight is wearing the Gas Mask (27)... | ||
| 32965 | CALL 33640 | ... | ||
| 32968 | JP Z,55327 | ...then display "GORDON AND SARAB CANNOT UNDERSTAND YOU" window (12) and return to game | ||
| 32971 | LD A,1 | Set draw-communicate-window-face flag... | ||
| 32973 | LD (23461),A | ... | ||
| 32976 | CALL 27765 | Draw Magic Knight's current room, draw objects and characters and initialise room-specific data | ||
| 32979 | XOR A | Reset draw-communicate-window-face flag... | ||
| 32980 | LD (23461),A | ... | ||
| 
The operand of the instruction at 32983 represents the index of the option selected from "CHOOSE COMMUNICATION" menu. This is modified by the instruction at 32940.
 | ||||
| 32983 | LD A,0 | Load A with selected menu option index | ||
| 32985 | CP 1 | If "REFUEL STARSHIP" was selected... | ||
| 32987 | JP Z,33019 | ...then skip ahead to 33019 | ||
| 
Request help option selected
 | ||||
| 32990 | LD A,(23700) | Load B with index of USS Pisces' current location... | ||
| 32993 | LD B,A | ... | ||
| 32994 | LD HL,48004 | Point HL at start of planets' "REQUEST HELP" strings | ||
| 32997 | CALL 54269 | Advance HL to B-th entry in this list | ||
| 33000 | LD DE,37211 | Adjust height of window 15 to accommodate text... | ||
| 33003 | CALL 33774 | ... | ||
| 33006 | PUSH HL | Store HL (pointer to start of text to print) | ||
| 33007 | LD A,15 | Draw window 15... | ||
| 33009 | CALL 34990 | ... | ||
| 33012 | POP HL | Restore HL (pointer to start of text to print) | ||
| 33013 | CALL 34762 | Print text to screen | ||
| 33016 | JP 29479 | Display "PRESS FIRE TO CONTINUE" window and wait for input and return to main game loop | ||
| 
Refuel starship option selected
 | ||||
| 33019 | LD A,1 | Draw window 1... | ||
| 33021 | CALL 34990 | ... | ||
| 33024 | LD HL,42216 | Point HL at "REFUEL STARSHIP REQUESTED" text... | ||
| 33027 | CALL 34762 | ...and print to screen | ||
| 33030 | LD A,(23700) | Load BC with double index of USS Pisces' current location... | ||
| 33033 | ADD A,A | ... | ||
| 33034 | LD C,A | ... | ||
| 33035 | LD B,0 | ... | ||
| 33037 | LD HL,25397 | Point HL at start of current planetary data... | ||
| 33040 | ADD HL,BC | ...and add BC as offset | ||
| 33041 | LD B,200 | Load B with 200 (as USS Pisces can hold 200 units of fuel) | ||
| 33043 | LD A,(HL) | Load A with current location's available fuel level... | ||
| 33044 | OR A | ...and if this is zero... | ||
| 33045 | JP Z,33084 | ...then skip ahead to 33084 | ||
| 33048 | CP 255 | If available fuel level is 255 (i.e. unlimited)... | ||
| 33050 | JP Z,33072 | ...then skip ahead to 33072 | ||
| 33053 | LD B,A | Load B with current location's available fuel level | ||
| 33054 | LD A,(25013) | Load A with USS Pisces' current star drive fuel level | ||
| 33057 | CP 200 | If A is 200... | ||
| 33059 | JR Z,33067 | ...then skip ahead to 33067 | ||
| 33061 | INC A | Increase A (USS Pisces' fuel) by one | ||
| 33062 | DEC B | Decrease B (planet's fuel) by one | ||
| 33063 | JR Z,33093 | If B is zero then skip ahead to 33093 | ||
| 33065 | JR 33057 | Loop back to 33057 | ||
| 33067 | LD (HL),B | Store updated (i.e. reduced) value for planet's fuel | ||
| 33068 | LD B,A | Load B with USS Pisces' new fuel level | ||
| 33069 | LD HL,42282 | Point HL at "THE USS PISCES IS FULLY REFUELED" text... | ||
| 33072 | LD HL,42282 | ... (see trivia) | ||
| 33075 | LD A,B | Set USS Pisces' new fuel level... | ||
| 33076 | LD (25013),A | ... | ||
| 33079 | CALL 34762 | Print text to screen | ||
| 33082 | JR 33016 | Display "PRESS FIRE TO CONTINUE" window and wait for input and return to main game loop | ||
| 33084 | LD HL,42226 | Point HL at "SORRY MAGIC KNIGHT WE ARE OUT OF FUEL" text... | ||
| 33087 | CALL 34762 | ...and print to screen | ||
| 33090 | JP 33016 | Display "PRESS FIRE TO CONTINUE" window and wait for input and return to main game loop | ||
| 33093 | LD (HL),B | Store updated (i.e. zero) value for planet's fuel | ||
| 33094 | LD HL,42240 | Point HL at "...WE DO NOT HAVE ENOUGH FUEL..." text | ||
| 33097 | LD B,A | Load B with USS Pisces' new fuel level | ||
| 33098 | JR 33075 | Jump back to 33075 | ||
| Prev: 32886 | Up: Map | Next: 33100 |