![]() |
Routines |
| Prev: 32929 | Up: Map | Next: 33021 |
|
Used by the routine at 32929.
|
||||||||
|
The player has picked a valid controls option on menu 1 (32825). Store the choice number (1-4), play a high pitched sound and highlight their choice on screen.
|
||||||||
| 32961 | INC HL | Advance to the second byte of the pair (to give the number) | ||||||
| 32962 | LD A,(HL) | Identify key pressed (1-4) | ||||||
| 32963 | LD (35754),A | ...and store it | ||||||
|
Play a high pitched sound (and also set the border to black)
|
||||||||
| 32966 | LD C,255 | C register contains the outer loop counter for the sound duration | ||||||
| 32968 | LD HL,13107 | H = 51, L = 51 - but also used as a token address pointer somewhere in ROM | ||||||
|
Outer loop start - toggle speaker on and pause briefly
|
||||||||
| 32971 | LD B,16 | Pause duration | ||||||
| 32973 | LD A,16 | Set bit 4 - speaker bit | ||||||
| 32975 | OUT (254),A | Output it (speaker toggle = on) | ||||||
| 32977 | DJNZ 32977 | Short pause | ||||||
|
The following instructions make a few changes to the value held in the A register, which is then used in the next short pause loop at 32992.
|
||||||||
| 32979 | LD H,(HL) | |||||||
| 32980 | ADD A,H | |||||||
| 32981 | ADD A,L | |||||||
| 32982 | AND 15 | |||||||
| 32984 | ADD A,96 | |||||||
| 32986 | ADD A,B | |||||||
|
Toggle speaker off and pause briefly
|
||||||||
| 32987 | LD B,A | Transfer to the B register to be used as a pause timer | ||||||
| 32988 | LD A,0 | Reset the A register (reset speaker bit) | ||||||
| 32990 | OUT (254),A | Output it (speaker toggle = off) | ||||||
| 32992 | DJNZ 32992 | Another short pause | ||||||
| 32994 | DEC C | Decrement the outer loop counter | ||||||
| 32995 | JR NZ,32971 | ...and repeat until zero. | ||||||
|
Highlight/flash the menu option selected
|
||||||||
| 32997 | LD A,(35754) | Get the menu option selected (1-4) | ||||||
| 33000 | LD HL,22689 | Screen attribute display position for first option (Kempston) | ||||||
| 33003 | LD DE,64 | 64 characters = 2 lines to jump down to next option | ||||||
| 33006 | LD B,4 | Four menu options to check (1-4) | ||||||
| 33008 | LD C,1 | Start with 1 | ||||||
| 33010 | LD (HL),15 | Reset colour/attribute for this option (INK 7, PAPER 1) | ||||||
| 33012 | CP C | Is it this option that's selected? | ||||||
| 33013 | JR NZ,33017 | |||||||
| 33015 | LD (HL),207 | ...If so, set attribute to FLASH 1, BRIGHT 1 | ||||||
| 33017 | ADD HL,DE | Move attribute screen address down two lines to next option | ||||||
| 33018 | INC C | Increment... | ||||||
| 33019 | DJNZ 33010 | ...and check for 2, 3 and then 4 in the same way | ||||||
| Prev: 32929 | Up: Map | Next: 33021 |