Prev: 43090 Up: Map Next: 43311
43136: Routine at A880
Used by the routines at 41853 and 54739.
43136 LD E,(HL) E=*HL.
43137 INC HL Increment HL by one.
43138 LD A,(HL) A=*HL.
43139 INC HL Increment HL by one.
43140 AND %00001111 Keep only bits 0-3.
43142 LD D,A D=A.
This entry point is used by the routines at 41700, 41853, 42445, 42563, 42987, 43022, 43055, 46975, 51593, 53506, 54566, 54739, 54795 and 54924.
43143 LD A,(23612) A=*TV-FLAG.
43146 AND A Return if A is zero.
43147 RET Z
43148 LD (40994),DE Write DE to *40994.
43152 LD A,D A=D.
43153 AND %00001111 Keep only bits 0-3.
43155 OR E Set the bits from E.
43156 RET Z Return if HL is equal to E.
43157 PUSH IX Stash IX, HL, BC and DE on the stack.
43159 PUSH HL
43160 PUSH BC
43161 PUSH DE
43162 LD A,32 A=32.
43164 CALL 43447 Call 43447.
43167 LD A,D A=D.
43168 AND %11110000 Keep only bits 4-7.
43170 LD C,A Compare C with 112.
43171 CP 112
43173 LD A,1 A=1.
43175 JR NZ,43180 Jump to 43180 if C is not equal to 112.
43177 LD (40998),A Write A to *40998.
43180 LD A,D A=D.
43181 AND %00001111 Keep only bits 0-3.
43183 LD D,A D=A.
43184 EX DE,HL Exchange the DE and HL registers.
43185 PUSH HL Stash HL on the stack.
43186 LD A,H A=H.
43187 OR C Set the bits from C.
43188 LD H,A H=A.
43189 LD (40994),HL Write HL to *40994.
43192 POP HL Restore HL from the stack.
43193 PUSH BC Stash BC on the stack.
43194 LD IX,23936 IX=23936.
43198 LD B,95 B=95.
43200 INC B Increment B by one.
43201 LD A,(IX+1) Jump to 43215 if *IX+1 is less than H.
43204 CP H
43205 JR C,43215
43207 JR NZ,43225 Jump to 43225 if *IX+1 is not equal to H.
43209 LD A,(IX+0) Jump to 43225 if *IX+0 is greater than or equal to L.
43212 CP L
43213 JR NC,43225
43215 INC IX Increment IX by two.
43217 INC IX
43219 LD A,B Jump to 43200 if B is not equal to 123.
43220 CP 123
43222 JR NZ,43200
43224 INC B Increment B by one.
43225 JR Z,43232 Jump to 43232 if B is equal to 123.
43227 DEC IX Decrease IX by two.
43229 DEC IX
43231 DEC B Decrease B by one.
43232 LD E,(IX+0) E=*IX+0.
43235 LD D,(IX+1) D=*IX+1.
43238 LD A,D Jump to 43227 until DE is zero.
43239 OR E
43240 JR Z,43227
43242 LD A,B A=B.
43243 CALL 43447 Call 43447.
43246 LD BC,23999 HL+=23999.
43249 ADD HL,BC
43250 PUSH HL Stash HL on the stack.
43251 EX DE,HL Exchange the DE and HL registers.
43252 ADD HL,BC HL+=BC.
43253 PUSH HL Stash HL on the stack.
43254 AND A HL-=DE (with carry).
43255 SBC HL,DE
43257 POP HL Restore HL from the stack.
43258 PUSH AF Stash AF on the stack.
43259 CALL 43355 Call 43355.
43262 POP AF Restore AF from the stack.
43263 JR NZ,43253 Jump to 43253 if B is not equal to A.
43265 POP HL Restore HL and BC from the stack.
43266 POP BC
43267 LD A,C Jump to 43292 if C is equal to 80.
43268 CP 80
43270 JR Z,43292
43272 CP 64 Jump to 43289 if C is equal to 64.
43274 JR Z,43289
43276 CP 16 Compare C with 16.
43278 LD A,(41012) A=*41012.
43281 JR Z,43286 Jump to 43286 if C is equal to 16.
43283 LD A,(41014) Jump to 43292 if *41014 is zero.
43286 AND A
43287 JR Z,43292
43289 CALL 43311 Call 43311.
43292 LD HL,23618 HL=NEWPPC.
43295 LD A,(HL) A=*HL.
43296 AND A Set flags.
43297 JR Z,43305 Jump to 43305 if A is equal to A.
43299 CALL 43447 Call 43447.
43302 INC HL Increment HL by one.
43303 JR 43295 Jump to 43295.
43305 POP DE Restore DE, BC, HL and IX from the stack.
43306 POP BC
43307 POP HL
43308 POP IX
43310 RET Return.
Prev: 43090 Up: Map Next: 43311