| Dynamite Dan | Routines |
| Prev: DA9E | Up: Map | Next: DAC8 |
|
||||||||||
| DAB2 | LD A,($E800) | Get the last read state of port FE. (E800) | ||||||||
| DAB5 | PUSH DE | Remember DE. | ||||||||
|
First, toggle the bit on the speaker to start a square wave
|
||||||||||
| DAB6 | XOR $10 | Toggle the speaker bit on the port. | ||||||||
| DAB8 | OUT ($FE),A | |||||||||
| DABA | LD C,A | Remember this in C. | ||||||||
|
Now, wait a while, leaving the speaker in this state, then loop back, toggling the bit again to start a new wave.
|
||||||||||
| DABB | DEC DE | Decrease the length. | ||||||||
| DABC | LD A,D | Is it now zero? | ||||||||
| DABD | OR E | |||||||||
| DABE | JR NZ,$DABB | Jump back if it isn't. | ||||||||
| DAC0 | POP DE | Restore the wave length. | ||||||||
| DAC1 | LD A,C | Restore the speaker state. | ||||||||
| DAC2 | DJNZ $DAB5 | Loop back and toggle it again. | ||||||||
| DAC4 | LD ($E800),A | Store the most recent state and return. | ||||||||
| DAC7 | RET | |||||||||
| Prev: DA9E | Up: Map | Next: DAC8 |