Prev: 664E Up: Map Next: 66F9
6650: Routine at 6650
Used by the routines at 6AAC, 6C00 and 6E18.
6650 LD HL,($7817) HL=*7817.
6653 LD A,($7819) Jump to 6667 if *7819 is not zero.
6656 AND A
6657 JR NZ,$6667
6659 LD A,L Jump to 6661 if L is not zero.
665A AND A
665B JR NZ,$6661
665D LD A,H H-=05.
665E SUB $05
6660 LD H,A
6661 DEC L Decrease L by one.
6662 LD ($7817),HL Write HL to *7817.
6665 LD A,$08 A=08.
6667 DEC A Decrease A by one.
6668 LD ($7819),A Write A to *7819.
666B LD D,H D=H.
666C LD E,L E=L.
666D LD B,$FF B=FF.
666F CALL $6564 Call 6564.
6672 LD HL,$4000 HL=4000 (screen buffer).
6675 LD D,H D=H.
6676 LD E,L E=L.
6677 EXX Switch to the shadow registers.
6678 LD A,(DE) A=*DE.
6679 INC E Increment E by one.
667A LD L,A L=A.
667B LD H,$1F H=1F.
667D ADD HL,HL HL+=HL.
667E ADD HL,HL HL+=HL.
667F EXX Switch to the shadow registers.
6680 LD B,$04 B=04.
6682 EXX Switch to the shadow registers.
6683 LD A,(HL) A=*HL.
6684 INC L Increment L by one.
6685 EXX Switch to the shadow registers.
6686 RRD RRD.
6688 INC L Increment L by one.
6689 RRD RRD.
668B INC L Increment L by one.
668C RRD RRD.
668E INC L Increment L by one.
668F RRD RRD.
6691 INC L Increment L by one.
6692 RRD RRD.
6694 INC L Increment L by one.
6695 RRD RRD.
6697 INC L Increment L by one.
6698 RRD RRD.
669A INC L Increment L by one.
669B RRD RRD.
669D INC L Increment L by one.
669E RRD RRD.
66A0 INC L Increment L by one.
66A1 RRD RRD.
66A3 INC L Increment L by one.
66A4 RRD RRD.
66A6 INC L Increment L by one.
66A7 RRD RRD.
66A9 INC L Increment L by one.
66AA RRD RRD.
66AC INC L Increment L by one.
66AD RRD RRD.
66AF INC L Increment L by one.
66B0 RRD RRD.
66B2 INC L Increment L by one.
66B3 RRD RRD.
66B5 INC L Increment L by one.
66B6 RRD RRD.
66B8 INC L Increment L by one.
66B9 RRD RRD.
66BB INC L Increment L by one.
66BC RRD RRD.
66BE INC L Increment L by one.
66BF RRD RRD.
66C1 INC L Increment L by one.
66C2 RRD RRD.
66C4 INC L Increment L by one.
66C5 RRD RRD.
66C7 INC L Increment L by one.
66C8 RRD RRD.
66CA INC L Increment L by one.
66CB RRD RRD.
66CD INC L Increment L by one.
66CE RRD RRD.
66D0 INC L Increment L by one.
66D1 RRD RRD.
66D3 INC L Increment L by one.
66D4 RRD RRD.
66D6 INC L Increment L by one.
66D7 RRD RRD.
66D9 INC L Increment L by one.
66DA RRD RRD.
66DC INC L Increment L by one.
66DD RRD RRD.
66DF INC L Increment L by one.
66E0 RRD RRD.
66E2 INC L Increment L by one.
66E3 RRD RRD.
66E5 LD L,E L=E.
66E6 INC H Increment H by two.
66E7 INC H
66E8 DJNZ $6682 Decrease counter by one and loop back to 6682 until counter is zero.
66EA LD A,$20 E+=20.
66EC ADD A,E
66ED LD E,A
66EE LD L,A L=A.
66EF JR NC,$66F3 Jump to 66F3 if {} is higher.
66F1 LD D,$48 D=48.
66F3 LD H,D H=D.
66F4 EXX Switch to the shadow registers.
66F5 DJNZ $6678 Decrease counter by one and loop back to 6678 until counter is zero.
66F7 EXX Switch to the shadow registers.
66F8 RET Return.
Prev: 664E Up: Map Next: 66F9