![]() |
Routines |
Prev: 27471 | Up: Map | Next: 27661 |
|
|||||||||||||||||||||
Print_InstructionsMenu | 27545 | CALL ClearScreen | Call ClearScreen. | ||||||||||||||||||
27548 | LD A,(26358) | Jump to Input_SelectLevel if *ControlMethod is a joystick method. | |||||||||||||||||||
27551 | OR A | ||||||||||||||||||||
27552 | JR NZ,Input_SelectLevel | ||||||||||||||||||||
The player has selected to use the keyboard, so remind them what the keys are.
Print "Instructions".
|
|||||||||||||||||||||
27554 | LD HL,25718 | Call Configurable_PrintString using Messaging_Instructions; printing 12 characters in YELLOW. | |||||||||||||||||||
27557 | LD DE,16553 | ||||||||||||||||||||
27560 | LD BC,3078 | ||||||||||||||||||||
27563 | CALL Configurable_PrintString | ||||||||||||||||||||
Print "Left".
|
|||||||||||||||||||||
27566 | LD DE,18439 | Call Configurable_PrintString using Messaging_Left; printing 20 characters in INK:MAGENTA, PAPER:BLACK(BRIGHT). | |||||||||||||||||||
27569 | LD BC,5187 | ||||||||||||||||||||
27572 | CALL Configurable_PrintString | ||||||||||||||||||||
Print "Right".
|
|||||||||||||||||||||
27575 | LD E,71 | Call Configurable_PrintString using Messaging_Right; printing 11 characters. | |||||||||||||||||||
27577 | LD B,11 | ||||||||||||||||||||
27579 | CALL Configurable_PrintString | ||||||||||||||||||||
Print "Fire".
|
|||||||||||||||||||||
27582 | LD E,135 | Call Configurable_PrintString using Messaging_Fire; printing 15 characters. | |||||||||||||||||||
27584 | LD B,15 | ||||||||||||||||||||
27586 | CALL Configurable_PrintString | ||||||||||||||||||||
Print "Barrier".
|
|||||||||||||||||||||
27589 | LD E,199 | Call Configurable_PrintString using Messaging_Barrier; printing 15 characters. | |||||||||||||||||||
27591 | LD B,15 | ||||||||||||||||||||
27593 | CALL Configurable_PrintString | ||||||||||||||||||||
Print "Select Level".
|
|||||||||||||||||||||
Input_SelectLevel | 27596 | LD HL,25791 | Call Configurable_PrintString using Messaging_Level; printing 18 characters in WHITE. | ||||||||||||||||||
27599 | LD DE,20615 | ||||||||||||||||||||
27602 | LD BC,4615 | ||||||||||||||||||||
27605 | CALL Configurable_PrintString | ||||||||||||||||||||
Read keyboard input to select level 1-5.
|
|||||||||||||||||||||
Input_SelectLevel_Loop | 27608 | DI | Disable interrupts. | ||||||||||||||||||
27609 | LD A,247 | Read from the keyboard;
|
|||||||||||||||||||
27611 | IN A,(254) | ||||||||||||||||||||
27613 | XOR %11111111 | Flip the bits. | |||||||||||||||||||
27615 | AND %00011111 | Keep only bits 0-4 (the key states). | |||||||||||||||||||
27617 | JR Z,Input_SelectLevel_Loop | Jump to Input_SelectLevel_Loop if no keys were pressed. | |||||||||||||||||||
27619 | LD C,49 | Start a count in C starting at 49 (ASCII "1"). | |||||||||||||||||||
27621 | BIT 0,A | Jump to Input_SelectLevel_Store if bit 0 of A was set (key "1" pressed). | |||||||||||||||||||
27623 | JR NZ,Input_SelectLevel_Store | ||||||||||||||||||||
27625 | INC C | Increment C by one (ASCII "2"). | |||||||||||||||||||
27626 | BIT 1,A | Jump to Input_SelectLevel_Store if bit 1 of A was set (key "2" pressed). | |||||||||||||||||||
27628 | JR NZ,Input_SelectLevel_Store | ||||||||||||||||||||
27630 | INC C | Increment C by one (ASCII "3"). | |||||||||||||||||||
27631 | BIT 2,A | Jump to Input_SelectLevel_Store if bit 2 of A was set (key "3" pressed). | |||||||||||||||||||
27633 | JR NZ,Input_SelectLevel_Store | ||||||||||||||||||||
27635 | INC C | Increment C by one (ASCII "4"). | |||||||||||||||||||
27636 | BIT 3,A | Jump to Input_SelectLevel_Store if bit 3 of A was set (key "4" pressed). | |||||||||||||||||||
27638 | JR NZ,Input_SelectLevel_Store | ||||||||||||||||||||
27640 | INC C | Increment C by one (ASCII "5"). | |||||||||||||||||||
27641 | BIT 4,A | Jump to Input_SelectLevel_Loop if bit 4 of A was set (key "5" pressed). | |||||||||||||||||||
27643 | JR Z,Input_SelectLevel_Loop | ||||||||||||||||||||
Input_SelectLevel_Store | 27645 | LD HL,25895 | Write C to *Messaging_Header_LevelNumber. | ||||||||||||||||||
27648 | LD (HL),C | ||||||||||||||||||||
27649 | LD A,C | Convert the ASCII digit to a numeric value by, subtracting 48 multiply by 2 and subtracting the result from 10 e.g.
|
|||||||||||||||||||
27650 | SUB 48 | ||||||||||||||||||||
27652 | ADD A,A | ||||||||||||||||||||
27653 | LD C,A | ||||||||||||||||||||
27654 | LD A,10 | ||||||||||||||||||||
27656 | SUB C | ||||||||||||||||||||
27657 | LD (26776),A | ||||||||||||||||||||
27660 | RET | Return. |
Prev: 27471 | Up: Map | Next: 27661 |