| Routines

691E: Remove the speech bubble

Used by the routine at 6A08. Sets the bits in the screen refresh buffer (SRB) that correspond to the the speech bubble and lip, so that they are removed (replaced by play area tiles) next time the display is updated.
691E | PUSH HL |
691F | CALL $68E1 | Reset the bits in the SRB corresponding to speech bubble
6922 | LD L,$F8 | HL=7FF8, which holds the LSB of the SRB address corresponding to the lip of the speech bubble (if any); pick this up in A
6924 | LD A,(HL)
6925 | AND A | Is the speech bubble on-screen?
6926 | JR Z,$693B | Jump if not
6928 | LD (HL),$00 | Signal: no one's talking now
692A | LD L,A | HL points to the SRB byte corresponding to the lip of the speech bubble
692B | LD A,($7FF9) | The bit set in A is the bit of that SRB byte that corresponds to the lip's location
692E | OR (HL) | Update the speech bubble lip SRB byte with this bit set (forcing a refresh of the screen where the lip is)
692F | LD (HL),A
6930 | LD A,L | Update the SRB for where the bottom line of the speech bubble is
6931 | ADD A,$FC
6933 | LD L,A
6934 | LD (HL),$FF
6936 | ADD A,$FC | Update the SRB for where the top line of the speech bubble is
6938 | LD L,A
6939 | LD (HL),$FF
693B | POP HL |
693C | RET |