+********************************************************************************
+*
+LINE DAC 0 DRAW A LINE FROM NEAR STARTING POINT
+ LDA* LINE X1
+ STA X1P
+ IRS LINE
+ LDA* LINE Y1
+ STA Y1P
+ IRS LINE
+ LDA* LINE X2
+ STA X2P
+ IRS LINE
+ LDA* LINE Y2
+ STA Y2P
+ IRS LINE TALLY RETURN ADDRESS
+ IRS LINE AGAIN FOR FORTRAN IV COMPATIBILITY
+*
+ LDA X
+ SUB* X1P
+ SPL SKIP IF SIGN PLUS
+ TCA TWO'S COMPLEMENT IF NEEDED
+ STA D1
+ LDA Y
+ SUB* Y1P
+ SPL
+ TCA
+ ADD D1
+ STA D1
+*
+ LDA X
+ SUB* X2P
+ SPL SKIP IF SIGN PLUS
+ TCA TWO'S COMPLEMENT IF NEEDED
+ STA D2
+ LDA Y
+ SUB* Y2P
+ SPL
+ TCA
+ ADD D2
+ CAS D1
+ JMP D2BG D2 IS BIGGER!
+ NOP
+*
+D1BG LDA* X2P DIFFERENCE 1 IS BIGGER, SO START AT POINT X2,Y2
+ STA XA
+ LDA* Y2P
+ STA YA
+ LDA* X1P
+ STA XB
+ LDA* Y1P
+ STA YB
+ JMP WOKI WORK!
+*
+D2BG LDA* X1P DIFFERENCE 2 IS BIGGER, SO START AT POINT X1,Y1
+ STA XA
+ LDA* Y1P
+ STA YA
+ LDA* X2P
+ STA XB
+ LDA* Y2P
+ STA YB
+*
+WOKI LDA X TEST IF STARTING POINT IST CURRENT POSITION
+ CAS XA
+ JMP MV1
+ JMP *+2
+ JMP MV1
+ LDA Y
+ CAS YA
+ JMP MV1
+ JMP *+2
+ JMP MV1
+ JMP NM1
+*
+MV1 CALL PL$PU MOVE TO THE STARTING POSITION
+ CALL PL$MV
+ DAC XA
+ DAC YA
+ DAC 0
+NM1 CALL PL$PD WE ARE AT BEGINNING OF LINE
+ CALL PL$MV
+ DAC XB
+ DAC YB
+ DAC 0
+ JMP* LINE END OF THE LINE :-)
+*
+*
+X1P DAC 0 ARGUMENT POINER TO X1
+Y1P DAC 0 ARGUMENT POINER TO Y1
+X2P DAC 0 ARGUMENT POINER TO X2
+Y2P DAC 0 ARGUMENT POINER TO Y2
+XA DEC 0 REAL FIRST POINT X COORDINATE
+YA DEC 0 REAL FIRST POINT Y COORDINATE
+XB DEC 0 REAL SECOND POINT X COORDINATE
+YB DEC 0 REAL SECOND POINT Y COORDINATE
+D1 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P1
+D2 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P2
+*
+*
+********************************************************************************