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 |