![]() |
Routines |
| Prev: F6B5 | Up: Map | Next: F723 |
|
Used by the routine at Handler_Interrupts.
|
||||
| MusicThemeTune | F6DB | LD A,($FFF8) | Jump to MusicThemeTune_Housekeeping if *MusicOnOff is equal to 00. | |
| F6DE | CP $00 | |||
| F6E0 | JR Z,MusicThemeTune_Housekeeping | |||
| F6E2 | PUSH BC | Stash BC on the stack. | ||
| F6E3 | LD A,($FE88) | C=*InterruptCounter. | ||
| F6E6 | LD C,A | |||
| F6E7 | LD A,($FFF7) | A=*FFF7. | ||
| F6EA | AND C | Merge the bits from C. | ||
| F6EB | POP BC | Restore BC from the stack. | ||
| F6EC | JR NZ,MusicThemeTune_Housekeeping | Jump to MusicThemeTune_Housekeeping if {} is not zero. | ||
| F6EE | PUSH BC | Stash BC, DE and HL on the stack. | ||
| F6EF | PUSH DE | |||
| F6F0 | PUSH HL | |||
| F6F1 | LD HL,($FFF9) | HL=*MusicPointerThemeMusic. | ||
| F6F4 | LD A,(HL) | Fetch a byte of music data and store it in A. | ||
|
Are we at the end?
|
||||
| F6F5 | CP $FF | Jump to MusicResetThemeTune if the termination character (FF) has been reached. | ||
| F6F7 | JP Z,MusicResetThemeTune | |||
| F6FA | LD E,A | E=the music data byte from A. | ||
| F6FB | INC HL | Increment the music data pointer by one. | ||
| F6FC | LD A,(HL) | D=*HL. | ||
| F6FD | LD D,A | |||
| F6FE | INC HL | Increment music data pointer by one. | ||
| F6FF | LD A,(HL) | C=*HL. | ||
| F700 | LD C,A | |||
| F701 | INC HL | Increment music data pointer by one. | ||
| F702 | LD A,(HL) | B=*HL. | ||
| F703 | LD B,A | |||
| F704 | INC HL | Increment the music data pointer by one and write it to *MusicPointerThemeMusic ready for the next interrupt generation. | ||
| F705 | LD ($FFF9),HL | |||
| F708 | LD A,E | Jump to MusicThemeTune_NoNote if DE is zero. | ||
| F709 | OR D | |||
| F70A | JR Z,MusicThemeTune_NoNote | |||
| F70C | CALL PlayWave1 | Call PlayWave1. | ||
| MusicThemeTune_NoNote | F70F | POP HL | Restore HL, DE and BC from the stack. | |
| F710 | POP DE | |||
| F711 | POP BC | |||
| MusicThemeTune_Housekeeping | F712 | POP AF | Restore AF and AF from the stack. | |
| F713 | POP AF | |||
| F714 | CALL $0038 | Call MASK_INT. | ||
| F717 | POP IY | Restore IY from the stack. | ||
| F719 | EI | Enable interrupts. | ||
| F71A | RET | Return. | ||
|
Resets the theme tune pointer back to the beginning of the data.
|
||||
| MusicResetThemeTune | F71B | LD HL,$FA00 | Write MelodyData_ThemeTune to *MusicPointerThemeMusic. | |
| F71E | LD ($FFF9),HL | |||
| F721 | JR MusicThemeTune_NoNote | Jump to MusicThemeTune_NoNote. | ||
| Prev: F6B5 | Up: Map | Next: F723 |