aboutsummaryrefslogtreecommitdiff
path: root/sys/gio/nspp/portlib/z8zpii.f
diff options
context:
space:
mode:
Diffstat (limited to 'sys/gio/nspp/portlib/z8zpii.f')
-rw-r--r--sys/gio/nspp/portlib/z8zpii.f362
1 files changed, 362 insertions, 0 deletions
diff --git a/sys/gio/nspp/portlib/z8zpii.f b/sys/gio/nspp/portlib/z8zpii.f
new file mode 100644
index 00000000..580d9968
--- /dev/null
+++ b/sys/gio/nspp/portlib/z8zpii.f
@@ -0,0 +1,362 @@
+ subroutine z8zpii
+c+kpno
+c
+c All data statements changed to runtime assignment statements; routine
+c changed from block data to subroutine.
+c
+c-kpno
+ common /sysplt/ mmajx ,mmajy ,mminx ,mminy ,mxlab ,mylab ,
+ 1 mflg ,mtype ,mxa ,mya ,mxb ,myb ,
+ 2 mx ,my ,mtypex ,mtypey ,xxa ,yya ,
+ 3 xxb ,yyb ,xxc ,yyc ,xxd ,yyd ,
+ 4 xfactr ,yfactr ,xadd ,yadd ,xx ,yy ,
+ 5 mfmtx(3) ,mfmty(3) ,mumx ,mumy ,
+ 6 msizx ,msizy ,mxdec ,mydec ,mxor ,mop(19),
+ 7 mname(19) ,mxold ,myold ,mxmax ,mymax ,
+ 8 mxfac ,myfac ,modef ,mf2er ,mshftx ,mshfty ,
+ 9 mmgrx ,mmgry ,mmnrx ,mmnry ,mfrend ,mfrlst ,
+ + mcrout ,mpair1 ,mpair2 ,msblen ,mflcnt ,mjxmin ,
+ 1 mjymin ,mjxmax ,mjymax ,mnxsto ,mnysto ,mxxsto ,
+ 2 mxysto ,mprint ,msybuf(360) ,mncpw ,minst ,
+ 3 mbufa ,mbuflu ,mfwa(12) ,mlwa(12) ,
+ 4 mipair ,mbprs(16) ,mbufl ,munit ,mbswap ,
+ 5 small
+c
+ common /nsplt1/ iclrfb ,isetfb ,ibpw ,ifwd
+c
+c variables use
+c --------- ---
+c
+c mmajx,mmajy,mminx, gridal arguments stored here so they will be in a
+c mminy,mxlab,mylab, known order for insertion in the instruction
+c mflg stream only when ultracompact metacode is
+c being produced.
+c
+c mtype scaling type of the most recent set call
+c
+c mx,my plotter address of the pen location
+c
+c mxa,mya,mxb,myb plotter address corresponding to the first four
+c arguments of the most recent set call.
+c
+c mtypex,mtypey a decoding of mtype-- 0 = linear, 1 = log
+c
+c xxa,yya,xxb,yyb, exact copies of the first eight parameters
+c xxc,yyc,xxd,yyd of the most recent set call
+c
+c xfactr,yfactr,xadd, numbers computed from the most recent set call
+c yadd arguments so that real valued coordinates can
+c be translated to integers by
+c mx = xfactr*xx + xadd
+c or
+c mx = xfactr*alog10(xx) + xadd
+c and similarly for y.
+c
+c xx,yy most recent coordinate input to the plot package
+c
+c mfmtx,mfmty,mumx, most recent labmod inputs except that mxdec = 0
+c mumy,msizx,msizy, and mydec = 0 are decoded and mxdec = 1 and
+c mxdec,mydec,mxor mydec = 1 become 0.
+c
+c mop(i),mname(i) option names are given in mname and their
+c current values in mop
+c
+c mxold,myold,mxmax, all used for increment instructions only. mxold
+c mymax,mxfac,myfac and myold are the plotter coordinates of the
+c previous point, mxmax and mymax are the greatest
+c distance an increment can move, and mxfac and
+c myfac are the number of plotter units per
+c increment unit (generally 1, but can be more if
+c compaction is important and high resolution is
+c not).
+c
+c modef = 0 flash routines have not been used
+c = 1 most recent flash call was to flash1
+c (we are between flash1 and flash2 calls
+c and the instructions should be put in the
+c users buffer)
+c = 2 flash1 call has been closed with a
+c flash2 call
+c =-3 flash3 has been entered, but not exited,
+c i.e., flash3 is dumping a user buffer.
+c = 3 most recent flash activity is a completed
+c flash3 call.
+c = 4 most recent flash call was to flash4
+c
+c mf2er = 0 no flash buffer overflow
+c = n counts the number of times the buffer
+c was reused so the required size can be
+c estimated
+c
+c mshftx,mshfty the power of two of the ratio between the
+c resolution of the metacode address and the
+c resolution the user is working in. in the
+c default case, the user assumes the plotter
+c is 1024 by 1024 (1024 = 2 **10). metacode
+c addresses have 15 bits, so their capacity is
+c 32,768. thus, the default for mshftx and mshfty
+c is 5, and user integer coordinates are left
+c shifted 5 to make plotter addresses.
+c
+c mmgrx,mmgry,mmnrx, tick mark lengths (positive values point in)
+c mmnry
+c
+c mcrout number of metacode records that have been put
+c out via preout.
+c
+c mflcnt used to count the number of flushb calls since
+c last mbprs initialization. it is used to avoid
+c empty records which could otherwise be put out.
+c
+c mfrend frame sets to 1 to indicate last output call of a
+c frame, and resets to zero before returning.
+c
+c mfrlst preout manipulates, based on mfrend, so that it
+c knows when a record is the first of a new frame.
+c
+c mjxmin,mjymin, used to keep track of the range of the plotting
+c mjxmax,mjymax address on the frame being created
+c
+c mnxsto,mnysto used to hold mjxmin,... after flash1 call, and
+c mxxsto,mxysto restore them after flash2. mjxmin,... are ac-
+c cumulated anew during flash saving, and stored
+c in user flash buffer after flash2 call.
+c
+c mpair1,mpair2 two 16-bit pairs used to initialize each output
+c record, so that preout may format first 32 bits.
+c they are actually put into mbprs at proper times
+c
+c mprint unit number for printing error messages too
+c extensive to be handled by uliber
+c
+c msybuf buffer to hold up to a few hundred metacode
+c instructions
+c
+c msblen word length of msybuf.
+c
+c mncpw the number of characters per word on the host
+c computer
+c
+c minst holds instruction op-code for the instruction
+c being formed
+c
+c mbufa contains the address of the buffer for the
+c metacode instructions, either loci(msybuf) or
+c loci(user buffer) from a flash1 call
+c
+c mbuflu the number of words of the buffer pointed to by
+c mbufa that have been filled with metacode or
+c dd80 instructions
+c
+c mfwa,mlwa contains the first word address and the last
+c word address for the flash buffers
+c
+c mipair,mbprs mbprs is used to store byte pairs of metacode
+c until they can be packed in an integral number
+c of words and placed in the buffer pointed to by
+c mbufa. mipair tells how much of mbprs has been
+c used.
+c
+c mbufl the length of the buffer pointed to by mbufa.
+c
+c munit unit number for writing metacode
+c
+c small smallest positive number on the host computer.
+c this is used when nonpositive numbers are plotted
+c with log scaling.
+c
+c
+ dimension mfssx(2), mfssy(2), mnsss(9)
+c
+ data mfssx(1)/4h(e10/
+ data mfssx(2)/4h.3) /
+ data mfssy(1)/4h(e10/
+ data mfssy(2)/4h.3) /
+c
+ data mnsss(1)/4hcase/
+ data mnsss(2)/4hintn/
+ data mnsss(3)/4horen/
+ data mnsss(4)/4hcsiz/
+ data mnsss(5)/4hfont/
+ data mnsss(6)/4hdpat/
+ data mnsss(7)/4hssiz/
+ data mnsss(8)/4hcent/
+ data mnsss(9)/4hcolr/
+c
+ do 10 i = 1, 2
+ mfmtx(i) = mfssx(i)
+10 continue
+ do 11 i = 1, 2
+ mfmty(i) = mfssy(i)
+11 continue
+ do 12 i = 1, 9
+ mname(i) = mnsss(i)
+12 continue
+c
+c data iclrfb/0/, isetfb/0/, ibpw/32/, ifwd/1/
+ iclrfb = 0
+ isetfb = 0
+ ibpw = 32
+ ifwd = 1
+c
+c data mtype,mtypex,mtypey/1,0,0/
+ mtype = 1
+ mtypex = 0
+ mtypey = 0
+c
+c data mx,my/0,0/
+ mx = 0
+ my = 0
+c
+c data xxa,yya,xxb,yyb/0.,0.,1.,1./
+ xxa = 0.0
+ yya = 0.0
+ xxb = 1.0
+ yyb = 1.0
+c
+c data xxc,yyc,xxd,yyd/0.,0.,1.,1./
+ xxc = 0.0
+ yyc = 0.0
+ xxd = 1.0
+ yyd = 1.0
+c
+c data mxa,mya,mxb,myb/1,1,32767,32767/
+ mxa = 1
+ mya = 32767
+ mxb = 1
+ mxb = 32767
+c
+c data xfactr,yfactr/32767.,32767./
+ xfactr = 32767.
+ yfactr = 32767.
+c
+c data xadd,yadd/1.,1./
+ xadd = 1.0
+ yadd = 1.0
+c
+c data mumx,mumy/10,10/
+ mumx = 10
+ mumy = 10
+c
+c data msizx,msizy/0,0/
+ msizx = 0
+ msizy = 0
+c
+c data mxdec,mydec/655,655/
+ mxdec = 655
+ mydec = 655
+c
+c data mxor/0/
+ mxor = 0
+c
+c data mop(1)/0/
+c data mop(2)/204/
+c data mop(3)/0/
+c data mop(4)/128/
+c data mop(5)/0/
+c data mop(6)/65535/
+c data mop(7)/8/
+c data mop(8)/0/
+c data mop(9)/0/
+ mop(1) = 0
+ mop(2) = 204
+ mop(3) = 0
+ mop(4) = 128
+ mop(5) = 0
+ mop(6) = 65535
+ mop(7) = 8
+ mop(8) = 0
+ mop(9) = 0
+c
+c data mxold,myold/-9999,-9999/
+ mxold = -9999
+ myold = -9999
+c
+c data mxmax,mymax/31,31/
+ mxmax = 31
+ mymax = 31
+c
+c data mxfac,myfac/1,1/
+ mxfac = 1
+ myfac = 1
+c
+c data mmgrx,mmgry/385,385/
+ mmgrx = 385
+ mmgry = 385
+c
+c data mmnrx,mmnry/255,255/
+ mmnrx = 255
+ mmnry = 255
+c
+c data modef/0/
+ modef = 0
+c
+c data mncpw/4/
+ mncpw = 4
+c
+c data mbuflu/0/
+ mbuflu = 0
+c
+c data msblen/360/
+ msblen = 360
+c
+c data mbufl/360/
+ mbufl = 360
+c
+c data mf2er/0/
+ mf2er = 0
+c
+c data mshftx,mshfty/5,5/
+ mshftx = 5
+ mshfty = 5
+c
+c data mbufa/-9999/
+ mbufa = -9999
+c
+c data mflcnt/0/
+ mflcnt = 0
+c
+c data mfrend/0/
+ mfrend = 0
+c
+c data mfrlst/1/
+ mfrlst = 1
+c
+c data mpair1/0/
+ mpair1 = 0
+c
+c data mpair2/8192/
+ mpair2 = 8192
+c
+c data mcrout/0/
+ mcrout = 0
+c
+c data mbprs(1)/0/
+ mbprs(1) = 0
+c
+c data mbprs(2)/8192/
+ mbprs(2) = 8192
+c
+c data mipair/2/
+ mipair = 2
+c
+c data mjxmax,mjymax,mjxmin,mjymin/0,0,32767,32767/
+ mjxmax = 0
+ mjymax = 0
+ mjxmin = 32767
+ mjxmin = 32767
+c
+c set to unit number for printer
+c
+c data mprint/6/
+ mprint = 6
+c
+c set to unit number for plotter
+c
+c data munit/8/
+ munit = 8
+c set to smallest positive number on the computer
+c
+c data small/1.e-25/
+ small = 1.e-25
+ end