Prev: 684B Up: Map Next: 68ED
6853: Routine at 6853
Used by the routine at 6800.
6853 LD IX,$68D7 IX=68D7.
Fetch the source address.
6857 LD L,(IX+$00) L=*IX+00.
685A LD H,(IX+$01) H=*IX+01.
Check for the terminator.
685D LD A,H Return if HL is zero.
685E OR L
685F RET Z
6860 LD C,(IX+$02) C=*IX+02.
6863 SRL C Shift C right.
Fetch the destination address.
6865 LD E,(IX+$03) E=*IX+03.
6868 LD D,(IX+$04) D=*IX+04.
686B LD A,$01 A=01.
686D LD ($68A5),A Write A to *68A5.
6870 SRL C Shift C right.
6872 PUSH BC Stash BC on the stack.
6873 CALL C,$688B Call 688B is lower.
6876 POP BC Restore BC from the stack.
6877 LD A,C A=C.
6878 AND A Jump to 6884 if A is zero.
6879 JR Z,$6884
687B LD A,($68A5) A=*68A5.
687E INC A Increment A by one.
687F LD ($68A5),A Write A to *68A5.
6882 JR $6870 Jump to 6870.
6884 LD DE,$0005 DE=0005.
6887 ADD IX,DE IX+=DE.
6889 JR $6857 Jump to 6857.
688B PUSH HL Stash HL on the stack.
688C LD A,(HL) A=*HL.
688D LD ($689A),A Write A to *689A.
6890 INC A Increment A by one.
6891 LD (DE),A Write A to *DE.
6892 INC HL Increment HL by one.
6893 INC DE Increment DE by one.
6894 LD A,(HL) A=*HL.
6895 LD (DE),A Write A to *DE.
6896 INC HL Increment HL by one.
6897 INC DE Increment DE by one.
6898 EX AF,AF' Exchange the AF register with the shadow AF register.
6899 LD B,$04 B=00.
689B PUSH BC Stash BC and DE on the stack.
689C PUSH DE
689D LD A,(HL) A=*HL.
689E INC HL Increment HL by one.
689F LD E,(HL) E=*HL.
68A0 INC HL Increment HL by one.
68A1 LD D,$00 D=00.
68A3 LD C,D C=D.
68A4 LD B,$04 B=00.
68A6 SRL E Shift E right.
68A8 RR D Rotate D right.
68AA SRL A Shift A right.
68AC RR C Rotate C right.
68AE DJNZ $68A6 Decrease counter by one and loop back to 68A6 until counter is zero.
68B0 LD B,A B=A.
68B1 LD A,D A=D.
68B2 LD ($68C9),A Write A to *68C9.
68B5 LD A,E A=E.
68B6 LD ($68C0),A Write A to *68C0.
68B9 POP DE Restore DE from the stack.
68BA LD A,(DE) A=*DE.
68BB OR B Set the bits from B.
68BC LD (DE),A Write A to *DE.
68BD INC DE Increment DE by one.
68BE LD A,(DE) A=*DE.
68BF OR %00000000 Set bits .
68C1 LD (DE),A Write A to *DE.
68C2 INC DE Increment DE by one.
68C3 LD A,(DE) A=*DE.
68C4 OR C Set the bits from C.
68C5 LD (DE),A Write A to *DE.
68C6 INC DE Increment DE by one.
68C7 LD A,(DE) A=*DE.
68C8 OR %00000000 Set bits .
68CA LD (DE),A Write A to *DE.
68CB DEC DE Decrease DE by one.
68CC POP BC Restore BC from the stack.
68CD DJNZ $689B Decrease counter by one and loop back to 689B until counter is zero.
68CF INC DE Increment DE by two.
68D0 INC DE
68D1 EX AF,AF' Exchange the AF register with the shadow AF register.
68D2 DEC A Decrease A by one.
68D3 JR NZ,$6898 Jump to 6898 until A is zero.
68D5 POP HL Restore HL from the stack.
68D6 RET Return.
68D7 DEFW Graphics_Ball Source.
68D9 DEFB $FF
68DA DEFW Graphics_Empty_1 Destination.
68DC DEFW Graphics_Bat Source.
68DE DEFB $10
68DF DEFW $7D4E Destination.
68E1 DEFW Graphics_BatBig Source.
68E3 DEFB $10
68E4 DEFW $828A Destination.
68E6 DEFW Graphics_BatGun Source.
68E8 DEFB $10
68E9 DEFW $81F2 Destination.
68EB DEFW $0000 Terminator.
Prev: 684B Up: Map Next: 68ED