----------
From: Fernando Olmos
To: Marshall
Subject: Re: Help required in COB85XL compiler error
Date: Wednesday, October 23, 1996 9:58AM
>The report command only lists disk usage, not free space. Use "discfree"
to
>show usage and free space.
Thanks
>As for your cobol error, remember, you do not need to compile a program to
a
>USLFILE by name, leaving the USLFILE name blank gives an object code file
>name
Ok, but what is a USLFILE? I'm sorry, but I am new to the HP environment and
also to the COBOL 85XL edition for the HP. I know COBOL programming of
course, but not the "nitty gritty" things related with the HP platform.
I noticed that the TSS9130S program I'm trying to compile forms part of many
other TSS@ files that are used as SUBROUTINES to major COBOL programs. I
also noticed that there is a TSSUSLX file which generates (I believe) the
USL file you mentioned. Here is that file...
!JOB TSSUSLX,$USER.$ACCOUNT,$GROUP
!
!COMMENT - This X file is used to create TSSUSL
!
!PURGE TSSUSL
!BUILD TSSUSL;CODE=USL;DISC=1280,2
!FILE COPYLIB=TSSLIB
!COBOLII TSS9000S,TSSUSL,$NULL
!COBOLII TSS9010S,TSSUSL,$NULL
!COBOLII TSS9020S,TSSUSL,$NULL
!COBOLII TSS9030S,TSSUSL,$NULL
!COBOLII TSS9040S,TSSUSL,$NULL
!COBOLII TSS9050S,TSSUSL,$NULL
!COBOLII TSS9060S,TSSUSL,$NULL
!COBOLII TSS9070S,TSSUSL,$NULL
!COBOLII TSS9080S,TSSUSL,$NULL
!COBOLII TSS9090S,TSSUSL,$NULL
!COBOLII TSS9110S,TSSUSL,$NULL
!COBOLII TSS9120S,TSSUSL,$NULL
!COBOLII TSS9130S,TSSUSL,$NULL
!COBOLII TSS9140S,TSSUSL,$NULL
!COBOLII TSS9150S,TSSUSL,$NULL
!COBOLII TSS9160S,TSSUSL,$NULL
!COBOLII TSS9170S,TSSUSL,$NULL
!COBOLII TSS9180S,TSSUSL,$NULL
!COBOLII TSS9190S,TSSUSL,$NULL
!COBOLII TSS9200S,TSSUSL,$NULL
!COBOLII TSS9210S,TSSUSL,$NULL
!COBOLII TSS9220S,TSSUSL,$NULL
!COBOLII TSS9230S,TSSUSL,$NULL
!COBOLII TSS9240S,TSSUSL,$NULL
!COBOLII TSS9250S,TSSUSL,$NULL
!COBOLII TSS9260S,TSSUSL,$NULL
!COBOLII TSS9270S,TSSUSL,$NULL
!COBOLII TSS9280S,TSSUSL,$NULL
!COBOLII TSS9290S,TSSUSL,$NULL
!COBOLII TSS9300S,TSSUSL,$NULL
!COBOLII TSS9310S,TSSUSL,$NULL
!COBOLII TSS9320S,TSSUSL,$NULL
!COBOLII TSS9330S,TSSUSL,$NULL
!COBOLII TSS9340S,TSSUSL,$NULL
!COBOLII TSS9350S,TSSUSL,$NULL
!COBOLII TSS9360S,TSSUSL,$NULL
!
!SEGMENTER
USL TSSUSL
LISTUSL
EXIT
!
!EOJ
What is the SEGMENTER program for? I noticed upon running this X file that
it did NOT create the TSS@U files (ie: TSS9130U, TSS9320U,etc) , which is
the object code necessary to LINK in with the major COBOL programs. Do I
have to do this manually?
>of $OLDPASS, which when LINKed will give you your executable program. Do
you
>have a "$CONTROL USLINIT" statement in your cobol source code file? If you
>don't, this error could mean that each time you have compiled your program
to
>that same USLFILE, the USLFILE was never re-initialized and hence filled
up.
I added the $CONTROL USLINIT statement to TSS9130S and compiled it using
COB85XL TSS9130S,TSS9130U,$NULL and I still get the following error....
00649 Bk-end 80 384 Q Codegen detected error (7204) error in
writin
00649 Bk-end 80 999 D UNABLE TO CONTINUE. COMPILATION
TERMINATED.
1 ERROR(s), 1 QUESTIONABLE, 0 WARNING(s)
BTW the first few lines of TSS9130S was as follows (not including your above
suggestion)....
$CONTROL SYNC16,SUBPROGRAM,MAP
IDENTIFICATION DIVISION.
PROGRAM-ID. TSS9130.
AUTHOR. ANDREW YEOH.
INSTALLATION. RMIT Admin Systems Group.
DATE-WRITTEN. JANUARY 1982.
..etc...
>The following is a simple comparison between compiling stand-alone program
>modules and multiple subroutine modules:
>:cob85xl source1,obj1,$null <<<the $null means don't show on $STDLIST
>:linkedit obj1,prog1
>Above is a single source code file that creates a single object code file
>that is linked to create a executable program file. OBJ1 above can be
replaced by
>$oldpasss. A "$CONTROL USLINIT" will re-initialize the obj1 file for each
>compilation.
What is $OLDPASS?
>:cob85xl source1,obj1,$null
>:cob85xl source2,obj1,$null
>:cob85xl source3,obj1,$null
>:linkedit obj1,prog1
>This time we have compiled multiple modules into a single USLFILE called
>obj1.
So USLFILEs are actually OBJECT files?
>In file source1 there will be a "$CONTROL USLINIT" but in the subsequent
>source files there is either a "$CONTROL SUBROUTINE" or "$CONTROL >DYNAMIC"
to denote that the files contain subroutines that are called by an "outer
>block", in this case source1. The whole thing is then linked into a
program file for >later execution.
Well in my problem the "error" occurs when I try to compile the SUBROUTINE
program TSS9130S. I do not have $CONTROL USLINIT in my MAIN program (ie:
TMP0052P) so therefore the above is not a 'feasible' solution , as per what
I already explained above. Do I HAVE to put the $CONTROL USLINIT in my main
program (TMP0052P) even though I am NOT compiling it yet?
>I hope this helps you. You may get a more complete answer from others on
the
>list.
Thanks Marshall. It did help, but there are still more questions unanswered.
I hope you can shed more light. Thanks for your time.
|