== Macros:
== COMP srcfile1 srcfile2 Compiles, with the nolist option
== COMPP srcfile1 srcfile2 ... Compiles to $P.#srctype.srcfile
== COMPF srcfile1 srcfile2 ... Compiles to $dev2.TESTLST
== CK srcfile Checks your subvolumes.srcfile to TEST's
?SECTION set_SysIni MACRO
var CdVol \test.$dev2.TEST
var LstVol \test.$dev2.TESTLST
var SrcVol \test.$dev2.TESTSRC
[#case [#charget [#shiftstring SrcFile] 1 for 3]
|SUB| var TST_OBJ \test.$dev2.subobj.[SrcFile]O
var ObjVol \test.$dev2.subobj
var TST_REN \test.$dev2.OLDobj.[SrcFile]X
|otherwise| var TST_OBJ \test.$dev2.TESTOBJ.[SrcFile]O
var ObjVol \test.$dev2.TESTOBJ
var TST_REN \test.$dev2.OLDobj.[SrcFile]X
]
var TST_POBJ \test.$dev1.FEDROBJ.FED1
var ObeyVol_VOL \test.$dev1.TEST
?section doc macro
volume $dev2.TESTdoc
?section fil macro
volume $DEV4.TURBOFIL
?section blk macro
volume $dev2.TESTBLK
?section OB macro
echo volume $dev2.TESTOBEY
?section LIB macro
ECHO VOLUME $dev1.COPYSRC
?section LST macro
echo volume $dev2.TESTLST
?section SRC MACRO
[#if [#empty %1%] |then|
volume $dev2.TESTSRC
|else|
#set SrcFile %1%
set_SysIni
]
?SECTION ENF MACRO
echo VOLUME $dev2.TESTENF
?section gl macro
var SrcFile
echo edit $dev2.TESTlst.[SrcFile]S
?section ck macro
var SrcFile %1%
[#case [#charget [#shiftstring SrcFile] 1 for 1]
|N| fup info (%1%,dev1.COPYSRC.%1%)
|otherwise| fup info (%1%,$dev2.TESTSRC.%1%)
]
?SECTION Echoto MACRO
var EchoOut %1%
?section ECHO macro
#output %*%
%*%
?section var macro
[#if [#variableinfo/existence/ %1%] |else| #push %1%]
[#if [#empty %2%] |then| |else| #set %1% %2 to 99%]
?section FREEZE MACRO
var PcServer
var PcName
[#IF [#EMPTY %1%] |THEN|
|else|
#set PCServer %1%
]
[#IF [#EMPTY %1%] |THEN|
|else|
[#IF [#EMPTY %2%] |THEN|
var PcServer %1%
|else|
var PcName %1%
var PcServer %2%
]
]
[#if [#emptyv PcName] |then|
var PcName [#input Enter the Pathway System: ($MNTF):]
]
[#if [#emptyv PcServer] |then|
var PcServer [#input Enter the Pathway Server (TESTPOST-SERVER):]
]
PATHCOM [PcName];FREEZE [PCServer]
PATHCOM [PcName];STOP [PCServer]
PATHCOM [PcName];STOP [PCServer]
[#if [#empty %2%] |then| |else| FREEZE %2 TO 99%]
?section THAW MACRO
var PcServer
[#IF [#EMPTY %1%] |THEN|
|else|
#SET PCServer %1%
]
PATHCOM [PcName];THAW [PCServer]
[#if [#empty %3%] |then| |else| THAW %1% %3 TO 99%]
?section START MACRO
var PcServer
[#IF [#EMPTY %1%] |THEN|
|else|
#SET PCServer %1%
]
PATHCOM [PcName];START [PCServer]
[#if [#empty %3%] |then| |else| START %1% %3 TO 99%]
=======================
?section debugon macro
======================
[#IF [#EMPTY %1%] |THEN|
|else|
[#IF [#EMPTY %2%] |THEN|
var PcServer %1%
|else|
var PcName %1%
var PcServer %2%
]
]
[#if [#emptyv PcName] |then|
var PcName [#input Enter the Pathway System: ($MNTF):]
]
[#if [#emptyv PcServer] |then|
var PcServer [#input Enter the Pathway Server (TESTPOST-SERVER):]
]
#push me
#set me [#myterm]
freeze
echo pathcom [PcName];alter [PCServer],hometerm [me],debug on
thaw
#pop me
?section debugoff macro
=======================
var PcName %1%
var PcServer %2%
freeze
pathcom [PcName];alter [PCServer],hometerm $VHS,debug off
thaw
?section copy macro
fup dup %1%,%2%,saveall
fup secure %2%,"nnnn"
?section cinfo macro
var SrcFile
[#IF [#EMPTY %1%] |THEN|
|ELSE|
#SET SrcFile %1%
set_SysIni
]
fup/inline/
-- info $dev2.TESTSRC.[SrcFile]s
-- info $dev2.TESTOBJ.[SrcFile]o
-- exit
?section pout macro
#SET #INLINEPREFIX --
peruse /inline/$ppls
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- ll;le/out TESTlst.x/a;del
-- cqf/`/
-- dq/` /
-- cqa/`//a
-- e
?section fs alias
finddata
?section grep alias
finddata %*%
?section OK macro
[#case [#input RUN %*% (y)?] |y Y| echo %*% |otherwise|]
#output ---------------------------------------------
?SECTION PCLS MACRO
SPOOLCOM $SPLS;JOB (OWNER),DELETE !
SPOOLCOM $PPLS;JOB (OWNER),DELETE !
?SECTION SV MACRO
FUP SUBVOLS %*%
?section Type macro
fup copy %1%
?section p macro
[#if [#empty %1%] |then| peruse $PPLS |else| peruse $SPLX]
?SECTION INFODEFINE MACRO
#FRAME
#PUSH X1 X2 X3 X4
#SETMANY X1 X2 X3 X4,[#DEFINEINFO %1%]
#OUTPUT/HOLD/ADD DEFINE %1%
#OUTPUT/HOLD,COLUMN 25/,CLASS [X2]
#OUTPUT/COLUMN 40/,[X3] [X4]
#UNFRAME
[#if [#empty %2%] |then| |else| INFODEFINE %2 to 99%]
?SECTION CREATEDEFINES MACRO
PURGE XD
INFO/OUT XD/DEFINE =*
EDIT XD;DQN/=/;CQ/ Define Name / INFODEFINE /A;E
PURGE DEFINES
#PUSH #OUT
#SET #OUT DEFINES
O XD
#POP #OUT
EDIT DEFINES;DQ/INFODEFINE/;E
EDIT DEFINES
[#if [#empty %2%] |then| |else| INFODEFINE %2 to 99%]
?SECTION ST MACRO
[#IF [#EMPTY %1%]
|THEN| STATUS *,TERM
|ELSE| STATUS %*%
]
?SECTION DelY MACRO
[#IF [#FILEINFO/EXISTENCE/%1%] |THEN|
FILEINFO %1%
[#CASE [#INPUT Do you wish to delete this (y)?]
|y Y| purge %1%
|otherwise|
]
]
?SECTION FS ALIAS
FINDDATA
?SECTION CALC ALIAS
COMPUTE
?SECTION COMPARE macro
$dev2.jimobj.COMPARE %*%
?section PC MACRO
var PcName
[#if [#empty %1%]
|then| ECHO pathcom [PcName]
|else| #set PcName %*%
ECHO pathcom %*%]
?section OBJ MACRO
ECHO $dev2.TESTOBJ
?section TL macro
LOAD/KEEP 1/$dev2.TESTSRC.ZMACROS
?section GT macro
edit $dev2.TESTSRC.ZMACROS;set tabs 10 20 30 40 50 60 70;%1 TO 9%
?section R macro
var TST_OBJ
var Src
[#if [#empty %1%] |then| |else| SRC %1%]
ECHO RUN [TST_OBJ] %2 to 99%
?section RD macro
var TST_OBJ
[#if [#empty %1%] |then| |else| SRC %1%]
RUND [TST_OBJ]
?section DEFINESX macro
[#if [#empty %*%] |then| echo INFO DEFINE =* |ELSE| echo INFO DEFINE %*%]
?section CD macro
[#if [#empty %1%] |then| |else| Var CdVol %1%]
volume [CdVol]
?section G macro
var EditLastSrc %*%
EDIT;SET TABS 10 20 30 40 50 60 70;SET JOIN 80;G [EditLastSrc]
?section GS macro
var SrcFile %*%
EDIT;SET TABS 10 20 30 40 50 60 70;SET JOIN 80;G [SrcFile]S
?section O macro
var ObeyVol %1%
[#if [#emptyv ObeyVol] |then|
#output ([ObeyVol]) doesn't exist.
|else|
[#if [#fileinfo/existence/[ObeyVol]] |then|
#push Found
edit /OUTV Found,PRI 139/[ObeyVol] R;LB/?SECTION/RB/ ROUTINE/RN/*/;E
[#if [#linecount Found] > 2 |then|
echo T [ObeyVol]
|ELSE|
echo OBEY [ObeyVol]
]
#pop Found
|else|
#output The default Obey File hasn't been set yet. Try: O obeyfile
]
]
[#if [#empty %2%] |then| |else| O %2 to 99%]
?section BYE macro
========================
CSAVE
LOGOFF
?section CLOAD macro
========================
#PUSH WS_VOLUME
#SET WS_VOLUME [#DEFAULTS]
VOLUME
O DEFAULTS
VOLUME [WS_VOLUME]
#POP WS_VOLUME
?section CSAVE macro
========================
#push WS_VOLUME
#set WS_VOLUME [#DEFAULTS]
VOLUME
#FRAME
#PUSH #INLINEPREFIX
#SET #INLINEPREFIX --
edit/INLINE/DEFAULTS !
-- DQ ! F/L
-- na;100 /#set PCName [PCName]/
-- na;100 /#set PCServer [PCServer]/
-- na;100 /#set SrcFile [SrcFile]/
-- na;100 /#set ObeyVol [ObeyVol]/
-- na;100 /#set CdVol [CdVol]/
-- na;100 /#set SrcFile [SrcFile]/
-- na;100 /#set COut [COut]/
-- na;100 /#set EditLastSrc [EditLastSrc]/
-- na;100 /#set CdVol [CdVol]/
-- E
VOLUME [WS_VOLUME]
#UNFRAME
?section FILESPEC macro
[#if [#fileinfo /existence/ %1%] |then|
#output /hold/ [#fileinfo/fullname/ %1%]
#output /column 35,hold/
[#case [#fileinfo /filestructure/ %1%]
|0| #output /hold/ U:
|1| #output /hold/ R:
|2| #output /hold/ E:
|3| #output /hold/ K:
|otherwise| ]
#output /column 37,hold/ [#fileinfo/eof/ %1%]
#output /column 44,hold/&
[_CONTIME_TO_TEXT [#CONTIME [#fileinfo/modification/%1%]]]
#output /column 72,hold/ [#fileinfo/owner/ %1%]
|else|
#output /hold/ File %1% does not exist ]
#output
?section SCUPINFO macro
#frame
#push OUTLIST
SCUP /OUTV OUTLIST/INFO %*%
#output [#LINEGET OUTLIST 1 FOR 1]
#output [#LINEGET OUTLIST 5 FOR 1]
#unframe
?section CCOMPARE macro
=======================
var SrcFile %1%
set_SrcFile [SrcFile]
compare [SrcFile]s, $tech1d.source.[SrcFile]s
[#if [#empty %2%] |then| |else| CCOMPARE %2 to 99%]
?section set_SrcFile macro
=========================
var SrcFile %1%
set_SysIni
?section COMPF macro
=======================
var PrintFile file
COMP_CheckSrc %1%
[#if [#empty %2%] |then| |else| COMPF %2 TO 99%]
?SECTION CL ALIAS
COMPP
?section COMPP macro
=======================
var PrintFile print
COMP_CheckSrc %1%
[#if [#empty %2%] |then| |else| COMPP %2 TO 99%]
?SECTION CNL ALIAS
COMP
?section COMP macro
=======================
var PrintFile none
COMP_CheckSrc %1%
[#if [#empty %2%] |then| |else| COMP %2 TO 99%]
?section COMP_CheckSrc macro
=======================
[#IF [#FILEINFO/EXISTENCE/DEFINES] |THEN| O DEFINES]
set_SrcFile %1%
SET_SrcLanguage
[#case [PrintFile]
|file|
echo FUP PURGE $dev2.TESTLST.[SrcFile]!
#set PrintFile $dev2.TESTLST.[SrcFile]
|print|
echo SPOOLCOM $PPLS;JOB (LOC #[SrcLanguage].[SrcFile]),DELETE!
#set PrintFile $P.#[SrcLanguage].[SrcFile]
|otherwise| #set PrintFile
]
[#case [SrcLanguage]
|SQL| COMP_SQL
|SCOBOL| COMP_SCOBOL
|C| COMP_C
|TAL| COMP_TAL
|otherwise| >>>> Can't Compile [SrcFile]
]
?section SET_SrcLanguage macro
var SrcFile
#push TMP_SRC TMP_OBJ
[#if [#fileinfo/existence/ [SrcFile]S] |then|
#set TMP_SRC [SrcFile]S
#set TMP_OBJ [SrcFile]O
|else|
[#if [#fileinfo/existence/ [SrcFile]] |then|
#set TMP_SRC [SrcFile]
#set TMP_OBJ [SrcFile]
]
]
[#if [#empty [TMP_SRC]]
|then|
#output Cannot locate [SrcFile]
|else|
CheckSource [TMP_SRC] [TMP_OBJ]
]
#pop TMP_SRC
?section CheckSource macro
==========================
var SrcLanguage SQL
#push Found
edit /OUTV Found,PRI 139/%1% R;LB/ SCREEN /RB/ SECTION/RN/*/;E
[#if [#linecount Found] > 2 |then| #SET SrcLanguage SCOBOL ]
#pop Found
#push Found
edit /OUTV Found,PRI 139/%1% R;LB/ $SYSTEM.SYSTEM.EXTDECS/;E
[#if [#linecount Found] > 2 |then| #SET SrcLanguage TAL ]
#pop Found
#push Found
edit /OUTV Found,PRI 139/%1% R;LB/#include/r/;e
[#if [#linecount Found] > 2 |then| #SET SrcLanguage C ]
#pop Found
#output ------ SOURCE IS [SrcLanguage]
#push Found
#set Found %1%
[#case [#charget [#shiftstring Found] 1 for 1]
|N| SrcLanguage
|otherwise|
]
#pop Found
?section COMP_SCOBOL macro
#OUTPUT ------------------------ SCOBOL ------------------------------
#PUSH MYS
#SET MYS [#FILEINFO/VOLUME/[SrcFile]S].[#FILEINFO/SUBVOL/[SrcFile]S]
echo VOLUME $dev1.COPYSRC
[#IF [#EMPTYV PrintFile] |THEN|
echo SCOBOLX/IN [MYS].[SrcFile]S/[TST_POBJ];NOLIST
|ELSE|
echo SCOBOLX/IN [MYS].[SrcFile]S,OUT [PrintFile]/[TST_POBJ]
]
[#IF (_COMPLETION:COMPLETIONCODE > 1) |THEN|
#OUTPUT **** ERROR **** CHECK %1%
]
ECHO VOLUME [MYS]
#POP MYS
#OUTPUT --------------------------------------------------------------
?section COMP_TAL macro
=========================
#push MYS
#set MYS [#FILEINFO/VOLUME/[SrcFile]S].[#FILEINFO/SUBVOL/[SrcFile]S]
echo VOLUME $dev1.COPYSRC
#output ------------------------------------------------------------ TAL BEG
[#IF [#EMPTYV PrintFile] |THEN|
echo TAL/IN [MYS].[SrcFile]S/[TST_OBJ];RUNNABLE;NOLIST
|ELSE|
echo TAL/IN [MYS].[SrcFile]S/[TST_OBJ];RUNNABLE
echo TAL/IN [MYS].[SrcFile]S,OUT [PrintFile]/[TST_POBJ]
]
[#IF (_COMPLETION:COMPLETIONCODE > 1) |THEN|
#OUTPUT **** ERROR **** CHECK %1%
]
echo VOLUME [MYS]
#pop MYS
#output ------------------------------------------------------------ TAL END
?section COMP_C macro
=========================
#PUSH MYS
#push MYS
#set MYS [#FILEINFO/VOLUME/[SrcFile]S].[#FILEINFO/SUBVOL/[SrcFile]S]
echo VOLUME $dev1.COPYSRC
#output -------------------------------------------------------------- C BEG
[#IF [#EMPTYV PrintFile] |THEN|
echo C/IN [MYS].[SrcFile]S/[TST_OBJ];RUNNABLE,NOLIST
|ELSE|
echo C/IN [MYS].[SrcFile]S,OUT [PrintFile]/[TST_OBJ];RUNNABLE,NOLIST
]
[#IF (_COMPLETION:COMPLETIONCODE > 1) |THEN|
#OUTPUT **** ERROR **** CHECK %1%
]
ECHO VOLUME [MYS]
#POP MYS
#output -------------------------------------------------------------- C END
?SECTION COMP_SQL MACRO
=======================
#PUSH MYS
#push MYS
#set MYS [#FILEINFO/VOLUME/[SrcFile]S].[#FILEINFO/SUBVOL/[SrcFile]S]
echo VOLUME $dev1.COPYSRC
echo PARAM SYMBOL-BLOCKS 8
[#IF [#fileinfo/existence/ [TST_REN]] |then|
ECHO SQLCI;PURGE [TST_REN] !;EXIT]
[#IF [#fileinfo/existence/ [TST_OBJ]] |then|
ECHO SQLCI;FUP RENAME [TST_OBJ],[TST_REN];EXIT]
#output ---------------------------------------------------------COBOL85 BEG
[#IF [#EMPTYV PrintFile] |THEN|
echo COBOL85/IN [MYS].[SrcFile]S/[TST_OBJ];nolist;SUPPRESS;ENV COMMON
|else|
echo cobol85/IN [MYS].[SrcFile]S,OUT [PrintFile]/[TST_OBJ];ENV COMMON
]
ECHO VOLUME [MYS]
[#IF (_COMPLETION:COMPLETIONCODE > 1) |THEN|
#OUTPUT **** COBOL85 ERROR ****
|ELSE|
#OUTPUT ---- COBOL85 SUCCESSFULL
#output ---------------------------------------------------------COBOL85 END
COMP_SQLCOMP %1%
]
?SECTION COMP_SQLCOMP MACRO
===========================
#PUSH LstVol
#output -------------------------------------------------------- SQLCOMP BEG
echo SQLCOMP/IN [TST_OBJ],OUTV LstVol/CATALOG $DEV3.MISCCATL
[#IF ([#LINEFIND LstVol 1 No SQL source ]>0) |THEN|
#OUTPUT Sql Compiling is not needed for this program
|ELSE|
[#IF (_COMPLETION:COMPLETIONCODE < 0) |THEN|
#OUTPUT *** SQLCOMP WARNING *** CHECK $P.#COBOL.[SrcFile]
#PUSH #OUT
#SET #OUT $P.#SQLCOMP.[SrcFile]
#OUTPUTV LstVol
#POP #OUT
|ELSE|
[#IF (_COMPLETION:COMPLETIONCODE > 1) |THEN|
#OUTPUT **** SQLCOMP ERROR **** CHECK $P.#SQLCOMP.[SrcFile]
#PUSH #OUT
#SET #OUT $P.#SQLCOMP.[SrcFile]
#OUTPUTV LstVol
#POP #OUT
|ELSE|
#output SQLCOMP successful: [_COMPLETION:COMPLETIONCODE]
#PUSH #OUT
#SET #OUT $P.#SQLCOMP.[SrcFile]
#OUTPUTV LstVol
#POP #OUT
] ] ]
#output -------------------------------------------------------- SQLCOMP END
#POP LstVol
?SECTION PRINT MACRO
FUP COPY %1%,$P
[#if [#empty %2%] |then| |else| PRINT %2 to 99%]
?SECTION SQCOST MACRO
SQLCOMP/IN $dev2.TESTOBJ.%1%,OUT $P.#SQCOST/ &
STOREDDEFINES EXPLAIN PLAN NORECOMPILE
?section LOG macro
[#if [#empty %1%] |then|
EDIT $dev2.TEST.LOG2009;XVS L-20;E
|else|
#frame
#push #out
#set #width 230
#push wYY wMM wDD wHH wMI
#setmany wYY wMM wDD wHH wMI, [#contime [#timestamp]]
[#IF [wYY]< 10 |THEN| #SET wYY 0[wYY]]
[#IF [wMM]< 10 |THEN| #SET wMM 0[wMM]]
[#IF [wDD]< 10 |THEN| #SET wDD 0[wDD]]
[#IF [wHH]< 10 |THEN| #SET wHH 0[wHH]]
[#IF [wMI]< 10 |THEN| #SET wMI 0[wMI]]
#set #out $dev2.TEST.LOG[wYY]
#output [wMM]/[wDD]/[wYY] [wHH]:[wMI]-> %*%
#set #width 80
#pop #out
#unframe
]
?section dir ALIAS
fileinfo
?section sv macro
fup subvols %1%
?SECTION CLS MACRO
#FRAME
[#DEF ascii STRUCT
BEGIN
BYTE byt5(0:1)
value 27 73;
CHAR clr(0:1)
redefines byt5;
END;
]
#OUTPUT [ascii:clr(0:1)]
#UNFRAME
?section tt macro
var tfile %1%
t [tfile]
?section file macro
volume $dev2.testfile