Prev: A2BD Up: Map Next: A35D
A2E4: Routine at A2E4
Used by the routine at C989.
A2E4 LD A,$01 Write 01 to *A2AA.
A2E6 LD ($A2AA),A
A2E9 PUSH IY Stash IY, BC, IX, HL and DE on the stack.
A2EB PUSH BC
A2EC PUSH IX
A2EE PUSH HL
A2EF PUSH DE
A2F0 LD A,($A033) Write *A033 to *A35D.
A2F3 LD ($A35D),A
A2F6 LD HL,($A034) Write *A034 to *A35E.
A2F9 LD ($A35E),HL
A2FC LD A,($A00C) B=*A00C.
A2FF LD B,A
A300 AND A Set flags.
A301 LD A,$01 A=01.
A303 JR Z,$A306 Jump to A306 if ?? is equal to A.
A305 XOR A Write 00 to *A027.
A306 LD ($A027),A
A309 CALL $D078 Call D078.
A30C JR NC,$A31A Jump to A31A if ?? is greater than or equal to A.
A30E LD A,B A=B.
A30F AND A Set flags.
A310 JR NZ,$A31A Jump to A31A if ?? is not equal to A.
A312 LD HL,$68D1 HL=68D1.
A315 CALL $A59F Call A59F.
A318 JR $A34E Jump to A34E.
A31A LD A,($A35D) A=*A35D.
A31D CALL $A2B1 Call A2B1.
A320 PUSH HL IX=HL (using the stack).
A321 POP IX
A323 CALL $A2BD Call A2BD.
A326 LD A,($A01D) A=*A01D.
A329 AND %00010000 Keep only bits 4.
A32B JR NZ,$A34E Jump to A34E if ?? is not equal to A.
A32D CP B Jump to A336 if A is equal to B.
A32E JR Z,$A336
A330 CALL $DC6C Call DC6C.
A333 CALL Z,$A2A2 Call A2A2 if B is equal to 00.
A336 CALL $A724 Call A724.
A339 LD DE,$017F DE=017F.
A33C XOR A Jump to A348 if B is not equal to 00.
A33D CP B
A33E JR NZ,$A348
A340 CALL $A887 Call A887.
A343 CALL $A360 Call A360.
A346 JR $A34B Jump to A34B.
A348 CALL $A37D Call A37D.
A34B CALL $A2A2 Call A2A2.
A34E XOR A Write 00 to;
A34F LD ($A2AA),A
A352 LD ($A027),A
A355 POP DE Restore DE, HL, IX, BC and IY from the stack.
A356 POP HL
A357 POP IX
A359 POP BC
A35A POP IY
A35C RET Return.
Prev: A2BD Up: Map Next: A35D