Routines |
Prev: BB73 | Up: Map | Next: BCB7 |
Used by the routine at BB73.
|
||||||||
Fetch the message string from *HL.
|
||||||||
Handler_BonusMessaging | BC96 | LD E,(HL) | E=*HL. | |||||
BC97 | INC HL | Increment HL by one. | ||||||
BC98 | LD D,(HL) | D=*HL. | ||||||
BC99 | INC HL | Increment HL by one. | ||||||
BC9A | LD ($C38A),HL | Write HL to *BonusMessaging. | ||||||
BC9D | EX DE,HL | Exchange the DE register with the shadow HL register. | ||||||
|
||||||||
Print_BonusMessaging | BC9E | LD DE,$50C0 | DE=50C0 (screen buffer location). | |||||
BCA1 | LD A,$00 | Write 00 to *C388. | ||||||
BCA3 | LD ($C388),A | |||||||
BCA6 | CALL PrintString | Call PrintString. | ||||||
BCA9 | EX DE,HL | Switch the DE and HL registers back to normal. | ||||||
The messaging appears right at the bottom of the screen. This code blanks out the rest of the two lines to overwrite any existing messaging.
|
||||||||
Print_BonusMessaging_Blank | BCAA | LD B,$08 | B=08 (eight lines in a character block). | |||||
BCAC | PUSH HL | Remember where we are on the screen. | ||||||
Clearing the character block.
|
||||||||
Print_BonusMessaging_Loop | BCAD | LD (HL),$00 | Write 00 to *HL. | |||||
BCAF | INC H | Move down one line. | ||||||
BCB0 | DJNZ Print_BonusMessaging_Loop | Decrease counter by one and loop back to Print_BonusMessaging_Loop until counter is zero. | ||||||
BCB2 | POP HL | Restore the screen location where we started for this pass (the top of this character block). | ||||||
BCB3 | INC L | Move right one character block. | ||||||
Keep going until the end of the screen is reached.
|
||||||||
BCB4 | JR NZ,Print_BonusMessaging_Blank | Jump to Print_BonusMessaging_Blank if L is not zero. | ||||||
BCB6 | RET | Return. |
Prev: BB73 | Up: Map | Next: BCB7 |