Prev: 47179 Up: Map Next: 47341
47300: Print String
Used by the routines at GameMenu, PrintWages, 46014, GameOver and 60714.
Input
DE Screen co-ordinates
HL Message address
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