![]() |
Unused |
| Prev: 38961 | Up: Map | Next: 39016 |
|
This routine draws a line from (C, B) to (E, D).
|
||||
| 38980 | LD (23677),DE | Load contents of DE into coordinate storage (start point of line) | ||
| 38984 | LD A,B | Subtract y-coordinate of start of line from y-coordinate of end of line... | ||
| 38985 | SUB D | ...to get delta-y | ||
| 38986 | LD D,1 | Set direction of vertical change to +1 (upward) | ||
| 38988 | JR NC,38994 | If delta-y is positive (i.e. upward) then skip ahead to 38994 | ||
| 38990 | CPL | Multiply delta-y by -1 (downward) to get absolute magnitude... | ||
| 38991 | INC A | ... | ||
| 38992 | LD D,255 | Set direction of vertical change to -1 (downward) | ||
| 38994 | LD B,A | Load B with magnitude of difference in y-coordinate between start and end of line | ||
| 38995 | LD A,C | Subtract x-coordinate of start of line from y-coordinate of end of line... | ||
| 38996 | SUB E | ...to get delta-x | ||
| 38997 | LD E,1 | Set direction of horizontal change to +1 (rightward) | ||
| 38999 | JR NC,39005 | If delta-x is positive (i.e. rightward) then skip ahead to 39005 | ||
| 39001 | CPL | Multiply delta-x by -1 (leftward) to get absolute magnitude... | ||
| 39002 | INC A | ... | ||
| 39003 | LD E,255 | Set direction of vertical change to -1 (leftward) | ||
| 39005 | LD C,A | Load C with magnitude of difference in x-coordinate between start and end of line | ||
| 39006 | EXX | Switch registers | ||
| 39007 | PUSH HL | Store HL | ||
| 39008 | EXX | Switch registers | ||
| 39009 | CALL 9402 | Draw a line (ROM routine) | ||
| 39012 | EXX | Switch registers | ||
| 39013 | POP HL | Restore HL | ||
| 39014 | EXX | Switch registers | ||
| 39015 | RET | Return | ||
| Prev: 38961 | Up: Map | Next: 39016 |