![]() |
Routines |
| Prev: 47179 | Up: Map | Next: 47341 |
|
||||||||||
| PrintString | 47300 | LD A,(HL) | A=*HL. | |||||||
| 47301 | INC HL | Increment HL by one. | ||||||||
| 47302 | CP 128 | If A is higher than 128 jump to PrintString_1. | ||||||||
| 47304 | JR C,PrintString_1 | |||||||||
|
Return if we've reached the terminator (255).
|
||||||||||
| 47306 | CP 255 | If A is 255 then return. | ||||||||
| 47308 | RET Z | |||||||||
|
If the current byte is our control byte (254) - we grab the next byte and store it in C and then loop back to the start.
|
||||||||||
| 47309 | CP 254 | If A is not 254 jump to PrintString_0. | ||||||||
| 47311 | JR NZ,PrintString_0 | |||||||||
| 47313 | LD C,(HL) | C=*HL. | ||||||||
| 47314 | INC HL | Increment HL by one. | ||||||||
| 47315 | JR PrintString | Jump to PrintString. | ||||||||
|
Any other data is processed from here.
|
||||||||||
| PrintString_0 | 47317 | CP 168 | If A is higher than 168 jump to PrintString_1. | |||||||
| 47319 | JR C,PrintString_1 | |||||||||
| 47321 | CP 232 | If A is lower than 232 jump to PrintString_1. | ||||||||
| 47323 | JR NC,PrintString_1 | |||||||||
| 47325 | SUB 200 | A-=200. | ||||||||
| 47327 | ADD A,E | E=A+E. | ||||||||
| 47328 | LD E,A | |||||||||
| 47329 | LD A,D | D+=*HL. | ||||||||
| 47330 | ADD A,(HL) | |||||||||
| 47331 | LD D,A | |||||||||
| 47332 | INC HL | Increment HL by one. | ||||||||
| 47333 | JR PrintString | Jump to PrintString. | ||||||||
| PrintString_1 | 47335 | CALL PrintStringColour | Call PrintStringColour. | |||||||
| 47338 | INC E | Increment E by one. | ||||||||
| 47339 | JR PrintString | Jump to PrintString. | ||||||||
| Prev: 47179 | Up: Map | Next: 47341 |