Prev: A5C4 Up: Map Next: A63A
A5CD: Routine at A5CD
Used by the routines at A5C4 and A6D3.
A5CD LD A,(IX+$00) A=*IX+00.
A5D0 BIT 7,A Jump to A5F2 if bit 7 of A is not set.
A5D2 JR Z,$A5F2
A5D4 AND %01111111 Keep only bits 0-6.
A5D6 LD D,A D=A.
A5D7 LD E,(IX+$01) E=*IX+01.
A5DA INC IX Increment IX by one.
A5DC AND %11110000 Keep only bits 4-7.
A5DE CP $30 Jump to A647 if A is equal to 30.
A5E0 JR Z,$A647
A5E2 CP $20 Jump to A647 if A is equal to 20.
A5E4 JR Z,$A647
A5E6 CP $60 Jump to A647 if A is equal to 60.
A5E8 JR Z,$A647
This entry point is used by the routine at A83A.
A5EA CALL $A887 Call A887.
A5ED INC IX Increment IX by one.
A5EF OR %00000001 Set bit 0.
A5F1 RET Return.
A5F2 CP $20 Jump to A621 if A is less than 20.
A5F4 JR C,$A621
A5F6 CP $60 Jump to A83A if A is greater than 60.
A5F8 JP NC,$A83A
A5FB CP $40 Jump to A61C if A is less than 40.
A5FD JR C,$A61C
A5FF AND %00011111 Keep only bits 0-4.
A601 INC A Increment A by one.
A602 LD B,A B=A.
A603 PUSH IX HL=IX (using the stack).
A605 POP HL
A606 INC HL Increment HL by one.
A607 LD C,$00 C=00.
A609 CALL $A990 Call A990.
A60C CALL $A9B7 Call A9B7.
A60F DJNZ $A609 Decrease counter by one and loop back to A609 until counter is zero.
A611 PUSH HL IX=HL (using the stack).
A612 POP IX
A614 LD A,C A=C.
A615 AND A Set flags.
A616 JR NZ,$A5ED Jump to A5ED if HL is not equal to A.
A618 DEC IX Decrease IX by one.
A61A JR $A5ED Jump to A5ED.
A61C CALL $A9B7 Call A9B7.
A61F JR $A5ED Jump to A5ED.
A621 PUSH DE Stash DE on the stack.
A622 LD E,A E=A.
A623 LD D,$00 D=00.
A625 LD HL,$A55D HL=A55D+(DE*02).
A628 ADD HL,DE
A629 ADD HL,DE
A62A LD E,(HL) E=*HL.
A62B INC HL Increment HL by one.
A62C LD D,(HL) D=*HL.
A62D EX DE,HL Exchange the DE and HL registers.
A62E POP DE Restore DE from the stack.
A62F CP $1D Jump to A5C3 if A is greater than or equal to 1D.
A631 JR NC,$A5C3
A633 CALL $A5C3 Call A5C3.
A636 JR Z,$A5ED Jump to A5ED if A is equal to 1D.
A638 JR $A5EA Jump to A5EA.
Prev: A5C4 Up: Map Next: A63A