I r OUTPUT
Required system
~. I
Perform normal allocate function>
Allocated DT Fs,areas
•
(Diagram 3.3)• I
files, and-
~•
Perform special allocate functionI I >
devices Allocated disk~
(Diagram 3.4)•
I I
files-
" " -,.. •
Perform deallocate functionI >
Updated DTF,(Diagram 3.5)
•
format 1, and~
format 5s
, ,
To: User Program Diagram 3.2. Overview of Allocate
Method of Operation 3-21
Licensed Material-Property of IBM
From: User Program
D
Allocate diskette fileII
Keysort nonshared indexed files used with indexed access methodII
Allocate communications linesII
Allocate printersII
Allocate new disk filesII
Format new and load to old files. UpdateDiagram 3.3 (Part 1 of 4). Perform Normal Allocate Function 3-22
Licensed Material-Property of IBM
OUTPUT _ _ _ _
OEseR IPTION
- If load to old, set load to old to do bit in request block (RB) and set new creation date.
- If not load to old, indicate file allocated in DTF and FSB.
- Indicate in FSB and RB if keysort required.
• If new disk file:
- Indicate new file to allocate in RB.
- Turn on new file switch in DTF.
- Update AFA format 1.
- Assign high key bucket if required.
If diskette DTF:
• Indicate diskette in use in JCB.
• Allocate device.
• Set on allocate request bit in RB.
If work station or special DTF, set on allocated bit in DTF.
Return toDand repeat steps until all DTFs processed.
If diskette allocate or: keysort requested in RB, go toO.
If communications lines, call communications allocate (#CACM) and go to
9.
If printers to be allocated, call print allocate (#CAPT) and go to
g.
If new disk files to allocate, call new disk file allocate (#CAF1) and go to
m.
If load to old files to allocate, call load to old disk file allocate (#CAF3) and go toO.
If no allocate requests, return to user program.
" Call allocate push/pull transient (#CAPS) and pass control to it.
If diskette file allocate request bit on in RB:
• Push user program to disk and set up 4K region in user area.
• Move DTF to start of user area.
• Load diskette allocate (#CAR1) after DTF in user area and go to
O.
e
If return from #CAR 1, restore user region and pull user program from disk.If keysort request bit on in RB:
• Push user program to disk and set up 14K region in user area.
• Load keysort interface (#CAKS) into first 2K of user area.
• Go toD.
e
If return from #CAKS, restore user region and pull user program from disk.If request for communications lines, load #CACM and go toD.
If request to allocate printers, load printer allocate transient (#CAPT) and go to
1m.
If requested to allocate new disk files, load #CAFl and go toD.
If requested to allocate load·to·old disk files, load #CAF3 and go toO.' Return to user program.
fJ
If first time allocate or requested in DTF, perform diskette prepare function.Find AFA format 1.
Diagram 3.3 (Part 2 of 4). Perform Normal Allocate Function
Licensed Material-Property of IBM
MODULE!
ROUTINE
#CAML
#CAPS
#CSVI
#CARl
Method of Operation 3-23
DESCRIPTION MODULE!
ROUTINE
Check pack parameter against volume I D of mounted diskette. nCAR1
Determine if specified file exists.
If allocating new diskette file:
•
Delete all expired files.•
Ensure clean pack if requested in DTF.•
Allocate new file following existing files.•
Set creation date to proper date.•
Set expiration date.If allocating existing diskette file:
•
For Add files:-
Ensure last (or only) diskette volume of file inserted.-
Ensure last active file on diskette is add file.-
Ensure expired files (other than add file) are deleted.•
For input files, ensure first volume of multi-volume file inserted.•
For existing file with RETAIN specified, set new expiration date.Return t o O O .
B
Check file specification block (FSB) for files requiring keysort. #CAKSFir files requiring keysort:
•
Update VTOC F1 to allow for keysort failures. #CSVF•
Load and pass control to keysort Modules. (See Keysort.) #CSDK•
Return here after keysort complete. #CAKS~
•
If duplicate keys returned from keysort, issue halt. #CSOK~
•
If keysort functioned satisfactorily, reupdate VTOC F1 to turn off failure indication. nCSVF•
Return t o O , 8 . #CAKSD
If BSC or SDLC: #CACM•
Allocate line.•
Load data management task.•
Update DTF, CSB, and JCB.•
Set allocated bit in OTF.•
If printers to be allocated, call print allocate (#CAPT) and go tog.
•
If new disk files to allocate, call new disk file allocate (#CAF1) and go toII.
•
If load to old files to allocate, call load to old disk file allocate (#CAF3) and go toD.
•
If no allocate requests, return to user program.Search printer specification block (PSB) chain for matching OTF name.
If match found, locate TUB with same work station 10 as in PSB.
If match not found, build default PSB.
If output spooled:
•
Indicate spool intercepting in PSB, DTF, and TUB.•
Set allocated bit in PSB and DTF.If output not spooled:
•
Put device code in OTF.•
Set allocated bit in PSB and DTF.•
Save TUB and PSB address in DTF.•
Set check forms/image in PSB.•
Set call forms/image transient in request block (RB).Diagram 3.3 (Part 3 of 4). Perform Normal Allocate Function 3-24
Licensed Material-Property of IBM
MODULE/
OEseR IPTION ROUTINE
If needed, do forms/image processing. #CSIM
If request to allocate new disk files, load #CAF1 and go
to~.
#CAPTIf request to allocate load to old disk files, load #CAF3 and go to
11m.
IIlB
For each new disk DTF: #CAF10 Set up DTF to indicate:
-
Minimum and maximum sectors needed.-
Spindle desired.-
Location desired.0 Count VTOC F1's needed.
Read format 5. Disk lOS
Check if enough VTOC F1 space, and call find disk space transient module (#CAF2): #CAF1
e
0 If requested space is available: #CAF2- Update format 5 to indicate space taken. Disk lOS
-
Place return code in DTF. #CAF2-
Pass control to #CAF3.0 If requested space is not available:
-
Place return code in DTF to indicate no space available.-
Set wait or halt bit in DTF.-
Pass control to #CAF3.f:i&J
If #CAF2 found no space: #CAF30 Halt if dedicated system or program.
0 Wait fc;>r space in format 5, reread format 5, call #CAF2, and go to(®.
If #CAF2 found space:
0 Format file: Disk lOS
-
Write X'FF's to index if indexed file.-
Write X'40's to data area if direct file or X'OO' if not direct P or T file.«) Save start and end of data and start and end of index in DTF. #CAF3
0 If P or T file, write format 1 to VTOC. Disk lOS
0 Set allocated bit in DTF and FSB. #CAF3
Return to user program.
Note: Allocate messages, except duplicate key and diskette message, are provided by #CAMG, which interfaces #CAMG to SYS LOG (dupl icate key messages issued by # CSD K and diskette messages issued by # CAR 1).
If allocate message or halt:
G Build SYSLOG parameter list with program data:
-
File name.-
File label.-
Forms number.-
Work station 10 or communication line number as required.0 Call SYSLOG to issue message/halt.
•
Call end of job transient when 2 option taken to halt. #CLXS#CAMG Return to calling module.
Diagram 3.3 (Part 4 of 4). Perform Normal Allocate Function
Method of Operation 3-25
Licensed Material-Property of IBM
From: User Program FSB for each file to be allocated
fJ
Allocate old files and prepare to allocate new and load to old filesII
Keysort nonshared indexed files accessed by indexed sequential access methodII
Allocate new and load to old disk filesD
Process each preopen disk DTF requiring special allocate.Build format 1 and FSB:
To: User Program
0 If file specification block (FSB) exists (file statement specified) build format 1 into FSB format 1.
0 If no FSB for requested file, assign area and build format 1 from DTF information.
0 Create or update FSB.
G Create or update AFA format 1.
0 If P or T file not in AFA or not on FSB chain, search VTOC for file by label (and date if specified).
•
Return .IfJ
If any file successful, call #CAS2 to do the following for each successful DTF:0 If disk DTF:
Diagram 3.4 (Part 1 of 2). Perform Special Allocate Function 3-26
Licensed Material-Property of IBM
OUTPUT _ _ _ _
OEseR IPTION MODULE!
ROUTINE
•
If new disk file: #CAS2-
Indicate new file to allocate in RB.-
Turn on new file switch in DTF.-
Update AFA format 1.-
Assign high key bucket if required.II
If keysort is needed, call allocate push/pull transient (#CAPS) and pass control to it.From this point, special allocate functions same as normal allocate.
Use Diagram 3.3, enter at DGand continue to end.
II
Special allocate functions same as normal allocate for new or load to old disk file allocate.Use Diagram 3.3, enter at
II
and continue to end.Diagram 3.4 (Part 2 of 2). Perform Special Allocate Function
Method of Operation 3-27
Licensed Material-Property of IBM
From: User Program
o
Perform first pass processingD
Keysort nonshared indexed files used with indexed access methodD
Update format 5sD
Check DTF device code. If not disk, deallocate device and return to user program.Check each DTF for keysort request:
• Search file specification block (FSB) for name match.
• If keysort requested:
- Indicate keysort request in FSB and request block (RB).
- Gotofl··
• Assign VTOC format 1 buffer.
Set format 1 interlock.
If free disk space request:
• Ensure nonshared file.
• Ensure valid end of file extent.
• If ignore format 5 processing bit not on in DTF, set on bit in RB to handle F5's.
If file delete request, indicate in DTF to delete as scratch file.
If file deallocate request:
• Update last date' indicator for new files or old S files.
• Write active format 1 to VTOC for P and T files.
Diagram 3.5 (Part 1 of 2). Perform Deallocate Function 3-28
Licensed Material-Property of IBM
...
OEseR IPTION
If S file and ignore format 5 processing bit not on in DTF, set on bit in R B to handle F5s.
Note: Only deallocate function allowed for shared files.
If handle F5s bit on in RB, load #CAD3 and go to
D.
Return to user program.
fJ
If keysort request bit on in RB:• Call allocate push/pull transient (#CAPS) and pass control to it.
e
Push user program to disk and set up 14K region in user area.• Load keysort interface (#CAKS) into first 2K of user area.
• From this point, keysort functions same as for normal allocate.
Use Diagram 3.3 and enter at
6.
At end of keysort operation, return to this diagram at
lie.
iI
Enqueue format 5 interlock at 3 level.Read VTOC F5 from disk and write to buffer.
Process each DTF, determining start and end extents to be freed.
Add or merge format 5 entries in buffer as required.
Issue message if: .
• Part of area already free.
• Format 5 too fragmented to use.
Write updated buffer out to VTOC F5.
Return to user program.
Diagram 3.5 (Part 2 of 2). Perform Deallocate Function
Licensed Material-Property of IBM
MOOULE/
ROUTINE
#CAD2
#CAD1
#CAPS
#CAKS
#CAD3 Disk lOS
#CAD3
Disk lOS
#CAD3
Method of Operation 3-29
From: Calling Program
II
Open work station format load member DTFII
Prepare to open other DTFsII
Open diskette DTFII
Open printer DTFfJ
Open data communications DTFII
Chain opened DTFs together---:Tl
To: Calling Program
OEseR IPTION MODULE/
ROUTINE
D
Check DTF for valid device type. #DMOPIf device invalid, call SYSLOG to issue error message.
Mark all DTFs to be opened by setting switch in DTF.
•
If work station DTF, indicate work station open needed.Point to next DTF and repeat above, until end of chain is reached.
Determine next transient to call:
•
If disk open required, go to0.
•
If work station open needed, go toII.
•
Otherwise, go toll.Diagram 3.6 (Part 1 of 3). Open Disk, Diskette, Printer, Work Station and Data Communications DTFs 3-30
Licensed Material-Property of IBM
MODULE/
OEseR IPTION ROUTINE
If)
Perform all diagnostic checking of DTF. #DD10PIf error found, call SYSLOG to issue error message.
If dummy open, initiate all required DTF fields.
For ZPAM and ISRI, complete DTF and load required data management into user area if required. (Relocating loader SVC 52).
Apportion lOBs and buffer area as needed. #DD20P
Complete all DTF fields as required.
If requested, build master track index.
Build high key bucket if needed. Disk lOS
If work station open needed, go to
g.
#DD20POtherwise go to
II.
D
Check DTF for valid device code. #WDOPNIf user library assigned, scan library directory for format load member name specified in DTF. Disk lOS If no library assigned, or if load member not in library, scan system library for format load member.
If format load member found: #WDOPN
0 Ensure load member created by $SFGR and total sectors greater than zero.
0 Read format load member index. Disk lOS
•
Count number of format index entries. #WDOPNt:I If format index entry count exceeds maximum defined in DTF, call SYSLOG to issue message.
•
If previous format load member opened, ensure no duplicate format names exist.•
If no errors found:-
Move format indexes to location specified in DTF.-
Update index address and number of index entries in job control block (JCB).When all work station DTFs are open, go toDto open next DTF or chain together opened DTFs.
II
Point to first DTF on chain: #DMOF" •
If printer DTF, go tomil.
•
If diskette DTF, go toB.e
If data communications DTF, go toO.
•
If special DTF, indicate DTF opened.e
Point to next DTF on chain: •o
If end of chain reached, go tom.
• If not end of chain, go to
DO.
m
Update active format 1 . #DROPEnsure file properly allocated.
Initialize DTF to postopen status.
For existing files:
•
Ensure file organization and access method compatible.•
Supply, or check record length.Diagram 3.6 (Part 2 of 3). Open Disk, Diskette, Printer, Work Station and Data Communications DTFs
Method of Operation 3-31
Licensed Material-Property of IBM
OEseR IPTION
Build and initialize lOBs:
o
For output files, write internal control record if required.o
For input files, read first data area and set internal control record and/or track alignment indicators in DTF.o
For basic exchange files, determine if full track I/O possible.Initialize DTF end of file field.
Update DTF next record pointers and/or prime buffer for add file.
Format lOB to postopen status for processing data:
o
For full track I/O requests, adjust to read or write to track boundary.o
For basic exchange output file, clear output buffer.Process diagnostic errors.
Load either diskette data management or sector data management to diskette (SVC 52) into user area if required.
Go tolDJGto open next DTF or to chain together opened DTFs.
Rm
Perform all diagnostic checking.If error found, call SYSLOG to issue error message.
Obtain space within assign/free for lOB.
Initialize lOB.
Initialize all required DTF fields.
Issue format and skip to line one command to printer.
Route printer lOBs to work station I/O control handler (WSIOCH) or to spool intercept routine (#SPINT).
Go to
D
Gto open next DTF or to chain together opened DTFs.II
Open data communications DTF (Diagram 1.1 in SSP Logic: Data Communications).Go t o D G t o open next DTF or to chain together opened DTFs.
mJI
Build backward chain to include all opened DTFs.Return to calling program.
Diagram 3.6 (Part 3 of 3). Open Disk, Diskette, Printer, Work Station and Data Communications DTFs 3·32
Licensed Material-Property of IBM
MODULE/
ROUTINE
#DROP Diskette lOS
#DROP
#DMOF
WSIOCH
#DMOF
#BSOB
#DMOF
Program Organization
Figures 3-2 through 3-6 show the logic flow of functions needed to start a job. They are:
• Initiator
• Normal allocate
• Special allocate
• Deallocate o Open
Licensed Material-Property of IBM
Program Organization 3-33
3-34
Figure 3-2. Initiator Control Flow
Licensed Material-Property of IBM
(#CIER)
Keysort
User
....
If....
InterfaceProgram Keysort
(HCAKS) Allocate
J
Push/Pull (HCAPS)Diskette
_If
Diskett~ . .-
If-
Allocateor Keysort Diskette
(#CAR1)
Allocate ~
t
CommunicatorMainline If Communications Allocate
Lines
(HCAML) (#CACM)
a
~ Printer
If
....
AllocatePrinters
-.
(#CAPTI
J
New Disk FileIt
If New
..
AllocateFiles --..
(#CAF1)
J~
~Find Disk Space
(#CAF2)
, ~
~
Load to Old
If Load to ~ Disk File
Old Files
..
Allocate(#CAF3)
I ...
~~ ~
User Program
Figure 3-3 (Part 1 of 2). Normal Allocate Control Flow
Program Organization 3-35
Licensed Material-Property of IBM
3·36
From: Allocate Routines
Message Routine (#CAMG)
, ,
To: Allocate Routines
• lf2 ...
Option~ EOJ
Figure 3-3 (Part 2 of 2). Normal Allocate Control Flow
Licensed Material-Property of IBM
User Program
Special Allocate -Initial Phase-(#CAS1)
•
If Any Files SUCiSSfUI
Else
... ...
.. ,
User Program
Special
..
Allocate..
-FirstPass-(#CAS2)
~
..
Figure 3-4. Special Allocate Control Flow
Allocate Keysort
Push/Pull Interface
. . If Keysort _
.. ..
Required
(#CAPS) (#CAKS)
"l
r
New DiskFile
New
..
AllocateDisk Files
.
(#CAF1)
~
"
Find Disk Space
"l ~ (#CAF2)
Load to Old
..
Disk Files
, •
Load to Old Disk File Allocate
(#CAF3)
"l
,
Program Organization 3-37
Licensed Material-Property of IBM
User Program
~
,
..
Allocate... ..
KeysortIf Keysort
...
Push/Pull Interface(#CAPS)
... ..
(#CAKS)Deallocate Premainline
(#CAD1)
~
,
Deallocate Free F5
..
If Request to..
SpaceIf Disk Files Mainline
Free Format 5s
...
(#CAD2)...
(#CAD3)
, ,
...
User...
..
ProgramFigure 3-5. Deallocate Control Flow
3-38
Licensed Material-Property of IBM
Common
lSee Diagram 1.1 in SSP Logic: Data Communications Figure 3-6. Opon Control Flow
Program Organization 3-39
Licensed Material-Property of IBM
3-40