(ID) **PARAB -- SPS II-D PLOTTER PARAB ROUTINE *PRINT SYMBOL TABLE *LIST PRINTER *ASSEMBLE RELOCATABLE *STORE RELOADABLE *NAME PARAB PARAB -- SPS II-D PLOTTER PARAB ROUTINE PAGE 1 RETURN 00005R ORIENT 00338R HPLOOP 00650R HALFCK 01970R CMD 02090R DELTA 02040R DRAW 00770R DRAW2 00794R END 02097R FAC 02492 FIX 03854 HALF 02041R HEAD 00100R HPEND 01694R MOVE 02090R P 02045R PARAB 00006R PENDN 02094R PENUP 02092R PROD 00099 P2 02049R P4 02053R R 02055R REG1 01290R REG2 01542R REG3 01786R RXY 02056R SWR2 01454R TOFAC 03408 WRCMD 01242R X 02060R XB 02068R XD 02074R XPD 02078R XPDE 01018R XPDH 01118R XPDL 00886R XRETN 02084R Y 02064R YB 02072R YD 02076R YPD 02080R YRETN 02088R PARAB -- SPS II-D PLOTTER PARAB ROUTINE PAGE 1 00010********************************************************************* 00020* PARABOLA SUBROUTINE 00030********************************************************************* 00040* SUBROUTINE TO DRAW A PARABOLA ON THE 1627 PLOTTER. 00050* CALLABLE FROM FORTRAN AS-- 00060* 00070* CALL PARAB(XB, YB) 00080* 00090* THE VERTEX (THE /NOSE/ OF THE PARABOLA) IS ASSUMED TO BE AT THE 00100* CURRENT PEN LOCATION. (XB,YB) ARE THE SIGNED OFFSETS FROM THE 00110* VERTEX FOR EITHER OF THE BOUNDS (THE TAIL ENDS OF THE PARABOLA) 00120* FROM THE VERTEX. THESE OFFSETS ARE FLOATING-POINT NUMBERS AND MUST 00130* BE EXPRESSED IN /INCHES/. IF THE VALUES OF BOTH XB AND YB ARE ZERO, 00140* THE PARABOLA HAS NO SIZE, AND THE ROUTINE SIMPLY EXITS. 00150* 00160* THIS ROUTINE IS DESIGNED FOR FORTRAN 4-DIGIT INTEGERS AND 8-DIGIT 00170* FLOATING-POINT MANTISSAS. LARGER MAGNITUDES WILL REQUIRE DETAILED 00180* CHANGES TO THE CODE. THEREFORE, THE LARGEST (XB,YB) PARAMETER 00190* VALUES SUPPORTED ARE +/- 99.99 INCHES (9999 PLOTTER STEPS) EACH. 00200* 00210* ONE LEG OF THE PARABOLA WILL BE DRAWN FROM VERTEX TO TAIL, THE PEN 00220* WILL RAISE AND RETURN TO THE VERTEX, THEN THE OTHER TAIL WILL BE 00230* DRAWN, AND FINALLY THE PEN WILL RAISE AND RETURN TO THE VERTEX, IN 00240* ITS ORIGINAL POSITION. 00250* 00260* THE SIGNS OF XB AND YB DETERMINE THE PARABOLA ORIENTATION, THUS -- 00270* +XB,+YB PARABOLA OPEN END IS TOWARDS +X 00280* +XB,-YB PARABOLA OPEN END IS TOWARDS -Y 00290* -XB,-YB PARABOLA OPEN END IS TOWARDS -X 00300* -XB,+YB PARABOLA OPEN END IS TOWARDS +Y 00310* 00320* VARIABLES -- 00330* D CURRENT ERROR TERM 00340* HALF INDICATES HALF-PARABOLAS ALREADY DRAWN, 0/1 00350* P INTEGERIZED P FACTOR (TWICE THE PARABOLA FOCAL LENGTH) 00360* P2 P*2 00370* P4 P*4 00380* R CURRENT PARABOLA REGION, 1=Y LSS P, 2=Y GEQ P, 3=RTN TO VERT 00390* RXY PARABOLA IS ROTATED, SO DIRECTIONS WILL BE SWAPPED, 0/1 00400* X CURRENT X COORDINATE 00410* Y CURRENT Y COORDINATE 00420* XB INTEGERIZED X COORDINATE BOUND, ABSOLUTE VALUE, CONVERTED 00430* FROM INCHES TO 0.01-INCH PLOTTER STEPS 00440* YB INTEGERIZED Y COORDINATE BOUND, ABSOLUTE VALUE, CONVERTED 00450* FROM INCHES TO 0.01-INCH PLOTTER STEPS 00460* XD X STEPPING DIRECTION, +1/-1 00470* YD Y STEPPING DIRECTION, +1/-1 00480* XPD CURRENT X PEN DIRECTION, +1/-1 00490* YPD CURRENT Y PEN DIRECTION, +1/-1 00500* XRETN NUMBER OF X STEPS TO RETURN PEN TO VERTEX 00510* YRETN NUMBER OF Y STEPS TO RETURN PEN TO VERTEX 00520* 00530* ADAPTED FROM-- 00540* /EFFICIENT INTEGER ALGORITHMS FOR THE GENERATION OF 00550* CONIC SECTIONS/ 00560* A. AGATHOS, T. THEOHARIS AND A. BOEHM 00570* DEPARTMENT OF INFORMATICS, UNIVERSITY OF ATHENS, 00580* PANEPISTIMIOUPOLIS, TYPA BUILDINGS, 157 71 ATHENS, GREECE 00590* COMPUT. + GRAPHICS, VOL. 22. NO. 5, PP. 621-628. 1998 00600* 00610* 2024-03-08 P.KIMPEL 00620* ORIGINAL VERSION, BASED ON THE FORTRAN II-D PROTOTYPE. 01000********************************************************************* 01010 HEAD DS ,*+101,, STANDARD FORTRAN ROUTINE HEADING 00100 00000 01020 DC 6,987898,5-HEAD, 0009N 00006 01030 DAC 6,PARAB ,7-HEAD, 0009L 00012 01040 DVLC 22-HEAD,5,END-1,2,08,2,04,5,PARAB-6,5,0,30,0 0007Q 00049 01050 DSC 17,0,0, 00000 00017 01060 DORG HEAD-100,,, 00000 01070* 01080 DS 5,,, RETURN/PARAMETER-BLOCK ADDR-1 00004 00005 01090* 01100 PARAB AM RETURN,5,10, ADVANCE RETURN TO XB ADDR 00006 J1 00005 000-5 01110 TF *+23,-RETURN,, SET XB PARAM ADDR IN BTM NEXT 00018 KO 00041 0000N 01120 BTM TOFAC,*-*,, FETCH XB VALUE TO FAC 00030 17 03408 -0000 01130 AM FAC,2,10, ADD 2 TO XB EXPONENT (*100) 00042 11 02492 000-2 01140 BTM FIX,FAC,, CONVERT XB*100 TO INTEGER 00054 17 03854 -2492 01150 SF FAC-3,,, SET FAC LENGTH TO 4 DIGITS 00066 32 02489 00000 01160 TF XB,FAC,, TRANSFER TO LOCAL XB AS STEPS 00078 K6 02068 02492 01170 AM RETURN,5,10, ADVANCE RETURN TO YB ADDR 00090 J1 00005 000-5 01180* 01190 TF *+23,-RETURN,, SET YB PARAM ADDR IN BTM NEXT 00102 KO 00125 0000N 01200 BTM TOFAC,*-*,, FETCH YB VALUE TO FAC 00114 17 03408 -0000 01210 AM FAC,2,10, ADD 2 TO YB EXPONENT (*100) 00126 11 02492 000-2 01220 BTM FIX,FAC,, CONVERT YB*100 TO INTEGER 00138 17 03854 -2492 01230 SF FAC-3,,, SET FAC LENGTH TO 4 DIGITS 00150 32 02489 00000 01240 TF YB,FAC,, TRANSFER TO LOCAL YB AS STEPS 00162 K6 02072 02492 01250 AM RETURN,1,10, ADVANCE PARAM ADDR TO RETURN LOC 00174 J1 00005 000-1 01260* 01270* DETERMINE IF SIGNS OF XA AND XB ARE DIFFERENT. IF SO, 01280* PARABOLA IS ROTATED AND DIRECTIONS NEED TO BE SWAPPED. 01290* IF XB=YB=0, THE PARABOLA HAS NO SIZE, SO JUST EXIT 01300* WITHOUT DRAWING ANYTHING. 01310* 01320 TDM RXY,0,, RESET THE ROTATION FLAG 00186 J5 02056 00000 01330 CM XB,0,10, 00198 J4 02068 000-0 01340 BNL *+44,,, IF XB LSS 0, CHECK YB LSS 0 00210 M6 00254 01300 01350 CM YB,0,10, 00222 J4 02072 000-0 01360 BL ORIENT,,, XB LSS 0, YB LSS 0, NO ROTATION 00234 M7 00338 01300 01370 B7 *+44,,, XB LSS 0, YB GEQ 0, ROTATE 00246 M9 00290 00000 01380 CM YB,0,10, 00254 J4 02072 000-0 01390 BH ORIENT,,, XB GTR 0, YB GTR 0, NO ROTATION 00266 M6 00338 01100 01400 BE -RETURN,,, XB=YB=0, SO EXIT, ELSE ROTATE 00278 M6 0000N 01200 01410* 01420 TDM RXY,1,, SET THE ROTATION FLAG 00290 J5 02056 00001 01430 TF PROD,XB,, SWAP COORDINATES 00302 2O 00099 02068 01440 TF XB,YB,, 00314 KO 02068 02072 01450 TF YB,PROD,, 00326 K6 02072 00099 01460* 01470* DETERMINE PARABOLA ORIENTATION 01480* 01490 ORIENT TFM XD,1,10, INITIALIZE X DIRECTION 00338 J6 02074 000-1 01500 TFM YD,1,10, INITIALIZE Y DIRECTION 00350 J6 02076 000-1 01510 CM XB,0,10, TEST XB SIGN 00362 J4 02068 000-0 01520 BNL *+24,,, IF XB LSS 0, 00374 M6 00398 01300 01530 TFM XD,-1,10, SET XB INCREMENT TO -1 00386 J6 02074 000-J 01540 CM YB,0,10, TEST YB SIGN 00398 J4 02072 000-0 01550 BNL *+24,,, IF YB LSS 0, 00410 M6 00434 01300 01560 TFM YD,-1,10, SET YB INCREMENT TO -1 00422 J6 02076 000-J 01570 CF XB,,, ABS(XB) 00434 L3 02068 00000 01580 CF YB,,, ABS(YB) 00446 L3 02072 00000 01590* 01600* INITIALIZE STEPPING ALGORITHM 01610* 01620 M YB,YB,, YB**2 TO PROD AREA 00458 KL 02072 02072 01630 SF PROD-7,,, LIMIT PRODUCT TO 8 DIGITS 00470 32 00092 00000 01640 TF PROD-20,PROD,, MOVE PRODUCT TO PREPARE FOR LD 00482 26 00079 00099 01650 LD PROD,PROD-20,, LOAD DIVIDEND 00494 28 00099 00079 01660 D PROD-3,XB,, DIVIDE BY XB TO 4-DIGIT QUOTIENT 00506 2R 00096 02068 01670 TF PROD-20,PROD-4,, MOVE QUOTIENT TO PREPARE FOR LD 00518 26 00079 00095 01700 AM PROD-20,1,10, ADD 1 FOR ROUNDING *** 00530 11 00079 000-1 01710 LD PROD,PROD-20,, LOAD DIVIDEND FOR NEXT DIVIDE 00542 28 00099 00079 01720 DM PROD-3,2,10, DIVIDE BY 2 TO 4-DIGIT QUOTIENT 00554 19 00096 000-2 01760 SF PROD-5,,, LIMIT QUOTIENT TO 4 DIGITS 00566 32 00094 00000 01770 TF P,PROD-2,, MOVE QUOTIENT TO P 00578 K6 02045 00097 01780 TF P2,P,, P2 = 2*P 00590 KO 02049 02045 01790 A P2,P,, 00602 KJ 02049 02045 01800 TF P4,P2,, P4 = 2*P2 00614 KO 02053 02049 01810 A P4,P2,, 00626 KJ 02053 02049 01820 TDM HALF,0,, SET TO FIRST HALF OF PARABOLA 00638 J5 02041 00000 01830* 01840* HALF-PARABOLA DRAWING LOOP, STARTING AT VERTEX 01850* 01860 HPLOOP TFM X,0,8, X=0 00650 J6 02060 0-000 01870 TFM Y,0,8, Y=0 00662 J6 02064 0-000 01880 TFM DELTA,1,8, DELTA=1-P 00674 J6 02040 0-001 01890 S DELTA,P,, 00686 KK 02040 02045 01900 TFM R,1,10, SET TO REGION 1 00698 J6 02055 000-1 01910 TFM XPD,0,10, XPD=0 00710 J6 02078 000-0 01920 TFM YPD,0,10, YPD=0 00722 J6 02080 000-0 01930 TFM XRETN,0,8, XRETN=0 00734 J6 02084 0-000 01940 TFM YRETN,0,8, YRETN=0 00746 J6 02088 0-000 01950 WNPT PENDN,,, LOWER THE PEN 00758 L8 02094 00200 01960* 01970* DRAW CURRENT MOVE 01980* 01990 DRAW C X,XB,, CHECK IF BOUND REACHED 00770 KM 02060 02068 02000 BH HPEND,,, BR IF YES, X GTR XB 00782 M6 01694 01100 02010* 02020 DRAW2 BD *+20,RXY,, BR IF ROTATED 00794 ML 00814 02056 02030 B7 *+44,,, BR IF NOT ROTATED 00806 M9 00850 00000 02040 TF PROD,XPD,, IS ROTATED, SO SWAP STEPS 00814 2O 00099 02078 02050 TF XPD,YPD,, 00826 KO 02078 02080 02060 TF YPD,PROD,, 00838 K6 02080 00099 02070* DETERMINE PLOTTER COMMAND 02080 CM XPD,0,10, TEST X DIRECTION 00850 J4 02078 000-0 02090 BE XPDE,,, BR IF XPD=0 00862 M6 01018 01200 02100 BH XPDH,,, BR IF XPD GTR 0 00874 M6 01118 01100 02110* XPD LSS 0 CASES 02120 XPDL AM XRETN,1,10, INCREMENT X RETURN COUNT 00886 J1 02084 000-1 02130 CM YPD,0,10, TEST Y DIRECTION 00898 J4 02080 000-0 02140 BE *+56,,, XPD LSS 0, YPD=0 00910 M6 00966 01200 02150 BH *+64,,, XPD LSS 0, YPD GTR 0 00922 M6 00986 01100 02160 TDM CMD,6,, XPD LSS 0, YPD LSS 0 00934 J5 02090 00006 02170 AM YRETN,1,10, INCREMENT Y RETURN COUNT 00946 J1 02088 000-1 02180 B7 WRCMD,,, 00958 M9 01242 00000 02190 TDM CMD,7,, XPD LSS 0, YPD=0 00966 J5 02090 00007 02200 B7 WRCMD,,, 00978 M9 01242 00000 02210 TDM CMD,8,, XPD LSS 0, YPD GTR 0 00986 J5 02090 00008 02220 AM YRETN,1,10, INCREMENT Y RETURN COUNT 00998 J1 02088 000-1 02230 B7 WRCMD,,, 01010 M9 01242 00000 02240* XPD = 0 CASES 02250 XPDE CM YPD,0,10, TEST Y DIRECTION 01018 J4 02080 000-0 02260 BE WRCMD+12,,, XPD=YPD=0, NO MOVEMENT, BYPASS IO 01030 M6 01254 01200 02270 BH *+44,,, YPD GTR 0 01042 M6 01086 01100 02280 TDM CMD,5,, XPD=0, YPD LSS 0 01054 J5 02090 00005 02290 AM YRETN,1,10, INCREMENT Y RETURN COUNT 01066 J1 02088 000-1 02300 B7 WRCMD,,, 01078 M9 01242 00000 02310 TDM CMD,1,, XPD=0, YPD GTR 0 01086 J5 02090 00001 02320 AM YRETN,1,10, INCREMENT Y RETURN COUNT 01098 J1 02088 000-1 02330 B7 WRCMD,,, 01110 M9 01242 00000 02340* XPD GTR 0 CASES 02350 XPDH AM XRETN,1,10, INCREMENT X RETURN COUNT 01118 J1 02084 000-1 02360 CM YPD,0,10, TEST Y DIRECTION 01130 J4 02080 000-0 02370 BE *+56,,, 01142 M6 01198 01200 02380 BH *+64,,, 01154 M6 01218 01100 02390 TDM CMD,4,, XPD GTR 0, YPD LSS 0 01166 J5 02090 00004 02400 AM YRETN,1,10, INCREMENT Y RETURN COUNT 01178 J1 02088 000-1 02410 B7 WRCMD,,, 01190 M9 01242 00000 02420 TDM CMD,3,, XPD GTR 0, YPD=0 01198 J5 02090 00003 02430 B7 WRCMD,,, 01210 M9 01242 00000 02440 TDM CMD,2,, XPD GTR 0, YPD GTR 0 01218 J5 02090 00002 02450 AM YRETN,1,10, INCREMENT Y RETURN COUNT 01230 J1 02088 000-1 02460* 02470 WRCMD WNPT CMD,,, WRITE COMMAND DIGIT TO PLOTTER 01242 L8 02090 00200 02480* 02490* GO OR RETURN TO APPROPRIATE REGION OF DRAWING 02500* 02510 CM R,2,10, TEST REGION NUMBER 01254 J4 02055 000-2 02520 BE REG2,,, REGION=2 01266 M6 01542 01200 02530 BH REG3,,, REGION=3 (RETURN TO VERTEX) 01278 M6 01786 01100 02540* 02550* STEPPING FOR REGION 1 OF A HALF-PARABOLA - Y LSS P 02560* 02570 REG1 TFM XPD,0,10, NO X MOVEMENT BY DEFAULT 01290 J6 02078 000-0 02580 C Y,P,, 01302 KM 02064 02045 02590 BNL SWR2,,, BR Y GEQ P, SWITCH TO REGION 2 01314 M6 01454 01300 02600 CM DELTA,0,10, TEST SIGN OF DELTA 01326 J4 02040 000-0 02610 BL *+48,,, BR DELTA LSS 0 01338 M7 01386 01300 02620 AM X,1,10, INCREMENT X OFFSET 01350 J1 02060 000-1 02630 S DELTA,P2,, DELTA -= P2 01362 KK 02040 02049 02640 TF XPD,XD,, SET X DIRECTION 01374 KO 02078 02074 02650 AM Y,1,10, INCREMENT Y OFFSET 01386 J1 02064 000-1 02660 A DELTA,Y,, 01398 KJ 02040 02064 02670 A DELTA,Y,, 01410 KJ 02040 02064 02680 AM DELTA,1,10, DELTA += Y*2+1 01422 J1 02040 000-1 02690 TF YPD,YD,, SET Y DIRECTION 01434 KO 02080 02076 02700 B7 DRAW,,, OUTPUT THE MOVEMENT 01446 M9 00770 00000 02710* 02720 SWR2 TFM R,2,10, SWITCH TO REGION 2 01454 J6 02055 000-2 02730 CM DELTA,1,10, 01466 J4 02040 000-1 02740 BNE *+32,,, IF DELTA=1 01478 M7 01510 01200 02750 S DELTA,P4,, DELTA = 1-P4 01490 KK 02040 02053 02760 B7 DRAW,,, OUTPUT THE LAST MOVEMENT 01502 M9 00770 00000 02770 TFM DELTA,1,8, ELSE 01510 J6 02040 0-001 02780 S DELTA,P2,, DELTA = 1-P2 01522 KK 02040 02049 02790 B7 DRAW,,, OUTPUT THE LAST MOVEMENT 01534 M9 00770 00000 02800* 02810* STEPPING FOR REGION 2 OF A HALF-PARABOLA - Y GEQ P 02820* 02830 REG2 TFM YPD,0,10, NO Y MOVEMENT BY DEFAULT 01542 J6 02080 000-0 02840 CM DELTA,0,10, 01554 J4 02040 000-0 02850 BH *+84,,, BR DELTA GTR 0 01566 M6 01650 01100 02860 AM Y,1,10, INCREMENT Y OFFSET 01578 J1 02064 000-1 02870 A DELTA,Y,, 01590 KJ 02040 02064 02880 A DELTA,Y,, 01602 KJ 02040 02064 02890 A DELTA,Y,, 01614 KJ 02040 02064 02900 A DELTA,Y,, DELTA += Y*4 01626 KJ 02040 02064 02910 TF YPD,YD,, SET Y DIRECTION 01638 KO 02080 02076 02920 AM X,1,10, DELTA GTR 0, INCREMENT X OFFSET 01650 J1 02060 000-1 02930 S DELTA,P4,, DELTA -= P4 01662 KK 02040 02053 02940 TF XPD,XD,, SET X DIRECTION 01674 KO 02078 02074 02950 B7 DRAW,,, OUTPUT THE MOVEMENT 01686 M9 00770 00000 02960* 02970* END OF HALF PARABOLA - RAISE PEN AND RETURN TO VERTEX 02980* 02990 HPEND WNPT PENUP,,, RAISE PEN 01694 L8 02092 00200 03000 TFM R,3,10, SET REGION TO 3 (TO VERTEX) 01706 J6 02055 000-3 03010 BD *+44,RXY,, BR IF COORDINATES ROTATED 01718 ML 01762 02056 03020 TF X,XRETN,, SET X COUNT 01730 KO 02060 02084 03030 TF Y,YRETN,, SET Y COUNT 01742 KO 02064 02088 03040 B7 REG3,,, 01754 M9 01786 00000 03050 TF X,YRETN,, SET COUNTS SWAPPED 01762 KO 02060 02088 03060 TF Y,XRETN,, 01774 KO 02064 02084 03070* STEPPING FOR RETURN TO VERTEX 03080 REG3 TFM YPD,0,10, NO Y MOVEMENT BY DEFAULT 01786 J6 02080 000-0 03090 CM Y,0,10, TEST Y 01798 J4 02064 000-0 03100 BH *+44,,, BR IF Y GTR 0 01810 M6 01854 01100 03110 CM X,0,10, TEST X 01822 J4 02060 000-0 03120 BNH HALFCK,,, BR IF X LEQ 0 01834 M7 01970 01100 03130 B7 *+44,,, 01846 M9 01890 00000 03140 SM Y,1,10, DECREMENT Y COUNT 01854 J2 02064 000-1 03150 TFM YPD,0,10, YPD = -YD 01866 J6 02080 000-0 03160 S YPD,YD,, 01878 KK 02080 02076 03170 TFM XPD,0,10, NO X MOVEMENT BY DEFAULT 01890 J6 02078 000-0 03180 CM X,0,10, TEST SIGN OF X 01902 J4 02060 000-0 03190 BNH DRAW2,,, MOVE PEN, DO NOT CHECK BOUNDS 01914 M7 00794 01100 03200 SM X,1,10, DECREMENT X COUNT 01926 J2 02060 000-1 03210 TFM XPD,0,10, XPD = -XD 01938 J6 02078 000-0 03220 S XPD,XD,, 01950 KK 02078 02074 03230 B7 DRAW2,,, MOVE PEN, DO NOT CHECK BOUNDS 01962 M9 00794 00000 03240* 03250* DETERMINE IF BOTH PARABOLA HALVES HAVE BEEN DRAWN 03260* 03270 HALFCK BD -RETURN,HALF,, RETURN IF BOTH HALVES ARE DONE 01970 ML 0000N 02041 03280 TDM HALF,1,, ELSE SET TO SECOND HALF 01982 J5 02041 00001 03290 TFM PROD,0,10, 01994 16 00099 000-0 03300 S PROD,YD,, PROD = -YD 02006 2K 00099 02076 03310 TF YD,PROD,, YD = -YD 02018 K6 02076 00099 03320 B7 HPLOOP,,, BRANCH TO DRAW THE OTHER HALF 02030 M9 00650 00000 03330* 03340 DELTA DS 4,,, CURRENT LINE ERROR TERM 02040 00004 03350 HALF DSS 1,,, 0=FIRST, 1=SECOND HALF OF PARABOLA 02041 00001 03360 P DS 4,,, POINT P OFFSET (REGION CHANGE) 02045 00004 03370 P2 DS 4,,, P*2 02049 00004 03380 P4 DS 4,,, P2*2 (=P*4) 02053 00004 03390 R DS 2,,, REGION NUMBER 02055 00002 03400 RXY DSS 1,,, 1=COORDINATES ARE ROTATED 02056 00001 03410 X DS 4,,, CURRENT X COORDINATE 02060 00004 03420 Y DS 4,,, CURRENT Y COORDINATE 02064 00004 03430 XB DS 4,,, INTEGER XB OFFSET, PLOTTER STEPS 02068 00004 03440 YB DS 4,,, INTEGER YB OFFSET, PLOTTER STEPS 02072 00004 03450 XD DS 2,,, X STEPPING DIRECTION +/- 1 02074 00002 03460 YD DS 2,,, Y STEPPING DIRECTION +/- 1 02076 00002 03470 XPD DS 2,,, CURRENT PEN X-DIRECTION, +/- 1 02078 00002 03480 YPD DS 2,,, CURRENT PEN Y-DIRECTION, +/- 1 02080 00002 03490 XRETN DS 4,,, NR X STEPS TO RETURN TO VERTEX 02084 00004 03500 YRETN DS 4,,, NR Y STEPS TO RETURN TO VERTEX 02088 00004 03510* 03520 MOVE DC 2,,, CURRENT PLOTTER MOVE 02090 00002 03530 CMD DS 1,MOVE,, CURRENT PLOTTER COMMAND 02090 00001 03540 DSC 1,@,, RM TO END PLOTTER COMMAND 02091 00001 03550 PENUP DSC 2,9@,, RAISE PEN COMMAND 02092 00002 03560 PENDN DSC 2,0@,, LOWER PEN COMMAND 02094 00002 03570* 03580 RETURN DS 5,PARAB-1,, ADDR OF RETURN/PARAMETER-BLOCK 00005 00005 03590 PROD DS ,99,, ADDRESS OF PRODUCT AREA 00099 00000 03600 FAC DS ,2492,, ADDRESS OF FORTRAN ACCUMULATOR 02492 00000 03610 TOFAC DS ,3408,, ADDRESS OF ACCUMULATOR LOADER 03408 00000 03620 FIX DS ,3854,, ADDRESS OF FLOAT-TO-INT ROUTINE 03854 00000 03630 END DAC 1, ,, ROUTINE ENDING RM SENTINEL 02097 00002 03640 DC 1,@,END-1, PLANT THE RM IN THE DAC 02096 00001 03650 DEND 00000 02098 CORE POSITIONS REQUIRED PLUS RELOCATION INCREMENT 00323 STATEMENTS PROCESSED