|  | Routines | 
| Prev: CA64 | Up: Map | Next: CAA3 | 
| 
Used by the routine at Handler_Bust.
 | ||||
| 
Plays 1-bit PCM speech for the "ONE HUNDRED AND EIGHTY!" announcement.
 | ||||
| Sound_180Speech | CA7C | LD HL,$D500 | Set a pointer to the speech data in HL to Data_Speech. | |
| CA7F | LD DE,$0800 | Set the data length counter in DE to 0800 bytes. | ||
| SpeechProcessByte | CA82 | LD B,$08 | Set a counter in B for 08 bits per byte. | |
| SpeechProcessBit | CA84 | RLC (HL) | Rotate *HL left one position to set the next bit to the carry flag. | |
| 
Set the speaker bit ON or OFF based on if the currently processed bit is set or not.
 | ||||
| CA86 | LD A,%00010000 | Set the speaker bit to ON. | ||
| CA88 | JR C,SpeechOutputSample | Jump to SpeechOutputSample if the carry bit is set. | ||
| CA8A | XOR A | Set the speaker bit to OFF. | ||
| 
Output the sample.
 | ||||
| SpeechOutputSample | CA8B | OUT ($FE),A | Send A to the speaker. | |
| 
Introduce a tiny delay.
 | ||||
| CA8D | LD C,$12 | Set a delay counter in C. | ||
| SpeechDelay_Loop | CA8F | DEC C | Decrease the delay counter by one. | |
| CA90 | JR NZ,SpeechDelay_Loop | Jump back to SpeechDelay_Loop until the delay counter is zero. | ||
| CA92 | DJNZ SpeechWasteCycles | Decrease the bit counter by one and jump to SpeechWasteCycles until all bits in the current byte have been processed. | ||
| 
Finished with this byte, move onto the next.
 | ||||
| CA94 | INC HL | Move to the next byte of speech data. | ||
| CA95 | DEC DE | Decrease the data length counter by one. | ||
| CA96 | LD A,D | Jump back to SpeechProcessByte until all the bytes have been processed. | ||
| CA97 | OR E | |||
| CA98 | JR NZ,SpeechProcessByte | |||
| 
All done, re-enable the interrupts and return.
 | ||||
| CA9A | EI | Enable interrupts. | ||
| CA9B | RET | Return. | ||
| 
Minor timing tweaks (probably).
 | ||||
| SpeechWasteCycles | CA9C | NOP | No operation. | |
| CA9D | NOP | |||
| CA9E | NOP | |||
| CA9F | NOP | |||
| CAA0 | NOP | |||
| CAA1 | JR SpeechProcessBit | Jump to SpeechProcessBit. | ||
| Prev: CA64 | Up: Map | Next: CAA3 |