|  | Routines | 
| Prev: 38980 | Up: Map | Next: 39081 | 
| 
Used by the routine at 38795.
 
 | ||||||||||||||||
| 39016 | LD A,B | Load (DIR-Y + INIT-Y) into A | ||||||||||||||
| 39017 | SUB D | Subtract initial y-coordinate to leave y-component of direction in A | ||||||||||||||
| 39018 | LD D,1 | Set D to 1 (because star is moving up) | ||||||||||||||
| 39020 | JR NC,39026 | If y-component is positive (i.e. star is moving up) then skip ahead to 39026 | ||||||||||||||
| 39022 | CPL | Negate negative y-direction component... | ||||||||||||||
| 39023 | INC A | ... | ||||||||||||||
| 39024 | LD D,255 | Set D to -1 (because star is moving down) | ||||||||||||||
| 39026 | LD B,A | Load magnitude of y-component into B | ||||||||||||||
| 39027 | LD A,C | Load (DIR-X + INIT-X) into A | ||||||||||||||
| 39028 | SUB E | Subtract initial x-coordinate to leave x-component of direction in A | ||||||||||||||
| 39029 | LD E,1 | Set D to 1 (because star is moving 1 pixel right) | ||||||||||||||
| 39031 | JR NC,39037 | If x-component is positive (i.e. star is moving right) then skip ahead to 39037 | ||||||||||||||
| 39033 | CPL | Negate negative x-direction component... | ||||||||||||||
| 39034 | INC A | ... | ||||||||||||||
| 39035 | LD E,255 | Set E to -1 (because star is moving 1 pixel left) | ||||||||||||||
| 39037 | LD C,A | Load magnitude of x-component into C | ||||||||||||||
| 39038 | LD (IX+3),D | Store y-direction at byte 4 | ||||||||||||||
| 39041 | LD (IX+2),E | Store x-direction at byte 3 | ||||||||||||||
| 39044 | LD (IX+5),D | Store y-direction at byte 6 | ||||||||||||||
| 39047 | LD (IX+4),E | Store x-direction at byte 5 | ||||||||||||||
| 39050 | LD A,C | Load magnitude of x-component into A | ||||||||||||||
| 39051 | CP B | If magnitude of y-component is less than or equal to magnitude of x-component... | ||||||||||||||
| 39052 | JR NC,39063 | ...then skip ahead to 39063 | ||||||||||||||
| 39054 | LD (IX+8),C | Store magnitude of x-component at byte 9 | ||||||||||||||
| 39057 | LD (IX+2),0 | Set byte 3 to zero | ||||||||||||||
| 39061 | JR 39073 | Skip ahead to 39073 | ||||||||||||||
| 39063 | OR C | If magnitude of x-component is zero... | ||||||||||||||
| 39064 | RET Z | ...then return | ||||||||||||||
| 39065 | LD (IX+8),B | Store magnitude of y-component at byte 9 | ||||||||||||||
| 39068 | LD B,C | Load magnitude of x-component into B | ||||||||||||||
| 39069 | LD (IX+3),0 | Store zero at byte 4 | ||||||||||||||
| 39073 | LD (IX+7),B | Store magnitude of x-/y-component at byte 8 | ||||||||||||||
| 39076 | LD A,B | Load magnitude of x-/y-component into A... | ||||||||||||||
| 39077 | LD (IX+6),A | ...and store at byte 7 | ||||||||||||||
| 39080 | RET | Return | ||||||||||||||
| Prev: 38980 | Up: Map | Next: 39081 |