|  | Routines | 
| Prev: 34864 | Up: Map | Next: 35151 | 
| 
Used by the routine at Handler_LocationChoice.
 | ||||
| Handler_SubGame | 34876 | POP DE | Discard the last entry on the stack. | |
| 34877 | LD HL,(61426) | Loads a pointer to the current players score and cash balance into HL. The active player reference is via *Pointer_ActivePlayer. | ||
| 34880 | LD DE,10 | |||
| 34883 | ADD HL,DE | |||
| 34884 | LD DE,61428 | Copy the 0005 bytes of data for the score and cash balance from *HL to *ActivePlayerScore/ *ActivePlayerCash_01. | ||
| 34887 | LD BC,5 | |||
| 34890 | LDIR | |||
| 34892 | EX DE,HL | Exchange the DE and HL registers. | ||
| 34893 | LD (HL),0 | Write 0 to *HL. | ||
| 34895 | LD HL,61439 | Write 0 to *61439. | ||
| 34898 | LD (HL),0 | |||
| 34900 | CALL Initialise_SubGame | Call Initialise_SubGame. | ||
| 34903 | LD HL,61439 | Write 1 to *61439. | ||
| 34906 | LD (HL),1 | |||
| 34908 | LD IX,(61426) | IX=Pointer_ActivePlayer. | ||
| 34912 | LD A,(61428) | Copy the three bytes of *ActivePlayerScore to the current players score storage. | ||
| 34915 | LD (IX+10),A | |||
| 34918 | LD A,(61429) | |||
| 34921 | LD (IX+11),A | |||
| 34924 | LD A,(61430) | |||
| 34927 | LD (IX+12),A | |||
| 34930 | LD HL,(61426) | Loads a pointer to the current players cash balance into HL. | ||
| 34933 | LD DE,13 | |||
| 34936 | ADD HL,DE | |||
| 34937 | LD DE,61431 | DE=ActivePlayerCash_01. | ||
| 34940 | LD BC,(61431) | Stash *ActivePlayerCash_01 on the stack. | ||
| 34944 | PUSH BC | |||
| 34945 | LD B,2 | B=2. | ||
| 34947 | CALL SpendMoney | Call SpendMoney. | ||
| 34950 | POP BC | Restore BC from the stack. | ||
| 34951 | LD (IX+13),C | Write C to *IX+13. | ||
| 34954 | LD (IX+14),B | Write B to *IX+14. | ||
| 34957 | JR C,Handler_SubGame_0 | Jump to Handler_SubGame_0 if A is lower. | ||
| 34959 | LD BC,(61431) | Jump to Handler_SubGame_0 if *ActivePlayerCash_01 is zero. | ||
| 34963 | LD A,B | |||
| 34964 | OR C | |||
| 34965 | JR Z,Handler_SubGame_0 | |||
| 34967 | LD DE,65531 | HL+=65531. | ||
| 34970 | ADD HL,DE | |||
| 34971 | LD DE,61431 | DE=ActivePlayerCash_01. | ||
| 34974 | EX DE,HL | Exchange the DE and HL registers. | ||
| 34975 | LD B,3 | B=3. | ||
| 34977 | CALL AddMoney | Call AddMoney. | ||
| 34980 | LD HL,61434 | HL=GameState_1. | ||
| 34983 | SET 1,(HL) | Set bit 1 ("Has Bonus Points?") of *HL. | ||
| 34985 | RES 0,(HL) | Reset bit 0 of *HL. | ||
| Handler_SubGame_0 | 34987 | LD HL,61434 | HL=GameState_1. | |
| 34990 | BIT 4,(HL) | Test bit 4 of *HL. | ||
| 34992 | CALL Z,Check_AffordToFly | Call Check_AffordToFly zero. | ||
| 34995 | LD A,(HL) | A=*HL. | ||
| 34996 | AND %00111100 | Keep only bits 2-5. | ||
| 34998 | JR Z,Handler_SubGame_2 | Jump to Handler_SubGame_2 if A is zero. | ||
| 35000 | AND %00000100 | Keep only bits 2. | ||
| 35002 | JR NZ,Handler_SubGame_1 | Jump to Handler_SubGame_1 if A is not zero. | ||
| 35004 | RES 7,(IX+15) | Reset bit 7 of *IX+15. | ||
| 35008 | JR Handler_SubGame_5 | Jump to Handler_SubGame_5. | ||
| Handler_SubGame_1 | 35010 | LD BC,36482 | BC=London_Location. | |
| 35013 | LD (IX+8),C | Write C to *IX+8. | ||
| 35016 | LD (IX+9),B | Write B to *IX+9. | ||
| 35019 | JR Handler_SubGame_5 | Jump to Handler_SubGame_5. | ||
| Handler_SubGame_2 | 35021 | LD A,(IX+15) | A=*IX+15. | |
| 35024 | AND %00000011 | Keep only bits 0-1. | ||
| 35026 | LD L,(IX+8) | L=*IX+8. | ||
| 35029 | LD H,(IX+9) | H=*IX+9. | ||
| 35032 | LD BC,16 | HL+=0016. | ||
| 35035 | ADD HL,BC | |||
| 35036 | LD C,A | C=A. | ||
| 35037 | XOR (HL) | Flip the bits according to *HL. | ||
| 35038 | LD (HL),A | Write A to *HL. | ||
| 35039 | LD HL,36498 | HL=London_State. | ||
| 35042 | LD DE,17 | DE=0017. | ||
| 35045 | LD B,14 | B=14. | ||
| Handler_SubGame_3 | 35047 | LD A,C | A=C. | |
| 35048 | AND (HL) | Merge the bits from *HL. | ||
| 35049 | JR Z,Handler_SubGame_5 | Jump to Handler_SubGame_5 if A is zero. | ||
| Handler_SubGame_4 | 35051 | INC HL | Increment HL by one. | |
| 35052 | BIT 7,(HL) | Test bit 7 of *HL. | ||
| 35054 | JR Z,Handler_SubGame_4 | Jump to Handler_SubGame_4 if HL is zero. | ||
| 35056 | ADD HL,DE | HL+=DE. | ||
| 35057 | DJNZ Handler_SubGame_3 | Decrease counter by one and loop back to Handler_SubGame_3 until counter is zero. | ||
| 35059 | LD HL,61434 | HL=GameState_1. | ||
| 35062 | SET 6,(HL) | Set bit 6 of *HL. | ||
| 35064 | RES 7,(IX+15) | Reset bit 7 of *IX+15. | ||
| Handler_SubGame_5 | 35068 | POP HL | Restore HL from the stack. | |
| 35069 | CALL Print_WorldMap | Call Print_WorldMap. | ||
| 35072 | CALL Print_Header | Call Print_Header. | ||
| 
This entry point is used by the routine at ChooseLocationOrTakeJob.
 | ||||
| Handler_SubGame_6 | 35075 | CALL Messaging_GenerateTicker | Call Messaging_GenerateTicker. | |
| Handler_SubGame_7 | 35078 | LD B,1 | Call 32853 with a count of 1. | |
| 35080 | CALL 32853 | |||
| 35083 | LD HL,61435 | HL=GameState_2. | ||
| 35086 | BIT 0,(HL) | Test bit 0 ("Ticker On/ Off") of *HL. | ||
| 35088 | JR NZ,Handler_SubGame_7 | Jump to Handler_SubGame_7 if HL is not zero. | ||
| 35090 | LD IX,(61426) | IX=Pointer_ActivePlayer. | ||
| 35094 | BIT 7,(IX+15) | Call HighScoreTable if bit 7 of *IX+15 is zero. | ||
| 35098 | CALL Z,HighScoreTable | |||
| 35101 | CALL Toggle_Players | Call Toggle_Players. | ||
| 35104 | JP NZ,GameLoop | Jump to GameLoop if HL is not zero. | ||
| 35107 | CALL Toggle_Players | Call Toggle_Players. | ||
| 35110 | JP NZ,GameLoop | Jump to GameLoop if HL is not zero. | ||
| 35113 | LD HL,61435 | HL=GameState_2. | ||
| 35116 | BIT 6,(HL) | Test bit 6 of *HL. | ||
| 35118 | CALL Z,HighScoreTable_6 | Call HighScoreTable_6 zero. | ||
| 35121 | CALL ClearMenuScreenAreas | Call ClearMenuScreenAreas. | ||
| 
Prints "Change of control".
 | ||||
| 35124 | LD HL,36404 | HL=Messaging_ChangeControls. | ||
| 35127 | LD DE,20585 | DE=20585 (screen buffer location). | ||
| 35130 | CALL Print_String | Call Print_String. | ||
| 
Prints "or players reqd.".
 | ||||
| 35133 | LD HL,36421 | HL=Messaging_ChangePlayers. | ||
| 35136 | LD DE,20617 | DE=20617 (screen buffer location). | ||
| 35139 | CALL Print_String | Call Print_String. | ||
| 35142 | CALL Select_Yes/No | Call Select_Yes/No. | ||
| 35145 | JP C,ShowMenu | Jump to ShowMenu if HL is lower. | ||
| 35148 | JP NewGame | Jump to NewGame. | ||
| Prev: 34864 | Up: Map | Next: 35151 |