HRC,历史记录卡,下面举个例子:
!-----------Important program-----------------
BLDCSY
ME2DE
RCOR2D
SET (NAM=GDBSTA:IPDELAY, RVL=5)
DFNELE (NAM=MAX$IN, TYP=POI)
CRSUBTYP (NAM=MAX$IN, LIN=1, DEL=Y, TYP=ELE, STY=EVA)
PUTSTR (OBJ=MAX$IN.EVA(1), DSC=S, TYP=ELE, STR=PP_PXPY)
DSBSYS (NAM=REPORT)
FGEX2D (NAM=~CAM$IN, MAX=MAX$IN, OPN=N)
ENBSYS (NAM=REPORT)
GETEVA (NAM=ROT$IN, ELE=MAX$IN.EVA(1), DSC=D)
TRAOBJ (NEW=CAM$IN, OLD=~CAM$IN, ANG=-ROT$IN, AXI=Z)
SETFLD (NAM=CAM$IN, DSC=Z, STY=APT, STR=0)
DFNELE (NAM=MAX$EX, TYP=POI)
CRSUBTYP (NAM=MAX$EX, LIN=1, DEL=Y, TYP=ELE, STY=EVA)
PUTSTR (OBJ=MAX$EX.EVA(1), DSC=S, TYP=ELE, STR=PP_PXPY)
DSBSYS (NAM=REPORT)
FGEX2D (NAM=~CAM$EX, MAX=MAX$EX, OPN=N)
ENBSYS (NAM=REPORT)
GETEVA (NAM=ROT$EX, ELE=MAX$EX.EVA(1), DSC=D)
TRAOBJ (NEW=CAM$EX, OLD=~CAM$EX, ANG=-ROT$EX, AXI=Z)
SETFLD (NAM=CAM$EX, DSC=Z, STY=APT, STR=0)
CRSUBTYP (NAM=NO$VAL, LIN=4, DEL=Y, TYP=PRC)
CVSTRTXT (TXT=PRC:NO$VAL, LIN=1, STR='ENBSYS TTYOPN')
CVSTRTXT (TXT=PRC:NO$VAL, LIN=2, STR='HELP MSG:CAM$1')
CVSTRTXT (TXT=PRC:NO$VAL, LIN=3, STR='UNWIND (VAL=0, STO=N, FRA=2, LAB=10)')
CVSTRTXT (TXT=PRC:NO$VAL, LIN=4, STR='DSBSYS TTYOPN')
~I$E=EIEIIEIE
IFTHENS (ST1=~DEL$PAR, ST2=Y, TYP=EQ)
DELETE (NAM=HRC:~CAM$PAR, CNF=N)
!-------------------------------------------
! define HRC object
DFNHRC (NAM=~CAM$PAR, FLD=(N,A,B,C,D), FLG=(3,23,10,10,10))
CRSUBTYP (NAM=~CAM$PAR, LIN=CAM$NBR, DEL=N, TYP=HRC)
DO (NAM=LOOP$CNT, BGN=1, END=CAM$NBR)
CVREACHS (NAM=~CAM$NBR, VAL=LOOP$CNT, FM1=2, FM2=0, INT=Y)
CONCAT (NAM=~EDT$PAR, STR=(~CAM$PAR,'.LIN(',~CAM$NBR,')'), LMG=1)
SUBSTR (NAM=~CAM$TYP, LM1=1, RM1=1, RSD=~I$E, LM2=LOOP$CNT, RM2=LOOP$CNT)
~DMY$STR = '(CAM_MY( ) , CAM_PY( ))'
SUBSTR (NAM=~DMY$STR, LM1=9, RM1=9, RSD=~CAM$NBR, LM2=2, RM2=2)
SUBSTR (NAM=~DMY$STR, LM1=21, RM1=21, RSD=~CAM$NBR, LM2=2, RM2=2)
PUTVALS (OBJ=~EDT$PAR, TYP=HRC, CDS=(N,A,D), STR=(~CAM$NBR,~DMY$STR,~CAM$TYP))
ENDDO
ENDIF
10: ENBSYS TTYOPN
EDIT (NAM=~CAM$PAR, TYP=HRC, CRE=N, MSK=GENPA)
INQSTR (NAM=~CNF$INP, STR= O.K. (Y/[N]) ?)
DSBSYS TTYOPN
IFEQS (ST1=~CNF$INP, ST2=Y, EQL=20, ELS=10)
20: CONTIN
DFNCDH (ERR=GDBCDH:GETARG$1, NAM=NO$VAL)
DO (NAM=LOOP$CNT, BGN=1, END=CAM$NBR)
CVREACHS (NAM=~CAM$NBR, VAL=LOOP$CNT, FM1=2, FM2=0, INT=Y)
CONCAT (NAM=~EDT$PAR, STR=(~CAM$PAR,'.LIN(',~CAM$NBR,')'), LMG=1)
GETVALS (OBJ=~EDT$PAR, TYP=HRC, CDS=(A,B,C,D),CHS=(~CAM$NAM(LOOP$CNT),~CAM$ANG(LOOP$CNT),~CAM$DIS(LOOP$CNT),~CAM$TYP(LOOP$CNT)))
CVSTRCHS (CHS=~CAM$STR(1), STR=~CAM$NAM(LOOP$CNT))
DELCHS (NAM=(~NOCK$MY(LOOP$CNT),~NOCK$PY(LOOP$CNT)), CNF=N)
RENAMQ (FRM=~CAM$STR(1), TO =~NOCK$MY(LOOP$CNT), TYP=CHS)
RENAMQ (FRM=~CAM$STR(2), TO =~NOCK$PY(LOOP$CNT), TYP=CHS)
CVSTRREA (NAM=CAM$ANG(LOOP$CNT), STR=~CAM$ANG(LOOP$CNT))
CVSTRREA (NAM=CAM$DIS(LOOP$CNT), STR=~CAM$DIS(LOOP$CNT))
IFTHENS (ST1=~CAM$TYP(LOOP$CNT), ST2=I, TYP=NE)
IFTHENS (ST1=~CAM$TYP(LOOP$CNT), ST2=E, TYP=NE)
ENBSYS TTYOPN
HELP (NAM=MSG:CAMS$2)
DSBSYS TTYOPN
UNWIND (VAL=0, STO=N, FRA=3, LAB=10)
ENDIF
ENDIF
ENDDO
DELCDH (NAM=GDBCDH:NO$VAL, CNF=N)
CVSTRREA (NAM=SC$PAR(1), STR=~SC$PAR)
CRSUBTYP (NAM=CPY$CAMN, LIN=7, DEL=Y, TYP=ELE, STY=NPT)
PUTVALS (OBJ=CPY$CAMN.NOM.PTS(1), CDS=T, STR=CLP)
PUTVALS (OBJ=CPY$CAMN.NOM.PTS(2), CDS=(T,P), STR=(SDA,PLA))
PUTVALS (OBJ=CPY$CAMN.NOM.PTS(3), RDS=(A,C), VAL=(SC$PAR(1),SC$PAR(2)), CDS=(T,P),STR=(STA,VPL))
PUTVALS (OBJ=CPY$CAMN.NOM.PTS(4), CDS=T, STR=DIR)
PUTVALS (OBJ=CPY$CAMN.NOM.PTS(5), RDS=(A,B), VAL=(1,1), CDS=(T,P), STR=(STO,PNT))
PUTVALS (OBJ=CPY$CAMN.NOM.PTS(6), CDS=T, STR=CLP)
PUTVALS (OBJ=CPY$CAMN.NOM.PTS(7), CDS=T, STR=CLP)
DIR$OFS = 1
DO (NAM=LOOP$CNT, BGN=1, END=CAM$NBR, DLT=1)
CVREACHS (NAM=~CAM$NBR, VAL=LOOP$CNT, FM1=2, FM2=0, INT=Y)
CVTXTCHS (TXT=MSG:CAMS$3, LIN=1, CHS=~TXT$INF)
SUBSTR (NAM=~TXT$INF, LM1=31, RM1=32, RSD=~CAM$NBR, LM2=1, RM2=2)
ENBSYS TTYOPN
PTODEV (STR=~TXT$INF, DEV=TT, PRE=^[[16;25f)
DSBSYS TTYOPN
IFTHENS (ST1=~CAM$TYP(LOOP$CNT), ST2=I, TYP=EQ)
TRAOBJ (NEW=CAM$DMY, OLD=CAM$IN, SHZ=CAM$DIS(LOOP$CNT), ANG=CAM$ANG(LOOP$CNT), AXI=Z)
ELSE
TRAOBJ (NEW=CAM$DMY, OLD=CAM$EX, SHZ=CAM$DIS(LOOP$CNT), ANG=CAM$ANG(LOOP$CNT), AXI=Z)
ENDIF
FLEX2D (NAM=CAM$DMY, MIN=(MIN$1,MIN$2), MAX=(MAX$1,MAX$2), OPN=N, CLW=N, MOD=NOE, CPY=DEF$PNT1)
COLPTS (NAM=EXTR$VAL, DEL=Y, ELE=(MIN$1,MIN$2,MAX$1,MAX$2))
FXTREM (NAM=(MIN$X,MAX$X), OBJ=EXTR$VAL, TYP=DVI, MOD=NOE, DSC=X)
GETVALS (OBJ=MIN$X.ACT, TYP=ELE, RDS=(X,Y,Z,U,V,W), REA=(X$MIN,Y$MIN,Z$MIN,U$MIN,V$MIN,W$MIN))
GETVALS (OBJ=MAX$X.ACT, TYP=ELE, RDS=(X,Y,Z,U,V,W), REA=(X$MAX,Y$MAX,Z$MAX,U$MAX,V$MAX,W$MAX))
CPYOBJ (FRM=CPY$CAMN, TO =~NOCK$MY(LOOP$CNT), TYP=ELE)
CPYOBJ (FRM=CPY$CAMN, TO =~NOCK$PY(LOOP$CNT), TYP=ELE)
PUTVALS ~NOCK$MY(LOOP$CNT).NOM.PTS(1), ELE, (X,Y,Z,I), (-OFFSET$X,-OFFSET$Y,Z$MIN,0), H, ' '
PUTVALS ~NOCK$MY(LOOP$CNT).NOM.PTS(3), ELE, (X,Y,Z,U,V,W,I), (X$MIN,Y$MIN,Z$MIN,U$MIN,V$MIN,W$MIN,0), H, ' '
PUTVALS ~NOCK$MY(LOOP$CNT).NOM.PTS(4), ELE, (X,Y,Z,U,V,W,I), (X$MIN,Y$MIN-DIR$OFS,Z$MIN,U$MIN,V$MIN,W$MIN,0), H, ' '
PUTVALS ~NOCK$PY(LOOP$CNT).NOM.PTS(1), ELE, (X,Y,Z,I), (OFFSET$X,OFFSET$Y,Z$MAX,0), H, ' '
PUTVALS ~NOCK$PY(LOOP$CNT).NOM.PTS(3), ELE, (X,Y,Z,U,V,W,I), (X$MAX,Y$MAX,Z$MAX,U$MAX,V$MAX,W$MAX,0), H, ' '
PUTVALS ~NOCK$PY(LOOP$CNT).NOM.PTS(4), ELE, (X,Y,Z,U,V,W,I), (X$MAX,Y$MAX+DIR$OFS,Z$MAX,U$MAX,V$MAX,W$MAX,0), H, ' '
PUTVALS ~NOCK$PY(LOOP$CNT).NOM.PTS(5), ELE, (X,Y,Z,U,V,W,I), (X$MIN,Y$MIN,Z$MIN,U$MIN,V$MIN,W$MIN,0), H, ' '
PUTVALS ~NOCK$PY(LOOP$CNT).NOM.PTS(6), ELE, (X,Y,Z,I), (-OFFSET$X,OFFSET$Y,Z$MIN,0), H, ' '
PUTVALS ~NOCK$PY(LOOP$CNT).NOM.PTS(7), ELE, (X,Y,Z,I), (OFFSET$X,OFFSET$Y,Z$MAX,0), H, ' '
ENDDO
DELELE (NAM=(CPY$CAMN,CAM$DMY,MIN$1,MIN$2,MAX$1,MAX$2,EXTR$VAL), CNF=N)
DELELE (NAM=(MIN$X,MAX$X,MAX$IN,CAM$IN,MAX$EX,CAM$EX), CNF=N)
DELETE (NAM=(PRC:NO$VAL,TRA:TEMP$TRA), CNF=N)
DELCHS (NAM=(~I$E,~DEL$PAR,~CAM$NBR,~CAM$PAR,~EDT$PAR,~CAM$TYP), CNF=N)
DELCHS (NAM=(~EDT$NAM,~CNF$INP,~SC$PAR,~CAM$IN,~CAM$EX,~DMY$STR), CNF=N)