0100 ; DRAWTO ROUTINE BY JEFF BRENNER›0110 ;›0120 ; BASED ON DDA BASIC ALGORITHM›0130 ; DETAILED BY MIKE HIGGINS,›0140 ; "FAST LINE-DRAWING TECHNIQUE,"›0150 ; BYTE MAGAZINE, (AUGUST 1981),›0160 ; pp. 414-416›0170 ;›0180 ; FORM: A=USR(DRAWTO,X,Y)›0190 ;›0200 DELTAX = $D4›0210 DELTAY = $D5›0220 ADDX2 = $D6›0230 ADDY2 = $D7›0240 ADDX = $D8›0250 ADDY = $D9›0260 SLOPECALC = $DA›0270 COUNT = $DB›0280 OLDX = $CE›0290 OLDY = $CF›0300 DRAWTOX = 97›0310 DRAWTOY = 96›0320 ;›0330 *= $0600 ;RELOCATABLE›0340 ;›0350 DRAWTO PLA ›0360 PLA ›0370 PLA ›0380 BMI RET1›0390 CMP #40 ;HORIZ POS>39 OR <0?›0400 BCS RET1›0410 ADC #24›0420 STA DRAWTOX ;X TO DRAW TO›0430 PLA ›0440 PLA ›0450 CMP #0›0460 BCC RET2›0470 CMP #192 ;VERT POS>191 OR <0?›0480 BCS RET2›0490 ADC #32›0500 STA DRAWTOY ;Y TO DRAW TO›0510 LDX #0›0520 STX ADDX2›0530 STX ADDY›0540 INX ›0550 STX COUNT›0560 STX ADDY2›0570 STX ADDX›0580 LDA DRAWTOX›0590 SEC ›0600 SBC OLDX ;DRAWTOX-OLDX›0610 BCS SKIP1›0620 DEC ADDX›0630 DEC ADDX›0640 LDA OLDX›0650 SEC ›0660 SBC DRAWTOX›0670 SKIP1 STA DELTAX›0680 LDA DRAWTOY›0690 SEC ›0700 SBC OLDY ;DRAWTOY-OLDY›0710 BCS SKIP2›0720 DEC ADDY2›0730 DEC ADDY2›0740 LDA OLDY›0750 SEC ›0760 SBC DRAWTOY›0770 SKIP2 STA DELTAY›0780 LDA DELTAX›0790 CMP DELTAY›0800 BCS SKIP3›0810 LDX DELTAX ;DELTAXDELTAX? DONE›1320 BCC RETURN›1330 JSR $FFFF ;REPLACED WITH PLOT ADDR›1340 SEC ›1350 BCS MAIN›1360 RETURN LDA DRAWTOY›1370 STA OLDY ;PLOT LAST POINT›1380 LDA DRAWTOX›1390 STA OLDX›1400 JMP $FFFF ;PLOT ROUTINE›1410 .END ›