Prev: A852 Up: Map Next: A92F
A880: Routine at A880
Used by the routines at A37D and D5D3.
A880 LD E,(HL) E=*HL.
A881 INC HL Increment HL by one.
A882 LD A,(HL) A=*HL.
A883 INC HL Increment HL by one.
A884 AND %00001111 Keep only bits 0-3.
A886 LD D,A D=A.
This entry point is used by the routines at A2E4, A37D, A5CD, A643, A7EB, A80E, A82F, B77F, C989, D102, D526, D5D3, D60B and D68C.
A887 LD A,($5C3C) A=*TV-FLAG.
A88A AND A Return if A is zero.
A88B RET Z
A88C LD ($A022),DE Write DE to *A022.
A890 LD A,D A=D.
A891 AND %00001111 Keep only bits 0-3.
A893 OR E Set the bits from E.
A894 RET Z Return if HL is equal to E.
A895 PUSH IX Stash IX, HL, BC and DE on the stack.
A897 PUSH HL
A898 PUSH BC
A899 PUSH DE
A89A LD A,$20 A=20.
A89C CALL $A9B7 Call A9B7.
A89F LD A,D A=D.
A8A0 AND %11110000 Keep only bits 4-7.
A8A2 LD C,A Compare C with 70.
A8A3 CP $70
A8A5 LD A,$01 A=01.
A8A7 JR NZ,$A8AC Jump to A8AC if C is not equal to 70.
A8A9 LD ($A026),A Write A to *A026.
A8AC LD A,D A=D.
A8AD AND %00001111 Keep only bits 0-3.
A8AF LD D,A D=A.
A8B0 EX DE,HL Exchange the DE and HL registers.
A8B1 PUSH HL Stash HL on the stack.
A8B2 LD A,H A=H.
A8B3 OR C Set the bits from C.
A8B4 LD H,A H=A.
A8B5 LD ($A022),HL Write HL to *A022.
A8B8 POP HL Restore HL from the stack.
A8B9 PUSH BC Stash BC on the stack.
A8BA LD IX,$5D80 IX=5D80.
A8BE LD B,$5F B=5F.
A8C0 INC B Increment B by one.
A8C1 LD A,(IX+$01) Jump to A8CF if *IX+01 is less than H.
A8C4 CP H
A8C5 JR C,$A8CF
A8C7 JR NZ,$A8D9 Jump to A8D9 if *IX+01 is not equal to H.
A8C9 LD A,(IX+$00) Jump to A8D9 if *IX+00 is greater than or equal to L.
A8CC CP L
A8CD JR NC,$A8D9
A8CF INC IX Increment IX by two.
A8D1 INC IX
A8D3 LD A,B Jump to A8C0 if B is not equal to 7B.
A8D4 CP $7B
A8D6 JR NZ,$A8C0
A8D8 INC B Increment B by one.
A8D9 JR Z,$A8E0 Jump to A8E0 if B is equal to 7B.
A8DB DEC IX Decrease IX by two.
A8DD DEC IX
A8DF DEC B Decrease B by one.
A8E0 LD E,(IX+$00) E=*IX+00.
A8E3 LD D,(IX+$01) D=*IX+01.
A8E6 LD A,D Jump to A8DB until DE is zero.
A8E7 OR E
A8E8 JR Z,$A8DB
A8EA LD A,B A=B.
A8EB CALL $A9B7 Call A9B7.
A8EE LD BC,$5DBF HL+=5DBF.
A8F1 ADD HL,BC
A8F2 PUSH HL Stash HL on the stack.
A8F3 EX DE,HL Exchange the DE and HL registers.
A8F4 ADD HL,BC HL+=BC.
A8F5 PUSH HL Stash HL on the stack.
A8F6 AND A HL-=DE (with carry).
A8F7 SBC HL,DE
A8F9 POP HL Restore HL from the stack.
A8FA PUSH AF Stash AF on the stack.
A8FB CALL $A95B Call A95B.
A8FE POP AF Restore AF from the stack.
A8FF JR NZ,$A8F5 Jump to A8F5 if B is not equal to A.
A901 POP HL Restore HL and BC from the stack.
A902 POP BC
A903 LD A,C Jump to A91C if C is equal to 50.
A904 CP $50
A906 JR Z,$A91C
A908 CP $40 Jump to A919 if C is equal to 40.
A90A JR Z,$A919
A90C CP $10 Compare C with 10.
A90E LD A,($A034) A=*A034.
A911 JR Z,$A916 Jump to A916 if C is equal to 10.
A913 LD A,($A036) Jump to A91C if *A036 is zero.
A916 AND A
A917 JR Z,$A91C
A919 CALL $A92F Call A92F.
A91C LD HL,$5C42 HL=NEWPPC.
A91F LD A,(HL) A=*HL.
A920 AND A Set flags.
A921 JR Z,$A929 Jump to A929 if A is equal to A.
A923 CALL $A9B7 Call A9B7.
A926 INC HL Increment HL by one.
A927 JR $A91F Jump to A91F.
A929 POP DE Restore DE, BC, HL and IX from the stack.
A92A POP BC
A92B POP HL
A92C POP IX
A92E RET Return.
Prev: A852 Up: Map Next: A92F