Routines |
Prev: 45858 | Up: Map | Next: 46014 |
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 |