The Life and Times of Jim
Hi, there. I'm Jim. Welcome to my phlog!
This site was written for Las Vegas, then LouisVille. Now, it seems to be about anywhere. In these phlogs, you'll see a lot of my personal notes and pictures. I like to post my observations here to remember life and celebrate it. I'm not religious. I don't pray for good fortune. I'm ecstatically grateful for the gift of life and I think our time should be remembered and not taken for granted. I'm not a writer. I think pictures tell stories so much better than words. I love just about everything in this life, and, I guess that would have to include you. So, if you've seen me, don't be surprised if your picture is in here somewhere. Of all the critters, people are absolutely the most interesting. 
<< 08/2009 < 07/2010 Calendar 09/2010 > 08/2011 >>Sign InView Other Logs
Sat 
08/28/2010 15:15:13
 jim  Epcot People
Sat 
08/28/2010 15:15:12
 jim  Epcot - Fountains
Thu 
08/26/2010 07:09:36
 jim  Computer Consultants are a strange group
Travelling computer consultants are a strange group.
We all have two places we call home.

We're broke between contracts, and rich during contracts.
Most people don't want to see us when we're broke, and that's usually when we are hiding in our real homes.

We've done things or are doing things that are outside the realm of normality.
One buddy is walking across the country, another has programmed the Space Shuttle, and another is bartending.
Some flourished with their own companies during the dot com boom, just to fall back into consulting.

You never hear about us, but we do change the world.
I've done some world-first, including adding some stuff to the ATM screens that you see all over the country.

Usually, we come in, do incredible projects, make it work and leave.
If it fails - We are responsible because we are idiots. Fortunately, I've never failed.
If it works - Others are responsible. They almost always get promoted. 
The consultants either move on, go full time, or become managers and never code again.
Rarely, if ever, our names get mentioned anywhere. We almost never get CC'd on the "Job well done" email from the CEO.

But still, it gets into the blood.
We know what we've done. Our abilities to work either independantly or in a group, has molded our ways of thinking.
The travelling is great, the money is good, and we've gotten used to saying "Hello" and "Goodbye".
At night, we either go insane with thought, or we're happy and we do things most locals would never even consider doing.
Its an emotional roller coaster, and the adrenalene rush is addictive.
And it would be hard for me to stop.

(Spoken after 15 years of consulting, 5 years on the road, and 27 years in the business)
Thu 
08/26/2010 07:08:59
 jim  Our second airbed has gone flat in just one week.
Airbeds - Our second airbed has gone flat in just one week.
It turned out our cot had a sharp edge. I wonder if there are other professionals out there who have had this problem. BTW - I'm not sure when or how I got so strange. Its happened slowly after 15 years of consulting.
Mon 
08/23/2010 04:15:06
 jim  Jennifer left Saturday
It's 3am on a Monday, and as usual, I can't wait to go to work.

Jennifer went back to Vegas last Saturday, and I already miss her.
So now, when I say we, I mean Becky and I.
On the flip side, instead of doing just teenage things, we can do adult things too. I'm thinking Concerts!
Fri 
08/20/2010 19:23:44
 jim  Treasure Island, FL - Gators Cafe
Thu 
08/19/2010 07:23:13
 jim  Jennifer is taking off Saturday
She has been so much fun!
We've done a lot of travelling and beach combing in this Tampa Bay Area.
But this is probably the worst time of the year to be here. It's hot and extemely humid.
Tuesday, she gave quite the scare.
She had an asthma attack. Here's my take on that:
Medical care is such nightmare these days. 
Jennifer had an asthma attack and she's on Nevada Medicaid. Medicaid is only covered out-of-state in Emergency rooms.
We found one, and after 2 hours they put her in one of those little rooms where she waited for 2 hours.
Finally after they gave her an XRay, a breathing treatment and a prescription. The whole thing took 5 hours.
It makes me wonder how many people don't survive in those little rooms.
This makes me think
If she didn't have any kind of insurance, I'm sure that visit would have cost $1,000.
For $1,000, she could have flown her to Mexico or Canada, where she could stayed in a nice motel, and she could have bought Albuterol over the counter for $12.
Of course, she could have had a bird flu, in which case, everyone in the Emergency Room might have caught it.
Scary!
Tue 
08/17/2010 20:13:35
 jim  Tampa Bay Skies
Mon 
08/16/2010 20:25:11
 jim  ClearwaterBeach Sunset
Mon 
08/16/2010 20:25:07
 jim  ClearwaterBeach - The Girls
Mon 
08/16/2010 05:14:42
 jim  Lots of Gulls
Sun 
08/15/2010 20:08:47
 jim  ClearwaterBeach-Extras
Wed 
08/11/2010 19:18:20
 jim  Clearwater Beach
Mon 
08/09/2010 03:49:19
 jim  The Only Living Boy in Tampa
It was pouring sheets of rain and I was listening to "The Only Living Boy in New York" in the Westshore Mall parking lot.
Lightening was all around me.
And I was feeling alone, smiling, thinking I was the Only Living Boy who has ever really listened to that song.
It was a good day to have the blues.
I'd heard some things said that took me there
I probably shouldn't listen or care.
Listening attempts to add thought to what is being said, and most of what is said is without thought.
Caring hurts, when what is heard malicious or cold, either through mindlessnes, or out of lack of empathy.
Sometimes I feel like the world is trampling flowers while I'm walking around them.
And I wonder, what is the point.
Sun 
08/08/2010 22:54:30
 jim  Are the flowers natural?
Sun 
08/08/2010 18:36:42
 jim  Apt Birds
Sun 
08/08/2010 17:48:02
 jim  Clearwater - Rt 60 Bridge
Fri 
08/06/2010 20:21:29
 jim  All fame lies in your name.
 I knew a girl who made a fortune and fame in clothing lines way back in the 80's, only to fall grace.
She named her clothing lines after herself.
Her name was, Polly Ester.
Fri 
08/06/2010 20:19:59
 jim  BOY ! IT IS HOT AND HUMID OUT THERE
BOY ! IT'S HOT AND HUMID OUT THERE!!!
The Worlds Deadliest Catch people would catch Steamed Crab here.
It'll probably pour again tonight.
It poured today.
They should have named this state Fluida.
Tue 
08/03/2010 20:42:56
 jim  Clearwater Rain
Tue 
08/03/2010 17:54:55
 jim  RJ Storms
Tue 
08/03/2010 07:19:03
 jim  Antonios, Nails, and Beef-O-Bradys
Becky and Jennifer had their nails done yesterday
(their first manicure). Jennifer picked a color that, well, is pretty unusual, but it sparkles.
Becky's nails were two toned. Looks good.
I met them at lunch time at Antonios, which is an excellent Italian restaurant on our block.
Later, we dined at Beef O Bradys. Today was their Grand Openning. We met the Owner/Manager, the food was great, and guess what, its on our block.
Good food, good times, lots of love...thats what life should be about.
At work, I'm playing the role of problem solver for our somewhat large project,
and believe I'm pretty good at it.
Eventually, all the people in my group come by to ask about something.
It's a privilage I very much enjoy.
On the quit smoking front.
We didn't pull off going cold turkey last Saturday, but we did come up with a nice, modified plan to cut down.
We're keeping our smokes in the back of my truck. Becky's down to 8 smokes a day, and I'm down to 12.
That's really good, considering we were smoking anywhere from 20 to 40 cigarettes a day.
Now this is odd, cutting down on smoking isn't uncomfortable at all.
And when Becky and I go out to smoke, Jennifer comes along. We flip open the tail gate, enjoy the sky show, and laugh about the little things in life.
It goes to show, people can change, and even though change may seem bad, it can be a good thing.
Mon 
08/02/2010 06:57:02
 jim  Hot off the press - Flatworms
After extensive gene therapy at Sensadyn Labs,
a flat worm has actually learned to play the guitar.
It's favorite song - Layla
Fri 
07/30/2010 22:02:36
 jim  Webcamming 2010
Thu 
07/29/2010 20:37:48
 jim  PathMake example
?TACL MACRO
comment *******************************************************************
comment * This Macro Creates a Cold start obey file for a runnig pathway  *
comment *-----------------------------------------------------------------*
comment * This example uses $EXP as a pathmon name                        *
comment * To run this macro, enter                                        *
comment *                                                                 *
comment *     PATHCFG $EXP                                                *
comment *                                                                 *
comment * The Cold Start obey file this will create will be called GOEXP  *
comment * To bring up $EXP using the cold start file enter:               *
comment *                                                                 *
comment *     O GOEXP                                                     *
comment *                                                                 *
comment * This will create a cool start file for $EXP called EXPCTL       *
comment * The log1 file will be called EXPLOG                             *
comment * GOEXP, EXPCTL, EXPLOG will be created in the current subvolume  *
comment * The configuration's pathway will be call $P.#PATHMON.EXP        *
comment *                                                                 *
comment * This macro can also be run for several pathmons by entering:    *
comment *                                                                 *
comment *     PATHCFG $EXP $MNTF $STORE $ZVPT                             *
comment *                                                                 *
comment *-----------------------------------------------------------------*
[#if [#empty %1%] |then|
 #output They Syntax is: PATHCTL $PW
 #output where $PW is a running pathway system
|else|
[#DEF ascii STRUCT
BEGIN
BYTE byt0  VALUE 7;  CHAR bell   REDEFINES byt0;
BYTE byt1  VALUE 27; CHAR esc    REDEFINES byt1;
BYTE byt2a VALUE 36; CHAR dollar REDEFINES byt2a;
BYTE byt2  VALUE 37; CHAR perc   REDEFINES byt2;
BYTE byt3  VALUE 38; CHAR amp    REDEFINES byt3;
BYTE byt4  VALUE 64; CHAR at     REDEFINES byt4;
BYTE byt5 (0:1) VALUE 27 73;
CHAR clr (0:1) REDEFINES byt5; == escape sequence
END;
]
#push Norm Blink Invert Dim
#set  Norm   [ascii:esc]6[ascii:at]
#set  Blink  [ascii:esc]6b
#set  Invert [ascii:esc]6[ascii:dollar]
#set  Dim    [ascii:esc]6[ascii:perc]
#push PathwayProcess PathWayLen PathwayName
#set  PathwayProcess %1%
#set  PathWayLen [#Compute [#charcount PathwayProcess] - 1]
#set  PathwayName [#charget PathwayProcess 2 for [#Compute [#charcount PathwayProcess] - 1]]
#output
comment #output [Dim]                            [invert]Pathcfg %1%[Dim]                            [norm]
#output [Dim]Builds an obey file called [invert]GO[PathwayName] [Dim] to start [invert]%1%[norm]
#output To run this %1% should be up and running
[#case [#INPUT [BLINK]Should I proceed "Y" ?[NORM ]]
|Y| #output Please wait...
PURGE GO[PathwayName]
PATHCOM %1%;INFO/OUT GO[PathwayName]/PATHWAY,OBEYFORM
edit GO[PathwayName]!;99990/LOG1 [PathwayName]LOG/;NA;E
edit GO[PathwayName];10000/START PATHWAY COLD !/;NA;E
PATHCOM %1%;INFO/OUT GO[PathwayName]/TCP*,OBEYFORM
PATHCOM %1%;INFO/OUT GO[PathwayName]/SERVER *,OBEYFORM
PATHCOM %1%;INFO/OUT GO[PathwayName]/PROGRAM *,OBEYFORM
PATHCOM %1%;INFO/OUT GO[PathwayName]/TERM    *,OBEYFORM ==
edit GO[PathwayName];CQF/-- /A;NA;10000/-- EXIT/;NA;E
edit GO[PathwayName];.01/COMMENT *------------------------------------------------/;e
edit GO[PathwayName];.02/COMMENT *----- Obey GO[PathwayName] to start $[PathwayName]/;e
edit GO[PathwayName];.03/COMMENT *------------------------------------------------/;e
edit GO[PathwayName];.04/#PUSH INLINEPREFIX/;E
edit GO[PathwayName];.05/#SET  INLINEPREFIX --/;E
edit GO[PathwayName];.06/assign PATHCTL, [PathwayName]CTL/;E
edit GO[PathwayName];.07/PURGE [PathwayName]LOG/;E
edit GO[PathwayName];.08/FUP CREATE [PathwayName]LOG,TYPE E, REC 132, EXT(100,100), MAXEXTENTS 100/;E
edit GO[PathwayName];.09"PATHMON/cpu 2,name $[PathwayName],nowait,term $vhs/3";E
edit GO[PathwayName];.10"PATHCOM/inline,out $P.#PATHWAY.[PathwayName]/$[PathwayName]";na;e
|OTHERWISE| #output OK. POOF! I'm gone.
]
#output
[#if [#empty %2%] |then| |else|
  run PATHCFG %2 to 99%
]
] == First If
Thu 
07/29/2010 20:35:46
 jim  ZMacros w/CNL - Needs Adapting
== 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/[#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
Wed 
07/28/2010 20:43:56
 jim  Lavendar Skies
Sat 
07/24/2010 17:44:10
 jim  Pond Life-Birds and Turtles

<< 08/2009 < 07/2010 Calendar 09/2010 > 08/2011 >>Sign InView Other Logs