Está en la página 1de 4

PROGRAM DEMOQX

$CHAREQU
CHARACTER*8 HEXOF,MAINHX,TSTHEX,HAPS(32)
CHARACTER PROGNM*18,PRGDSC*54,CRKEY*12,CRLINE*72,FRAME*20
CHARACTER*22 FRMTYP(-2:20),TC*1,TCALGN(2)*1
CHARACTER*6 VOLUME(-1:7)
REAL*4 BASVAL,BASLOG
INTEGER*4 MENU,HILO,MAG,TYPFRM,ALLOC,TSTBUF,MAGDEF,LENFR,LENTR,NTR
INTEGER*4 IIXLEN,IIYLEN,IXLEN,IYLEN,IA256,IA512,FPEND,FMEND,KADDR,GETBUF
INTEGER*4 IXNUM,IYNUM,IA128,SENBAS,SENDAT,CUMUL(0:16383),IGNORE
INTEGER*4 ZLEN,ZMARK,ZPOINT,ALEN,AMARK,APOINT,APSCR1,APSCR2,APSCR3
INTEGER*4 APMAIN,AP1,AP2,AP3,AP4,AP5,APZR,APMX,AFMTYP,SCRMRK,APS(0:7)
INTEGER*4 LNMAIN,LN1,LN2,LN3,LN4,LN5,LNZR,LNMX,LNS(0:7),IAPS(32),LENS(32)
INTEGER*4 NDRIVE,NFRAME
INTEGER*2 BIG,SMALL,ASC,SCAN,KBF1,KBF2,ERR,LENXS(32),FNRNSN(32),DEFBUF
INTEGER*2 IASC,ISCAN,IKBF1,IKBF2,IERR,PROFIL(0:16383),TYPS(32),LENYS(32)
INTEGER*2 PRPNTS,NOPNTS
LOGICAL*4 INTRPS,MODE2D,PICTUR,HEXIT,DATACQ,QWERTY,DOCR,REPEAT
LOGICAL*4 SKIPIT,NOT14,KILLIT
LOGICAL*2 ABORT,ESCAPE,INTRPT,DONE,OPENEV(-1:7),TEK468,TK7854,TK7D20
EQUIVALENCE (TCALGN(1),IASC),(TCALGN(2),TC)
EQUIVALENCE (ASC,IASC),(SCAN,ISCAN),(KBF1,IKBF1),(KBF2,IKBF2),(ERR,IERR)
EQUIVALENCE (APS(0),APMAIN),(APS(1),AP1),(APS(2),AP2),(APS(3),AP3)
EQUIVALENCE (APS(4),AP4),(APS(5),AP5),(APS(6),APZR),(APS(7),APMX)
EQUIVALENCE (LNS(0),LNMAIN),(LNS(1),LN1),(LNS(2),LN2),(LNS(3),LN3)
EQUIVALENCE (LNS(4),LN4),(LNS(5),LN5),(LNS(6),LNZR),(LNS(7),LNMX)
EQUIVALENCE (IA,IAPS(1)),(IA2,IAPS(2)),(IA4,IAPS(3)),(IZ,IZR,IAPS(4))
EQUIVALENCE (IMX,IAPS(5)),(IT,IAPS(6)),(IA1,IAPS(7)),(IA3,IAPS(8))
EQUIVALENCE (IA5,IAPS(9)),(ISC1,IAPS(10)),(ISC2,IAPS(11)),(ISC3,IAPS(12))
COMMON /OMABFR/APS,LNS,/OMACNT/IAPS,HAPS,LENS,/OMATYP/TYPS,LENXS,LENYS,FNRNSN
COMMON /ZEROS/ZVALID,ZLEN,ZMARK,ZPOINT,ZZCORR,/OMALBL/DONE
COMMON /OMASCR/SCRMRK,APSCR1,APSCR2,APSCR3,/OMADSK/NDRIVE,NFRAME
COMMON /AMPLS/AVALID,ALEN,AMARK,APOINT,AACORR,AFMTYP,/BUFDEF/DEFBUF
COMMON /KEYGET/IASC,ISCAN,IKBF1,IKBF2,IERR,/NTRVN/ABORT,ESCAPE,INTRPT
COMMON /OMAPR2/IIXLEN,IIYLEN,IXLEN,IYLEN,IA256,IA512
COMMON /PARCUM/IGNORE,PROFIL,CUMUL,/XFRAME/TYPFRM,FRMTYP
COMMON /NAMEPR/PROGNM,PRGDSC,/GNORF9/CRKEY,CRLINE,DOCR
COMMON /BLKCNV/MAG,HILO,CONTRS,BRIGHT,BASLOG/GEWRTN/REPEAT,NMAG,CNTRS,BRGHT,BASVAL
COMMON /OMAPAR/IXNUM,IYNUM,INTRPS,MODE2D,PICTUR,HEXIT,DATACQ,FRAME,QWERTY,IA128,SENBAS,SENDAT
COMMON /IPPENC/SKIPIT,/PARB14/NOT14,KILLIT,/FRAMNG/LENFR,LENTR,NTR
COMMON /DEMOQQ/MAINBF,TSTBUF,MAINHX,TSTHEX,MAGDEF,/VOLSTA/OPENEV,VOLUME
COMMON /PNTS/PRPNTS,NOPNTS,/SCTYPE/TEK468,TK7854,TK7D20
SAVE /IPPENC/,/PARB14/,/BFDEMO/,/DEMOQQ/,/OMADSK/,/VOLSTA/,/BUFDEF/
SAVE /NTRVN/,/KEYGET/,/BLKCNV/,/GEWRTN/,/OMAPR2/,/PARCUM/,/XFRAME/
SAVE /OMAPAR/,/FRAMNG/,/OMACNT/,/OMATYP/,/SCTYPE/,/PNTS/
EXTERNAL CHRMAG,BLKDSP,DOBUFS,KADDR,CAPSON,NUMLOF,BDFROP
SAVE
CALL CLCINT
CALL TSTSCR
CALL TRYPPU
CALL TRPSON
PROGNM = 'DISPLAY'
PRGDSC = 'Allows DISPLAY and manipulation of stored data frames.'
CRKEY = 'cOPYrIGHT@@@'
CRLINE = '1984,85 Kevin G. Rhoads & High Voltage Research Lab @ MIT'
DOCR = .TRUE.
DONE = .FALSE.
TYPFRM = 2
BASLOG = 1.0
BASVAL = 2.0
IIXLEN = 101
IIYLEN = 101
IXLEN = 101
IYLEN = 101
IXNUM = 101
IYNUM = 101
LENFR = 10201
LENTR = 101
NTR = 101
IGNORE = 110
SKIPIT = .FALSE.
KILLIT = .FALSE.
DATACQ = .FALSE.
NOT14 = .TRUE.
CALL BLK3X3
MARK = ALLOC(0)
CALL CRCLS
PRINT *,' '
CALL DOBUFS
IA256 = MAINBF
IA512 = MAINBF
MAINBF = APMAIN
TSTBUF = MAINBF
MAINHX = HEXOF(MAINBF)
TSTHEX = HEXOF(TSTBUF)
NDRIVE = -1
NFRAME = 0
PRINT *,' '
PRINT *,' Default Magnification? (0 .. 4)'
I = MENU(0,0,4)
MAGDEF = I*17
1 CONTINUE
CALL CRCLS
PRINT *,' '
PRINT *,'WHICH CHOICE? (1 .. 9)'
PRINT *,' 1 .. 6 = Display Simulated data pattern '
PRINT *,' 7 = Exit '
PRINT *,' 8 = Get frame from disk & display '
PRINT *,' 9 = FROPS (Frame operations submenu)'
I = MENU(6,0,9)
IF (I.EQ.7.OR.ABORT.OR.ESCAPE.OR.INTRPT) THEN
CALL NUMLOF
CALL CAPSON
CALL SETPG0
CALL GRCLS
CALL LEDSOF
CALL RLSE(MARK)
STOP
ENDIF
MAG = MAGDEF
NMAG = MAGDEF
CONTRS = 0.0
CNTRS = 0.0
BRIGHT = 0.0
BRGHT = 0.0
HILO = 1
IF (I.LT.7) THEN
J = I + 500
CALL DEMO(J)
ELSEIF (I.EQ.8) THEN
CALL DEMO(I)
ELSEIF (I.EQ.9) THEN
CALL FROPS
ENDIF
CALL SETPG0
CALL NUMLOF
CALL CAPSON
SKIPIT = .FALSE.
KILLIT = .FALSE.
NOT14 = .TRUE.
GOTO 1
CALL PARSTO
CALL PARRUN
CALL PARR2D
CALL CALCQT
END
*----------------------------------------------------------------------
SUBROUTINE DEMO(I)
$SEGMENT DEMOQX
CHARACTER PROGNM*18,PRGDSC*54,CRKEY*12,CRLINE*72,CN*24
CHARACTER*22 FRMTYP(-2:20),FRAME*20,TC*1,TCALGN(2)*1
CHARACTER*8 HEXOF,MAINHX,TSTHEX,GOTHEX,HAPS(32)
REAL*4 BASVAL,BASLOG
INTEGER*4 IIXLEN,IIYLEN,IXLEN,IYLEN,IA256,IA512,FPEND,FMEND,KADDR,GETBUF
INTEGER*4 TYPFRM,DRIVE,IGNORE,CUMUL(0:16383),ALLOC
INTEGER*4 TSTBUF,MAGDEF,LX,LY,ILX,ILY,HILO,MAG,LENFR,LENTR,NTR,SPEC
INTEGER*4 IXNUM,IYNUM,IA128,SENBAS,SENDAT
INTEGER*4 ZLEN,ZMARK,ZPOINT,ALEN,AMARK,APOINT,APSCR1,APSCR2,APSCR3
INTEGER*4 APMAIN,AP1,AP2,AP3,AP4,AP5,APZR,APMX,AFMTYP,SCRMRK,APS(0:7)
INTEGER*4 LNMAIN,LN1,LN2,LN3,LN4,LN5,LNZR,LNMX,LNS(0:7),IAPS(32),LENS(32)
INTEGER*2 IASC,ISCAN,IKBF1,IKBF2,IERR,PROFIL(0:16383),TYPS(32),LENXS(32)
INTEGER*2 BIG,SMALL,ASC,SCAN,KBF1,KBF2,ERR,LENYS(32),FNRNSN(32),DEFBUF
LOGICAL*4 DOCR,REPEAT,SKIPIT,NOT14,KILLIT,GOT(0:6)
LOGICAL*4 INTRPS,MODE2D,PICTUR,HEXIT,DATACQ,QWERTY
LOGICAL*2 ABORT,ESCAPE,INTRPT
EQUIVALENCE (ASC,IASC),(SCAN,ISCAN),(KBF1,IKBF1),(KBF2,IKBF2),(ERR,IERR)
EQUIVALENCE (TCALGN(1),IASC),(TCALGN(2),TC)
EQUIVALENCE (APS(0),APMAIN),(APS(1),AP1),(APS(2),AP2),(APS(3),AP3)
EQUIVALENCE (APS(4),AP4),(APS(5),AP5),(APS(6),APZR),(APS(7),APMX)
EQUIVALENCE (LNS(0),LNMAIN),(LNS(1),LN1),(LNS(2),LN2),(LNS(3),LN3)
EQUIVALENCE (LNS(4),LN4),(LNS(5),LN5),(LNS(6),LNZR),(LNS(7),LNMX)
EQUIVALENCE (IA,IAPS(1)),(IA2,IAPS(2)),(IA4,IAPS(3)),(IZ,IZR,IAPS(4))
EQUIVALENCE (IMX,IAPS(5)),(IT,IAPS(6)),(IA1,IAPS(7)),(IA3,IAPS(8))
EQUIVALENCE (IA5,IAPS(9)),(ISC1,IAPS(10)),(ISC2,IAPS(11)),(ISC3,IAPS(12))
COMMON /OMABFR/APS,LNS,/OMACNT/IAPS,HAPS,LENS,/OMATYP/TYPS,LENXS,LENYS,FNRNSN
COMMON /ZEROS/ZVALID,ZLEN,ZMARK,ZPOINT,ZZCORR,/BUFDEF/DEFBUF
COMMON /OMASCR/SCRMRK,APSCR1,APSCR2,APSCR3
COMMON /AMPLS/AVALID,ALEN,AMARK,APOINT,AACORR,AFMTYP
COMMON /BLKCNV/MAG,HILO,CONTRS,BRIGHT,BASLOG,/GEWRTN/REPEAT,NMAG,CNTRS,BRGHT,BASVAL
COMMON /IPPENC/SKIPIT,/PARB14/NOT14,KILLIT
COMMON /SPECI/SPEC,/FRAMNG/LENFR,LENTR,NTR
COMMON /GNORF9/CRKEY,CRLINE,DOCR,/NAMEPR/PROGNM,PRGDSC
COMMON /NTRVN/ABORT,ESCAPE,INTRPT,/PARCUM/IGNORE,PROFIL,CUMUL
COMMON /KEYGET/IASC,ISCAN,IKBF1,IKBF2,IERR,/XFRAME/TYPFRM,FRMTYP
COMMON /OMAPR2/IIXLEN,IIYLEN,IXLEN,IYLEN,IA256,IA512
COMMON /DEMOQQ/MAINBF,TSTBUF,MAINHX,TSTHEX,MAGDEF
COMMON /OMAPAR/IXNUM,IYNUM,INTRPS,MODE2D,PICTUR,HEXIT,DATACQ,FRAME,QWERTY,IA128,SENBAS,SENDAT
SAVE /NTRVN/,/KEYGET/,/BLKCNV/,/GEWRTN/,/OMAPR2/,/PARCUM/,/XFRAME/,/BUFDEF/
SAVE /OMAPAR/,/FRAMNG/,/IPPENC/,/PARB14/,/SPECI/,/BFDEMO/,/DEMOQQ/
SAVE LX,LY,ILX,ILY,GOT
EXTERNAL ISTOFM,IST0FM,IGETFM,IG3TFM,BLKDSP,CALL3,KADDR
SAVE
DATA GOT/7*.FALSE./
PROGNM = 'DEMO'
CALL CRCLS
1 PRINT *,' '
ITD = MAINBF
IAD = MAINBF
ILX = KADDR(LX)
ILY = KADDR(LY)
MAINHX = HEXOF(MAINBF)
TSTHEX = HEXOF(TSTBUF)
CALL GOTOXY(0,8)
IF (I.GE.501..AND.I.LE.506) THEN
N = I
J = I - 500
DRIVE = -1
GOTO 3
ENDIF
PRINT *,' DEMO: WHAT N? '
111 CALL ISNTRP
IF (ERR.NE.0) GOTO 111
IF (ESCAPE.OR.INTRPT) RETURN
IF (ABORT) STOP
CN = TC
SPEC = 3141592
CALL GTSTR(CN)
CALL STRIP(CN)
N = INTOF(CN)
CALL GOTOXY(0,5)
PRINT *,' ECHO N = ',N
DRIVE = -1
IF (N.GE.501.AND.N.LE.506) THEN
J = N - 500
ELSE
J = 0
ENDIF
2 PRINT *,' DEMO: WHICH DRIVE? (<RETURN> to auto-search)'
DRIVE = MENU(-1,0,7)
IF (ESCAPE.OR.INTRPT) RETURN
IF (ABORT) STOP
* IF (N.LT.-999.OR.N.GT.999) RETURN
IF (N.LT.0) THEN
ITT = IAD
N = -N
ENDIF
3 CONTINUE
SKIPIT = .FALSE.
KILLIT = .FALSE.
NOT14 = .TRUE.
ITT = IAD
IT2 = ITT
CALL IG3TFM(ITT,LX,LY,ITYPE,N,DRIVE)
PRINT *,' '
PRINT *,' DEMO: IG3TFM RETURN CODE = ',N
IF ((N*J).GT.0) GOT(J) = .TRUE.
LENXS(1) = LX
LENYS(1) = LY
TYPS(1) = ITYPE
FNRNSN(1) = N
TYPFRM = ITYPE
IIXLEN = LX
IIYLEN = LY
IXLEN = LX
IYLEN = LY
IXNUM = LX
IYNUM = LY
LENTR = LX
NTR = LY
LENFR = LX*LY
ITT = IT2
IGNORE = 110
MAG = MAGDEF
NMAG = MAGDEF
CONTRS = 0.0
CNTRS = 0.0
BRIGHT = 0.0
BRGHT = 0.0
HILO = 1
DEFBUF = 1
CALL CALL3(BLKDSP,ITT,ILX,ILY)
CALL SETPG0
IF (I.GE.501..AND.I.LE.506) RETURN
GOTO 1
END
*----------------------------------------------------------------------
BLOCK DATA BDFROP
CHARACTER*22 FRMTYP(-2:20)
INTEGER*4 TYPFRM
INTEGER*2 PRPNTS,NOPNTS,DEFBUF
LOGICAL*2 TEK468,TK7854,TK7D20
COMMON /PNTS/PRPNTS,NOPNTS,/SCTYPE/TEK468,TK7854,TK7D20
COMMON /XFRAME/TYPFRM,FRMTYP,/BUFDEF/DEFBUF
SAVE /SCTYPE/,/PNTS/,/XFRAME/,/BUFDEF/
DATA FRMTYP/' *** UNINITIALIZED ***','Zero Correction Data'
& ,'RAW Data no Zero corr','Zero Corrected Data','Simulated data',
& 'Normalized, no Zero corr','Zero Corr. & Normalized','RAW Normalization Data'
& ,' UNKNOWN/NONSTANDARD','ZRC Normalization Data ','ZRC-Normed & Zero Corr'
& ,'|E| from RAW data','|E| from ZRC data','|E| from NORMed data'
& ,'|E| from ZRC&NORM data','|E| fm ZRC&ZRC-NORM','? |E| from ??'
& ,'RHO from RAW data','RHO from ZRC data','RHO from NORMed data'
& ,'RHO from ZRC&NORM data','RHO fm ZRC&ZRC-NORM','? RHO from ??'/
DATA DEFBUF/1/,PRPNTS/0/,NOPNTS/0/,TEK468/.FALSE./,TK7854/.FALSE./
DATA TK7D20/.FALSE./
END

También podría gustarte