Prev: B39C Up: Map Next: B4A2
B39D: Process Display Pointer
Used by the routine at InitialiseDisplayBuffer.
ProcessDisplayPointer B39D PUSH IY
B39F LD L,(IY+$00)
B3A2 LD H,(IY+$01)
B3A5 LD A,H
B3A6 AND $80
B3A8 LD ($B39C),A
B3AB RES 7,H
B3AD LD ($B186),HL
B3B0 LD L,(IY+$02)
B3B3 LD H,(IY+$03)
B3B6 LD ($B18C),HL
B3B9 LD HL,$B188
B3BC PUSH HL
B3BD LD B,$04
B3BF CALL ClearBuffer
B3C2 POP HL
B3C3 LD B,$02
B3C5 LD E,$04
B3C7 CALL ProcessDisplayPointer_12
B3CA LD E,$0E
B3CC CALL ProcessDisplayPointer_12
B3CF LD E,$06
B3D1 CALL ProcessDisplayPointer_12
B3D4 LD E,$10
B3D6 CALL ProcessDisplayPointer_12
B3D9 XOR A
B3DA LD ($A02E),A
B3DD LD HL,$B186
B3E0 LD DE,$0008
B3E3 LD IX,$8259
ProcessDisplayPointer_0 B3E7 PUSH IX
B3E9 POP IY
B3EB CALL CompareLocationData
B3EE JR Z,ProcessDisplayPointer_1
B3F0 ADD IX,DE
B3F2 LD A,(IX+$01)
B3F5 OR (IX+$00)
B3F8 JR NZ,ProcessDisplayPointer_0
B3FA POP IY
B3FC RET
ProcessDisplayPointer_1 B3FD POP IY
B3FF CALL ProcessDisplayPointer_2
B402 OR $01
B404 RET
ProcessDisplayPointer_2 B405 AND A
B406 JR Z,ProcessDisplayPointer_3
B408 LD HL,($B188)
B40B LD DE,($B18A)
B40F LD ($B188),DE
B413 LD ($B18A),HL
ProcessDisplayPointer_3 B416 CALL ExtractObjectAttributes
B419 LD HL,$B188
B41C LD A,(HL)
B41D INC HL
B41E OR (HL)
B41F JR NZ,ProcessDisplayPointer_4
B421 LD A,($A01E)
B424 JR ProcessDisplayPointer_7
ProcessDisplayPointer_4 B426 DEC HL
B427 LD A,(HL)
B428 CP (IY+$0E)
B42B JR NZ,ProcessDisplayPointer_5
B42D INC HL
B42E LD A,(HL)
B42F CP (IY+$0F)
B432 JR Z,ProcessDisplayPointer_6
B434 DEC HL
ProcessDisplayPointer_5 B435 LD A,(HL)
B436 CP (IY+$10)
B439 JR NZ,ProcessDisplayPointer_6
B43B INC HL
B43C LD A,(HL)
B43D CP (IY+$11)
ProcessDisplayPointer_6 B440 LD A,($A01D)
B443 JR NZ,ProcessDisplayPointer_8
ProcessDisplayPointer_7 B445 XOR $20
ProcessDisplayPointer_8 B447 BIT 5,A
B449 LD BC,$1208
B44C JR Z,ProcessDisplayPointer_9
B44E LD BC,$0812
ProcessDisplayPointer_9 B451 LD HL,$B182
B454 LD (HL),B
B455 INC HL
B456 LD (HL),C
B457 LD A,B
B458 LD DE,$B172
B45B LD HL,$B16D
B45E CALL ProcessDisplayPointer_10
B461 LD A,C
B462 LD DE,$B178
B465 LD HL,$B16E
ProcessDisplayPointer_10 B468 PUSH BC
B469 LD C,A
B46A LD B,$00
B46C PUSH HL
B46D PUSH IY
B46F POP HL
B470 ADD HL,BC
B471 LD BC,$0006
B474 LDIR
B476 XOR A
B477 LD B,$06
ProcessDisplayPointer_11 B479 DEC HL
B47A OR (HL)
B47B DJNZ ProcessDisplayPointer_11
B47D POP HL
B47E POP BC
B47F RET Z
B480 SET 0,(HL)
B482 RET
ProcessDisplayPointer_12 B483 XOR A
B484 CP B
B485 RET Z
B486 LD D,$00
B488 PUSH IY
B48A ADD IY,DE
B48C LD A,(IY+$00)
B48F LD (HL),A
B490 INC HL
B491 LD A,(IY+$01)
B494 LD (HL),A
B495 DEC HL
B496 OR (IY+$00)
B499 POP IY
B49B RET Z
B49C DEC B
B49D INC HL
B49E INC HL
B49F RET
This entry point is used by the routines at CheckFlagAndSetDisplay_ProcessPointer and CheckFlagAndSetDisplayParameter.
ProcessDisplayPointer_13 B4A0 JP (IY)
Prev: B39C Up: Map Next: B4A2