.enable quiet .disable suffix,prefix ; ;Using MULPLT ; ;Mulplt and its device dependent versions(REGplt,HPlt,DMPlt) ;is a menu drive interface to various graphics devices whose ;FORTRAN IV subroutine structure is modelled after the ;BASIC CALCOMP routines. All input is done on a single screen. ;Each required input line is highlighted to let the user know ;at what point he/she is at. ; ;When the program is first run, an arrow in a box appears in the ;upper left corner,pointing to 1 of 3 possible graph types. ;Simply use the up/down cursor keys to choose the graph type ;and then hit the left or right arrow keys to go to the next ;selection. ; ;NOTE: If you've made a mistake somewhere you'll have to ; restart the program. It does not have full screen ; editing capabilities. (Lots of branching required.) ; .asks ok Hit return to continue ; ;LINE GRAPHS - if line graphs are chosen, then 3 possible types ;are displayed on the screen: lines only,symbols only,or lines ;with symbols. Again position the cursor using the up/down arrows ;and hit the right/left arrow to continue. ; SYMBOLS only- the cursor now moves to label SYMBOL ;and the default 0 appears. Use the up/down arrows to change ;the symbol type (from 0-14) and then exit using the left/right ;arrows. ; LINES only- same as above for selection ; SYMBOLS + LINES - you will have to select both a linetype ; and a symbol type using the cursor keys. ;BAR GRAPHS - if bar graphs are chosen,then 3 possible type of bar ;graphs are available: horizontal+vertical, horizontal only, or ;vertival(stacked) only. Use the cursor to make your selection. ; ;NOTE: The data file contents for vertical(stacked) bars is such ; that the 1st data set in the file starts at the minimum Y ; axis value,and subsequent values are relative to the 1st set. ; (See BAR1.DAT for example. The 1st Y value of the 1st set is ; 58 and the 1st Y value of the 2nd is 0,ie.relative 0 to 58, ; ie.the bar will also be 58 units high- get it??) ; .asks ok Hit return to continue ; ;PIE CHARTS - These are very crude. I haven't developed any ;cross hatch fills or made use of REGIS polygon fill modes. With ;the pen plotters,the solid fills are swept out radially to ;minimize pen local dwell times. Play with it anyhow. ; ;Next we are prompted for a physical origin (relative to the graphics ;device 0,0 point. The units are in inches (the CANADIAN ;government metrication program is no longer being shoved down ;our throats.) ;Anyhow,each input requires a CARRIAGE RETURN terminator. ;Next a scale factor is required. This is a factor affecting ;the entire graph,ie.everything will be scaled down by this value. ;A graph with a factor of 1 for an HP or Houston Instruments plotter ;might need a factor of .6 - .9 on a REGIS device. This does mess ;up the character placement and spacing so again play around with ;it until it looks ok. If your device is switched into METRIC mode ;then use a factor of 25.4 (remember 1 inch = 2.54 centimeters = ;25.4 millimeters.) .asks ok Hit return to continue ; ;Next enter a graph title (maximum 54 characters) and terminate ;with a return. Null returns are handled by the program if you ;don't want a title. ;Next enter the filename (and device if it is not DK:) ;For line graphs and bar charts 200 points can be contained in the ;file. The file needs only 2 columns. You can create the file ;easily using KED,EDT etc. and just using tab separators. ;eg. 10. 20. (10. tab 20. - 2 columns !) ;for pie charts, the programs looks for 23 characters of text,followed ;immediately (ie.starting in the 24th column)by the numerical data. ;This is a must - that the numbers start in column 24 !!! ;See PIE.DAT for example. ;Now the program asks for the length of the axes in inches. ;(again with CR terminators). After the X axis length has been ;entered,the cursor is positioned on the LINEAR/LOG axis box. ;Use the up/down arrows to choose,and the left/right arrows to ;continue. The same goes for the Y axis. .asks ok Hit return to continue ; ;At this point the data points have been automatically scaled, ;with their respective values appeared as the MINIMUM and ;MAXIMUM axis values for linear axes,or as the MINIMUM EXPONENT ;and the NUMBER OF DECADES for log(base10) axes. ;To retain a value type R [CR] and to change it,simply enter the ;new value [CR]. ;Next enter labels for the X and Y axis ,[CR] terminated. ; ;If bar charts were selected and you chose horizontal-vertical or ;horizontal only,you would now be asked : ;HOW MANY BARS PER X VALUE. For instance, you might have 3 data ;sets all using identical X values. Then you would enter 3 to ;get the proper clustering around the tick mark. If however, you ;exact positioning,then enter a minus value,eg -1. ;If you chose horizontal-vertical or vertical only you would next ;be asked HOW MANY BARS TO BE STACKED and simply enter the number ;of data sets within your file. .asks ok Hit return to continue ; ; ;Shading (for bar and pie charts),pen #1 are again chosen using ;the cursor keys. Legend labels are entered as text [CR] terminated, ;and if a legend is wanted,its position is chosen using the cursor ;keys. ; ;Before running REGPLT or HPLT issue a monitor ASSIGN command to ;associate the logical device unit with a physical device. ;Eg. ASS DK 6 to direct all output to a file FTN6.DAT ;Also when using REGPLT and you wish to plot several data sets on ;on graph, write the REGIS commands to file first,then TY FTN6.DAT ;when you are finished. (There is no terminal spooler.) .asks ok Hit return to continue ; ; A FEW EXAMPLES ; ;Data files included are: 2.DAT for line graphs ; BAR1.DAT ; BAR2.DAT ; BAR3.DAT for bar graphs ; PIE.DAT for pie charts ; ; Run REGPLT or HPLT and select line graphs. The Y range is between ;0 and 1100 so the Y axis can be linear or log as a test. Try ;different values. ; ;Next select the bar graph type. Select the combined horizontal- ;vertical type. Enter BAR1 as the first data file. Use a factor of .8 ;or so. Set the X axis to 9 (since the range is from 1986 to 1995). ;Set the Y axis to 6 and change the Y maximum to 600. ;Enter 3 for the number of horizontal bars and 2 for the number of ;bars to stack. For the first shading routine use a horizontal pattern ;for the lower bar and a vertical cross for the upper bar. Use pen 1. ;Enter LOW for the first legend and HIGH for the 2nd legend. ;Next use BAR2 for data file #2. Use a solid fill for the bottom ;bar and no fill for the upper bar. Use pen 2,and LOW and HIGH for ;the legends again. Finally use BAR3.DAT, with a vertical fill for ;the lower and diagonal cross for the upper. Use pen 3 and again the ;legends LOW and HIGH. .asks ok Hit return to continue ; ;A FEW FINAL NOTES: ; ;I haven't made any attempt yet to facilitate the interaction of the ;devices,ie.creating a common interface. MULPLT is linked separately ;with REGLIB,HPLIB or DMPLIB and so if you view the graph on a REGIS ;device,unless the plotter has REGIS support,you must run the program ;again for the plotter. ;The HP version has been written using the basic HP-GL commands. ;I have a 9872C device connected to a PDP 11/73 using an IBV11 card. ;I am using J.Docherty's PL.SYS handler,(DECUS 11-541)rather than the ;IB handler,so I can create the ASCII output files and copy them ;directly to the device. The code has been tested on an HP 7475A ;(DEC's LVP-16) and works fine,but can be made much more efficient if ;use is made of all the firmware enhancements,such as for ;polygon filling,etc. .asks ok Hit return to continue ; ;The REGIS code was developed for a VT241 and has been tested on a ;VT125 (which is different- See VT240 series programmer reference ;manual). The REGIS output has been directed to an LA50 and an LN03 ;laser printer with good results (REGIS resolution is certainly ;not WYSIWYG type-setting quality even on an LN03). ;All Fortran code was written under TSX-Plus version 6.0 started ;from RT11 V5.03,using Fortran IV,v.2.06 ; I've held off installing V5.04 because of the ;device handler changes,but I don't forsee any installation problems. ; ; Feel free to make any mods - I'd appreciate ; you letting me know if you do. ; ; Tony Euser ; Dec.5,1986