Routines |
Prev: 691D | Up: Map | Next: 693D |
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 |
Prev: 691D | Up: Map | Next: 693D |