Prev: 45858 Up: Map Next: 46014
45940: Routine at B374
Used by the routines at 46102 and 46154.
45940 LD L,(IX+5) L=*IX+5.
45943 LD A,(IX+6) A=*IX+6.
45946 AND %00000011 Keep only bits 0-1.
45948 OR %00111000 Set bits 3-5.
45950 LD H,A H=A.
45951 ADD HL,HL HL+=HL.
45952 LD E,(IX+1) E=*IX+1.
45955 LD D,(IX+2) D=*IX+2.
45958 LD C,(IX+3) C=*IX+3.
45961 LD B,(IX+4) B=*IX+4.
This entry point is used by the routines at 46481 and 48311.
Copier 45964 PUSH BC Stash BC, DE, HL and HL on the stack.
45965 PUSH DE
45966 PUSH HL
45967 PUSH HL
45968 LD B,(HL) B=*HL.
45969 INC HL Increment HL by one.
45970 LD H,(HL) H=*HL.
45971 SET 7,H Set bit 7 of H.
45973 LD L,B L=B.
45974 LD B,8 B=8.
45976 LD A,(HL) A=*HL.
45977 LD (DE),A Write A to *DE.
45978 INC HL Increment HL by one.
45979 INC D Increment D by one.
45980 DJNZ 45976 Decrease counter by one and loop back to 45976 until counter is zero.
45982 DEC C Decrease C by one.
45983 JR Z,46004 Jump to 46004 if {} is zero.
45985 LD A,E E+=32.
45986 ADD A,32
45988 LD E,A
45989 JR C,45995 Jump to 45995 if {} is lower.
45991 LD A,D D-=8.
45992 SUB 8
45994 LD D,A
45995 POP HL Restore HL from the stack.
45996 LD A,C A=C.
45997 LD BC,64 BC=0064.
46000 ADD HL,BC HL+=BC.
46001 LD C,A C=A.
46002 JR 45967 Jump to 45967.
46004 POP HL Restore HL, HL, DE and BC from the stack.
46005 POP HL
46006 POP DE
46007 POP BC
46008 INC E Increment E by one.
46009 INC L Increment L by two.
46010 INC L
46011 DJNZ Copier Decrease counter by one and loop back to Copier until counter is zero.
46013 RET Return.
Prev: 45858 Up: Map Next: 46014