Routines |
Prev: A095 | Up: Map | Next: A0C9 |
ring_bell | A09E | LD HL,$A130 | Point HL at bell ring counter/flag | |
A0A1 | LD A,(HL) | Fetch its value | ||
A0A2 | CP $FF | If it's bell_STOP then return | ||
A0A4 | RET Z | |||
A0A5 | AND A | If it's bell_RING_PERPETUAL then jump over the decrement code | ||
A0A6 | JR Z,ring_bell_0 | |||
Decrement the ring counter.
|
||||
A0A8 | DEC A | Decrement and store | ||
A0A9 | LD (HL),A | |||
A0AA | JR NZ,ring_bell_0 | If it didn't hit zero then jump over the stop code | ||
Counter hit zero - stop ringing.
|
||||
A0AC | LD A,$FF | Stop the bell | ||
A0AE | LD (HL),A | |||
A0AF | RET | Return | ||
Fetch visible state of bell from the screen.
|
||||
ring_bell_0 | A0B0 | LD A,($518E) | Fetch the bell ringing graphic from the screen | |
A0B3 | CP $3F | Is it $3F? (63) | ||
A0B5 | JP Z,ring_bell_2 | If so, jump to plot "off" code | ||
A0B8 | JP ring_bell_1 | Bug: Pointless jump to adjacent instruction | ||
Plot UDG for the bell ringer "on" and make the bell sound
|
||||
ring_bell_1 | A0BB | LD DE,$A153 | Point DE at bell_ringer_bitmap_on | |
A0BE | CALL plot_ringer | Plot ringer | ||
A0C1 | LD BC,$2530 | Play the "bell ringing" sound, exiting via it | ||
A0C4 | JR play_speaker | |||
Plot UDG for the bell ringer "off".
|
||||
ring_bell_2 | A0C6 | LD DE,$A147 | Point DE at bell_ringer_bitmap_on | |
FALL THROUGH to plot_ringer.
|
Prev: A095 | Up: Map | Next: A0C9 |