ARGAD 0602 BLKSWR 1045 BLOOP 0637 DCAI 3400OP EGGSIT 1156 FKIT 0646 GETARG 0603 GETCAL 1141 GETON 0635 GETSTR 0626 GRUMB2 1020 GRUMB3 1122 GTCDF1 0604 GTCDF2 0613 GTCNT 0616 GTDONE 0622 GTLOOP 0620 GTPARS 0617 IER 1052 IERAD 1053 JMPI 5400OP NOBLKS 1043 NOWD 1047 PASS0 0746 PASS1 0747 PASS2 0755 PLAXI 0730EXT PLBADR 1046 PLBUF 0200 PLCLO 1032EXT PLCUR 0601 PLETE 0674EXT PLGO2 0720 PLNENT 0600 PLNUM 0703EXT PLOPE 1000EXT PLOT 0662EXT PLOTGO 0671 PLSTR 0712EXT PLTTY 0737EXT PP1 0724 PREVNT 1044 PTBFOK 1100 PTCT 1050 PTLOOP 1073 PTOK 1065 PTOUT 1054 PTXOK 1136 STRTBL 1042 STUFIT 0652 TADI 1400OP TEROR 1134 TERR 1051 UNIT 1041 WTAPE 0000EXT / / PLOTTER UTILITY ROUTINES FOR FORTRAN. / / ROUTINES TO GENERATE A PLOT TAPE. / / / (1) GENERAL PEN MOVEMENT COMMAND. / CALL PLOT(IX,IY,IZ) / / (2) PRINT A SINGLE ASCII LETTER. / CALL PLETER(IX,IY,IFACT,ITHETA,ILETR) / (3) PRINT A SIGNED INTEGER. / CALL PLNUM(IX,IY,IFACT,ITHETA,INUMB) / / (4) PRINT AN ASCII STRING. / CALL PLSTRI(IX,IY,IFACT,ITHETA,IWDS,IARRAY) / / (5) GENERAL AXIS PLOTTING ROUTINE. / CALL PLAXIS(IX,IY,ID,IN,ITL,ITHETA,ISI,IMIN,ISS, / ISL,INWDS,ILABL) / / (6) TELETYPE MESSAGE GENERATION ROUTINE. / CALL PLTTY(IWAIT,IWDS,ISTRING) / / (7) PLOT PACKAGE OPEN ROUTINE (MUST BE CALLED FIRST) / CALL PLOPEN(IUNIT,ISTRTBL,INOBLOCKS,IER) / / (8) PLOT PACKAGE CLOSE ROUTINE. / CALL PLCLOS(NOBLKSWRITTEN) / / ENTRY PLOT ENTRY PLETE ENTRY PLNUM ENTRY PLSTR ENTRY PLAXI ENTRY PLTTY ENTRY PLOPE ENTRY PLCLO 1400 OPDEF TADI 1400 3400 OPDEF DCAI 3400 5400 OPDEF JMPI 5400 LAP 0200 0000 PLBUF, 0 PAGE PAGE / DATA AND CONSTANTS FOR THIS MESS.... 0600 0000 PLNENT, 0 /# OF CELLS LEFT IN BUFFER 0601 0000 PLCUR, 0 /CURRENT POINTER INTO BUFFER / PARAMETER UNPACKING ROUTINE.... 0602 0000 ARGAD, 0 0603 0000 GETARG, 0 /GETS NEXT ARGUMENT IN FORTRAN /GENERATED PARAMETER STRING. 0604 7402 GTCDF1, HLT /REPLACED BY CDF 0605 1663 TADI PLOT# /GET PARAM DATA FIELD 0606 3213 DCA GTCDF2 0607 2263 INC PLOT# /BUMP LIST ADDRESS 0610 1663 TADI PLOT# /GET PARAMETER ADDRESS 0611 3202 DCA ARGAD /SAVE FOR INDIRECT (OR ARRAY) 0612 2263 INC PLOT# 0613 7402 GTCDF2, HLT /REPLACED BY CDF 0614 1602 TADI ARGAD /PASS THE VALUE IN THE ACC 0615 5603 JMPI GETARG /EXIT QUIETLY / STUFFS A VARIABLE # OF PARAMS INTO BUFFER. 0616 0000 GTCNT, 0 0617 0000 GTPARS, 0 /# TO STUFF PUT IN GTCNT 0620 4203 GTLOOP, JMS GETARG /GET THE NEXT ARGUMENT 0621 4252 JMS STUFIT /PUT IT INTO THE BUFFER 0622 2216 GTDONE, ISZ GTCNT /MORE TO STUFF.... (HIGHER....) 0623 5220 JMP GTLOOP /OUCH. 0624 6201 05 JMP I GTPARS /WHEW. 0625 5617 / GETS STRING OF DATA FROM ADDR PASSED AS PARAM 0626 0000 GETSTR, 0 /LENGTH OF STRING PASSED IN ACC 0627 7510 SPA /CHECK FOR INDIRECT OPTION 0630 5246 JMP FKIT 0631 7041 CIA /SET NEGATIVE 0632 3216 DCA GTCNT /SAVE IT 0633 4203 JMS GETARG /NOW GET THE BUFFER ADDRESS 0634 7200 CLA 0635 1213 GETON, TAD GTCDF2 /FIRST THE DATA FIELD 0636 3237 DCA BLOOP 0637 7402 BLOOP, HLT /CHANGE DATA FIELD 0640 1602 TADI ARGAD /GET THE NEXT VALUE 0641 4252 JMS STUFIT /PUT IT INTO THE BUFFER 0642 2202 INC ARGAD /BUMP THE BUFFER POINTER 0643 2216 ISZ GTCNT /MORE? 0644 5237 JMP BLOOP /YES. 0645 5626 JMP I GETSTR /ADIOS. 0646 3216 FKIT, DCA GTCNT /SAVE THE COUNT 0647 4203 JMS GETARG /THE WORD RETURNED IS A 0650 3202 DCA ARGAD /POINTER TO THE STRING 0651 5235 JMP GETON / YEE OLDE BUFFER STUFFER..... 0652 0000 STUFIT, 0 /DATA TO BE STUFFED IN ACC 0653 6201 05 DCA I PLCUR /STORE IT AWAY 0654 3601 0655 2201 INC PLCUR /BUMP THE CURRENT POINTER 0656 2200 ISZ PLNENT /FULL YET? 0657 5652 JMP I STUFIT /NO. 0660 4777 JMS PTOUT /YES. 0661 5652 JMP I STUFIT /SO LONG. // ENTRY POINT FOR PEN COMMAND (PLOT). 0662 0000 PLOT, BLOCK 2 0663 0000 0664 7346 CLA CLL CMA RTL /EXPECT THREE PARAMETERS 0665 3216 DCA GTCNT /SET UP RETRIEVAL 0666 1262 TAD PLOT 0667 3204 DCA GTCDF1 0670 7201 CLA IAC /PUT IN FUNCTION CODE 0671 4252 PLOTGO, JMS STUFIT 0672 4217 JMS GTPARS /STRIP THE PARAMS 0673 5776 JMP EGGSIT /AND SPLIT. / ENTRY FOR PRINT SINGLE LETTER (PLETER) 0674 0000 PLETE, BLOCK 2 0675 0000 0676 4775 JMS GETCAL /THE ENTRY POINT SHUFFLE 0677 1374 TAD (-5 /EXPECT FIVE PARAMETERS 0700 3216 DCA GTCNT 0701 7305 CLA CLL IAC RAL /FUNCTION CODE=2 0702 5271 JMP PLOTGO /GO DO IT. / ENTRY FOR PLOT SIGNED INTEGER (PLNUM). 0703 0000 PLNUM, BLOCK 2 0704 0000 0705 4775 JMS GETCAL 0706 1374 TAD (-5 /FIVE PARAMETERS 0707 3216 DCA GTCNT 0710 7325 CLA CLL CML IAC RAL 0711 5271 JMP PLOTGO / ENTRY FOR PRINT ASCII STRING (PLSTRI) 0712 0000 PLSTR, BLOCK 2 0713 0000 0714 4775 JMS GETCAL 0715 1374 TAD (-5 0716 3216 DCA GTCNT /SET PARAMETER COUNT 0717 7307 CLA CLL IAC RTL 0720 4252 PLGO2, JMS STUFIT /SET FUNCTION CODE 0721 4217 JMS GTPARS /FIRST GET THE PARAMS 0722 1213 TAD GTCDF2 /THEN GET THE STRING COUNT 0723 3324 DCA PP1 0724 7402 PP1, HLT 0725 1602 TADI ARGAD /IT WAS THE LAST PARAM. 0726 4226 JMS GETSTR /THEN GET THE ACTUAL STRING. 0727 5776 JMP EGGSIT /AND DISAPPEAR SUDDENLY. / ENTRY FOR AXIS PLOTTING ROUTINE (PLAXIS) 0730 0000 PLAXI, BLOCK 2 0731 0000 0732 4775 JMS GETCAL 0733 1373 TAD (-13 /A SHITLOAD OF PARAMS 0734 3216 DCA GTCNT 0735 1372 TAD (5 /FUNCTION CODE = 5 0736 5320 JMP PLGO2 /HO HUM. / ENTRY FOR MESSAGE GENERATION (PLTTY) 0737 0000 PLTTY, BLOCK 2 0740 0000 0741 4775 JMS GETCAL 0742 7344 CLA CLL CMA RAL /TWO PARAMS AND A STRING 0743 3216 DCA GTCNT 0744 1371 TAD (6 0745 5320 JMP PLGO2 / PASS BACK A PARAMETER. 0746 0000 PASS0, 0 0747 0000 PASS1, 0 0750 3346 DCA PASS0 0751 4203 JMS GETARG /SET IT UP 0752 7200 CLA 0753 1346 TAD PASS0 /PASS IT BACK 0754 3602 DCAI ARGAD 0755 6201 05 PASS2, JMP I PASS1 0756 5747 0771 0006 0772 0005 0773 7765 0774 7773 0775 1141 01 0776 1156 01 0777 1054 01 PAGE / / ENTRY FOR PLOT PACKAGE OPEN (PLOPEN) 1000 0000 PLOPE, BLOCK 2 1001 0000 1002 4341 JMS GETCAL 1003 4777 JMS GETARG /GET THE UNIT NUMBER 1004 3241 DCA UNIT 1005 4777 JMS GETARG /AND THE START BLOCK 1006 3242 DCA STRTBL 1007 4777 JMS GETARG /AND THE # OF BLOCKS 1010 7040 CMA 1011 3244 DCA PREVNT /PREVNT PREVENTS US FROM 1012 7305 CLA CLL IAC RAL /WRITING TOO MANY BLOCKS 1013 1244 TAD PREVNT /NOBLKS SIGNALS WHEN ONLY 1014 3243 DCA NOBLKS /ONE BLOCK IS LEFT. 1015 3245 DCA BLKSWR /INIT BLOCKS WRITTEN TO 0 1016 3252 DCA IER /CLEAR ERROR STATUS 1017 4777 JMS GETARG /GET ERROR FLAG ADDRESS 1020 6201 05 GRUMB2, TAD GTCDF2 /SAVE THE DATA FIELD 1021 1776 1022 3356 DCA EGGSIT 1023 1775 TAD ARGAD /AND THE ADDRESS 1024 3253 DCA IERAD 1025 1374 TAD (-400 1026 3773 DCA PLNENT 1027 1246 TAD PLBADR /SET UP BUFFER POINTER 1030 3772 DCA PLCUR 1031 5356 JMP EGGSIT / ENTRY FOR PLOT PACKAGE CLOSE (PLCLOS) 1032 0000 PLCLO, BLOCK 2 1033 0000 1034 4341 JMS GETCAL 1035 4254 JMS PTOUT /DUMP THE REST OF THE BUFFER 1036 1245 TAD BLKSWR 1037 4771 JMS PASS1 /PASS THE BLOCKS WRITTEN 1040 5356 JMP EGGSIT /AND THATS IT / BUFFER DUMPING ROUTINE. /THESE FOUR VARIABLES SET BY PLOPEN 1041 0000 UNIT, 0 /THE TAPE UNIT NUMBER 1042 0000 STRTBL, 0 /THE STARTING BLOCK NUMBER 1043 0000 NOBLKS, 0 /NUMBER OF BLOCKS AVAILABLE 1044 0000 PREVNT, 0 /PREVENTS OVER WRITING 1045 0000 BLKSWR, 0 /COUNT OF BLOCKS WRITTEN 1046 0200 01 PLBADR, PLBUF /BUFFER ADDRESS 1047 0400 NOWD, 400 1050 0000 PTCT, 0 1051 0000 TERR, 0 /TAPE ERROR FLAG 1052 0000 IER, 0 /GENERAL ERROR CONDITION FLAG 1053 0000 IERAD, 0 /ADDRESS OF USER ERROR FLAG 1054 0000 PTOUT, 0 1055 2244 ISZ PREVNT /CHECK FOR TOO MANY BLOCKS 1056 5265 JMP PTOK /NO PROBLEMS 1057 7240 CLA CMA /ALREADY WRITTEN TOO MUCH 1060 3244 DCA PREVNT 1061 7305 CLA CLL IAC RAL /SET ERROR FLAG TO 2 1062 3252 DCA IER 1063 6201 05 JMP I PTOUT /AND EXIT 1064 5654 1065 6201 05 PTOK, TAD PLNENT 1066 1773 1067 7650 SNA CLA /IF BUFFER NOT FULL 1070 5300 JMP PTBFOK /THEN MUST ZERO OUT THE 1071 1772 TAD PLCUR /UNUSED PORTION OF IT. 1072 3250 DCA PTCT 1073 6201 05 PTLOOP, DCA I PTCT 1074 3650 1075 2250 INC PTCT /DO THE HOUSEKEEPING 1076 2773 ISZ PLNENT 1077 5273 JMP PTLOOP 1100 3251 PTBFOK, DCA TERR /CLEAR TAPE FLAG 1101 4033 CALL 5, WTAPE /NOW DUMP THE BUFFER 1102 0511 06 1103 6201 05 ARG UNIT 1104 1041 01 1105 6201 05 ARG STRTBL 1106 1042 01 1107 6201 05 ARG NOWD 1110 1047 01 1111 6201 05 ARG PLBUF 1112 0200 01 1113 6201 05 ARG TERR 1114 1051 01 1115 7200 CLA 1116 1251 TAD TERR /SEE IF ANY ERRORS 1117 7640 SZA CLA 1120 5334 JMP TEROR /OOPS 1121 1374 TAD (-400 /RESET BUFFER COUNT 1122 6201 05 GRUMB3, DCA PLNENT 1123 3773 1124 1246 TAD PLBADR /AND BUFFER POINTER 1125 3772 DCA PLCUR 1126 2245 INC BLKSWR /ANOTHER BLOCK WRITTEN 1127 2242 INC STRTBL /BUMP BLOCK POINTER 1130 2243 ISZ NOBLKS 1131 5336 JMP PTXOK /ALL'S WELL FOR NOW. 1132 7240 CLA CMA /ONLY ONE BLOCK LEFT 1133 7410 SKP 1134 7164 TEROR, CLL CMA CML RAL /TAPE ERROR GANG. 1135 3252 DCA IER /PASS IT ON 1136 6201 05 PTXOK, JMP I PTOUT 1137 5654 / MOVE CALLING ADDRESS TO PLOT. 1140 0000 0 1141 0000 GETCAL, 0 1142 1370 TAD (-3 /MUST BE CALLED FIRST THING 1143 1341 TAD GETCAL 1144 3250 DCA PTCT /ADDRESS OF ENTRY DATA 1145 6201 05 TAD I PTCT 1146 1650 1147 3767 DCA PLOT 1150 2250 ISZ PTCT 1151 1650 TAD I PTCT 1152 3766 DCA PLOT# 1153 1767 TAD PLOT /SET UP PARAM FETCH 1154 3765 DCA GTCDF1 1155 5741 JMP I GETCAL /BLAH. / THE EXIT FUNNEL (PASSES THE ERROR STATUS) 1156 7402 EGGSIT, HLT /CDF FILLED BY PLOPEN 1157 1252 TAD IER /GET THE ERROR STATUS 1160 3653 DCAI IERAD /PASS IT BACK 1161 4040 RETRN PLOT /AND SPLIT 1162 0001 06 1165 0604 01 1166 0663 01 1167 0662 01 1170 7775 1171 0747 01 1172 0601 01 1173 0600 01 1174 7400 1175 0602 01 1176 0613 01 1177 0603 01 END