Prev: 38005 Up: Map Next: 38231
38053: Routine at 94A5
Used by the routines at GameStart and 37688.
38053 LD IX,22528 IX=22528.
38057 LD HL,23296 HL=23296 (attribute buffer location).
38060 LD DE,25600 DE=25600.
38063 LD A,(28056) A=*28056.
38066 OR A Set the bits from A.
38067 JP Z,38071 Jump to 38071 if {} is zero.
38070 EX DE,HL Exchange the DE and HL registers.
38071 PUSH DE Stash DE on the stack.
38072 POP IY Restore IY from the stack.
38074 LD A,(HL) A=*HL.
38075 INC HL Increment HL by one.
38076 OR A Set the bits from A.
38077 JP Z,38142 Jump to 38142 if {} is zero.
38080 CP 255 Jump to 38152 if A is equal to 255.
38082 JP Z,38152
38085 LD B,A B=A.
38086 LD E,0 E=0.
38088 CP (IY+0) Jump to 38095 if A is not equal to *IY+0.
38091 JP NZ,38095
38094 INC E Increment E by one.
38095 LD A,(HL) A=*HL.
38096 OR A Set the bits from A.
38097 JP Z,38142 Jump to 38142 if {} is zero.
38100 LD C,A C=A.
38101 CP (IY+1) Compare A with *IY+1.
38104 JP NZ,38108 Jump to 38108 if {} is not zero.
38107 INC E Increment E by one.
38108 INC HL Increment HL by one.
38109 LD A,(HL) A=*HL.
38110 CP (IY+2) Compare A with *IY+2.
38113 JP NZ,38121 Jump to 38121 if {} is not zero.
38116 BIT 1,E Test bit 1 of E.
38118 JP NZ,38126 Jump to 38126 if {} is not zero.
38121 PUSH HL Stash HL on the stack.
38122 CALL 38156 Call 38156.
38125 POP HL Restore HL from the stack.
38126 INC HL Increment HL by one.
38127 INC IX Increment IX by one.
38129 LD A,IXh
38131 CP 91 Compare A with 91.
38133 RET Z Return if {} is zero.
38134 LD DE,3 IY+=0003.
38137 ADD IY,DE
38139 JP 38074 Jump to 38074.
38142 INC HL Increment HL by one.
38143 LD A,(HL) A=*HL.
38144 SET 6,A Set bit 6 of A.
38146 LD (IX+0),A Write A to *IX+0.
38149 JP 38126 Jump to 38126.
38152 INC HL Increment HL by one.
38153 JP 38126 Jump to 38126.
38156 SET 6,A Set bit 6 of A.
38158 LD (IX+0),A Write A to *IX+0.
38161 XOR A Flip the bits according to A.
38162 LD L,B L=B.
38163 LD H,A H=A.
38164 ADD HL,HL HL+=HL.
38165 LD DE,58694 HL+=58694.
38168 ADD HL,DE
38169 LD E,(HL) E=*HL.
38170 INC HL Increment HL by one.
38171 LD D,(HL) D=*HL.
38172 LD L,C L=C.
38173 LD H,A H=A.
38174 ADD HL,HL HL+=HL.
38175 ADD HL,HL HL+=HL.
38176 ADD HL,HL HL+=HL.
38177 ADD HL,DE HL+=DE.
38178 EX DE,HL Exchange the DE and HL registers.
38179 PUSH IX Stash IX on the stack.
38181 POP HL Restore HL from the stack.
38182 LD A,H A=H.
38183 ADD A,A A+=A.
38184 ADD A,A A+=A.
38185 ADD A,A A+=A.
38186 AND %01011011 Keep only bits 0-1, 3-4, 6.
38188 LD H,A H=A.
38189 EX DE,HL Exchange the DE and HL registers.
38190 BIT 7,(IX+0) Test bit 7 of *IX+0.
38194 JP NZ,38206 Jump to 38206 if {} is not zero.
38197 LD B,8 B=8.
38199 LD A,(HL) A=*HL.
38200 LD (DE),A Write A to *DE.
38201 INC D Increment D by one.
38202 INC HL Increment HL by one.
38203 DJNZ 38199 Decrease counter by one and loop back to 38199 until counter is zero.
38205 RET Return.
38206 RES 7,(IX+0) Reset bit 7 of *IX+0.
38210 LD B,8 B=8.
38212 PUSH BC Stash BC on the stack.
38213 LD A,(HL) A=*HL.
38214 PUSH HL Stash HL on the stack.
38215 LD HL,58722 HL=58722.
38218 LD C,A C=A.
38219 LD B,0 B=0.
38221 ADD HL,BC HL+=BC.
38222 LD A,(HL) A=*HL.
38223 POP HL Restore HL from the stack.
38224 LD (DE),A Write A to *DE.
38225 INC D Increment D by one.
38226 INC HL Increment HL by one.
38227 POP BC Restore BC from the stack.
38228 DJNZ 38212 Decrease counter by one and loop back to 38212 until counter is zero.
38230 RET Return.
Prev: 38005 Up: Map Next: 38231