*DECK LFGGPN
USETEXT LFGIOD,LFGHDRC,LFGIB
PROC LFGGPN(PN,RC,MRES,ON,EOI,SUCCESS);
BEGIN # GET PARTITION NAME #
*IF DEF,IMS
#
** LFGGPN - GET PARTITION NAME.
*
* M. E. VATCHER 81/02/19
*
* LFGGPN GETS A PARTITION NAME FROM A SYSTEM HEADER RECORD
* AND CONVERTS THE NAME TO DISPLAY CODE.
*
* PROC LFGGPN(PN,RC,MRES,ON,EOI,SUCCESS)
*
* ENTRY NONE.
*
* EXIT PN PARTITION NAME IN DISPLAY CODE
* RC MODULE COUNT FOR MEMORY RESIDENT PARTITION
* MRES MEMORY RESIDENT INDICATOR
* ON OVERLAY NAME IN ASCII
* EOI END OF INFORMATION ENCOUNTERED
* SUCCESS SUCCESSFUL COMPLETION INDICATOR
*
* METHOD
*
* READ RECORD AT CURRENT FILE POSITION
* IF EOI ENCOUNTERED
* THEN
* SET EOI AND RETURN
* SET OR CLEAR MEMORY RESIDENT FLAG
* IF ITS NOT MEMORY RESIDENT
* THEN
* READ ANOTHER RECORD TO GET SYSTEM HEADER RECORD
* CONVERT PARTITION NAME TO DISPLAY CODE
* IF ITS A MEMORY RESIDENT PARTITION
* THEN
* SET MODULE COUNT
* ELSE
* SET OVERLAY NAME IN ASCII
* IF ITS AN OVERLAY
* THEN
* SKIP OVER OVERLAY AREA HEADER RECORD
* END
*
#
*ENDIF
#
**** PROC LFGGPN - XREF LIST BEGIN.
#
XREF
BEGIN
ITEM IFET U; # FWA OF INPUT FILE FET #
PROC LFGRDER; # PRINT READ ERROR MESSAGE #
PROC LFGRDSR; # READ SEQUENTIAL RECORD #
END
#
****
#
*CALL LFGASCI
ITEM EOI B; # END OF INFORMATION FLAG #
ITEM MRES B; # MEMORY RESIDENT FLAG #
ITEM NAME2 U; # CONCATENATE NAME2A AND NAME2B #
ITEM ON U; # OVERLAY NAME IN ASCII #
ITEM PN C(6); # PARTITION NAME #
ITEM RC U; # RECORD COUNT #
ITEM STATIS U; # STATUS RETURNED FROM READ #
ITEM SUCCESS B; # SUCCESSFUL COMPLETION INDICATOR #
SUCCESS = TRUE;
LFGRDSR(LOC(IFET),STATIS);
IF STATIS EQ RDEOI
THEN
BEGIN
EOI = TRUE;
RETURN; # ***** EXIT ***** #
END
IF STATIS NQ RDEOR
THEN
BEGIN
LFGRDER(STATIS);
SUCCESS = FALSE;
RETURN; # ***** EXIT ***** #
END
IF B<0,16>IBUF[0] EQ 0
THEN
MRES = TRUE;
ELSE
MRES = FALSE;
IF NOT MRES # IF ITS AN OVERLAY PARTITION #
THEN # GET SYSTEM HEADER RECORD #
BEGIN
LFGRDSR(LOC(IFET),STATIS);
IF STATIS NQ RDEOR
THEN
BEGIN
LFGRDER(STATIS);
SUCCESS = FALSE;
RETURN; # ***** EXIT ***** #
END
END
P<HEADER> = LOC(IBUF[0]);
C<0,1>PN = C<NAME1,1>ASCIITAB;
NAME2 = 0;
B<53,3>NAME2 = NAME2A;
B<56,4>NAME2 = NAME2B;
C<1,1>PN = C<NAME2,1>ASCIITAB;
C<2,1>PN = C<NAME3,1>ASCIITAB;
C<3,1>PN = C<NAME4,1>ASCIITAB;
C<4,1>PN = C<NAME5,1>ASCIITAB;
C<5,1>PN = C<NAME6,1>ASCIITAB;
IF MRES
THEN # SET NUMBER OF MODULES #
RC = MCNT[0];
ELSE # OVERLAYS HAVE ONLY ONE INPUT RECORD #
BEGIN
RC = 1;
ON = 0;
B<37,7>ON = NAME1;
B<45,7>ON = NAME2;
B<53,7>ON = NAME3;
END
IF NOT MRES
THEN # ITS AN OVERLAY #
BEGIN # SKIP OVERLAY AREA HEADER RECORD #
LFGRDSR(LOC(IFET),STATIS);
END
END TERM