Prev: F251 Up: Map Next: F29D
F269: Plays the siren sound effect.
play_siren_sfx_128k F269 LD A,($A239) Return if siren disabled
F26C AND A
F26D RET Z
F26E LD A,($A213) Load channel A fine pitch
F271 LD B,$AA Load 50-50 alternating pattern (self modified above)
F273 RLC B Jump to increasing case if top bit was set
F275 JR C,pss_increasing
Decreasing case.
pss_decreasing F277 SUB $03 Decrease pitch by 3
F279 CP $5A Jump to set regs if new pitch >= 90
F27B JR NC,pss_set_regs
F27D JR pss_change Otherwise went too far: jump to pss_change
Increasing case.
pss_increasing F27F ADD A,$03 Increase pitch by 3
F281 CP $8C Jump to set regs if new pitch < 140
F283 JR C,pss_set_regs
Arrive here if new pitch is outside of 90..139.
pss_change F285 EX AF,AF' Preserve new pitch
F286 LD A,B Store rotating pattern (self modifying above)
F287 LD ($8066),A
F28A EX AF,AF' Restore new pitch
Arrive here if new pitch is 90..139.
pss_set_regs F28B LD ($A213),A Update channel A fine pitch
F28E SUB $04 and store 4 less to channel B fine pitch
F290 LD ($A215),A
F293 LD A,($A21A) Set mixer to enable tone A & B
F296 AND $3C
F298 LD ($A21A),A
F29B JR write_registers_128k Exit via write_registers_128k
Prev: F251 Up: Map Next: F29D