Prev: A6CC Up: Map Next: A73A
A6E6: Routine at A6E6
Used by the routine at A461.
A6E6 LD DE,($9AC3) DE=*9AC3.
A6EA DEC D Decrease D by one.
A6EB LD HL,$7800 HL=7800.
A6EE LD B,$0A B=0A.
A6F0 PUSH BC Stash BC, HL and DE on the stack.
A6F1 PUSH HL
A6F2 PUSH DE
A6F3 LD A,D A=D.
A6F4 CP $00 Compare A with 00.
A6F6 JR C,$A709 Jump to A709 if A is less than 00.
A6F8 CP $18 Compare A with 18.
A6FA JR NC,$A709 Jump to A709 if A is greater than or equal to 18.
A6FC LD A,E A=E.
A6FD CP $19 Compare A with 19.
A6FF LD A,$08 A=08.
A701 JR C,$A706 Jump to A706 if A is less than 08.
A703 LD A,$21 A=21.
A705 SUB E A-=E.
A706 CALL $A714 Call A714.
A709 POP DE Restore DE and HL from the stack.
A70A POP HL
A70B LD BC,$0040 BC=0040.
A70E ADD HL,BC HL+=BC.
A70F INC D Increment D by one.
A710 POP BC Restore BC from the stack.
A711 DJNZ $A6F0 Decrease counter by one and loop back to A6F0 until counter is zero.
A713 RET Return.
A714 PUSH HL Stash HL on the stack.
A715 EX AF,AF' Exchange the AF register with the shadow AF register.
A716 CALL CalculateScreenBuffer Call CalculateScreenBuffer.
A719 EX AF,AF' Exchange the shadow AF register with the AF register.
A71A EX DE,HL Exchange the DE and HL registers.
A71B POP HL Restore HL from the stack.
A71C DEC E Decrease E by one.
A71D LD B,$08 B=08.
A71F PUSH BC Stash BC and DE on the stack.
A720 PUSH DE
A721 LD C,A C=A.
A722 LD B,$00 B=00.
A724 LDIR LDIR.
A726 CP $08 Compare A with 08.
A728 JR Z,$A734 Jump to A734 if A is equal to 08.
A72A PUSH AF Stash AF on the stack.
A72B LD C,A C=A.
A72C LD A,$08 A=08.
A72E SUB C A-=C.
A72F LD B,$00 B=00.
A731 LD C,A C=A.
A732 POP AF Restore AF from the stack.
A733 ADD HL,BC HL+=BC.
A734 POP DE Restore DE from the stack.
A735 INC D Increment D by one.
A736 POP BC Restore BC from the stack.
A737 DJNZ $A71F Decrease counter by one and loop back to A71F until counter is zero.
A739 RET Return.
Prev: A6CC Up: Map Next: A73A