Prev: 9475 Up: Map Next: 9557
94A5: Routine at 94A5
Used by the routines at GameStart and 9338.
94A5 LD IX,$5800 IX=5800.
94A9 LD HL,$5B00 HL=5B00 (attribute buffer location).
94AC LD DE,$6400 DE=6400.
94AF LD A,($6D98) A=*6D98.
94B2 OR A Set the bits from A.
94B3 JP Z,$94B7 Jump to 94B7 if {} is zero.
94B6 EX DE,HL Exchange the DE and HL registers.
94B7 PUSH DE Stash DE on the stack.
94B8 POP IY Restore IY from the stack.
94BA LD A,(HL) A=*HL.
94BB INC HL Increment HL by one.
94BC OR A Set the bits from A.
94BD JP Z,$94FE Jump to 94FE if {} is zero.
94C0 CP $FF Jump to 9508 if A is equal to FF.
94C2 JP Z,$9508
94C5 LD B,A B=A.
94C6 LD E,$00 E=00.
94C8 CP (IY+$00) Jump to 94CF if A is not equal to *IY+00.
94CB JP NZ,$94CF
94CE INC E Increment E by one.
94CF LD A,(HL) A=*HL.
94D0 OR A Set the bits from A.
94D1 JP Z,$94FE Jump to 94FE if {} is zero.
94D4 LD C,A C=A.
94D5 CP (IY+$01) Compare A with *IY+01.
94D8 JP NZ,$94DC Jump to 94DC if {} is not zero.
94DB INC E Increment E by one.
94DC INC HL Increment HL by one.
94DD LD A,(HL) A=*HL.
94DE CP (IY+$02) Compare A with *IY+02.
94E1 JP NZ,$94E9 Jump to 94E9 if {} is not zero.
94E4 BIT 1,E Test bit 1 of E.
94E6 JP NZ,$94EE Jump to 94EE if {} is not zero.
94E9 PUSH HL Stash HL on the stack.
94EA CALL $950C Call 950C.
94ED POP HL Restore HL from the stack.
94EE INC HL Increment HL by one.
94EF INC IX Increment IX by one.
94F1 LD A,IXh
94F3 CP $5B Compare A with 5B.
94F5 RET Z Return if {} is zero.
94F6 LD DE,$0003 IY+=0003.
94F9 ADD IY,DE
94FB JP $94BA Jump to 94BA.
94FE INC HL Increment HL by one.
94FF LD A,(HL) A=*HL.
9500 SET 6,A Set bit 6 of A.
9502 LD (IX+$00),A Write A to *IX+00.
9505 JP $94EE Jump to 94EE.
9508 INC HL Increment HL by one.
9509 JP $94EE Jump to 94EE.
950C SET 6,A Set bit 6 of A.
950E LD (IX+$00),A Write A to *IX+00.
9511 XOR A Flip the bits according to A.
9512 LD L,B L=B.
9513 LD H,A H=A.
9514 ADD HL,HL HL+=HL.
9515 LD DE,$E546 HL+=E546.
9518 ADD HL,DE
9519 LD E,(HL) E=*HL.
951A INC HL Increment HL by one.
951B LD D,(HL) D=*HL.
951C LD L,C L=C.
951D LD H,A H=A.
951E ADD HL,HL HL+=HL.
951F ADD HL,HL HL+=HL.
9520 ADD HL,HL HL+=HL.
9521 ADD HL,DE HL+=DE.
9522 EX DE,HL Exchange the DE and HL registers.
9523 PUSH IX Stash IX on the stack.
9525 POP HL Restore HL from the stack.
9526 LD A,H A=H.
9527 ADD A,A A+=A.
9528 ADD A,A A+=A.
9529 ADD A,A A+=A.
952A AND %01011011 Keep only bits 0-1, 3-4, 6.
952C LD H,A H=A.
952D EX DE,HL Exchange the DE and HL registers.
952E BIT 7,(IX+$00) Test bit 7 of *IX+00.
9532 JP NZ,$953E Jump to 953E if {} is not zero.
9535 LD B,$08 B=08.
9537 LD A,(HL) A=*HL.
9538 LD (DE),A Write A to *DE.
9539 INC D Increment D by one.
953A INC HL Increment HL by one.
953B DJNZ $9537 Decrease counter by one and loop back to 9537 until counter is zero.
953D RET Return.
953E RES 7,(IX+$00) Reset bit 7 of *IX+00.
9542 LD B,$08 B=08.
9544 PUSH BC Stash BC on the stack.
9545 LD A,(HL) A=*HL.
9546 PUSH HL Stash HL on the stack.
9547 LD HL,$E562 HL=E562.
954A LD C,A C=A.
954B LD B,$00 B=00.
954D ADD HL,BC HL+=BC.
954E LD A,(HL) A=*HL.
954F POP HL Restore HL from the stack.
9550 LD (DE),A Write A to *DE.
9551 INC D Increment D by one.
9552 INC HL Increment HL by one.
9553 POP BC Restore BC from the stack.
9554 DJNZ $9544 Decrease counter by one and loop back to 9544 until counter is zero.
9556 RET Return.
Prev: 9475 Up: Map Next: 9557