Prev: 45980 Up: Map Next: 46242
45981: Process Display Pointer
Used by the routine at InitialiseDisplayBuffer.
ProcessDisplayPointer 45981 PUSH IY
45983 LD L,(IY+0)
45986 LD H,(IY+1)
45989 LD A,H
45990 AND 128
45992 LD (45980),A
45995 RES 7,H
45997 LD (45446),HL
46000 LD L,(IY+2)
46003 LD H,(IY+3)
46006 LD (45452),HL
46009 LD HL,45448
46012 PUSH HL
46013 LD B,4
46015 CALL ClearBuffer
46018 POP HL
46019 LD B,2
46021 LD E,4
46023 CALL ProcessDisplayPointer_12
46026 LD E,14
46028 CALL ProcessDisplayPointer_12
46031 LD E,6
46033 CALL ProcessDisplayPointer_12
46036 LD E,16
46038 CALL ProcessDisplayPointer_12
46041 XOR A
46042 LD (41006),A
46045 LD HL,45446
46048 LD DE,8
46051 LD IX,33369
ProcessDisplayPointer_0 46055 PUSH IX
46057 POP IY
46059 CALL CompareLocationData
46062 JR Z,ProcessDisplayPointer_1
46064 ADD IX,DE
46066 LD A,(IX+1)
46069 OR (IX+0)
46072 JR NZ,ProcessDisplayPointer_0
46074 POP IY
46076 RET
ProcessDisplayPointer_1 46077 POP IY
46079 CALL ProcessDisplayPointer_2
46082 OR 1
46084 RET
ProcessDisplayPointer_2 46085 AND A
46086 JR Z,ProcessDisplayPointer_3
46088 LD HL,(45448)
46091 LD DE,(45450)
46095 LD (45448),DE
46099 LD (45450),HL
ProcessDisplayPointer_3 46102 CALL ExtractObjectAttributes
46105 LD HL,45448
46108 LD A,(HL)
46109 INC HL
46110 OR (HL)
46111 JR NZ,ProcessDisplayPointer_4
46113 LD A,(40990)
46116 JR ProcessDisplayPointer_7
ProcessDisplayPointer_4 46118 DEC HL
46119 LD A,(HL)
46120 CP (IY+14)
46123 JR NZ,ProcessDisplayPointer_5
46125 INC HL
46126 LD A,(HL)
46127 CP (IY+15)
46130 JR Z,ProcessDisplayPointer_6
46132 DEC HL
ProcessDisplayPointer_5 46133 LD A,(HL)
46134 CP (IY+16)
46137 JR NZ,ProcessDisplayPointer_6
46139 INC HL
46140 LD A,(HL)
46141 CP (IY+17)
ProcessDisplayPointer_6 46144 LD A,(40989)
46147 JR NZ,ProcessDisplayPointer_8
ProcessDisplayPointer_7 46149 XOR 32
ProcessDisplayPointer_8 46151 BIT 5,A
46153 LD BC,4616
46156 JR Z,ProcessDisplayPointer_9
46158 LD BC,2066
ProcessDisplayPointer_9 46161 LD HL,45442
46164 LD (HL),B
46165 INC HL
46166 LD (HL),C
46167 LD A,B
46168 LD DE,45426
46171 LD HL,45421
46174 CALL ProcessDisplayPointer_10
46177 LD A,C
46178 LD DE,45432
46181 LD HL,45422
ProcessDisplayPointer_10 46184 PUSH BC
46185 LD C,A
46186 LD B,0
46188 PUSH HL
46189 PUSH IY
46191 POP HL
46192 ADD HL,BC
46193 LD BC,6
46196 LDIR
46198 XOR A
46199 LD B,6
ProcessDisplayPointer_11 46201 DEC HL
46202 OR (HL)
46203 DJNZ ProcessDisplayPointer_11
46205 POP HL
46206 POP BC
46207 RET Z
46208 SET 0,(HL)
46210 RET
ProcessDisplayPointer_12 46211 XOR A
46212 CP B
46213 RET Z
46214 LD D,0
46216 PUSH IY
46218 ADD IY,DE
46220 LD A,(IY+0)
46223 LD (HL),A
46224 INC HL
46225 LD A,(IY+1)
46228 LD (HL),A
46229 DEC HL
46230 OR (IY+0)
46233 POP IY
46235 RET Z
46236 DEC B
46237 INC HL
46238 INC HL
46239 RET
This entry point is used by the routines at CheckFlagAndSetDisplay_ProcessPointer and CheckFlagAndSetDisplayParameter.
ProcessDisplayPointer_13 46240 JP (IY)
Prev: 45980 Up: Map Next: 46242