00001 c
00002 c The following is an alphabetized list of all common blocks
00003 c necessary for the proper functioning of the mcpak graphics
00004 c library, when graphics contexts are being switched (i.e. these
00005 c blocks must be saved and restored to preserve continuity).
00006 c
00007 c NOTE: We need not store device-specific material if only a
00008 c single instance of a given device is permitted--the info is
00009 c saved anyway, and cannot be overwritten.
00010 c
00011 subroutine save_mcpak_context(id)
00012 save
00013 c
00014 c Save all relevant commons in a character string.
00015 c
00016 parameter (NCMAX = 100)
00017 character*1000 save_string(NCMAX)
00018 c
00019 common/backgcolor/ibackgcolor
00020 common/dash/dpatrn(10),dpat,npatrn,ipat,lpen
00021 common/devdetails/itek,ivers
00022 common/devinit/initdev
00023 common/devstatus/idevon,idevpen,idevwt
00024 common/findex/index
00025 common/framesize/nxpix,nx0,xfac,nypix,ny0,yfac
00026 common/frbare/ibare
00027 common/frbnds/modeb
00028 common/frconf/scent,rnuml,rnumr,snumt,snumb,dsnums,jrot,stopnum
00029 common/frdraw/moded
00030 common/frhts/htl,htn
00031 common/frint/iframe
00032 common/frlbx/lmodex
00033 common/frlby/lmodey
00034 common/frpens/icolors(3)
00035 common/frplain/iplain
00036 common/frrotn/irot
00037 common/frsetax/kax,lax
00038 common/frsord/idash
00039 common/frticks/tiks(3),tikl
00040 common/frtiklevel/jtiklevel
00041 common/frwts/iwts(4)
00042 common/frxnums/xnumbot
00043 common/frylabpos/slab
00044 common/lastpoint/rl,sl
00045 common/lhlimit/rlhe
00046 common/lowlimit/sbot
00047 common/mcpak_colormap/ncolor
00048 common/mlineon/imline
00049 common/ngonstars/istar
00050 common/numbron/inumbr
00051 common/numsymint/rs,ss,dx,dy,sint,cost
00052 common/penposn/npo
00053 common/plainfont/wid
00054 common/plotinvert/inv,ipensto
00055 common/plotoffset/iin
00056 common/plotorigin/ro,so
00057 common/plotsizes/xsize,ysize
00058 common/sboxdata/iborder,ierase,fraction
00059 common/scales/xl,xr,dinchx,ybot,ytop,dinchy,rlen,slen
00060 common/strlimits/offxmin,offxmax,offymin,offymax
00061 common/strposn/iposset,frx,fry
00062 common/yfollowsx/ixy
00063 c
00064 save_string(id) = ' '
00065 write(save_string(id),*)
00066 $ ibackgcolor,dpatrn,dpat,npatrn,ipat,lpen,
00067 $ itek,ivers,initdev,idevon,idevpen,idevwt,
00068 $ index,nxpix,nx0,xfac,nypix,ny0,yfac,ibare,
00069 $ modeb,scent,rnuml,rnumr,snumt,snumb,dsnums,
00070 $ jrot,stopnum,moded,htl,htn,iframe,lmodex,
00071 $ lmodey,icolors,iplain,irot,kax,lax,idash,ixy,
00072 $ ncolor,
00073 $ tiks,tikl,jtiklevel,iwts,xnumbot,slab,rl,sl,
00074 $ rlhe,sbot,imline,istar,inumbr,rs,ss,dx,dy,
00075 $ sint,cost,npo,wid,inv,ipensto,iin,ro,so,
00076 $ xsize,ysize,iborder,ierase,fraction,xl,xr,
00077 $ dinchx,ybot,ytop,dinchy,rlen,slen,offxmin,
00078 $ offxmax,offymin,offymax,iposset,frx,fry
00079 return
00080 c
00081 entry restore_mcpak_context(id)
00082 c
00083 c Restore a saved graphics context.
00084 c
00085 read(save_string(id),*)
00086 $ ibackgcolor,dpatrn,dpat,npatrn,ipat,lpen,
00087 $ itek,ivers,initdev,idevon,idevpen,idevwt,
00088 $ index,nxpix,nx0,xfac,nypix,ny0,yfac,ibare,
00089 $ modeb,scent,rnuml,rnumr,snumt,snumb,dsnums,
00090 $ jrot,stopnum,moded,htl,htn,iframe,lmodex,
00091 $ lmodey,icolors,iplain,irot,kax,lax,idash,ixy,
00092 $ ncolor,
00093 $ tiks,tikl,jtiklevel,iwts,xnumbot,slab,rl,sl,
00094 $ rlhe,sbot,imline,istar,inumbr,rs,ss,dx,dy,
00095 $ sint,cost,npo,wid,inv,ipensto,iin,ro,so,
00096 $ xsize,ysize,iborder,ierase,fraction,xl,xr,
00097 $ dinchx,ybot,ytop,dinchy,rlen,slen,offxmin,
00098 $ offxmax,offymin,offymax,iposset,frx,fry
00099 c
00100 end