![]() |
Routines |
Prev: 31767 | Up: Map | Next: 31888 |
Used by the routine at SecurityCheck.
|
||||||||||||||||||||
GameInitialisation | 31769 | LD HL,24064 | Write 0 to 16 bytes, from GameOptions to 24080. | |||||||||||||||||
31772 | LD B,16 | |||||||||||||||||||
GameInitialisation_Loop | 31774 | LD (HL),0 | ||||||||||||||||||
31776 | INC HL | |||||||||||||||||||
31777 | DJNZ GameInitialisation_Loop | |||||||||||||||||||
31779 | LD HL,48716 | Write MainFont to FontPointer. | ||||||||||||||||||
31782 | LD (24065),HL | |||||||||||||||||||
This entry point is used by the routine at GameOver.
|
||||||||||||||||||||
Game_Restart | 31785 | CALL ClearScreen | Call ClearScreen. | |||||||||||||||||
31788 | CALL MenuIcons | Call MenuIcons. | ||||||||||||||||||
GameSelect_Loop | 31791 | CALL GameMenu | Call GameMenu. | |||||||||||||||||
31794 | LD A,247 | Read from the keyboard;
|
||||||||||||||||||
31796 | OUT (253),A | |||||||||||||||||||
31798 | IN A,(254) | |||||||||||||||||||
31800 | CPL | Flip the bits. | ||||||||||||||||||
31801 | LD E,A | E=A. | ||||||||||||||||||
31802 | LD A,(24064) | A=GameOptions. | ||||||||||||||||||
Handle Keyboard selection.
|
||||||||||||||||||||
31805 | BIT 0,E | Has key "1" been pressed? ("KEYBOARD"). | ||||||||||||||||||
31807 | JR Z,GameSelect_CheckKempston | If not jump to GameSelect_CheckKempston. | ||||||||||||||||||
31809 | AND %11111001 | Keep only bits 0, 3-7. | ||||||||||||||||||
Handle Kempston Joystick selection.
|
||||||||||||||||||||
GameSelect_CheckKempston | 31811 | BIT 1,E | Has key "2" been pressed? ("KEMPSTON JOYSTICK"). | |||||||||||||||||
31813 | JR Z,GameSelect_CheckCursor | If not jump to GameSelect_CheckCursor. | ||||||||||||||||||
31815 | AND %11111001 | Keep only bits 0, 3-7. | ||||||||||||||||||
31817 | OR %00000010 | Set control method = 2. | ||||||||||||||||||
Handle Cursor Joystick selection.
|
||||||||||||||||||||
GameSelect_CheckCursor | 31819 | BIT 2,E | Has key "3" been pressed? ("CURSOR JOYSTICK"). | |||||||||||||||||
31821 | JR Z,GameSelect_CheckKnight | If not jump to GameSelect_CheckKnight. | ||||||||||||||||||
31823 | AND %11111001 | Keep only bits 0, 3-7. | ||||||||||||||||||
31825 | OR %00000100 | Set control method = 4. | ||||||||||||||||||
Handle "Knight" selection.
|
||||||||||||||||||||
GameSelect_CheckKnight | 31827 | BIT 3,E | Has key "4" been pressed? ("KNIGHT"). | |||||||||||||||||
31829 | JR Z,GameSelect_CheckWizard | If not jump to GameSelect_CheckWizard. | ||||||||||||||||||
31831 | AND %11100111 | Keep only bits 0-2, 5-7. | ||||||||||||||||||
Handle "Wizard" selection.
|
||||||||||||||||||||
GameSelect_CheckWizard | 31833 | BIT 4,E | Has key "5" been pressed? ("WIZARD"). | |||||||||||||||||
31835 | JR Z,GameInitialisation_0 | If not jump to GameInitialisation_0. | ||||||||||||||||||
31837 | AND %11100111 | Keep only bits 0-2, 5-7. | ||||||||||||||||||
31839 | OR %00001000 | Set player = 8. | ||||||||||||||||||
GameInitialisation_0 | 31841 | LD D,A | ||||||||||||||||||
31842 | LD A,239 | Read from the keyboard;
|
||||||||||||||||||
31844 | OUT (253),A | |||||||||||||||||||
31846 | IN A,(254) | |||||||||||||||||||
31848 | CPL | Flip the bits. | ||||||||||||||||||
31849 | LD E,A | |||||||||||||||||||
31850 | LD A,D | |||||||||||||||||||
Handle choosing "Serf".
|
||||||||||||||||||||
GameSelect_CheckSerf | 31851 | BIT 4,E | Has key "6" been pressed? ("SERF"). | |||||||||||||||||
31853 | JR Z,GameInitialisation_1 | If not skip to GameInitialisation_1. | ||||||||||||||||||
31855 | AND %11100111 | Keep only bits 0-2, 5-7. | ||||||||||||||||||
31857 | OR %00010000 | Set bit 4. | ||||||||||||||||||
GameInitialisation_1 | 31859 | LD (24064),A | ||||||||||||||||||
31862 | LD C,A | |||||||||||||||||||
Handle starting a new game.
|
||||||||||||||||||||
GameSelect_Start | 31863 | BIT 0,E | Has key "0" been pressed? ("START GAME"). | |||||||||||||||||
31865 | JP NZ,StartGame | If so, jump to StartGame. | ||||||||||||||||||
31868 | LD HL,31978 | HL=GameSelection_Attributes. | ||||||||||||||||||
31871 | LD B,3 | B=3 (counter). | ||||||||||||||||||
31873 | LD A,C | A=C. | ||||||||||||||||||
31874 | CALL 31888 | Call 31888. | ||||||||||||||||||
31877 | LD B,3 | B=3 (counter). | ||||||||||||||||||
31879 | LD A,C | A=C / 4. | ||||||||||||||||||
31880 | RRCA | |||||||||||||||||||
31881 | RRCA | |||||||||||||||||||
31882 | CALL 31888 | Call 31888. | ||||||||||||||||||
31885 | JP GameSelect_Loop | Jump to GameSelect_Loop. | ||||||||||||||||||
View the equivalent code in;
|
Prev: 31767 | Up: Map | Next: 31888 |