Skip to main content

Full text of "ibm :: 370 :: DOS VS :: plm :: SY33-8551-1 DOS VS SupervisorLogic Nov73"

See other formats


SY33-8551-1 

File No. S370-36 



DOS/VS Supervisor 
Systems Logic 

Program Numbers 5745-SC-SUP 
5745-SC-AIT 
5745-SC-DKE 

Release 30 (POWER/VS Version) 



mm 



Second Edition (November 1973) 



This edition, together with Technical Newsletters SN33-8769, 
SN33-8770, and SN33-8790, applies to Version 5, Release 30 
(POWER/VS Version) , of the Disk Operating System/Virtual 
Storage, DOS/VS, and to all subsequent versions and releases 
until otherwise indicated in new editions or Technical 
Newsletters. Changes are continually made to the information 
herein; before using this publication in connection with the 
operation of IBM systems, consult the latest Virtual Storage 
Supplement (to IBM System/360 and System/370 Bibliography) , 
GC20-0001, for the editions that are applicable and current. 

Note : For the availability dates of the Virtual 
Telecommunications in this manual, please contact your IBM 
representative or the IBM branch office serving your locality. 

Requests for copies of IBM publications should be made to vour 
IBM representative or to the IBM branch office serving your 
locality. 

A form for readers ' comments is provided at the back of this 
publication. If the form has been removed, comments may be 
addressed to IBM Laboratory, Publications Department, P.O. Box 
24, Uithoorn, The Netherlands. Comments become the property 
of IBM. 

© Copyright International Business Machines Corporation, 1973 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



PREFACE 



This logic manual is one of three detailed 
guides to the logic of the IBM Disk 
Operating System Virtual Storage (DOS/VS) 
Supervisor. This manual supplements the 
program listings by providing text and 
charts describing: 



DOS/VS System Management Guide , 
GC33-5371 



2§/¥§_H^ DOS/VS Assembler Language , 
GC33-40107 



1. The organization of the supervisor area 
in real storage. 

2. The internal logic of the resident 
nucleus routines. 

3. The physical input/output control 
system. 

4. The internal logic of the physical 
attention transient routines ($$ABERRZ 
and $$ABERZ1) . 

The internal logic of other physical 
transients (error recovery and recording) 
and the logical transients is described in 
the companion manuals: 

• SQS/ys_Er^or_Recoyery .a n( 3 .Recording 
Transients, SY33-8 552 

• DOS/VS Logical Transients , SY33-8553. 

For overall system logic, these three 
manuals are to be used with: 

• DOS/ VS _I PL_and_ J ob_C on t ro 1 , SY3 3-8555 

• 22S/VS__Linka3e_Editor, SY 33-8556 

• DOS/VS Librarian, SY33-8557. 

Prerequisite knowledge for the effective 
use of these PLMs is contained in the 
following reference manuals and guides: 



For details of the logic of the POWER, 
POWER/RJE programs, refer to the following 
manuals: 



• DOS/VS POWER, SY3 3-8565 

• DOS/VS POWER/RJE, SY33-8566 

For details of the Virtual 
Telecommunications Access Method (VTAM) 
refer to: 

• VTAM Function Summary, SY27-7256 (for 
high-level information) 

• DOS/VS VTAM Logic, SY 33-7262 (for 
low-level information) 

Publications related in subject matter to 
the system logic manuals are: 

• DOS/VS System Generation, GC33-5377 

• DOSj/VS Operating Procedures , GC 33-5378 

• DOS/VS Messages, GC 33-5379 

• DOS/VS Supervisor and I/O Macros , 
GC33-5373 

• DOS/VS Data Management Guide, GC 3 3- 53 7 2 

• DOS/VS System Control Statements , 
GC33-5376 



• IBM System/370 Principles of .Operation , • DOS/VS Serviceability Aids and Debugging 



GA22-7000 

• ? B M,.SYStem/36)0 Principles of Operation , 
GA22-6821 

• Introduction to DOS/VS, GC33-5370 



Procedures, GC33-5380. 

Titles and abstracts of ether related 
publications are listed in the IBM 
System/360 an d System/370 Bibliography , 
GA22-6822. 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



CONTENTS 



INTRODUCTION ......... 15 

SUPERVISOR GENERATION AND ORGANIZATION . 19 

Supervisor Generation , . . . 19 

Supervisor Organization 19 

Low Real Storage . ..... 19 

TASK SELECTION , 77 

System Task Selection ......... 78 

Dispatching a System Task • 7 8 

Interruption of a System Task .... 78 

User Task Selection 7 8 

Example of User Task Selection .... 79 

DAT Dispatcher ............. 81 

Asynchronous Processing (AP) 8 3 

INTERRUPT PROCESSORS ..... 85 

I/O Interrupt . . - 85 

Program Check Interrupt 8 5 

Page Fault Handler 86 

External Interrupt 88 

Machine Check Interrupt 88 

Supervisor Call Interrupt (SVC) . ... 88 

PAGE MANAGEMENT . , 113 

Tables • 113 

Page Frame Table . . . .113 

Segment and Page Tables ...... .114 

Selection Pool 115 

Page Frame Selection . Ii6 

Page Handling Routines . . 117 

Page Fault 118 

Page Fault Handling Overlap 118 

GETREAL Request 118 

TFIX Request 119 

PFIX Request 120 

PAGEIN Request . . .120 

FREEREAL, FREE, and PFREE Requests . .121 
RELPAG and FCEPGOUT Requests .... .121 
Partition Deactivation and Reactivation 

(Load Leveler) 121 

Partition Deactivation 122 

Partition Reactivation 125 

PHYSICAL INPUT/OUTPUT CONTROL SYSTEM 

(PIOCS) 129 

Channel Scheduler 129 

Selector and Block Multiplexer 

Channel Switching 13 8 

Channel Queue .139 

Channel Buckets 14 4 

Command Control Block 14 5 



I/O Interrupt Handler 150 

Burst-Mcde and High-speed Byte-Mode 
Devices on Byte Multiplexer Channel .152 

Channel Prcgram Translation 153 

Translation Control and Copy Blocks .153 
Copying and Translating Channel 

Programs 160 

Processing After Completion of an I/O 

Request 174 

BTAM Considerations 174 

Track-Hold Facility 174 

Seek Separation 179 

Console Buffering 180 

Error Queueing and Dequeueing 181 

Loading ERP Physical Transients . ,. .183 

Disk Error Recovery .183 

2311 and 2314 DASD Error Recovery . .183 
3330 Disk Storage Error Recovery . . .185 
3340 DASD Error Recovery 186 

PROGRAM RETRIEVAL 189 

Shared Virtual Area (SVA) 189 

Directory List Support 189 

Search for Directory Entry 190 

Relocating Load 193 

PHYSICAL ATTENTION 195 

MACHINE CHECK AND CHANNEL CHECK 

HANDLING 197 

Machine Check Analysis and Recording . .197 

Channel Check Handler ... .198 

Recovery Transients and RAS Monitor . .200 

CHARTS ,. .205 

APPENDIX A: LABEL LIST .441 

APPENDIX B: TASK AND PARTITION KEY 
DEFINITIONS ,. .447 

APPENDIX C: DEVICE TYPE CODES 449 

APPENDIX D: TAPE DENSITY DATA 451 

APPENDIX E: CANCEL CODES AND MESSAGES .453 

APPENDIX F: MESSAGE REFERENCE LIST . .455 

APPENDIX G: TOTAL MESSAGE CROSS 

REFERENCE . . . .457 

INDEX 465 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



FIGURES 



Figure 1.1. Multiprogramming Storage 

Crganization 16 

Figure 1.2. Supervisor Storage 

Allocation 17 

Figure 2.1. Error Bytes in Low Real 
Storage (Part 2 of 2) ......... 21 

Figure 2.2. Supervisor Macros (Part 1 

of 11) 23 

Figure 2.3. Macro Function (Part 1 of 
3) 

Figure 2.4. Global Settings (Part 1 

continued) . . . . 36 

Figure 2.5. System Communication 

Region (SYSCOM) (Part 1 of 2) 42 

Figure 2.6. Partition Comirunicaticns 

Region (Part 1 of 6) 44 

Figure 2.7. Program Information Block 

(PIB) Table (Part 1 of 2) 50 

Figure 2.8. Indications of Logical 
Transient Area Occupancy and Activity . 52 
Figure 2.9. Program Information Block 

Table Extension (PIB2TAB) 53 

Figure 2.10. LTA and Problem Program 

Save Area . 5 3 

Figure 2.11. Boundary Box (BBOX) ... 54 
Figure 2.12. Tables for MICR DTF 
Addresses and Pointers (Part 1 of 2) .. 54 
Figure 2.13. Job Accounting Interface 
Common Table (ACCTCOMN) (Part 1 of 2) . 55 
Figure 2.14. Job Accounting Interface 
Partition Table (ACCTxx) (Part 1 of 2) . 56 
Figure 2.15. Disk Information Blcck 

(DIB) Table . . 58 

Figure 2.16. Deleted 59 

Figure 2.17. Line Mode Table (LMT) . . 60 
Figure 2.18. Recorder File Table 

(Part 1 of 2) 61 

Figure 2.19. Accessing the PUB2 Table 

(PUB2AREA) . 6 3 

Figure 2.20. PUB2 Table Entry Format 
for Unit Record and Unsupported - 

Devices 64 

Figure 2.21. PUB2 Table Entry Format 

for 3886 Optical Character Reader. ... 64 

Figure 2.22. PUB2 Table Entry Format 

for DASD 65 

Figure 2.23. PUB2 Table Entry Format 

for 3540 Diskette. 66 

Figure 2.24. PUB2 Table Entry Format 

for Tapes (Part 1 of 2) 67 

Figure 2.25. Accessing PDAID Routines 69 
Figure 2.26. Page Data Set Table 

(DPDTAB) ........ 70 

Figure 2.27. CRT Constant Table 

(CRTTAB) 70 

Figure 2.28. System Task Save Areas 

and CRT Constants 71 

Figure 2.29. ASCII Translation Tables 
(Part 1 of 4) . 72 



Figure 3.1. TRTFLD, TRFLD, TIDFID, 
and MVCFLD, assuming that NPARTS=3 and 

AP=NO 77 

Figure 3.2. Resource Table (TRTMASK) . 77 
Figure 3.3. System Task Identification - 

Field (STID) 78 

Figure 3.4. System Task Blocks .... 79 
Figure 3.5. Example of User Task 

Selection (Part 1 of 2) .80 

Figure 3.6. Examples cf Dispatching 

by DAT Dispatcher (Part 1 of 3) . . . . 82 

Figure 3.7. TIDTRT Field . . . . . . .83 

Figure 4.1. Program Check Option Table 86 
Figure 4.2. Routine Identifiers (RID) 
as Used by the Page Fault Handler 
(PFFLIH) in Handling Page Requests . . 87 
Figure 4.3. Supervisor Calls (Part 1 

of 4) 89 

Figure 4.4. Headqueue PUB Table .... 95 
Figure 4.5. Operator Communication 

Option Table 95 

Figure 4.6. Abnormal Termination 

Option Table 96 

Figure 4.7. Interval Timer Option 

Table 96 

Figure 4.8. Interval Timer Request 

Table 97 

Figure 4.9. Format of the User's Save 
Area for AB, PC, OC, and IT Routines . . 97 
Figure 4.10. Event Control Elock (ECB) 100 
Figure 4.11. Resource Control Block 

(RCB) . .101 

Figure 4.12. Emulator ECB Table 

(EUECBTAE) 101 

Figure 4.13. Resource Usage Record 

Table (RURTAB) . .106 

Figure 4.14. Anchor Table (ANCHTAB) . .107 

Figure 4.15. FIXWTAB . . 108 

Figure 4.16. Page Fault Handling 

Overlap Option Table (PFATAB) . v . . .109 

Figure 4.17. Restart-PFIX Parameter 

List Entry 109 

Figure 4.18. PAGEIN Table (PAGETAB) . .112 
Figure 5.1. Page Frame Table .... .114 
Figure 5.2. Segment and Page Tables . .114 
Figure 5.3. Selection Pool Queue - 

Identifiers and Queue Headers 116 

Figure 5.4. Selection Peel Queue 

Headers and Queue Elements 116 

Figure 5.5. Selection Pool Queue 

Switching . . ^ 117 

Figure 5.6. Page Queue (PGQU) .... .117 
Figure 5.7. Actions after TFREE . . .121 
Figure 5.8. Criteria for Partition 

Deactivation .122 

Figure 5.9. Example of Usage of 
Workareas DEACTFLD and WAITFLD when 
Selecting a Partition for Deactivation .124 
Figure 5.10. Example cf Usage of 
Workareas DEACTFLD and WAITFLD when 
Selecting a Partition for Reactivation .127 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



Figure 6.1. I/O Table 

Interrelationships (Part 1 of 3) . . . .130 

Figure 6.2. Channel Queue Table 

(CHANQ) and Entry 133 

Figure 6.3. Physical Unit Block (PUB) - 

Table 133 

Figure 6.4. Physical Unit Block 

Ownership (PUBOWNER) Table 135 

Figure 6.5. Job Information Block 

(JIB) Table . .136 

Figure 6.6. Tape Error Block Table 

(TEBTAB) . . . .137 

Figure 6.7. Channel Control Table 

(CHNTAB) .. . .... . . . . . .... .137 

Figure 6.8. Logical Unit Block (LUB) 

Table . . 13 8 

Figure 6.9. Example of Pointers to 

PUBs for Switchable Devices 13 9 

Figure 6.10. Initial Contents of 
Significant Bytes used in Queueing I/O 

Requests 140 

Figure 6.11. Queueing the First I/O 

Request 140 

Figure 6.12. Queueing the First I/O 

Request for Second Device 141 

Figure 6.13. Queueing an I/O Request 
for a Device with a Request Already 

Queued 141 

Figure 6.14. Example of Channel Queue 
with Several Requests Queued for Each 

of Two Devices .142 

Figure 6.15. Dequeueing First Request 
on Second Device, Leaving Outstanding 

Requests Chained . . 142 

Figure 6.16. Adding a New Request to 

Chain for First Device . . 14 3 

Figure 6.17. Dequeueing Last Request 

in Chain for First Device 14 3 

Figure 6.18. Queueing New Request for 

First Device 144 

Figure 6.19. Channel Buckets 14 5 

Figure 6.20. Command Control Block 

(CCB) (Part 1 of 3) .147 

Figure 6.21. Channel Command Word 

(CCW) .15 

Figure 6.22. Program Status Word (PSW) 150 
Figure 6.23. Channel Address Word 

(CAW) 15 

Figure 6.24. channel Status Word 

(CSW) 150 

Figure 6.25. CSW Testing in I/O 

Interrupt Handler 152 

Figure 6.26. Translation Control 

Block (CCWTCB) .155 

Figure 6.27. Chain of Used Translation 

Control Blocks ....... 156 

Figure 6.28. CCB Copy Block 156 

Figure 6.29. Locating CCB Copy Blocks .157 

Figure 6.30. CCW Copy Block 157 

Figure 6.31. Locating CCW Copy Blocks .15 8 
Figure 6.32. Relation of IDAL Blocks 

to Other Blocks .159 

Figure 6.33. Fix Information Bit 

String and Block . .16 

Figure 6.34. Initializing Special 

Command List Pointers in TCB ..... .161 

Figure 6.35. Schematic Representation 

of Channel Program Translation 16 2 



Figure 6.36. CCW Translation for 
Channel Programs Without TIC or Status 

Modifier Commands 162 

Figure 6.37. Locating a copy location 
for a CCW pointed to by a TIC when the 
location is in an already used copy 

block . .163 

Figure 6.38. Enqueueing a new copy 
block to the correct location in the 
CCW copy block chain to handle a CCW 

pointed to by a TIC 164 

Figure 6.39. CCW Copy block queueing 
calling for the creation of a "short" 

block to maintain alignment 165 

Figure 6.40. Enqueueing new copy 
block which cannot be aligned to 
existing block because CCW too far 
removed from VBA of any existing block 167 
Figure 6.41. A channel program 
containing status modifier commands 
after the first pass has been made at 

copying it 16 8 

Figure 6.42. Channel program 

containing status modifier commands 

after the first pass has been made . . .16 9 

Figure 6.43. The channel program 

containing status modifier commands 

after the second pass has been made. . .170 

Figure 6.44. The channel program 

containing status modifier commands 

after translation has been completed . .171 

Figure 6.45. Copied CCW requiring an 

IDAL to be built (normal READ or WRITE 

command) . . . 172 

Figure 6.46. Copied CCW requiring an 
IDAL to be built (READ Backward 

command) 173 

Figure 6.47. Track-Hold Table: ... .175 
Figure 6.48. Track-Hold Table (THTAB) .175 
Figure 6.49. Track- Hold Table: ... .176 
Figure 6.50. Example of Tracks Held 

and Freed by Three Tasks 177 

Figure 6.51. Track- Hold Table: . . . .178 
Figure 6.52. Track-Hold Table: 
Situation after total release .... .178 
Figure 6.53. Seek Address Block Table - 

(SAB) .179 

Figure 6.54. Seek Address Block (SAB) 

Table Entries .'....' .179 

Figure 6.55. Console Buffering Table 
(CBTAB) . . . . . .... . . . . . . .181 

Figure 6.56. Operation of Error Queue 
with Three Entries ... . . . . . . .182 

Figure 6.57. Error Recovery Block 

(ERBLOC) and Error Queue Entry . ... .182 

Figure 7.1. Layout of Shared virtual 

Area .189 

Figure 7.2. Layout of Virtual Library .189 
Figure 7.3. Fetch Parameter Save Area 

(CALLSEQ) . . . .190 

Figure 7.4. Fetch Table (FTTAB) . . . .191 
Figure 7.5. Relationship Between 
Directory and its Second Level 
Directory . . . . ... . . . . . . . .191 

Figure 7.6. Layout of SYSRES 192 

Figure 7.7. Layout of Directory Entry ,192 

Figure 7.8. Core Image Library Block 

for Relocatable Phase . .194 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



Figure 8.1. Physical Attention 

Messages ($$ABERRZ) 196 

Figure 9.1. Channel Check Severity 

Detect Routine 199 

Figure 9.2. Error Recovery Procedure 
Information Block (ERPIB) 200 



Figure 9.3. RAS Monitor Table 

(RASTAB) (Part 1 of 2) 201 

Figure 9.4. RAS Linkage Area (RASLINK) 203 
Figure 10.1. Device Type Codes (Part 

1 of 2) . .449 

Figure 10.2. Tape Density Data . . . .451 

Figure 10.3. Cancel Codes and 

Messages (Part 1 of 2) 453 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



CHARTS 



Chart 00. Disk Operating System 

Program Flow 14 

Chart 01.1. Supervisor General Entry .205 
Chart 02.1. Supervisor General Exit, 

Select Task . .206 

Chart 02.2. Supervisor General Exit, 

Cancel Exit 207 

Chart 02.3. Supervisor General Exit, 

DAT Dispatcher 208 

Chart 03.1. Program Check Handler, 

and Cancel Routine 209 

Chart 03.2. Program Check Handler, 

Page Fault Handler 210 

Chart 04.1. Physical Attention 

Routines . .211 

Chart 05.1. Supervisor Call Routines .212 
Chart 05.2. Supervisor Call Routines .213 
Chart 06.1. I/O Routines, I/O 

Interrupt Handler 214 

Chart 06.2. I/O Routines, I/O 

Interrupt Handler . . . 215 

Chart 06.3. I/O Routines, Channel 

Scheduler 216 

Chart 06.4. I/O Routines, Channel 

Scheduler 217 

Chart 07.1. External Interrupt 

Routines 218 

Chart 08.1. Fetch Routine 219 

Chart 08.2. Fetch Routine 22 

Chart 09.1. Unit Check Routine . . . .221 
Chart 10.1. Resident Disk Error 

Recovery Routine 22 2 

Chart 11.1. Physical Transient 

Interface, Exit Routine 223 

Chart 11.2. Physical Transient 

Interface, Return Routine 224 

Chart 12.1. MCH/CCH, Machine Check 
Handler and Emergency Exit Routine . . .22 5 
Chart 12.2. MCH/CCH, Channel Check 

Handler 226 

Chart 12.3. MCH/CCH, RAS Monitor . . .227 
Chart 13.1. Page Management, Enqueue 

Request to Page Queue 22 8 

Chart 13.2. Page Management, Handle 

Page Queue Entry 22 9 

Chart 13.3. Page Management, Dequeue 

Request from Page Queue 230 

Chart 13.4. Page Management, Handle 

Selection Pcol Empty Condition 231 

Chart 13.5. Page Management, 

Subroutines, Reset Fetch 232 

Chart 13.6. Page Management, 

Deactivation of Partition ...... .233 

Chart 13.7. Page Management, 

Reactivation of Partition 234 

Chart 13.8. Page Management, 

Reactivation of Partition 235 

Chart 13.9. Page Management, TFIX 

Routines 236 

Chart 13.10. Page Management, TFREE 
Routines 237 



Chart 13.11. Page- Management, PFTX 

Routines 238 

Chart 13.12. Page Management, PFIX, 

Find a Page Frame 239 

Chart 13. i3. Page Management, 

Exchange Pages, PFIX-Restart 24 

Chart 13.14. Page Management, PFREE 

Routines 241 

Chart 13.15. Page Management, PAGEIN 

Routine 242 

Chart 13.16. Page Management, RELPAG 

and FCEPGOUT Routines 243 

Chart 13.17. Page Management, GETREAL 

Routines . .24 4 

Chart 13.18. Page Management, 
Initialize Partition, Initialize Page 

Table Entries 245 

Chart 13.19. Page Management, 

FREEREAL Routines 246 

Chart 14.1. Channel Program 

Translation, General Routine 247 

Chart 14.2. Channel Program 

Translation, General Routine 248 

Chart 14.3. Channel Program 

Translation, Subroutines 249 

Chart 14.4. Channel Program 

Translation, Build IDAL, TFIX Data Area 250 

Chart 14.5. Channel Program 

Translation, LOCATE Routine 251 

Chart 14.6. Channel Program 

Translation, Status Modifier Command . .252 

Chart 14.7. Channel Program 

Translation, Handle TIC and Elock End 

Chains, and IDALs 253 

Chart 14.8. Channel Program 

Translation, Subroutines 254 

Chart 14.9. Channel Program 

Retranslation 255 

Chart 14.10. Channel Program 

Translation, Reset or Cancel 256 

Chart 14.11. Channel Prcgrair 

Translation, SVC 72, SVC 77 257 

Chart A00. Entry Index 258 

Chart A01. $$A$SUP1 - IOINTER Macro, 
I/O Interrupt Handler, Dequeue Channel 

Queue Entry 259 

Chart A02. $$A$SUP1 - PIOCS Macro, 

Start I/O 26 

Chart A03. $$A$SUP1 - FOPT Macro, 
Task Selection, Initial Selection of 

Attention 261 

Chart A04. $$A$SUP1 - FOPT Macrc, 
Task Selection, Initial Selection of 

Attention; .262 

Chart A05. $$A$SUP1 - FOPT Macro, 

Task Selection, System Task Dispatcher .263 

Chart A06. $$A$SUP1 - FOPT Macro, 

Task Selection, System Task Dispatcher .264 

Chart A07. $$A$SUP1 - SMICR Macro, 

External Interrupt Handler 265 

Chart A08. $$A$SUP1 - PIOCS Macro, 

Check Seek Address 266 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



Chart A09. $$A$SUP1 - PIOCS Macro, 

Cancel Exit . . . . . . . . .267 

Chart A10. $$A$SOPl - SGTHAP Macro, 

AP Cancel Routine 26 8 

Chart All. $$A$SUP1 - SGTHAP Macro, 

AP Cancel Routine, Store Cancel Codes .26 9 

Chart A12. $$A$SUP1 - SGTHAP Macro, 

Detach Subtask (SVC 39) . .270 

Chart A13. $$A$SUP1 - SGTHAP Macro, 

Detach Subtask (SVC 39) . . . 271 

Chart A14. $$A$SUP1 - IOINTER Macro, 
Release a Resource (SVC 64) ...... .272 

Chart A15. $$A$SUP1 - IOINTER Macro, 

Dequeue Channel Queue Entry 273 

Chart A16. $$A$SUP1 - IOINTER Macro, 

Reschedule Channel 274 

Chart A17. $$A$SUP1 - IOINTER Macro, 

Initialize Headqueuing 275 

Chart A18. $$A$SUPl - IOINTER Macro, 

I/O Interrupt Handler, PUBSCAN Routine .276 

Chart A19. $$A$SUP1 - IOINTER Macro, 

I/O Interrupt Handler, Channel 

Appendage Interface 277 

Chart A20. $$A$SUP1 - IOINTER Macro, 
I/O Interrupt Handler, Unit Check 

Routine ... ..... .278 

Chart A21. $$A$SUP1 - IOINTER Macro, 

I/O Interrupt Handler, Active ERP . . .27 9 

Chart A22. $$A$SUP1 - IOINTER Macro, 

I/O Interrupt Handler, Activate 

Attention .28 

Chart A23. $$A$SUP1 - IOINTER Macro, 

I/O Interrupt Handler 281 

Chart A24. $$A$SUP1 - IOINTER Macro, 

I/O Interrupt Handler 282 

Chart A25. $$A$SUP1 - IOINTER Macro, 
I/O Interrupt Handler, Unit Check 

Routine 28 3 

Chart A26. $$A$SUP1 - IOINTER Macro, 
I/O Interrupt Handler, Unit Check 

Routine . . 284 

Chart A27. $$A$SUP1 - SGDSK Macro, 

Resident Disk ERP 285 

Chart A28. $$A$SUP1 - SGDSK Macro, 

Resident Disk ERP 286 

Chart A29. $$A$SUP1 - SGDSK Macro, 

Resident Disk ERP 287 

Chart A30. $$A$SUP1 - SGDSK Macro, 

Resident Disk ERP 288 

Chart A31. $$A$SUP1 - SGDSK Macro, 

Resident Disk ERP .28 9 

Chart A32. $$A$SUP1 - SGDSK Macro, 

Resident Disk ERP . 290 

Chart A33. $$A$SUP1 - FOPT Macro, 

Interval Timer 291 

Chart A34. $$A$SUP1 - FOPT Macro, 

Interval Timer 292 

Chart A35. $$A$SUP1 - FOPT Macro, 

Fetch Exit, Load Phase (SVC 4) 293 

Chart A36. $$A$SUP1 - FOPT Macro, 

General Entry Routine 294 

Chart A37. $$A$SUP1 - FOPT Macro, 

General Entry Routine . .295 

Chart A38. $$A$SUP1 - SMICR Macro, 

MICR Interrupt Handler . .296 

Chart A39. $$A$SUP1 - SMICR Macro, 

MICR Interrupt Handler 297 



Chart A40. $$A$SUP1 - SMICR Macro, 

MICR Interrupt Handler ........ .298 

Chart A41. $$A$SUP1 - SMICR Macro, 

MICR Interrupt Handler 299 

Chart A42. $$A$SUP1 - SMICR Macro, 

MICR Interrupt Handler 300 

Chart A43. $$A$SUP1 - SMICR Macro, 

MICR Interrupt Handler 301 

Chart A44. $$A$SUP1 - SMICR Macro, 

MICR Error Recovery for SIO ..... .302 

Chart A4 5. $$A$SUPl - SMICR Macro, 

MICR Interrupt Handler .303 

Chart A46. $$A$SUP1 - FOPT Macro, 
Interrupt Entry Routines, Job 

Accounting Routine 304 

Chart A47. $$A$SUP1 - PIOCS Macro, 

Calculate PUB Address 305 

Chart A4 8. $$A$SUP1 - PIOCS Macro, 

EXCP (SVC 0) 306 

Chart A49. $$A$SUP1 - PIOCS Macro, 

EXCP (SVC 0) . . . 307 

Chart A50. $$A$SUP1 - PIOCS Macro, 

Subroutines 308 

Chart A51. $$A$SUP1 - PIOCS Macro, 
RMSR Recording EXCP (SVC 76), Halt I/O 

(SVC 25) 309 

Chart A52. $$A$SUPl - PIOCS Macro, 

Halt I/O (SVC 25) . .310 

Chart A53. $$A$SUP1 -PIOCS Macro, 
SVC 3, SVC 5, Return to Supervisor 

from PTA 311 

Chart A54. $$A$SUPl - PIOCS Macro, 

Return to Supervisor from PTA .... .312 

Chart A55. $$A$SUP1 - PIOCS Macro, 

Reset SVC 44 Request 313 

Chart A56. $$A$SUP1 - PIOCS Macro, 
Check Whether Deactivated Task has SVC 

44 Request with TFIX 314 

Chart A57. $$A$SUPl - SGSVC Macro, 

Entry for SVCs 7, 8, 9, and 10 315 

Chart A58. $$A$SUP1 - SGSVC Macro, 
Set Timer Interval, Provide Linkage 

(SVC 24) 316 

Chart A59. $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 12, 13, and 16 317 

Chart A60. $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 17-21, 37 318 

Chart A61. $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 22, 23, and 24 319 

Chart A62. $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 26 and 52 320 

Chart A63. $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 29, 33, and 34 .... .321 

Chart A64. $$A$SUP1 - SGSVC Macro, 

Entry for SVC 44 . 322 

Chart A65. $$A$SUP1 - SGSVC Macro, 
Entry for SVCs 45, 46, 48, 51, 54, and 

56 323 

Chart A66, $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 57-59, 61-62, 65-69 . . .324 

Chart A67. $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 70-72 .325 

Chart A6 8. $$A$SUP1 - SGSVC Macro, 

Entry for SVCs 73, 74, and 77 326 

Chart A69. $$A$SUP1 - SGSVC Macro, 
Address Validation . . .327 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



Chart A70. $$A$SUP1 - SGSVC Macro, 
Provide Virtual Address of Location in 

I/O Area (SVC 60) 32 8 

Chart A71. $$A$SUPl - SGTHAP Macro, 
Hold Track (SVC 35), Free Track (SVC 

36) 329 

Chart A72. $$A$SUP1 - SGTHAP Macro, 

Free Track (SVC 36) 33 

Chart A73. $$A$SUP1 - SGTHAP Macro, 
Hold Track (SVC 35) , Free Track (SVC 

36) . . . 331 

Chart A74. $$A$SUPl - SGTHAP Macro, 

Cancel Program or Task (SVC 6) 332 

Chart A75. $$A$SUP1 - SGTHAP Macro, 

Attach Subtask (SVC 38) 333 

Chart A76. $$A$SUP1 - SGTHAP Macro, 

Post ECB (SVC 40) 334 

Chart A77. $$A$SUP1 - SGTHAP Macro, 
Investigate Waiting Tasks ...... .335 

Chart A78. $$A$SUP1 - SGTHAP Macro, 

Investigate Waiting Tasks 336 

Chart A79. $$A$SUP1 - SGTHAP Macrc, 
Enqueue (SVC 42) and Dequeue (SVC 41) 

Task from a Resource 337 

Chart A80. $$A$SUP1 - SGTHAP Macro, 
Dequeue (SVC 41) Task from a Resource .33 8 
Chart A81. $$A$SUP1 - IOINTER Macro, 
USE (SVC 63) /RELEASE (SVC 64) Common 

Subroutines 339 

Chart A82. $$A$SUP1 - IOINTER Macro, 
USE (SVC 63) /RELEASE (SVC 64) Common 

Subroutines 340 

Chart A83. $$A$SUP1 - SMICR Macro, 
Return from User Stacker Select 

Routine (SVC 28) 341 

Chart A84. $$A$SUPl - SMICR Macro, 
Return from User Stacker Select 

Routine (SVC 28) . . 342 

Chart A85. $$A$SUP1 - IOINTER Macro, 

CSW Stored at SIO Time . .34 3 

Chart A86. $$A$SUP1 - IOINTER Macro . .344 
Chart A87. $$A$SUP1 - IOINTER Macro .344.1 
Chart B01. $$A$SUP1 - SGEND Macro, 
Activate CRT Hooks, LTA Routine 

Entered from BONCE 344.2 

Chart B02. $$A$SUP1 - SGEND Macro, 
Activate Dynamic Address Translation, 

Initialize Page Table 345 

Chart B03. $$A$SUP1 - SGDFCH Macro, 

Fetch Routine 34 6 

Chart B04. $$A$SUP1 - SGDFCH Macro, 

Fetch Routine 347 

Chart B05. $$A$SUP1 - SGDFCH Macrc, 
Fetch Routine, Phase Not Found .... .348 
Chart B06. $$A$SUP1 - SGDFCH Macrc, 
Channel Program Translation for Fetch 

Program 349 

Chart B07. $$A$SUP1 - SGDFCH Macro, 
Calculate Load Point and Entry Point 

of Phase 350 

Chart B08. $$A$SUP1 - SGDFCH Macro, 

Load the Phase 351 

Chart B09. $$A$SUP1 - SGDFCH Macro, 

Channel Program Retranslation 35 2 

Chart B10. $$A$SUP1 - SGDFCH Macro, 
Relocate User Adcons 35 3 



Chart Bll. $$A$SUP1 - SGDFCH Macro, 
Scan Directory List for Equal Phase 

Name 354 

Chart B12. $$A$SUPl - SGDFCH Macro, 

Scan Link Directory 355 

Chart B13. $$A$SUPl - SGDFCH Macro, 

Check for More Buffer Space 356 

Chart B14. $$A$SUP1 - SGDFCH Macro, 

Restart Fetch Routine 357 

SGCCWT Macro, Channel Program 

Translation 357 

Chart B15. $$A$SUPl - SGCCWT Macro, 
Channel Program Translation ..... .358 

Chart B16. $$A$SUP1 - SGCCWT Macro, 
Channel Program Translation ..... .359 

Chart B17. $$A$SUPl - SGCCWT Macrc, 

Channel Program Translation 36 

Chart B18. $$A$SUP1 - SGCCWT Macro, 

Channel Program Translation 361 

Chart B19. $$A$SUPl - SGCCWT Macro, 

Copy CCW 36 2 

Chart B2 0. $$A$SUP1 - SGCCWT Macro, 

Set TCB Flags 363 

Chart B21. $$A$SUPl - SGCCWT Macro, 

Build Indirect Address List ..... .364 

Chart B22. $$A$SUPl - SGCCWT Macro, 

Find Address of Copy Location .... .365 

Chart B23. $$A$SUPl - SGCCWT Macro, 

TFIX Data Area 366 

Chart B24. $$A$SUPl - SGCCWT Macro, 

TFREE Data Area 367 

Chart B25. $$A$SUP1 - SGCCWT Macro, 

Get/Release TCB 36 8 

Chart B26. $$A$SUP1 - SGCCWT Macro, 

Get/Release Copy Block 36 9 

Chart B27. $$A$SUPl - SGCCWT Macro, 
Release Blocks, Get Virtual Address of 

CCW 370 

Chart B28. $$A$SUPl - SGCCWT Macro, 

Channel Program Retranslation 371 

Chart B29. $$A$SUP1 - SGCCWT Macro, 

Reset Channel Program Translation . . .372 

Chart B30. $$A$SUP1 - SGCCWT Macro, 

Move Copied CCB to Virtual CCB 373 

Chart B31. $$A$SUP1 - SGCCWT Macro, 

Reset Translation, GETCBUF, FREECBUF . .374 

Chart B32. $$A$SUP1 - SGPMGR Macro, 

Entry Point for Program Check 375 

Chart B33. $$A$SUP1 - SGPMGR Macro, 

Program Check Entry Routine 376 

Chart B34. $$A$SUP1 - SGPMGR Macro, 
Enqueue Request to Page Queue .... .377 
Chart B35. $$A$SUP1 - SGPMGR Macro, 
Page Fault Handling Overlap Interface .378 
Chart B3 6. $$A$SUP1 - SGPMGR Macro, 

Page Manager System Task 379 

Chart B37. $$A$SUP1 - SGPMGR Macro, 

Dequeue Page Queue Entry 380 

Chart B38. $$A$SUP1 - SGPMGR Macro, 
Handle No Page Frames Available 

Condition 381 

Chart B39* $$A$SUP1 - SGPMGR Macro, 

Return to Supervisor Routine 382 

Chart B4 0. $$A$SUP1 - SGPMGR Macro, 

GETREAL (SVC 55) Routine 383 

Chart B41. $$A$SUP1 - SGPMGR Macro, 
GETREAL (SVC 55) Routine 384 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



Chart B42. $$A$SUP1 - SGPMGR Macro, 

GETREAL Routine 385 

Chart B43. $$A$SUP1 - SGPMGR Macro, 

FREEREAL (SVC 54) Routine 386 

Chart B44. $$A$SUP1 - SGPMGR Macro, 

TFIX and TFREE Routines 387 

Chart B45. $$A$SUP1 - SGPMGR Macro, 

Post Requesting Task Ready to Run . • .388 

Chart B46. $$A$SUP1 - SGPMGR Macro, 

Dequeue Page Queue Entry 38 9 

Chart B47. $$A$SUP1 - SGPMGR Macro, 

Reset Fetch 390 

Chart B48. $$A$SUP1 - SGPMGR Macro, 

Initialize Partition (SVC 58) 391 

Chart B49. $$A$SUP1 - SGPMGR Macro, 

PFIX Restart 392 

Chart B50. $$A$SUP1 - SGPMGR Macro, 

PFIX Routine 393 

Chart B51. $$A$SUP1 - SGPMGR Macro, 

PFIX, Find Page Frame 394 

Chart B52. $$A$SUP1 - SGPMGR Macro, 

PFREE Routine (SVC 68) 395 

Chart B53. $$A$SUP1 - SGPMGR Macro, 

PFREE Routine (SVC 6 8) 396 

Chart B54. $$A$SUP1 - SGPMGR Macro, 

PFIX Routine (SVC 67) 397 

Chart B55. $$A$SUP1 - SGPMGR Macro, 

PFIX Routine (SVC 67) 398 

Chart B56. $$A$SUP1 - SGPMGR Macro, 

PFIX Routine (SVC 67) 399 

Chart B57. $$A$SUP1 - SGPMGR Macro, 

DTFIX Subroutine 400 

Chart B58. $$A$SUP1 - SGPMGR Macro, 

DPFIX Subroutine, Exchange Pages • . . .401 

Chart B59. $$A$SUP1 - SGPMGR Macro, 

Exchange Pages 402 

Chart B60. ~$$A$SUP1 - SGPMGR Macro, 

Scan Queues for Page Frame 403 

Chart B61. $$A$SUP1 - SGPMGR Macro, 

Perform Page I/O 404 

Chart B62. $$A$SUP1 - SGPMGR Macro, 

DTFREE and DPFREE Subroutines 405 

Chart B63. $$A$SUP1 - SGPMGR Macro, 

Subroutines 406 

Chart B64. $$A$SUP1 - SGPMGR Macro, 

Update Page-In Counters 407 

Chart B65. $$A$SUP1 - SGPMGR Macro, 

Deactivate a Partition 408 

Chart B66. $$A$SUP1 - SGPMGR Macro, 

Deactivate a Partition 409 

Chart B67. $$A$SUP1 - SGPMGR Macro, 

Deactivate a Partition 410 

Chart B68. $$A$SUP1 - SGPMGR Macro, 
Reactivate a Deactivated Partition . . .411 
Chart B69. $$A$SUP1 - SGAM Macro, 

CDLOAD Routine (SVC 65) 412 

Chart B70. $$A$SUP1 - SGAM Macro, 

CDLOAD Routine (SVC 65), GETVIS Routine 413 

Chart B71. $$A$SUP1 - SGAM Macro, 

GETVIS Routine 414 



Chart B72. $$A$SUP1 - SGAM Macro, 

FREEVIS, GETVISB and GTVSINIT Routines .415 

Chart B73. $$A$SUP1 - SGPOPT Macro, 

PAGEOUT (SVC 85/86) Routine 416 

Chart B74. $$A$SUPl - SGPOPT Macro, 
PAGEOUT (SVC 85/86) Routine ..... .417 

Chart B75. $$A$SUP1 - SGPOPT Macro, 

PAGEIN (SVC 87) Routine 418 

Chart B76. $$A$SUP1 - SGPOPT Macro, 

PAGEIN (SVC 87) Routine 419 

Chart B77. $$A$SUPl - SGPOPT Macro, 

Validate Parameter List . 420 

Chart B78. $$A$SUPl - SGPOPT Macro, 
Delete PAGETAB Entries if Task 

Terminates 421 

Chart B79. $$A$SUP1 - MCRAS Macro, 

Machine Check Handler 422 

Chart B80. $$A$SUP1 - MCRAS Macro, 
Determine Machine Check Severity . . . .423 
Chart B81. $$A$SUP1 - MCRAS Macro, 

Emergency Situation Handling 424 

Chart B82. $$A$SUP1 - MCRAS Macro, 

Channel Check Handler 425 

Chart B83. $$A$SUP1 - MCRAS Macro, 

Channel Check Handler 426 

Chart B84. $$A$SUP1 - MCRAS Macro, 

Channel Check Handler 427 

Chart B85. $$A$SUPl - MCRAS Macro, 

Channel Check Handler 428 

Chart B86. $$A$SUP1 - MCRAS Macro, 

DASD Channel Check Handler ...... .429 

Chart B87. $$A$SUP1 - MCRAS Macro, 
Dequeue RAS I/O Request, ERPIB Queue 

Scan . 430 

Chart B88. $$A$SUP1 - MCRAS Macro, 

ERPIB Queue Scan . . . . 431 

Chart B89. $$A$SUP1 - MCRAS Macro, 

RTA Function Scan 432 

Chart B90. $$A$SUP1 - MCRAS Macro, 

Perform Functions for RTA 433 

Chart B91. $$A$SUP1 - MCRAS Macro, 

Perform Function for RTA 434 

SGDFCH Macro, Scan Systeir Directory 

List (SDL) 434 

Chart B92. $$A$SUPl - SGDFCH Macro, 

Scan System Directory List (SDL) . . . .435 

Chart B93. $$A$SUP1 - SGDFCH Macro, 

Read Directory Blocks .436 

Chart B94. $$A$SUP1 - SGDFCH Macro, 

Sector Convert Routine (Part 1 of .2) . .436 

Chart B95. $$A$3UP1 - SGDFCH Macro, 

Sector Convert Routine (Part 2 of 2) . .436 

Chart C01. $$ABERRZ - Physical 

Attention .437 

Chart C02. $$ABERRZ - Physical 

Attention .438 

Chart C03. $$ABERRZ - Physical 

Attention .439 

Chart D01. $$ABERZl - Quiesce LTA I/O .440 



Page of SY33-8551-1, revised September 30, 1974, fcy TNL SN33-8790 



Chart 00. Disk Operating Systeir Program Flew 



CMTLOAOUNtTX 
SWITCHIt 1 

IPR«l»LOAOKtY / 



»L «OOTSTRAP 1 
IPL iOOTSTRAP 2 
IPL PHASE 1 
IUASIPL2I 



O^ 



JOB CONTROL 



L -J 



LOAD AND 
INITIALIZE 
THE SUPERVISOR 

IttASSUPII 



[ INTERRUPTS ) 



RESIDENT SUPERVISOR 



TASK SELECTION. INTER. 
RUPT PROCESSORS . PAGE 
MANAGEMENT. PHYSICAL 
IOCS. DISK ERROR RECOV 
ERY. PHYSICAL ATTENTION 



I DOt/VS Erf» R««>-r v m* » w i * n Tt 



J L. 




TRANSIENT ROUTINES 



EXEC LANGUAGE PROCESSOR 



7 EXECLNKEDT 



COPY SYSTEM AND 

CREATE PRIVATE 

LIBRARIES 




//EXECCSERV 


CSERV 


h 


CORE IMAGE 
SERVICE 


1 


//EXECOSERV 


DSERV 


1- 


DIRECTORY SERVICE 


I , 


// EXEC RSERV 


RSERV 


h 


RELOCATABLE 
LIBRARY SERVICE 


■ 




//EXECSSERV 


SSERV 


h 


SOURCE STATEMENT 
LIBRARY SERVICE 


■ 




EXECESERV 


ESERV 




r 

'/ EXEC PSE 


SOURCE 
STATEMENT 
SUBLIB E 
SERVICE 


RV 


PSERV 


PROCEDURE 

LIBRARY 

SERVICE 



14 DOS/VS Supervisor 



INTRODUCTION 



The resident version of the IBM Disk 
Operating System (DOS) , System Control, 
requires 30K for a Model 115 or 125, 32K 
for a Model 135 or 145, and 34K for a Model 
155-11 or 158. 



The system is disk resident, using an 
IBM disk storage device for online storage 
of all programs. Depending en the 
required; _s of the particular application, 
the system can be expanded tc include all 
processing programs used to perforir the 
various jobs of a particular installation, 
or it can be tailored to a minimum system 
to control a single program. 



fo 



The opera ting system includes the 
llowing components: CPU, input/output 
channels, input/output control units, 
input/output devices, microprogramming, 
system control, programs, support programs, 
user programs, user data files, 
teleprocessing capability, and multiple 
programming capability. 

The supervisor and physical IOCS are 
specifically designed for a particular 
configuration by means of a one-shot 
assembly (generation time) . They require 
reassembly if the configuration changes. 



The supervisor operates with problem 
programs when job processing (problem 
program execution) occurs . The supervisor 
is divided into two parts: 

1. The resident part, called the 
supervisor nucleus ; 

2. The nonresident part, called supervisor 
transients . 



The nucleus is loaded into real storage at 
IPL time and remains there throughout job 
processing. Transients are loaded, as 
needed, from the core image library. When 
one transient has finished performing its 
service, it can be overlaid by another 
required transient. This technique makes 
maximum use of real storage allotted to the 
supervisor. 



Real storage locations are reserved in the 
supervisor area for: 

Logical ($$B) transients - LTA 
(1200 bytes) . 

Physical ($$A) transients - PTA 
(1024 bytes) . 

Recovery ($$R) transients - RTA 
(1000 bytes) . 

CRT ($$BOCRT) transients - CRTTRNS 
(952 bytes) . 

The CRT Transient area is enly generated in 
a supervisor with Display Operator Console 
(DOC) support. 

The basic functions performed by the 
supervisor are: 



Storage protection. 

Interrupt handling. 

Channel scheduling. 

Device error recovery and recording. 

Machine Check and Channel Check recovery 
and recording. 

Operator communications. 

Program retrieval (fetch or load) . 

End-of-Job processing. 

Timer service. 

Page Management. 

Channel Program Translation. 



Each installation must generate its own 
custom-made supervisor by means cf a one- 
shot assembly. Supervisor generation 
macros control the generation cf the 
supervisor control program. The user must 
reassemble the supervisor if its functions 
are to be modified (for example, when an 
installation configuration changes). 



Introduction 15 



Storage Organization 



Real 

Address 

Area 



Virtual 

Address 

Area 



Supervisor 



BG-R 



F4-R 



F3-R 



F2-R 



F1-R 



Main Page Pool 
(for Programs 
Executing in 
Virtual Mode) 



BG-V 

(Minimum Always 

64K) 



F4-V 



F3-V 



Partition Format 



A 



o 



/ 



Partitions 

* Background 
Partition 



> Foreground4 
Partition / 

> Foreground3 
Partition 



/ 



/ 



/ 



\ 



\ 



Format of 

any 

Partition 



► Foreground2 \ 

Partition \ 

) Foreground 1 \ 

Partition 



F2-V 



F1-V 



SVA 



\ 



\ 



\ 



\l 



Partition Save Area 
Program Name 

(8 bytes) 
Program Status 

Word 

(8 bytes) 
General Registers 

9 through 8 

(64 bytes) 
Length of Label 
-^ Area (2 bytes) 
( 2 ) Reserved (6 bytes) 
Floating-Point 

Registers f?\ 

(32 bytes) \_J 



^-^ t 



Label Save Area 
(optional) 



User's Program 



l 



flj Up to five partitions may be specified: one background and four foreground. Each 
^^^ partition consists of the pair 'real partition - virtual partition'. 

An active virtual partition comprises at least 64K bytes in the virtual address area; 
the number of bytes is always a multiple of 2K. 

An active real partition comprises any multiple of 2K bytes in the real address area; 
whenever a real partition is active, the corresponding virtual partition is also 
active. 

An inactive partition, whether real or virtual,, may comprise any multiple cf 2K bytes 
or may be reduced to zero. 

The virtual background partition (BG-V) is always active and therefore always 
comprises at least 64K bytes. 

C2J Job start time, for time stamp, is stored in last 4 bytes of this area (bytes 84-87) 
^"^ when specified. 

(Y) Floating point register save area is required only when floating point feature is 
^~^ specified for supervisor generation. 

C^J Standard tape labels = 80 bytes; sequential DASD and DTFPH (MOUNTED = SINGLE) = 
^"^ bytes; and DTFIS, DTFDA, and DTFPH (MOUNTED = ALL) = 84 bytes + 20 bytes per extent 
statement. 

Figure 1.1. Multiprogramming Storage Organization 



16 DOS/VS Supervisor 



Ease Registers 



h 



| HARDWARE/SOFTWARE INTERFACE (PSWS, Logout Areas, etc.) 

TAELES AND CONSTANTS, that must be below 4K. Contained in 
FOPT macro (System Communications Region, Background 
Communication Region, etc.) 



H 



CV^CV,, GENERAL ENTRY, TASK SELECTION; these routines 
roust be below UK. Contained in FOPT macro. 

CHANNEL SCHEDULER, SVC ROUTINES AND AP ROUTINES; need not 
be below a certain boundary. 



Sorre CONSTANTS that must be below 16K. 



SAVE AREAS, OPTION TABLES, FIB TAELES, I/O TAELES, SYSTEM 
TASK BLOCKS, FOREGROUND COMMUNICATION REGIONS, etc., 
having Y-type address pointers in low storage. Must be 
below 32K. 



I/O INTERRUPT HANDLER, DISK ERP 



EXTERNAL INTERRUPT HANDLER 



TABLES, SAVE AREAS, TRANSIENT AREAS, having A-type 
address pointers in low storage (System Task Save Area, 
Boundary Box, PTA f LTA, etc.) 



FETCH ROUTINE 



CCW TRANSLATION ROUTINES 



PAGE MANAGEMENT ROUTINES 
VSAM ROUTINES 



MACHINE CHECK HANDLER, CHANNEL CHECK HANDLER, RAS MONITOR, 
RTA 

| PAGE MANAGEMENT TABLES, CCW TRANSLATION COPY ELCCKS 

L_„ . 



RO 
Rll 
R12 
R13 



R9,Rlot 



R14 



* Up to this point address- 
ability should be possible 
with Y-type address 
constants 



R6 | 




R9 ' 




R14, R15,| 


L R13 


R14 \ 




R15 a 



Figure 1.2. Supervisor Storage Allocation 



Introduction 17 



I 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



SUPERVISOR GENERATION AND ORGANIZATION 



SUPERVISOR GENERATION 



SUPERVISOR ORGANIZATION 



The supervisor is assembled with a series 
of macros that describe the installation's 
functional requirements and its configura- 
tion. At system generation time, a source 
deck containing the supervisor generation 
macros is assembled into an object deck. 



The list of supervisor macros and 
optional operands in Figure 2.2 gives the 



reader: 



• Supervisor generation macro names. 



The physical organization of the supervisor 
depends on the sequence of the supervisor 
generation macros. The sequence is 
predetermined and cannct be changed by the 
user. The logical organization depends on 
the parameter options selected at 
generation time. Figure 1.2 is a map of 
the assembled supervisor in real storage, 
and illustrates the supervisor physical 
organization. 

The logical organization is not 
described in this manual because of the 
variety of options available. You must 
determine the logical organization for 
individual supervisor generations. By 
using the program level flowcharts to point 
to the detailed flowcharts, you may select 
the correct group of flowcharts for the 
desired generation. 



• Required macro sequence (as listed in 
Figure 2.2) . 



LOW REAL STORAGE 



• Macro parameters. (Where there is an 
assumed value, that value is 
underlined. ) 



The allocation of the first 512 bytes of 
real storage is standard for any IBM 
System/370 CPU: 



• A brief description of what the 
generated macro does. 



Byte 
(Hex) 

0-13 



Function 

(Reset to zeros after IPL) 



A brief description of what the 
individual parameter options do. 



The code generated by the assembler for any 
selected supervisor generation is a 
function of the generation macros described 
in Figure 2.2 and of a group of inner 
macros called by the generation macros. 
The specific instructions assembled depend 
on the global settings. 



0-3: Hard Wait Message codes (MCH, CCH, 
IPL). See Figure 2.1. 

0-4: Device error message codes in case 
of I/O error, and SYSLOG disabled. 
See Figure 2.1. 

10-13 In a system with VTAM, the address 
Of the VTAM ACTVT. 

14-17 Address of Communications Region for 
Active Partition 



The most important global values used in 
supervisor generation are the B-globals. 
Therefore, this subsection emphasizes the 
generation macros that establish B-global 
values. However, some A-globals that are 
tested in the same manner as B-globals are 
also described in this subsection. 
C-globals are not described. Two figures 
in this subsection show macro relation- 
ships. Figure 2.3 shows the code 
generated, if any, and the globals set, if 
any. Figure 2.4 indicates the on/off 
conditions of the globals. 



18-1F External Old PSW 



20-27 SVC Old PSW 



28-2F Program Check Old PSW 



30-37 Machine Check Old PSW 



38-3F I/O Old PSW 



40-47 CSW 



48-4B CAW 



Supervisor Generation and Organization 19 



Byte 

Hex_ £HH2ii2H 

4C-4F Interval Timer Savearea 

50-53 Hardware Timer 

54-57 Save area for Interval Timer 

58-5F External New PSW 

60-67 SVC New PSW 

68-6F Program Check New PSW 

70-77 Machine Check New PSW 

78-7F I/O New PSW 

80-83 Address of SCP Communications Region 

84-85 External Interrupt Information 

86-87 External Interrupt Code 

88-89 SVC Interrupt Information 

Byte 89, bits 5 and 6: Instruction 
Length Code 

8A-8B SVC interrupt Code 

8C-8D Program Check Interrupt Information 

8E-8F Program Check Interrupt Code 

90-93 Address that Caused Page Fault 

94-B7 Reserved 

B8-B9 Interrupt Information 

BA-BB I/O Address on interrupt 

BC-E7 Reserved 

E8-EF Machine Check Interrupt Code (MCIC) 



Model^lndependent Log-Out Area : 



F0-F7 



Reserved 



F8-FB Failing-Storage Address 

FC-FF Region Code 

100-15F Fixed Log-Out Area 

160-17F Floating-Point Register Save Area 

180-1BF General Register Save Area 

1C0-1FF Control Register Save Area 

Eeyond byte 511, storage allocation depends 
on the CPU model. 

Model-Dependent Log-Out Area : 

200-5DF for Systeir/370 Models 155-11/158 

200-49F for System/370 Model 145 

200-317 for System/370 Model 135 

The remainder of this chapter contains only 
figures. Figures 2.2 - 2.4 provide 
information about supervisor generation 
iracros, parameters and glcbals. Figure 2.5 
and following figures concern communica- 
tions regions, information tables, option 
tables, etc. It should be noted that 
figures for tables etc., that are closely 
related to routines described in the 
following chapters, are to be found in 
those chapters. 



20 DOS/VS Supervisor 



r T T " — T T~ 

Byte | Byte 1 | Byte 2 |Byte 3 | 

_ 1 J. -JL JL- 



Explanation 



|X'E2' 

I 

,X'E2' 

1 
|X'E2' 

I 
I 

|X'E2' 

|X , E2' 

jX'E2' 



MCH/CCH/IPL Hard Wait Codes 3 

_ T . . 



X'Cl* 
X'C2' 
X'C3' 

x'c**' 

X'C5' 

X 9 C6 J 



X'C7' |X'E2' 



X'C8' 
X s C 9 # 
X'Dl' 
X'07' 



jX<E2' 

I 
|X'E2« 

jX'E2 f 

I 
|X'E6' 



A,I,S 
Not used 
A,I,S 

A,I,S 
A,I,S 
A,I,S 

A,I,S 

A,I,S 
A,I,S 
A,I,S 
Channel 



Not used 
Not used 
Not used 

Not used 
Not used 
Not used 

Not used 

Not used 

Not used 

Not used 

Unit or 
X 1 00' 



Irrecoverable machine check. 

Irrecoverable channel failure during RMS fetch. 

Channel failure on SYSLOG when RMS message 
scheduled. 

No ECSW stored. 

Channel fail lure? ERFIBs exhausted. 

Channel failure; two channels damaged or a damaged 
channel situation occurred while RMS was executing 
an I/O operation. 

Channel failure; system reset was presented by a 
channel. 

Channel failure; system codes in ECSW are invalid. 

Channel failure; channel address invalid. 

Irrecoverable channel failure en SYSVIS. 

I PL I/O errcr or Equipment Malfunction, cenditien 
code 2, during STIDC. Channel and unit indicate 
whether SYSRES cr ccmmunicaticn device. When byte 
3 = X'00', byte 2 indicates the channel for which 
STIDC was issued. Re-IPL system. 



Other Hard Wait Codes (also contained in Register 11) 



I- 



X 1 00000F" 
X'OOOOOF" 
X'OOOOOF" 

X'OOOOOF' 

X'OOOOOF' 

X'OOOOOF' 
X'OOOOOF' 
X'OOOOOF' 
X' 00000F' 

X'OOOOOF' 



X'FF' 
X'FE' 
X'FD' 

X'FC 

X'FE' 

X'FA' 
X'F9' 
X«F8' 
X'F7' 

X'F6' 



Program Check in Supervisor or SDAID 3 . 

I/O error during fetch from System CIL. 

Channel check (only Model 115/125, with MCH=NO and 
RMS=NO) . 

Machine Check (only Model 115/125, with MCH=NO and 
RMS=NO) . 

Page Fault in supervisor routine with identifier 
RID=X*00' (see Figure 4.02). 

Translation Specification Exception. 

Error en Paging I/C. 

CRT phase net fcund. 

Nc copy blocks available fcr ETAM appendage I/O 
request. 

$MAINDIR canceled during system CIL update. If 
this occurs, the system CIL is enly partially 
updated and must be corrected before use. This 
hard wait cenditien can also occur if the FETCH 
QUEUE BIT (FCHQ) is set in the linkage control byte 
in the partition communication region owned by the 
terminating partition. 



Figure 2.1. Error Bytes in Low Real Storage (Part 2 of 2) 



Supervisor Generation and Organization 21 



r t t t 

Byte | Byte 1 |Byte 2 |Eyte 3 
x x x 



Explanation 



Device Error Recovery Wait Codes 



T T T 

X'08' IX'CI' or | Channel |Unit 
to | | | 
X'60' |X'C4' | | 
j. x x x 



| Error recovery messages. 
|DOS/VS Messages. 



Refer to OP messages in 



SDAID Hard Wait Code 



h 



T T T 

X'61' JX'EG 1 |Channel |Unit 
I I I 

X X X 



I Another device is running burst ircde en same 
| channel as SDAID output device. Re-IPL system. 

.x 



SDAID Soft Wait Code 



T T T T 

X'62' |X"C5* | Not usedjNot used|SDAID output device became unready. Make printer 
j | | | ready and press the EXTERNAL INTERRUPT Key. 



X'OO' 



|X'00' IX'OO' 



|X'00' | SDAID stop on event. To continue, press the 
| (EXTERNAL INTERRUPT Key. 
-X X 



Notes: 



A (X'Cl') 
I (X'C9') 
S (X , E2 t ) 



SYSREC recording unsuccessful, 
SYSREC recording incomplete. 
SYSREC recording successful. 



2 S (X , E2") = Run SEREP. 

3 SDAID waits are identified by X'EEEE' in the address part of the wait PSW. 

Figure 2.1. Error Bytes in Low Real Storage (Part 2 of 2) 



i 



22 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30„ 1974,, by TNL SN33-8790 




SUPVR 



Describes System Environment 



NFARTS=j3 
'n 



TP= 



NC] 

VTAM | 

BTAM[,VTAM] 

QTAM [, VTAM] ' 

\QTAMn[,VTAM] , 



JYES 
ERRLCG= /FEE 



NC 

MICR=<< 1419 
(1419E 



AP= 



NC 
YES 



EU=] YES 
(RELCC 



NC 
FOWER/VS= )YES 



System residence (SYSRES) must be en a disk 
device. 



Specifies the number cf partitions tc be 
supported. The maximum value for n is 5. The 
default value is 1 if the AP parameter is omitted, 
cr if AP=NC. The default value is 3 if AP=YES . 
If PCWER=YES is specified,, NPARTS=2, 3 f 4, or 5 
must be specified unless AP=YES is specified. A 
communications region is generated fcr each 
partition supported. 

Specifies the Teleprocessing Access Method (Basic 
cr Queued). QTAM includes BTAM support. If 
AP=YES, n specifies the maximum number cf active 
QTAM message processing programs in the system. 
From 2 tc 12 may be specified. The default value 
for n is 2. If AP=NO, n is always 2. If QTAM is 
specified , then NPARTS=2, 3,, 4, cr 5 must be 
specified unless AF=YES is specified. If ETAM 
runs virtual, PFIX=YES is required. 

The Recovery Management Support Recorder (RMSR) tc 
record device errors on the System Recorder file 
(IJSYSRC) is always supported. If REE is 
specified, the Reliability Data Extractcr is also 
supported. RDE gathers hardware reliability data 
to be used by IBM personnel in evaluating machine 
performance. For Model 115 or 125, specify only 
if RMS=YES and/cr CHAN=YES. 

Indicates support for magnetic ink cr optical 
character reader/scrters. The specification 1419 
indicates support fcr 1419s with Single Address 
Adapter, 1255s, 1259s, or 1270s. 1419E 
specification gives support for 1419s with Dual 
Address Adapter, cr 1275s. If support fcr 
burst-mode devices on multiplexer channels is 
generated (FIOCS macro parameter EMPX=YES) , MICR 
devices must not be attached to the same channel 
as burst-mode devices. 

Indicates Asynchronous Processing support for 
dependent programs to run concurrently within a 
partition (multitasking). If YES is specified, 
multiprogramming and WAITM macrc suppcrt are 
generated whether specified or net. An invalid 
specification cf AF causes AF=YES to be assumed. 
If AP=YES is specified and NPARTS is omitted or 
specifies 1, NPARTS=3 is forced. AP=YES must be 
specified if VTAM is specified in the TP 
parameter. 

EU=YES cr RELOC generates suppcrt fcr mixed-parity 
tape processing in all partitions for the 
emulators, the tape preprocessor and tape 
postprocessor programs. 

Specifies support for POWER/VS. 
If YES is specified: 

• NPARTS=3 is fcrced if NPARTS is ciritted or 
specif iesl. 



Figure 2.2. Supervisor Macrcs (Part 1 of 11) 



Supervisor Generation and Organization 23 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



r t t 

Macro Name and | Parameter=Option j Option Description 
Purpose | | 
x ±„ j 

• ECPREAL=YES is forced, 

• PHC=YES and consequently PFIX=YES are forced. 

NC / Indicates whether the supervisor is tc support the 
ASCII= JYES I American National Standard Code for Information 
Interchange (ASCII). YES adds 512 bytes to the 
supervisor size. 



SUPVR 
(Continued) 



NC 
PHO= ]YES 



PAGEIN= 



Specifies if the supervisor is tc support page 
fault handling overlap. POWER=YES fcrces PHO=YES 
provides support fcr the valid use of the SETPFA 
macro by programs that execute in virtual mode and 
perform their own multitasking functions. PHO=YES 
forces PFIX=YES. 

Specifies that paging activity is tc be controlled 
by means of the macros PAGEIN, RELPAG, and 
FCEPGCUT. (For mere details about these macros 
see DCS/VS Supervisor and I/C Macros). The value 
n indicates the maximum number of page-in requests 
that can be queued for execution. Each PAGEIN 
macro issued in a program represents a page-in 
request. Tc obtain the support fcr the three 
iracrcs, the value n must he 1 cr higher. 

The following parameters are for Model 115 or 125 only; the support 
they generate is always provided fcr ether models by the CCNFG macro 
specification. 



NC 
CHAN= JYES 



]YES 
MCH=) NC 



Generates RMSR support for all channel-attached 
devices. Required if tapes, TP devices, or 
channel-attached devices are tc be used. If such 
devices are present in the system, IPL will 
succeed enly if the RMSR support is generated. 

Specifies whether the MCAR and CCH functions are 
to be supported. 



CONFG 

Describes 

Hardware 

Features 





115 




1125 




*0DEL=^ 


135 
145 






155- 


II 




il58 





STDJC 

Sets standard 
values for job 
control variables 



J NCf Specifies whether the entire RMS package (MCAR, 
RMS=/YESl CCH, and RMSR) is tc be generated. RMS=YES 
overrides CHAN=NC and MCH=NO. 

Defines the System/370 model number. Full 
Recovery Management Support (RMS) is generated 
except fcr Mcdel 115 cr 125. For these models, 
the generation of RMS is controlled by the CHAN 
and RMS parameters of the SUPVR iracrc. Cmissicn 
of this parameter, or an invalid specification, 
causes generation tc be terminated. 

Ncj Specifies whether the floating-pcint feature is tc 
FP=|yes( be supported. 

JYESJ Cutput of object modules of language translators 
DECK=| Ncj en SYSPCH. 

JyesI Source modules listings from language translators 
LIST=) NCV en SYSLST. 



XREF= 



JYESf Language translators output symbolic cross- 
NC\ reference lists on SYSLST. 



Figure 2.2. Supervisor Macrcs (Part 2 of 11) 



24 DOS/VS Supervisor 



r t t 

Macro Name and | Parameter=Option | Option Description 
Purpose | | 



STDJC 
(Continued) 



/yes) 

ERRS=( No/ 

/yes) 

LCG=l NC/ 

/yes) 

DUMP=l NO/ 



{561 

= lnnj 



LINES 



(MDY) 

date=1dmy/ 



CHARSET^ 



=\60C/ 



f NO) 
LISTX=\YES/ 

i SO} 

SYM= lYESj 



/NO) 
SPARM=(YES/ 



EDECK 



= \YESJ 



(YES) 
ALIGN=\ NO/ 



ACANCEL 



/ NO) 

=\yes/ 



FOPT 

Describes Functional 
Supervisory Options 



I NO) 
CC=\YES/ 



Compilers suirmarize all errors in source programs 
on SYSLST. 

Listing of all control statements on SYSLST. 



Dump of registers and partition storage on SYSLST. 



Number of lines per printed page on SYSLST 
(nn must be between 30 and 99). 

Format of date. 



Specifies the 48- or 6 0-character set for PL/I 
translator input on SYSIPT. 

Hexadecimal object module listings from compilers 
on SYSLST. 

To be specified if the PL/I compiler is to produce 
a symbol and offset table listing or if ANS COBOL 
is to produce a data division glcssary. 

Support of assembler variable symbol SSYSPARM. 



Output of edited macros on SYSPCH. 



Support cf assembler data-alignment function. 



Specifies standard ACANCEL/NOACANCEL option. 



Operator-initiated communications to problem 
programs. If OC=YES, the facility is available 
for all main tasks in multiple partitions. Must 
be YES if emulator is used. OLTEP=YES and 
RETAIN=YES force OC=YES. 



( NO) Problem program routine for program check. If 
PC=\YES/ PC=YES, the facility is available for all tasks in 
multiple partitions. 

i NO ) Problem program ability to set timer intervals and 
IT=(YES/ to specify a timor interrupt routine. IT=YES 

generates timer support for all tasks in multiple 
partitions if EG20 is on (see Figure 2.4). 

{ NO) Provides support for user abnormal termination 
AB=\YES/ exit routine. If AB=YES # the facility is 

available for all tasks in multiple partitions. 
VSAM=YES forces AE=YES. 



TEB 



(nc\ Error statistics on tape cartridge readers are to 
=\ nj be accumulated and logged. n is the number of 

tape cartridge readers (maximum 255) attached to 
the system. 



Figure 2.2. Supervisor Macros (Part 3 of 11) 



Supervisor Generation and Organization 25 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r T T 

Macro Name and | Parameter=Option | Option Description 
Purpose | | 

j. . ±. 

FOPT 
(Continued) 



1 

JlBi Specifies whether individual (IR) or combined (CR) 
TEBV=\cRj recording of error statistics is required for un- 



EVA 



/ NO I 
= \(r,w)J 



( NO 

SKSEP=<YES 

{ n 



labeled or nonstandard 2400 or 3400 series tapes. 

Specifies support for error by volume analysis for 
2400 and 3400 series tapes. r is the read error 
threshold. w is the write error threshold. 

Specifies if SEEKs are to be separated from the 
remainder of channel programs. SKSEP=YES gener- 
ates a Seek Address Block (SAB) table entry for 
each DASD specified by the DVCGEN macro. SKSEP=n 
specifies the number of entries to be generated; n 
must not be less than the number of DASD specified 
by the DVCGEN iracrc and not more than 254. 

( NO) Provides support fcr the Rotational Position 
RPS= \YESJ Sensing (RPS) capabilities of DASD devices 
supporting the feature. Since RPS provides 
channei overlap during a Seek operation as well as 
RPS operations, SKSEP need not be specified for 
devices with the RPS feature. If direct access 
storage devices without the RPS feature are 
configured in the system, SKSEP can be specified. 
RPS=YES forces GETVIS=YES and RELLDR=YES in the 
FOPT macro and BLKMPX=YES in the PIOCS macro. 

( NO) Specifies the number of bytes to be allocated to 
PD=\YES/ PDAID routines. PD=YES reserves 1400 bytes which 
In) is also the minimum value for n. 



-{i} 



CBF 



/ NO) 
IDRA=lYES/ 



Specifies whether output to a console printer 
assigned as SYSLOG is to be buffered, n specifies 
the number of buffers to be generated. Accepted 
values are from 1 to 50. An invalid specification 
causes 1 buffer to be generated. CBF=NO is forced 
if MODEL=115 or 125. 

Specifies whether the Independent Directory 
Read-in Area is tc be generated in a supervisor 
that supports multiprogramming. IDRA reduces 
contention for the PTA in fetch operations when 
the ERP system task is active. 

Specifies whether the Track-Hold feature is to be 
supported for DASD in a supervisor that supports 
multiprogramming, n indicates the maximum number 
of tracks to be held at any one time. Accepted 
values are from 1 to 225. A Track-Hold Table 
(THTAB) with n entries is generated in the 
supervisor. An invalid specification results in 
10 entries being generated. 

i NO) Specifies support for the data link to the Remote 
RETAIN=\YESJ Analysis Center. 



TRKHLD 



=m 



Figure 2.2. Supervisor Macros (Part 4 of 11) 



26 DOS/VS Supervisor 



Page cf SY33-8551-1, added June 30, 1974, by TNL SN33-8770 



r * t t 

Macro Name and | Parameter=Option | Option Description 
Purpose | | 



h 



DASDFP= 1 (n,n 



NO 
2311 
2314 
3330 
3340 
L I 2321JJ 



Specifies support for protection of DASD files. 
n,n indicates the range of channels to which the 
) [ devices may be attached. Specifying 2311, 2314, 
3330, or 3340 generates support for 2311s, 2314s, 
2319s, 3330s, and 3340s. Specifying 2321 
generates support for all DASD devices. 



/ M2l Specifies support for multiple waits (WAITM 
WAITM=\YESJ macro). If AP=YES is specified in the SUPVR 
iracro, WAITM=YES is forced. 



Figure 2.2. Supervisor Macros (Part 4 continued) 



Supervisor Generation and Organization 26.1 



r t t 

Macro Name and | Parameter=Option | Option Description 
Purpose | | 



h 



FCPT 
(Continued) 



ERRQ= 



Specifies the nurrter of entries tc be generated 
for the error queue. Withcut multiprogramming, n 
iray fce frcir 3 tc 25. With irultiprcgrairiring 
support ,, n may be froir 5 to 25. The letter value 
is the default value in each case. 



NC / Specifies whether the Virtual Storage Access 
VSAM=)YESl Method is tc be supported. VSAM=YES forces 
AB=YES, GETVIS=YES, and TCD=YES. If net 
specified, VSAM=NC is assuired. 

NCf Provides fcr the valid use cf GETVIS and FREEVIS 
GETVIS=/YES) iracrcs which reserve cr free parts cf a virtual 

partition during program execution. This facility 
is required when VSAM=YES. GETVIS=YES forces 
RELLER=YES. 



SYSFIL= 



NC 

YES 

(YES,nl,n2) 



JA= 



NC 

YES 

Cnl,n2,n3,n4,n5) 



JALIOCS= 



NC 
nl,n2 



Specify if system input and system o 
(SYSRDR, SYSIPT, SYSLST, SYSPCH) in 
may be assigned tc a disk device cr 
if extended support for the prccedur 
desired. Specification of YES gives 
all disk devices including diskette, 
the residual capacity (in records) f 
cf operator nctificaticn when SYSIST 
to a disk device. n2 indicates the 
SYSPCH. Acceptable values fcr nl an 
100 to 65535; if either is omitted f 
assumed. For diskette this nctifica 
supported. 



utput files 
any partition 
diskette, or 
e library is 

support for 
nl indicates 
cr beginning 

is assigned 
same for 
d n2 are from 
1000 is 
ticn is net 



YES 



Generates Job Accounting Interface support, 
specifies basic support (SIOs net counted) . 
(nl, n2,n3,,n4,n5) specifies the number cf devices 
per partition fcr which SIOs are to be counted. 
The maximum value cf n fcr any partition is 255; 
the default value is 0. nl always specifies the 
number fcr the background partition. The 
partitions to which nl through n5 refer depend on 
the number cf partitions in the system, as 
follows: 



2 partitions 

3 partitions 

4 partitions 

5 partitions 



n2 

Fl 
F2 

F3 
F4 



n3 



n4 



n5 



Fl 
F2 
F3 



Fl 
F2 



Fl 



Generates a user save area and an alternative 
label area fcr jet acccunting. nl specifies the 
number of bytes for the save area for user-written 
job-acccunting routines. The maximum acceptable 
value is 1024 and the default value is 16. n2 
specifies the number of bytes for the alternative 
label area. The maximum is 244 and the default 
value is 0. 



Figure 2.2, Supervisor Macrcs (Part 5 of 11) 



Supervisor Generation and Organization 27 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-879G 



r t t 

Macro Name and | Parameter=0pticr | Cpticn Description 
Purpose | | 

jl x 



FCFT 
(Continued) 



NO 

ZONE= ) (EAST) „ hh,mm 
[ (WEST | 



^ 

Indicates the difference between Greenwich Mean 
Time and local time to obtain the local time of 
day. NC is assumed if the parameter is emitted or 
is invalid, or if TOD=NO is specified. 



) N£f Generates support for the system Time-cf-Day 

TCD=)YESj clock. VSAM=YES fcrces TCD=YES. 

NCf Generates support for the private core image 

PCIL= JYESI library. 



RELLDR= 



NCr Generates support for relocating relocatable 
YES | phases. YES is forced by VSAM=YES, CLTEF=YES, and 
GETVIS=YES. 



PRTY=(pl[,p2t,p3[,p4[,p5]]]3) 



YES 
0LTEP=j NC 



FFIX= 



NCI 
DCC=)125El 



SLB=Jn 



FSLD= 



NC 
n 



ECPREAL= 




Specifies the dispatching priorities cf partitions 
in ascending order. The number cf operands must 
be equal to the number of partitions in the 
system. The default sequence is EG,F4 ,F3, F2 ,F1; 
that is, EG has the lowest priority and Fl has the 
highest priority. 

Generates support for the online testing function. 
The default value is YES,. 0LTEP=YES fcrces 
RELLDR=YES and OC=YES. RETAIN=YES fcrces 
CLTEP=YES. 



NCf Generates support for the valid use cf the PFIX 
YES\ macro to fix pages of virtual mode programs in 

real storage frames and subsequently tc free them 
by PFREE macros. PHO=YES forces PFIX=YES. 



Specifies whether support is required for Display 
Cperatcr Ccntrcl (DOC) . The default is NO if 
MODEL=135, 145, 155-11 or 158. Fcr MCDEI=115 or 
125, DCC=125D is forced. 

Specifies the number cf entries in the Second 
Level Directory. The minimum value fcr n is 5 . 
This value is assumed in case cf an incorrect 
specification. A performance decrease will result 
if the number specified is less than the number cf 
actually used directory tracks of the System Core 
Image Library. 

Specifies the number cf entries in the Private 
Second Level Directories* A PSLD is created for 
each partition. The minimum value that may be 
specified for n is 5. NO is assumed in case cf an 
incorrect specification. A performance decrease 
will result if the number specified is less than 
the number of actually used directory tracks of a 
Private Cere Image Library. PCIL=N0 fcrces 
PSLD=NG. 

Specifies support for REALAD and VIRTAD. 
POWER=YES forces ECPREAL=YES . 



Figure 2.2. Supervisor Macros (Part 6 of 11) 



28 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r t t 

Macro Name and | Parameter=Option | Option Description 
Purpose | | 



PIOCS 

Describes the 
System I/O 
Configuration 



i NO) Specifies whether burst-mode devices are to be , 
BMPX=\yesJ supported on a byte multiplexer channel. 

/ N^i Specifies whether support is to be generated for 
BLKMPX=\YESJ block multiplexer channels tc run in block 

multiplex mode. Must be NO for disk emulation. 
RPS=YES forces BLKMPX=YES. 



(NO | 

CHANSW=< TSWTCH > 

IRWTAU ) 



TAPE=< 9 
INC 



DISK= 



VSTAB 

Describes Real 

and 
Virtual Storage 
and the Channel 
Program Translation 
Copy Blocks 



MRSLCH 



2311 
2314 
3330 
3340 
(3330,3340)1 



RSIZE=nK 



VSIZE=nK 



Specifies whether channel switching is tc be 
supported for devices on selector or block 
multiplexer channels. RWTAU=2404 or 2804; 
TSWTCH=2816 (with a 2403 or 2803) or 3803. 

Specifies whether PIOCS is tc support tape. 
Support is generated for 7-track an d 9-track tape 
unless NO is specified. 

/ NO) Specifies whether a MICR-type device (magnetic ink 
=\yes/ or optical reader/sorter) is to be assigned to a 
selector channel. 

Specifies the type of disk devices tc be 
supported. If this parameter is emitted or 2311 
or 2314 is specified, support is generated for 
2311, 2314, and 2319 devices. Specifying 3330 or 
3340 alsc generates support for 2311 and 2314. 
For Model 125, 3330 is forced, if neither 3330 nor 
3340 is specified. For Model 115, 3340 is forcedT 



SVA 



BUFSIZE=n 



/(64K f OK)) 
= 1 (nK,mK)J 



Specifies the maximum size of real storage. n may 
be up to 8192 and must be a multiple of 2. If not 
specified, or specified incorrectly, 96 is 
assumed. 

Specifies the size of virtual storage including 
SVA. n must be a multiple of 2, larger than 128 
and not larger than 16 38 4 minus the value 
specified for n in RSIZE. If not specified, or 
incorrectly specified, the value assumed is 64 x 
NPARTS plus size of SVA. 

Specifies the number of copy blocks to be 
generated for the Channel Program Translation 
routine. The minimum value for n is 10, and the 
default value is 10 if NPARTS=1 and 30 if 
NPARTS=2, 3, 4, or 5. 

nK specifies the size of the SVA, mK specifies the 
size cf the system GETVIS area in the SVA. n must 
be a multiple of 2 and at least 64. m must be a 
multiple cf 2, less than n. In case of incorrect 
specification, the default values are taken. This 
parameter is only valid if the NPARTS parameter of 
the SUPVR macro specifies more than cne partition 
(NPARTS=>1) . 



Figure 2.2. Supervisor Macros (Part 7 of 11) 



Supervisor Generation and Organization 29 



r t t 

Macro Name and | Parameter=Option | Option Description 
Purpose | | 
x x ^ 



ALLOC 



Fl=nK [ ,F2=nK [ ,F3=nK [ , F4=nK] ] ] 



Partitions 

Virtual Storage 

for Multiprogramming 



Specifies virtual storage partitioning where n is 
at least 64 and is a multiple of 2, or may be 0. 
The total storage allocated to virtual foreground 
partitions plus 64K must not exceed the size of 
the virtual storage specified by the VSIZE 
parameter of the VSTAB macro minus the size of the 
SVA. For any foreground partition the default 
value is 0. If any value from 2 to 62 is 
specified, the default value is taken. 



ALLOCR 



BGR=nK [ , FlR=nK [ f F2R=nK ( , F3R=nK [ , F4R=nK ] ] ] ] 



Partitions 

Real Storage 

for Multiprogramming 



IOTAB 

Describes installation 
requirements for 
I/O tables 



IODEV 



BGPGR^ 



F1PGR 



Specifies real storage partitioning where n is 
a multiple of 2 or may be zero. The total storage 
allocated to real partitions must not exceed the 
size of real storage minus the size of the 
supervisor and the main page pool. 

i^OX Specifies the number of I/O devices attached to 
=\ nl the system. The maximum allowable specification 
is 255, and the minimum is 5. 

Specifies the number of programmer logical units 
(SYSnnn) for the EG partition. The minimum value 
for n is 10, while the maximum depends on the 
number of partitions (see note). A partition LUB 
table is generated with a two-byte entry for each 
system logical unit and additicnal entries for the 
number of units specified by n. 

Specifies the number of programmer logical units 
for the Fl partition. The minimum value for n is 
5, while the maximum depends on the number of 
partitions (see note). A partition LUB table is 
generated with entries for systeir logical units 
and for the number of programmer logical units 
specified by n. 



m 



U) 



(5) Specifies the number of programmer lcgical units 
F2PGR=\n*j for the F2 partition. 

( 5) Specifies the number of programmer lcgical units 



F3PGR : 



F4PGR : 



■U) 



for the F3 partition. 

Specifies the number of programmer logical units 
for the F4 partition. 

♦Note; The maximum values for the sum of all are 
as follows: 

Number of Partitions 



12 3 4 5 
241 227 213 199 185 
For an unsupported partition n=0 is assumed. 



maximum value 
for sum of n*s 



Figure 2.2. Supervisor Macros (Part 8 of 11) 



30 DOS/VS Supervisor 



Macro Name and j Parameter=Option j Option Description 
Purpose | | 

± _ j, — r! r 






IOTAB 
(Continued) 



CHANQ^ 



4;} 



B23 



u-e> 



D2314= |2 
'n 






D2321=5\riJ 

D24Q0-J4 
'n 
(C 

D3330=J2 

(0 
D334 



10= 2 



(0 

D3410= j2 

In 



D3420 
D3540 
D3886 



■{SI 



JIE 



.{1} 



Specifies the number of 8-byte entries to be 
generated for the channel queue. At least six 
entries are always generated, but if rrcre than 
three partitions are specified by the NPARTS 
parameter cf the SUPVR macro, then this minimum is 
increased by two for each additional partition and 
is further increased by the number of ccnscle 
buffers specified by the CBF parameter in the FOPT 
macrc. 

Specifies the number cf each type cf special 
device attached to the system. The number speci- 
fied for each device may be more than the actual 
number attached, but if the total number of 
special devices specified exceeds the number of 
devices specified in the IODEV parameter 
generation is terminated. 

Dxxxx can have two functions : 

1. Fcr each special device specified, a PUB 
table extension (PUB2) entry is generated cf 
appropriate length for that device. 

2. For devices on a block multiplexer channel 
running in blcck multiplex mcde additional 
CCWs are generated. 

Default Options: 




Specifies the number of Job Information Elccks 
(JIBs) fcr the system. Requirements are: 

1. One JIB for each temporary lcgical unit 
assignment, 

2. One JIB fcr each alternate lcgical unit 
assignment. 

3. One JIE for each open 2311 or 2314 extent with 
the EASD file protect feature. 

4. Twc JIBs fcr each cpen 2321, 3330, and 3340 
extent with the DASD file prefect feature. 



Figure 2.2. Supervisor Macrcs (Part 9 of 11) 



Supervisor Generation and Organization 31 



r t t 

Macro Name and | Parameter=Option | Option Description 
Purpose | | 

± j. 



IOTAB 
(Continued) 



SSLNS= n 



j 



ESCLNS= 



DVCGEN 

Specifies I/O devices. 
Each device type 
requires a separate 
DVCGEN macro. 



CHUN=X'cuu' 



Specifies the maximum number of Start/Step lines 
for the Mcdel 115 cr 125 with the Integrated 
Communications Adapter (ICA) . The iriniiruir 
specification is and the maximum is 16. The 
specified value is entered in the first byte of 
the Line Mode Table (LMT) and the table is 
generated with this number of entries for 
Start/Stop line mode settings. If the parameter 
is omitted when TF=BTAM or QTAM and W0DEL=115 cr 
125, then n defaults to 4. 

Specifies the maximum number of ESC lines for 
Model 115 cr 125 with Integrated Communications 
Adapter (ICA). The minimum specification is and 
the maximum is 6. The specified value is entered 
in the secend byte cf the Line Mcde Table (LMT) 
and the table is generated with this number of 
entries fcr ESC lire mcde settings. If the 
parameter is omitted, n defaults to 1. 



Specifies the hexadecimal number fcr the channel 
and unit for the device. 

When channel switching is supported fcr the device 
c should indicate the lowest channel of the two. 



DVCTYP=xxxxxx Specifies the device type (refer to "Appendix C"). 



CHANSW= 



NO 
YES 



X'ss' 
MODE^X'SSSS 1 

(x'ssssss* 



Specifies whether the device is attached to two 
selector cr blcck multiplexer channels. 

1. Fcr tapes, MCDE specifies the tape mcde as 
listed in Figure 10.2. Fcr 9-track units the 
default value is X'CO'. For 7-track units the 
default value is X'90'. 

2. For teleprocessing lines: When EVCTYP=2702, 
MODE designates the SADxxx command as follows: 

X'OO' = SADO (default value) 

X'01' = SAD1 

X"02' = SAD2 

X'OB" = SAD3 

When DVCTYP=2703, MODE specifies the line mode 
setting for a start/stop line or a ESC line. 
The setting is three bytes leng. 

3. When DVCTYP=2260 (local) or 3270 (local) and 
CHUN=X , cuu f refers to a 1053, 3284, or 3286 
printer attached to a 2848, cr either a 3284 
or 3286 attached to a 3272, MODE=X , 01' 
specifies a 1053. 

4. When DVCTYP=3705, MODE specifies the channel 
adapter as follows: 

X'01' = type 1 channel adapter 
X'02' = type 2 channel adapter 

Nc default is assumed. 



Figure 2.2. Supervisor Macros (Part 10 of 11) 



32 DOS/VS Supervisor 



r t t 

Macro Name and | Parameter=Option | Option Description 
Purpose J | 
± J. -( 



DVGEN 
Continued) 



ASSGN 

Sets standard 

assignments. 

A separate macro 

is required for each 

standard assignment. 

(Optional macro) 



SYSxxx,X'cuu' 



DPD 

Defines the residence 
of the page data set 
(SYSVIS) required for 
virtual storage support 
(Optional macro) 



UNIT=X , cuu' 



CYL=nnn 



V0LID=xxxxxx 



SEND 
Indicates end of 
supervisor generation 



[n] 



When DVCTYP=1419, 1419p, or 1419S, MODE 
designates the external interrupt bit 
associated with magnetic ink or optical 
character readers. The modes X'Ol* through 
X'20' correspond to the external interrupt 
code in low real storage byte 87 , bits 7 
through 2 respectively. The corresponding 
external lines to which the control units are 
attached are as follows: 



X f 01' = Line 7 
X'02' = Line 6 
X'OU* = Line 5 



X f 08' = Line 4 
X'lO' = Line 3 
X # 20 f = Line 2 



When DVCTYP=1018 # MODE specifies whether the 
error correcticn feature is present: 

X'01" = feature present 
X'OO* = feature not present 



" §g" 

Fl 

,F2 

F3 

FU. 



[.»] 



SYSxxx is a system or programmer logical unit. 
X'cuu* is the hexadecimal number of the channel 
and unit to which the logical unit is assigned. 
When channel switching is supported for the 
device, c should be the lower channel of the two. 
EG, Fl, F2, F3, or FU indicates the partition to 
which the assignment is being made. HI or H2 
indicates the desired hopper of a 2560 or 5425 for 
device-independent files associated with SYSIPT, 
SYSRDR, SYSIN, or SYSPCH , and is otherwise 
ignored. If both hoppers are used, they must be 
separately assigned to the same partition. 



Specifies the channel and unit number of the 
device that is to contain the page data set. 

Specifies the number of the cylinder where the 
page data set is to begin. 

Specifies the volume serial number of the disk 
pack for label checking. If this parameter is not 
specified in the DPD macro or in the DPD command, 
the volume serial number is not checked. 

Specifies the beginning real address of the 
problem program area. An area should be 
reserved for supervisor expansion and maintenance; 
otherwise, no area is reserved beyond the 
assembled last address of the supervisor. 



Figure 2.2. Supervisor Macros (Part 11 of 11) 



Supervisor Generation and Organization 33 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r T T . 

| Macro | Type | 



Code Generated 



Critical Globals Set 



h 

| SUPVR 


- + „_ + 

| generation (Defines low real storage and 


-+ 

|BG13 


BG50 


H 

BGCEAPP | 




j (provides the entry points to the 


|BG20 


BG51 


BGDATO j 




j (supervisor on interrupts. 


|BG21 


BG92 


BGPOW ( 






|BF24 


BG93 


AGll | 






|BG27 


BG94 


AG1QT | 






|BG35 


BG100 


MAX j 






|BG36 


BG1QT 


NPART | 






|BG39 


















~"T"""- — T "" ~" "" ~ "" —~ — 


"t ~ 




1 


| CONFG 


| generation | None . 
_j. j. _ __. 


|BG23 
|BG39 
_.!..,.__ 


AG11 
AG12 


AG56 | 
_ _ _ _ _ J 




T T "' 


t — 




1 


| STDJC 


| generation | None . 


|BG34 


BG45 


BG81 | 






|BG41 


BG46 


BG8 6 | 






|BG42 


BG47 


BG87 | 






JBG4 3 


BG48 


AG41 | 






(BG4 4 


BG49 




L 


.X •J.-*— 


„J. „ 




j 


f 


T —•-j™ — 


T "•" 




1 


JFOPT 


| generation! General entry and exit routines. 


|BG4 


BG73 


AG19 | 




j |A11 first level interrupt routines 


. (BG6 


BGCEAPP 


AG27 ( 




j | Constants and tables. 


(BG7 


BGDAT1 


AG28 | 






|BG8 


BGDAT2 


AG2A | 






|BG12 


BGETVIS 


AG31 | 






(BG14 


BGMTI 


AG32 | 






|BG15 


BGRELDR 


AG56 | 






|BG16 


BGTOD 


AGJA(l) | 
















|BG32 


FP2321 


AGJAC3) | 






1BG33 


AG 2 


AGJAU) | 






|BG38 


AG 7 


AGJA(5) | 






|BG40 


AGIO 


AGJAL(l) | 






|BG6 


AG14 


AGJALC2) | 
















|BG71 


AG17 


ITKEY | 


L _ 


_i .. _±..„ _ — 


(BG72 

L 


AG18 


NSLD(l) ( 
NSLDC2) | 


r ~ 


T —j.-—. r - 


— j. 






j PIOCS 


| generation! Address validation routine. Some 


(BGBLKMP 


BG11 


MG01 | 




j (supervisor call routines. 


|BG3 


BG12 


MG02 | 


L.^. _ 


| (Attention routine. 
_i_ _• .i__— — — — • . _ — — 


|BG9 

«j.^ 


BG1ST 


AG5U | 


r • 


t . -*t~— 


T~ 






| SGSVC 

L 


(inner | Various superisor calls. 

i_ J.^ 


|None. 
.j. 






r 


T T~ 


— j. ,.— — 






|IJLQTSVC| inner | Generates SVC 31 for QTAM. 


|None. 






L 


_j. ^_ ± _ „. ^ 


" — — ~ 






r ~ 


T ~ T 








j SGTHAP 

L _ j 


| inner |Track held, track free, set 

j (abnormal exit routine address, and 

j (asynchronous processing routines. 

1 L — — p - 


|None. 

L _ _„,. 






r 


-t — r "• ^ 


T — *-— 






j VSTAB 


(generation! Defines size of real and virtual 


JBG99 


AGDAT1 


AGDAT5(1) | 


i _ _ _ 


j | address area. 
_A„„— _*.j _,. _ _ 


|BGDATU 
| NSVAPGS 
_i. »«._*. 


AGDAT2 
AGDAT3 


AGDAT6C1) | 


r 


~T ~ ""-T "" 


T 






| ALLOC 


| generation | None . 


|BG99 


AGDAT6C1) 


AGDAT6U) | 






|BGDAT3 


AGDAT6(2) 
AGDAT6C3) 


AGDAT6(5) | 


L— — — .-.— 


i _-.___ j. —„ — — — — — — — . 


L__ ___». 






r • 


•T T 


— f~ ,— — »- 






j ALLOCR 


| generation ( None . 


| BGDAT4 


AGDAT4C2) 


AGDAT4C4) | 






(AGDAT4C1) 


AGDAT4C3) 


AGDATM5) | 



Figure 2.3* Macro Function (Part 1 of 3) 



34 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



| Macro | Type 
|. x 



Code Generated 



Critical Glotals Set 



| IOTAB 


| generation! Supervisor table expansions. 


|BG99 


AG55 


AGDAT6U) | 






(channel buckets, PIBs, PUE, 


|AG1 


AGDAT5(1) 


AGPGR(l) | 






| SVC table, channel queue table. 


| BSD AT U 


AGDAT5C2) 


AGDAT6(5) | 






|JIB, TEB, PUBOWNER, POWER, LUB, 


|AG9 


AGDAT5(3) 


AGPGR(2) | 






|NICL, FICL, ASCII, IT, OC, AB, 


(AG11 


AGDAT5C4) 


AGPGR(3) | 






|and other tables. 


(AG13 


AGDAT5C5) 


AGPGR(4) | 








|AG53 


AGDAT6(1) 


AGPGR(5) | 








|AG54 


AGDAT6 (3) 






„J. 


_x_ — - -» - 


_x - 




_ J 




T 


— —j.— — — ^ — 


T 




1 


| CRTGEN 


| inner 
_X— _ 


(Generates CRT constants. 
X- - - - - - 


(None, 
.x - 




^_j 




t ~ 


— t — — 


T 




-^-^ 


|IOINTER 


| inner 


|I/0 interrupt routines. Error 
| recovery exits. 


|BG1ST 








i - -, 


X-p -- - ~ - - - — 


_x 




._ . _J 




"*t •* — 


T^ 


T 




1 


| SGDSK 


| inner 
_x . 


|Disk error recovery routine. 
X- - - - - - 


|None. 
„x 








T 


T - — - - — - ~ — 


T 






|SMICR 


| inner 


| External interrupts for MICR-type 
| devices. Tiirer Interrupt Handler. 
| Program checks in stacker select 
(routine. Error recovery for test 
|I/0 and start I/O. 


| None. 






| CRTSAV 


| inner 


| Generates CRT save areas. 


|None. 






| DVCGEN 


j generat: 


Lonj | Overlays for PUB table entries. 


|BG28 
(BG56 
|BG126 


AGl 
AG 2 
AG 3 


AG8 | 


(ASSGN 


j generation |Over lays for LUB table entries. 


|BG28 


BG58 






_X _ _ _ 




|BG57 


BG59 




|DPD 

L «. _ *. 


T — T ^ 

i _L 








r 

| SEND 


t — 

| generat 


ion| None. 

X- _ - _ 


(None. 






| IHBRDWRAJ inner 


|Used for VTAM 


|None. 






I - - 


_X 


L - - _ 








r 


T — 


r — — 








|SGEND 


| inner 


(Generates patch area, user save 
jarea, label area, segirent table, 
jpage table, page frame table, page 
| frame table extension, copy buffer 












jarea, and all equates. Defines end| 










|of supervisor nucleus, beginning o 


f | 










| IDRA, PD area, transient areas, an 


<3| 










| start of problem program area. 








L 


_X _ 


X - - - - - - - 


L 






I 


T 


T 


— j. 






| SGDFCH 


| inner 


| Fetch subroutine. 


(None. 






L 


x 


„„X - - -.- 


X - — - 






r 


T 


t — 


T ^ 






| SGCCWT 


| inner 


|CCW Translation routines. 


|None. 






L - - - 


x 


_X- - - - - 


L 






i 


T 


T 


— j. — 






| SGPMGR 


| inner 


| Page Management routines. 


| None. 






L_ 


_x - 


x - - 


x 






r ■ 


T 


1 — — — — — 


T — 






| SGAM 


| inner 


(Generates VSAM/GETVIS support. 


|None. 






L __ 


_X 


_X— .- - - 


L _ 






I 


T 


— —« j— — — — - 


— Y - — 






| SGPOPT 


| inner 


| Generates PAGEIN support. 


(None. 






L _ 


X - 


_x - - - - - - — — — 


_X— 






r 


T 


T 


t — 






| MCRAS 


| inner 


(Generates RAS monitor and RTA. 
| Resident Machine Check Handler, 
| Resident Channel Check Handler, 
| and DASD Channel Check Handler. 


| None. 







Figure 2.3. Macro Function (Part 2 of 3) 



Supervisor Generation and Organization 35 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r t 

I Macro | Type 
j. + 

| JSGSCVRT (inner 
(. + 

(MAPPUB2 ] inner 



Code Generated 



Critical Glotals Set 



(Sector convert routine for RPS |None. 
4 + 

| Maps layout of PUE2 entry, |None. 



I'- 
ll JLQDSCT | inner 



| Generates DSECT for QTAM. 



I None. 



|BDYBOX | inner 
|. 1 

I JISTAVT j inner 



I None. 



| Generates DSECT of boundary box. 
. + 4 

| Generates VTAM Adress Vector Table. | None. 

„JL P X 



Figure 2.3. Macro Functions (Part 3 of 3) 



r t 

| Global | On Setting 

h + 

|BG1QT |TP=QTAM 

|BG1ST 
|BG3 

|BG4 



| TP=VTAM 

| CHANSW=TSWTCH 
or RWTAU 

|TEB=n 



Purpose | 

+ + < 

|Deterirines QTAM support. 
| Determines VTAM support. 
| Determines whether channel switching is supported (2816) . 

(Determines if 2495 Tape Cartridge Reader error statistics 
| are to be accumulated and logged. 

| Determines if the asynchronous user interrupt key routine 
| is supported. 

[Determines whether the interval timer cpticn is supported. 

(Determines if the user program check routine is supported. 

(Determines whether channel switching is supported (2404, 
|2804). 

| Determines whether burst mode devices will be supported on 
| the multiplexer channel. 

(Determines tape support reguired. 

(Determines if asynchronous processing is supported. If YES, 
[force on BG14, BG20. 

(Determines if the wait multiple function is supported. 
|Force en if AP is specified. 

(Determines if user abnormal termination routine is 
| supported. 



BG6 


OC=YES 




0LTEP=YES 


BG7 


IT=YES 


BG8 


PC = YES 


BG9 


CHANSW=RWTAU 


BG11 


BMPX=YES 


BG12 




BG13 


AP=YES 


BG14 


WAITM=YES 




AP=YES 


BG15 


AB=YES 


BG16 


TRKHLD=n 


BG18 


| CBF=n 


BG20 


|MPS=YES or BJF 




| AP=YES 




|NPARTS=2,3, 4, or 



(Determines if the track hold function is supported. 
|must be on (if it is not, TRKHLD defaults to NO). 



BG20 



(Determines if console buffering option is supported. 
(Determines whether multiprogramming support is required. 

L i : j. J 



Figure 2.4. Global Settings (Part 1 of 6) 



36 DOS/VS Supervisor 



Page cf SY33-8551-1, added June 30, 1974, by TNL SN33-8770 



j Global j On Setting 
|. + 



Purpose 



|BG21 | 


TP=BTAM, VTAM, or | 




QTAM | 


|BG23 


FP=YES | 


|BG24 


MPS=BJF or YES ( 




NPARTS=2,3,4, or 5 | 




AP=YES | 


|BG26 


PCIL=YES \ 


|BG27 


ERRLOG=RDE | 


|BG28 




|3G31 


RPS=YES | 


|BG32 


DASDFP=n,n | 


|BG33 


SYSFIL=YES | 


|BG34 


DATE=MDY | 



Deterirines whether teleprocessing support is required. 



Determines if the floating point feature is used. 

Determines if batched jobs will be run in foreground 
partitions . 



^Determines if PCIL is supported. 

Determines if RDE Support is required. 

Sequence check for DVCGEN and ASSGN macrcs. 

Determines if Rotational Position Sensing is supported. 

Determines whether the DASD file protect feature is 
supported. 

Determines if system logical I/O units are supported for a 
disk device or diskette. 

Determines the type of date configuration to be supported. 



Figure 2.4. Global Settings (Part 1 continued) 



Supervisor Generation and Organization 36.1 



r t 

| Global | On Setting 



Purpose 



BG35 


MICR=1419, 




1419D 


BG36 


MICR=1419D 


BG38 


OLTEP=YES 


BG39 


M0DEL=135, 145, 




155-11, 158 




or 

M0DEL=115, 125 and 




MCH=YES or RMS=YES 


BG40 


RETAIN=YES 


BG41 


DECK=YES 


BG42 


LIST=YES 


BG43 


LISTX=YES 


BG44 


SYM=YES 


BG45 


XREF=YES 


BG46 


ERRS=YES 


BG47 


CHARSET=48C 


BG48 


DUMP=YES 


BG49 


L0G=YES 


BG50 


EU=YES 


BG51 


EU=REL0C 


BG52 


IDRA=YES 


BG56 


DVCTYP=2560 




or 5 42 5 



|BG57 |DVCTYP=2560 
or 5425 and 
|SYSnnn=SYSRDR,H2 

|BG58 |DVCTYP=2560 
| or 5425 and 
|SYSnnn=SYSIPT,H2 

|BG59 |DVCTYP=2560 or 5425 | 
and 
|SYSnnn=SYSPCH,H2 

IBG60 |TEBV=IR 



j Determines if any MICR type device is supported. 



| Determines if a magnetic ink or optical character reader 
| with dual address adapter is supported. 

| Indicates whether OLTEP is supported; forces BG6 and 
JBGRELDR. 

| Indicates support for MCAR and CCH functions of RMS. 



(Indicates RETAIN is supported. Forces on BG38. 

| Job Control options. 

| Job Control options. 

(Job Control options. 

| Job Control options. 

| Job Control options. 

| Job Control options. 

| Job Control options. 

(Job Control options. 

(Job Control options. 

(Determines if emulator interface is generated. 

(This global is set by the EU=REL0C parameter, which is still 
| accepted, but ignored. Forces on BG50. 

| Indicates whether IDRA is supported. 

| Indicates that a MFCM cr MFCU is attached tc the system. 

|SYSRDR is assigned to hopper 2 of a MFCM or MFCU. 

|SYSIPT is assigned to hopper 2 of a MFCM or MFCU. 

SYSPCH is assigned to hopper 2 of a MFCM or MFCU. 



|BG62 |EVA=(rth,wth) 



| Determines if individual recording for the Tape Error 
(Statistics by Volume is supported. If BG60 is not on, the 
| combined recording (CR) is in effect. 

[Determines if Error Volume Analysis is supported. 



Figure 2.4. Global Settings (Part 2 of 6) 



Supervisor Generation and Organization 37 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



j Global (On Setting 



Purpose 



BG71 

BG72 
BG73 
BG81 
BG86 
BG87 
BG92 

BG93 

BG94 
BG99 

BG100 
BG126 

BG127 

BGACNCL 

BGBLKMP 

BGCEAPP 

BGDATO 
BGDAT1 

BGDAT2 
BGDAT3 

BGDAT4 
BGETVIS 

BGMTI 



JA=YES or 
JA=(n 1 l n 2 l n 3 ,n*, n 5 ) 

JA=(n ±# n 2f n 3 ,n4 f n5) 

JALIOCS=(n lf n 2 ) 

SPARM=YES 

ALIGN=YES 

EDECK=YES 

CHAN=YES 

RMS=YES 

MCH=YES 

ALLOC 
Fl=nK, F2=nK, 
F3=nK, FU=nK 

ASCII=YES 

CHANSW=YES 



ACANCEL=YES 

BLKMPX=YES 
RPS=YES 

POWER=YES 
VSAM=YES 

PHO=YES 

PFIX=YES or 
VSAM=YES 

ECPREAL=YES 

Total ALLOC 
specification plus 
64K exceeds VSIZE 
specification 

ALLOCR 

GETVIS=YES or 
VSAM=YES 

IT=YES and 
AP=YES f or 
NPARTS=2, 3, 4, 
or 5 



Indicates whether JAI is supported. 

Indicates whether count of SIOs is made. 

Indicates whether JAI label processing is supported. 

Deterirines if SYSPARM is supported. 

Job Control option. 

Job Control option. 

Indicates RMSR support for tapes, TP devices, and 
channel-attached devices fcr Model 115 cr 125. 

Indicates full RMS support (MCAR/CCH and RMSR) for Model 
115 or 125. 

Indicates MCAR/CCH support for Model 115 or 125. 

Special sequence check for ALLOC macro within supervisor. 

Determines if ASCII translation tables are generated. 

Channel switching. Device can be attached to more than one 
selector channel. 

Sequence check for DVCGEN and ASSGN macros. 

Job Ccntrcl option. 

Support fcr block multiplexer channels to run in block 
multiplex mode. 

Indicates that the channel end appendage routine is to be 
included. 

Page-fault appendage support. 

PFIX/PFREE support. 

Support fcr REALAC/VIRTAD . 

The sum of the virtual storage allocated to foreground 
partitions plus 64K (background partition) exceeds the 
virtual storage specified by VSIZE. ALLOC specification 
is invalid. 

Sequence check for ALLOCR. 

Determines if the GETVIS/FREEVIS functions are 
to be supported. 

Indicates timer support for all tasks in multiple 
partitions. 



Figure 2. a. Global Settings (Part 3 of 6) 



38 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974, by TNI SN33-8790 



r t 

| Global | On Setting 



BGPOW 
BGRELDR 



EGTOD 


|TOD=YES or 




|VSAM=YES 


BGVSAM 


|VSAM=YES 


FP2321 


|DASDFP=2321 


MG01 


|DISK=3330 


MG02 


|DISK=3340 


AGlQT 


|TP=QTAM n 


AGl 


| IOCEV=n 


AG 2 


|Can be set by 




| TEE, TEBV, EVA 



AG2A 

AG 3 
AG7 
AG 8 

AG 9 

AGIO 

AG11 



AG12 
AG13 
AG14 

AG15 
AG16 



POWER=YES 

RELLDR=YES or 
VSAW=YES or 
OLTEP=YES or 
GETVIS=YES 



TEE=n 

CHUN=X f cuu* 
SKSEP=YES or n 
SKSEP=YES or n 

CHANQ=n 

PD=YES or n 

MCDEL=135, 145, 

155-11, 158 

or 

MCDEL=115 or 125 

and RMS=YES or 

CHAN=YES 

MODEL=nnn 

PCIL=YES 

ERRQ=n 



DASDFP= 
n,n, 



2311 
2314 
;3330 
33401 
2321, 



Purpose 
Generates the PCWER/VS hooks in the supervisor. 
Determines if Relocating Loader Support is required. 

Indicates that Time-cf-Day is supported. 

Determines if VSAW support is required. Forces on EGETVIS, 
BGCEAPP, and EGREICR. 

Indicates whether the DASD file protect feature is 
supported for 2321. 

Generates code to support 3330 disk files. 

Generates code to support 3340 disk files. 

Number of problem programs in QTAM system at cne time. 

Number of entries for PUB Table. 

Number of volume error blocks. 

Indicates number cf Tape Error Blocks generated in FOPT 
macro. 

Specifies number cf channel (for example, X'cuu') 

Determines that the seek separation option is desired. 

Sets count of direct-access storage devices generated in 
DVCGEN. 

Length cf channel queue. 

Indicates that an area is reserved for PDAID routines. 

Indicates RMSR suppcrt. 



Indicates mcdel cf CPU. 

Number cf system class LUEs. 

Indicates the number cf entries in the errcr queue table to 
be generated by the ICTAE macro. 

Checks macro sequence of supervisor macros. 

First channel with DASD devices for file protect. 



Figure 2.4. Global Settings (Part 4 of 6) 



Supervisor Generation and Organization 39 



I Global jcn Setting 



Purpose 



AG17 



AG18 

AG19 

AG27 
AG28 
AG 31 
AG32 
AG41 
AG53 
AG54 
AG55 
AG56 

AGCAT1 

AGDAT2 

AGDAT3 

AGEAT4 (1) 
AGEAT4C2) 
AGDAT4(3) 
AGEAT4(4) 
AGDAT4(5) 



AGDAT5C1) 
AGCAT5(2) 
AGDAT5C3) 
AGEAT5(4) 
AGDAT5(5) 



DASDFP= 

2311] 
n f n # \2314j 
3330 
3340 
2321] 

SYSFIL= 

YES „ n ± ,n 2 

SYSFIL= 

YES „ n ±f n a 

TRKHLD=n 

CEF=n 

EVA=(rth,wth) 

EVA=(rth,wth) 

IINES=n 



MRSLCH=YES 



MCDEL=115 or 125 
and DCC=125D 

RSIZE=nK 

VSIZE=nK 

ETJFSIZE=n 

EGR=nK 

FlR=nK,F2R=nK, 
F3R=nK,F4R=nK 



Fl=nK,F2=nK, 
F3=nK,F4=nK 



Last channel with DASD devices for file protect. 



n ± Parameter of SYSFIt. 

n 2 Parameter of SYSFIL. 

Indicates number cf tracks that can be held. 

Indicates number cf ccnscle buffers generated in LUEGEN. 

Indicates the Read Error Threshold specified in EVA. 

Indicates the Write Errcr Threshold specified in EVA. 

SYSLST line ccunt. 

Nuirber cf LUBs. 

Indicates MICR type device is en a selector channel. 

Set tctal nuirber cf devices for RMS. 

Indicates that CRT is supported. 

Defines end of real address area. 

Defines end of virtual address area. 

Nuirber of copy buffers for channel prcgrair translation. 

AGEAT4(1) specifies the nuirber of blocks allocated to 
the real background partition. AGDAT4(2) thrcugh 
AGEAT4(5) specify the nuirber of blocks allocated to the 
real foreground partitions. The partitions to which 
these globals refer depend en the nuirber cf partitions 
supported as follows: 



Global 



Nuirber of Partitions 





2 


3 


4 


5 


AGEAT4<2) 


Fl 


F2 


F3 


F4 


AGEAT4C3) 




Fl 


F2 


F3 


AGEAT4(4) 






Fl 


F2 


AGEAT4(5) 








Fl 



Defines the origin of the virtual background partition. 
Defines the origin cf virtual foreground partitions. 
The partitions to which these globals refer depend en the 
nuirber of partitions in the same way as fcr AGDAT4C2) 
thrcugh AGDAT4C5) above. 



Figure 2.4. Global Settings (Part 5 of 6) 



4 DOS/VS Supervisor 



j Global 



|Cn Setting 



Purpose 



AGDAT6C1) 

AGDAT6 (2) 

AGDAT6(3) 
AGEAT6C4) 
AGDAT6C5) 

AGDAT7 



AGJA(l) 
AGJAC2) 
AGJAC3) 
AGJA(4) 
AGJAC5) 



AGJAL(l) 
AGJALC2) 

AGPGR(l) 
AGPGRC2) 
AGPGRC3) 
AGPGR(4) 
AGPGRC5) 



AGZN 



IJESGEN 



ITKEY 



MAX 



NPART 



NSLD(l) 
NSLD(2) 
NSVAPGS 



Fl=nK,F2=nK, 
F3=nK,F4=nK 

PAGEIN=n 

JA= (n lf n 2 ,n 3 ,,n4 f n5) 

JALIOCS(n 1# n 2 ) 



EGPGR=n 
FlPGR=n 
F2PGR=n 
F3PGR=n 
F4PGR=n 



ZCNE= 



east! 

WESTV ,hh,mm 



IT=BG,Fl,F2,F3, 
F4, or YES 



NFARTS=n 
AP=YES 



SLD=n 
PSLD=n^ 
SVA= nK,mK 



Defines the end address of the virtual background 

partition. 

Defines the end address of the virtual foreground 

partitions. 

The partitions to which these globals refer 

depend en the nuirter cf partitions in the saire way as 

for AGDAT4(2) through AGBAT4C5) above. 

Specifies the maximum nurrber of requests that can be 
queued. 

AGJA(l) indicates the nuirter cf devices for the 
background partition for which SIO counts are to be made. 
AGJA(2) through AGJA(5) indicate the sarre for the 
foreground partitions. The associated partitions depend 
en the nurrber cf partitions in the sarre way as for 
AGDAT4C2) through AGDAT4C5) above. 

Indicate whether user save area and label processing 
are supported. 

Nurrber cf BG programmer LUBs. 

Nurrber cf Fl programmer LUBs. 

Nurrber cf F2 prcgrarrrrer LUBs. 

Nurrber of F3 prcgrarrmer LUBs. 

Nurrber cf F4 prcgrarrmer LUBs. 

Difference in hours and minutes between GMT and local 
time. 

Set by SUPVR macro to indicate for SEND macro that a 
supervisor generation is in process. 

Sets key cf timer-owning partition. 



Indicates the maximum number of partitions that can be 
supported by the DCS/VS superviscr # and is always set 
to 5. 

Number cf partitions supported by this DCS/VS 

supervisor. If none cf these parameters is included,, the 

global is set to 1. 

Number of entries in the Second Level Directory. 

Number cf entries in the Private Second Level Directory. 

Number of pages in the SVA. 



Figure 2.4. Global Settings (Part 6 of 6) 



Supervisor Generation and Organization 41 



Page of SY33-8551-1, revised September 30, 197 4., by TNI SN33-8790 



SYSCOM 







4 
4 


8 
8 


0A 
10 


oc 

12 


10 
16 


14 
20 


18 
24 


Addrwof 
Error Block 


Address of 
Attention Exit 


Address of 

Operator 

Option 

Cancel Exit 


Address of 

Operator 

Request 

Cancel Exit 


Address of 
SYSRES PUB 


Address of 
Fetch Routine 


Address of 

I/O In terr. Routine 


Address of 
Ext. Interr. Routine 


xxxx 


xxxx 


XX 


XX 


XXXX 


AAAA 


xxxx 


££2 - 



1C 
28 


20 
32 


24 
36 


25 
37 


28 
40 


2A 
42 


2C 
44 


2E 
46 


30 
48 


34 

52 


Address of 

Logical Transient 

Area 


Address of 

1st byte of 

Problem Progrom 

Area 


Free 

List 

Pointer 


Address 

of 
Channel 
Queue 


Number of 
Channel 
Cheue 
Entries 


Length of 
One Error 

0>eue 

Entry 


Number of 
Partitions 


Not used 


Address c< 
Channel Buckets 


Address of 
CRT Table 


xxxx 


xxxx 


X 


XXX 


XX - 


XX 


XX 


XX 


xxxx 


xxxx 



38 
56 


3C 
60 


40 
64 


44 
68 


46 
70 


48 
72 


4C 
76 


4D 
77 


50 
80 


Address of 
SAB Table 


Address of 

Channel Control 

Table 


Flags and 

Switches 

(See expansion ) 


System Task 
Selection 

Control Field 

* 


Address of 

Task 
Selection 


Address of 
PD Area 


TH 

Free 

List 

Pointer 


Address 

of 
TH Table 


Address of 

Timer Request 

Table 


xxxx 


xxxx 


xxxx 


XX 


XX 


XXXX 


X 


XXX 


XXXX 



54 
84 


58 
88 


5A 
90 


5C 
92 


60 
96 


64 
100 


68 
104 


6C 
108 


70 
112 


Address of 
AB Table 


Key of Task 

owning LTA 

(LIK) 


Key of Task 

running 

(TIK) 


Address of 

POWER/VS 

Partition 


Address of 
VTAM Address 
Vector Table 


Address of 
RF Table 


Address of 
EU ECB Table 


Address of 
OLTEP bucket 


Address of 

RAS Linkage 

Area 


xxxx 


XX 


XX 


xxxx 


xxxx 


xxxx 


xxxx 


xxxx 


xxxx 



74 
116 


78 
120 


7C 
124 


80 
128 


84 
132 


88 
136 


8C 
140 


90 
144 


Address of 

ASCII 

Translate Table 


Address of 

PUB Ownership 

Table 


Address of 
Job Accounting 
Common Table 


Base Address of 

Page Management 

Routine 


Base Address of 
Channel Program 
Translation Routine 


Address of 

SDAID 

Comm. Area 


Address of 
Line Mode Table 


Address of VSAM 

Communication 

Area 


xxxx 


xxxx 


XXXX 


XXXX 


XXXX 


xxxx 


xxxx 


xxxx 



94 
148 


98 
152 


9C 
156 


A0 
160 


Al 
161 


A2 
162 


A3 
163 


A4 
164 


A5 
165 


A6 
166 


A7 
167 


Address of PTA 


Address of first 
System Task Block 


Address of Task 

Block of Active 

System Tosk 


1 byte for 
Alignment 


Pointer to 

RAS Task 

Bloct 


Pointer to 

PMGR Task 

Block 


Pointer to 

SUPVR Task 

Block 


Pointer to 

CRT Task 

Block 


Pointer to 

ERP Task 

Block 


Pointer to 
PAGEIN 
Task Block 


Reserved 
<g X'OO) 


xxxx 


xxxx 


xxxx 


x 


x 


X 


X 


X 


X 


X 


xxxxxxxxx 



B0 
176 


B4 
180 


B8 
184 


BC 
188 


BE 
190 


CO 
192 


CB 
203 


cc 

204 


CE 
206 


Not used 
xxxx 


Address of 
MVCFLD 

xxxx 


TRTMSK 
Pointer 

xxxx 


Not used 

XX 


Not used 

XX 


Repositioning Information 
for MFCM ERP 

xxxxxxxxxxx 


Number of 

Error Queue 

Entries 

X 


Length of 

PUB Table 

in bytes 

XX 


Number of 

Active 

Partitions 

XX 



DO 
206 


D4 
212 


D8 
216 


DC 
220 


E0 
224 


E4 
228 


E8 
232 


EC 
236 


Address of 
Segment Table 

xxxx 


Address of 
Page Frame Table 

xxxx 


Address of 

Page Frame Table 

Extension 

xxxx 


Address of 
Boundary Box 

xxxx 


Address of 
DPD Table 

xxxx 


Reserved 
xxxx 


Address of 
VIRTAD Routine 

xxxx 


Address of 
End of Real Storage 

xxxx 



FO 
240 


F4 
244 


F5 
245 


F8 
248 


FC 
252 


100 
256 


Address of 
Fetch 
Table 


SVA Flag 
(sea ex 
pansion) 


Address 
of SVA 


Address 
of System 
GETVIS AREA 


Address of RPS 
Local Dirertory 
List- 


Address of RPS 
Sector Calculation 
Routine 


xxxx 


X 


XXX 


xxxx 


xxxx 


xxxx 



•See next page for further explanation 



Figure 2.5. System Communication Region (SYSCCtf) (Part 1 of 2) 



U2 DOS/VS Supervisor 



Page cf SY33-8551-1, revised September 30, 1974 f by TNL SN33-8790 



Expansion of SYSCOM Flag Bytes 



r 




"T 




| Eyte 






| Dec 


Hex 


i _ 


Description 


| 64 


40 


"t 

| Reserved for RMS in Model 115 and 125 






| X'80' 


RMSR for channel attached devices, tapes and TP devices 






| X'40* 


Full RMS support (MCAR/CCH and RMSR) 






| X«20 f 


MCAR/CCH support 


1 65 


41 


| X f 80 f 


Initial selection of ERP 






| X - 40* 


Reserved 






| X«20" 


Timer interrupt pending 






| X'10 1 


MICR Stacker-select active 






| X*08 f 


Invalid address during fetch 








SIO routine entered after interrupt 






| X € 02« 


Reserved 






| X"01 € 


IPL in progress 


| 66 


42 


| X'80 1 


Initial RAS request 






| X'40' 


RAS Wait request outstanding 






| X-20* 


RAS IPL in progress 








Reserved 






| X € 08 # 


PCWER/VS supported 






| X«04 € 


PCWER/VS initialized 






| X' 02* 


GETREAL for SCAID or PDAID in progress 






| X"01 € 


Fetch for systeir task in progress (used by PDAID) 


1 67 


43 


| Reserved 


| 244 


F4 


| SVA Flag 






| X'80' 


Do not test for warm start copy of SVA 






| X € 40' 


SDL active 






| X«20' 


No 'Set SVA" or 'Set SDL' allowed 






| X*10 € 


Build cf SDL in progress 






1 X'08« 


SDL overflow 






| X € 04 - 


Reserved 






1 X - O2 


Reserved 






| X'Ol 11 


Reserved 


| 252 


FC 


1 X" 00000000' RPS not initialized 






| X'OOxx 


xxxx" Pointer to RPS LDL in SVA 


| 256 


100 


I X* 00000000' No RPS support 

j X*00xxxxxx f Pointer to Sector Calculation Routine 



Layout of System Task Selection Control Field 



r 


"T 






| Byte 








| Dec Hex 






Description 


L _ _ 


-4- — 






r 


T 






| 68 44 




Always zero 




| 69 45 


| SELECT 


byte: 






| X*00" 


No system task active 






| X*01" 


RAS active 






| X*02' 


PMGR active 






| X*03* 


SUPVR active 






| X*04* 


CRT active 






1 x^s - 


ERP active 






| X"06 - 


PAGEIN active 





L _L 



J 



Note: The address of SYSCCM can be found at fixed location X'80' 
Figure 2.5. System Communications Region (SYSCCM) (Part 2 of 2) 



X'83V 



Supervisor Generation and Organization 43 



Page of SY33-8551-1,, revised September 30, 1974, by TNI SN33-8790 



nnCOMREG 



*&■ 







8 
8 


0A 
10 


oc 

12 


17 
23 


18 
24 


20 
32 


24 
36 


28 
40 


2C 

44 


Date 


Address of 
PPBEG 


Address of 
EOSSP 


Problem Program Use 


UPSI 
Byte 


Job Name 


Highest 

Storage 

Address of 

the Partition 


End Address of 

Last Phase 

Fetched or loaded 


Address of upper- 
most Byte of Phase 
with highest 
Ending Address 


Label 
Area 
Length 


xxxxxxxx 


XX 


XX 


xxxxxxxxxxx 


X 


xxxxxxxx 


xxxx 


xxxx 


xxxx 


XX 



2E 
46 


30 
48 


34 
52 


35 
53 


36 
54 


37 
55 


38 
56 


39 
57 


3A 
58 


3B 
59 


3C 

60 


3E 
62 


PIK 


End of 
Virtual 
Storage 
Address 


Machine 

Configur. 

Byte 


System 

Configur. 

Byte 


Standard 

Language 

Translator 

I/O Options 


Dump, Log, 

RELLDRand 

ASCII 

Options 


Job Control 
Byte 


Linkage 

Control 

Byte 


Language 

Translator 

Control 

Byte 


Job Duration 
Indicator Byte 


Disk Address 

of 
Label Cylinder 


Address 

of 
FOCL 


XX 


xxxx 


x 


X 


X 


X 


X 


X 


X 


X 


XX 


XX 










^ Job Control Switches 1 







40 
64 


42 
66 


44 
68 


46 
70 


48 
72 


4A 
74 


4C 
76 


4E 
78 


4F 
79 


58 
88 


5A 

90 


5C 
92 


Address 

of 
PUBTAB 


Address 

of 
FAVP 


Address 

of 
J IB TAB 


Address 

of 
TEBTAB 


Address 

of 

FICL 


Address 

of 

NICL 


Address 

of 
LUBTAB 


Line Count 

for 

SYSLST 


System Date 


LIOCS 
Comm. 
Bytes 


Address of 
PIB Table 


ID Number of 

last Checkpoint 

or DASDFP 

Indicator 


XX 


XX 


XX 


XX 


XX 


XX 


XX 


X 


XXXXXXXXX 


XX 


XX 


XX 



5E 
94 


60 
96 


62 
98 


64 
100 


66 
102 


68 
104 


6A 
106 


6C 

108 


6E 

no 


Job Zone 

in 
Minutes 


Address of Disk 
Information 
Block (DIB) 


Reserved 


Address of PC 

Option Table 

less 8 bytes 


Address of IT 
Option Table 


Address of OC 
Option Table 
less 8 bytes 


Key of Program 

with 
Timer Support 


Reserved 


Logical 

Transient Key 

(LTK) 


XX 


XX 


XX 


XX 


XX 


XX 


XX 


** . 


XX 



70 
112 


74 
116 


78 
120 


7C 

124 


7E 
126 


80 
128 


84 
132 


86 
134 


87 
135 


Address of 
SYSPARM 


Address of 

J. A. Partition 

Table 


Address of 

TOD clock 

Common Area 


Address of 
PIB Table 
Extension 


Address 

of MICR DTF 

Table(PDTABB) 


Address 

of QTAM 

Vector Table 


Address 

of BG Comm. 

Region 


Option 
Indicator 


System Configuration 
Byte 2 and RMSR 
Open F lag Byte 


xxxx 


xxxx 


xxxx 


XX 


XX 


xxxx 


XX 


X 


X 



88 
136 


8C 
140 


8D 
141 


8E 
142 


8F 
143 


97 
151 


98 
152 


9F 
159 


Pointer to Option 
Table in SYSCOM 
Reserved for 
compatibility 
reasons 


Standard 
Job 

Cont.ol 
Options 


Temporary 
Job 

Control 
Options 


Disk 
Configuration 


Catalog 
Procedure Name 


Switch for 
Catalog 
Procedure 


JCL 

Statement 

Name 


81 bytes 
SYSIN Indicator 


XXXX 


X 


X 


X 


xxxxxxxx 


X 


XXXXXXX 


X 



A0 
160 


A4 
164 


A5 
165 


Address of 
POWER/VS 
Partition 
Control Block 


POWER/VS 
Flag 
Byte 1 


POWER/VS 
Flag 
Byte 2 


xxxx 


X 


X 



Note A communication region exist', from each partition supported by the system. 
The address of the communication region of the active partition is in fixed 
location X'14' - X '1 7*. 



Figure 2.6. Partition Corrrruricaticns Regicr (Fart 1 cf 6) 



44 DOS/VS Supervisor 



Key to Communication Region Displacement 



r T" 

| Key | 



Description cf Use 



MM/DD/YY or DD/MM/YY either set permanently by the job control date statement , or 
updated every time a GETIME macro is issued when Time-of-Day suppcrt is provided. 
Format controlled by EGCOMREG+53. (System Configuration Byte, date convention 
bit 0,) 



10 

12 

23 
24 
32 

36 
40 



44 
46 

48 
52 



53 



Address of the problem program area (Note: Maintained for compatibility, 
value is found in SYSCCM table displacement X'20'.). 



Correct 



Address of the beginning of the problem program area (see above) 
Y(PPBEG) 



Y(EOSSP) equals 



User area. If seek separation option is specified, bytes 12 and 13 are used at I PL 
time for the address of the seek address block. 

User program switch indicator. 

Job name set by the job control program from information found in the job statement 

Address of the uppermost byte available to the problem program, that is, either the 
address of the uppermost byte of the partition as determined during processing of 
the ALLOC or ALLOCR macro or statement, or the end address of the area specified by 
the SIZE parameter in the EXEC statement. 

Address of the uppermost byte of the last phase of the problem program fetched or 
loaded. Not filled in when phase is in SVA. 

Highest ending main-storage address of all the phases having the same first four 
characters as operand on the EXEC statement. For the phase $LNKEDT, this field is 
not filled in. The address value may be incorrect if the program leads any of this 
phase above or below its link-edited origin address. If the EXEC statement has no 
operand, job control places in this lecatien the highest ending address cf all 
programs just link-edited. 

Length of the problem program label area. 

Partition Identification Key (PIK) . The low-order byte identifies the active 
partition. Only significant for EG ccmirunicaticn region. 

End address of virtual storage. 

Machine Configuration Byte (values set at supervisor generation time) . 



Bit 0: 
1: 
2: 



Always set to indicate standard storage protect 
1 = Decimal feature (always set) 
1 = Floating-point feature 

= No floating-point feature 

1 = Physical transient overlap cpticn 

= No physical transient overlap option 
Always set to indicate standard timer feature 

1 = Channel switching device 

= No channel switching device 

1 = Burst mode on multiplex channel support 

= No burst mode on multiplex channel suppcrt 
Indicates MCH/CCH in system 



System Configuration byte. 

Bit 0: 1 = DDMMYY (Date convention bit set at generation time by. STDJC) 
= MMDDYY (Date convention bit set at generation time by STDJC) 
1 : 1 = Two or more partitions 
= One partition only 

L J. , 

Figure 2.6. Partition Communications Region (Part 2 of 6) 



Supervisor Generation and Organization 45 



r t- 

|Key| 
|. +- 



Description of Use 



54 



55 



56 



53 System Configuration byte (Cont'd.) 



1 = DASD file-protect supported 

= No file-protect support for DASD 

1 = DASD SYSIN - SYSOUT 

= No DASD SYSIN - SYSOUT 

1 = Teleprocessing 

= No teleprocessing 

1 = Two or more partitions 

= One partition only 

1 = Asynchronous processing 

= No asynchronous processing 

1 = Track Hold 

= No Track Hold 



This byte contains the standard language translator I/O options (set by STDJC 
macro) . 



Bit 0: 
1: 



DECK option 
LIST option 



2: LISTX option 



1 = 
1 = 

1 = 



3: SYM option 1 

4: XREF option 1 

5 : ERRS option 1 

6: CHARSET option 1 

7 : Reserved 



yes, output object ircdules on SYSPCH 

yes, output source module listings and diagnostics on 
SYSLST 

yes, output hexadecimal object module listings on SYSLST 
(compilers cnly) 

yes, output symbol tables on SYSLST/SYSPCH 
yes, output symbolic cross-reference list en SYSLST 
yes, output diagnostics on SYSLST (compilers only) 
48 , input en SYSIPT is 48 or 60 character set 



This byte contains the standard supervisor options for abnormal ECJ, Relocating 
Loader and Control statement display and the indicator for the presence of the 
ASCII-EECDIC and EBCDIC-ASCII translation tables. 



Bit 0: Always on 

1: DUMP option 
2: 



LOG option 

Not used 
Relocating 

Load option 
ASCII option 



1 = yes, dump registers and storage en SYSLST 

1 = partition in wait state, because a volume is to be 

mounted 
1 = yes, list all control statements on SYSLST 
1 = dummy device search in progress; dc net enter ERP 



1 = yes, Relocating Loader supported 
1 = yes, ASCII supported 



Job Control byte. 



Bit 
1 
2 
3 
4 
5 



1 = Job Accounting Interface (JA) net supported 

= Job Accounting Interface (JA) is supported 

1 = Return to caller on LIOCS disk cpen failure 

= Do not return to caller on LIOCS disk cpen failure 

1 = Job Control input frcm SYSRDR 

= Job Control input from SYSLOG 

1 = Job Contrcl output on SYSLOG 

= Job Control output not on SYSLOG 

1 = Cancel jcb 

= Do not cancel job 

1 = Pause at End-cf-Job step 

= No pause at End-of-Job step 

1 = SYSLOG is not a console printer-keyboard or DOC 

= SYSLOG is a censele printer-keybcard cr DOC 

1 = SYSLOG is assigned to the same device as SYSLST 

= SYSLOG is not assigned tc the same device as SYSLST 



Figure 2.6. Partition Communicaticns Region (Part 3 of 6) 



46 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r t 

|Key| 

^ — + — 

57 | Linkage control byte. 

Bit 0: 1 = SYSLNK open for output 

= SYSLNK not open for output 
1: 1 = Update of Second Level Directory and RAS Load list in progress 

(interface between $MAINDIR and supervisor) 
2: 1 = Allow EXEC 

= Suppress EXEC 
3: 1 = Catalog Linkage Editor output 

= Do not catalog Linkage Editor output 
4: 1 = Supervisor has been updated 

= Supervisor has not been updated 
5: Reserved 
6: 1 = Update of System Core Image Library in progress (interface between 

$MAINDIR and Supervisor) 
7: 1 = Check automatic condense limits at End-of-Job (interface between 
Librarian and Job Control) 

Language processor control byte. This is a set of switches used to specify 
nonstandard language translator options. The switches within the byte are 
controlled by job control OPTION statements and when set to 1, override standard 
options. The format of this byte is identical to the standard option byte 
(displacement 54) with one exception: Bit 7 in this byte is used to indicate to 
LIOCS that the rewind and unload option has been specified. 

Job duration indicator byte. 

Bit 

1 



Description of Use 



58 



59 



60 
62 
76 
78 
79 

88 
90 



1 = Job in progress 

= No job in progress 

1 = Dump on an abnormal End-of-Job condition 

= No dump on abnormal EOJ 

1 = Pause at EOJ step (Set by attention routine for Job control) 

= No pause at EOJ (Set by attention routine for Job Control) 

1 = Job control output on SYSLST 

= Output not on SYSLST 

1 = Job is being run cut cf sequence with a temporary assignment for SYSRDR 

= Conditions for 1-setting not met 

1 = PCIL is being condensed 

= PCIL is not being condensed 

1 = //DATE statement processed for current job 

= No //DATE statement processed for current job 

1 = Batch command just issued 

= Condition for 1-setting did not occur 



Binary disk address of the volume label area (label cylinder) . 

As illustrated (for detailed figures see Index) . 

As illustrated (for detailed figures see Index) . 

Set to the value nn specified in the LINES=nn parameter of the STDJC macro. 

The format of the system date contained within this field is determined by the IPL 
program from information supplied in the date convention bit (displacement 53). 
Bytes 85-87 contain the day count. 

Bytes reserved for use by LIOCS. Transient dump programs insert a key to indicate 
to the LIOCS End-of-Vclume routine, $$BCMT07, that it was called by a B-transient. 

Address of the first part cf the Program Information Block (PIB) table. 



Figure 2.6. Partition Communications Region (Part 4 of 6) 



Supervisor Generation and Organization 47 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r T 

| Key | Description of Use 



92 



93 

94 

96! 

98 
100 
102 
104 
106 

108 
110 

112 
116 
120 
124 
126 
128 
132 
134 



ID number of the last checkpoint. Byte 92 is also the temporary indicator of file 
protected DASD. 

Bits 0-6 correspond to channels 0-6. A bit ON means DASDFP for that channel. 
Bit 7 indicates 2321 DASDFP support. Byte 93 is used at IPL time by PIOCS. 

Bit 0: 1 = 3330 file protection 
1: 1 = 3340 file protection 

Job zone for Time-of-Day. If ZONE=EAST, value is positive; if ZONE=WEST, value 
is negative. 

Address of disk I/O position data. This is the starting address of the Disk 
Information Block (DIB) table for the partition. 

Reserved. 

PC option table (zero if not specified). 

IT option table (zero if not specified). 

0C option table (zero if not specified). 

X'OOIO* if interval timer support. 
X^OOO 1 if no interval timer support. 

Reserved. 

Logical Transient Key (LTK) contains the same value as the PIK (PID) (Displacement 

4 6) when the logical transient is requested. When the transient area is not in 

use, LTK is equal to zero. The SVC 2 routine sets the LTK. The SVC 11 routine 

resets the LTK.. (Only significant in BG communication regions.) 

Address of SYSPARM field. 

Address of Job Accounting partition table. 

Address of the Time-of-Day Clock common area. 

Address of second part of Program Information Block (PIB) table. 

Address of PDTABB, table of DTF addresses for MICR support. 

Address of QTAM vector table (IJLQTTAD) . 

Address of background communications region. 

Option Indicator byte. 

Bit 0: Reserved 

1: 1 = EU interface active 

= EU interface inactive 
2: 1 = Teleprocessing request 

= No teleprocessing request 
3: 1 = Supervisor support for tape 

= Supervisor does not support tape 
4: Reserved 
5: 1 = RETAIN support generated 

= RETAIN support net generated 
6: 1 = Linkage to Channel End Appendage Routine allowed 

= Linkage to Channel End Appendage Routine not allowed 
7 : 1 = GETVIS function has been initiated 

= GETVIS function has net been initiated 



Figure 2.6. Partition Communications Region (Part 5 of 6) 
48 DOS/VS Supervisor 



r t- 

|Key| 



Description of Use 



135 



136 

mo 



141 



142 



143 
151 



152 
159 



System Configuration byte 2 and RMSR Open Flag byte. 



Bit 
1 
2 
3 
4 
5 
6 
7 



1 = PCIL supported 

1 = TOD-clock supported 

1 = PFIX iracro supported 

1 = Fetch $$BCFEN by $JOBCTLJ 

1 = Fetch $$BCPEN by $JOBCTLD 

1 = Fetch $$BCFEN by $JOBCTLJ fcr WTM 

1 = QTAM supported 

1 = RPS supported 



Pointer to Option table in SYSCOM Reserved fcr compatibility reasons. 
Standard Job Control Cpticn byte. 



Bit 

1 

2-5 

6 

7 



1 = EDECK Standard Cpticn 
1 = ALIGN Standard Option 
Not used 

SUBLIB=DF Temporary Cption 
1 = ACANCEL Standard 



Temporary Job Control Cpticn byte. 



Bit 

1 

2-5 

6 

7 



1 = EDECK Temporary Cption 
1 = ALIGN Temporary Cption 
Not used 

SUELIB=DF Temporary Cption 
1 = ACANCEL Temporary 



Disk Configuration byte. 



Bit 0-4 
5 
6 
7 



Not used 

1 = 3340 supported 

1 = 3330 supported 

Always 1; indicates 2311 and 2314/2319 supported 



Cataloged Procedure Name. 

Interface byte for Cataloged Procedures, 



Bit 
1 
2 
3 
4 
5 
6 
7 



1 = Procedure being executed 

1 = Overwrite processing 

1 = Procedure with data 

1 = Overwrite reguest for Job Ccntrcl 

1 = Insert reguest fcr Job Control 

1 = Procedure end 

1 = SYSLOG procedure 

1 = Overwrite reguest fcr Supervisor 



JCL statement name for Cataloged Procedure. 
SYSIN 81 bytes indica€cr. 



Bit 
1 
2 
3 
4-6 
7 



1 = Permanent 81 bytes en SYSRDR 
1 = Permanent 81 bytes on SYSIPT 
1 = Temporary 81 bytes en SYSRDR 
1 = Temporary 81 bytes on SYSIPT 
Not used 
1 = Allow /& for MAINT CATALS 



Figure 2.6. Partition Communicaticns Regicn (Part 6 of 6) 



Supervisor Generation and Organization 49 



Page of SY33-8551-1, revised Septeirber 30 r 1974, by TNI SN33-8790 



r T -, 

| Key | Description of Use | 

I. — + ^ 



160 

16a 



165 



Pointer to POWER/VS Partition Control Elock. 
POWER/VS Flag Byte 1. 



Bit 

1 

2 

3-7 



1 = POWER/VS Accounting supported 

1 = Partition under ccntrcl of PCWER/VS 

1 = POWER/VS Partition 

Reserved 



PCWER/VS Flag Byte 2. 
Bit 0-7: Reserved 



50 DOS/VS Supervisor 



Page of SY33-8551-1, added September 30, 1974, by TNL SN33-8790 



PIBTAB 



10 



12 



13 



14 



15 



Attention PIB 



Background PIB 



^ 



FG4 



FG3 



FG2 



FG1 



PIB 



PIB 



PIB 



PIB 



Subtosk PIB 



Subtask PIB 



\V u. < 



Flog 
Byte 

(S-B) 



Cancel 
Code 



SYSLOG 

ID 

(AR) 



Always 
Zero 



Inactive- Zero 
Active^ Address 
of LTA Save Area 

(Note 2) 



Switch 
Byte 

(SeeB) 



Address of Save Area 
or Zero 



(Note 1) 
(Note 2) 



X'07' 
PIB 

Assign 
Flag 



BG 
User 
LUB 
Index 



Number 
ofBG 

Program 
LUBs 



Not 
used 



S SL - 

oh 

?. -O 

O C v. 
U. Qu 5 



10 



12 



13 



14 



15 



Flog 
Byte 



Cancel 
Code 



(SeeB) 



SYSLOG 
ID 



DAT 
Flag 

(S~B) 



Address of Problem 
Program Save Area or 
LTA Save Area 

(Note 3) 



Gate 
ID 

(SeeB) 



Address of System Save 
Area 



PIB 

Assign 
Flag 

[SeeB) 



Uer 
LUB 
Index 



Number 

of 
Program 
LUBs 



Flag 
Byte 



[See P 



Notes: 



1. 



When LTA is inactive 
area address. 



LTA save 



b. When LTA is active fcr Problem 

Programs,, this address is exchanged 
with that in the Problem Program 
PIE, 

2. When LTA is active for Logical 
Attention, bytes 9-11 are zero and 
bytes 5-7 contain the LTA save area 
address. 

3. When the Logical Transient Area is 
active the save area address in the 
Problem Program PIE is exchanged with 
that in the Attention PIE. 

The number of Problem Program PIEs 
generated depends on the number of 
partitions specified during system 
generation. Subtask PIBs are generated 
only if AP=YES has been specified during 
system generation. The number of subtask 
PIEs generated depends on the number of 
partitions, that is: 

r t 1 

| Number of Partitions | Number of Subtasks | 



13 
12 
11 
10 



Bytes 90-91 (X'5A' - X'5E f ) of the 
partition communication region (s) contain 
the address of the PIE table. Label PIBTAB 
identifies the first byte of the table. 

[a] Flag Eyte (First byte in PIE ) 

The following flags are always used: 



X'71 f 
X'73 f 

X'75 € 



X' 
X' 


77" 
79 . 


X 1 


7B f 


X' 


7D" 


x« 

X 


8 0* 

81" 



X'82« 



X" 


83" 


X 1 


85* 


X' 


86* 


X' 


87* 



= Program is waiting fcr SVC 58 
= Program is waitirg because 

system is seized 
= Program is waitirg fcr copy 

block 
= Program is waiting fcr TFREE 
= Program is waiting fcr channel 

queue entry 
= Program is waiting for CCW 

translation 
= Program is waiting for free 

console buffer table ertry 

(used only when CBF=n) 
= Program is not active 
= Program is SVC 2-bcund (waiting 

fcr the LTA to be released) 
= Program is SVC 7-bcund (waiting 

fcr an I/O interruption) 
= Program is ready to run 
= Prcgrair is SVC 5-tcund (waiting 

for the PTA to be released) 
= Initial selection of RAS (used 

only fcr RAS PIB Flag) 
= Program is set to common bound 

condition 



Figure 2.7. Program Information Block (PIE) Table (Part 1 of 2) 



Supervisor Generation and Organization 50.1 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



The following flags are used only if 
NPARTS>1. X'61* through X'69' are used 
by the load leveller to deactivate a 
partition. The partition to which a 
flag refers depends on NPARTS as 
follows: 

NPARTS= 
2 3 4 5 



X'61' 
X'63* 

x'65 f 

X f 67 f 
X'69 f 



refers to 
refers to 
refers to 
refers to 
refers to 



BG 
Fl 



EG 
F2 
Fl 



BG 
F3 
F2 
Fl 



BG 
F4 
F3 
F2 
Fl 



X'6A' = Program is SVC 35-bound 
X^B' = Program is SVC 35-bcund 
X*6D' = Program is waiting for next 

freed page frame 
X«6F* = Program is IDRA-bound 



The following flags are only used if 
AP=YES: 

X f 5l" = Program is SVC 38-bcund 
X'53' = Program is SVC 41/42-bcund 



The following codes are only used if 
AP=YES and PFIX=YES. The codes are 
used by the PFIX routines to set a 
partition PFIX-bound. The partition to 
which a flag refers depends on NPARTS 
as follows: 

NPARTS= 
2 3 4 5 



X'47 f 


refers 


to 


BG 


BG 


BG 


BG 


X*49' 


refers 


to 


Fl 


F2 


F3 


F4 


X'4B' 


refers 


to 


- 


Fl 


F2 


F3 


X'4D f 


refers 


to 


- 


- 


Fl 


F2 


X'4F* 


refers 


to 


- 


- 


- 


Fl 



The following codes are used only if 
AP=YES and VSAM=YES. The cedes are 
used by the VSAM routines to set a 
partition PFIX-bound. The partition tc 
which a flag refers depends on NPARTS 
as follows: 

NPARTS= 
2 3 4 5 



X'3D f 


refers 


to 


BG 


BG 


BG 


BG 


X*3F' 


refers 


to 


Fl 


F2 


F3 


F4 


X'41' 


refers 


to 


- 


Fl 


F2 


F3 


X'43' 


refers 


to 


- 


- 


Fl 


F2 


X'45' 


refers 


to 


- 


- 


- 


Fl 



The following flag, is only used when 
CBF=n: X'7D' = Program is waiting for 
free console buffer table entry. 

The following flag is only used when 
TP=QTAM: X'8B f = Task in QTAM wait. 



El 



PIB DAT Flag 

X'01' = Return to reentrant supervisor 

routine 
X , 02* = Return to gated supervisor 

routine 
X , 04* = Move CCB at dispatching time 
X f 08 f = Service delayed external 

interrupt 
X'lO' = Deactivation of this task is 

being delayed 
X^O' = Reserved 

X f 40' = Task has seized the system 
X'80* = Program is running in virtual 

mode 

Gate Identifier 

X f 71 f = Gating of SVC 58 reguired 
X , 53 t = Gating of SVC 41/42 reguired 

The flags are only used if the PIB DAT 
Flag is X'C^', that is, the first two 
flags are on. (SeefBl.) 



h 



PIB Assign Flag 

X'80' = SYSRES DASD file protect 

inhibited (allow write 

operation on SYSRES) 
X'40* = Channel appendage exit allowed 

(BTAM) 
X'20' = Cancel in progress (used in 

terminator function) 
X'lO' = Cancel control (set on a 

foreground cancel) 
X'08* = Hold foreground assignments 
X , 07' = Attention PIE 

Program Program Pig.. Flag (Last byte in 
PIB) 



Bit 0: 



1 = Batched job in foreground 
(always on when tested) 

1 = Cancel in LTA and device 
not assigned 

1 = /6 on SYSIN if DASD 

1 = Partition in stopped state 

1 = Fetch EOJ monitor 

1 = Task is canceled 

1 = Subtask(s) attached 

1 = in AB routine 



h 



Attention PIB Switch Byte 



Bit 0: 
1: 



Reserved 

1 = Fetch Physical Attention 

Transient $$ABERRZ 
1 = Delay cancellation (fetch 

$$ABERZ1) 
1 = Emergency cancel reguest 
Reserved 

1 = Command available (DOC) 
1 = Fetch Logical Attention 

Routine ($$BATTNA) 
1 = External Interrupt reguest 



Figure 2.7. Program Information Block (PIB) Table (Part 2 of 2) 



Supervisor Generation and Organization 51 



r 

i 

L 






Indications 


of Logical Transient Area Occupancy and Activity 


— i 

1 


r 

j Status 




"T 

| BGCOMREG 
.X 


T 

| Attention 
j. 


T T T 

| | Condition | 
PIB| Problem PIB| of LTA (Notes 

- -X- X- - — X 


i 




SVCs 
issued 


T 

| Contents of 
|LTK ♦ 1 
| (1 Byte) 

.x 


T 

|Address in 
|ARFLG ♦ 1 
| (3 Bytes) 
4 ^ 


T 

(Address in 
(PIBSAVE + 
| (3 Eytes) 
x 


1| 

_x 


.x _. 


l 
i 








T 


i 


T 
L _ 


T 

_X- 


.x — 


i 


| (1) 

L 






| zero 
_x 


(Logical 
(Transient 
|Save Area 

X 


— — J. — _ 

| Problem 
(Program 
| Save area 

„ x - 


T 

(Free 

L _ 


T ~ 

(Initial condition 
| before issuing SVC 2 

.x — 




r 

| (2) 


SVC 


2 


T — • T 

| Owner - s | Problem 
| Partition | Program 
| j Identification! Save Area 
|Key | 
„x „ j. 


t — — 

| Logical 

(Transient 
(Save Area 
| (LTASAVE) 

_ L ^_ _^._ 


— j. 

| Active 

L _. 


t — 

.1... 




r — 
1 <3> 

i 


SVC 
SVC 


2 
11 


| zero 

_x - - 


(Logical 
(Transient 
|Save Area 
| (LTASAVE) 


| Problem 
| Program 
|Save Area 

_ X- 


|Free 

L 


(Restored to (1) 
_X- -.— 




r 

| (4) 

L 


SVC 
SVC 


2 
8 


t T 

(Owner's | Logical 
(Partition (Transient 

|Key | (LTASAVE) 
_X _X __ 


— -f- 

| Problem 
| Program 

X ™ 


— Y 

| Occupied 
|tut 

_x 


T ~ 

(SVC 8 may be issued 
|only from LTA. 

| contains address of 

|user routine 
„x - 




r 

1 (5) 


SVC 
SVC 
SVC 


2 
8 
9 


T T 

| Owner *s | Problem 
j Partition j Program 
| Identification! Save Area 
|Key | 
i „„ —_— x 


T 

|Logical 
(Transient 
|Save Area 
| (LTASAVE) 
_ x 


T 

| Active 
_j — 


T — 

(Restored to (2) • 
|SVC 9 may be issued 
(only from Problem 
| Program, 
_j — . _ , 




r 

| (6) 


SVC 
SVC 
SVC 
SVC 


2 
8 
9 
11 


t — 

| zero 


T 

|Logical 
(Transient 
|Save Area 
| (LTASAVE) 


— -f — 

| Problem 
| Program 


T 

|Free 


1 

(Restored to (1) . 





Figure 2.8. Indications of Logical Transient Area Occupancy and Activity 



52 DOS/VS Supervisor 



Page cf SY33-8551-1, revised September 30, 1974, by TNI SN33-8790 



PB2TAB 



1 



10 



12 



13 



14 



15 



Attention 


PIB 


tackground PIB 


FG4 


PIB 


FG3 


PIB 


FG2 


PIB 


FG 1 


PIB 


Subhsk 


PIB 


^— ***— ' 


Subtosk 


PIB 



16-bit 

address of com- 
munication 
region 
( Note 1 ) 



System 
LUB index 



Interrupt 
Information 



Address of termination ECB 
if any, otherwise zeros 



Program 
Interrupt 
Key(PIK) 



un- 
used 





/ 
/ 




\ 
\ 


Type of Interruption 


Contents of PIB Extension Bytes 


4 


5 


6 1 7 


SVC 

PC 

I/O 


00 
00 
00 


ILC*) 
ILC*) 
00 


Interruption Code 
Interruption Code 
I/O Address 



*) ILC (Instruction Length Code) is in bits 5 and 6, other bits are zeros. 



Flag 
Byte 



Byte 14 


Byte 15 


Not used 


Bit 0-1 = Reserved 

Bit 2: = Task owns CRT 

Bit 3-7 = Not used 



Figure 2.9. Program Information Elcck Table Extension (FIB2TAB) 

Note: Always EG communication region in Attention- and Eackground PIE extension. 
Appropriate communication region in ether PIE extensions when a multiprcgram system has 
been generated. To place this address in a register the instruction ICW should be used. 

For each PIE Table entry an entry exists in the FIE Table Extension. 

Eytes 124-125 (X^C* - X'7D') cf the partition communication region(s) contain the 
address of the PIB Table extension. Label PIE2TAE identifies the first byte cf the PIB 
Table extension. 



16 (X'10') 



* 


PSW 


Reg 9 


Reg A 


RegB 


RegC 


Reg D 


Reg E 


RegF 


RegO 


Reg 1 


Reg 2 


Reg 3 


Reg 4 


Reg 5 


Reg 6 


Reg 7 


Reg 8 


• 


FLTPT R0 


FLTPT R2 


FLTPT R4 


FLTPT R6 



24(X'18') 
48(X'30') 
72(X*48') 
96(X'60') 



Figure 2.10. ITA and Problem Program Save 
Area 



Problem Prcgram Save Area : 

Program Name 

ITA Save Area: Net used 

• 

Problem Prcgram Save Area : 

First half-wcrd: Label area length 

Second half-word: Reserved 

Third and fourth half-wcrd: Jcb start time 

ITA Save Area: Reserved 



Supervisor Generation and Organization 53 



BBOX 
General Entry 



is? 



551 



BG Entry 



F4 Entry 



F3 Entry 



F2 Entry 



F1 Entry 



34 



21 



End Address of Real Storage 
or Address of PDAID Alter- 1 
note Area /SDAID Buffer 
Area. 



56 



Number of 

Page Frames 

in smallest 

Real Partition 



78 



11 12 



Number of 

Page Frames 

in Main Page 

Pool 



Begin Address of 
Virtual Address Area 



End Address of 
Virtual Address Area 4 



3 4 



7 8 



11 12 



Begin Address of 
Real Partition 


End Address of 
Real Partition + 1 


Begin Address of 
Virtual Partition 


End Address of 
Virtual Partition + 1 


1 These values are inserted at IPL time and (except 
1 General Entry) may be changed by ALLOCR 


These values are inserted at system generation time l 
and (except General Entry) may be changed by ALLOC 1 



Figure 2.11, Eoundary Box (EBOX) 



Note; If a partition is net allocated, its fcegin and end address entries contain the 
begin address of the following partition. 

Eytes 220-223 (X f DC* - X'DF') of the System Corrrrunication Region (SYSCCW) contain the 
address of the Boundary Box, Label EBCX identifies the first byte cf the table. 

The table of DTF addresses (FDTAEE) contains six 8-byte entries; one fcr each line cf the 
direct control feature on the systeir. 



PDTABB 



Byte 





1 


2 


3 


4 


5 


6 


7 




AND In 


struction 


Owner- 
ship 
Flags 


DTF Address for MICR 





Nl 


PDSTAT+1 


X'FE' 




Device on line 7 


8 


Nl 


PDSTAT+1 


X'FD' 




Device on line 6 


16 


Nl 


PDSTAT+1 


X'FB* 




Device on line 5 


24 


Nl 


PDSTAT+1 


X'F7' 




Device on line 4 


32 


Nl 


PDSTAT+1 


X'EF' 




Device on line 3 


40 


Nl 


PDSTAT+1 


X'DF' 




Device on line 2 



Figure 2.12,. 



Tables for MICE DTF Addresses 
and Pointers (Part 1 cf 2) 



Bytes; 

0-3 Contain an *AND f instruction that is 
executed in rrain line ceding tc turn 
off the external line status after its 
detection. 

PDSTAT + 1 will contain cne cr irere cf 
the following interrupt codes: 

External Interrupt External 
Interrupt Code Interrupt 
Code Bit ayte X'87M Cause 

External signal 7 

External signal 6 

External signal 5 

External signal 4 

External signal 3 

External signal 2 

n = other external interrupt conditions 



15 


nnnnnnnl 


14 


nnnnnnln 


13 


nnnnnlnn 


12 


nnnnlnnn 


11 


nnnlnnnn 


10 


nnlnnnnn 



Contains the flag cf the partition 
containing the DTF 
Eackgrcund = 10 

Foreground = 20-50 , depending en the 
number cf partitions 



5-7 Ccntair the address cf the DTF table 



Table cf pointers (PETABA) tc DTF addresses 
with the external interrupt line. The 
table is set up tc handle the status in 
descending order frcrr tit 15 tc bit 10 of 
the external interrupt cede. 



PDTABA 



Byte 





1 


2 


3 


4 


5 


6 


7 





00 


08 


00 


10 


00 


08 


00 


18 


8 


00 


08 


00 


10 


00 


08 


00 


20 


16 


00 


08 


00 


10 


00 


08 


00 


18 


24 


00 


08 


00 


10 


00 


08 


00 


28 


32 


00 


08 


00 


10 


00 


08 


00 


18 


40 


00 


08 


00 


10 


00 


08 


00 


20 


48 


00 


08 


00 


10 


00 


08 


00 


18 


56 


00 


08 


00 


10 


00 


08 


00 





Figure 2.12. Tables fcr NICR DTF Addresses 
(Part 2 cf 2) 

Eytes 126 and 127 (X'7E' - X'7F') of the 
partitions ccrrrcunicaticn region contain the 
address of these tables. Label PDTABB 
identifies the first byte cf the first 
table. The tables are used for handling 
external interrupts en rragnetic ink cr 
optical character recognition devices. 



54 DOS/VS Supervisor 



r t t- 

| Displacement | Label | 



Description 



0-15 



16-17 



18-19 



(ACCTCOMN) 
I ACCTSVRG 



I ACCTSVRX 



I ACCTSVRE 



20- 


23 


ACCTPCNT 


24 




ACCTSAID 


25 




ACCTFAID 


26 




ACCTRAID 


27 




ACCTSWCH 



28- 


-31 


ACCTIME 


32- 


-33 


ACCTRESC 


34- 


-35 


i ACCTUSEP 


36- 


-37 


| ACCTUSEL 


38- 


-39 


| ACCT$JOB 


40- 


-43 


I ACCTBLES 



Temporary register save area 

| Save area for remainder of overhead counter tines distributed 
|by partition en exit 

Save area for remainder of all-bound counter tiires distributed 
| by partitions on entry 

| Count of partitions using the Jcb Accounting interface 

| Owner cf physical transient area *) 

| Interrupted prograir *) 

| ACTIVE PROGRAM *) 

|Acccunting switches: if hit=l, true; if bit=C f net true 

|bit 0: cancel accounting tit 4: IPL indicator 

bit 1: no active partitions bit 5: not used 

jbit 2: catalog in process tit 6: net used 

| bit 3: alternate label area bit 7: not used 

| Start tine of current accounting interval, in complement format 

Reserved 

| Address cf user save area (ACCTUSER) 

| Length of user save area (set with 1st operand of FOPT macro 
| parameter JALIOCS) 

| Jcb acccunting partition indication 

|Address cf BG Job Accounting Table 



If multiprogramming is supported, this table is to be extended with one of the following 
fields (depending on the number cf supported partitions), otherwise the table ends here. 



NPARTS=2 
r- 



44-47 j j Address of Fl Job Acccunting Table | 

II I 

48-51 |ACCTSEAS (Control Field: prevents the accounting routine being leaded | 

j | twice | 

jl j. J 



NPARTS=3 

r 

44-47 

48-51 
52-57 



j Address cf F2 Jcb Accounting Tatle 
I 



|Address cf Fl Jcb Accounting Tatle 

I 
| ACCTSEAS (Control Field: prevents the accounting rcutine being leaded 
| twice 
l x x j 

*) These values are the same as the PIK values fcr the relevant tasks. 
Figure 2.13. Job Accounting Interface Common Table (ACCTCOMN) (Part 1 cf 2) 



Supervisor Generation and Organization 55 



NPARTS=4 



r T" 

| Displacement! 



Label j 



Description 



| 44- 


-47 | 


| 48- 


-51 | 


1 52- 


-55 | 


| 56- 


-63 | 



| Address of F3 Job Accounting Table 

I 
I 

| Address cf F2 Job Accounting Table 

I 

| Address cf Fl Jcb Accounting Table 

I 
ACCTSEAS | Control Field: prevents the accounting routine being leaded 
| twice 

x '. 



NPARTS=5 
44-47 
48-51 
52-55 
56-59 
60-69 



| Address of F4 Job Accounting Table 

i 

| Address of F3 Job Accounting Tatle 



l x 



I 

| Address cf F2 Job Accounting Table 

I 

| Address of Fl Job Accounting Table 

I 
ACCTSEAS | Control Field: prevents the accounting routine being loaded 
| twice 



j 



Bytes 124-127 (X'7C - X'7F') of the System Communication Region (SYSCCK) contain the 
address of the Job Accounting Interface Coirircn Table. Label ACCTCoMN identifies the 
first byte of the table. 

Figure 2.13. Job Accounting Interface Coirircn Tatle (ACCTCOMN) (Part 2 of 2) 



r T" 

| Displacement | 



Label | 



Description 





(ACCTABLE) | 


| 0-3 


ACCTWK1 | 


| 4-7 


ACCTWK2 | 


| 8-11 


ACCTSVPT | 


| 12-13 


ACCTPART | 


| 14-15 


ACCTLEN | 


| 16-21 


ACCTLOAD | 


| 22-23 


ACCTRES3 | 


| 24-27 


ACCTLADD | 


| 28-31 


ACCTCPUT | 


| 32-35 


ACCTOVHT | 


| 36-39 


ACCTBNDT | 



Wcrk area used in SIO update 

Work area used with ACCTKKl in start/stop tiire routine 

Job card pointer; address of jcb card field following jebname 

ID cf partition in charge (partition switch narre) 

Length of SIO area=6n+l # where n=number of devices for this 
partition in SYSGEN option JA= (rl f n2, n3 , n4, n5) 

Label area instruction; ireves JAI label area address to 
OPEN/CLOSE transients 

Reserved 

Address of alternate label area 

Counter for CPU time elapsed in a jobstep, counted in 300th of 
a second 

Counter for overhead tiire; tiire net charged tc any partition 

Counter fcr all-bound tiire; system wait state time divided 
between running partitions 



Figure 2.14. Job Accounting Interface Partition Table (ACCTxx) (Part 1 cf 2) 



56 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r , T _ 

| Displacement | 
I- +- 



Label 



Description 



40-47 
48-55 
56-71 
72-73 

74 
75 

76-83 
84-87 

88-91 

92-95 

96-103 

104-107 



108-111 
112-115 

116-119 

120 



ACCTSVJN 
ACCTJBNM 
ACCTUSRS 
ACCTPTID 

ACCTCNCL 
ACCTYPER 
ACCTDATE 
ACCTSTRT 

ACCTSTOP 

ACCTRES 

ACCTEXEC 

ACCTHICR 



ACCTIMES 



ACCTSIOS 



Save area for job name during simulated EOJ 

Job name; taken from job card 

User information; 16 bytes from job card 



Partition ID: 
format 



•BG', 'F4', f F3 f , 'F2', or 'Fl' in EECDIC 



Cancel code; see Cancel Cedes and Messages 

Type cf reccrd: 'S* = job step, 'L f = last step of job 

Date in format specified at SYSGEN (MM/DD/YY or DD/MM/YY) 

Start time cf a job step, in packed decimal (DHHMMSSF; F = 
sign) 

Stop time of a job step in the same format as ACCTSTRT. This 
value is used as the start time for the next step. 

Reserved 

Phase name; taken from execute card 

Real mode; the problem program end address reflecting ALLOCR 



or the SIZE= parameter on the EXEC statement. 

Virtual mode: the virtual start address of the partition 
incremented by the amount of virtual storage referenced 
during this step. 

CPU time elapsed in a job step; counted in 300th of a second 

Overhead time; elapsed time net charged tc any partition, in 
3 00th of a second 

All-bound time; system wait state time divided between 
running partitions, in 300th cf a second 

SIO tables: 6 bytes for each device specified by SYSGEN 
options, as follows: 2 bytes for device address (Ocuu), 4 
bytes fcr ccunt of SIOs in current jobstep 

Overflow byte: normally X*20 f , but is X^O^ if more devices 
are used within a partition than specified by SYSGEN options 



Notes: 

1. DSECT ACCTABLE symbolically addresses the JAI Partition Tables with labels as 
shown. Each partition in which JAI is supported has its own JAI Partition Table, 
labeled ACCTBG, ACCTF4, ACCTF3, ACCTF2, ACCTF1, for active partitions BG, F4, F3 , 
F2, and Fl, respectively. 

2. The address of this table is in the partition Communication Region at disolacement 
116 (X , 74'). 

Figure 2.14. Job Accounting Interface Partition Table (ACCTxx) (Part 2 of 2) 



Supervisor Generation and Organization 57 



DISK INFORMATION BLOCK (DIB) TABLE 



DSKPOSBG 


BGDIB 
Table 


DSKPOSF4 


F4DIB 
Table 


DSKPOSF3 


F3DIB 
Table 


DSKPOSF2 


F2 DIB 
Table 


DSKPOSF1 


Fl DIB 
J Table | 



Format of any DIB table if SYSFIL= YES 


















6 


7 




9 


10 












16 


17 


18 


19 


20 


21 


22 


23 




Current Address 


K D D 


End Address 


UL 


LL 


M 


RC 




SYSLNK 


C 


C 


H 


H 


00 


00 


00 


P 


P 


00 


00 


00 


00 


00 


00 


00 


00 


00 


00 


00 


00 


00 


00 


00 


SYSIN 


B 


B 


C 


C 


H 


H 


R 


00 


00 


50 


B 


B 


C 


C 


H 


H 


R 


H 


H 


XX 


XX 


XX 


00 


00 


SYSPCH 


B 


B 


C 


C 


H 


H 


R 


00 


00 


51 


B 


B 


C 


C 


H 


H 


R 


H 


H 


XX 


XX 


XX 


00 


00 


SYSLST 


B 


B 


C 


C 


H 


H 


R 


00 


00 


78 


B 


B 


C 


C 


H 


H 


R 


H 


H 


XX 


XX 


XX 


00 


00 


PRCDIB 


B 


B 


C 


C 


H 


H 


R 


00 


00 


50 


B 


B 


C 


C 


H 


H 


R 


H 


H 


XX 


XX 


XX 


00 


00 



The number of DIB tables depends 
on the number of partitions speci- 
fied at supervisor generation. 





Format of any DIB table if SYSFIL= 
6 7 


NO 


9 


10 












16 


17 


18 


19 


20 


21 


22 


23 




Current Address 


K D D 


End Address 


UL 


LL 


M 


RC 




SYSLNK 


C 


C 


H 


H 


00 


00 


00 


P 


P 


■ 
00 




PRCDIB 


B 


B 


C 


C 


H 


H 


R 


00 


00 


50 


B 


B 


C 


C 


H 


H 


R 


H 


H 


XX 


XX 


XX 


00 


00 



■) BG SYSLNK DIB contains the PUB pointer for CLB. 
For FG SYSLNK DIBs this byte is unused. 





Format of 3540 Diskette DIB ta 

6 


ble 

7 




9 


10 












16 


17 


18 


19 


20 


21 


22 


23. 




Current Address 


K D D 


End Address 






M 


RC 




SYSIN 


00 


00 


00 


00 


C 


H 


R 


00 


00 


00 


FLG 


EXT 
# 


HDR 


00 


c 


H 


R 


00 


00 


XX 


00 


00 


00 


00 


SYSPCH 


00 


00 


00 


00 


C 


H 


R 


00 


00 


00 


FLG 


EXT 
# 


HDR 


00 


c 


H 


R 


00 


00 


XX 


00 


00 


00 


00 


SYSLST 


00 


00 


00 


00 


c 


H 


R 


00 


00 


00 


FLG 


EXT 
4$ 


HDR 


00 


c 


H 


R 


00 


00 


XX 


00 


00 


00 


00 



Figure 2.15. Disk Information Elcck (DIB) Table 

Bytes 

- 6 : Current Address 

0-5: Current address of key: the next address to be used (both for input and 
output) . 
6: Record number of current address. 

7- 9 : K£D 

Key and data length of the symbolic device. PP: starting cylinder of Private 
Core Image Library if PCIL is assigned; otherwise zero. 

10-16: End Address 

10-15: End address of key: the last address within the limits of the extent. 
16: Record number of end address. 

17: UL Upper head limit. 

18: LL Lower head limit. 

19: M Maximum number of records per track. 



58 DOS/VS Supervisor 



Page cf SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



20-21: RC Record count: Residual capacity fcr beginning cf cperatcr nctif icaticn. Set 
at system generation time with SYSFIL parameter, cr after IPL with SET statement 
(RCLST and/or PCPCH operands) . A warning message is issued by jcb contrcl after 
End-of-Job step when the minimum number of remaining records has been reached or 
exceeded during the previous job. Net supported fcr 3540. 

22: X f 40" Indicates RPS support. 

23: Reserved. 

Note: The block is initialized by jcb contrcl with extent information and updated by 
physical IOCS. When the PCIL opticn is used the DIB is updated each time the PCIL is 
assigned. 

There is one DIE table for each partition. Label DSKPCSEG identifies the first byte of 
the BG DIB Table (DSKPCSF1, DSKPOSF2 , DSKPCSF3, DSKPCSF4, for the other partitions). The 
addresses of the DIB tables are contained in bytes 96 and 97 (X'60' and X'61') cf the 
appropriate partition communication region. 



Figure 2.16. Deleted 



Supervisor Generation and Organization 59 



MODTAB 



U> £ CO 

» 3 3 

J £6 

o | 



x ro 



* I t 

1 *— '.-I 
— P 

T< — H ; 



The first 4 bytes of the table 

[Maximum number of start/stop lines. Set by the IOTAB 
macro at system generation 

[Maximum number of BSC lines. Set by the IOTAB macro 
at system generation 

Actual number of start/stop lines. Determined by DVCGEN 
I macros at system generation and ADD commands at I PL 

Actual number of BSC lines. Determined by DVCGEN macro 
at system generation and ADD commands at IPL 



not used 



Line Mode settings for 
Model 115, 125 Comm. Adapter 



Figure 2.17. Line Mode Table (LMT) 

Bytes 140-143 (X'ec' - X'8F') of the System 
Communication Region (SYSC0M) contain the 
address of the table. Label MODTAE 
identifies the first byte of the table. 



60 DOS/VS Supervisor 



r T" 


T" 




"T 








| Displacement! 


Label | 


Eyte 






Description 


I. T ^ 




Length 










| Dec | Hex | 














L ± ±. 


_L_ 




__L 








j. __ -f.~ -|.. 


T 




1 










RFTABLE | 




| Label 


of Starting Address 


1 | | 


RFFLAGS1| 


1 


| Bit 0- 


1 


= 


File full 








I Is 


1 


= 


RDE option included 








I 2 


1 


= 


Initial IFL 








I 3- 


Reserved 








I ** 


1 


= 


File is tc be created 








| 5 


1 


= 


File has teen created 








I 6 


Reserved 








I 7 


1 


= 


File open and ready 


1 1 I 1 | 


RFFLAGS2| 


1 


| Bit 


1 


= 


File full message request 








I 1 


1 


= 


Last track message request 








1 2 


1 


= 


I/O error message request 








1 3 


1 


= 


Data lest message request 








1 4 


1 


= 


EVA message request 








| 5 


1 


= 


File owned by RTA recorder 








1 6 


1 


= 


File owned by PTA recorder 








1 7 


1 


= 


File being accessed by EREP 


1 2 1 2 | 


RFFLAGS3] 


1 


| Bit 


• 1 


= 


Last track message issued once 








1 1 


1 


= 


Error is to be recorded 








1 2 


1 


= 


Short fcrrr record request 








1 3 


: 1 


= 


Individual records for unlabeled tapes 








1 ** 


Reserved 








1 5 


Reserved 








1 6 


. 1 


= 


Exit tc $$BOMT05 indicator fcr $$BOPEN 








1 7 


: 1 


— 


Exit to $$BOMT01 indicator for $$BOPEN 


1 3 | 3 | 


RFFLAGS4] 


1 


| Work c 


area 


switches for various transients including 








| BTAtf 














| Bit 


: 1 


= 


multiple reccrds required (3211 
recording) 








1 1 


: 1 


= 


PLB record required (3211 recording) 








1 2 


. 1 


= 


FCB record required (3211 recording) 








1 3 


: 1 


= 


UCB reccrd required (3211 recording) 








1 ** 


: 1 


= 


Ignore exit requested (3211 recording) 








| 5 


Net 


used 








1 6 


Not 


used 








1 7 


1 


= 


reccrd net written 


1 ** 1 4 1 


RFFLAGS5| 


1 


| Reser 


7ed 






1 5 | 5 | 


RFNOFN | 


1 


| N of N reccrds (lew crder 4 bits certain the number 








| of re< 


:ords to be processed and high crder 4 bits 








| contaj 


m the 


number of the reccrd being processed) 


1 6 1 6 | 


RFRECTYPj 


1 


| Reccrc 


1 type 


cede 



Figure 2,18, Recorder File Table (Part 1 of 2) 



Supervisor Generation and Organization 61 



Displ 


acement 


Label 


Byte 


Description 






: 




Length 






i 






Eec 


1 


Hex 










i 


j 


j 


L J 






1 










7 




7 


RFREL 


1 


DOS ID/Release level cede 


8 




8 


RFRDSW1 


1 


Reccrd dependent switch 1 


9 




9 


RFRDSW2 


1 


Reccrd dependent switch 2 


10 




A 


RFEXIT 


2 


Exit phase naire cr exit address 


12 




C 


RFMCONST 


2 


Multiplier fcr track kalance 


14 












16 




10 


RFOCONST 


2 


Overhead fcr track balance 


18 




12 


RFRECLEN 


2 


Length cf reccrd 


20 




14 


RFTIMEA 


4 


Address cf RMSR tirre entry 


24 




18 


RFRECADR 


4 


Address cf reccrd 


28 




1C 


RFSEEK 


7 


Work area fcr seek address (BBCCHHR) 


35 




23 


RFEREPK 


1 


Key of EREP partition 


36 




24 


RFHDRCH 


4 


SYSREC cylinder/head 


40 




28 


RFCHMAP 


1 


Map of supported channels 


41 




29 


RFCHIDC 


3 


Channel IE cedes 



The following entries are not generated for Model 115 and 125, without RMSR support. 



44 
45 
46 
48 
52 



2C 

2D 
2E 
30 
34 



RFEVARTHI 

I 

RFEVAWTH| 

I 

RFP2ENTL| 

I 
RFP2ENT | 

I 
RFP2ITAB| 
X- 



EVA read threshold 
EVA write threshold 
Length of PUB2 Entry Area 
Address of PUB2 Entry Area 
PUB2 Index Table 



*Two bytes are generated fcr each PUB2 entry in the system. See Figure 2.19 fcr using 
the PUB2 Index Table to access the PUB2 entries. 

Bytes 100-103 (X , 64 , -'67*) of the system communication region (SYSCCM) contain the 
address of the Recorder File Table. Label RFTAELE identifies the first byte cf the 
table. 



i 



Figure 2.18. Recorder File Table (Part 2 cf 2) 



62 DOS/VS Supervisor 



SYSCOM 



+ 100 



PUBTAB 



P~* A device PUB 



1 &■ 



L 



RF TABLE 



446 



HKs2 



J 



m 

How to find the PUB2 entry for a device: 

[1] Subtract from the address of the device 
PUB, the PUB Table start address and 
divide the result by 4. 

[2] Find in the RF Table at displacement 52 
(X'34»)rhe PUB2 Index Table. 

[3] Use the result from Q] as a displacement 
into the PUB2 Index Table. This will give 
you the two bytes index (i.e., displacement) 
of the PUB2 entry of the device PUB. 

\4} Find in the RF Table at displacement 48 
(X'30 1 ) the address of the PUB2 AREA. 

[5] Use the value from [3] as a displacement 
in the PUB2 AREA. 



Length of PUB2 AREA 



+48 



Address of PUB2 AREA 



PUB2 INDEX TABLE 



["77 



2 bytes entries giving the 
displacement from the be- 
ginning of the PUB2 AREA 



PUB2 AREA 



See PUB2 for the format of 
the entries for the various 
device types 



Note: PUB2 Area is not generated for Model 115 and 1.2 5, without RMSR support. 
Figure 2.19. Accessing the PUE2 Table (PUE2AREA) 



Supervisor Generation and Organization 63 



Decirral 
Displacement 

_ j 


Byte 
Length 

L J 


L 






Description 


1 



r 1 
3 


r 

Usage Count 


(number of non-ERF SIOs) 


3 


1 


Flag Byte 








Bit 
1 
2 
3 
4 

6,7 




1 = Device in intensive mode 

1 = Device in diagnostic mode 

1 = No recording mode 

1 = Call statistics transient 2 

1 = Use PUB2 name completion field 

1 = Volume opened en this device 

Reserved 


4 


1 


CE mode 


limit byte 


5 


1 


CE mode 


byte/bit mask 


6 


6 


Statistical 


data counters 



X X 



I- 

I Total length 12 

L 



Note: PUB2 Table is not generated for Model 115 and 125, without RMSR 
support. 



Figure 2,20. PUB2 Table Entry Format for Unit Record and Unsupported 
Devices 



Decimal 
Displacement 


_ T _ — _ 
| Byte 
| Length 

-4- 


"T 

I 






Description 





T 

1 3 


1 


Usage Ccunt 


(number cf ncn-ERF SIOs) 


3 


1 1 




Flag By 


te 










Bit 
1 
2 
3 
4 
5 
6,7 




1 = Device in intensive mode 

1 = Device in diagnostic mode 

1 = No recording mede 

1 = Call statistics transient 2 

1 = Use FUE2 name completion field 

1 = Volume opened on this device 

Reserved 


4 


1 1 




CE mede 


limit byte 


5 


1 ! 




CE mede 


byte/bit mask 


6 


| 20 




Statii 


3tical 


data counters 



h -L ± 

| Total length 26 

L . . 

Note: PUB 2 Table is not generated for Model 115 and 125, without RMSR 
support. 



-I 



Figure 2.21. PUB2 Table Entry Format for 3886 Optical Character Reader ~ 



64 DOS/VS Supervisor 



T T 

Eyte 
Length 



Decimal 
Displacement 



Description 







7 

9 
10 



Usage Count (number of non-ERP SIOs) 
Flag Eyte 



Eit 
1 
2 
3 

a 

5 
6,7 



1 = Device in intensive mode 

1 = Device in diagnostic ircde 

1 = No recording mode 

1 = Call statistics transient 2 

1 = Use PUE2 name completion field 

1 = Vcluire opened en this device 

Reserved 



CE mode limit byte 
CE mode byte/bit mask 
Flag byte 



Eit 

1 

2-7 



1 = Soft DASD error is queued 

1 = ERP requests legging of error 

Reserved 



Reserved 

Physical module identifier 

Volume serial number 



End 


3340 


JL X . 

Total Length 16 




16 


T T """ "" ~~ "" "" "" 

| 8 | Statistical data counters 

X X _ _ - - _ _ - - _ _ 


End 


DASD 


except 3330 Total length 24 




24 


T ~ T ~ "" " ~" 

| 8 | Additional statistical data counters 
| | (3330 enly) 
_ x X _ __-__ _ 


End 


3330 


Total length 32 



I 

L^ 

I Note: PUB2 Table is not generated for Model 115 and 125, without RMSR support. 



Figure 2.22, PUB2 Table Entry Format for DASD 



Supervisor Generation and Organization 65 



T T 



Decimal 
Displacement 

- - 4 


Byte 
Length 

L -J 


L 




Description 


1 



r 1 
3 


r 

Usage Count (number cf ncn-ERP SIOs) 


3 


1 


Flag Byt 


.e 






Bit 
1 
2 
3 
4 
5 
6,7 




1 = Device in intensive mode 

1 = Device in diagnostic mode 

1 = No recording mode 

1 = Call statistics transient 2 

1 = Use PUB2 name completion field 

1 = Volume cpened en this device 

Reserved 


4 


1 


CE mode 


limit byte 


5 


1 


CE mode 


byte/bit mask 


6 


8 


Statistical data counters 


14 


1 


Flag byte 






Bit 0-5 

1 6 
7 


Reserved 

System File cpened by Jcb Ccntrcl 

System File cpened by Problem Program 


15 


1 


Reserved for future use 



h _J.„ X- 

| Total length 16 

L 



.| 



I Figure 2.23. PUB2 Table Entry Format for 3540 Diskette 



i 



66 DOS/VS Supervisor 



r 1 



Decirral 


Byte 








Displacement 


Length 






Description 




























3 


Usage 


Count 


(number of non-ERF SIOs) 


3 


1 


Flag Eyte 








Bit 


1 = 


Device in intensive mode 






1 


1 = 


Device in diagnostic mode 






2 


1 = 


No recording mode 






3 


1 = 


Call statistics transient 2 






4 


1 = 


Use PUB2 name completion field. 






5 


1 = 


Volume opened en this device 






6,7 


: Reserved 


4 


1 


CE mode limit byte 


5 


1 


CE mode byte/bit mask 


6 


2 


Name of ERP 


that wants control 


8 


1 


Flag byte 1 








Bit 


: Reserved 






1 


: 1 = 


Unsolicited interrupt 






2 


: 1 = 


ERP is in control 






3 


. 1 = 


ERP requests repositioning 






4 


: 1 = 
C = 


Use original TIE byte 
Use eppesite TIE byte 






5 


: 1 = 


Intercept next SIC request 






6 


: 1 = 


ERP read eppesite request 






7 


: 1 = 


Restart user's CCW chain 


9 


1 


Flag 1 


:yte 2 








Bit 


: 1 = 


Last ERP operation was ERG 






1 


: 1 = 


Last ERP operation was reposition 






2 


: 1 = 


Cleaner action in progress 






3 


: 1 = 


Read Opposite Recovery in prcgress 






4 


: 1 = 


Message stored in P20RGTIE 






5 


: 1 = 


Error en attempt tc recover by repositioning 






6 


: 1 = 


Data check after ERP in control 






7 


Reserved 


10 


1 


Flag 1 


Dyte 3 








Bit 


1 = 


Failing CCW is Write or Contrcl command 






1 


: 1 = 


User reading backwards 






2 


1 = 


Read Opposite Recovery (ROR) 






3 


. 1 = 


Maximum ROR retries 






4 


1 = 


Command chaining RCR 






5 


• 1 = 


ROR suppressed incorrect length 






6,7 


Reserved 



L J. JL 



J 



Figure 2,24. PUB2 Table Entry Format for Tapes (Part 1 cf 2) 



Supervisor Generation and Organization 67 



T T 

Decimal | Byte | 

Displacement j Length | Description 

X J. 


T 
11 


1 


Temporary read ccunt 


12 


1 


Temporary write count 


13 


1 


Ncise record count 


14 


2 


Erase gap count 


16 


2 


Cleaner acticn ccunt 


18 


1 


Permanent read errors count 


19 


1 


Permanent write errors ccunt 


20 


1 


TIE original direction 


21 


1 


TIE opposite direction 


22 


1 


ERP counter 


23 


1 


ERP counter 1 


24 


8 


ERP work area 


32 


6 


Tape serial number 


38 


2 


Elock length 


40 


4 


User ROR command address from CSW 


44 


2 


User ROR residual count from CSW 


46 


2 


Reserved 


48 


10 


2400-series statistical data counter area 


58 


2 


Reserved 



End 2400-series: Total length 60 



t T — ' 

48 | 20 | 3410/3420 statistical data counter area 
j. j. 



End 3410/3420: Total length 68 



i 



Note: PUE2 Table is not generated for Model lib and 125, without RMSR support. 
Figure 2.24. PUB2 Table Entry Format for Tapes (Fart 2 of 2) 



68 DOS/VS Supervisor 




Supervisor Nucleus 



SIO Hook 



-+ \ Int. HooT 



L 



(Tr. Dump Hook 



^ 



^ 



f 

PDAREA 



Address of 
last byte of 
PDAREA 



To 
Interrupt 
Trace 
Hook 



7 



To 

SIO 

Hook 



To 
Transient 
Dump 
Hook 



To 
Fetch/ L 
Trace 
Hook 1 



To 
F/L Trace 
Hook 2 



PDAID 
Save and 
Information 
Area 



PDAID 
routines 



(not 
drawn) 



(not 
drawn) 



I 



Note: The PDAREA is present when PD= YES or PD= n was 
specified on the FOPT macro. The minimum size is 
1400 bytes. 



Figure 2.25. Accessing PDAID Routines 



Supervisor Generation and Organization 69 



Extent Information 



Number of 
Pages supported 



Volume ID 

for 
Page Data Set 



Mdress of 
Constant Table 

for 
Lo|ad Leveller 



11 12 



13 14 



19 20 



23 



Figure 2.26. Page Data Set Table (DPDTAE) 
Extent Information „. .(Bytes 0-11) : 
Bytes : 

0- 1: Channel and Unit number of SYSVIS 

Device 
2- 3: Internal device code of SYSVIS 

Device (offset in Page Manager 

Device Constants List) 

= 2314 
4 = 3330 
8 = 3340 

4- 7: Relative track address of Lcwer 

Limit 
8-11: Relative track address cf Upper 

Limit 

Eytes 224-227 (X'EO' - X'E3') of the System 
Communication Region (SYSCOM) ccntain the 
address of the DPDTAE. Label DPDTAB 
identifies the first byte cf the table. 

CRTTAB 



Name of 
CRT Routine 



Dummy 
Sense 
Byte 



Address of 

CRT 
Save Area 



Flag 
Byte 1 



Address of 

CRT 
Trans. Area 



Flag 
Byte 2 



Address of 
System Task 
Save Area 



CRT error 
Information 



8 



11 12 13 



15 16 17 



19 20 



27 



£li£_l_Z_ §eri s_e_I3 Y£ £ : 



Eit 0: 1 = Ccirmand reject 

1: 1 = Intervention required (only if 

Ccnscle Printer is attached) 
4: 1 = Equipment check (only if 

Ccnscle Printer is attached) 
7: 1 = Operation check 



or: this byte is used fcr saving Name 
Indicator 



*) limited channel logout 
is saved here 



Figure 2.27. CRT Constant Table (CRTTAB) 



Eyte 12 - Flag Byte 1 : 



X'80' = ERP message 

X'40' = Unit check fcr CRT 

X'20 1 = CRT Fetch bound 

X'10' = Device End simulated 

X'08' = Validation error 

X'04* = Redisplay mode 

X'02' = CRT error 



Byte 16 - Flag Byte 2 : 

X^O' = CRT busy 

X'40' = Sense byte prepared 

X'20' = End of CRT routine 

X'10' = Data already read 

X'08' = Attention pending 

X'04 f = Request pending 

X'02 1 = Attention request 

X'01' = ECJ on CRT 

Eytes 52-55 (X'34' - X'37') cf the System 
Ccirirunicaticn Region (SYSCOM) ccntain the 
address of the CRT CONSTANT Table. Label 
CRTTAB identifies the first byte cf the 
table. 



i 



70 DOS/VS Supervisor 



j System 
j Task 


"T" 
1 


Label (s) 


~T" 
I 


Contents 


1 

1 
j. 


1 

Length | 
in Eytes | 


| RAS 


1 
1 


RAS S AVAR 


1 
I 


Interrupt Information and General Registers 


T 

1 


72 | 


| PMGR 


1 

1 


PMRSAVAR 


1 


Interrupt Information and General Registers 


t 

1 


72 | 


; suwr+ 

j ERP 


1 
1 


SUPSAVAR 
ERPSAVAR 


1 
I 


Interrupt Information and General Registers 


1 

1 

- — J.- 


72 | 


| PAGEIN 


! 
i 


PGNSAVAR 


1 
I 


Interrupt Information and General Registers 


~ T 

1 

- 4-- 


72 | 


j CRT 
1 


1 




1 
I 




T 

I 

1 




1 

i 

1 


ATTEUF 


1 
1 


Attention Buffer 


T 

1 


80 | 


i 

i 

| 


SYSTEMSV(+8) 


1 
I 




T 

1 

i 


72 | 


1 

i 

| 


CRTSAVARC+8) 


1 
1 


Interrupt Information and General Registers 


t 

1 

— 4-- 


72 | 


1 

i 

1 


CSAVEAR 


1 
I 




t 

1 

-. J.- 


28 | 


1 

1 
1 


SCRIMG 


1 
i 


Euffer for Screen Image 


T 

1 

±_ 


634 | 


1 

i 

1 


CRTCCW 


1 
| 


Constants Needed for CCW Processing 


t 

1 

l 


47 | 


1 

1 
1 


CRTFLGHC 


1 
1 




T 

1 


38 | 


1 

i 

1 


PARTRED 


1 
1 


Constants Used by CRT Redisplay Feature 


t 

1 

- J. 


40 | 


1 

i 

1 


SEGVALO 


1 
1 




T 

1 

I _ 


37 | 


1 

1 


SCRNCTL 


1 


Screen Ccntrcl Table 


t 

1 


33 | 



Figure 2,2 8. System Task Save Areas and CRT Constants 



Supervisor Generation and Organization 71 



ASCII to EBCDIC Correspondence (0/0 to. 


3 15) 










ASCII 


EBCDIC 




Character 


Col j Row 


Bit 
Pattern 


Col j Row 


Bit 
Pattern 


Comments 


(in Hex) 


NUL 


[ 


0000 ! 0000 


| 


0000 j 0000 




SOH 


1 


0000 


i oooi 


1 


0000 | 0001 




STX 


1 2 


0000 


I 0010 


2 


0000 | 0010 




ETX 


| 3 


0000 


1 0011 


3 


0000 1 0011 




EOT 


| 4 


0000 


1 0100 


3 7 


0011 , 0111 




ENQ 


| 5 


0000 


1 0101 


2 D 


0010 1101 




ACK 


6 


0000 


1 0110 


2 E 


0010 1110 




BEL 


7 


0000 


1 0111 


2 1 F 


0010 1 1111 




BS 


8 


0000 


1 1000 


1 1 6 


0001 1 0110 




HT 


1 9 


0000 


1 1001 


| 5 


0000 1 0101 




LF 


| 10 


0000 


1010 


2 1 5 


0010 | 0101 




VT 


| n 


0000 j 


|_ 1011 


| B 


0000 | 1011 




FF 


1 12 


0000 


| 1100 


| c 


0000 I 1100 




CR 


13 


0000 


1101 


| D 


0000 1101 




SO 


14 


0000 


1110 


1 E 


0000 1110 




SI 


15 


0000 


mi 


1 F 


oooo mi 




DLE 


1 1 


0001 


0000 


1 


0001 ■ 0000 




DC1 


1 • 1 


0001 


0001 


1 1 


0001 ■ 0001 




DC2 


1 1 2 


0001 


0010 


1 | 2 


oooi i ooio 




DC3 


1 1 3 


0001 


0011 


1 | 3 


0001 1 0011 




DC4 


1 | 4 


0001 


0100 


3 | C 


0011 1 1100 




NAK 


1 | 5 


0001 


0101 


3 1 D 


0011 | 1101 




SYN 


1 | 6 


0001 


0110 


3 2 


0011 I 0010 




ETB 


1 7 


0001 


0111 


2 6 


0010 | 0110 




CAN 


1 ' 8 


0001 


1000 


18 


0001 | 1000 




EM 


1 1 9 


0001 


1001 


1 1 9 


0001 I 1001 




SUB 


1 [ 10 


0001 


1010 


3 1 F 


oon | mi 




ESC 


1 | 11 


0001 


1011 


2 1 7 


0010 0111 




FS 


1 I 12 


0001 


1100 


1 1 c 


0001 1100 




GS 


1 i 13 


0001 


1101 


1 1 D 


0001 ■ 1101 




RS 


1 14 


0001 


1110 


1 1 E 


0001 1 1110 




US 


1 15 


0001 


mi 


1 1 F 


oooi i mi 




SP 


2 


0010 


0000 


4 1 


0100 1 0000 




1 


2 1 


0010 


0001 


4 1 F 


0100 1 1111 


Logical OR 


ii 


2 2 


0010 


0010 


7 1 F 


oin mi 




# 


2 3 


0010 


0011 


7 1 B 


0111 1 1011 




$ 


2 I 4 


0010 


0100 


5 | B 


0101 I 1011 




% 


2 1 5 


0010 


0101 


6 1 C 


0110 | 1100 




& 


2 1 6 


0010 


0110 


5 1 


0101 , 0000 




■ 


2 1 7 


0010 


0111 


7 D 


0111 1101 




( 


2 | 8 


0010 


1000 


4 D 


0100 1101 




) 


2 9 


0010 


1001 


5 ' D 


0101 1101 




* 


2 10 


0010 


1010 


5 1 C 


0101 1100 




+ 


2 ■ 11 


0010 


1011 


4 1 E 


0100 1110 




/ 


2 | 12 


0010 


1100 


6 | B 


0110 1011 




jm 


2 1 13 


0010 


1101 


6 | 


ono ; 0000 


Hyphen, Minus 




2 1 14 


0010 


1110 


4 ; B 


0100 1011 




/ 


2 I 15 


0010 


1111 


6 | 1 


0110 ■ 0001 







3 I 


0011 


0000 


F | 


11 1 1 1 0000 




1 


3 1 1 


0011 


0001 


F 1 1 


mi i oooi 




2 


3 1 2 


0011 


0010 


F | 2 


mi I ooio 




3 


3 3 


0011 


0011 


F 1 3 


mi 1 oon 




4 


3 4 


0011 


0100 


F 1 4 


mi l oioo 




5 


3 1 5 


0011 


0101 


F 1 5 


mi l oioi 




6 


3 1 6 


0011 


0110 


F | 6 


mi i ono 




7 


3 1 7 


0011 


0111 


F | 7 


mi l oin 




8 


3 1 8 


0011 


1000 


F | 8 


mi i iooo 




9 


3 | 9 


0011 


1001 


F 1 9 


nn 1 iooi 






3 1 10 


0011 


1010 


7 j A 


0111 1 1010 




• 


3 1 11 


0011 


1011 


5 . E 


0101 | mo 




< 


3 12 


0011 


1100 


4 C 


0100 1 noo 




= 


3 13 


0011 


1101 


7 E 


oin mo 




> 


3 14 


0011 


1110 


6 E 


ono mo 




? 


3 ! 15 


0011 


mi 


6 ! F 


ono i nn 


.._ 



I 



Figure 2.29. ASCII Translation Tables (Part 1 cf 4) 



72 DOS/VS Supervisor 



ASCII to EBCDIC Correspondence 


(4/0 to 


7/15) 














ASCII 


EBCDIC 




Character 


1 

Co, 


Row 


Bit 
Pattern 


Col 


Row 


Bit 
Pattern 


Comments 


(in r 


tex) 


<s> 


4 





0100 


0000 


7 | 


C 


0111 


1100 




A 


4 


1 


0100 


0001 


C | 


1 


1100 1 


0001 




B 


4 


2 


0100 


0010 


c 


2 


1100 1 


0010 




C 


4 


3 


0100 


0011 


c ' 


3 


1100 1 


0011 




D 


4 


4 


0100 


0100 


c i 


4 


1100 | 


0100 




E 


4 


5 


0100 


0101 


c 


5 


1100 1 


0101 




F 


4 


6 


0100 


0110 


c 


6 


1100 , 


0110 




G 


4 


7 


0100 


0111 


C 1 


7 


1100 


0111 




H 


4 


8 


0100 


1000 


c 


8 


1100 ' 


1000 




1 


4 


9 


0100 


1001 


c 


9 


1100 


1001 




J 


4 


10 


0100 


1010 


D 


1 


1101 


0001 




K 


4 


11 


0100 


1011 


D 


2 


1101 


0010 




L 


4 


12 


0100 


1100 


D 


3 


1101 


0011 




M 


4 


13 


0100 


1101 


D 


4 


1101 


0100 




N 


4 


14 


0100 


1110 


D 


5 


1101 


0101 




O 


4 


15 


0100 


1111 


D 


6 


1101 


0110 




P 


5 





0101 


0000 


D . 


7 


1101 


0111 




Q 


5 


1 


0101 


0001 


D j 


8 


1101 


1000 




R 


5 


2 


0101 


0010 


D 


9 


1101 


1001 




S 


5 


3 


0101 


0011 


E 


2 


1110 


0010 




T 


5 


4 


0101 


0100 


E 


3 


1110 


0011 




U 


5 


5 


0101 


0101 


E 


4 


1110 


0100 




V 


5 


6 


0101 


0110 


E 


5 


1110 


0101 




w 


5 


7 


0101 


0111 


E 


6 


1110 


0110 




X 


5 


8 


0101 


1000 


E 


7 


1110 


0111 




Y 


5 


9 


0101 


1001 


E 


8 


1110 


1000 




z 


5 


10 


0101 


1010 


E 


9 


1110 


1001 




c 


5 


11 


0101 


1011 


4 


A 


0100 


1010 




\ 


5 


12 


0101 


1100 


E 





1110 


0000 


Reverse Slant 


3 


5 


13 


0101 


1101 


5 


A 


0101 


1010 




— i 


5 


14 


0101 


1110 


5 


F 


0101 


1111 


Loaical NOT 




5 


15 


0101 


1111 


6 


D 


0110 


1101 


Underscore 


\ 


6 





0110 


0000 


7 


9 


0111 


1001 


Grave Accent 


a 


6 


1 


0110 


0001 


8 


1 


1000 


0001 




b 


6 


2 


0110 


0010 


8 


2 


1000 


0010 




c 


6 


3 


0110 


0011 


8 


3 


1000 


0011 




d 


6 


4 


0110 


0100 


8 


4 


1000 


0100 




e 


6 


5 


0110 


0101 


8 


5 


1000 


0101 




f 


6 


6 


0110 


0110 


8 


6 


1000 


L ono 




9 


6 


7 


0110 


0111 


8 


7 


1000 


I 0111 




h 


6 


8 


0110 


1000 


8 


8 


1000 


1000 




i 


6 


9 


0110 


1001 


8 


9 


1000 


1 1001 




i 


6 


10 


0110 


1 1010 


9 


1 


1001 


1 0001 




k 


6 


11 


0110 


1011 


9 


2 


1001 


| 0010 




I 


6 


12 


0110 


1100 


9 


3 


1001 


• 0011 




m 


6 


13 


0110 


1101 


9 


4 


1001 


1 0100 




n 


6 


14 


0110 


1 1110 


9 


5 


1001 


1 0101 




o 


6 


15 


0110 


mi 


9 


6 


1001 


1 0110 




P 


7 





0111 


0000 


9 


7 


1001 


1 0111 




9 


7 


1 


0111 


0001 


9 


8 


1001 


1 1000 




r 


7 


2 


0111 


0010 


9 


9 


1001 


1001 




s 


7 1 


3 


0111 


0011 


A 


2 


1010 


1 0010 




t 


7 


4 


0111 


0100 


A 


3 


1010 


0011 




u 


7 


5 


0111 


0101 


A 


4 


1010 


0100 




V 


7 


6 


0111 


| 0110 


A 


5 


1010 


0101 




w 


7 


7 


0111 


0111 


A 


6 


1010 


0110 




X 


7 


8 


0111 


1000 


A 


7 


1010 


0111 




Y 


7 


9 


0111 


1001 


A 


8 


1010 


1000 




z 


7 


10 


0111 


1010 


A 


9 


1010 


1 1001 




( 


7 


11 


0111 


1 101 1 


c 





1100 


I 0000 




1 


7 


12 


0111 


1 1100 


6 


A 


0110 


1010- 


Vertical Line 


> 


7 


13 


0111 


1101 


D 





1101 


0000 






7 


14 


0111 


1110 


A 


1 


1010 


0001 


Tild. 


DEL 


7 j 


15 


0111 


1111 





7 


0000 


1 0111 





Figure 2.29. ASCII Translation Tables (Part 2 cf 4) 



Supervisor Generation and Organization 73 



EBCDIC to ASCII Corres 


pondence (X'OO 1 


o X'82') 










EBCDIC 


ASCII 




Character 


1 

Col | Row 


Bit 
Pattern 


Col | Row 


Bit 
Pattern 


Comments 


(in Hex) 


NUL 


j 


0000 [ 0000 


1 


0000 


0000 




SOH 


1 1 


0000 0001 


1 1 


0000 


0001 




STX 


2 


0000 0010 


I 2 


0000 


0010 




ETX 


3 


0000 1 0011 


3 


0000 


oou 




HT 


5 


0000 I 0101 


9 


0000 


1001 




DEL 


1 7 


0000 I 0111 


7 1 15 


0111 


1111 




VT 


1 B 


0000 1 1011 


| 11 


0000 


1011 




FF 


| C 


0000 , 1100 


| 12 


0000 


1100 




CR 


1 D 


0000 1101 


13 


0000 


1101 




SO 


1 E 


0000 1110 


1 14 


0000 


1110 




SI 


1 F 


0000 1 1111 


| 15 


0000 


mi 




DLE 


1 1 o 


0001 | 0000 


1 1 


0001 


0000 




DC1 


1 I 1 


0001 1 0001 


1 1 


0001 


0001 




DC2 


1 2 


0001 0010 


1 1 2 


0001 


0010 




DC3 


1 3 


0001 1 0011 


1 1 3 


0001 


0011 




BS 


1 ' 6 


0001 1 0110 


1 8 


0000 


1000 




CAN 


1 1 8 


0001 | 1000 


1 8 


0001 


1000 




EM 


1 | 9 


0001 , 1001 


1 9 


0001 


1001 




FS 


1 1 C 


0001 1100 


1 1 12 


0001 


1100 




GS 


1 D 


0001 i 1101 


1 | 13 


0001 


1101 




RS 


1 E 


0001 | 1110 


1 I 14 


0001 


1110 




US 


1 1 F 


0001 | 1111 


1 15 


0001 


1111 




LF 


2 1 5 


0010 | 0101 


10 


0000 


1010 




ETB 


2 I 6 


0010 | 011Q 


1 ' 7 


0001 


0111 




ESC 


2 7 


0010 j 0111 


i i ii 


0001 


1011 




ENQ 


2 D 


0010 1101 


| 5 


0000 


0101 




ACK 


2 E 


0010 1110 


, 6 


0000 


0110 




BEL 


2 F 


0010 1 1111 


7 


0000 


0111 




SYN 


3 1 2 


0011 1 0010 


1 1 6 


0001 


0110 




EOT 


3 | 7 


0011 i 0111 


| 4 


0000 


0100 




DC4 


3 1 C 


0011 1 1100 


1 I 4 


0001 


0100 




NAK 


3 D 


0011 1 1101 


1 5 


0001 


0101 




SUB 


3 1 F 


0011 | 1111 


1 1 10 


0001 


1010 




SP 


4 I 


0100 , 0000 


2 1 


0010 


0000 




c 


4 1 A 


0100 1010 


5 | 11 


0101 , 


1011 






4 B 


0100 1 1011 


2 j 1.4 


0010 i 


1110 




< 


4 • C 


0100 | 1100 


3 1 12 


0011 


noo 




( 


4 I D 


0100 I 1101 


2 I 8 


0010 


1000 




+ 


4 | E 


0100 1110 


2 | 11 


0010 


1011 




1 


4 1 F 


oioo 1 mi 


2 1 


0010 


0001 


Logical OR 


& 


5 , 


0101 | 0000 


2 1 6 


0010 


0110 




3 


5 } A 


0101 1 1010 


5 1 13 


0101 


1101 




S 


5 1 B 


0101 ' 1011 


2 1 4 


0010 


0100 




* 


5 1 C 


0101 I 1100 


2 i 10 


0010 


1010 




) 


5 1 D 


0101 1 1101 


2 9 


0010 


1001 






5 E 


0101 1110 


3 1 11 


0011 


1011 




-r 


5 F 


oioi mi 


■5 1 14 


0101 


mo 


Logical NOT 


. 


6 I 


0110 1 0000 


2 | 13 


0010 


1101 


Hyphen, Minus 


/ 


6 1 1 


0110 | 0001 


2 j 15 


0010 


1111 




J 


6 | A 


0110 1 1010 


7 12 


0111 


1100 


Vertical Line 




6 1 B 


0110 1011 


2 ' 12 


0010 


1100 




% 


6 C 


0110 ' 1100 


2 1 5 


0010 


0101 






6 | D 


0110 1 1101 


5 | 15 


0101 


mi 


Underscore 


> 


6 1 E 


0110 | 1110 


3 i 14 


0011 


1110 







6 1 F 


ono 1 mi 


3 15 


0011 


1111 




\ 


7 I 9 


0111 1001 


6 1 


0110 


0000 


Grave Accent 




7 . A 


0111 1 1010 


3 | 10 


0011 


1010 




* 


7 B 


0111 | 1011 


2 1 3 


0010 


oon 




<a 


7 ■ C 


0111 1 1100 


4 


0100 


0000 






7 1 D 


0111 1101 


2 7 


0010 


0111 




- 


7 * E 


oni nio 


3 ' 13 


0011 


1101 




» 


7 I F 


oin 1 mi 


2 1 2 


0010 


0010 




a 


8 I 1 


1000 | 0001 


6 | 1 


0110 


0001 




b 


8 I 2 


1000 | 0010 


6 J. 2 


0110 


0010 





I 



Figure 2.29. ASCII Translation Tatles (Part 3 of 4) 



74 DOS/VS Supervisor 



EBCDIC to ASCII Correspondence 


(X'83' f 


o X'F9') 














EBCDIC 


ASCII 




Character 


Col 


Row 


Bit 
Pattern 


Col 1 


Row 


Bit 
Pattern 


Comments 


(in 


Hex) 


c 


8 


3 


1000 1 


0011 


6 | 


3 


0110 


0011 




d 


8 


4 


1000 1 


0100 


6 


4 


0110 


0100 




e 


8 


5 


1000 1 


0101 


6 


5 


0110 


0101 




f 


8 


6 


1000 1 


0110 


6 


6 


0110 


0110 




9 


8 


7 


1000 


0111 


6 


7 


0110 


0111 




h 


8 


8 


1000 


1000 


6 


8 


0110 


1000 




i 


8 


9 


1000 


1001 


6 1 


9 


0110 


1001 




i 


9 


1 


1001 


, 0001 


6 1 


10 


0110 


1010 




k 


9 


2 


1001 


oolo 


6 ! 


11 


0110 


1011 




1 


9 


3 


1001 


0011 


6 | 


12 


0110 


1100 




m 


9 


4 


1001 


0100 


6 | 


13 


0110 


1101 




n 


9 


5 


1001 


0101 


6 1 


14 


0110 


1110 




o 


9 


6 


1001 


0110 


6 


15 


0110 


1111 




P 


9 


7 


1001 


0111 


7 





0111 


0000 




q 


9 


8 


1001 


1000 


7 ' 


1 


0111 


0001 




r 


9 


9 


1001 


1001 


7 


2 


0111 


0010 




~ 


A 


1 


1010 


0001 


7 


14 


0111 


mo 


Tilde 


s 


A 


2 


1010 


0010 


7 


3 


0111 


0011 




t 


A 


3 


1010 


0011 


7 


4 


0111 


0100 




u 


A 


4 


1010 


0100 


7 


5 


0111 


0101 




V 


A 


5 


1010 


0101 


7 


6 


0111 


0110 




w 


A 


6 


1010 


0110 


7 


7 


0111 


oni 




X 


A 


7 


1010 


0111 


7 


8 


0111 


1000 




y 


A 


8 


1010 


1000 


7 


9 


0111 J 


1001 




X 


A 


9 


1010 


1001 


7 


10 


0111 


1010 




{ 


C 





1100 


0000 


7 


m 


0111 


1011 




A 


C 


1 


1100 


0001 


4 


1 


0100 


0001 




B 


C 


2 


1100 


0010 


4 


2 


0100 


0010 




C 


C 


3 


1100 


0011 


4 


3 


0100 


0011 




D 


C 


4 


1100 


0100 


4 


4 


0100 


0100 




E 


C 


5 


1100 


0101 


4 


5 


0100 


0101 




F 


C 


6 


1100 


0110 


4 


6 


0100 


0110 




G 


C 


7 


1100 


0111 


4 


7 


0100 


0111 




H 


C 


8 


1100 


1000 


4 


8 


0100 


1000 




1 


C 


9 


1100 


1001 


4 


9 


0100 


1001 




> 


D 





1101 


0000 


7 


13 


0111 


1101 




J 


D 


1 


1101 


\ 0001 


4 


10 


0100 


1010 




K 


D 


2 


1101 


0010 


4 


11 


0100 


1011 




L 


D 


3 


1101 


0011 


4 


12 


0100 


1100 




M 


D 


1 4 


1101 


0100 


4 


13 


0100 


1101 




N 


D 


5 


1101 


0101 


4 


14 


0100 


1110 




O 


D 


1 6 


1101 


0110 


4 


15 


0100 


1111 




P 


D 


, 7 


1101 


0111 


5 





0101 


0000 




Q 


D 


8 


1101 


1000 


5 


1 


0101 


0001 




R 


D 


1 9 


1101 


1001 


5 


2 


0101 


0010 




\ 







1110 


0000 


5 


12 


0101 


1 1100 


Reverse Slant 


S 




1 2 


1110 


0010 


5 


3 


0101 


1 0011 




T 




3 


1110 


0011 


5 


4 


0101 


0100 




U 




4 


1110 


0100 


5 


5 


0101 


1 0101 




V 




1 5 


1110 


0101 


5 


6 


0101 


0110 




w 




1 6 


1110 


0110 


5 


7 


0101 


1 0111 




X 




1 7 


1110 


0111 


5 


8 


0101 


1000 




Y 




1 8 


1110 


1000 


5 


9 


0101 


1001 




z 




1 9 


1110 


1001 


5 


10 


0101 


1010 









1 


mi 


oooo 


3 





0011 


0000 




1 




1 


mi 


0001 


3 


1 


0011 


0001 




2 




2 


nn 


0010 


3 


2 


0011 


1 0010 




3 




3 


nn 


0011 


3 


3 


0011 


1 0011 




4 




4 


nn 


0100 


3 


4 


0011 


1 0100 




5 




5 


nn 


0101 


3 


5 


0011 


1 0101 




6 




6 


nn 


0110 


3 


6 


0011 


I 0110 




7 




7 


nn 


0111 


3 


7 


0011 


| 0111 




8 




8 


]\\) 


1000 


3 


8 


0011 


I 1000 




9 




9 


nn 


1001 


3 J 


9 


0011 


1001 





Figure 2.29. ASCII Translation Tafcles (Part 4 of 4) 



Supervisor Generation and Organization 75 



I 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



TASK SELECTION 



The dispatching of system and user tasks is 
controlled by several fields in the 
supervisor. The SELECT byte, which is the 
second byte in the System Task Identifica- 
tion Field (STID), and the first part of 
the fields TRTFLD and TIDFLD are used to 
select system tasks. The second part of 
TRTFLD (labeled TRFLD) and the seccnd part 
of TIDFLD (labeled MVCFLD) are required for 
user task selection. 



The field TRTFLD contains the PIB flags 
cf the tasks, in descending crder of task 
priority, while the field TIDFLD is used to 
store the ID or PIK of a task. Refer to 
Figure 3.1 for the layout of the contiguous 
fields TRTFLD and TIDFLD. 

To actually select a task, an additional 
table, TRTMASK, is required. This table 
gates resources and contains the various 



TRTFLD 



| TRFLD 



System Task PIB Flags j User PIB Flags 

| (after TR 
| instruction) 



TIDFLD 



System Task ID 



I MVCFLD 



I 

| User Task ID 

I 
I 



|. T T T T ^ — T 1 T T T 1 T T T T T 1 T T T 1 

| 87| 87| 87 | 87 | 87 | 87 | xx | xx | xx | xx | 01| 02 | 06 | 03 | 04| 05 | 00| 30 | 20 | 10 | 

I X X X X X X X X X X X X X X X ^.X„ X X X J 

RAS PMGR PGN SUPVR CRT ERP RAS PMGR PGN SUPVR CRT ERP 



Figure 3.1. TRTFLD, TRFLD, TIDFLD, and MVCFLD, assuming that NPARTS=3 and AP=NO 



h 



Label 



Generated if 



Related 

Flags in 

PIB* 



Function 



T 1 

Length 

in 
Bytes 



H 



TRTAM 



AP=YES 
and 
VSAM=YES 



X'3D' 

through 

X'45' 



Used by VSAM to set partition PFIX-bcund 



h 



10 



TRTFX 



AP=YES 
and 
PFIX=YES 



X - 47' 

through 

X'UF' 



Used by PFIX routines to set partition PFIX-bound 



h 



10 



TRTEXT 



AP=YES 



X'51' 

through 

X'53' 



Used to gate SVCs 38, 41, and 42 



h 



16 



TRTLL 



NPARTS>1 



X'61' 

through 

X f 6F' 



Used by load leveler to deactivate partition; gate 
SVC 35; used for TFIX and IDRA 



16 



TRTSYS 



Always 



X'71' 

through 

X'7D' 



h 



Used to gate SVC 58; to seize systeir; indicates 
•no buffer available', 'all pages fixed', 
•channel queue full', 'console buffer table full* 
(only if CBF=n) 



16 



TRTMSK 



Always 



X'80' 

through 

X'87 f 



Mask for task selection. Indicates LTA and PTA in 
use and common wait condition 



♦See also Figure 2.7 

Figure 3.2. Resource Table (TRTMASK) 



Task Selection 77 



selection masks used to scan the PIB flags, 
The structure of TRTMASK is shown in 
Figure 3.2. 



SYSTEM TASK SELECTION 



Whenever exit is taken through 
Exit Routine , the SELECT byte ( 
3.3) is tested. If it is not z 
is, a system task is active, th 
task is dispatched immediately 
SELECT byte is zero, TRTFLD is 
a dispatchable system task. If 
found, it is dispatched by the 
Dispatcher. Otherwise TRFLD is 
a .dispatchable user task. The 
enters a wait state if neither 
a user task is ready to run. 



the General 
see Figure 
ere, that 
is system 

If the 
scanned for 

a task is 
System Task 

scanned for 
system 
a system nor 



"T" 

I 
-JL- 



Byte 
1 



Figure 3.3. System Task Identification 
Field (STID) 



INTERRUPTION OF A SYSTEM TASK 



When a system task is interrupted, the 
Partition Identification Key (PIK) of the 
serviced user task is stcred in the System 
Task Block, and the Old FSW and the general 
registers are saved in the System Task Save 
Area. 

If Jot Accounting is supported, the Job 
Accounting ID is also saved in the STB. 

If the interruption is processed without 
initiating another system task, return is 
made to the system task selection in the 
General Exit Routine which, en finding that 
the selected task was interrupted, restores 
the entry registers and returns control 
immediately to the interrupted task. 

In processing the interruption, another 
system task having a higher priority may be 
activated. When the higher priority task 
terminates, control is returned to the 
interrupted system task at the point where 
it was interrupted. 



Byte 0: Always zero 

Byte 1 - Select Byte: 

X'OO* = No System Task active 

X'Ol' = RAS active 

X , 02' = PMGR active 

X'03' = SUPVR active 

X'OU' = CRT active 

X'05 f = ERP active 

X 9 06 9 = PAGEIN active 

The STID field is located in SYSCOM. 



DISPATCHING A SYSTEM TASK 



To dispatch a system task, the supervisor 
sets up an address in the System 
Communication Region (SYSCOM) which points 
to the system task block (see Figure 3.4) 
for the selected system task. The 
Partition Identification Key (PIK) of the 
serviced user task is then moved from the 
system task block (from field SYSPIK) to 
the Background Communications Regicn 
(BGCOMREG) . If AP=YES is specified, the 
TIK is retrieved from SYSPIK. The TIK is 
then used to obtain the PIK of the serviced 
user task from the user's PIB extension. 
The PSW and the general registers are 
restored from the System Task Save Area. 

If job accounting is supported, the job 
accounting ID is retrieved from the system 
task block and moved to the Job Accounting 
Interface Table (ACCTCCMN) . 



USER TASK SELECTION 



If no system task is ready to run, the 
General Exit Routine tries tc dispatch a 
user task. Dispatching of user tasks is 
similar tc that of system tasks. 

Two fields, TRFLD and MVCFLD (see Figure 
3.1), are used to select a dispatchable 
user task. The TRFLD contains initially 
all zeros. It is used later on to store 
the translated PIB flags. 

The first byte of the MVCFLD contains 
the key of the attention task (X'OO'), and 
the remaining bytes contain the keys of the 
partitions in descending order of priority. 



The lengths of both fields are equal to 
NPARTS plus 1 if AP=NO. If AP=YES, the 
lengths of MVCFLD and TRFLD are 17 bytes, 
the last of which is always zero. 
Initially, the high-order MVCFLD bytes 
contain the same values as for the 
supervisor without AP, and the remaining 
bytes are zeros. The bytes that are not 
used for the maintask partition keys are 
available for subtask keys, each of which 
is inserted immediately before the key of 
the maintask to which it is being attached. 
The first subtask attached therefore has 
priority fcr selection within its partition 
until it is detached, whereupon its key in 
the MVCFLD field is overlaid by moving the 
contents of all the lower-order bytes one 
byte higher. 



78 DOS/VS Supervisor 



In the 
values in 
correspond 
to referen 
translated 
field. Th 
the status 
refers (re 
Expansions 
are then u 
Figure 3.2 
TRTMSK fie 
task to wh 
to run . 



task selection routi 
the MVCFLD bytes are 
ing TRFLD bytes and 
ce the PIB flag byte 

sequentially into t 
e flag byte of each 

of the program to w 
fer to the section 
") . The flag bytes 
sed to scan the TRTM 
) . When „any of the 
Id is not zero, the 
ich that PIB refers 



ne, the 

rrcved tc the 
are then used 
s which are 
he TRFLD 
PIB indicates 
hich that PIE 
FIB Flag 
in the TRFLD 
SK field (see 
bytes in 
prcgrair cr 
is selected 



RASBLOCK 



PMRBLOCK 



SUPBLOCK 



CRTBLOCK 



ERPBLOCK 



PGNBLOCK 



- Address of PIB Flag for System Task 
Reserved 



<rr 



-Job Accounting ID 

7 



L_ 



Address of System 
Task Save Area 



PIK or TIK of Serviced User Task 



Figure 3.4. Systeir Task Blocks 



EXAMPLE OF USER TASK SELECTION 

Figure 3,5 illustrates how a user task is 
selected. It is assumed that nc systeir 
task was ready to run and that the 
supervisor was generated with NFARTS=3 and 
AP=NO. 



Nctes: Bytes 152-155 (X'98 1 - X'9E') cf 
the Systeir Ccirrrunicaticn Region (SYSCOM) 
contain the address cf the first Systeir 
Task Blcck. 

♦These labels identify the first byte cf 
the appropriate corresponding Text Blcck. 



Task Selection 79 



TRFLD 








MVCFLD 






| J 1 I 

■ 1 1 


2 


3 


TIDFLD 


|o jl 


1 
2 ' 


3 J 


1 ' ' 

| XX 1 XX 1 

1 1 1 


XX 


XX 


1 1 
1 00 1 30 
1 l 


20 


10 ! 




The task selection 
routine moves the PIKs 
from MVCFLD to TRFLD. 



Each byte of the TRFLD is 
now used to reference a 
PIB flag byte: 

references 1st flag byte of 
BG PIB (lowest priority) 

references 1st flag byte of 
F2 PIB (third priority) 

references 1st flag byte of 
F1 PIB (second priority) 

references 1st flag byte of 
Attention PIB (highest 
priority) 



The referenced PIB flag byte is translated into TRFLD. 

It is assumed that the following values are translated into TRFLD: 



TRFLD 








MVCFLD 






i° i 1 1 


2 » 


3 j 


TIDFLD 


| 1 


2 


3 1 


| 81 | 80 i 
I 1 1 


83| 


85 | 


00 | 30 


20 


10 J 



The bytes of the TRFLD field reference the bytes of the TRTMSK 
which is part of the table TRTMASK (see Figure 3.2). TRTMSK 
has the following format: 



I 



r- TRTMSK 

TRTLTK 



00 



TRTRUN 



83 



00 



83 



(00 when LTA 
is occupied) 



TRTPTA 



TRTBND-i 



83 



83 



83 



(00 when PTA 
is occupied) 



00 | 



Figure 3,5. Example of User Task Selection (Part 1 of 2) 



80 DOS/VS Supervisor 



When the first nonzero TRTMSK function byte is referenced the address of the TRFLD argument byte is inserted in 
general register 1 which is then incremented by the length of the TRFLD field so that register 1 points to the 
corresponding constant in the MVCFLD field. In the example, it is assumed that TRTMSK has the following values: 

TRFLD MVCFLD TRTMSK 

T" 



















1 


1 


I 

i 2 
I 


1 » 
1 3 1 
1 i 





i 

1 

1 


2 


3 i 

1 


! 81 


80 


1 

1 83 
1 


i 1 
' 85 1 
f I 


00 


30 

I 


20 

1 


1 

10 < 

I L 




The sequence of events is: 

1. TRFLD byte references TRTMSK byte 1. Since the latter 
is zero, there is no selection (Attention routine LTA— bound 
and LTA is occupied). 

2. TRFLD byte 1 references TRTMSK byte 0. Since the latter 

is zero, there is no selection (no program or task in F1 partition), 

3. TRFLD byte 2 references TRTMSK byte 3. Since the latter 
is nonzero (X'83') selection takes place: 

a. General register 1 points to TRFLD byte 2. 

b. The length of TRTFLD is added to register 1 which then 
points to MVCFLD byte 2. 

c. The partition key for the selected program (F2 partition) is 
moved from MVCFLD byte 2 to the low-order byte of the 
partition identification key (PIK) in the BG communication 
region (BGCOMREG). 

Figure 3.5. Example of User Task Selection (Part 2 of 2) 



DAT DISPATCHER 



Eefcre a user task is dispatched, the task 
selection routine tests whether control has 
to be transferred to the DAT Dispatcher 
(bits 1-7 of PIB DAT Flag are net zero). 
The DAT Dispatcher selects the routine to 
be called using the PIB DAT Flag byte. 
Execution of one of the following routines 
iray be necessary: 



EXTRETRN (PIB DAT Flag = X'08') - 
Service page fault interrupt caused by 
external interrupt handler fcr selected 
task. 



DETASK (PIB DAT Flag = X'10') - The 
selected task belongs to a deactivated 
partition. Deactivation cf this task 
was delayed. The DETASK routine 
deactivates this task. 



• SVRETURN (PIB DAT Flag = X'01') - Return 
to reenterable supervisor routine. 

• INITSVC (PIB DAT Flag = X'OS') - Open 
SVC routine previously gated and return 
to interrupted SVC. 

• MOVECCB (PIB DAT Flag = X'01 1 ) - Move 
CCB which could not be copied back after 
completion of channel program 
translation because the page containing 
the virtual CCB was not in real storage. 



After execution, the PIB DAT Flag for the 
corresponding routine is reset tc zero and 
return is made either 



directly tc the interrupted SVC routine 
(SVRETURN and INITSVC), or 



tc task selection (MOVECCE, EXTRETRN, 
and DETASK) . 



Task Selection 81 



User 


svco 


Page Fault 


Page Manager 


Task 


Routine 


First Level 


System Task 








Interrupt 










Handler 




< 


> — 


— 1 


f 







User 
Task 



SVC 42 
Routine 



ENQ 



Page Fault 
First Level 

Interrupt 
Handler 



Page Manager 
System Task 



page , 

fault i-£ -• 

PFFLIH J 



Page . 

fault*- £ 

PFFL 



• PostCSVRETin 
PIB DAT flag 
(return to reenter- 
able supervisor 
routine) 

• Store interrupt 
status in user 
task's system 
save area 

• Enqueue page 
request to page 
queue 



may be via 
task selection 



via task selection 
SV RETU RN T" "(DAT dTspatcrier)" 



-LIH 1 



•Post CSV RET and 
CINITSVCinPIB DAT 
flag (return to serially 
reusable, gated, super- 
visor routine) 

• Close gate to routine 
(X'OO' in appropriate 
TRTMASK byte) 

•Save RID (in PIB) 

• Store interrupt status 
in user task's system 
save area 

• Enqueue page request 
to page queue 



possibly via 
task selection" 



Set RID equal 
to X'04' 
Reset CSV RET 
Load interrupt 
status from 
user task's 
system save area 



T^J 



via task selection I 
I N I TS V C T" "TO ATd i spatche rf 



• Set RID to saved value 

• Open gate to routine 
(X'83' in the appropriate 
TRTMASK byte) 

• Reset CSV RET and 
CINITSVC 

• Load interrupt status 
from user task's 
system save area 



via task 
selection 



Flow of control when page fault 
occurs in reenterable disabled 
supervisor routine (RID=X'04') 
(e.g., EXCP, WAIT). 
Note: When page fault occurs in 
SVC 29/ SVC 47 supervisor 
routines the user task is forced 
to reissue the SVC (RID=X'10'). 



ZT7[ 



I 



via task . 

*-. — : "* 

selection 



Flow of control when page fault occurs 
in serially reusable (gated) disabled 
supervisor routine (RID ^X'BC) 
(e.g., ENQ, DEQ) 



Figure 3.6. Examples cf Dispatching by DAT Figure 3.6. 
Dispatcher (Part 1 of 3) 



Examples cf Dispatching by DAT 
Dispatcher (Part 2 cf 3) 



82 DOS/VS Supervisor 



User 


SVC67 


Page Fault 


Page Manager 


Task 

i 


Routine 


First Level 

Interrupt 

Handler 


System Task 



1* PFFLIH 



Page to be PFIXed 
is not in'real storage. 
A page frame is 
reserved I 

\ 



I 5 



via^task 
Selection 



Figure 3.6. 



T 



• Post CSVRET and CINITSVC 
in PIB DAT flag (return to 
gated supervisor routine) 

• Close gate to PFIX routine 
(X'OO' in appropriate 
partition PFIX TRTMASK 
byte) 

• Save RID (in PIB) 

• Store SVC 67 rtn status 
in user task's system 
save area 

• Enqueue page request 
to page queue 



INITSVC 



I possibly via 

~task selection | 

via_taskj$election__ I 
| (DAT dispatcher) 



• Set RID to saved value 

• Open gate to PFIX 
routine (X'83' in 
appropriate partition 
PFIX TRTMASK byte) 

• Reset CSVRET and 

CINITSVC 

• Load SVC 67 routine 
status from user 
task's system save 
area 






PFFLIH 



i 



Same action taken 
as listed at 
PFFLIH above 



INITSVC 



I possibly via 

task selection | 

_via task selection I 
| (DAT dispatcher) 



Same action taken 
as listed at 
INITSVC above 



J 



~J 



Flow of control when two pages are to be 
PFIXed, both not being in real storage 

Examples of Despatching by DAT 
Dispatcher (Part 3 cf 3) 



ASYNCHRONOUS PROCESSING (AP) 



If AP=YES was specified at supervisor 
generation time, the ATTACH nacre is 
supported. When a maintask issues the 
ATTACH macrc, provided a program 
information block (PIB) is available and 
the sufctask routine and save area are in 
the same partition as the maintask, the 
supervisor builds a subtask FIE and PIB 
extension. This is achieved by copying the 
maintask FIB and PIB extension and then 
moving the subtask save area address 
specified by the ATTACH macrc intc the 
subtask PIE. If the ATTACH macrc also 
specified a termination event control block 
(ECB) address in the same partition, this 
address is moved to the subtask FIE 
extension. 



The registers in the maintask save area 
are copied into the subtask save area 
specified by the ATTACH macrc, and the TIK 
cf the subtask is moved tc the subtask save 
area. 



In the maintask save area, register is 
pointed tc the first byte teyend the 
subtask save area, and register 1 is made 
positive. 



In the subtask save area, register 1 is 
pointed to the maintask save area. 



The subtask entry point address is moved 
tc the PSW in the subtask save area and the 
subtask key (TIK) is inserted in the MVCFLD 
(See Figure 3.1) immediately befcre the 
maintask partition key. 



TIDTRT (16 bytes) 



00 00 00 00 04 



1 05 | 06 |( 



07 08 09 0A 0B 0C 0D 0E OF 



I Initially 12 Program Information Blocks Available i 

I for Subtasks in a 3-partition system. i 



Figure 3.7. TIDTRT Field 



If 4 partitions, byte 4 is zero and there 
are initially 11 subtask PIBs available; if 
5 partitions, byte 5 is also zero and there 
are 10 PIEs; if only 2 partitions, byte 3 
is X'OS* and there are 13 subtask PIEs 
initially available. 



The maintask PIB is flagged fcr subtask 
attached. 



Task Selection 83 



To indicate whether a PIE 
for a subtask that is to be 

16-byte field called TIDTRT 
3.7) is used. Each byte of 
related to a PIB. A ncnzerc 
byte indicates that the corr 
is available. The bytes of 
corresponding to partition P 
zero. These PIEs are cbvicu 
available for subtasks. Whe 
wanted for a subtask, the fc 
bits of the first available 
in the table are used (multi 
create the TIK for the subta 
equal to the displacement of 
the start of the PIB Table ( 



is available 
attached, a 
(see Figure 
this field is 

value in a 
espcnding PIB 
TIDTRT 

I3s are always 
sly net 
n a PIE is 
ur lew-order 
(ncnzerc) byte 
plied by 16) to 
sk. The TIK is 

the PIB from 
PIETAE). That 



byte in the tafcle is then made zerc tc 
indicate that the PIP is in use. 

If the subtask cannot be attached 
because nc PIE is available, the supervisor 
sets the event bit off in a supervisor 
event control block (SPVECB) , puts the 
address of this SCB in register 1 in the 
rraintask save area, makes this register 
negative, and returns tc task selection. 

A maintask that tests register 1 and 
finds it negative can wait on this register 
until a PIE becomes available through a 
subtask being detached in another 
partition . 



i 



84 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



INTERRUPT PROCESSORS 



The DOS/VS Supervisor is designed to 
operate in an IBM System/370 CPU in the 
Extended Control (EC) mode, which is 
determined by the Program Status Word bit 
12 being set ON. The format of the PSW 
(see Figure 6,22) differs from that used in 
IBM System/360. 

When processing is interrupted as a 
result of one of five possible conditicns: 

End of an I/O operation, 
Program check. 
Machine Check, 
Supervisor Call, or 
External Interrupt, 

in addition to the old Program Status Word, 
information is stored in an area of low 
real storage at IOINF, PGMINF, MCIC, 
SVCINF, or EXTINF, respectively. 

The applicable new PSW is loaded and the 
supervisor routines are entered at ENTIO, 
ENTPCK, MACHEK, ENTSVC # or ENTEXT, 
respectively. 

In most cases, the General Entry Routine 
is called. This routine saves the 
interrupt information from low real storage 
in the PI3 extension (PIB2) of the 
interrupted task, if the interrupted task 
is a user task. The registers of the 
interrupted task and the old PSW are saved 
in the appropriate system task save area 
(if system task interrupted) or in the 
appropriate partition or subtask save area 
(user main- or subtask interrupted). 

The normal exit from the supervisor is 
through the General Exit Routine which is 
entered at EXIT. System tasks have 
priority and any system task that is ready 
to run will be dispatched before any user 
task can be selected. If the task that was 
interrupted was a system task, and no 
higher priority task is dispatchable, the 
entry registers are restored and the old 
PSW is reloaded to continue processing 
without checking for any other conditions. 

If no system task is selectable, then 
the highest priority user task is 
dispatched. In a multiprogramming 
environment foreground programs have 
priority over background programs unless 
the order of priority has been changed by 
the PRTY command or the PRTY parameter of 
the FOPT macro. If the supervisor supports 
asynchronous processing, the first subtask 
attached has priority over all other tasks 
in the same partition until it is detached. 



A main task has a lower priority than any 
of its subtasks. 



I/O INTERRUPT 



Microprogramming detects an I/O interrupt 
and loads the I/O new PSW. Refer to the 
section "I/O Interrupt Handler" in 
"Physical Input/Output System" and Charts 
06.1 and 06.2. 



PROGRAM CHECK INTERRUPT 



When a prcgram check is encountered, 
microprogramming loads the program check 
new PSW (which has the DAT bit turned off, 
that is, DAT is deactivated). 

The interrupt code is first checked to 
see if the program check is a page 
translation exception (page fault) . If the 
prcgram check is a page fault, control is 
passed immediately tc the page fault 
handler (PFFLIH) . 

If the program check is net a page 
fault, it is next checked to see if it is a 
translation specification exception, that 
is, if DAT is defective. If this is the 
case, the system is immediately put into a 
hard wait state. 

If neither of these are the case, DAT is 
reactivated and normal program check 
handling continues with segment translation 
exceptions being changed to addressing 
exceptions. 

If the program check occurs in the 
supervisor state, two tests are made: 

1. A list of addresses in the supervisor 
is scanned to see if the program cheo: 
occurred at any of these addresses. If 
so, the user program is canceled. 

2. A check is made to see if VTAM was 
active and executing a VTAM SVC (U9 or 
53) or a VTAM appendage. If so, the 
VTAM partition is canceled. 

Otherwise, the system goes into a hard wait 
(Register 11 contains X'FFFF"). 

If the supervisor was generated with the 
FOPT macro parameter PC=YES, the routine 
entered at PCROUT saves the interrupt 
status information and general registers in 



Interrupt Processors 85 



the save area specified by the user's STXIT 
(PC) macro for the following purposes: 

1. to restore for continuation. 

2. to enable the user's PC routine to 
analyze the status. 

3. to facilitate analysis of a dump (the 
dump then contains all interruption 
information) . 

To enter the user's PC routine, the PSW is 
set up in the current save area (SVEPSW) 
and the user's routine address in the PC 
table is made negative to indicate that the 
routine is in use; if another program check 
condition is subsequently detected, the job 
is then canceled. 

The interrupt status information and 
general registers are restored to the 
program save area, and the user's PC 
routine address is made positive by SVC 17. 

For the format of the PC option table, 
refer to Figure 4.1, and for the format of 
the user's save area to Figure 4*9. 



PAGE FAULT HANDLER 



Page faults are a special type of program 
check and are handled by an extension to 
the program check handler called the page 
fault first level interrupt handler 
(PFFLIH). A page fault is first checked tc 
see if it was caused during the processing 
of a MICR stacker select routine. If this 
is the case, the task is canceled. 

If the page fault is caused by an 
enabled user task or by the fetch task, the 
PSW and registers are saved in the 
appropriate save areas. 

If the page fault is caused by other 
than one of these two types of tasks, the 
RID (Routine IDentifier) is tested to see 
which type processing is to be carried out 
before the request is queued. Figure 4.2 
shows the various routine identifiers along 
with the action taken when one of these 
routines causes a page fault. (The RID may 
also indicate that a partition issued a 
PFIX request for a page which is not in 
real storage, or that the SVC 58 rcutine 
issued a GETREAL request.) 

The page fault handler also sets the PIB 
DAT Flag. This flag tells the dispatcher 
how to dispatch the task after the page 
fault has been handled. The PIB DAT Flag 
indicates that control is to be passed to 
INITSVC if the page fault is handled for a 
gated SVC or to SVRETURN if a reenterable 
SVC is to be reactivated. 



If no page fault appendage is provided 
for the interrupted task, the page fault 
request is queued for handling by the page 
management routines and the interrupted 
task is made not dispatchable. 



If an appendage is present for the task, 
control is passed to the appendage, and the 
task causing the page fault remains 
dispatchable unless the page fault occurred 
in a supervisor service cf the task. 
(Refer to the D OS/ V S Supervisor and I/O 
Macros manual for a more detailed 
explanation of Page Fault appendages.) 



Whether a request is queued or not 
depends upcn whether the task owning the 
appendage has a page fault request pending. 
If a page fault is already in the queue for 
the task, the new page fault is not queued. 
If, however, there is no request pending 
for the task, the new page fault request is 
queued. 

PCTAB 



BG 



F4 



F3 



F2 



Fl 



Subtask 



Subtask 



Subtask 



PC Routine Address 



Save Area Address 



Figure 4.1. Program Check Option Table 

Bytes: 

0-3: No STXIT issued: zero 

STXIT issued: Address of the user 
Program Check Routine 

STXIT issued and the user routine is 
already in use: Complement of user 
Program Check Routine address 

4-7: No STXIT issued: zero 

STXIT issued: Address of the user 
Save Area 

Note: In a supervisor without 
multiprogramming support, there is only one 
entry (BG) in each generated table. With 
multiprogramming support, there is one 
entry for each partition supported. 



86 DOS/VS Supervisor 



With asynchronous processing support, each 
generated table always comprises 15 
entries; the subtask entries occupy the 
higher address locations in the table. 



Eytes 100-101 (X , 64 l - X'65') cf the 
partition ccirirunicaticn regicn contain the 
address of the PC Option Table. Label 
PCTAE identifies the first byte cf the 
table. 



r t 

NAME 



ID 



MEANING 



ACTION 



SYSTEMID 



00 



h 



Systeni errcr ccnditicn, fcr example, 
page fault in I/O interrupt handler. 



Hard Wait. 



-+- 



REENTRID 



04 



Page fault or GETREAL request in a 
reenterable routine. 



h 



-+- 



Save PSW and REGs tc user 
task's system save area, set- 
PIB DAT Flag tc call SVRETURN, 
and ENQU request. 



USERTID 



08 



Page fault frcir a disabled user task 
or disabled E-transient. 



Cancel user task errcr code 
X'15' . 



y- 



APPENDID 



0C 



Page fault in I/O appendage rcutine. 



Cancel user task errcr code 
X'36' . 



h 



RESVCID 



10 



Page fault in SVC 29 or 47. 



Set saved PSW tc reissue SVC 
when task is dispatched, ENQU 
page fault request. 



DISPID 



14 



h 



Page fault in a routine which requires 
no information tc be saved, fcr 
example, a page fault in the 
dispatcher. 



ENQU page fault request. 



PFARID 



16 



Page fault in a page fault appendage 
routine. 



Cancel 
x f i5' . 



user task errcr code 



47 

through 

4F 



h 



Request fcr a page which is to be 
PFIXed. RIC identifies the partition 
which issued the PFIX request. Used 
only if AP=YES. 



G41END 



53 



Page fault in the reusable SVC 41 
or 42. 



h 



G58END 



71 



GETREAL request frcm the reusable 
SVC 58. 



Save PSW and registers to user 
task's system save area, set 
PIB DAT Flag tc call INITSVC 
when task is dispatched next. 

-|Clcse gate tc rcutine (routine 
cannot be used until gate is 
opened). ENQU page request. 

-^ (Any task trying tc use a 
gated resource is placed in a 
wait state and marked resource 
bcund. It is released frcm 
the wait state when the 
rescurce is ungated after the 
page request has been 
handled . ) 



Figure 4.2. Routine Identifiers (RID) as Used by the Page Fault Handler (PFFLIH) in 
Handling Page Requests 



Interrupt Processors 



Page of SY33-8551-1, revised September 30, 197*1, by TNI SN33-8790 



EXTERNAL _ INTERRUPT 

Microprogramming detects an external 
interrupt and loads the external new PSW. 
External interrupts can be caused by: 

• Timer 

• External interrupt key 

• Signal 

Refer to External Interrupt Processor on 
Chart 07.1. 



(which will result in selection cf the same 
task as it has the highest priority) . 



£VC_0: Execute the channel prcgrair (EXCP) . 
The address cf the user's Command Control 
Elock (CCE) must be supplied in general 
register 1 befcre this SVC is issued. If 
FCWER/VS is supported and the I/C operation 
for the device need to be emulated, control 
is given tc the SVC appendage in the 
PCWER/VS nucleus code. 



MACHINE_CHECK_INTERRUPT 

Microprograrriring detects a machine check 
interrupt and loads the machine check new 
PSW. The resident Machine Check Handler 
analyzes the Machine Check Interruption 
Code (MCIC) at location X'E8' and tests the 
Problem State bit (Old PSW bit 15). The 
action taken depends on the conditions 
detected, as follows: 

System Termination ..Condition^ (hardwait) : 
Control is passed to the R-Transiert 
$$RAST00 to attempt to record the error on 
the Recorder File (IJSYSRC) and tc log an 
appropriate message before terminating the 
system. 

Task Cancelation Condition: The affected 
task is canceled and the RAS System Task is 
activated before branching tc Task 
Selection. 

B§^5^§I§^i^_l^£2£_£2n^J:£i2J0 Cscf t machine 

check) : The RAS System Task is activated. 
If the CPU was in the Problem State or if a 
System Task was active, a branch is taken 
to Task Selection. If a Supervisor 
Function was interrupted, the Machine Check 
Old PSW is reloaded to continue processing 
from the point of interruption. 



SUPERVISOR, CALL INTERRUPT (SVC) 

SVC is detected by microprogramming, which 
loads the SVC new PSW. The SVC 
interruption processor (See Chart 05) 
analyzes the SVC code placed in lew main 
storage by the microprogramming. Control 
is transferred to the appropriate 
processing routine- Some SVCs are optional 
and cause a cancel if the supervisor was 
generated without the option. 

Return from SVC routines that free a 
resource (for which another task may be 
waiting) or that put the issuing task in a 
wait state, must be through task selection. 
For all other SVC routines return may be to 
the same task or through task selection 



S Vc_ 1 : 
phase fr 
a Privat 
tranches 
phase. 
SVA, it 
may be f 
director 
the SCIL 
descript 
Routine" 



Fetches a pha 
cm the System 
e Cere Image 

tc the entry 
If the phase 
is net leaded 
cund in stcra 
y (if a PCIL 

directory, 
ion, refer tc 



se. A fetch loads a 

Cere Image Library cr 
Library (PCIL) and 

address in that 
is found tc be in the 

The directory entry 
ge, in the PCIL 
is assigned), or in 
For a mere detailed 
section "Fetch 



The lo 
obtained 
phase bei 
relocated 
stcrage a 



address o 
Routine") 
register 
entry and 
a relocat 
be c^erri 
address i 

SVC 2 : F 
a Logical 
name pref 
image lib 
Library ( 
Area (LTA 
at its lc 
directory 
in storag 
the PCIL 
For a mor 
the secti 



ad and entry addres 
from the directory 
rg fetched. These 

if the phase is re 
c dress cf the phase 



f the parameter lis 
must be supplied i 
1 before this SVC i 
load addresses are 
able phase. The en 
dden by a user-supp 
n general register 



ses are 
entry for the 
addresses are 
locatable. The 

name cr the 
t (see "Fetch 
n general 
s issued. The 

relccated fcr 
try address can 
lied entry 
0. 



etches a Logical Transient. Loads 

Transient program name (phase 
ix is $$E) from the system core 
rary cr a Private Cere Image 
PCIL) into the Logical Transient 
) and enters the logical transient 
ad address plus 8 bytes. The 

entry fcr the phase may be fcund 
e, in the SCIL directory,, or in 
directory (if a PCIL is assigned), 
e detailed description, refer tc 
en "Fetch Routine". 



The stcrage address of the logical 
transient phase name cr the address of a 
parameter list (refer to the section "Fetch 
Rcutine") must be supplied in general 
register 1 before this SVC is issued. 

The logical transient is loaded at the 
crigin cf the Logical Transient Area (LTA) 
and this address is put into general 
register 15 which may then be used by the 
transient as a base register. The 
supervisor ignores the ccnterts cf general 
register which may be used tc pass 
information to the logical transient. 



88 DOS/VS Supervisor 



r 1 

| SVC | 


1 




jDec 


1 

Hex| 


Macro | 
Supported! 

._ _j 


Function 


Y -, 

| *Optional | 


.-. —| 




1 o 


1 


EXCP 




|1 


1 


FETCH 


Fetch any phase 


|2 


2 




Fetch a logical transient (B-transient) 


|3 


3 




Force dequeue 


1 ** 


a 






|5 


5 


MVCOM 


Modify supervisor communi cation region (if issued by MVCOM iracro) 
Fetch another physical transient (if issued by a physical 
transient) 


|6 


6 


CANCEL 


Cancel a problem program cr task 


|7 


7 


WAIT 


Wait for a CCE or TECB 


|8 


8 




Transfer control to the problem program from a logical transient 
(B-transient) 


|9 


9 


LBRET 


Return to a logical transient (B-transient) from the problem 
program after an SVC 8 


1 10* 


A 


SETIME 


Set timer interval 


|11 


B 




Return from a logical transient (B-transient) 


| 12 


C 




Reset switches in partition communications region 


1 13 


D 




Set switches in partition communications region 


|1U 


E 


ECJ 


[Terminate job and go to job control for end of job step 


1 15 


F 


SYSIO 


|Headqueue and execute channel program 


1 16* 


10 


(STXIT(PC) 


(Provide supervisor with linkage to user's PC routine for program 
check interrupts 


|17* 


11 


| EXIT (PC) 


Return from user's PC routine 


|18* 


12 


|STXIT(IT) 


Provide supervisor with linkage to user's IT routine for interval 
| timer interrupt 


| 19* 


13 


| EXIT (IT) 


[Return from user's IT routine 


| 20* 


14 


|STXIT(OC) 


| Provide supervisor with linkage to user's 0C routine for external 
or attention interrupts (operator command) 


| 21* 


15 


|EXIT(OC) 


Return from user's OC routine 


| 22 


16 


| SEIZE 


Seize/release system; enable/disable for external and I/O 
[interrupts? set key in user's PSW 


| 23* 


17 




|Load phase header. Phase load address is stored at user's address 


|2U* 


18 


| SETIME 


|Set timer interval and provide supervisor with linkage to user's 
[TECB, if any 



Figure 4.3. Supervisor calls (Part 1 cf 4) 



Interrupt Processors 89 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



r ~ — i 

| SVC 


1 




|Dec 


.) 

Hex| 

j 


Macro 
Supported 




Function 

> _ 


| *0pti 


i 
.onal ! 




*" — .—— — •. — », _ , 


| 25* 


19 ! 




Issue HALT I/C on a teleprocessing device, or HALT I/O ON ANY 
DEVICE IF ISSUED BY OLTEP. With multiprogramming, dequeue an 
unstarted OLTEP I/O request to a shared device 


| 26* 


1A 1 




Validate address limits 


| 27* 


IB | 




Special HIO en teleprocessing devices 


| 28* 


ic ' 


EXIT (MR) 


Return from user's stacker select routine (MICR type devices only) 


| 29* 


ID ; 


WAITM 


Provide support fcr multiple wait macro WAITM 


| 30* 


IE ' 


QWAIT 


Wait for a QTAM element 


1 31* 


IF ; 


QPOST 


Post a QTAM element 


1 32 


20 | 




Reserved 


1 33 


21 | 




Reserved fcr internal macro COMRG 


| 34 


22 ; 


GETIME 


Provides Time-of-Day and updates the DATE field 


| 35* 


23 ! 


HOLD 


Hold a track for use by the requesting task only 


| 36* 


24 \ 


FREE 


Free a track held by the task issuing the FREE 


| 37* 


25 


STXIT(AB) 


Provide supervisor with linkage to user's AB routine for abnormal 
termination of a task 


| 38* 


26 


ATTACH 


Initialize a subtask and establish its priority 


| 39* 


27 


DETACH 


Perform normal termination of a subtask. It includes calling the 
FREE routine to free any tracks held by the subtask 


140* 


28 


POST 


Inform the system of the termination of an event and ready any 
waiting tasks 


|41* 


29 


DEQ 


Inform the system that a previously enqueued resource is now 
available 


| 42* 


2A 


ENQ 


Prevent tasks from simultaneous manipulation of a shared data area 
(resource) 


|43 


2B 




Reserved 


|44* 


2C 




Provide supervisor support for external creation of unit check 
[records by specific request 


| 45* 


2D 




[Provide emulator interface 


| 46* 


2E 




[Provide OLTEP with the facility to operate in supervisory state 


| 47* 


2F 


WAITF 


[Provide support fcr multiple wait macro WAITF for MICR type devices 


| 48* 


30 




| Fetch a CRT transient 


|49 


31 




|Used by VTAM 



Figure 4.3, Supervisor calls (Part 2 of 4) 



90 DOS/VS Supervisor 



Page cf SY33-8551-1, revised September 30, 1974, by TNI SN33-8790 



SVC 



Dec Hex 



Kacro 
Supported 



Function 



♦Optional 



50 

51 

52* 

53 

54 

55 

56 
57 
58 

59 



32 
33 
34 
35 
36 
37 

38 
39 
3A 

3B 



TTIMER 

FREEREAL 
GETREAL 



60 


3C 


(GETADR 


61* 


3D 


GETVIS 


62* 


3E 


FREEVIS 


63 


3F 


|USE 


64 


40 


RELEASE 


65* 


41 


| CDLCAD 


66 


42 


| RUNMODE 


67* 


43 


|FFIX 


68* 


44 


| FFREE 


69* 


45 


| REALAD 


70* 


46 


VIRTAD 


71* 


47 


SETPFA 
|GETCEUF 


72* 


48 


FREECEUF 


73* 


49 


SETAPP 


74* 


4A 





Reserved for IIOCS error recovery 

Return phase header 

Return the regaining tiire interval, or cancel a tirre interval 

Used by VTAM 

Release page frames to selection peel 

Provide interface between SCAID and PDAID initialization routine 
and page management routine, tc create the PDAID alternate area or 
the SCAID buffer area 

Reserved. 

Reserved. 

Provide interface between job control and the supervisor. Get real 
storage fcr real jobs 

Provide interface between ECJ and the supervisor. Initialize 
specified page table entries 

Provide virtual address of location within I/C areas for ERP and 
CRT routines 

Get storage in virtual partition 

Free storage in virtual partition 

Use a resource 

Release a rescurce 

Lead VSAM cr CI phase 

Return mode in which program is running 

Fix page(s) in real storage 

Free page(s) in real storage 

Return real address corresponding tc a given virtual address 

Return virtual address corresponding tc a given real address 

Establish cr terminate the linkage between the supervisor and a 
user page-fault appendage routine 

Get or free ccpy buffer fcr IDAI cr tape ERP 
Allow linkage tc channel and appendage routines 
Fix page(s) in real storage fcr restart 



Figure 4.3. Supervisor Calls (Fart 3 of 4) 



Interrupt Processors 91 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



r t t t 

1 svc 1 1 1 


j. 

|Dec 

L 


j) Macro | Function | 

Hex j Supported! 1 
4. ± 


r i 




| 75* 


4B |SECTVAL 


Calculate a sector value for a disk device with the RPS feature | 


| 76 


4C | 


Initiate recording of an RMSR I/O error | 


| 77 


4D |TRANSCSW 


Returns the virtual address of a copied CCW | 


| 78-84 




Reserved | 


| 85* 


55 |RELPAG 


Release contents of one or more pages | 


| 86* 


56 IFCEPGOUT 


Force a page-cut for one or more pages | 


] 87* 


57 |PAGEIN 


Pagein cne or more pages l 


| 90* 


5A |PUTACCT 1 


Provide interface with POWER/VS for additional account information | 
(by user) . | 


| 91* 


5B | 


Provide interface with PCWER/VS fcr standard acccunt information | 
(DOS/VS). | 



Figure 4.3. Supervisor Calls (Part 4 of 4) 



Only one program can use the lcgical 
transient area at a time- If the area is 
already occupied when it is wanted by 
another program, then this latter program 
becomes SVC 2-bound (first PIB flag byte = 
X'81') until the LTA is released by the 
occupying program issuing a SVC 11. (See 
also Figure 2.8.) 

SVC 3 : Provides an interface between the 
supervisor and $$BEOJ5. SVC 3 allows 
forced dequeueing of channel queue entries 
that belong to devices assigned tc the 
partition or task that is being canceled or 
has reached end-of-job. The PUE whose 
address is in register 1 is dequeued. 

SVC 4: Loads a phase from the system core 
image library or a private cere image 
library (PCII) and returns tc task 
selection. The directory entry fcr the 
phase may be found in storage, in the SCIL 
directory, or in the PCIL directory (if a 
PCIL is assigned). For a mere detailed 
description, refer to the section "Fetch 
Routine". 



fcr any changes in the phase's lead 
address, and general register points to 
the active In-core Directory Entry if cne 
was supplied, or found by a local or system 
directory list search. 



SVC_5: When issued by a user through the 
KVCCK macro, modifies the supervisor 
communication region. It supplies the 
supervisor support fcr the MVCCM iracrc. 
The sequence of events is: 

1. WVCOW macro issues a SVC 5. 

2. The resident routine alters the 
supervisor ccmmunicaticn regicn as 
specified by the parameters cf the 
MVCOIV! nacre. 

fthen a physical transient issues a SVC 5, 
another physical transient program (phase 
name prefix $$A) is loaded from the System 
Cere Image Library intc the Physical 
Transient Area (PTA) , and is entered at its 
lead address plus 10 bytes. 



The storage address of the phase name or 
the address cf a parameter list (refer to 
the section "Fetch Routine") must be 
supplied in general register 1 before this 
SVC is issued. The user may override the 
link-edited load address by supplying a 
load address in general register 0. Upon 
return to the user, general register 1 
contains the phase entry address adjusted 



The calling transient sets up the 
physical transient name in the errcr block. 
The storage address cf the physical 
transient phase name is leaded in general 
register 1 before the fetch is made. 

The physical transient is leaded at the 
crigin cf the Physical Transient Area (PTA) 
and this address is put into general 



92 DOS/VS Supervisor 



register 11 which may then be used by the 
transient as a base register. 



Cancel code X'lC* is pcsted tc each of 
the ether subtasks PIEs and tc the 
maintask PIB. 



SVC6: Cancels a program (task) cr 
partition. This is usually achieved by the 
requesting program, task,, or subtask 
issuing a CANCEL or CANCEL ALL macro. 



If a subtask issues CANCEL, only that 
subtask is terminated. If a iraintask 
issues CANCEL, or a subtask issues CANCEL 
ALL, then the entire partition is canceled, 
the maintask being always the last to be 
terminated. 



CANCEL macro issued by maintask without 
subtasks: the issuing task is teririnated 
normally. 

• Cancel code X'23 f is posted to the 
issuer* s FIB. 

• Message ■ (issuer*) CANCELED DUE TO 
PROGRAM REQUEST'. 

CANCEL macro issued by subtask: the 
issuing subtask is terminated normally. 

• Cancel code X*23* is posted tc the 
issuer's FIB. 

• Message f (issuer*) CANCELED DUE TO 
PROGRAM REQUEST" . 



CANCEL macro issued by maintask with 
subtasks attached: the maintask is 
terminated normally; attached subtasks are 
terminated abnormally. 

• Cancel cede X f lD* is posted to each 
subtask FIB. 

• Cancel code X"17* or X f 18' is pcsted to 
the maintask PIB. 

• Message • (subtask*) CANCELED DUE TO 
MAINTASK TERMINATION - . 

• Message ' (issuer*) CANCELED DUE TO 
PROGRAM REQUEST* . 

• A dump is generated at termination of 
the maintask if the cancel cede in the 
maintask FIB is X - 18'. 

CANCEL ALL macro issued by a subtask: the 
issuing subtask is terminated normally; 
other subtasks and the maintask are 
terminated abnormally. 

• Cancel cede X f 23" is posted to the 
issuing subtask PIB. 



• Message ' (issuer*) CANCELED DUE TO 
PROGRAM REQUEST' . 

• Message ' (main or subtask*) CANCELED DUE 
TC CANCEL ALL MACRO'. 

• A dump is generated at termination of 
the maintask. 

If the FCFT macro parameter AB=YES was 
included when the supervisor was generated 
and linkages tc the user's AE routines have 
been established thrcugh the STXIT (AB) 
macrc, these routines are entered for all. 
tasks that are terminated abnormally by the 
CANCEL cr CANCEL ALL macrc, sc the task 
that issues a SVC 6 never enters its AE 
rcutine. 

An AE routine ncrirally terminates 
through a DETACH, EOJ, or CANCEL macro, but 
an abnormal condition enccuntered in an AB 
routine also terminates that AE routine. 

SVC_7: Waits for the completion of an I/O 
cperaticn cr for a timer interruption to 
occur. It supplies the supervisory support 
fcr the WAIT macrc. 

If the traffic bit (CCE) cr event bit 
(TECE) has been pcsted, SVC 7 branches 
directly tc task selection. 

If the traffic bit cr event bit has net 
teen pcsted the following acticn is taken: 

• If a system task was interrupted, the 
system task is deactivated and its PIB 
flag is set tc 1/C-tcund. 

• If a user task was interrupted, the PIB 
of the interrupted program is set tc SVC 
7-bcund (net ready tc run). 

If a page fault cccurs during execution of 
a SVC 7, the SVC 7 is reissued after the 
page fault has been handled. 



SVC_8 
tempcrar 
tc the p 
issued o 
(LTA) an 
entry ad 
be speci 
task sel 
program 
1 are pa 



Suppli 
ilv re 
rctlem 
nlv fr 
d cces 
dress 
f ied i 
ecticn 
regist 
ssed t 



es the sup 
turn from 

program . 
om the leg 

not free 
to the pre 
n general 

exit lead 
ers. Gene 
c the prcb 



ervisory support tc 
a logical transient 

This SVC may be 
ical transient area 
this area. The 
blem program must 
register 14. The 

the problem 
ral registers and 
lem program. 



♦First 8 bytes of task or subtask save 
area. 



Tc return tc the legical transient, the 
problem program issues a SVC 9. 

SVC_9: Supplies the supervisory support to 
return tc the logical transient after a SVC 
8 has been issued. A SVC 9 iray be issued 
only by the problem program. The task 



Interrupt Processors 93 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



selection exit loads the logical transient 
registers. General registers and 1 are 
passed to the logical transient prcgrair. 



SVC 10: Sets a timer interval. This SVC 
is optional, and the issuing prcgrair is 
canceled if the supervisor was generated 
without the IT option for the partition or 
task. Only the timer supported prcgrair can 
issue an SVC 10. Others are canceled. 

SVC 10 uses the same routines as SVC 24 
to set the timer interval (see SVC 24) but 
does not store the address of the user's 

TECE. 

If the supervisor provides interval 
timer support for multiple partitions, the 
code for SVC 10 is not generated. The 
address of the SVC 24A routine is then 
placed in the SVC table (SVCTAE) instead of 
the address of the SVC 10 routine. 

SVC 11: Returns from a B-transient 
releasing the E-transient area. SVC 11 is 
invalid if issued by other than a 
E-transient. The logical transient area is 
released for use by other prcgrarrs or 
tasks. Return is to the highest priority 
program ready to run. 

SVC 12: The function of this SVC depends 
on the contents of general register 1. 

If this register contains a zerc value, 
bit 5 (PCIL being condensed) in byte 59 of 
the partition communications regicn is set 
to zero. 

If general register 1 contains a ncnzerc 
value, the function depends on bit 8 of 
this register. 

If this bit is zero, this SVC supplies 
the supervisory support to reset flags in 
the linkage control byte (displacement 57 
in the partition communications regicn). 
The user has provided the address cf a mask 
(1 byte) in general register 1. This mask 
is ANDed with the linkage contrcl byte. If 
bit 6 of the linkage contrcl byte is turned 
off by this SVC, the Fetch routine is 
dequeued (PTA or IDRA posted available). 
If bit 1 of the linkage control byte is 
turned off by this SVC, the key in the 
user's PSW is reset (it was set tc zerc 
when this bit was turned on, see SVC 13) . 

If bit 8 cf general register 1 is one, 
this SVC supplies the supervisory support 
to reset flags in a specified byte cf the 
partition communications region. The user 
has provided a displacement in byte 2 and a 
mask in byte 3 of general register 1. The 
mask is ANDed with the byte at the 
specified displacement in the partition 
communications region. 



£¥£_I3: The function cf this SVC depends 
en the contents of general register 1. 

If this register contains a zerc value, 
tit 5 (PCII being condensed) in byte 59 cf 
the partition communications region is set 
tc cne. 

If general register 1 contains a nonzero 
value, the function depends en bit 8 cf 
this register. 



If th 
the supe 
linkage 
the part 
user has 
(1 byte) 
is CRed 
tit 1 of 
the key 



is bit is ze 

rvisory supp 

control byte 

ition commun 

provided th 

in general 

with the lin 

the linkage 

in the user* 



re, this SVC supplies 
crt tc set flags in the 

(displacement 57 in 
icatiens regicn) . The 
e address cf a mask 
register 1. This mask 
kage contrcl byte. If 
• control byte is posted 
s PSVi is set tc zero. 



If bit 8 cf general register 1 is cne, 
this SVC supplies the supervisory support 
tc set flags in a specified byte of the 
partition communications region. The user 
has provided a displacement in byte 2 and a 
mask in byte 3 of general register 1. The 
mask is CRed with the byte at the specified 
displacement in the partition 
ccmmunicaticns regicn. 



SVC_14: This is the n 
(ECJ). Cancel code X' 
PIE for the program is 
Refer to Figure 2.7 fo 
PIE tables and to Char 
Cancel Routine. The n 
program is selected en 
branch is made to the 
fetch the cancel E-tra 
$$EECJ3 if teleprccess 
$$EECJ4 if teleprocess 
Jcb contrcl is leaded 
the End-of-Job step. 



crmal end cf jcb 
10" is posted to the 
suing the SVC 14. 
r the format of the 
t 03 fcr the General 
ext tine the canceled 

general exit, a 
SVC 2 routine tc 
nsient program 
ing is supported, or 
ing is net supported, 
by $$EEOJ tc perform 



SVC 15: Execu 
all other I/O 
device (headqu 
user's Command 
supplied in ge 
SVC is issued, 
cf this regist 
whether the re 
unconditional 
is delayed in 
This SVC can b 
A user task is 



te the channel program before 
requests queued fcr the same 
eueing). The addres-s cf the 
Control Block (CCE) must be 
neral register 1 before this 
The high order bit (bit 0) 
er is used to indicate 
quest is ccnditicnal (eff) cr 
(on) . A ccnditicnal request 
certain cases (see below), 
e used by system tasks only, 
suing this SVC is canceled. 



The PUE is copied tc the Headqueue PUB 
table (HQPUBTAE) Entry (see Figure 4.4) fcr 
the requesting system task. This copied 
PUE is initialized tc allow the I/O request 
to be queued to it immediately by the 
Channel Scheduler. Headqueue in process is 
posted in the original PUE, and register 3 
is pointed to the copied PUE instead cf the 



94 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



original. A branch is then taken to the 
Channel Scheduler to schedule the I/O. 

If on entry of the SVC 15 routine nc 
channel queue entry is available, the task 
is posted channel queue entry bound 
(X , 79 , ) # deactivated, and set up to reissue 
the SVC when selected next time. 

If headqueue in progress was already 
posted in the PUB, the action depends on 
the type of the new headqueue request. If 
the new request is conditional, headqueue 
wanted is posted in the HQPUETAB entry, to 
wait for the pending request to finish. If 
the new request is unconditional, it is not 
delayed and is serviced immediately. If 
the pending headqueue request has a higher 
priority, its HQPUBTAB entry is posted for 
headqueue in progress for later 
reactivation. The priority is not the same 
as the dispatching priority of system tasks 
and is determined by the order of the 
entries in the Headqueue PUB Table. 

A conditional headqueue request is also 
delayed when the device is busy, with a 
nonerror request queued to its PUB. The 
headqueue wanted bit is posted then in both 
the copied and the original PUB. 

It should be noted that when in a PUB or 
copied PUB both of the headqueue switches 
are on, no I/O is started for the PUB. 
However, in this situation there is one 
associated copied PUB with these switches 
off and I/O is started on this copied PUB. 

HQPUBTAB 



Pointer to System ] 

Task's PIB flag J 

Pointer to original PUB- 



copied PUB 



Figure 4.4. Headqueue PUB Table 

The Headqueue PUB Table has a maximum of 
six entries (for RAS* CRT, PMR, ERP, and 
SUPVR system tasks) . The entries for the 
RAS and CRT tasks are not generated when 
these functions are not supported. The LOG 
headqueue entry is only generated for a 
model 115/125. 

The order of the entries determines the 
headqueueing priority of the system tasks. 
The RAS system task has the highest 
priority. 

Bytes 20-23 (X'14' - X'17 f ) of the RASLINK 
area contain the address of the Headqueue 



PUB Table. Label HQPUBTAB identifies the 
first byte of the table. 



SVC 16 f 18, and 20: These supervisor calls 
provide supervisory support for the STXIT 
macro. They are optional, and the issuing 
program is canceled if the supervisor was 
generated without the applicable option. 

For each of these STXIT SVCs, the 
address of the user routine is specified in 
general register and the address of the 
user save area is specified in general 
register 1. An invalid save area address 
causes the problem program tc be canceled 
(ERR25). 

SVC 16 stores the address of the user's 

prcgram check (PC) routine and save 
area address in the PC option table. 

SVC 18 stores the address of the user's 

interval timer (IT) routine and save 
area address in the IT option table 
and sets a pointer to the correct 
entry in the table. This SVC may be 
issued only by the timer-supported 
program. If multitasking, only the 
maintask can process the 
interruption unless the supervisor 
was generated with full timer 
support (IT=YES). 

SVC 20 stores the address of the user's 

operator-communication (OC) routine 
and save area address in the OC 
option table. If multitasking, only 
the maintask can process the 
interruption. 

For the format of the option tables, refer 
tc Figures 4.1 and 4.5 through 4.7, and for 
the format of the save area to Figure 4.9. 

OCTAB 



BG 



F4 



F3 



F2 



F1 



Subtask 



Subtask 



Subtask 



OC Routine Address 



Save Area Address 



Figure 4.5. Operator Communication Option 
Table 



Interrupt Processors 95 



B y_ t e s : 

0-3: No STXIT issued: zero 

STXIT issued: Address of the user 
Operator Communication Routine 
STXIT issued and the user routine is 
already in use: Complement of the 
user Operator Coirmunicaticn Routine 
address 



4-7: 



No STXIT issued: zero 



STXIT issued: 
Save Area 



Address of the user 



^2££ : In a supervisor without 
multiprogramming support, there is only one 
entry (BG) in each generated table. 

With multiprogramming support, there is one 
entry for each partition supported. With 
asynchronous processing support, each 
generated table always comprises 15 
entries; the subtask entries occupy the 
higher address locations in the table. 

Bytes 104-105 (X , 68 t - X , 69 i ) of the 
partition communication region contain the 
address of the OC Option Table. Label 
OCTAB identifies the first byte of the 
table. 

ABTAB 



BG 



F4 



F3 



F2 



Fl 



Subtask 



Subtask 



Subtask 



AB Routine Address 



Save Area Address 



Figure 4.6, 



Abnormal Termination Option 
Table 



Bytes: 

0-3: No STXIT issued: zero 

STXIT issued and RTNADDR parameter 
passed: Address of entry pcint cf 
user's abnormal termination routine. 
If AP (Asynchronous Processing) is 
supported, the maintask and subtasks 
may have the same or different AB 
routines. When a subtask is ATTACHed 
after a STXIT AB macro has been 
issued by the maintask, the subtask 
will receive the AB routine address 



specified by the maintask only if the 
ATTACH macro for that subtask has the 
ABSAVE parameter specified. The 
subtask can override this by issuing 
its own STXIT AB macro. 

4-7: No STXIT issued or no save area 
parameter passed: zero 

STXIT issued and save area parameter 
passed: Address of a 72-byte save 
area used by the supervisor to store 
the interrupt status information and 
the contents of the general 
registers. 

S2£§ : 0ne table entry is generated for 
each partition supported. With 
asynchroncus processing support, the table 
always comprises 15 entries; the subtask 
entries occupy the higher address locations 
in the table. 

Bytes 84-87 (X'54 f - X'57M of the System 
Communication Region (SYSCOM) contain the 
address of the AB Option Table. Label 
ABTAB identifies the first byte cf the 
table. 

ITTAB 



BG 



F4 



F3 



F2 



Fl 



Subtask 



Subtask 



Subtask 



TECB 



Save Area 



-Address 



Compl.of TECB 



Save Area . 



Address 



Figure 4.7. Interval Timer Opticn Table 

Bytes: 

0-3: No TECB or STXIT issued: zero 

TECE issued: Address cf the timer 

event control blcck 

STXIT issued: Address of user 

interval timer routine 

STXIT issued and user routine is 

already in use: Complement of the 

user interval timer routine 

4-7: No TECB or STXIT issued: zero 

TECB issued: Complement of the TECB 

address 

STXIT issued: Address of the user 

save area 



96 DOS/VS Supervisor 



Note: One table entry is built for each 
partition (multiple timer support) and an 
IT Request table is also built. 



With multiple timer and asynchronous 
processing supported, the table always 
comprises 15 entries; the subtask entries 
occupy the higher address locations in the 
table. 



Bytes 102-103 (X'66' - X f 67') of the 
partition communication region contain the 
address of the IT Option Table. Label 
ITTAB identifies the first byte of the 
table. 

ITREQ 



00 FF 00 00 00 



Task 
Identifier 



Time Interval 



Figure 4.8. Interval Timer Request Table 



Bytes: 

0: No SETIME issued: X'OO', the last 
entry is always X' 00* 

SETIME issued: PIK or TIK (X f 10' - 
X'FO') of the program cr task that 
issued the SETIME macro 

1-4: No SETIME issued: Highest time 

interval possible (X'FFOOOOOO 1 ) . The 
last entry is always X , FF000000 t 

SETIME issued: Time interval that 
will elapse between the occurrence of 
the currently pending interrupt in 
SYSTIMER and the occurrence of the 
interrupt itself. The entries are in 
ascending order of magnitude, that is 
the smallest interval appears first. 

The interval corresponding to the 
currently pending interrupt is in 
SYSTIMER (address X'50') and the key 
of the respective program or task is 
in TWTIMS 

Note: This table is generated only for 
multiple timer support (IT=YES). The 
number of entries is one more than the 
number of partitions supported, but with 
multiple timer and asynchroncus processing 
supported, the table always comprises 16 
entries. 

Bytes 80-83 (X'50' - X'53') of the System 
Communication Region (SYSCOM) contain the 
address of the IT Request Table. Label 
ITREQ identifies the first byte of the 
table. 



r 1 

| Interrupt Status Information | 

|. T , T T T T ., 

|0 |1 |2 (4 |5 |8 71 | 

|. + 4 + + + < 

I Unused j Protection [Interruption! * | Instruction | General | 

I |Key and Mas- (Code | (Address (Registers 0-15 | 

| jter from PSW| III I 

I I Byte 1|||| | 

l ± -L J. JL J. J 

* Byte 4 bits 0-1 Instruction Length Code 
2-3 Condition Code 
4-7 Program Mask 

The address of the save area specified by the user in the STXIT macro parameter is 
stored in the option table. 

Figure 4.9. Format of the User's Save Area for AB, PC, OC, and IT Routines 



SVC JLJl- Mr^g^j.. 2 A : These supervisor calls 
provide supervisory support for the EXIT 
macro. They are optional, and the issuing 
program is canceled if the supervisor was 
generated without the applicable option. 



SVC 17 provides a return from the user's PC 
routine to the next sequential 
instruction in the program that was 
interrupted due to a program check. 



Interrupt Processors 97 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



The user-supplied save area is 
restored to the problem program save 
area. Refer also to the section 
also "Program Check Interrupt". 

SVC 19 provides a return from the user's IT 
routine to the timer-supported 
program. This SVC may be issued 
only by the timer-supported program. 

SVC 21 provides a return frcir the user's OC 
routine to the prograir that was 
interrupted by the external 
interrupt key (background) or by the 
attention routine MSG command 
(foreground) . 

For the format of the option tables, refer 
to Figures 4.1 and 4.5 through 4.7, and for 
the format of the save area to Figure 4.9. 

SVC 22; Seizes the system and provides a 
release from such a seizure in a 
multiprogramming system. This SVC may be 
issued only by job control and logical 
transient programs. The PSW protection 
field must be zero, otherwise the issuing 
program is canceled. 

The first SVC 22 issued seizes the 
system. Until the next SVC 22 is issued, 
the task selection mechanism is disabled so 
that the issuing task is the only one that 
can be selected. The next SVC reenables 
the task selection mechanism. 

If the low-order byte of general 
register is zero, the system mask is set 
to disable I/O and external interrupts; if 
nonzero, the system mask is set to enable 
I/O and external interrupts. 

If general register is negative, the 
user protection key is set in the user's 
PSW. 

If the supervisor was generated with 
NPARTS=1, SVC 22 provides only for 
enabling/disabling and for setting the key 
in user's PSW. 

SVC_23: Retrieves the load address for a 
specified phase from the directory entry 
for the phase. The program issuing an SVC 
23 is canceled if supervisor was generated 
with NPARTS=1 or if the PSW protection key 
does not equal 0. (Only job contrcl and 
E-transient programs can issue an SVC 23.) 

The user must specify the storage 
address of the phase name in general 
register 1 and the address where the load 
address is to be stored in general register 
0. The main fetch subroutine scans the 
System Directory List, the System Core 
Image Library and the Private Core Image 
Library (if supported and assigned) for a 
directory entry for the phase. Refer to 



| the section "Fetch Routine Logic" for a 
more detailed description of the scan. The 
load address (3 bytes) is retrieved and 
stored at the address specified by general 
register 0. If the phase is relocatable 
and the supervisor supports relocating 
load, the load address returned is the 
relocated load address. 



SVC 24: Stores the address cf the user's 
timer event control block (TECB) and sets a 
timer interval. This SVC is optional, and 
the issuing program is canceled if the 
supervisor was generated without IT option 
for the partition or task. jQn^^^te^tiHlex^ ^ 
suppprt\<J ■* pif dg ram caj>~J^^e_ W SV€ - zfr? 
Kk^eX§\ate canceled. £)v0 v jV: \ cK »-»ye*yvs 

The address of the user's TECE is 
specified in general register 0, and the 
time interval is specified in general 
register 1. 

The event bit is reset in the TECB, and 
the TECB address is stored in the IT option 
table (ITTAB) . see Figure 4.7 for the 
format of the IT option table. 

Note: The event bit is set when a timer 
interrupt occurs. 

The interval, specified by the user in 
general register 1, is either set in 
SYSTIMER (X'50') or an adjusted value is 
entered in the Interval Timer Request 
(ITREQ) table (see Figure 4.8), as follows: 

If the supervisor supports the multiple 
timer (ITREQ table generated by the FOPT 
macro parameter IT=YES specified with 
glcbal BG20 on): 



if no timer interrupt is p 
another task (SYSTIMER = X 
or if the current pending 
interrupt is for this same 
TIK = TWTIMS), the interva 
general register 1 is set 
If jet accounting was spec 
system generation time (JA 
(X'54 f ) is updated tc the 
at which the interrupt is 



ending for 

•FF000000'), 

timer 

task (PIK or 
1 value in 
in SYSTIMER. 
ified at 
=YES), SYSTOD 
time of day 
to occur. 



if this interrupt is to cccur earlier 
than the current pending interrupt for 
another task, the difference between 
the old and the new value of SYSTIMER 
is added to each interval in ITREQ and 
the intervals are pushed down one 
entry. The interval (difference 
between old and new value of SYSTIMER) 
cf the previously pending interrupt and 
the PIK or TIK of the task owning the 
interrupt are inserted in the first 
entry in ITREQ. In addition, the PIK 
or TIK of the task owning the new 
interrupt is inserted in TWTIMS. 



98 DOS/VS Supervisor 



c. if this interrupt is to occur later 

than the current pending interrupt for 
another task, the value of the interval 
specified in general register 1 is 
decremented by the value in SYSTIMER 
and the result is entered in the ITREQ 
table (any entries with higher values 
for other tasks are moved down, but any 
entry for this same task is deleted) . 

In this case, SYSTCD is not updated. 

The user causes the program to wait for the 
timer interrupt to occur by issuing an SVC 
7. (See SVC_7 in this list.) 

SVC 25: Halts I/O on a teleprocessing 
device, or halts I/O on any device if 
issued by OLTEP. If the supervisor is 
generated without teleprocessing and 
without OLTEP, any issuing program is 
canceled. 

The address of any command control block 
(CCE) containing the symbolic address cf 
the device to be halted must be supplied in 
register 1 before issuing the SVC 25. If 
the SVC 25 is used by a program other then 
OLTEP, an HDV instruction is issued to the 
device if: 

1. It is a teleprocessing device, and 

2. An I/O interrupt is pending fcr the 
device. 

If OLTEP is the issuing program, an HDV 
instruction is issued to the device if 
there is I/O pending for the device. If 
MPS=YES was specified during system 
generation, CLTEP uses SVC 25 to dequeue an 
unstarted I/C operation to a shared device. 
The channel queue entry is removed from the 
channel queue, and in this case an HDV 
instruction is not executed. 

SVC 26: Validate address limits. The 
program issuing an SVC 26 is canceled if 
the PSW protection key does not equal 0. 
(Only job control and B-transient programs 
can issue an SVC 26.) 



SVC 28: Provides return from user's 
stacker select routine to the MICR external 
interrupt routine in the supervisor. This 
SVC is optional and causes a cancel if 
issued at any point other than in a stacker 
select rcutine with MICR devices. 



SVC 29: Provides supervisory support for 
the WAITM macro, if WAITM=YES was specified 
in the supervisor generation FCPT macro. 
Cn entry, general register 1 contains the 
address cf an ECB list. 

Fcr MICR type devices, WAITF must be 
used to identify the multiple wait on the 
MICR ECE. The WAITF macro is supported by 
SVC 47. 

The ECBs are all checked for the traffic 
bit. When an ECB is fcund with the traffic 
bit posted, the SVC 29 routine returns with 
the address of the pcsted ECE in register 
1. If all ECBs are checked and no traffic 
bits are pcsted, the task is made I/O bound 
(bit 7 in PIBFLG set to zero) and its PSW 
is modified, so that the SVC will be 
reissued when the task is selected again. 

SVCs 30, 31, and 32: Reserved for QTAM. 
Refer tc the QTAM Logic Manual. 

SVC 33: When issued by a user task, 
immediate exit is taken tc task selection. 

When issued by a system task, it results 
in deactivation of this system task (the 
select byte in the system communications 
region is set to zero) . The deactivated 
system task is posted ready tc run (X'83*). 
This procedure allows task selection tc 
give ccntrcl tc any higher priority system 
task that is ready to run. 



SVC 34: Reserved fcr the GETIME macro. 
SVC 34 updates the date field in the 
ccmmunicaticns region cf the active 
partition. Upon return general register 1 
contains the time cf day in timer units 
(1/300 sec.) 



The upper address must be specified in 
general register 2 # and the lower address 
must be specified in general register 1. 

When a CRT routine issues a SVC 26, 
control is always returned tc the CRT 
routine, even in case of an error. For any 
other routine, is either address is outside 
the requestor's partition then the task is 
canceled (ERR25). 

SVC 27: Same as SVC 25, except that SVC 27 
cannot be used by OLTEP. It can be used 
only to halt I/O on a teleprocessing 
device. The CCE is not dequeued if the CSW 
has been stored after an HIC ccmmand. 



SVC_35: Protects a track frcm use by more 
than one task at a time. An X'FF' is moved 
tc byte 2 cf the SVC eld PSW tc indicate 
track hold. A requesting task net owning a 
held track is made inactive and must wait 
until the track is free. If mere than 
sixteen holds on a track are attempted, the 
requesting task is canceled. 

Exits are to execute the I/O, cr to 
RESVC if the track is already held. At 
RESVC, the problem program old PSW is set 
tc execute the SVC 35 again, and a branch 
is taken fcr task selection. See Figure 
6.34 fcr the Track-Held Table. 



Interrupt Processors 99 



§VC_36: Frees a track that is held by the 
task issuing the FREE. An attempt to free 
a track not owned by the requestor results 
in cancelation of that task. 

Exits on a successful FREE are to task 
selection, or to the DETACH routine if the 
FREE was issued by that routine. 



SVC_37: Establishes linkage from the 
supervisor to a probleir prcgrair abnormal 
termination (AE) routine. It stores the 
routine's entry point and save area address 
in the AB option table. (The save area is 
a 72-byte area in which the interrupt 
status information and general registers 
0-15 are stored.) Return is to the program 
that issued the STXIT iracrc. See Figure 
4.6 for AB option table and Figure 4.9 for 
the save area. 



SVC_38: Initializes a subtask. The main 
task's PIB and save area are copied to the 
subtask's PIB and save area. The subtask 1 s 
PIB flag is set to X'83' to indicate 
' ready- to-run ' . Bit of the maintask's Rl 
is set to to indicate a successful 
attach, and absolute priority is 
established for the subtask. A subtask 
attempting to issue an ATTACH is canceled. 



SVC_39: Performs normal termination of a 
subtask. DETACH may be issued by either 
the subtask being terminated or by the main 
task. 

The subtask' s PIB is set inactive (byte 
= X'80'), and its ECE (see Figure 4.10) 
is posted for termination. This routine 
calls the free routine to free any tracks 
held by this subtask, and a waiting task is 
removed from the wait state. 

If the task to be detached has a timer 
interrupt pending, the corresponding entry 
is deleted from the IT option table 
(ITTAB). Also, if the multiple timer is 
supported, the It request table (ITREQ) is 
updated either by deleting the entry (if in 
ITREQ) or, if the task owns the current 
pending timer interrupt (interval value in 
SYSTIMER) , by setting TWTIMS to zero. When 
the interrupt occurs, it is ignored. 



| Reserved | Reserved | 
I I I 

L JL -L- 







I I 

I Reserved | 
I I 



SVC_40: Used 
POST may be ig 
a subtask. It 
aware of the t 
Normal complet 
pcsted in the 
the SAVE= para 
task waiting f 
the -wait state 
tasks are remc 



for intertask 
gued by eithe 
is issued so 
erminaticn cf 
ion of the sp 
ECB (byte 2, 
meter is pres 
or this ECE i 
; otherwise, 
ved from the 



ccirmunication . 
r a iraintask or 

that a task is 

an event, 
ecified event is 
bit 0=1). If 
ent, cnly the 
s taken out of 
all waiting 
wait state. 



X'80': Normal termination of subtask 
X'CO': Abnormal termination of subtask 

Figure 4.10. Event Control Elcck (ECB) 



SVC 41: Informs the system that a resource 
(shared data area) is new available for use 
by another task. A task may issue the DEQ 
macro only to a resource that it currently 
cwns. If it attempts to issue the DEQ 
macro to some other resource, the task is 
canceled. 



If any ether tasks are waiting for the 
resource, the highest priority task ready 
to run is removed from the wait state and 
gains control. If no other task is waiting 
for the resource, control returns to the 
task that issued the DEQ. 



If a task terminates without DEQuing all 
cf its ENQued resources, either in its 
ncrmal ceding or in its abnormal 
termination exit routine, any task 
subsequently attempting tc ENQ the resource 
is canceled. See Figure 4.11 for the 
Resource Centre! Block (RCE) . 



SVC_42: ENQ prevents tasks from 
simultaneous manipulation of a shared data 
area (resource). This is accomplished, 
using the TS instruction, by setting tc 
cnes all bits of byte cf the specified 
Resource Ccntrcl Block (RCE) . Then the 
Event Control Block (ECB) address is placed 
in bytes 4-7 cf the RCE. 



A task attempting to ENQ a resource that 
is already engueued by another task is 
placed in a queue and put in a waiting 
cenditicn. The old PSW is set tc reexecute 
the SVC 42 and task selection is performed. 



A task is canceled if it attempts tc 
nest ENQ(s) of a resource or if it attempts 
tc ENQ a resource that is still cwned by a 
terminated task. 



When a task is finished with a resource, 
it should inform the system by issuing the 
EEQ macrc. If it dees net, tasks 
subsequently requesting that resource are 
canceled. See Figure 4.16 fcr the Resource 
Control Elcck. 



100 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



Resource Control Block (RCB) 

r T T T T T T _. T -, 

I I ! I I I i ! f 

I | Unused | | ECB Address | 

I I I I I I I I I 

L JL J. X -L J. J. -L J 

01 2 3 4 5 6 7 

Figure 4.11. Resource Control Block (RCB) 

Bytes 

0: X'FF* if resource is in use, X'00' if 
resource is not in use 



1-3: 
4: 



Unused 



Bit 0=1 



Another task waiting for 
the resource 
No other task waiting for 
the resource 



SVC 47: Provides identification to the 
supervisor for MICR type device multiple 
waits (WAITF) . The same routine is entered 
as for SVC 29. However, when no ECB is 
posted, the task's PSW is not modified to 
reissue the SVC, as is dene when SVC 29 is 
issued. 

SVC 48: Fetches a CRT-transient phase and 
makes the CRT task dispatchable. The 
program issuing an SVC 4 8 is canceled if 
the PSW protection key dees not equal zero. 



The first SVC 48 
to activate the CRT 
and to load the CRT 
into the CRT transi 
Eefore control is g 
SVC 48 is modified, 
it is called, it wi 
specified phase but 
dispatchable. 



is issued at IPL time 
hooks in the supervisor 
root phase $$BOCRTA 

ent area (CRTTRNS) . 

iven to task selection, 
so that the next time 

11 not only lead the 
also make the CRT task 



5-7: ECB address of current resource owner | SVC 49: Used by VTAM. 



SVC ,50: Reserved for LIOCS error recovery. 



SVC_44: Supplies support for specific 
requests to write records on the recorder 
file. The SVC44 routine checks fcr an 
available error queue entry. If none is 
available, the SVC is reissued until an 
entry becomes available. The error queue 
name is then set to call $$ABERA3, and the 
task select exit is taken. 

$$ABERA3 writes the record and takes the 
supervisor ignore exit. A second $$A 
transient is called to write messages, if 
necessary, before returning to the 
supervisor ignore exit. 



SVC 45: Provides emulator interface. It 
posts the partition communications region 
byte 134, bit 1, indicating that the 
emulator is active. 

Additional action depends on the 
contents of register 1. If this register 
contains a zero value, no additional action 
is taken. 

If register 1 is negative, it contains 
an ECB address (with the high order bit 
on), which is made positive and stored in 
the entry for the issuing partition in the 
emulator ECB table (see Figure 4.12). If 
register 1 is positive, it contains a PUB 
address. The mode setting in this PUB 
(byte 5) is changed. 

§VC_46: Provides OLTEP with the facility 
to operate in the supervisory state. In 
the initial issuing of the SVC, register 1 
contains an entry point in OLTEP. The next 
time the SVC is issued, register 1 is 
zeroed out, forcing task selection. 



EUECBTAB 



Attention 
Task 






BG 




F4 


■ — - , 




ECB address 


F3 






F2 




F1 





Figure 4.12. Emulator ECB Table (EUECBTAB) 



Note: The entries for Fl - F4 are only 
generated in a supervisor which supports 
the corresponding partitions. 

Eytes 104-107 (X f 68* - X • 6B ■ ) of the System 
Communications Region (SYSCOM) contain the 
address of the Emulator ECB Table. Label 
EUECBTAB identifies the first byte of the 
table. 

SVC 51: Provides the ability to determine 
the length of a phase without loading it. 
On entry to this routine register 1 must 
point to the storage address of the phase 
name. This 8 byte area must be followed by 
an area in which as many halfwords of the 
directory entry of the phase are returned 
to the user as he requested. The number of 
halfwords to be returned must be specified 
in byte 3 of this area. The number of 
halfwords returned tc the user is equal to 
the requested number plus 2. (See Figure 



Interrupt Processors 101 



Page of SY33-8551-1, revised June 30, 1974 , by TNL SN33-8770 



7.6: Layout of Directory Entry.) The area 
is not altered if no directory entry for 
the phase is found in the System Directory 
List, the System Core Image Library, or a 
Private Core Image Library. 

SVC 52; Returns the remaining tiire 
interval if IT=YES is specified at system 
generation. It provides support fcr the 

TTIMER macro. 

The remaining interval (in hundredths of 
seconds) to elapse before the timer 
interrupt occurs is returned as an unsigned 
32-bit binary number in general register 0. 

All zeros are returned if no timer 
interval was set by the program or task 
issuing the TTIMER macro. 

If the task issuing the TTIMER macro 
owns the current pending timer interrupt, 
the value in SYSTIMER is returned. 

If the task issuing the TTIMER macro 
owns an entry in the IT Request (ITREQ) 
table, the value returned is the sura of the 
values in SYSTIMER and the ITREQ table 
entry. 

If TTIMER CANCEL is specified, in 
addition to returning the remaining 
interval, SVC 52 deletes the relevant entry 
in the IT Table (ITTAB) and, if the 
multiple timer is not supported, 
initializes SYSTIMER. If the multiple 
timer is supported and the task owns an 
entry in the ITREQ table, then that entry 
is deleted. 

If the currently pending interval is to 
be canceled, TWTIMS, which contains the PIK 
or TIK of the task, is set to zero. This 
indicates that the interrupt, when it 
occurs, can be ignored because it is no 
longer required by a user task. 

I §¥£_j>3: Used by VTAM. 

SVC_54: This supervisor call provides 
supervisory support for the FREEREAL macro 
to release page frames to the main page 
pool. These page frames may be released 
from a real partition, the PDAID alternate 
area, or the SDAID buffer area. 

When the request is issued by the 
terminator (the page frames belonging to a 
real partition are freed) , the lower and 
upper addresses (on page boundary) of the 
real partition are passed to the SVC 54 
routine in the registers 2 and 3. 

A zero value in register 2 indicates 
that the request is issued by SDAID or 
PDAID. In this case the lower and upper 
limit of the area to be released are 
obtained from the boundary box (see Figure 



2.11). Control is passed immediately to 
task selection if no SDAID buffer area or 
PDAID alternate area exists. 

The page frames are freed, one after the 
other, by updating the corresponding page 
frame table entries (see Figure 5.1) as 
follows: 

• Bits 14 and 15 are reset (page frame 
returned to the selection pool; 
temporarily fixing in it allowed) . 

• Bytes 4 and 5 are set to X'FFFF' (page 
frame not in use) . 

The address bits of the corresponding page 
table entries are cleared, the page frame's 
storage key is set in bits 8-11, and bit 
is set to 1. 

The released page frames are added to Q00 
(refer to the section "Selection Pool 
Queues" in "Page Management"). 

If SVC 54 is called by the terminator, 
the number of active virtual partitions 
(entry in SYSCOM) is increased by one. 

If SVC 54 is called by SDAID cr PDAID, 
the boundary box is updated as follows: 

• The end of real storage address is 
inserted in the entry for the 
SDAID/PDAID area address. 

• The entry for the number of page frames 
in the main page pool is incremented by 
the number of freed page frames. 

The SVC 54 routine posts the Page Manager 
System Task ready to run (it may have been 
fix-bound) . It also posts any tasks that 
are waiting for a page frame ready to run. 



SVC _ 55: This supervisor call provides 
supervisory support fcr the GETREAL macro 
to request page frames from the main page 
pool for the SDAID buffer area or the PDAID 
alternate area (further en called 
SDAID/PDAID area). Control is passed 
immediately to task selection, if such a 
request is already in progress or if the 
SDAID/PDAID area already exists. 

The number of requested page frames is 
passed in register 0. This value is 
replaced by the number of page frames that 
are available for GETREAL, if this number 
is less than the requested number. After 
handling the request, the number of page 
frames taken from the main page pool and 
the address of the SDAID/PDAID area are 
passed to the user in the registers and 
1. Register contains zero and register 1 
contains the end address cf real storage, 
in case no page frames are available. 



102 DOS/VS Supervisor 



Page cf SY33-8551-1, revised September 30 r 1974, by TNL SN33-8790 



The SVC 55 routine passes the begin and 
end addresses of the requested SDAID/PDAID 
area as parameters to the GETREAL routine. 
Refer to the section "Handling of a GETREAL 
Request" in "Page Management". 

After the SDAID/PDAID area has been 
assigned, the SVC 55 routine updates the 
boundary box by inserting: 

• The address of the SDAID/PDAIC area, 

• The updated number cf page frames in the 
main page pool if NFARTS>1, or the end 
address of the real background partition 
if NPARTS=1. 

SVC_56: Reserved. 

§VC_57: Reserved. 

SVC 58: Issued by job contrcl to 
initialize a partition. The task issuing 
this SVC is canceled if it dees not run 
under a protection key of 0. 

The following parameters are passed to 
this routine: 



R2: 



R3, 
RU: 



R5: 



R7: 



begin address of partition (if 
execution in real mode to be 
initiated) . 

addresses of first and last page table 
entries for partition. 

The two low order bytes are used to 
initialize page table entries. If bit 
is on: virtual mode. 

address of uppermost byte available 
for problem program. 



If the next program in the partition is to 
run in virtual mode, the following action 
is taken: 



The address of the 
available to the probl 
the uppermost byte of 
lower byte determined 
the SIZE parameter of 
is moved to the parti t 
region. The instructi 
in the save area is ch 
routine, also located 
that will fetch the pr 



uppermost byte 
em program (either 
the partition, or a 
by jcb ccntrcl from 
the EXEC statement) 
ion communications 
on address in the PSW 
anged to point tc a 
in the save area, 
cgrair tc be executed. 



The page table entries, except the 
first, belonging to the virtual partition 
are initialized (invalidated). 

For any pages that are in real storage, 
the storage key of the associated page 
frames is set to zero and the page frame 
table entries are initialized. They are 
set to unused and are queued to Q00 of the 
selection pool (refer to the section 



"Selection Peel" in "Page Management") . 
For this the same routines are used as 
described fcr SVC 59 (see SVC 59, below). 
The Translation Lock Aside Buffer in the 
CPU (if there is one), is made invalid, 
a page is found tc be TFIXed, the system 
enters a hard wait state. 



If 



If the partition is tc run in real mode, 
in addition tc the acticn described abeve, 
the following action is taken: 

• The partition save area is mcved tc a 
work area in the supervisor, updated 
there, and moved tc the real partition. 

• hll P a 9 e table entries belonging to the 
virtual partition are initialized. 

• The fifth byte in the PIE is set tc 
indicate real mede and the entry in 
SYSCCM indicating the number cf active 
virtual partitions is decreased by cne. 
The appropriate entry in the PIE is 
updated to point to the real save area 
instead cf the virtual. 

Tc reserve the page frames that are 
required fcr the partition tc run in real 
mede, the GETREAL routines are used (refer 
to the section "Handling cf a GETREAL 
Request" in "Page Management"). The number 
cf the page frames tc be reserved depends 
en the SIZE parameter cf the EXEC statement 
(analyzed by job contrcl), or en the size 
cf the real partition. 



If, 
a page 
tc be f 
initial 
X f 2D') . 
that is 
the sup 
partiti 
cemmuni 
byte av 
updated 



during the ex 
frame in the 
ailing, the j 
ized is cance 
If it is no 
failing, the 
erviscr is mc 
on and the en 
catiens regie 
ailable tc th 



ecuticn cf the GETREAL 

real partition is found 

cb that is tc be 

led (cancel cede 

t the first page frame 

save area set up in 
ved tc the real 
try in the partition 
n fcr the uppermost 
e problem program is 



If th 
first pa 
initiali 
FIE is c 
area, vi 
the save 
moved to 
entry in 
region f 
the prcb 



e first page f 

ge cf the virt 

zed, the save 

hanged to poin 

rtual mode is 

area set up i 

the virtual p 

the partition 

or the uppermo 

lem program is 



rame is failing, the 
ual partition is 
area pointer in the 
t tc the virtual save 
posted in the PIB, 
n the supervisor is 
artiticn and the 

cemmuni catiens 
st byte available to 

updated. 



SVC 59: Initializes the page table and 
page frame table entries belonging to 
specific pages. The task issuing an SVC 59 
is canceled if the prctecticn key in the 
PSW is not 0. 

Upon entry register 3 contains the 
address cf page table entry cf the lowest 



Interrupt Processors 103 



page and register four the address of the 
page table entry of the highest page. 
Register 5 contains the information which 
roust go into the page table entries in its 
lower two bytes. Each page table entry 
between the two limits is initialized by 
storing the lower two bytes (with storage 
key and bit to set the page invalid, see 
Figure 5.2) of register 5 into the entry. 
If the page referred to by an entry is in 
real storage, the page frame table entry of 
the corresponding page frame is initialized 
as follows: 

• The frame is marked as unused (bytes 4 
and 5 are set to X'FFFF') and given to 
the selection pool (byte 1 bit 6 is set 
to 0). 

• The frame is removed from its queue (if 
it was queued) and added to COO. (Refer 
to the section "Page Management" for an 
explanation of selection peel and QCO.) 



If the corresponding entry in the page 
frame table extension (PFIX counter) is not 
zero, it is set to 0. The key of the 
storage block in this page frame is set to 
zero. The process is repeated until the 
entries for all requested pages have been 
initialized. 

SVC 60 : Calculates from the real address, 

the virtual address of a location within 
the data area of an I/C request. 



Eefore 
register 8 
CCW,, and g 
the displa 
from the s 
data addre 
Addressing 
CCW, the s 
address an 
15. 



issuing this SVC, 
must contain the 
eneral register 
cement of the desi 
tart of the I/O ar 
ss or the address 

list (IDAL), spec 
upervisor calculat 
d returns it in ge 



general 

address cf the 
must contain 
red address 
ea. Using the 
cf the Indirect 
ified in the 
es the virtual 
neral register 



If the real address is invalid (in an 
unused page frame or beyond the end cf real 
storage), all zeros are returned. 

SVC 61; Provides the supervisor support 
for the imperative GETVIS iracrc. It 
reserves part of the GETVIS area which may 
either be part of a virtual partition or 
part of the Shared Virtual Area (SVA) . 

Cn successful completion cf the 
operation, X - 00" is returned in general 



register 15; the start address cf the 
reserved area returned in general register 
1; and the length of the area, which must 
be specified by the user, is contained in 
general register 0. 

If the GETVIS area is part cf a 
partition, the length cf the specified area 
must be a multiple of 128 bytes; if it is 
part of the SVA, it must be a multiple of 
512 bytes. If the specified length is not 
a multiple cf 128 cr 512, it is rounded to 
the next higher multiple cf 128 cr 512, 
respectively. 

Reservation of the required area is 
registered in the virtual storage Table 
(VISTAE) cf either the SVA GETVIS area or 
the partition GETVIS area. 



The VISTAB is a bitstring th 
byte 1024 cf the GETVIS area 
partition GETVIS area, each tit 
VISTAB refers to 128 bytes; the 
VISTAB bit refers to the first 
which start at byte 2048 cf the 
area. In the SVA GETVIS area, 
the VISTAE refers to 512 bytes; 
VISTAB bit corresponds to the f 
bytes which start at byte 4096 
GETVIS area. If the VISTAE hit 
associated 128 or 512 bytes are 
reserved; if it is 0, they are 



at starts at 
In a 

in the 

first 
128 bytes 

GETVIS 
each bit in 

the first 
irst 512 
cf the 

is 1, the 

already 
free. 



Each bit in VISTAE is checked until a 
string of zeros representing the required 
length is found. The area associated with 
this bit string is then reserved by setting 
each bit tc 1. The start address cf the 
reserved area is placed in general register 
1, and the successful completion cede is 
returned in general register 15. 

If the operand PAGE is specified, 
general register 15, bit 31, is set tc 1 
before searching for the requested area 
starts. GETVIS then lecks fcr free blccks 
that start on a page boundary. Free blocks 
that do net start on a page boundary are 
ignored. 

If the operand POCL is specified, 
general register 15, bit 30, is set to 1 
before searching for the requested area 
begins. Searching then starts at the 
address specified in general register 1. 

If the operand SVA is specified, general 
register 15, bit 29, is set tc 1 and the 
SVA GETVIS area is searched for the 



104 DCS/VS Supervisor 



requested storage block. Otherwise, the 
partition GETVIS area is searched. 



Return Codes in Register 15: The following 
codes are returned in register 15 after a 
GETVIS has been issued: 

X'OO' GETVIS completed successfully. 

X'OU' The GETVIS area is (a) OK if it is 

part of a partition, or (b) OK or 2K 
if it is part of the SVA. 

X'08' The GETVIS macro was issued by a 
program running in real ircde. 

X' OC No more virtual storage is available 
in the GETVIS area, or the length 
specified is smaller than OK. 



SVC 62: Provides the supervisor support 
for the imperative macro FREEVIS. It 
releases a block of virtual storage. The 
start address of the area to be released is 
contained in register 1; the length of the 
area to be released is in register 0. 

If the operand SVA is specified, general 
register 15, bit 29, is set to 1 and the 
SVA GETVIS area is searched for the storage 
block to be released. Otherwise, the 
partition GETVIS area is searched. 

The area is released by setting the 
associated bits in the VISTAE tc zero. 
(The VISTAE is explained in SVC 61.) 

Return Codes in Register 15: The fcllcwing 
codes are returned in register 15 after a 
FREEVIS has been issued: 

X'00' FREEVIS completed successfully. 

X'04' The GETVIS area is (a) OK if it is a 
part of a partition, or (b) OK if it 
is in the SVA. 

X'08' The FREEVIS macro was issued by a 
program running in real mode. 

X'OC The specified address is not within 
the GETVIS area or the address is 
not (a) a multiple of 128 bytes if 
the GETVIS area is part cf a 
partition, or (b) a multiple of 512 
bytes if the GETVIS area is in the 
SVA. 

X'10' The specified storage block 

(ADBRESS+LENGTH) to be released 
exceeds the GETVIS area, or the 
length specified is smaller than 
zero. 

If the return code is not zero, no action 
] is taken by FREEVIS. 



SVC 63: Allows supervisor controlled 
access to system resources as requested by 
the internal macro USE. The use of one or 
more of the following system rescurces may 
be requested: 



Type I System Resources 

• procedure library. 

Type I system resources are those which are 
frequently used by a partition for the 
duration cf one or mere jets. Type I 
resources are mainly used by job control. 

Type II System Resources 

• VSAM master catalcg cpen routine 

• label cylinder en SYSRES 

• SYSRES file 

• VSAM master catalog 

• all disk packs represented by their 
VTOCs. 



Type II system resources are those which 
are normally used for a shcrt pericd cf 
time, that is, never longer than for one 
jet step. Type II rescurces are mainly 
used by OPEN, CLOSE, and EOV routines. 



When 
pcint tc 
requeste 
is assig 
Resource 
the cwne 
cf usage 
Figure 4 
RUR, the 
raires th 
each RUR 



SVC 63 is call 
the list cf r 

d. If a resou 

ned tc the tas 
Usage Record 

r(s) cf the re 
(shared or 

. 13, which she 
layout of the 

at must be in 



ed, register 1 must 
escurces that are 
rce is available, it 
k by means cf a 
(RUR) that identifies 
source and the type 
exclusive) . See 
ws the fcrrrat cf a 

RUR table, and the 
the USE macro for 



If a resource is net available and 
FAIL=RETURN is specified in the USE macro, 
ccntrcl is returned tc the interrupted task 
and the return code 4 (= resource 
unavailable) is passed in register 0. 
Register 1 points to the resource that is 
unavailable. The requests for rescurces 
following the unavailable resource are 
ignored. 



If a resource is not available and the 
cperand WAIT is specified in the USE macrc, 
the task is put in the wait state and the 
resource it is waiting fcr is indicated in 
the wait list. The wait list is located 
immediately behind the RUR table. It 



Interrupt Processors 105 



contains a 2-byte entry for each task in 
ascending order of PIKs, that is, the first 
entry refers to the attention task 
(PIK=X , 00 e ), the second to the EG task 
(PIK=X , 10 , ) r etc. The wait list has 16 
entries if AP=YES, otherwise the number of 
entries is equal to NPARTS plus 1. An 
entry in the wait list contains either the 
code of the resource for which the task is 
waiting or X'FFFF' (= task is net waiting 
for a resource) . The various resource 
codes are: 



RURTAB 



££2 



SYSPL = RUR for Proc . Library 



SYSMCO = 



RUR for VSAM Master 
Catalog Open Routine 



SYSLBL = RUR for Label Cylinder 



SYSRES = RUR for IJSYSRS File 



SYSCTLG 



RUR for VSAM Master 
' Catalog 



SYSVTOC= RUR for all VTOCs 



Ownership bits ■ 



1 



Ownership bits 
for Job Control 

Flags 



5§§°u£ce_Name 
in USE Macro 



Associated Resource Code 
in Wait List 



Figure 4.13. Resource Usage Record Tatle 
(RURTAE) 



SYSPL 

SYSWCO 

SYSLBL 

SYSRES 

SYSCTLG 

SYSVTOC 



x'sooo' 

X'COOO' 
x'COOl' 
X'C002' 
X'COCn' 
X'COOU' 



The resource is assigned to the task after 
it has been released. Any following 
requests are then processed. 



By t e_ : 
Eit 3: 1 

5: 1 

6 

7 



Another task waiting for this 

resource 
1 = Resource shared aircng owners 

indicated 
1 = Resource used exclusively by 

indicated task 
1 = Shared or exclusive use of 

resource 



A task issuing the USE nacre with the 
operand WAIT is canceled if it requests use 
of a resource it already owns exclusively 
or if it requests exclusive use of a 
resource for which it has already shared 
use . 

The task is also canceled if the 
parameter list in the USE nracro is invalid 
(for instance, if resource nair.es are net in 
ascending order) . 



Ey t e_l : 



Eit 2 
3 
4 
5 
6 



Used by Job Ccntrcl tc indicate 
that the resource is to be held 
fcr the duration cf a jcb. 

1 = TIK or PIK is X'50' 

1 = TIK or PIK is X'40' 

1 = TIK or PIK is X'30' 

1 = TIK or PIK is X'20' 

1 = TIK or PIK is X'lO' 



Ey t e_ 2 : 



SVC 

spec 

When 

poin 

be r 

one 

owne 

0. 

the 

it i 

not 



64 : Re 
ified i 
SVC 6 4 
t to th 
eleased 
after t 
rship b 
(Refer 
RURs) . 
s given 
own. 



leases 
n the 

is ca 

e list 

The 

he oth 

it in 

tc SVC 

A rel 

for a 



all the resources 
internal iracrc RELEASE. 
lied, register 1 rrust 

of resources that are tc 

resources are released, 
er, by setting the 
the corresponding RURs to 

63 fcr a description of 
ease request is ignored if 

resource the task does 



Eit 


1 


= 


TIK 


is 


X'FO' 


1 


1 


= 


TIK 


is 


X'EO' 


2 


■ 1 


= 


TIK 


is 


X'DC 


3 


1 


= 


TIK 


is 


X'CO' 


4 


1 


= 


TIK 


is 


X'EO' 


5 


1 


= 


TIK 


is 


X'AO' 


6 


: 1 


= 


TIK 


is 


X'9C' 


7 


. 1 


= 


TIK 


is 


X'80 1 



Ey t e_3 : 



An SVC 64 is normally issued by the Eit 

terrrinator ($$BEOJ) and $$EECJS1) with a 1 

zero value in register 1. If SVC 64 is 2 

called after the end of a jcb step, it 3 

releases all resources owned by the task 4 

except for which the Jcb Ccntrcl cwner bit 5 

in byte 1 of the RUR is on (see Figure 6 

4.13). 7 



TIK 
TIK 
TIK 
TIK 
TIK 
TIK 
TIK 
TIK 



IS 

is 
or 
or 
or 
or 
or 
or 



X'70' 

X'60' 

PIK is 

PIK 

PIK 

PIK 

PIK 

PIK 



is 
is 
is 
is 
is 



X'50 1 
X'40 f 
X^O' 
X'20' 
X'10 1 
X' CO' 



(BG) 
(Attention) 



If SVC 64 is entered and register 1 is 

negative, all resources owned by the task 

are released, including these that are 

marked in byte 1 of the RUR. 



N c te : Fcr explanation cf TIK and PIK see 
Task Interrupt Key and Partition 
Identification Key. Label RURTAE 
identifies the first byte of the table. 



106 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



SVC_65: Loads a phase dynamically when 
called by the internal macro CDLOAD. The 
name of the phase to be loaded, specified 
as first operand in the CDLOAD macro, must 
be pointed to by register 1 before SVC 65 
is entered. 

SVC 65 first issues a LOAD with the 
parameters DE=YES and TXT=NC f that is, the 
FETCH routine will move only the directory 
entry of the requested phase into the area 
specified by SVC 65 (a 34-byte area 
starting at CALLNAME in the system save 
area of the corresponding task) . 

SVC 65 then checks the directory entry. 
If the phase is not found, ccntrcl is 
passed to ERR22. If the phase is loaded in 
the SVA, the required parameters are 
retrieved from the directory entry, the 
address of the load point is moved to 
register 0, the address of the entry point 
is placed in register 1, and the length of 
the phase is stored in register 14. In 
addition, return code x*00' (successful 
completion) is passed in register 15. 

If the phase is not loaded in the SVA, 
SVC 65 checks the anchor table of the 
partition (see Figure 4.14 for the layout 
of ANCHTAB) to determine whether the phase 
has already been loaded in the partition. 
If so, the parameters are retrieved from 
the ANCHTAB entry and stored as described 
above. 

If the phase name is not in the anchor 
table, the phase name is inserted in the 
first free place in the table and the 
status switch for the phase is set to 
X'00 f . SVC 65 then obtains the length of 
the phase to be loaded from the directory 
entry and passes this information to the 
GETVIS routine (see SVC_61) . 

The GETVIS routine reserves the required 
storage (see SVC 61) and returns the load 
address of the phase to SVC 65. SVC 6 5 



- 4 Bytes 



End Address of 
Anchor Table 



4 Bytes 



Reserved 



- 8 Bytes 



Used for VSAM 
Catalog 



1st Entry 



2nd Entry 



49th Entry 



50th Entry 



then loads the phase by issuing a LOAD with 
the parameters TXT=YES and DE=YES. After 
completion of the load operation, the load 
point,, the entry point, and the length of 
the phase are stored in the anchor table 
and in registers 0, 1, and 14, 
respectively. Successful completion is 
indicated by passing the return code 
(X'00') in register 15. 

When multitasking is supported (AP=YES) , 
it is possible that a phase requested by a 
task is in the process of being loaded by 
another task. This is indicated in the 
anchor table entry fcr the phase (status 
switch =X , FF'). The task requesting such a 
phase is made resource-bcund . 

If the anchor table is full and the 
phase cannot be stored in the table, return 
code X'16' is passed in register 15. A 
task is canceled if the requested phase is 
not contained in the cere image library. 



SVC 66 ; Indicates mode in which the 
program is running. The routine tests the 
FIB DAT flag (fifth byte in PIB) and 
returns in register 1 if the program is 
running in virtual mode (PIB DAT Flag = 
X'80'). If the program is running in real 
mode, 4 is returned in register 1. 

SVC_67: Fixes one or more pages as 
requested by the PFIX macro. When SVC 67 
is entered, register 1 must point to the 
list of pages that are to be fixed. Each 
entry in the list consists of 8 bytes. The 
first four bytes contain the beginning 
address of the area that is to be fixed and 
the last four bytes contain the length of 
that area. 

The PFIX requests are gated, that is, a 
task is set to PFIX-bound if it issues a 
PFIX request for a partition for which 
another PFIX request is still being 
processed. 



Format 
of any /' 

Entry" 



Phase 


Load 


Entry 


Length of 


Name 


Point 


Point 


Phase 


7 


8 11 


12 15 


16 19 



Figure 4,14. Anchor Table (ANCHTAE) 

The anchor table is located at the beginning of the GETVIS area in the virtual partition. 

Byte 16 - Status Switch: 

X'OO* = Phase must be loaded. 

X'7F* = Phase is already in storage. 

X'FF' = Requested phase is just leaded by another task (only if AP=YES). 



Interrupt Processors 107 



Before a page can be fixed, a page frame 
must be selected for the page. The address 
of the reserved page frame is stored in the 
table FIXWTAB either by the PFIX routine 
itself or by the PFREE (see SVC 68) if a 
page has first to be freed before the page 
frame can be reserved. The format of 
FIXWTAB is shown in Figure U.15. 



00 00 00 



4 Bytes 



Address of Reserved 
Page Frame Table Entry 



Figure 4.15. FIXWTAB 



First entry: 

Byte 0: PIK of issuer of GETREAL request 
(SVC 55). Reset to zero when 
request has been handled. 

Following entries (one for each partition) : 

Byte 0: TIK of task issuing the PFIX 

request. Inserted when the PFIX 
request is started. Reset to 
after the request has been 
handled. 

Note: The number of entries generated is 
equal to NPARTS+1, if PFIX=YES. Only the 
first byte of the first entry is generated 
of PFIX=N0. 

The addrerses in FIXWTAB are used to fix 
the page. The PFIX routines fix the pages, 
one after the other, until the list of 
requests is exhausted. How a page is 
actually fixed is described in the section 
"Page Management" under "Handling cf a PFIX 
Request". 

If a page to be fixed has an invalid 
address, all pages that have already been 
fixed for the request are freed, return 
code 12 is placed in register 15, and 
control is returned to task selection. 
Control is also returned to task selection 
and the already fixed pages are freed if 
not enough page frames are available to fix 
the requested number of pages. Return code 
4 will be passed in register 15 if the real 
partition is too small to ever satisfy the 
request. Return code 8 is passed, if the 
partition is large enough to satisfy the 
request but not enough page frames are 
available to satisfy the request at this 
time. 



If no page frame is available but some 
of them are only temporarily fixed, all 
page frames in the partition are set to 
"not temporarily fixable" and the task is 
put into the wait state. Processing of the 
request continues after a page has been 
freed by a TFREE request. 

The PFIX request is ignored if it was 
issued by a program running in real mode, 
and return code is passed in register 15. 



SVC_68: Frees one or more pages as 
requested ty the PFREE macro. A PFREE 
request may come from a user task or from 
the RSTRT command processor . When SVC 6 8 
is entered, register 1 points to the list 
cf pages tc be freed. Each entry in the 
list is 8 bytes long. The first 4 bytes 
contain the address cf the area to be freed 
and the last 4 bytes contain the length of 
that area. The pages are freed cne after 
the other until the list of requests is 
exhausted. If a page is not in real 
storage, the PFREE request for this page is 
ignored. 

When a page is freed, the PFIX counter 
(PFTX) is decreased by 1 . If the counter 
is net zerc after 1 has teen subtracted or 
if the page frame is temporarily fixed, the 
next page to be freed is determined. 
Otherwise the page frame is released and 
added to the hold queue cf the selection 
pool. (Refer to the section "Page 
Management" for a description of the 
selection pool and the PFIX counter. ) Any 
task waiting for a freed page is then 
posted and the next page to be freed is 
selected if a page may be temporarily fixed 
in the released page frame (tit 15 in the 
page frame table entry is 0) . If a page 
may not be fixed in the released page 
frame, the address of the page frame is 
inserted into FIXWTAB (see SVC 67) and thus 
reserved for the next PFIX request. All 
page frames in the partition, except the 
reserved cne, are set to temporarily 
fixable before the next request is 
processed. 

SVC 69: Returns the real address of the 
virtual address specified in the REALAD 
macro. On entry to SVC 69, the virtual 
address must be contained in register 1. 
The real address is returned in register 0. 

No address is returned if 

• the page containing the address is not 
in real storage; 

• the real address is invalid; 

• the address is within a page that is not 
fixed. 



108 DOS/VS Supervisor 



SVC 70; Returns the virtual address of the 
real address specified in the VIRTAD macro. 
On entry to the routine, the real address 
roust be contained in register 1, and 
register must contain zero. The virtual 
address is returned in register 0. 

No address is returned (register contains 
zero) if 



This information is stored here only 
when a page fault occurs in a 
supervisor service working for the 
task, while another page fault is 
queued for the task in the Page 
Queue, otherwise zero. 



NO SETPFA Issued 



• the address is contained in a page that 
is not used; 

• the real address is invalid; 

• the address is within a page that is not 
fixed. 



SVC 71; Provides support for the SETPFA 
macro. SVC 71 establishes linkage between 
the supervisor and the user-written page 
fault appendage routine by storing the 
address of the routine in the page fault 
appendage table PFATAB. (See Figure 4.16 
for the format of PFATAB.) The address of 
the appendage routine must be contained in 
register when the routine is entered. 

PFATAB 



BG 



F4 



F3 



F2 



Fl 



Subtask 



Subtask 



Subtask 



PHO 



Routine Address P°ge Fault Information 



- F lag Byte 



Figure 4.16, 

SETPFA Issued 
By t e s ; 

0^ Bit 0: 
1: 



Page Fault Handling Overlap 
Option Table (PFATAE) 



2-7: 



1 = A page fault from the 

task is in the Page Queue 

1 = A page fault occurring in 
a supervisor service of 
the task is queued in the 
Page Queue Table 

Unused 



1-3: 



4-7: 



Address of the user's page fault 
appendage routine 

Page fault information (for detailed 
layout see Page Queue Table) 



Bytes 0-7: zero 

Note: One table entry is generated for 
each partition supported. With 
asynchronous processing support, the table 
always comprises 15 entries; the subtask 
entries occupy the higher address locations 
in the table. Label PFATAB identifies the 
first byte of the table. 

PFATAB is only built if PHO=YES was 
specified in the SUPVR macro at supervisor 
generation. 

SVC 72: Gets or releases a copy block used 
for channel program translation. The 
program issuing an SVC 72 is canceled if 
the PSW protection key dees not equal 0. 

If a request for copy blocks is made, 
the chain cf free copy blocks is searched. 
The requesting task is set into the wait 
state if the chain is empty. If the chain 
is not empty, a copy block is dequeued from 
the chain. 

A copy block is released by enqueueing 
it to the chain of free blocks. Any tasks 
waiting for copy blocks are then posted. 

SVC 73 : Authorizes linkage to a channel 
end appendage routine by setting byte 134 
bit 6 in the partition communications 
region to 1. 

SVC 74: Fixes a page in case cf restart. 
When a restart is made, a page has to be 
fixed in the same page frame in which it 
was fixed at checkpoint time. On entry to 
SVC 74, register 1 points to a list of 
pages that have to be fixed. Each entry in 
the list consists of 8 bytes and has the 
following format: 

r T T n 

(Address of Page|PFIX | Address of Page | 
| to be Fixed | Counter (Frame | 

|0 3|4 *|5 7| 

i x x J 

♦Indicates the number cf times the page has 
to be fixed. 

Figure 4.17. Restart-PFIX Parameter List 
Entry 

SVC 74 inserts the address of the reserved 
page frame into the FIXWTAB entry (see 
Figure 4.17) and transfers ccntrcl to the 



Interrupt processors 109 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



PFIX routines to fix the page (see SVC 67) . 
If more pages have to be fixed (indicated 
by bit 31 in the FIXWTAB entry) control is 
returned to SVC 74 to select the next page 
to be fixed. The process is repeated until 
all pages in the list have been fixed. 

SVC_75: Calculates the sector value fcr a 
position on a track of a DASD device 
supporting Rotational Position Sensing 
(RPS). As requested by the SECTVAL macro 
instruction, the routine calculates the 
position for either fixed or variable 
length records. The sector value is used 
as the argument for the RPS channel command 
Set Sector. 

On entry to SVC 75 for fixed length 
records. Register contains the data 
length, key length, and record number. On 
entry to SVC 75 for variable length 
records, Register contains the number of 
bytes used on the track up to the current 
record, the record number, and an 
indication to whether the records are 
keyed. In either case, Register 1 contains 
a device type code (3330=X'04', 
33ao=X , 08'). Register contains the 
calculated sector value on return to the 
caller. 

If the supervisor was generated without 
RPS specified in the FOPT macro 
instruction, the issuing program is 
canceled. 

SVC 76: Initiates the recording of a RMSR 
record on the Recorder File (SYSREC) . If 
the system runs under VM/370, net all 
information in the record may be valid. 
VM/370 gains control to perform the 
recording function. When not running under 
VM/370, the effect of this SVC is the same 
as for SVC 15 (SYSIO) . 

The address of the user's CCB must be 
supplied in general register 1 before this 
SVC is issued. The data address must be 
supplied in general register 0. Register 1 
must have the high-order bit on to indicate 
that VM/37 must intercept the interrup- 
tion. After having intercepted, VM/370 
zeros out this register so that on return, 
the issuing program can check whether 
VM/370 handled the I/O. 

SVC_77: Used by routines which print the 
CCW address of a failing I/C operation, 
such as the ERP message writer. The 
virtual address of a copied CCW is 
calculated. On entry to the SVC 77 
routine, register contains the address of 
the copied CCW, and register 1 the address 
of the copied CCB. 

The retranslated CCW address is returned 
in register 0, if the address passed in 
this register by the user is found to be 



actually pointing to a copied CCW related 
to the I/O operation being handled. If the 
user passed an invalid address, register 
will contain the value zero en return. The 
contents of register 1 are net changed. 



SVC 85; Provides the support for the 
RELPAG macro. Part of the cede is common 
for both this SVC and SVC 86 (FCEPGOUT 
macro). If the code is entered as a result 
of an SVC 85, byte SVCID is set to C'R' to 
indicate that a RELPAG macro is to be 
processed. 

when the SVC routine receives control, 
register 1 points to a list cf 8-byte area 
specifications that are to be processed. 
The specified beginning and end addresses 
hardly ever coincide with the beginning and 
end addresses, respectively, of a page. 
Therefore, these addresses have to be 
changed as shown below before an area 
specification can be processed. 

-Specified beginning address 



T 



. — Address of first fully contained page 



<* — Page ■ 



-Page - 
ii 



I — Page ■ 



These pages can 

be handled Z 

End address of last fully contained page+1 * 

Specified end address 

♦The specified addresses are changed to the 
corresponding page boundaries. 



Page handling for an area specification is 
done in a loop at NEWPAGE. This loop is 
executed ence for each page that is fully 
contained within a specified area. The 
loop checks each page fcr the conditions 
listed below, sets the appropriate bit in 
the return code if the condition is found 
to exist, and discontinues the processing 
fcr the page. The conditions are: 



• The page is outside the address range of 
the requesting program's partition. 

• The page is currently fixed. 

• The page has an entry in the page queue 
PGQU. 



For a page that can be handled, the loop 
computes the location of the associated 
entries in the page table and the page 
frame table. Further processing for the 
page depends on whether a RELPAG or a 
FCEPGOUT request is being processed. 



110 DOS/VS Supervisor 



Processing a RELPAG request (SVC 85) : 
If bit 13 of the page-table entry (see 
Figure 5.02 for its format) is 1, that is, 
the page is marked as not in real storage, 
the loop is reentered to handle the next 
(fully contained) page. If the bit is 0, 
the loop sets it to 1 and inserts the 
storage key of the requesting program's 
partition into the page's page-table entry 
(bits 8-11), In addition, the lccp removes 
the associated page-frame table entry from 
its current queue location and enqueues it 
at the beginning of page-frame selection 
queue Q00. This makes the page frame 
available for reuse, and a later reference 
to the page does not result in a page-in 
operation. 



Processing a FCEPGQUT request (SVC 86) ; 



If bit 13 
Figure 5.0 
the page i 
the loop i 
(fully con 
the loop s 
bit to 0; 
associated 
current qu 
the beginn 



of the page-table 
2 for its format) 
s marked as not in 
s reentered to han 
tained) page. If 
ets the page frame 
in addition, the 1 

page-frame table 
eue location and e 
ing of 



entry (see 
is 1, that is, 
real storage, 
die the next 
the bit is 0, 
' s reference 
cop removes the 
entry from its 
nqueues it at 



queue Q00 if the change bit is 0, 
queue Q01 if the change bit is 1. 



Looping is controlled by incrementing the 
value in BEGAD by 2K each time the loop is 
executed and by comparing this value with 
the value in ENDADR. EEGAD is initially 
set to the beginning address of the first 
fully contained page within a specified 
area, ENDADR to the end address cf the last 
fully contained page plus 1. When the 
values in EEGAD and ENDADR are equal, 
register 1 is incremented by 8 to point to 
the next area specification and control is 
passed to label CHKEND. 

When the first byte of the entry pointed 
to by register 1 contains a nonzero value, 
the current page-handling request (a RELPAG 
or a FCEPGCUT macro) has been serviced and 
control is returned to the program that 
issued the request. 

A return code is provided in register 15 
as follows: 



X 1 00" 
X" 02» 



»na« = 



X'04 



Successful completion cf the page- 
handling request. 

One or more negative area lengths 
were specified. 

One cr more of the pages tc be 
handled were outside the requesting 
program's partition — fcr these 
pages, the request was igncred. 



X f 08' = Cne or more cf the pages tc be 
handled were fixed — fcr these 
pages, the request was ignored; or 
cne or more cf the pages tc be 
handled had an entry in the page 
queue PGQU -- fcr these pages,, the 
request was ignored. 



Note: Several or all cf conditicns 2, 4, 
and 8 may be combined. 



SVC 86: When a program issues a FCEPGCUT 
macro, this SVC provides the required 
linkage tc the common support fcr that 
macro and the RELPAG macrc. This SVC 
routine sets byte SVCID tc CO' tc indicate 
that a FCEPGCUT macrc is tc be processed 
and then transfers ccntrcl tc the SVC 85 
routine at label EEGIN. Fcr further 
information, see SVC 8 5 above. 



SVC_87: Provides support for the PAGEIN 
macrc by initiating the PAGEIN task. 



The SVC routine ignores a user PAGEIN 
request if one of the following conditions 
exists : 



The PAGEIN macrc was issued by a program 
running in real mcde. 

The list cf areas that are tc be paged 
in is net completely contained in the 
requesting program* s partition. 

The table PAGETAE (further described 
below) is full. 

The ECE address, if specified, is 
cutside the requesting program's 
partition. 



When the SVC routine receives control, 
register 1 points tc a list cf area 
specifications. Each entry in that list is 
eight bytes long and contains the 
f cllcwing : 



Eytes 0-3 
Eytes 4-7 



the address cf the area to be 

paged in. 

the length of that area minus 

1. 



Register points tc an ECE if an ECB 
address was given in the PAGEIN macrc, or 
it contains zero. 

For each PAGEIN request, the SVC routine 
builds an 8-byte entry in a table called 
PAGETAE (see Figure 4.18). 



Interrupt Processors 111 



Page of SY33-8551-1, revised September 30, 1974, by TNI SN33-8790 





ENTRY 1 


^ ^*^Sw 





1 


3 


4 


5 




ENTRY 2 


7 


»-» — 

7 


^ < 




I 1 
l I 




1 1 
1 1 




ENTRY n-1 














ENTRY n 





If the address cf an ECE was specified 
in the PAGEIN macro, information is 
returned in byte 2 cf that ECB as shewn 
below,. 



Figure 4.18. PAGEIN Table (FAGETAE) 

where TIK = identifier of task that issued 
the PAGEIN macrc 
IND = indicators as fcllcws; 

Bits Meaning if 1 

PAGEIN request has been completed. 

1 Reserved. 



One or irore of the requested pages are 
outside the requesting program's 
partition. 

One or irore negative length 
specifications were detected. 



6-7 Reserved. 

Al = pointer to be paged in. 

A2 = pointer to ECB (if used) or zerc. 



The entries cf the table are stacked (and 
processed by the PAGEIN task) FIFC. The 
maximum number of table entries is 
specified in the PAGEIN parameter cf the 
SUPVR system generation macrc. 

For a valid PAGEIN request, the SVC 
routine passes control to the PAGEIN task 
either directly or via task selection. 



Set by 
SVC PAGEIN 
Routine Task 



Ei t ^£anincj_if_l 

PAGEIN request completed 
(see Ncte below) . 

1 PAGEIN is full. 

2 Cne or more of the re- 
quested pages are cut- 
side the address range 
cf the requesting pro- 
gram's partition. 

3 At least one negative 
length has been detected 
in the processed area 
specifications. 

4 list cf areas that are 
to be paged-in is net 
completely contained in 
the requesting program's 
partition. 

5-7 Reserved. 



Note: Eit is set by the PAGEIN task if 
that task receives ccntrcl tc process the 
pertinent PAGEIN request, otherwise the bit 
is set by the SVC routine. 



SVC 90; Provides support for the PUTACCT 
macrc. If POWER/VS provides account 
support, the PCWER/VS account (SVC90/91) 
appendage is entered. Otherwise the user 
ECE is posted (byte 2, bit 0). 



SVC 91; Provides interface between Job 
Ccntrcl and PCWER/VS. On entry the 
PCWER/VS account (SVC90/91) appendage is 
given control. 



112 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 197U, by TNL SN33-8770 



PAGE MANAGEMENT 



For a page (2K bytes) of virtual storage 
one of the following conditions may be 
valid: 

• It may be assigned to a page frame in 
real storage, in which case its contents 
may be processed by the CPU. 

• If it is not in real storage but still a 
usable page, the correct contents may be 
on the page data set. 

• It may be usable but not yet contain any 
information, that is, logically cleared 
to zero. In this case it is not 
necessary to have a valid copy anywhere 
until it is used. 



2. Segment table, which contains one entry 
for each page table in virtual storage. 

3. Page tables, each cf which contains 
entries for 32 pages of virtual 
storage. Together the page tables 
contain entries for every page in 
virtual storage. 



The last two tables are used by the DAT 
feature to translate virtual addresses into 
real addresses. 



PAGE FRAME TABLE 



• Its contents may be non-addressable, 
that is, it doesn't exist at the moment. 

Which of the above states a page has is 
indicated in its page table entry. The 
page table entries are initialized both 
during SYSGEN and again at IPL. During 
operation, however, the state of an 
individual page may be changed by one of 
the following conditions: 

• page translation exception (page fault) , 

• TFIX/TFREE (temporary fix and 
corresponding free) , 

• PFIX/PFREE (user fix and corresponding 
free) , or 

• GETREAL/FREEREAL request. 

• PAGEIN, RELPAG and FCEPGOUT requests. 



The above cond 
status of the 
the page frame 
the individual 
the page frame 
frame (PFTE) . 
of the supervi 
and page frame 
A third table, 
only by DAT to 
not modified d 



TABLES 



itions do not cnly affect the 
pages but also the status of 
s they occupy. The status of 
page frames is indicated in 
table entry fcr each page 
The page management routines 
sor use both the page tables 
tables in their cperaticn. 
the segment table, is used 
reference page tables and is 
uring system operation. 



The page frame table is built at supervisor 
generation time and contains one 8-byte 
entry for each 2K blcck cf real storage 
(page frame) as specified in the RSIZE 
parameter cf the VSTAB macro. 



Initialization of the Page Frame Table 



At IPL all page frame table entries which 
have corresponding page frames in real 
storage are initialized as follows: 



Bytes and 1 : 

Eits 0-13 = 

Bit 14 = if the page frame is not in the 
supervisor area; 

= 1 if the page frame is in the 
supervisor area. 

Eit 15 = 



Bytes U and 5 : 



X'FFFF 



a/20U8 

or 
ar20U8 



Pages in virtual storage are managed using 
three tables: 



• if the page frame is not in the 
supervisor area; 

(the page number) 
if the page frame is in the 
supervisor area, whereby a is the 
address of the ccrresponding page 
in virtual storage. 



Page frame table, which contains one 
entry for each page frame in real 
storage. 



All page frames in the selection pool 
(i.e., those not in the supervisor) are 
initially queued to Q00. 



Page Management 113 



PFT 






1 


2 


3 


4 


5 


6 


7 



Figure 5.1. Page Frame Table 



Bytes^O^l: 

Bits 0-10: 

11: 
12: 



13: 



14: 



15: 



Counter for temporary fixes 

(TFIX counter) 

Reserved for later use 

1 = PFIX request (into another 

page frame) pending for the 

page (NFF bit) 

If on, page frame is unusable 

(hardware failure, DRAP bit) 

If 0, page frame belongs tc 

selection pool (SP bit) 

1 = PFIX (different page) cr 

GETREAL request pending for the 

page __ frame (NF bit) 



N°£§ : If bit 12 or 15 is on ' TFIX requests 
for the page occupying the page frame are 
only honored when the page is already 
TFIXed (TFIX counter not equal to zero). 

Bytes 2-3: Pointer to next page frame in 
queue or to queue header if 
last element in the queue (all 
page frames in selection pcol 
are queued) 

5Ztes_U-5: If the frame is occupied: the 
page number (the virtual 
address of the page divided by 
2048); if unused X'FFFF' 

Bytes 6-7: Pointer to the previous frame 

in the queue or to queue header 
if first element in the queue 
(all page frames in the 
selection pool are queued) 

Note: Bytes 212-215 (X , D4' - X'D7') of the 
System Communication Region (SYSCOM) 
contain the address of the Page Frame 
Table. Label PFT identifies the first byte 
of the table. 

Pa.2e_Frame_Table_Extension_^FTX2 

For each page frame table entry in the 
system there is a one-byte entry in the 
page frame table extension. Each entry is 



a counter for the number of times a page 
has been permanently fixed in the page 
frame (PFIX counter) . 

Bytes 216-219 (X'D8 f - X'DB') of the 
System Communication Region (SYSCOM) 
contain the address of the Page Frame Table 
Extension. Label PFTX identifies the first 
byte of the table. 



SEGMENT AND PAGE TABLES 

When the supervisor is generated, one 
segment table is generated for the total of 
virtual storage. This table contains one 
entry for each 6 4K-byte segment of virtual 
storage (tctal of RSIZE and VSIZE) or part 
thereof. For each segment a page table is 
built containing 32 entries (one entry for 
each page in the segment) . The page tables 
are used to manage the pages in virtual 
storage and to provide the correct page 
frame number for the DAT feature. The 
segment table facilitates address 
translation by DAT. It is not used by the 
control program for page management 
activities. A schematic representation of 
the segment table and the page tables is 
shown in Figure 5.2. 



STAB (Segment table) 



PT (Page Table) 




Each entry in the seg- 
ment table corresponds 
to one 64K segment of 
virtual storage 



One page table is 
built for each seg- 
ment of virtual sto- 
rage and contains 
32 two-byte entries 



Figure 5.2. Segment and Page Tables 



Ey te s_02 1 : 

Hit 0: 1 = Address of any byte in the 
corresponding page is invalid 
0-12: Leftmost 13 bits of address of page 

in real storage if bit 13=0 
8-11: Storage key cf corresponding 
partition if bit 13=1 
13: = Page is in real storage 

1 = Page is not in real storage 



114 DOS/VS Supervisor 



1*4: Always zero 
15: Used bit: 



SELECTION FOOL 



1 = 



Page must be read frcir page 
data set (a valid copy of the 
page is on the page data set) 

Page need not be read frcm page 
data set (no valid copy of the 
page on the page data set) 



Note: Bits 4-7 may contain value cf PIK 
divided by 16 of partition which requires 
PFIXing of the page currently located in 
corresponding page frame. The page must be 
PFIXed in a reserved page frame in the 
correct real partition. 

Bytes 208-211 (X'DO' - X'D3') cf the System 
Communication Region (SYSCCW) contain the 
address of the Segment Table. Label STAB 
identifies the first byte cf the table. 
Label PT identifies the first byte cf the 
Page Table. 



E§2§_!I§bi§._Illiti§.ii z .ation 



After IPL page table entries are 
initialized as follows: 

• all page table entries belonging to the 
supervisor area (nucleus and transient 
areas) : 

Bit 13 = 

Eit 15 = 1 

Bits 0-12 the leftmost 13 bytes cf 
the address cf the 
corresponding page frame. 

• all page table entries for allocated 
real partitions: 

Eit 13 = 
Eit 15 = 1 
Eit 0=1 

Eits 8 - 11 = storage key of the 
partition 

• page table entries belonging to virtual 
partitions: 



The selection pool ccnsists cf all page 
frames which can be selected by the page 
management routines for paging. The page 
frames that can be selected are these which 
do net belong to the supervisor, tc active 
real partitions, or tc the PCAID alternate 
or SDAID buffer area, and which are not 
fixed in seme way (either by TFIX cr PFIX). 
The page frame table entries of the page 
frames in the selecticn peel are queued in 
one of five queues (GOO, Q01, QIC, 211, or 
HQ) , which are used for page frame 
selecticn. Each queue has a queue header, 
which is 8 bytes long (see Figure 5.3). 
Eytes 2 arc 3 point tc the first queue 
entry and bytes 6 and 7 tc the last queue 
entry. Hew the selecticr. peel page frame 
entries are queued is explained in the 
fcllcwing section and in the section en the 
page frame selection. 



Selecticr_Fccl_2ueues 

The Page Frame Table (PFT) entries of the 
page frames in the selecticn peel are 
organized in five queues. Each PFT entry 
cf the selection pool belongs to cne queue. 
Cne cf the queues is the Held Queue (HQ) . 
When the paae management routines have 
selected a page frame fcr a paging 
operation, its PFT entry is queued to the 
HQ. The selection mechanism (refer tc the 
section "Page Frame Selection") is such 
that because the PFT entry is in the HQ, 
the probability that this page frame is 
selected again for another paging cperaticn 
before it had a chance tc be used, is 
relatively small. 

The ether fcur queues are QCC, Q01, Q10, 
and Qll. To which of these queues a PFT 
entry is queued (if it dees net belong tc 
the HQ) depends on the setting cf the 
reference and change bits in the storage 
key of the corresponding page frame. The 
PFT entries are queued as indicated in the 
following table. 



C^eue 5^f§^§H2§_kli_ L _Chan2e_bit 
combinaticn 



Eit 13 = 1 
Eit 15 = 1 
Eit 0=0 
Eits 8 - 11 = storage key cf 

corresponding partition, 

all remaining page table entries: 

Eit 13 = 
Eit 15 = 1 
Eit 0=1 
Eits 1 - 12 = 



Q00 
Q01 
Q10 
Qll 



(0,0) 
(0,1) 
(1,0) 
(1,1) 



The Page Manager uses the Reset Reference 
Eit (RRE) instruction tc determine the 
setting cf the reference and change bits cf 
a page frame. The setting cf these bits 
before the instruction is executed is 
returned in the cenditicr. cede and 



Paae Wanacement 115 



determines in which queue the PFT entry is 
to be placed. Meanwhile the reference bit 
is reset. Therefore PFT entries iray be in 
Q10 or Qll while the corresponding 
reference bit is zero. Because cf this 
procedure the reference bit, change bit 
combination (0,1) can occur when the 
reference bit is reset by the RRE 
instruction. 



The five queues are identified by five 
fullwords Q00, Q10, HQ, Q01, and Qll, each 
containing the address of a queue header. 
The queue headers are 8 bytes long and 
situated immediately after the PFT. They 
contain the displacements (relative to the 
begin of the PFT) of the first and the last 
element of the queue. See Figures 5.3 and 
5.4. 



a. Queue Header with no PFT entries enqueued 





Queue Identifiers 






.0 

2 
u. 

1 


Q00 














t> 


* 




2 


Q10 












1 

I 


• 




HQ 












* 




3 
3 


Q01 












*" 




Qll 
















:i 



Figure 5.3. Selection Pool Queue 

Identifiers and Queue Headers 



F: Pointer to first PFT entry in queue 
L: Pointer to last PFT entry in queue 
P: Initially these pointers are as drawn. 
They may be changed by queue switching, 




V///X/VA///X//-7A 



b. Queue Header with one PFT entry enqueued 
PFT 




c. Queue Header with three PFT entries enqueued 
(For clarity of the diagram the order of the PFT 
entries in the queue is the same as the order in 
which they appear in the PFT. In reality this 
is not normally so). 




WMW)WM///M&//< 



ueue Headers 



Page 

Frame 

Table 



Queue 
Headers 



Figure 5.4. Selection Peel Queue Headers 
and Queue Elements 



Note: The Queue Headers are located 
directly behind the Page Frame Table. Each 
Queue Header is 8 bytes long. Eytes 2 and 
3 contain a pointer to the first queue 
entry and bytes 6 and 7 contain a pointer 
to the last queue entry. 



PAGE FRAME SELECTION 



when a page frame is required fcr a paging 
operation, the Page Manager uses the 
following selection procedure. 



116 DCS/VS Supervisor 



2. 



The protection key of the first page 
frame in Q00 is examined, using the 
Reset Reference Bit (RRE) instruction. 
The reference bit is reset and the 
condition code indicates the status cf 
the reference and change bits before 
the intruction was executed. If the 
combination (0,0), unreferenced and 
unchanged, is found, this page frame is 
selected. If the combination was not 
(0,0), the PFT entry is removed frcm 
Q00 and appended to Q10 or Qll, 
depending on the value cf the 
combination. The combination (0,1) 
cannot occur in this situation. The 
process described above is repeated, 
starting with examining the protection 
key of the page frame which is now 
first in Q00. The procedure continues 
until a selectable page frame is fcund 
or Q00 is empty. 

If Q00 is empty, or is emptied by the 
search, Q01 is processed similarly. If 
the first page frame in this queue has 
a combination of (0,1) befcre the 
reference bit is reset by RRE, it is 
selected. The combinations (C,0) and 
(1,0) cannot occur in this situation. 
If the value (1,1) is fcund, the PFT 
entry is removed from Q01 and appended 
to Qll. The now first page frame in 
Q01 is examined, etc. 



3. If Q01 is empty, or becomes empty by 
the search, a test is made whether the 
selection pool is empty (remaining 
three queues, Q10, Qll, and HQ empty). 
If it is, exit is taken to attempt to 
free page frames (DEQUX routine) . If 
the selection pool is not empty, the 
queues are switched in the following 
way : 

Q10 becomes Q00, 

HQ becomes Q10, 

Q01 (empty) becomes HQ, 

Qll becomes Q01, 

Q00 (empty) becomes Qll. 

This switch is achieved by changing the 
pointers in the queue identifiers. See 
Figure 5.5. After the switch the search ii 
continued by starting with step 1 again. 



Queue 
Identifier 



Queue 
Headers 







(No PFT entries queued 
at moment of switch) 






^~ - 


-^ * 










* —-- 












^~ 


>-^_ 




^ 




(No PFT entries queued 
at moment of switch) 










,/ 













PAGE HANDLING ROUTINES 



The following conditions result in seme 
form of page movement or reassignment cf 
page frames and may require activity by the 
page manager system task: 

• Page Fault 

• GETREAL request 

• TFIX request 

• PFIX request 

• PAGEIN request 

The requests that require activity of the 
page manager system task (always the case 
for page fault and GETREAL) are queued in 
the page queue (PGQU) and handled en a FIFO 
(First-In/First-Out) basis by this task. 
The page queue (see Figure 5.6) has 16 
fcur-byte entries. 

Hcwever, the page manager system task is 
not activated for the following requests : 

• FREEREAI request 

• TFREE request 

• PFREE request. 

• RELPAG/FCEPGOUT request 



In the following sections the handling of 
these requests which may require activation 
cf the page manager system task, is 
described first. 

PGQU 



At least one PFT entry is 
queued to at least one of 
these queue headers at 
moment of switch. 



Q11 

►Pointer before switch — ^-Pointer after switch 

Figure 5.5. Selection Pool Queue Switching 



1 



Page Address 



Figure 5.6. Page Queue (PGQU) 



Ey t e s : 



0: 



Bits 0-3: 



4-7: 



Bits 0-3 of PIK or TIK (if 
AP supported) cf user task 
B'0000' Fage Translation 

Exception 
B'lOOO* Dummy Request 
B'OIOC 1 PFIX Request 
B'OOIO' TFIX Request 
E'OOOl' GETREAL Request 



Page Management 117 



1-2: Leftmost 16 bits of the address cf 
the page (which is also the address 
of the page frame, if GETREAL) to be 
handled, the remaining 8 bits of the 
address are assuired tc be zero 

3: Task identifier (PIK cr TIK) of user 
task or, task identifier (select byte 
in STID field) of system task 



Note: Label PGQU identifies the first byte 
of the table. 



FACE FAULT HANDLING OVERLAP 



Programs that execute in virtual mode and 
perform their own multitasking, can make 
use of the page fault handling overlap 
facility. For this PHO=YES must be 
specified on the SUPVR macro at system 
generation. This cpticn gives the user the 
opportunity to control the PGQU entry for 
the page fault caused by its own task. 
This is dene by a user written page fault 
appendage routine. 



Eytes 24-27 (X'18' - X'lB') of the RASLINK 
area contain the address of the Page Queue 
Table. 



Whenever a page fault cccurs in a system 
with this option page management first 
checks if a page fault appendage has been 
initiated for the task. 



PAGE FAULT 



A page fault is always enqueued tc the page 
queue and the Page Manager System task must 
do the following when handling it: 



If the task has a 
first passed to that 
task is using a supe 
LTA. The appendage 
a suitable PGQU entr 
in the PGQU, or it g 
a page fault is aire 
task. The task caus 
not deactivated. 



n appendage, control is 

appendage, unless the 
rviscr service or the 
routine either returns 
y which is then enqueud 
ives an indication that 
ady pending for that 
ing the page fault is 



• Select a page frame for the requested 
page (see "Page Frame Selection") . 

• If the selected page frame is in use, 
invalidate the page table entry cf the 
page that occupies the page frame (set 
bit 13 to 1) and insert its storage key 
into bits 8-11 of the entry. 

• If the selected page frame is in use, 
save the contents to the page data set. 
This is only done when the contents of 
the page frame differ from the ccpy en 
the page data set (change bit in storage 
key is 1) . 

• Read the requested page from the page 
data set. This is only done if bit 15 
(used bit) in the page table entry cf 
the requested page is 0. Otherwise the 
page frame is cleared tc zerc. 

• Set the storage key of the new page intc 
the page frame, with the reference and 
change bits equal tc zerc. 

• Validate the page table entry cf the new 
page (set bit 13 to 0) and insert the 
leftmost 13 bits of the page frame 
address into bits 0-12. 



If the page fault was caused by a 
supervisor service or logical transient, no 
overlap is performed. If ancther page 
fault is pending for the task, the page 
fault information is saved in PFATAB (see 
Figure 4.17) and the task is deactivated. 
Exit is taken to task selection. 

If nc ether page fault is pending, the 
page fault is handled like any normal page 
fault condition and the task is 
deactivated. 



When 
task hav 
page fau 
dequeued 
again to 
faults t 
fault in 
appendag 
the page 
(first e 
will be 
manager 



a page fault h 
ing a page fau 
It request is 
, but the appe 

see if there 
c be processed 
formation retu 
e is put in th 

fault which h 
ntry in PGQU) 
the next one h 



as been h 
It append 
net immed 
ndage is 
are any m 
If so, 
rned from 
e page qu 
as just b 
This pa 
andled by 



andled for a 
age, the 
iately 
entered 
ore page 

the page 

the 
eue entry cf 
een handled 
ge fault 

the page 



GETREAL REQUEST 



Insert the page number of the new page 
(its virtual address divided by 2048) 
into bytes 4 and 5 cf the page frame 
table entry of the selected page frame. 

Remove the selected page frame table 
entry from its queue and append it tc 
the hold queue (HQ) . 



The GETREAL routine is called by the SVC 55 
(request for SDAID buffer or PCAID 
alternate area) and the SVC 58 (if 
initialization of a real partition is 
requested) routines, tc reserve an area cf 
real storage. See also the descriptions of 
these SVCs in "Supervisor Call Interrupt" 
in "Interrupt Processors". 



118 DCS/VS Supervisor 



On entry, register 2 and 3 contain the 
begin and end addresses of the requested 
area. All PFT entries of the page frames 
in this area are posted unfixable (bit 15 
on) and the TFIX-counter in each PFT entry 
(bits 0^10) is checked for a zero value 
(page is not temporarily fixed) . If any 
page frame is found to be TFIXed, the 
requesting task is set to ccttmcn bcund 
(X'81* in PIE). The handling of the 
GETREAL request is continued when none of 
the requested page frames is TFIXed. 



TFIX REQUEST 

The TFIX rcuti 
want a page to 
(TFIXed) in re 
for instance, 
the Fetch rcut 
SVC 44 routine 
page means fix 
the duration o 
virtual addres 
routine in reg 
this address i 



ne is called by rcutines that 

be fixed tempcrarily 
al storage. It is called, 
by CCW translation routines, 
ine (virtual lead) , and the 

Temporarily fixing of a 
ing it in a page frame fcr 
f an I/O operation. A 
s is passed tc the TFIX 
ister 2. The page containing 
s tc be TFIXed. 



For each page frame in turn a page queue 
entry is built and enqueued. Eyte 0, bit 7 
is posted in the page queue entry tc 
indicate to the Page Manager system task 
that it is for a GETREAL request. When the 
Page Manager system task processes this 
entry, it must take the following acticn: 

• If the page frame is in use, invalidate 
the page table entry of the page that 
occupies the page frame (set bit 13 tc 
1) and insert its storage key into bits 
8-11 of the entry. 

• If the page frame is in use, save the 
contents to the page data set. This is 
only done when the contents cf the page 
frame differ from the copy on the page 
data set (change bit in storage key is 
1). 

• Remove the selected page frame table 
entry from its selection pool queue and 
post it as not belonging to the 
selection pool (bit 14 in page table 
entry on) . 

• Clear the page frame to zercs. 

• Set the storage key of the new page intc 
the page frame, with the reference and 
change bits equal tc zero. 

• Validate the page table entry of the new 
page (set bit 13 to 0) and insert the 
leftmost 13 bits of the page frame 
address into bits 0-12. 

• Insert the page number cf the new page 
(its virtual address divided by 2048) 
into bytes 4 and 5 cf the page frame 
table entry of the selected page frame. 



When a page frame is found tc be unusable 
because of a hardware error (bit 13 in its 
PFT entry on) , the following acticn is 
taken. No area is allocated when this 
condition is found in the first page frame. 
If the page frame in error is not the 
first, the allocated area ends at the start 
address of the failing page frame. The NF 
bit (bit 15) in the PFT entries cf the 
remaining page frames is reset. 



If the page is already in real stcrage, 
the request is handled by the DTFIX routine 
without enqueueing it tc the page queue 
when one of the following conditions is 
valid: 

• the page is already TFIXed cr PFIXed in 
the frame in which it is located. This 
is sc when bit 14 cf the Page Frame 
Table (PFT) entry is en (page frame does 
net belcng to the selection peel) . 



the page is net yet 
and bits 12 and 15 
zerc. This indicat 
request is pending 
page frame cf its a 
partition) , and tha 
request is pending 
When this situation 
TFIXed in the page 
lecated . 



TFIXed cr PFIXed, 
cf the PFT entry are 
es that nc PFIX 
for the page (into a 
sscciated real 
t r.c PFIX or GETREAL 
for the page frame. 

exists, the page is 
frame in which it is 



the pa 
12 of 
bit 15 
net po 
page f 
locate 
fcund, 
the cc 
swappe 
newly 
page f 
emplcy 



ge is net 
the PFT en 

is en. I 
ssible to 
rame in wh 
d. If ano 

in which 
rtents of 
d, and the 
fcund page 
rame, two 
eds 



TFIXe 
try i 
n thi 
TFIX 
ich i 
ther 
the p 
the p 
page 
f ram 
scan 



d cr PFIXe 
s zero. H 
s situatic 
the page i 
t happens 
page frame 
age may be 
age frames 
is TFIXed 
e. Tc fin 
mechanisms 



d. Eit 
cwever, 
n it is 
n the 
to be 

can be 

TFIXed, 

are 

in the 
d such a 

are 



a. Q00 is scanned fcr an unused pa«Je 
frame. 

b. If re unused page frame is found in 
Q00, the whole PFT is scanned for an 
entry which has bits 8-15 equal tc 
zerc. 

When a page is TFIXed, the TFIX counter in 
the PFT entry is incremented by 1, and, in 
the second and third cases above, the page 
frame is remeved frcm the selection peel. 

If the page tc be TFIXed is net in real 
storage, or if it is, but none cf the above 
mentioned cenditiens is met, the request 
must be queued to the page queue. The 
request is then handled fcy the Page Manager 
system task. 



Page Management 119 



A page queue entry is built and 
enqueued, Eyte 0, bit 6 of the page queue 
entry is posted to indicate that this 
concerns a TFIX request. 

When the Page Manager system task 
processes this entry it takes the fcllcwing 
action: 

1. If the page is in real storage another 
attempt is made to TFIX it ty calling 
the routine DTFIX (see above). when it 
is not possible to honour the request 
now, exit is taken to the DEQUX routine 
to attempt to free page frames. 

2. If the page is not in real storage, the 
request is first handled as a page 
fault (refer to the section "Handling 
of a Page Fault"). When the page is 
paged in, the action described in item 
1 is taken. 



PFIX REQUEST 

A PFIX request may come from the following 
sources : 

• user task, or 

• the RSTRT statement processor. 

A PFIX request may be issued for a number 
of pages but the PFIX routines handle cne 
page at the time. The page manager system 
task is not activated if the desired page 
is in real storage and the following 
conditions are met: 



using the normal selection procedure and 

the page is exchanged with the ccntQnts of 

the page frame whose PFT entry address was 
saved in FIXWTAB. 



If 
tecaus 
pages 
reques 
passed 
that i 
reques 
are no 
them a 
carrie 
real p 
f ixabl 
1) and 
wait s 
TFREE 



there are no 
e they are a 
which have t 
t are freed 

tc the requ 
t is impossi 
t at this ti 
t encugh pag 
re TFIXed, t 
d out. All 
artiticn are 
e (tit 15 of 

the request 
tate until a 
(see handlin 



page fra 
11 PFTXed 
een FFIXe 
and a ret 
esting ta 
ble tc ca 
me. If, 
e frames 
he reques 
of the pa 

marked n 

the PFT 
ing task 

page fra 
g TFREE r 



mes a 
all 
d for 
urn c 
sk in 
rry o 
hcwev 
becau 
t can 
ge f r 
ct te 
entry 
is pu 
me is 
eques 



vailable 

of the 

this 
ode is 
dicating 
ut the 
er, there 
se some of 

still be 
aires in the 
irpcrarily 

is set to 
t into the 

freed by 
ts) . 



Handli 
processor 
each PFIX 
same page 
prcgram w 
PFIXed by 
page addr 
frame add 
counter ( 
not in re 
reserved 
FIXWTAE e 
counter f 
less than 
the reque 
page mana 



ng PF 

pres 
ed pa 

fram 
as ch 

the 
ess i 
ress 
see F 
al st 
page 
ntry 
cr th 

its 
st is 
ger. 



IX req 
ents s 
ge mus 
e wher 
eckpci 
RSTRT 
s pass 
and th 
igure 
orage, 
frame 
for th 
at pag 
value 
queue 



uest 
peci 
t te 
e it 
rted 
prcc 
ed t 
e va 

a.ia 

the 
is p 
at t 
e fr 
at t 
d fo 



s f c 

al p 

ret 

was 

W 

esse 
ut a 
lue 
). 

add 
lace 
ask 

aire 
he c 
r ha 



r the 
rcblem 
urned 
when 
hen a 
r, net 
lsc th 
cf the 
If the 
ress c 
d in t 
and th 
is set 
heckpc 
ndling 



RSTRTR 
s because 
to the 
the 
page is 

only the 
e page 

PFIX 

page is 
f the 
he 
e PFIX 

to cne 
int and 

by the 



• The page frame is in the correct real 
partition. In that case, it is only 
necessary to increase the PFIX counter 
by one and remove the page frame from 
the selection pool if it has net already 
been removed. 

• The page frame is not in the correct 
real partition but a page frame in the 
real partition is available for PFIXing. 
The two pages are then exchanged. 

If neither of the above conditions is true 
it is necessary to enqueue the request tc 
PGQU for handling by the page manager 
system task. Before the request is 
enqueued, an attempt is made tc find a page 
frame in the selection pool for the PFIX 
request. If there is a page frame in the 
real partition, which is in the selection 
pool, the NF bit (bit 15) in the PFT entry 
is posted (PFIX request pending fcr page 
frame) . The address of this PFT entry is 
saved in the partition's entry in the 
FIXWTAE (see Figure 4.13) and the request 
is enqueued to the page queue (see alsc 
Figure 3.6, part 2). When the page manager 
system task handles the PFIX request, the 
requested page is brought into real storage 



PAGEIN REQUEST 

A valid PAGEIN request is handled by the 
PAGEIN task, which is activated when the 
SVC 87 routine has received such a request. 
The task's dispatching priority is higher 
than that cf the FETCH task, but lower than 
that of the page manager system task. The 
PAGEIN task runs asynchronously with the 
requesting user task. 

Fcr a page in real storage, the task 
determines (by looking up the corresponding 
PFT entry) whether this page is fixed. 

• If the page is fixed, the request fcr 
that page is ignored. 

• If the page is not fixed, its reference 
tit is set to and the associated page 
frame is added to the end cf frame 
selecticn queue HQ. 

Fcr a page net in real storage, the PAGEIN 
task uses the ENQU routine (see Chart 13.1) 
tc have this page enqueued en queue PGQU. 
The request is then handled like a page-in 
request that resulted from a normal page 
fault; however, no exit is taken tc a 



120 DOS/VS Supervisor 



private routine that may be specified in a 
SETPFA macro in the program which issued 
the PAGEIN request. 

The PAGEIN task detects the following 
error conditions and takes the actions 
indicated: 

• If a page is outside the partition in 
which the requesting program executes, 
the request for that page is ignored. 

• If an area specification contains a 
negative length, the request for that 
area is ignored. 

The task posts an ECB (if one is specified) 
as shown for SVC 87 in "Supervisor Call 
Interrupt" under "Interrupt Processors". 
The ECEs address is obtained from the 
currently processed PAGETAE entry. 



tc release TFIXed pages. The page manager 
system task is net activated. Upcn entry 
to TFREE, register 3 ccntains the number cf 
the page frame to be TFREEed. TFREE 
reduces the TFIX counter by cne. 



If the page frame 
TFIX counter has b 
page frame is plac 
If the TFREE reque 
task (fetch), the 
the top of Q00 or 
change bit. If it 
entry is queued to 
The reference bit 
waiting for freed 
tc be selected (X 
TRTPFG). Eependin 
in the PFT entry a 
taken, as indicate 



is net PFIXed 
een reduced to 
ed in the sele 
stor was the S 
PFT entry is q 
Q01, depending 
is net fetch 
the bottom cf 
is reset. Any 
page frames ar 
83' in TRTFIX 
g en the bits 
dditicnal acti 
d in Fiqure 5. 



and if the 

zero, the 
ction pocl. 
UPVR system 
ueued to 

en the 
the PFT 

the Hg. 

tasks 
e allowed 
and 

12 and 15 
en may be 
7. 



Whenever a task is terminated, the scan 
routine SCANPGT scans table PAGETAE and 
deletes all entries that carry the task's 
TIK. If the PAGEIN task is processing a 
PAGEIN request of a task which is being 
terminated, the PAGEIN task discontinues 
the processing of that PAGEIN request. 



RELPAG ANC FCEPGOUT REQUESTS 

The page manager system task is net 
activated when a user task issues a RELPAG 
cr a FCEPGCUT request. Fcr a description 
cf the actions taken, see SVC 85 and SVC 
86, respectively in "Supervisor Call 
Interrupt" under "Interrupt Processors". 



FREEREAL, FREE, AND PFREE REQUESTS 

For handling of FREEREAL and PFREE requests 
the page manager system task is net 
activated. See SVC 54 (FREEREAL) and SVC 
68 (PFREE) in "Supervisor Call Interrupt" 
in "Interrupt Processors" fcr descriptions 
of the actions taken. 

The TFREE routine is called by routines 
such as Channel Program Translation, SVC 
44, and the Fetch Routine (if virtual load) 



F^51IIICN_EEACTIVATICN_ANE_REACTIVATI0N 
it£AE_LEVELER)_ 

prccessing in cne cr mere partitions may 
have to be temporarily stepped if paging 
activity rises tc the pcint where little 
effective work is being accomplished (this 
cenditien is commonly called thrashing). 
Cnce paging activity drops tc an acceptable 
level, the deactivated partition (s) can be 
reactivated. 



| Eit Combination | 

j- T T \ Acti en 

SP j NFF | NF | 
bit 14|bit 12|bit 15| 



\- 



1 j or 1 1 or l|Return tc caller. 
. — 4 4 T 

| | I Return to caller. 



-+- 







| |The page is tc be PFIXed in another page frame. The contents cf 
the two page frames are exchanged and the page is PFIXed in the 
ether page frame. The task waiting fcr this page tc be PFIXed is 
posted ready to run. 



I 
I 

+ 

1 I 







Post the task waiting fcr this page frame (needed fcr GETREAL cr 
| |PFIX) ready to run. If page frame is needed for a PFIX, reset bit 
| | 15 in the other PFT entries associated with the real partition. 
. — + 4 j 

1 | 1 | Perform processing as for both the above cases. | 
± , x j 



Figure 5.7. Actions after TFREE 



Page Management 121 



PARTITION DEACTIVATION 

To count the nurrber of page-in requests, 
two counters are maintained. Cne cf these 
counters, PIDCTR, is used by the routines 
which determine whether a partition irust be 
deactivated. The other, PIRCTR, is used by 
the routines which determine whether a 
deactivated partition rray be reactivated. 
The counters are increased by cne, every 
time the page manager determines that a 
page is to be read from the page data set 
(page-in). 

The routine which updates the page-in 
counters, CPGIN, checks whether PIDCTR has 
reached a prespecified value, which is 
contained in the location NPI. As long as 
the prespecified value is not reached, no 
further action is taken and contrcl is 
returned to the PMR routine to continue 
handling the currently pending paging 
requests. 

If the prespecified value, NPI, is 
reached, PIDCTR is reset tc zerc and the 
routine DEACT is called to measure the 
paging activity. The paging activity is 
therefore measured at specific points in 
time (PIDCTR=NPI) . The time interval 
between two consecutive measurement moments 
is called a measurement period. 



PIDCTR=20 



PIDCTR=20 



measurement 
period 



Measuring paging activity means 
estatlishir.g and checking twc values: 



• the exponential average of page-ins per 
seccnd, which gives ar indicaticn cf the 
page-in activity since IPL. This 
quantity is calculated giving mere 
weight to recent page-ins and less to 
page-ir.s that occurred in the past. 

• the reentry rate, which is equal tc the 
number' cf page-ins cf pages paged out 
earlier in the same measurement period. 

The routire DEACT calculates the 
exponential average (see belcw) and checks 
the exponential average and the reentry 
rate against two prespecified values, 
located in ACONST and ECCNST . If the 
exponential average and the reentry rate 
are both greater cr equal these 
prespecified values, DEACTP is called to 
atteirpt tc deactivate a partition. See 
Figure 5.8. 

Now follows a description of the 
exponential average cf page-ins per second 
and the reentry rate, followed by a 
description cf the actions taken by DEACTP 
if both have reached their prespecified 
maximum values . 



i 



PIDCTR=20 



PIDCTR=20 



measurement 
period 



measurement 
period 



measurement 
period 



measurement 
period 



ASSUMED 
CONDITIONS 
AND ACTIONS 
TAKEN: 



1) action described under A 

2) exp. average > ACONST 

3) reentry rate >BCOWST 

(before lesetting) 

4) because of conditions 
2 and 3 call DEACTP 

to attempt to deactivate 
a partition 



1) action described 

under A 

2) exp. average<ACONST 

3) reentry rate <BCONST 

(before resetting) 

4) because of 
conditions 2 and 3, 
no deactivation 
attempt. Continue 
paging operation. 



/ 
/ 

1) action described 

under A 

2) exp. average > ACONST 

3) reentry rate < BCONST 
(before resetting) 

4) because of 2 and 3 
no deactivation 
attempt. Continue 
paging operation 



/ 

1) action described 

under A 

2) exp. average < ACONST 

3) reentry rate > BCONST 

(before resetting) 

4) because of 2 and 3 
no deactivation 
attempt. Continue 
paging operation. 



A: 



reset PIDCTR to zero, calculate exponential average, reset reentry 
rate counter to zero, and clear reentry rate table. 



Note: It is assumed that NPI=20. 

Figure 5.8. Criteria for Partition Deactivation 



122 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



(for Deactivation) 



Selection cf a Partition for Deactivation 



The exponential average is a value which is 
calculated periodically (every time NPI 
page-ins have occurred). Tc calculate the 
new exponential average, the old 
exponential average is used: 

new exp. av. = 1/2 (old exp. av. + 

NPI/measurement period) 

(see note at the end of this chapter). 



The measurement period is 
between the moment of the 
the old exponential avera 
of the calculation of the 
average. In other words , 
interval between the time 
reached the value NPI (an 
zero) and the moment that 
value again. 



the time elapsed 
calculation of 

ge and the moment 
new exponential 
it is the time 
that PIDCTR 

d was reset to 
it reaches this 



When NPI page-ins have occurred for the 
first time after IPL, the old exponential 
average does not exist. It is therefore 
set equal to NPI-measurement period, and 
then the above formula is applied. 

It should be noted that there also 
exists an exponential average cf page-ins 
per second for reactivation, which is 
explained in the section "Partition 
Reactivation" . 



The reentry rate is equal to the number of 
page-ins of pages that were paged out 
earlier in the same measurement period. Tc 
establish this value, a reentry rate 
counter RRCTR is maintained. This counter 
is set to zero at the start of every 
measurement period. If the page manager 
determines that a page is to be paged in, 
while it was paged out earlier in the same 
measurement period, it increases the 
reentry rate counter by one. This 
procedure makes use of the reentry rate 
table (RTAB) , which is a bit string 
containing a bit for every page in the 
virtual storage. At the beginning of a 
measurement period all bits of RTAE are set 
to zero. When the page manager selects a 
page frame for a page-in operation, while 
this page frame is already occupied by 
another page, the bit in RTAB for the 
latter page is posted. 

When the page manager determines that a 
page is to be read in from the page data 
set, the bit in RTAB corresponding to the 
page is tested. If this bit is on, reentry 
is detected and the reentry rate counter is 
increased by one. 



The DEACTP routine attempts to deactivate a 
virtual partition, if more than cne virtual 
partition is active. If any task seized 
the system, the deactivation request is 
ignored. 

To determine which partition is to be 
deactivated, the load leveler TRTMASK bytes 
(see Figure 5.9) are copied to a workarea 
(WAITFLD) . Each partition has its own 
TRTMASK byte. If it is zero, the partition 
is already deactivated. If a partition 
uses the LTA, DEACTP sets its copied 
TRTMASK byte to zero, to avoid deactivation 
of this partition. The partition in which 
POWER/VS resides is never deactivated. 

Figure 5.9 shows an example of the 
selection procedure for a partition to be 
deactivated. When a partition is selected, 
its PIB is checked tc determine whether it 
is active (and not stopped), whether it 
runs in virtual mode, and whether it is not 
in the process of being canceled. If these 
conditions are not simultaneously met, the 
search is continued to find the next higher 
priority partition that can be deactivated. 
The search is also continued when the 
selected partition has a task which uses 
PHO and has a page queue entry enqueued. 



The TRTMASK byte for the selected 
partition is set to zero. The entry in the 
system communication region indicating the 
number of active virtual partitions is 
decreased by one. The page table entries 
cf the partition are scanned fcr any pages 
that are in real storage. Selection pool 
page frames containing such pages are 
queued to Q00 or Q01„ depending on the 
setting of the change bit. Any fixed pages 
of the partition are left as they are. The 
reactivaticn count fcr the partition is 
initialized. This contains the number of 
net fixed pages that the partition has in 
real storage at the moment of deactivation. 
It is used when the partition is about to 
be reactivated. 

The tasks of the partition are handled 
in turn. They are, depending en their 
status, deactivated (PIB posted load 
leveler bound) or deactivation is delayed 
(posted in PIB DAT Flag) . Any page queue 
entries fcr tasks that are being 
deactivated are deleted. 

If all tasks have been handled, return 
is to the RMR routine to continue the 
paging operation, when no page queue entry 
was deleted. If one or more page queue 
entries were deleted, the pending paging 
operation is not continued, but exit is 
taken to the routine DEQUXE. This routine 



Page Management 123 



j— XW in this byte would indicate 
I F I already deactivated 



TRTLLBG 



JL 



|83|00|83|00|83 
BG F2 Fl 

WAITFLD , VV, , j 

r00l83l83|83l00|00|00|00|00|00|00|00|00|00|00|00l 



The load leveler TRTMASK bytes are copied 
to a work area. Each of the three partitions 
may be deactivated. 



MVCFLD 



|00|30|20|40|10|QO|00|(X)|00|00|00|00|00|00|00|00|00| 
^ ~jr^j?&P'Z BG BG 



The non-zero entries 
reference the Fl, Fl, 
BG subtask, and 
BG main task PIBS. 



DEACTF LD ^Z^<.Z 



Fl F2-BG3G. 



DEACTFLJ 




l ^^Ho.looHoohhhloohhHH^ I ^S^Xm.-*** 



1 oo|oo|oo|oo|oo|oo|oo|oo|ooloo|oo 



Change order, of entries for partitions/ 



0l|04| Q2J Q3| OQ|oq| task. They are now in ascending 

_ priority sequence 

BG BGF2 Fl 



Use WAITFLD and DEACTFLD (Translate and Test) 
to select partition to be deactived 
BG is selected 



DEACTFLIX 



iqIii jiolio| ii|io|io| io1iq|io[io1io|io|io1io1io|qo 



04 



JH 



The offset in DEACTFLD now identifies 

a partition or task 

X'10' - this task does not belong 

to selected partition 
X' 1 T = this task belongs to the 

selected partition 

(one main and one subtask) 



The page queue is scanned for any 
entries for the selected partition. 

DFACTF in ,, I ■ i i ■ i ■ ■ Such an entry must ** d^ 1 * 11 * 1 

10lll|l0|l0[Q3|l0|l0|l0|l0|l0|l0[l0]l0|10|10|l0|00l when the partition is deactivated. 



04 



L.JM 



Assumptions: 
NPARTS = 3, AP= YES, 
BG has subtask attached, 
normal priority sequence 
is in force. 



XMO' = this task does not belong to selected partition. 
X'l F = this task belongs to selected partition. It has no 
page queue entry. 

XW = this task belongs to selected partition. It has a 
page queue entry, n is the number of the entry. 
In this example the BG subtask has a page queue 
entry. 



Figure 5.9. Example of Usage of Workareas DEACTFLD and WAITFLD when Selecting a 
Partition for Deactivation 



124 DOS/VS Supervisor 



exits to task selection if the page queue 
is empty, or passes control to the PMR 
routine to handle the first page queue 
entry. 

Handling cf a task by the deactivation 
routines depends on the status cf the task, 
as the following list shows, 

• If the task has no paqe queue entry, is 
not using a supervisor service, and is 
ready to run (X'83* in FIE), then the 
task is deactivated. 

• If the above conditions apply, tut the 
task is net ready to run, then 
deactivation is delayed. Delayed 
deactivation is posted in the PIE. This 
will result in deactivation cf the task 
when it is selected by task selection a 
next time. 

• Deactivation is also delayed when the 
task is using a supervisor service in a 
gated routine. 

• if the task has a page queue entry 
associated with a fetch request (SUPVR 
system task) , the fetch routine is 
reset. The task's system save area is 
initialized to allow restart cf the 
fetch procedure. All page frames that 
were TFIXed for this fetch request are 
freed. The task is then deactivated. 

If the task is using a reenterable 
supervisor service routine, the fcllowing 
situations may exist. 

• CCW translation is in progress for the 
task. The task's system save area is 
initialized to allow restart cf the CCW 
translation procedure. The associated 
translation control block is reset and 
the copy and IDAL blocks are freed. The 
task is then deactivated. 

• SVC 44 is in progress. The task's 
system save area is modified to allow 
restart of this routine. Any pages 
TFIXed for this request are freed. The 
task is then deactivated. 



PARTITION REACTIVATION 



fohen task selection finds that nc system or 
user task is ready to run, the system 
enters an enabled wait state. Just before 
the wait PSW is loaded, the reactivation 
routines are called tc reactivate a 
deactivated partition (there may net be a 
deactivated partition) . 



Unconditional reactivation (see below) 
is performed when there are cne cr mere 
deactivated partitions and cne cf the 
fcllcwing conditions is fulfilled. 



• There is no active virtual partition. 

• No I/C requests are queued to any PUB, 
ether than requests fcr censele or TP 
devices, or requests with an error 
cenditicn. 



fohen the reactivatic 
(at REACTC) for cond 
number of conditions 
before an actual att 
reactivate the deact 
the highest dispatch 
conditions are not s 
fulfilled, control i 
and the wait state i 
routines are entered 
unconditional reacti 
attempted under all 



r routines are entered 
itional reactivation, a 

must be satisfied 
empt is made tc 
ivated partition with 
ing pricrity. If these 
imultanecusly 
s returned tc caller 
s entered. fohen these 

(at REACTUC) for 
vaticn, reactivation is 
circumstances. 



The conditions for ccnditicnal reactivation 
are: 



The time elapsed since previous entrance 
to these routines must not be less than 
a prespecified value, contained in 
location MINTIME. 

The page manager system task must net be 
active. 



A pending GETREAL request (from PDAID or 
SDAID) for the task is stepped if the 
task is posted common bound (X'87' in 
PIB) , or if the task has a page queue 
entry. The task is then deactivated. 

A pending PFIX request is reset if the 
task is posted common bound, cr if the 
task has a page queue entry. Otherwise, 
deactivation is delayed. The PFIX 
request is reset by modifying the task's 
system save area to allow entry to a 
routine that will PFREE already PFIXed 
pages and set up the task to reissue the 
SVC. Deactivation is delayed. 



The exponential average cf page-ins per 
second (for reactivation) must not be 
greater than a prespecified value, 
contained in CCCNST (paging rate must be 
relatively low) . 

The number of page frames in the 
selecticn pool must net be less than the 
reactivation count cf the partition tc 
be reactivated. The reactivation count 
is set up when the partition is 
deactivated and is equal to the number 
cf unfixed pages cf the partition in 
real storage at the moment of 
deactivation. 



Page Management 125 



Ex pon ential Average of Page-Ins per Second 
(for Reactivation) 



The exponential average of page-ins per 
second for reactivation is calculated for 
both conditional and unconditional 
requests. The calculation is similar to 
the calculation of the exponential average 
for deactivation: 



new exp. av. 



= 1/2 (old 

exp. av. +PIRCTR/tiire 
interval) 



(see note at the end of this chapter) 



Note that two other quantities are used. 
PIRCTR is the page-in counter for 
reactivation. It is reset to zero after 
the calculation of the new exponential 
average, and is increased by one every time 
a page-in occurs. Time interval is the 
elapsed time between the previous call of 
the reactivation routines and this call. 



Figure 5.10 shows an example of the 
procedure followed to find the deactivated 
partition with the highest dispatching 
priority. When the partition is fcund, its 
reactivation count is checked, if the 
reactivation request is conditicnal. If it 
is too high, exit is taken to task 
selection without reactivating the 
partition. If the reactivation count is 
not too high, or if the request is 
unconditional, the partition is 
reactivated. The TRTMASK byte for the 
partition is posted X'83' (was X'OO'), and 
the entry in the system communications 
region indicating the number of active 
virtual partitions is increased by one. 
Exit is taken to task selection. 



The following is a summary of the labels of 
the deactivation/reactivation parameters. 

• ACONST is the upper limit for the 
exponential average cf page-ins per 
second for deactivation. As long as the 
expcnertial average is less than this 
value, no deactivation is attempted. 

• BCONST is the upper limit for the 
reentry rate for any one measurement 
period. When the reentry rate is below 
this value, no deactivation is 
attempted. 

An attempt is made to deactivate one 
partition when ACONST and ECCNST are 
simultaneously equalled cr exceeded. 

• CCONST is the upper limit for the 
exponential average of page-ins per 
second for reactivation. if the 
exponential average is greater than this 
value, re ccnditicnal reactivation 
attempt is to be honoured. 

• MINTIME is the minimum amount of time 
which must have passed since the last 
previous reactivation request to allow 
ccnditicnal reactivation. 

• NPI is the number cf page-ins which must 
have occurred before the deactivation 
routines are entered. The counter is 
then set to zero. 

Note: The calculation of the exponential 
averages is based en the general fcrmula 
for calculation of the exponential average 
of the values xl, x2 , xk: 

Ak=CXk + (l-C)Ak-l,0<C<l,A0=X0 

The weighting factor, C, has been set to 
1/2. 



i 



126 DOS/VS Supervisor 



TRTLL BG 

1QO|QQ|83|qO|83| The background part ition is deactivated. 

B ^ F2 f . ] Copy the load leveler TRTM ASK bytes to 

\ /a work area. 

WAITF LD t f / 

|00|QQJ83|83|00|Q0|QQ|00|QQ|Q0|0Q|QQ|QQ|Q0|00|00| Jnverse the copied ^ 

Only for deactivated 
partitions, the correspond- 
ing byte is nonzero. 



WAITFLD 



|oo|83|qq|oq oq|oq|oo|oq|oo|oo|oq oo qo|oo|qq|oo| 



MVCF LD The nonzero entries 

00|30|2Q 40|iq|Q0|0q|Q0|0Q|Q0|q0|qq|00|00|00|qq|00| reference the F1, F2, 



F1 F2 BG BG 



BG subtask, and 
BG maintask PIBs. 



Qq103|Q2|Q410i|00|001Q010q|00|00|qq|0q1qq|0q|qq|Q0| fr0 m MVCFLD (to prepare for TRT instruction) 



F1 F2BGBG 
A 



Use WAITFLD and DEACTFLD (Translate and Test) to 
select the deactivated partition 



BG is selected 



Assumptions: 
NPARTS = 3, AP = YES, 
BG has Subtask attached, 
normal priority sequence is 
in force, BG is deactivated. 



Figure 5.10. Example of Usage cf ftcrkareas DEACTFLD and WAITFLD when Selecting a 
Partition for Reactivation 



Page Management 127 



I 



Page of SY33-8551-1, revised June 30, 1974, by TNI SN33-8770 



PHYSICAL INPUT/OUTPUT CONTROL SYSTEM (PIOCS) 



Physical IOCS is that portion of the 
resident supervisor that: 

• Builds a schedule of I/O operations for 
all devices on the system (CHANQ Table) . 
Refer to Channel Scheduler en Chart 
06.3. 

• Starts the actual I/O operations on a 
device (SIO). Refer to Chart 06.4. 

• Schedules the starting of all I/O 
operations and monitors all events 
associated with I/O. Refer to I/O 
Interrupt Handler on Chart 06.1. 

• Performs error recovery procedures 
(ERP). Refer to Unit Check, ERP Exits, 
and Resident Disk Error Recovery on 
Charts 09.1 - 11.2. 

• Calculates the sector value for DASD 
devices with the RPS feature (333 and 
3340). 



If this is the only request for the 
device, and the channel and device are both 
available, I/O is started for this request. 



If the I/O request is froir a 
virtual-mcde program, the channel program 
must be copied into blocks in the 
supervisor and all virtual addresses must 
be translated into the correct real 
addresses before the I/O operation can be 
carried out. In addition, all pages 
containing I/O areas must be fixed in real 
storage to prevent them from being paged 
cut during the I/O operation. 



The channel scheduler does any further 
processing for the I/O request using the 
copied and translated program and not the 
channel program as it stands in the user 
program. 



Figures 6.20 through 6.24 illustrate: 
Command Control Elock (CCB) , Channel 
Command Word (CCW) , Program Status Word 
(PSW), Channel Address Word (CAW), and 
Channel Status Word (CSW) . See Figure 6.25 
for CSW testing. 



If any condition prevents the start of 
the operation, the request is left in the 
channel queue and return is made to the 
user. Examples of seme conditions that 
prevent the start of I/O are: 



CHANNEL SCHEDULER 



• The request is not the first in the 
queue fcr the device. 



When a channel program is tc be executed 
for a user, the channel scheduler routine 
first checks to see if a channel queue 
entry is available. 



If the channel queue is full, an 
interruptable wait loop is forced (re-SVC) 
until a channel queue entry is freed by an 
I/O interruption. 

Note: The occurrence of this interruptable 
wait loop is an indication that the channel 
queue is too short; low performance is the 
result. The situation could have been 
prevented, when the supervisor was 
generated, by specifying a higher value in 
the CHANQ parameter of the IOTAB macro. 



If an entry is available in the channel 
queue, the I/O request is queued at the end 
of the chain for the specified device. 



• The device is busy, or in error, or has 
an operator intervention pending. 



• The channel is busy for another device 
on the same selector channel and the 
requested device is not switchable. 



• The device is switchable en two selector 
channels but both channels are busy. 



As soon as the condition is cleared by an 
I/O interruption, this new request is 
started. 



If the I/O request was made for a CRT 
device, control is given to the CRT 
routines tc translate the channel programs 
to CRT channel programs. Control is then 
returned tc the channel scheduler to handle 
the request. 



Physical I/O Control System 129 



NICL 
System n 
BG 
F4 
F3 
F2 
Fl 

n= number of units 
i= index displacement 
within LUB table 



: ICL LUBTA B 



PUBOWNER 



FOCL 



JIBTAB 



^ 



FAVP 






E"? 



<•- 



PUBTAB 













iz 


:z: 


:z 
































;; 




















































^ 


L^ 








U-J 


















































:j== 











J* 



TEBTAB ( Optional ) 



THTABI 

SAB 

LMT 



(Optional) 



used by PIOCS 



CHANQ 



FLPTR 



Figure 6.1, I/O Table Interrelationships 
(Part 1 of 3) 



130 DOS/VS Supervisor 



I Key 

(. 

NICL (Number in Class) 



| Explanation 



Byte contains the number of system class LUEs. The remaining 

bytes contain the number of programmer class LUEs for each 

partition. The total number of bytes is one mere than the 
number cf partitions supported. 



H 



H 



FICL (First in Class) 



Byte points to the first system class LUB in the LUE table 
(LUETAE) . This is always the first entry in the LUE table. 
The remaining bytes point to the first prcgrairmer class LUBs in 
the LUE table partition areas. The total nurrher cf bytes is 
one more than the number cf partitions supported. 



H 



LUBTAB (Logical Unit 
Block Table) 
(Figure 6.8) 



Byte cf each entry is an index pointer to an entry in the PUE 
Table (PUETAB) and to an entry in the PUB Ownership Table 
(FUEOWNEP) , or contains X'FF' if no logical unit is assigned. 
Byte 1 points to an entry in the JIB Table (JIETAE) or contains 
X'FF' . 



h 



PUETAE (Physical Unit 
Elock Table) 
(Figure 6.3) 



Bytes 
address 
the chan 
retry cc 
the TEE 
a pcinte 
device, 
index pc 
seek-add 
when cne 
this byt 
schedule 



and 1 of each en 
cf the physical 
nel queue (CHANQ 
unter or, if the 
n parameter was 
r to the Tape Er 

Eyte 4 contains 
inter to the ent 
ress block table 

cf these cpticn 
e contains X'FF' 
r flags and byte 



try contain the channel and unit 
device. Eyte 2 pcints to the entry in 
) table or contains X'FF 1 . Byte 3 is a 

unit is a tape cartridge reader and 
included in the FCPT macrc, it contains 
rcr Blcck table (TEETAE) entry for the 

the device type code. Byte 5 is an 
ry in the Track-Held Table, the 
, or the mode table (1YCDEL 125 only) 
s is active for the device. Otherwise 
Byte 6 contains the channel 

7 the job control flags. 



FOCL (First on Channel 
List) 



Byte points to the first PUETAB entry for a device en channel 

0. Byte 1 points to the first FUBTAB entry fcr a device en 

channel 1, and so on. X'FF" indicates that the associated 
channel is not supported. 



PUBOWNER 
(Figure 6.4) 



+- 



Byte of each entry is reserved. Byte 1 identifies the 
partition that owns the corresponding PUB. 



FAVP (First Available 
Pointer) 



h 



This one-byte pointer to the next available entry in the JIB 
Table (JIETAB) is used by the ASSGN statement processor and by 
job control. 



JIETAB (Job Informatioi 

Elcck Table 
(Figure 6.5) 



Bytes and 1 cf each entry contain extent or LUB information 
used by job control and the ASSGN statement processor. Byte 2 
is a flag byte. Eyte 3 is a chain byte. 



Figure 6.1. I/O Table Interrelationships (Part 2 of 3) 



Physical I/C Ccntrcl System 131 



I Key 



h 



|Explanaticn 



[- 



I-- 



CHANQ (Channel Queue 

Table) 
(Figure 6 . 2) 



FLPTR (Free List 
Pointer) 



TEETAE (Tape Error 

Block Table) 
(Figure 6.6) 



THTAB (Track-Held 

Table) 
(Figure 6.34) 



-+- 



h 



SAE (Seek Address 

Block) 
(Figure 6.39) 



h 



LMT (Line Mode Table) 
(Figure 2.17) 



Byt 

the 

or 

Byt 

req 

Ide 

the 

IE 

ind 

(ab 

ind 

ccn 

tas 

is 



e i 
saire 
it cc 
es 1, 
ueste 
ntifi 
zone 
cf th 
ex pc 
sclut 
ex f c 
tains 
k req 
free . 



n each en 

device ( 
ntains X 1 

2, and 3 
d by a us 
cation Ke 

field is 
e specifi 
intinq to 
e LUBTAB 
r systerr 

the disp 
uesting I 



try pci 
cr the 
FF' if 

ccntai 
er prcg 
y (PIK) 

all ze 
c syste 

the LU 
index) . 
LUES, c 
laceiren 
/C (TIK 



nts t 
next 
the e 
n the 
rair , 
I 
res a 
ir tas 
ETAE 

Eyt 
r X'F 
t ind 
) , or 



o the 

free 

ntry 

CCB 
ccnta 

a sy 
nd th 
k. 3 
entry 
e 6 c 
F' fo 
ex cf 

X'FF 



next e 
entry i 
is the 
address 
ins the 
steir ta 
e nurrer 
yte 5 c 

relate 
cntains 
r progr 

the PI 
• if th 



ntry 
f in 
last 
. B 

Par 
sk r 
ic f 
cnta 
d to 

the 
air ire 
ETAE 
e ch 



in the 
the fre 
in a ch 

yte 4, i 

titicn 

equested 

ield ccn 

ins a di 
the I/O 
relativ 

r LUEs. 
entry f 

annel qu 



queue for 

e list), 

ain. 

f I/C was 

I/O, then 
tains the 
splaceirent 

requesr 
e LUBTAB 

Eyte 7 
cr the 
eue entry 



This one-byte pointer contains the displa 
next free entry in the channel queue tatl 



ceirent index cf the 
e (CHANQ). 



One entry is built for each tape cartridg 
viscr generation tine if the FCPT iracrc p 
is included. 



e reader at super- 
araireter TEB=n 



Thi 

TRK 

in 

f cr 

ent 

is 

add 



s table is built at superviscr generat 
HLD = n parameter is included in the FOP 
each entry points tc the next entry in 
a track tc be held en a specific DASD 
ry if in the free list) , cr it contain 
the last in a chain. Eytes 1, 2, and 



icn tiire if the 

T iracrc. Eyte 
the chain cf requests 
(cr the next free 

s X'FF' if the entry 

3 contain the CCB 



Bytes 4 tnrcugh 9 ccntain the disk address (EECCHH) cf the held 
track. Pyte 10 contains the key of the owning task, cr all 
zercs when the entry is free. Eyte 11 is a flaa and counter 
byte: bit is turned en when a task requests a track already 
held by another task, and the value in the lew-crder half-byte 
is increrrented by one each tiire a task requests a held en a 
track that it already hclds itself. 



Note: when irultiple h 
in the lower-order hal 
of hclds. 



elds by ere task ar 
f-byte is one less 



e effective, the value 
than the actual nuuber 



This table is built at 
SKSEP=n cr YES parairet 
Bytes through 3 of e 
address (ECCH) for the 
tc the THTAB entry (re 



superviscr generat 
er is included in t 
ach entry contain t 

device. Byte 4 cc 
fer to the section 



icn tiire if the 
he FCPT iracrc. 
he current disk 
ntains X'FF' cr points 
"Seek Separaticn") . 



This table is built at 
TP=ETAM, cr QTAM pararr 
MCDFL=115 cr 125. An 
the EVGEN rracro includ 
parameter. Each entry 
device. 



superviscr generat 
eter is included in 
entry is built fcr 
es the Iy;CEE=X , ssss , 

ccntains the actua 



icn tiire when the 
the SUPVR iracro, and 

each device fcr which 
or X'ssssss' 

1 rrcde setting fcr the 



i 



Figure 6.1. I/C Table Interrelationships (Part 3 cf 3) 



132 DCS/VS Supervisor 



CHANQ 



0) 

c 




\ 






\ 


0) O 












<U </» «"* 










a> c 














/ 



Task requestor Identifi cation - 
LUB Displacement — '• — 

\ LUB Identification- 

t Requestor Identification — 



Chain byte 
CCB address 



i= 






1 


2 


3 


4 


5 


6 


7 



i Format of any channel queue entry 

PUB *) 
byte 2 



FLPTR *) p£i. 



Figure 6.2. 



Bytes : 



Channel Queue Table (CHANQ) 
and Entry 



0: Contains the displacement within the 
channel queue of the next entry in 
the free list or in the list for a 
specific device, or X f FF' when it is 
the last entry in the free list cr a 
device list. 



1-3: Contains the CCB address for the 
specified device. 



Contains a code identifying the task 
making the I/O request. This one 
byte entry indicates to which task 
the CCB belongs, and is in the fcriti 
X'nk' where: 

n = user storage protection key. 

(Attention or system task = 0, BG 
task = l, r FG tasks = 2-5 
depending on the number of 
partitions) . 

k = for Attention and all user 
tasks. 



for RAS 
for PMGR 
for SUPVR 



nk=FF for any unused 
channel queue 
entries. 



for CRT 
for ERP 
for PAGEIN 



If the I/O request is from a subtask, 
this byte does not identify this 
subtask, but the partition. 



Contains pointer (displacement index) 
to the entire LUB table identifying 
the logical unit making the I/O 
request. This is doubled to get the 
actual displacement into the full LUB 
table. 



Contains X'FF' if the LUB is a 
programmer class , cr the displacement 
within the partition LUB if it is a 
system class. (Not used by a non MPS 
Supervisor.) 



7: Contains the displacement within the 
PIE table of the PIE of the task 
requesting I/O, or X*FF* when the 
channel queue entry is in the free 
list- (Not used by a non MPS 
Supervisor. ) 



*) Notes: FLPTR: The free list pointer 
contains the displacement within the 
channel queue of the first entry in the 
free list or X*FF* when the channel queue 
is full. 

Eyte 36 (X'24 f ) of the System Communication 
Region (SYSCOM) contains the address of the 
Free List Pointer. Label FLPTR identifies 
the location of the pointer (1 byte). 

PUB byte 2: The PUB channel queue pointer 
contains the displacement within the 
channel queue of the first entry for a 
specific device. 

Bytes 37-39 (X f 25 f - X'27') of the System 
Communication Region (SYSCOM) contain the 
address of the Channel Queue table entry. 
Label CHANQ identifies the first byte of 
the table. 



PUBTAB 




Channel 1 

PUBs 




Job Control Flags — 

Channel Scheduler Flags - 
Device Type 



TEB Pointer/Retry Counter 
Unit . , 1 



L 



Channel Queue Pointer 
-Channel 

Device Characteristic Code"! 
or SAB Pointer J 



TIFF] PUB-table 
delimiter 

L-PUBEND 



Figure 6.3. 



Physical Unit Block (PUB) 
Table 



Bytes: 

0: Channel number. (Hex 0-6, FF=NULL) 

1: I/O device unit nuirber 

2: Hex 0, 1, 2, ... points to the first 
channel queue entry for this device 



Physical I/O Control System 133 



Page of SY33-8551-1, revised June 30, 1974 , by TNL SN33-8770 



If device is a 2495 Tape Cartridge 
Reader and TEBs are specified, this 
byte is a TEB pointer. (Hex l r 2, 
3, ...). Otherwise, this byte is an 
ERP retry counter. 



4: Device type code 



5: SS of the MODE=parameter in the 
DVCGEN macro for tape unit. (See 
Section 2.) 



For ICA line (Model 115, cr 125), 
this byte contains the displacement 
index of the entry in the Line Mcde 
Table (LMT) . The address of the LMT 
is in SYSCOM. 



For DASC with seek separation, this 
byte is used as the SAB Pointer. 
With Track Hold but not seek 
separation supported, this byte 
contains a pointer to the Track-Hold 
Table entry or X f FF' (with bcth SKSEP 
and TRKHLD specified, the Track-Hold 
pointer is found in the SAB entry) . 

For MICR type devices, this byte 
indicates which external interrupt 
line is in use. 

For a 3704/3705 Communications 
Controller, this byte contains the 
type number of the Channel Adapter. 

For MFCM or MFCU: 



Bit 0: 
1: 



1 = Repositioning required 

= SYSPCH temporarily 

assigned tc hopper 1 

1 = SYSPCH temporarily 

assigned to hopper 2 

= SYSIPT temporarily 

assigned to hopper 1 

1 = SYSIPT temporarily 

assigned to hopper 2 

= SYSRDR temporarily 

assigned to hopper 1 

1 = SYSRDR temporarily 

assigned to hopper 2 

= SYSPCH permanently 

assigned to hopper 1 

1 = SYSPCH permanently 

assigned to hopper 2 

= SYSIPT permanently 

assigned to hopper 1 

1 = SYSIPT permanently 

assigned to hopper 2 

= SYSRDR permanently 

assigned to hopper 1 

1 = SYSRDR permanently 

assigned to hopper 2 



Channel Scheduler Flags 



Bit 



0: 


1 


= 


Device busy 


1: 


1 


= 


Switchable device 


2: 


1 


= 


EOJ fcr SYSRDR cr SYSIPT 


3: 


1 


= 


I/O error queued for 
recovery 


4: 


1 


= 


Operator intervention 
required 


5: 


1 


= 


Device End posting 
required 


6: 


1 


= 


Burst or overrunable 
device 


7: 


1 


= 


7-track tape unit 



Job Control Flags 



Bit 0-4: 



6-7: 



Standard MODE assignment 
for 7-track tape (all ones 
if not tape, all zeros if 
device is down) 



1 = Device supports RPS 



B'll' (both on) = Headqueue 
in progress* 



B'01' = Headqueue 
requested* 



*No I/O is started on a PUB 
or copied PUB that has 
both these switches on. 
If only bit 7 is on I/O 
can be started after seek 
separation. 



Notes: A null entry is generated at 
supervisor generation time fcr each device 
to be supported by the supervisor. Then 
standard physical unit assignments are made 
to the PUB table. Physical unit 
assignments can also be made during IPL. 
PUBs are ordered by channel and priority 
within a channel. 



An entry in the PUB Ownership Table is 
associated with each entry in the PUB 
Table, if the supervisor has been generated 
tc support multiprogramming. 



Bytes 64-65 (X^O* - X'41') of the 
partition communication regicn contain the 
address of the PUB Table entry. Label 
PUBTAB identifies the first byte of the 
table. 



134 DOS/VS Supervisor 



PUBOWNER 




Figure 6.4. Physical Unit Elock Ownership 
(PUEOWNER) Table 



r t 

| | Partition owning FUE if nurrber cf 

| | partitions is: 

| Flag ^ T T T 

I | 2 | 3 | 4 | 5 



1 



1 1 

|X'01 f | 


EG 




EG 


EG 


BG 


IX'02' | 


Fl 




F2 


F3 


F4 


|x'oa' | 






Fl 


F2 


F3 


|X f 08 f | 








Fl 


F2 


IX'10' | 

1 1 










Fl 


1 1 

I JL_ 




-_- L- 


J. ± 



Note: The number of entries in the PUB 
Ownership Table is equal to the nurrber of 
entries in the PUB Table. Associated with 
each PUE entry is an entry in the PUB 
Ownership Table. 



Bytes: 



0: 


Eit 


Reserved 




1 


= 1 waiting for volume to be 
rrounted 




2-7 


Reserved 



Eytes 120-123 (X'78' - X'7E') of the System 
Ccrrrrunicaticn Regicn (SYSCOM) contain the 
address of the PUB Ownership Table. Label 
FUECfoNER identifies the first byte of the 
table. 



Identifies the partition that owns 
the PUE according to the following 
table: 



Physical I/O Control System 135 



JIBTAB 



-2> c 
-Q O 

" M CO 

2 k 

-» s 

5 8 
?•£ 

•» 2 

!l 

E ® » 
d-o E 
z .g +s 



h 



Byte (s) 



Description 



0-1 (Contents 
depends on the bit 
setting in byte 2) 



1~ 



I- 



h 



Eit Setting 
Byte 2 



I Contents 



Bit 0=1 Stored | LUE entry of stored standard assignment. (FUB and 
standard |JIB pointer) 
assignment | 



Bit 1=1 

Alternate 

assignment 



| Byte 0: PUE pointer 
| Byte 1: X 1 00' 



Bit 2=1 ] Byte 0: Cylinder lower limit 
2311/2314/2319 |Byte 1: Cylinder upper limit 
Extent | (Note 1) 



Bit 3=1 |For 2321: Icwer limit (Cell cr ccmtined subcell 

2321/3330/3340 | and strip), or 

Extent | Upper limit (Cell cr ccmtined subcell 

| and strip) 

|For 3330 

| or 3340: Cylinder lower limit, or 

| Cylinder upper limit 

| (Cne cylinder number uses two bytes) 

| (Ncte 2) 

| (Note 3) 
jl . 



Meaning 
Bit 

1 

2 

3 

4 



5: 
6/7: 



if bit = 1: 

Stored standard assignment 

Alternate assignment 

2311/2314/2319 extent 

2321/3330/3340 extent 

The alternate assignment indicated in bit 1 is permanent. 

This bit is alsc en when cne cf the extent indicators (tit 2 

and bit 3) is on. 

Cataloged procedures processing 

Reserved 



H 



Chain byte 

Contains the displacement index of the next JIE, 

end of the chain. 



X'FF' defines the 



i 



H 



Figure 6.5. Job Information Block (JIE) Table 



136 DCS/VS Supervisor 



Note_l: Only when file-protect en DASC. 

Note_2: Two JIBs are required fcr a 2321/3330/3340 extent; cne fcr lower liirit and one 
for upper lirrit. 

The lower lirrit defining JIB must be chained tc the upper lirrit defining JIB. 

For 2321, byte 1 of this type JIB contains the subcell r.urrber tirres 10 plus the strip 
number in binary. 

Note_3: Extent information is supplied by the program initiator and legical ICCS open 
transient routines. The supervisor can then perform the file protect function fcr the 
specified file limits. File protection does net include supervisor and transient 
originated I/O. 

Bytes 68-69 (X'44' - X 1 ^') cf the partition communication region contain the address of 
the JIB table entry. label JIBTAE identifies the first byte of the table. 



TEBTAB 



c 



TEB 1 


TEB2 


TEB 3 


TEB 4 


TEB 5 


TEB 6 






1 


2 


3 


4 


5 



u 

■* c 

$.2 
.— +-* 

c a) 
a> c 

£.$ 

E£ 
iE+-* 

r- <o 



Figure 6.6. Tape Error Block Table 
(TEETAB) 

By_ t e s : 

0: Error recovery retry count. 

1: Permanent read data check error 
count. 



the address of the TEB Table entry. Label 
TEETAB identifies the first byte cf the 
table. 

CHNTAB 



Channel 




Channel 1 




Channel 2 




Channel 3 




Channel 4 




Channel 5 




Channel 6 





Figure 6.7. Channel Ccntrcl Table (CHNTAB) 



2: Number of times the read data check 
error routine is entered. 

3: Number of times the write data check 
error routine is entered. 

4: Write skip (erase gap) ccunt. 

5: Noise record count. 

One TEB is generated for each 2495 Tape 
Cartridge Reader unit if the FOPT macro 
contains the TEB=n parameter. Job Control 
resets each TEE at normal or abnormal 
End-of-Job. An unused TEB ccntains 
HEX'FFOOOOOOOOOO' . A TEB is referenced 
from byte 3 of a Tape Cartridge Reader unit 
PUB. 

Bytes 70-71 (X'ae 1 - X'47') cf the 
partition communications region (s) contain 



Py te s : 



0: 



X'lO' = Byte Multiplexer channel 
X'll' = Byte Multiplexer Channel 

with burst rrcde support 
X'13' = Byte Multiplexer Channel 

running in burst mede 
X'20* = Block Multiplexer Channel 
X'CC = Selectcr Channel 
X'80' = Channel net operational or 

not present in the system 

Always zero 



Note: Bytes 60-63 (X"3C - X f 3F') of the 
System Communication Regicn (SYSCOM) 
contain the address of the Channel Control 
Table. Label CHNTAB identifies the first 
byte of this table. 



Physical I/O Control System 137 



Number in 
Class List 
(NICL) 



LUBTAB 



First in 
Class List 
(FICL) 



SYS 








BG 

System LUBs 












SYS 




L-. 






BG 






BG 




BG 

Programmer LUBs 


*-■ 


F4 






F4 








F3 










F3 




— » 


F4 

System LUBs 






F2 


_ 








F2 


Fl 


F4 

Programmer LUBs 










Fl 














F3 

System LUBs 






F3 

Programmer LUBs 












F2 

System LUBs 








F2 

Programmer LUBs 










" t 








FT 

System LUBs 






Fl 

Programmer LUBs 















LUB Table for any Partition 



SYSRDR 

SYSIPT 

SYSPCH 

SYSLST 

SYSLOG 

SYSLNK 

SYSRES 

SYSSLB 

SYSRLB 

SYS USE 

SYSREC 

SYSCLB 

SYSVIS 

SYSCAT 

SYS000 

SYS001 

SYS002 

SYS003 

SYS004 

SYS nnn 



00000000- Points to first PUB and PUBOWNER 
0000000 1- Points to second PUB and PUBOWNER 
000000 10- Points to third PUB and PUBOWNER 



1 1 1 1 1 1 - Ignore, assigned ignore 

1 1 1 1 1 1 1 - Null Pointer, the LUB is unassigned 

When a logical unit is assigned, the system inserts a pointer 
to the PUB for the physical device specified. 



Format of any LUB 



Byte 


Byte 1 


Pointer to PUB 
and PUBOWNER 


JIB Pointer 



JIB Index (Multiply by 4 = Displacement into JIB Table) or 
X'FF' = Null Pointer, no JIB for this LUB. 

A LUB has a JIB pointer when: 

1. The logical unit is temporarily assigned 

2. The logical unit assignment is alternate (ALT). 

3. A DASD file (exept a system I/O file on disk) is 
opened (DASD file protect only) 



Figure 6.8. Logical Unit Elcck (LUB) Table 

Bytes 76-77 (X'4C' - X ' 4D ' ) cf the partition ccmmunicaticn region contain the address of 
the LUB table. Label LUBTAE identifies the first byte cf the table. 

Notes : 

1. SYSUSE may be called SYSCTL in error recovery messages. 

2. Not more than 255 LUBs can be generated into the systerr. As there are 14 systems 
LUBs for each partition the rraxiiruir number cf programmer LUBs in the system is 241 if 
NPARTS=1, 227 if NPARTS=2, 213 if NPARTS=3, 199 if KFARTS=4, or 185 if NFAPTS=5. 

3. Null entries are generated at supervisor generation time. Standard assignments can 
then be made to PUBs at supervisor generation time or during IPL. 



i 



SELECTOR AND BLOCK MULTIPLEXER CHANNEL 
SWITCHING 



Some devices may be attached to two 
consecutive selector or block multiplexer 
channels. If the CHANSW parameter was 
specified in the PIOCS macro, the 
supervisor supports switching I/C requests 
from the (busy) primary channel tc the 
(available) secondary channel. 

If, when an I/O request is queued for a 
device attached to two selector or block 
multiplexer channels, the result cf the 
TEST CHANNEL instruction is CHANNEL NOT 
AVAILABLE, one is added to the channel 
number and the instruction is reexecuted. 



If the result is then CHANNEL AVAILABLE, 
I/C is started on the secondary channel. 
If neither channel is available, return is 
made tc the General Exit Routine and the 
request is left in the channel queue. 
Then, when the previcus operation en cne cf 
the channels terminates, I/O fcr this new 
request is started or. whichever channel the 
interruption occurred. Possible at SIC 
time the channel is busy, while it was 
available at TEST CHANNEL time. This can 
cccur in a system that supports block 
multiplex mede, when the switchatle devices 
are on a block multiplexer channel together 
with devices that have the disconnect 
command chaining feature. Therefore, the 
channel switching routine is alsc entered 
when the channel is found busy at SIC time. 



138 DCS/VS Supervisor 



FOCL 



C h a n n e 1_ 2_B u ck e i 
Eytes 0-3 



FUE 
?^tes_C_and_l 



hannel 
Address 





Unit 
Address 



cc 


XX 


I Multiplexer 
J Channel 


cc 


XX 




01 


XX 




01 


XX 




01 


XX ] 


1 Switchable 
\ Devices 


CI 


XX J 




02 


XX 




02 


XX 




02 


XX 





Figure 6.9. Exairple of Pointers tc PUEs for Switchable Eevices 



In a supervisor that supports channel 
switching, the FOCL byte fcr the first PUB 
on the secondary channel is adjusted tc 
point to the PUB of the first cf the 
switchable devices, which rrust have been 
added as the last devices en the prinrary 
(lower) of the two consecutive channels 
(see Figure 6. 9) . 

Since, in setting up bytes - 3 cf the 
channel bucket, the FOCL was used by IPL tc 
calculate the address (refer tc the section 
"Channel Buckets"), these bytes of the 
channel bucket contain the actual address 
of the PUB fcr the first switchable device. 
Therefore, when an I/O interruption occurs 



fcr this device on the secondary channel 
while the prirrary channel is still busy, 
the new request is started on the secondary 
channel. 



CHANNEL QUEUE 

Initially, the Free List Fcinter (FLPTR) 
pcints tc the first entry in the Channel 
Queue Table. The Chain Eyte in this entry 
pcints tc the second entry, vvhese chain 
byte points to the third entry, and so on. 
The Chain Eyte in the last entry is 
initially a X'FF* delimiter (see Figure 
6.10). 



Physical I/C Ccntrol System 139 



FREE-LIST 

POINTER 

(FLPTR) 



00 



PUBs 

CHANNEL_QUEUE 

POINTERS 

(CHAN£_PTR) 

FF 

FF 

FF 

FF 

FF 




CHMNEL_£UEUE_EOTRIES 
Chain Byte R^2^._I2_Byte 



FF 
FF 
FF 
FF 
FF 
FF 
FF 
FF 
FF 
FF 



Figure 6.10. Initial Contents of Significant Eytes used in Queueing I/O Requests 

Queueing I/O requests 

At the first request for I/O, the contents cf FLPTR is ircved to CHANQ PTR in the PUB fcr 
the specified device, the old CHANQ PTR is moved to the Chain Byte cf the first Channel 
Queue entry, and the old Chain Byte is rrcved tc FLPTR (see Figure 6.11). The PIK in the 
Requestor's Identifier Byte (Req. ID) indicates that this entry is new occupied. 

If f subsequently, I/O is requested en ancther device, the saire sequence of events 
occurs: FLPTR moved to CHANQ PTR, CHANQ PTR racved tc Chain Byte, and Chain Eyte ircved tc 
FLPTR (Figure 6.12) . 



i 



FLPTR 



Entry No . 



CHANNEL QUEUE ENTRIES 
Chain Byte Req . ID Byte 



"(01) 




\ FF 
1st Device 00 



xx 

FF 
FF 
FF 
FF 
FF 
FF 
FF 
FF 
FF 



Figure 6.11. Queueing the First I/O Request 



14 DOS/VS Supervisor 




CHANNEL_£UEUE_EKTRIES 



2nd Device 



xx 
xx 

FF 
FF 
FF 
FF 
FF 
FF 
FF 
FF 



(FF)__ _ 



Figure 6.12. Queueing the First I/C Request fcr Second Device 

CHANNEL_2UEUE_ENTRIES 



FLPTR 



-(02) 



or 

i 





PUEs 




CHA.NQ_PTR 




FF / 




FF / 


1st Device 


00 / 




FF / 


2nd Device 


01 




Ch§in_JByte Reg. ID Byte 



xx 

XX 
XX 

FF 
FF 
FF 
FF 
FF 
FF 
FF 



Figure 6.13. Queueing an I/C Request for a Device with a Request Already Queued 

If now I/O is requested on a device on which a request is already queued (PUE CHANQ PTR 
not X'FF'), the Chain Byte cf the First Free Entry is ircved to FIPTR, the eld FLPTR is 
rroved to the Chain Byte of the previous Channel Queue Entry for this device, and the old 
Chain Byte is moved to the new entry (see Figure 6.13). 

Filling the Channel Queue 

The queueing process may continue until several requests are queued for each device (see 
Figure 6.14). If a program cr routine causes I/C requests in rapid succession, the 
channel queue table may become completely filled with active entries; the FLPTR then 
contains X'FF' (the Chain Byte frcm the last free entry) and no mere requests can then be 
queued until an I/O interruption occurs. 



Physical I/C Control System 141 




CHANNELJ^UEU^EKTRIES 
Chain_E^te Reg. ID Byte 



XX 
XX 
XX 
XX 
XX 
XX 

FF 
FF 
FF 



Figure 6.14. Example of Channel Queue with Several Requests Queued fcr Each cf Twc 
Devices 



Dequeueing 

Cn completion of an I/C operation, the channel signals an I/O interruption. The Chain 
Eyte of the first channel queue entry for the device is ircved tc the PUE CHANQ PTR, the 
old CHANQ PTR is moved to the FLPTR, and the old FIPTR is moved to the Chain Eyte as 
shown in Figures 6.15 and 6.16. The last released entry thus fceccires the first in the 
chain of free entries. 



i 



FLPTR 



,_(07)- ■ 



CHANNEL_2UEUE_ENTRIES 
IHt ry_N c . Chain Eyte Reg. ID Byte 



/ 



/ 



I 
I 
/ 



rOl 



PUE 



■ CHAN£_PTR 

\ 



\ 



FF 



1st Device 00 
(01) 

\ ff 



\ 



\ 



2nd Device 



-04 




xx 

FF 
xx 

XX 
XX 
XX 
XX 

FF 
FF 
FF 



Figure 6.15. Dequeueing First Request on Seccnd Device, Leaving Outstanding Requests 
Chained 



142 DCS/VS Supervisor 



FLPTR 



CHANNEL_QUEUE_ENTRIES 
E^t r^_N c . Cha i e_E^ t e 2^ <3jl_I2_2Z£ f 




02 


XX 


FF > 

.03 ^ 


XX 
XX 


(EF) 




oi y 


XX 


05 


XX 


06 


XX 


FF 


XX 


08 


EF 


09 


FF 


FF 


FF 



Figure 6.16. Adding a New Request to Chain for First Device 



ELRIB. IH t r v_N c . 
_(07)- 



1st Device 



2nd Device 




CHANNEL_£UEUE_ENTRIES 

Ch§iH_2^te Reg. _ID .Byte 
""" FF 

FF 
FF 
FF 
XX 
XX 
XX 

FF 
FF 
FF 



Figure 6.17. Dequeueing Last Request in Chain fcr First Device 



Physical I/C Ccntrol System 143 




CHAMEI_£UEyE_EKTRIES 
Ch§il]_Eyte Rec^ID^Ey^te 



1st Device ^01 

FF 

2nd Device 04 



FF 
xx 
FF 
FF 
xx 

XX 
XX 

FF 
FF 
FF 



Figure 6.18. Queueing New Request for First Device 



Queueing a New Request 2 . 

When a new request is queued , the way the 
pointers are moved depends en whether a 3. 
request is already queued fcr the saire 
device. 



Old FLPTR moves to CHANQ PTR in the 
device PUB . 

Cld CHANQ PTR moves to Chain Eyte cf 
New Entry (See Figures 6.11, 6.12, and 
6.18) . 



i 



If a request is already queued (PUB 
CHANQ PTR not X'FF'): 

1. First Free Entry Chain Eyte ircves tc 

FLPTR. 

2. Old FLPTR moves to Chain Byte cf 
Previous Entry. 

3. Old Chain Byte moves tc Chain Eyte of 
New Entry (See Figures 6.13 and 6.16). 

If this is the First Request for the device 
(PUE CHANQ PTR = X'FF'): 

1. First Free Entry Chain byte ireves tc 
FLPTR. 



CHANNEL EUCKETS 

A channel tucket is an area fcr saving the 
information relating tc the last I/O 
request that was started en a channel. 

Each I/C channel in the systerr has a 
24-byte tucket in which the I/C reaisters 
and the FIE pointer are saved. Also in the 
tucket, the actual address of the first PUB 
en the channel is permanently stcred. 

The address of the channel tucket table 
is in bytes 48-51 (X'30 1 - X'33') cf 
SYSCCiyi. The first byte is identified by 
the label REGSAV. 



144 DOS/VS Supervisor 



REGSAV 



X 



\ 



\ 



- Bytes 



VO 



34 



78 



11 12 



15 16 



19 20 



23 



Address of first 
PUB on Channel 

\ - 


CCB Pointer 
(RD 


Device Address 
(R2) 


PUB Pointer 
(R3) 


Channel Queue 
Pointer 
(R4) 


PI B Pointer 
(R5) 



Figure 6.19, Channel Buckets 

A channel bucket contains inforiration related tc the last I/O started en the channel. 

The nuirber of channel buckets in a systeir equals the nurrber of I/O channels in the 
system. 

Eytes 48-51 (X'30 f - X'33 1 ) cf the System Ccmmunicaticn Regicn (SYSCCM) contain the 
address of the Channel Buckets. Label REGSAV identifies the first byte of the table. 



Bytes 0-3 are set up by IPL which uses the 
FOCL to calculate the actual address of the 
first PUB on the channel. These bytes are 
never modified. 

The remaining bytes (4-23) are set up by 
START I/O. They contain all pertinent I/O 
information relating to the last request 
started on the channel. 

Whenever I/O is initiated on a channel, 
the I/O registers are saved in bytes 4-19 
of the channel bucket and the PIE pointer 
is saved in bytes 20-23. 



When an 
Interrupt H 
address in 
the same as 
channel buc 
same, then 
last device 
I/O informa 
channel buc 
registers f 
Since an in 
started is 
of the PUB 
improved. 



I/O interruption ccc 
andler first checks 
lew real storage to 

the device address 
ket. If the address 
the interruption is 

started on this cha 
tion is then retriev 
ket and loaded into 
or processing the in 
terruption from the 
most common, by avoi 
table the performanc 



urs, the I/O 
the device 
see if it is 
in the 
es are the 
freir the 
nnel. The 
ed from the 
the 

terruption. 
last device 
ding a scan 
e is 



If the I/O interruption is from a device 
other than the last one started en the 
channel, the PUE table is scanned for a 
device address equal tc that in lew real 
storage. When the correct PUB is found, 
the I/O registers and piB pointer are set 
up for processing the interruption. 



COMMAND CONTROL BLOCK 



The CCB establishes ccmmunicaticn between 
the problem program and physical IOCS. The 
CCB is twe double words in length with 
eight major fields and an optional field, 
as shewn in Figure 6.20. All data in the 
CCB is in the hexadecimal format. The nine 
fields cf the CCB are listed and described 
as follows: 



lYtes_0_and_l 



££^Hi_Ii^2^ : Contains the residual count, 
which is stored in these two bytes by PIOCS 
when the CCB is removed frcm the queue. 



?Yi§s_2_and_3 

l£§12 sm i s s ion_I nf orma t ion : Used fcr 
communication between PICCS and the problem 
program. 

Ncte: Eytes 2 through 5 are ANDed off, by 
PICCS, when the CCB is placed in the queue. 
Hcwever, the communication bits that were 
set en by the problem program are left on. 



Eytes_4_and_5 

£SW_Status_Bits: Contains the CSW status 
information, which is stored in these two 
bytes by PIOCS before control is returned 
to the problem program. 



Physical I/O Control System 145 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



Note: The particular bits that are turned 
on in bytes 2 through 5 indicate the 
conditions that were detected by the 
problem program and PIOCS. 



Bytes 6 and 7 

CCB Type, EOC Switch , and Symbolic Unit 
Class (byte 6) : The first half -byte 
contains the type of CCB and the EOC 
switch. The second half-byte indicates the 
class of the symbolic unit whose 
hexadecimal representation is contained in 
byte 7. 



Symbolic Unit Address (byte 7) : Contains 
the hexadecimal representation of SYSnnn. 
This value, in conjunction with the second 
half of byte 6, represents the location of 
the logical unit in the LUB table (see 
Figure 6.8) and is placed in the CCB by the 
problem program. 



Byte_8 

Buffer Offset: Is not used in EBCDIC 
files, and must then contain hexadecimal 0. 



Contains the buffer offset (block prefix 
length) in ASCII files 



Input (F, V, U) 
Output (F, U) 
Output (V) 



lZ£§s_9_to_ll 



X*00 f - X f 63' 

X'OO 1 

X^O' or X'04' 



CCW Address: Contains the address of the 
CCW that is associated with this CCB. This 
address is placed in the CCB by the problem 
program. 



Byte 12 
PIOCS Byte : 



X^O' 
X f 40' 



X'20' 
X'10' 

x^s' 

X'Ol* 
X'04' 



CCE being used by ERP. 

channel appendage routine for a 

teleprocessing device, VSAM or 

PCWER/VS. 

sense information desired. 

message writer use. 

EU tape error indicator. 

seek separation active. 

OLTEP appendage available. 



Bytes 13 tc 15 

CCW Address in CSW : 
address from the CSW 
virtual-mode request 
translated into the 
CCW. This address i 
before control is re 
program. A CCB that 
PIOCS, to service a 
request cannot be us 
program I/C request 
has been completed. 



Contains the CCW 

If the I/O is for a 
this address is first 
virtual address of the 
s stored by PIOCS 
turned tc the problem 

has been queued, by 
problem program I/O 
ed for a second problem 
until the first request 



Not e: Bytes 13-15 contain the address of 
the channel appendage routine when bit 
X*40' is set in byte 12. 



Bytes 16 tc 23 

Optional-Sense CCW: Bytes 16-23 are 
appended to the CCB by the CCB macro 
expansion when the user desires sense 
information to be returned on unrecoverable 
I/O errors. The macro expansion also turns 
en bit 2 (X'20') in byte 12 of the CCB. 
User handles all error or exceptional 
conditions except program check, protection 
check, channel control check, and interface 
control check. 



146 DOS/VS Supervisor 



T 

| Trans- 
| mission 

Count jlnforma- 
j tion 

112 3 



"T T T 

|Type Code [Reserved | 

|and |fcr | 

|Logical |Logical | CCW 

|Unit |IOCS (Address 



"T T 

| Reserved | 

| for | CCW 

| Physical (Address 

| IOCS | in CSW 



CSW 
Status 
Bits 
4 



|Opticnal 
| Sense 
I CCW 



516 



19 
~L 



11| 
j.. 



12 



I 13 
.1- 



15 1 16 

J. 



23 



Byte(s) 



Description 



0-1 Used for re- 
sidual count. 



2-3 Transmitting 
information 
between Phy- 
sical IOCS 
and Problem 
Program 



Byte 2 

Bit 0: Traffic Eit (Wait) (Ncte 5). 

Bit 1: End-cf-File (/* cr /S) 3211-UCSB Parity check 
(Line Complete) (Note 2). 



| Set en by 



Bit 2: 



Byte 3 



Irrecoverable I/C error. 



Bit 3: Accept Irrecoverable I/C error. 

Bit 4: Return CASD Data Checks, 3540 Diskette Data Checks, 
2671 errors, cr 1017/1018 errcrs to the user; 
indicate action-type messages for DOC; return 5425 
net ready. 

Bit 5: Pest at Device End (Ncte 5). 

Bit 6: Return Tape Read Data Check; 1018 or 2560 Data 

Check; 2520, 2540, 2560, 3881, or 5425 Equipment 
Check; Accept 3504, 3505, cr 3525 Permanent Errcr; 
EASD Data Checks on Read or Verify Command en 3203, 
3211, cr 5203 Passback Requested. (Nctes 3, 6, and 
8) 

Bit 7: User Error Routine (Note 10). 



Bit 0: EASD Data Check in Count Area; Permanent Errcr for 
3330, cr 3340; MICR-SCU Net Operational? 1287/1288 
Data Check; 3203, 3211, or 5205 Print Check/Equip- 
ment Check; 3540 Special Reccrd Transferred. 

Bit 1: DASD Track Overrun; FICR Intervention required; 
1287-Keyboard Correction in Journal Tape Mode; 
1017-Ercken Tape; 3211-Print Quality/Equipment 
Check. 

Bit 2: DASD End-of-Cylinder ; MICR- (Note 4) 1287/1288- 
Hcpper Empty in Document Mode; 3211/2245 Line 
Position Error (Note 7) . 

Bit 3: 2520, 2540, 3881-Equipment Check; 2560, 3203, 5203,|PIOCS 
5425 Data Check/Equipment Check; Tape-Read Data 
Check; EASD-Any Data Check; 1287-Equipment Check; 
1017/1018-Data Check; 3211-Print Check/Data Check; 
3504, 3505, 3525 Permanent Error (Note 8); 3540 
Diskette Data Check. 

Bit 4: Ncn-Reccvery Questionable Condition: Card-Unusual IPIOCS 
Command Sequence; BASD-No Reccrd Found; 
1287/1288-Document Jam or Torn Tape; 3211-UCSE 
Parity Check (Command retry); 5425 net ready. 



PIOCS* 
PIOCS 

PIOCS 

Pr.Pr.** 

Pr.Pr. 

Pr.Pr. 
Pr.Pr. 



Pr. Pr. 



Set on by 
PIOCS 

PIOCS 



Fig.ure 6.20. Command Control Elock (CCB) (Part 1 of 3) 



Physical I/O Control System 147 



r t 

|Trans- 
j mission 

Count |Infcrrra- 
| tion 

1 1 2 3 



Byte(s) 



4-5 CSW Status 
Bits 



6-7 Type Code and 
Logical Unit 



h 



Reserved for 
Logical IOCS 



CCW 
Status 

Bits 
4 



~T T 

| Type Code | Reserved 



|and 
|Logical 
|Unit 
5|6 
—J. 



for 

j Logical 

| IOCS 
7| 8 
_x 



| | Reserved | | 

| | for | CCW | Optional 

| CCW (Physical (Address (Sense 

(Address | IOCS jir CSW (CCW 

|9 11| 12 (13 15(16 23 



Description 



Bit 5: No Record Found Condition (Retry on 2311, 2314, 

2319, 3330, or 3340). 
Bit 6: Carriage Channel 9 Cv€ 

DASD; 1287-Docurrent Wc 

1288-End of Page. 
Bit 7: Ccmirand Chaining , Retry frcir the next CCW tc fce 

executed. 



/erflow or Verify Error for 
*cde-Late r Stacker Select; 



-+ 

|Set en by 

-+ 

|Pr.Pr. 

I 
|PIOCS 

I 
I 

(Pr.Pr . 



Byte 4 (Ncte 1) 



|Eyte 5 



Bits: 
0(32): 
1(33) : 
2(34) : 
3(35) : 
4(36): 
5(37) : 
6(38) : 
7(39) : 



(Bits: 
Attention |0(4C) 
Status Modifier | 1 (41) 
Ccntrcl Unit End | 2 (42) 



Busy 

Channel End 
Device End 
Unit Check 
Unit Exception 



|3(43) : 
|4(44) 
|5(45) 
|6(46) : 
(7(47) 
-JL 



Prcgrair Controlled Interruption 
Incorrect Length 
Prcgrair Check 
Protection Check 
Channel Data Check 
Channel Control Check 
Interface Control Check 
Chaining Check 



Byte 6 



X 1 0u' 
X'2u' 

X'4u' 

X'6u f 

X'8u' 



Original CCB (Bytes 9-11 and 13-15 contain virtual addresses) 

Translated CCE (Bytes 9-11 contain real address, bytes 13-15 

virtual address) 

BTAM request original CCB (Bytes 9-11 and 13-15 contain virtual 

address) 

BTAM request translated CCB (Eytes 9-11 contain real address, 

bytes 13-15 virtual address) 

User-translated CCB in virtual partition (Bytes 9-11 and 13-15 

contain real addresses) 



H 



Note: Any one cf the abeve incremented by X'10' (bit 3 on) indicates 
automatic switching to the beginning cf the next cylinder at 
End-of -Cylinder cenditicn. 



u: = The address in byte 7 refers tc a Systeir Lcgical Unit. 

1 = The address in byte 7 refers to a Prcgrairirer Lcgical Unit. 



Byte 7 



Hexadecirral representation cf SYSnnn : 



SYSRDR = 00 


SYSSLB 


= 07 


SYS000 = 00 


SYSIPT = 01 


SYSRLB 


= 08 


SYS001 = 01 


SYSPCH = C2 


SYSUSE 


= 09 


SYS002 = 02 


SYSLST = 03 


SYSREC 


= 0A 


. 


SYSLOG = C4 


SYSCLB 


= 0E 


. 


SYSLNK = 05 


SYSVIS 


= OC 


SYSnnn 


SYSRES = C6 


SYSCAT 


= 0D 


(Ncte 9) 


Buffer Offset: 








ASCII Input Ta 


pes 




X'00' - x f 63 f 


ASCII Output Tapes Fixed 


X'00' 


Variable 






X'00' cr X'04 1 


Undefined 






X'00' 



I 



u 



gure 6.20. Command Control Elcck (CCB) (Part 2 cf 3) 



148 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



t < 

|Trans- 
j mission 

Count J Inf orma- 
| tion 

1|2 3 



T T T T T T 

|Type Code |Reserved | [Reserved | | 

CCW |and | f or j | for | CCW j Optional 

Status JLcgical |Logical |CCW | Physical | Address [Sense 

Bits | Unit | IOCS | Address | IOCS | in CSW | CCW 

4 5 | 6 7| 8 |9 11| 12 |13 15|16 23 

J. J. J. ± -L J. 



Byte(s) 



Description 



9-11 CCW Address 



Virtual or real address of CCW associated with this CCB depending on 

byte 6: 

Real address if byte 6=X'2u f , X'6u', or X^u"; 

Virtual address if byte 6=X'0u\, or X f 4u* . 



12 Reserved for 


|x f 80 # 


Physical IOCS 


X'40 - 




X-20* 




|X - 10* 




X'08 € 




|X f 04* 




X'02" 




|X f 01" 



CCB being used by ERP. 

Channel Appendage Routine present for TP device, VSAM or 

POWER/VS . 

Sense Information desired (Note 10). 

Message writer. 

EU Tape Error. 

OLTEP Appendage available. 

Tape ERP Read Opposite Recovery. 

Seek Separation. 



13-15 CCW Address 
in CSW 



Virtual Address of CCW pointed to by CSW at Channel End (if 

byte 6 = X'8u', it is the real address) or address of the Channel End 

Appendage Routine for TP devices,, VSAM or POWER. 



H 



16-23 Optional 
Sense CCW 



8 bytes appended to the CCB when Sense Information is desired. 



Figure 6.20. Command Control Block (CCB) (Part 3 of 3) 
Notes : 

1. Bytes 4 and 5 contain the status bytes cf the Channel Status Word (Bits 32-47) . If 
byte 2, bit 5 is on and device end results as a separate interrupt, device end will 
be ORed into CCB byte 4. 

2. Indicates /* or /& statement on SYSRDR or SYSIPT. Byte 4, bit 7 (unit exception) is 
also on. 

3. DASD data checks on count not returned. 

4. For 1255/1259/1270/1275/1419, disengage. For 1275/1419D, I/O Error is external 
interrupt routine (Channel data check or bus-out check) . 

5. The traffic bit (Byte 2, bit 0) is normally set on at channel end to signify that the 
I/O was completed. If byte 2, bit 5 has been set on, the traffic bit and bits 2 and 
6 in byte 3 will be set on at device end. Also see Note 1. 

6. 1018 ERP does not support the Error Correction Function,. 

7. This error occurs as an equipment check, data check cr FCB parity check. For 2245, 
this error occurs as a data check or FCB parity check. 

8. For 3504, 3505,, 3525 input or output files using ERROPT, byte 3, bit 3 is set on if a 
permanent error occurs. Byte 2, bit 6 is set on to allow you to accept permanent 
errors. 

9. SYSnnn=255 - (Number of partitions times 14). 

10. If User Error Routine is specified and the user needs the sense information to 
further process the error, byte 12, bit 2 must also be set. Otherwise,, the 
supervisor error routine will mask off the status on return and the sense information 
is not available. 



Physical I/O Control System 149 



Command Code 


Data Address 


7 8 15 16 23 24 


31 


Flags 





TPOp. Code 


Byte Count 



32 



3738 40 



47 48 



55 56 



63 



Figure 6.21. Channel Command Word (CCW) 
Flaqs 



Bit Description 

32 CD-bit (80): 

33 CC-bit (40): 

34 SLI-bit (20): 

35 Skip bit (10) 

36 PCI-bit (08): 

37 IDA-bit (04): 



causes use of address 
portion cf next CCW 
causes use of command 
code and data address 
of next CCW 
causes suppression of 
possible incorrect 
length indication 
suppresses transfer of 
information tc main 
storage 

causes a channel 
Program Controlled 
Interruption (ignored 
by DOC routines) 
specifies indirect data 
addressing 



PROGRAM STATUS WORD 


















( 


3 










16 






24 31 





R 











T 


I/O 


E 


KEY 


1 


M 


W 


P 


00 


cc 


PROG 
MASK 


00000000 


32 40 63 


00000000 


INSTRUCTION ADDRESS 



Figure 6.22. Program Status Word (PSW) 

Bit Description 

Always zero 

1 Program Event Recording (PER) mask 
2-4 Always zero 

5 Translate mode (DAT) 

6 I/O interrupt mask 

7 External interrupt mask 
8-11 CPU protection key 

12 Always one (EC mode) (I) 

13 Machine Check mask (M) 

14 Wait state (W) 

15 Problem state (P) 
16-17 Always zero 
18-19 Condition code 

20 Fixed-point overflow rrask 

21 Decimal overflow mask 

22 Exponent overflew mask 

23 Significance mask 



24-31 Always zero 
32-39 Always zero 
40-63 Instruction address 



Key 


0000 


Command Address 



3 4 7 8 15 16 23 24 31 

Figure 6.23. Channel Address Word (CAW) 



Key 


0000 


Command Address 

i i 


3 4 7 8 15 16 23 24 


31 


Status 

I 


Byte Count 

1 



32 39 40 47 48 55 56 63 

Figure 6.24. Channel Status Wcrd (CSW) 

Command Address: eight higher than the 
address of the last CCW used (not higher on 
a command reject) . 

Status 

Sii Description 



32 


(8000) 


Attention 


33 


(4000) 


Status Modifier 


34 


(2000) 


Control unit end 


35 


(1000) 


Busy 


36 


(0800) 


Channel end 


37 


(0400) 


Device end 


38 


(0200) 


Unit check 


39 


(01C0) 


Unit exception 


40 


(0080) 


Program controlled interruption 


41 


(0040) 


Incorrect length 


42 


(0020) 


Program check 


43 


(0010) 


Prctecticn check 


44 


(0008) 


Channel data check 


45 


70004) 


Channel ccntrcl check 


46 


(0002) 


Interface control check 


47 


(0001) 


Chaining check 


Byte 


_coun t : 


Eits 48-63 fcrm the residual 



count for the last CCW used. 



I/O INTERRUPT HANDLER 



The address cf the I/O interrupt handler is 
in the SCP Communication Region (SYSCOM) . 
Eefcre branching tc any entry pcint in this 
routine, general register 9 is set up as a 
tase register. 

An I/C interruption occurs when an I/C 
operation terminates or the operator 
intervenes en the device. It alsc occurs 
(as a Channel Available Interrupt) on a 
fclcck irultiplexer channel after a TEST 
CHANNEL instruction or after a SIC, as soon 



150 DCS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



as the channel becomes available. Before 
processing the interruption, the device 
address in low real storage is checked to 
see if it is the same as the device address 
in the channel bucket for the channel en 
which the interrupt occurred. 

If so, the interruption was from the 
last device started on the channel, and the 
I/O registers and the PIB pointer are 
loaded from the channel bucket (refer to 
the section "Channel Buckets") . 



If it was not the last devi 
the PUBs are scanned sequentia 
first PUB on the channel list, 
channel list contains no PUB f 
interrupting device, the devic 
supported by the system so the 
is ignored. In this case an i 
attempt is made to reschedule 
because I/O might be pending f 
devices. This action is also 
channel available interrupt. 



ce started, 
lly from the 

If the 
or the 
e is not 

interruption 
irirediate 
the channel 
or ether 
taken for a 



When the correct PUB is found, the 
routine sets up pointers to the PUE, the 
Channel Queue Entry, the PIB, and the CCB. 

If the device is owned by the On-Line 
Testing function, exit is taken to the 
OLTEP appendage routine. 

Exit is taken to the Channel Appendage 
routine if all the following conditions 
exist: 

1. The supervisor supports teleprocessing 
(TP=BTAM, QTAM, or VTAM) . 

2. The user specified an appendage routine 
address in the CCB. 

3. The PIB Assign flag indicates that a 
channel appendage exit is allowed. 

Before control is transferred to the 
appendage routine the CCW address in the 
CSW must be retranslated if the appendage 
belongs to a BTAM program running in 
virtual mode. 

If on return the appendage routine for 
BTAM running in virtual mode, requests I/O, 
the new virtual channel program is 



translated. At the same time the copy 
buffers are freed that were used for I/O 
requests by the BTAM program. 

If none of the above conditions exists, 
the CSW is evaluated and action is taken 
according to the table in Figure 6.25. 

If the device status indicates that the 
channel program has been successfully 
completed, the traffic bit is posted in the 
CCB. If device-end posting is not 
required, the channel queue entry is now 
released. 

If the requesting program is running in 
virtual mode and the user CCE is posted, 
control is given to the routine CSWTRANS 
(refer to the section "Channel Program 
Translation") to release the copy blocks 
and fixed pages and update the user CCB. 

Rescheduling the Selector or Block 
Multiplexer Channel 

The PUBs in the channel list are scanned, 
beginning with the PUB following the last 
cne started, and the first one found with 
I/O pending is then started. If the end of 
the channel list is reached, the scan 
continues from the first PUB in the channel 
list. If there is no I/O pending in the 
channel, a branch is taken to the General 
Exit routine. This rotating PUB scan 
ensures that the channel is shared by all 
programs. 

Rescheduling the Byte Multiplexer Channel 

If the device is on a byte multiplexer 
channel with more I/O pending on the same 
device, exit is taken to the channel 
scheduler routine to start the next request 
immediately. If no I/O pending on that 
device, exit is taken to the General Exit 
routine. 

Command Chaining for Retry on I/O 
Operations 

When an error occurs in an I/O operation 
and the Command Chaining Retry bit in the 
CCB is on, the last CCW is reexecuted 
instead of the first CCW in the channel 
program as in a normal retry. 



Physical I/O Control System 151 



CSW Status) | 

Bit On j Status Condition | Action 

x _ J. _ 


*f — ^ -. — 

45 | Channel Control Check | Branch tc the Channel Check 

46 j Interface Control Check] Handler to interrogate the bits for attempting 
1 | recovery. 

„ ]> „ + 

38 |Unit Check | If user routine available, post error to CCB and set 

42 j Program Check | up for exit to user, otherwise exit to 

43 | Protection Check | Unit Check routine for error recovery. 

44 j Channel Data Check | 

47 (Channel Chaining Check | 


- -^. - - - - -.j. *. 

32 (Attention |For attention from the console printer keyboard or 
| (display operator console (DOC) , include attention 
j (task in task selection and branch tc the General 
j (Exit routine. 

| (Attention interruptions are ignored if: 

| |1. System reallocation or condense is in operation. 

j (2. Attention is not from the console printer 
| | keyboard or DOC. 
+ + 

35 (Device Busy (Skip channel-end test. 

+ + 

36 (Channel End (If a selector channel, or if interruption was from a 
j (burst-mode device on a multiplexer channel, attempt 

j (to reschedule the channel. 

± j. •_ 


T T •"" — 

37 | Device End (If a selector channel, attempt to reschedule the 
34 (Control Unit End (channel. If the interruption was from a burst-mode 
j (device on a multiplexer channel, attempt to 
j (reschedule channel and device. If a Byte-mode 
j (device attempt to reschedule the device only. 
_ + . + 

33 and 35 (Control Unit Busy (Reset device to available. The status is not tested 
j (if channel-end, device-end, or control-unit-end has 
| (occurred. 



L X J. ^ J 



Figure 6.2 5. CSW Testing in I/O Interrupt Handler 



BURST-MODE AND HIGH-SPEED BYTE-MODE DEVICES 
ON BYTE MULTIPLEXER CHANNEL 

When an interruption occurs on a byte 
multiplexer channel and burst-mode devices 
are supported (PI0CS macro parameter 
BMPX=YES) : 

If the interruption was from a burst-mode 
device, and not the last device started, 
the PUBs are scanned from the PUB following 
the last one started. 

If the interruption was from a byte-mode 
device that was not the last one started, 
and there are more requests in the same 
channel queue, the next request is started 
immediately. 

On a byte multiplexer channel operating 
in multiplexer mode, the channel is 
considered to be available. When operating 



^ n burst mode, however, and a burst mode or 
overrunnable device is to be started on the 
channel it is considered to be net 
available. 

Suppose that START I/O on a overrunnable 
high-speed byte-mode device is followed 
immediately by a request for I/O on a 
burst-mode device. Without any software 
precautions, because the channel is 
available (operating in multiplex mode) , 
I/O will start immediately on the 
burst-mode device. The channel, now 
operating in burst mode, will be 
monopolized by this device. Any 
interruption from the overrunnable 
byte-mode device may be lost, and the 
device may run over. 

To prevent this overrun, overrunnable 
high-speed byte-mode devices are added as 
burst-mode devices, and whenever I/O is 



152 DOS/VS Supervisor 



started on one of these devices , a switch 
is set in the Channel Control Table by the 
Start I/O routine. This switch is tested 
at every attempt to start I/C on a 
burst-mode device and, if fcund on, the 
request is left in the channel queue and 
exit is taken to the General Exit routine. 
Whenever a byte multiplexer channel is 
operating in burst mode, therefcre, a 
second burst-mode (or high-speed byte-mode) 
device can never be started. 



CHANNEL PROGRAM TRANSLATION 



The supervisor must do the following before 
initiating an I/O operation for a 
virtual-mode program: 

• Copy the CCE and the entire channel 
program into copy blocks in the 
supervisor. 

• Translate the addresses used by the CCB 
and the channel program intc real 
storage addresses and place these 
addresses in the copied CCB and channel 
program. 

• Euild IEALs (Indirect Data Address 
Lists) in the supervisor for all user 
requests which have IDALs and fcr all 
I/O areas which cross one or mere page 
boundaries. 

• Fix all pages containing I/O areas in 
real storage for the duration of the I/C 
operation . 

These functions are performed by the 
routine CCWTRANS. CCWTRANS is called by 
the channel scheduler every time a 
virtual-mode I/O request is made. Fcr I/O 
requests from ETAM channel appendages this 
routine is entered at its entry pcint 
CCWTRBT2 (for further information see the 
section "BTAM Considerations") . 

At the completion of an I/O cperaticn, 
the routine CSWTRANS is called by the I/C 
interrupt handler. It must do the 
following: 

• Retranslate the address of the last CCW 
pointed to by the CSW at channel end to 
its correct virtual address. This 
address is placed in the copied CCB. 

• Free the data areas. 

• Release the copy blocks used fcr the 
translation except the CCE copy block. 

• If possible, transfer the CCE 
information which has changed tc the 
original CCE. If this is not possible 
(because the original CCE is net in real 



storage) indicate tc the dispatcher that 
this must be done before the user task 
is tc be given ccntrcl again. In that 
case, the dispatcher calls a special 
routine (MOVECCB) tc transfer the end of 
channel information from the copied CCB 
tc the CCB in the user program. 



TRANSLATION CONTROL AND CCPY BLOCKS 

The fcllcwing control and copy blocks are 
used to copy and translate a CCE and 
channel prcgram for a virtual mode I/O 
request: 

• A translation ccntrcl blcck (CCWTCB or 
TCB abbreviated) . This block is used as 
a work and save area during translation. 

• A CCB ccpy block. The user CCB and 
sense CCW (if any) are copied into this 
block. The CCB ccpy blcck alsc contains 
information about the copied and 
translated channel prcgrair. 

• CCW ccpy blocks. Each blcck ccntains 
copy locations for up to 7 contiguous 
CCWs and queueing information. 

• IEAL blocks. Elccks used fcr building 
Indirect Data Address Lists fcr CCWs 
having IDALs cr fcr data areas which 
cross page boundaries. 

• Fix information blocks. Each block 
contains a bit string fcr fix 
information for a block of 1088K of real 
storage. One cr mere fix information 
blocks are generated if a page is fixed 
at a location greater than 384K 
(information for page frames up to that 
address are kept in the CCB ccpy blcck) . 

The TCB fcr a request is located behind the 
system save area for the requesting task. 
The ether blocks are 72-byte blocks located 
at the end of the supervisor. They are 
dequeued from the free ccpy block queue 
(pointed tc by AFCB) as needed, and 
enqueued again when they are no longer 
needed by the requesting task. 

If the queue of free copy blocks is 
empty when a request fcr a ccpy blcck is 
made cne of the fcllcwing actiens will be 
taken: 

• If the request is freir a ETAM appendage 
routine, the system will enter a hard 
wait (refer tc the section "ETAM 
Considerations") . 

• If the requesting task is the only cne 
using the CCW translation routines, it 
will be canceled (net enough copy blocks 
available tc ever satisfy the request) . 



Physical I/C Ccntrcl System 153 



If the request is for a CCB copy block 
or if at least one request has teen 
handled successfully the requesting task 
is set copy block bound (set 
PIBFLG=X , 75' and TRTBUF=X' 00 ■ ) . 



several requests may be handled 
simultaneously. To accomplish this, a TCB 
is kept fcr each request and used as a 
dynairic save and wcrk area. 



• If no other task is complete and if the 
request is not for a CCB copy block, the 
used copy blocks are freed and the fixed 
pages are freed and the task is set 
translation bound (FIBFLG=X ' 7E ' and 
TRTCCW=X'00') . When a translation has 
been successfully completed , the request 
will be started again from the 
beginning. 

The Translation_Control_Blcck „__(CCViTCB) 

Eecause a translation request may be 
interrupted (by a page fault, wait, etc.), 
it is necessary that the translation 
routine be partially reenterable sc that 



The TCE fcr a task requesting 
translation is enqueued to the used TCB 
queue (pointed to by AUTCE) when a 
translation is begun and released again 
when the translation is ccmplete. This is 
not true however, for a translation for a 
ETAM appendage. It is translated without 
the TCB being enqueued (fcr further details 
refer tc the section "ETAM 
Considerations") . 

Figure 6.26 shews the fields cf the TCB 
and their explanations. The fields LINEFTR 
and EENDFTR are explained in mere detail in 
the section "Copying Status Modifier 
Commands" . 



154 DOS/VS Supervisor 



CCWTCB1 (BG) 




i i 
i 




CCWTCB2 (F4) 




i j 


CD 


CCWTCB3 (F3) 


o 

Z 

QJ 

<8 


* f 




CCWTCB (n-1) 
(subtask) 




i ■ 
i i 




CCWTCB (n) 
(subtask) 










1 


2 3 


4 7 


8 11 


12 15 


16 19 20 23 24 


27 


Flag 

Byte 


Used 

by 

BTAM 


TIK/PIK 

of 
Requestor 


Pointer to 

Status Modifier 

List 


Pointer to 
Control 
Command List 


Pointer to 
TIC Line 


Pomter to 

Copy Block 

End 


TCBACB 

Address of 
copied CCB 
used to reset 
CCW Trans- 
lation if 
necessary 





° c 

"" ™ 28 



47 48 



51 52 



107 108 



111 





Virtual Address 




TCBPTR 


Work Areas 


passed to TFIX 
Request (used 
when CCW 


Save Area 
(Registers 2 -F) 


Pointer to 
next used 
TCB 




translation is to 




or Zero 




be reset). 







Figure 6.2 6. Translation Ccntrcl Elcck (CCWTCE) 
Eyte (TCBFLAG) : 



bit 0=1 

1 = 1 

2 = 1 

3 = 1 

a = i 

5 
6 
7 



data chaining specified 

Read/Sense corrirand specified 

Read backward ccirrrand specified 

Status modifier coirrrand with data chaining 

Status modifier coirirand with command chaining 

Reserved 

Reserved 

Reserved 



Byte 1 (ADBTAMCB) : 

Number of copy blocks needed in additicn tc these required fcr current 
CCW-translation request (refer to the section "ETAM Consideraticns") . 

Byte 4 (DEVSTPTR) : 

Pointer to status rrcdifier list belcnging tc handled device. Zerc if device dees 
not support status rrcdifier commands. 

Byte 8 (DEVCDPTR) : 

Pointer to control command list which belongs tc handled device. Zerc if device 
does net support ccntrcl ccrrrrands with data area. 

Byte 12 (LINEPTR) : 

Chain of knots of tree structure caused by TIC following status modifier command. 
(Refer to the section "Translating Status Kcdifier Commands".) Zerc if no knots 
exist in CCW chain. 

Eyte 16 (BENEPTR) : 

Chain of knots built because status modifier ccirrrand is last ere fitting in CCW 
copy block. Zero if no status modifier commands at end of CCW copy blccks. 

Note: One TCB is generated for each partition supported. With asynchronous processing 
support 15 TCBs are generated. 

To locate the TCB (associated with the partition/task) , add X'50' to the address of the 
System Save Area (displacement X'C9' of the apprcpriate FIB) . Labels CCWTCBl - CCWTCBn 
identify the first byte of the appropriate TCB. 



Physical I/C Ccntrcl System 155 



ACCWT[ 



Bytes 132-135 
ofSYSCOM 




TCBPTR 



The TCBs that are in use (for tasks 
with incomplete translation requests) 
are queued as indicated 



TCBPTR 




TCBPTR 



Figure 6.27, Chain of Used Translation 
Control Blocks 



CCB Copy Blocks 



For each virtual-mode I/O request cne copy 
block is used to contain the copied CCE and 
its sense CCW f if any. The rest of the 
block contains control infcriraticn about 
the translated program. Figure 6.28 shows 
the layout of the CCB copy block. The net 
shaded areas are initialized when the block 
is first retrieved and the CCB is copied. 
The shaded areas are initially zerc and are 
filled in during the translation process. 

All the CCB copy blocks in use are 
queued in the queue pointed to by ACCBB. 
Each CCB copy block is also individually 
pointed to by a field in the TCE fcr that 
request. After a translation is completed 
and enqueued in the channel queue, the CCB 
is also pointed to by its channel queue 
entry. Figure 6.29 shows the relationship 
of the CCB copy blocks to one another and 
to the other blocks. 



16 



24 



32 



40 



48 



56 



64 



CCBCNT 



CCB 
COM1 



CCB 
COM2 



CCBCCW 

Address of first CCW 



CCB 
STA1 



CCBBY3 



CCB 
STA2 



CCB 

CLS * 



CCB 
j-NQ 



CCBCSWW 



CCBSENS 

Sense CCW if any 



GCBPIK 
User PIK 



CCB II 
FLAG* 



Unused 



CCBACB 

Address of first CCW copy block in 

channel program with lowest VBA 



CCBVA 

Virtual Address of CCB 



I : CCBICB, 

m Address of first I DAL 

Iwblock in channel program j? 



CCBXINF (Fix information; 24 bytes) 

;'.;,,.„„„ Each bit in this field represents one page frame. 

: If a bit is on, the associated page frame contains 
llillllllill ;a P°9 e f' xec l f° r this I/O request. If more than 
i * .*rm 384K of real storage are available, the address 

in CCBXPTR will point to any additional field 
if which contains ; j>faJof ft e , P°!§?? ^? mes b evon d 384K 



£CBXPTR 



lAddress of additional Fix information 



QCBNEXT 



Figure 6.28. CCB Copy Block 

♦Bit 2 is set (X^O 1 ) to indicate copied 
CCE. 

♦♦Legend CCEFLAG: 

Bits: 



0: 



4-7: 



indicates that CCW 
this request is co: 
is set before I/C- 
in channel queue 
indicates that at 
durirg CCW-trarsla 
been transferred t 
if scan through 
pages is skipped; 
iirirediately befcre 
transferred to TFI 
unused 

indicates that the 
tier, request freir 
channel appendage, 
set iirirediately af 
request from ETAM 
unused 



-translation of 
irplete; indicator 
request is enqueued 

least cne tiire 
ticn ccntrcl has 
c TFIX-rcutine; 
CCEXINF fcr freeing 
indicator is set 

ccntrcl is 
X- routine 

next CCfo-transla- 
ETAM is frcrr BTAM 

This indicator is 
ter 1st tiire 
has been completed. 



156 DCS/VS Supervisor 



ACCWT 



Byte 132-135 of 
SYSCOM 



CCWTADR,ACCBB 
AUTCB 



TCBPTR 





+20 


TCBACB 


•^ 




+ 108 


TCBPTR 


F'O' 



GCB copy blocks 




Translation complete 
and TCB is dequeued 



Figure 6.29. Locating CCB Ccpy Elcck 



Physical I/c Ccntrcl Systeir 157 



CCW Copy Blocks 

Each CCW copy block consists of 7 copy 
locations and 16 bytes for pointers and 
inserted TIC commands. The layout of a CCW 
copy block is shown in Figure 6.30. The 
non-shaded areas are initialized when a 
copy block is dequeued from the free block 
queue. The shaded areas are originally 
zero and the relevant information is 
entered when the CCWs are ccpied. 








1 


2 


3 


4 


5 


6 


7 





1st Copy location for CCW 


8 


"2nd Copy location for CCW '. \;'. : - ..vi; : : : . . = ' - : h J^ 


16 


3rd Copy location for CCW ' J* ; /:^\ ;: ^;:)!^-i^ir^ir-1:i«!ijM!l 


24 


|4thi Copy location for CCW : • •• • •'• : >'j 4 < / "r'-i"! - !' ^"-.- = ":?i:." :i"^ E * : ■^^>■i*"^-^^ : S 


32 


•5th Copy location for CCW : ; l':\^'-^./\'-;i;JY .' : ■■ >-*::• :' : l : ^ : S^S:fH:^SSM^ 


40 


•6th Copy location for CCW : :'' TrJ^'ZfJZ;^!*^ : !-^:':1 ; ;Wffffi.^>ifn$ii!!l^ 


48 


7th Copy location for CCW 


56 


X'80'* 


X'OOOOOO' 


Virtual address of first CCW in the 
Copy block (VBA) 


64 


X'88'** 


X'000000' 


Address of next CCW Copy;* : V-^§3" 
| block in the chain (ANB) 



Figure 6.30. CCW Copy Block 



*X'80' indicates the end of the CCW ccpy 
lccaticr.s in the blcck. It is replaced 
by a TIC (Transfer in Channel ccrrirand) if 
the 7th copy location contains a copied 
CCW with data- or command chaining. 
Eytes 57-59 will then point to the ccpy 
lccaticn of the CCW fcllcwing the CCW in 
the 7th copy location. Bytes 56-59 will 
net be changed if the CCW in the 7th ccpy 
location is a TIC. 



**X'88' indicates the last 8-byte entry in 
the block. It is replaced by a TIC if 
the CCW in the 7th ccpy lccaticn is a 
status modifier CCW. Eytes 65-67 will 
then pcint to the ccpy lccaticn cf the 
second CCW following the status modifier 
CCW. 



The CCW ccpy blocks fcr a translation are 
queued in order of increasing VEAs (see 
Figure 6.30) with the lewest one being 
pointed to by the field CCEACB in the CCB 
ccpy blcck. Figure 6.31 shews the relation 
of CCW copy blocks to one another. 



CCB Copy Blocks 



CCW Copy Blocks 




ANB 



More CCB 
copy blocks, if any 



ANB 



These blocks are queued 

such that 

VBA <VBA <VBA 

Blockl Block2 Block3 

Block 1 



Block2 



ANB 



Block3 



Figure 6.31. locating CCW Ccpy Elccks 



158 DOS/VS Supervisor 



IDAL Blocks 

User CCWs which have IBALs (indirect data 
address lists) or whose data areas cross 
page boundaries must have an IDAL in the 
copied channel program. 

If a data area crosses a page boundary, 
the CCW is changed to show that an IDAL is 
used (bit 37 of the copied CCW is set) and 
the address of the IDAL is placed in the 
data address of the CCW. The ICAL pointed 
to contains one entry for the beginning cf 
the data area and one entry for each page 
boundary crossed. 

An IDAL must be located in consecutive 
copy block locations, so that if an IDAL 
cannot fit into the last block in the queue 
(the count in IDALCNT is less than the 
number required) a new block must be 
enqueued. Each IDAL block has 17 lccaticns 
for Indirect Data Address Words (IEAWs). 

An I/O area in a program running in 
virtual mode must be less than 32K bytes 
long (which can be covered by 16 IEAWs). 

After an I/C area has been TFIXed in 
real storage, the addresses in the IDAL are 
translated to point to the ccrrect real 
storage locations (the address cf the 
beginning of the I/O area and the beginning 
of the page frames for the rest (the 
address of the last bytes in the page 
frames for a read backward command). 



Each IDAL is pointed tc by the CCW which 
references it. In addition, the ICAL 
blccks are queued with the first cne being 
pointed tc by the field CCEICB in the CCB 
ccpy blcck. Figure 6.32 shews the relation 
between the IDAL blocks and the ether 
blccks. 



Fix Information Blocks 



In order tc keep track of which 
have been TFIXed for a request, 
string is used which has a bit 
every page frame up to the high 
which is TFIXed. If nc page is 
an address higher than 384K, th 
string in CCBXINF is sufficient 
384K). Whenever a page is TFIX 
corresponding to its page frame 
cne. If a page is used mere th 
request, it is only TFIXed ence 



page frames 

a bit 
fcr at least 
est one 

TFIXed in 
en the bit 

(192 bits = 
ed, the bit 

is set tc 
an ence by a 



If a page is TFIX 
384K, cne cr mere ad 
must be added. This 
a ccpy blcck. Each 
enqueued provides fi 
additional 1088K cf 
additional blocks ar 
cne being pcinted tc 
in the CCE copy bloc 
hew fix information 



ed at a locati 
diticnal bit s 

is dene by en 
ccpy blcck thu 
x information 
real storage, 
e queued with 

by the field 
k. Figure 6.3 
is kept. 



en beyond 

trings 

queueing 

s 

for an 

The 
the first 
CCBXPTR 
3 shews 



CCB Copy Blocks 



CCW Copy Blocks 




IDAL Blocks 



Additional CCB 
copy blocks, if any 



IDAL1 


IDAL1 


IDAL1 


IDAL1 


IDAL2 


IDAL2 


IDAL2 


IDAL2 


IDAL2 


IDAL2 


FF 
















+ 68 ANB 



(address of next 
IDAL block for 
this request, if 
any) 



Figure 6.32. Relation of IDAL Blccks tc Other Elccks 

Notes: The X'FF' in the first byte of the 11th IDAW indicates the end cf the IDAWs for 
the block. In this case, the ICALCNT field in the TCE wculd shew seven free ccpy 
locations. 

The data area of CCW2 crosses three page boundaries (may be up to 8K) and the data area 
of CCW4 crosses five page boundaries (may be up to 12K) . 



Physical I/C Ccntrol System lb9 



Fix-string 
of 544 bits 



+68 ANB 



Fix-string : bit-table where each bit belongs 
unequivocally to a page frame 
(for 1088 Kbytes); 

if a bit is on, the page frame belonging 
to this bit has been TFIXed for this 
l/0-request 

ANB — if Fix-block is last one in Fix-block 

queue 
— address of next Fix-block 



Fix-bit string - 



represented _ 
page frame 







10 



■CCBXINF- 



C 



1 



Fix-string 1 



XXT 







ix-string 2 



TFIX(1) 



OK 



384K 



I TFIX(2) 

I384K 

M088K 



384K 
+ 1068K 
+1088 K 



Figure 6.33. Fix Information Eit String and Elcck 



• if for a specific page frame the Fix-bit is already en, no TFIX-request is transferred 
to the page manager. 

• the TFIX-blocks are freed after I/O-request has been posted complete. 



COPYING AND TRANSLATING CHANNEL PROGRAMS 

User channel programs are ccpied into the 
copy blocks described in the previcus 
section by either the routine CCWTRANS 
(entered at CCWTRBT2 for BTA.M channel 
appendage I/C request) . 

Ey way of initialization, the following 
is done before the actual copying and 
translation is begun: 

• The TCB for the requesting task is 
initialized and enqueued to the used TCE 
queue. As part of the initialization 
procedure, the TCE pointers to the two 
special command lists for the device are 
filled in (see Figure 6. 34). 

• Two copy blocks are dequeued frcm the 
free copy block queue fcr the CCE ccpy 
block and the first CCW copy block. 

• The CCE is copied and initialized so 
that the CCW address points tc the first 
location in the first CCW copy block. 
The VEA in the first CCW copy blcck is 
set to the virtual address of the CCW 



the virtual CCB is pointing tc (which is 
the virtual address of the first CCW to 
be executed) . 



If a sense CCW was present, it is also 
ccpied intc the CCE ccpy blcck and its 
data area is TFIXed in real storage 
(unless it crosses a page boundary, in 
which case an IDAL is built) , and the 
address is translated. 



The channel program is then copied and any 
necessary IDALs are built. The channel 
programs translated can be divided intc 
three classes according tc the types of 
commands they contain. They are described 
in the following order: 



Channel Programs without TIC or Status 
Fcdifier Ccmirands. 



3. 



Channel Prcgrarrs with TIC Commands . 

Channel Programs with Status Modifier 
Commands. 



160 DOS/VS Supervisor 



I DEVTYPE 1 

(from PUB) 



DEVTRTAB 
(256 bytes) 



DEVUST 



DEVTYPE 



X'FE' 



X'FF' 



X'nn' 



I byte 



X'nn' 



L 



ADDR1 



ADDR2 



-4 bytes - 



DEVL1ST 



DEVL2ST 



DEVL3ST 



DEVLnST 



DEVL1CD 



DEVL2CD 



DEVL3CD 



DEVLnCD 



Figure 6,34. Initializing Special Command List Pointers in TCB 

DEVTYPE: device type code frorr FUE 

Entries in DEVTRTAB: 

X'FF' = unsupported device. 

X'FE' = device does not support status modifier ccmrands cr control commands with data 
area. 

X'nn' = displacement to entry in DEVLIST if device supports status rrcdifiex ccrrirands 
and/cr control commands with data area. 

DEVLIST: list of pointers to the special command lists. The two entries (if any) for 
the device on which the I/O is requested are ircved to the TCE when this is 
initialized. 

DEVLnST: status modifier command list for device type r. . 

DEVLnCD: control command with data area list fcr device type n. 

DEVLnST and DEVLnCD are bit strings. When a CCW is copied, the command code is used to 
refer to a tit in these strings. Ey testing this referred hit it is determined whether a 
CCW is a status modifier command or a control command with data area, cr dees net fcelong 
to these categories. 



Physical I/C Ccntrol System 161 



I VIRTUAL STORAGE 



USER PARTITION 



Originol CCB 



Original CCWs 



CCW1 



CCW2 



CCW3 



(1st part) 



(2nd part) 



page 
boundary 



T 



REAL STORAGE I 



SUPERVISOR AREA 



V 



Channel Queue Entry 



CCB Copy Block 



— - Copied CCB 



IDAL Block 



CCW Copy Block 



CCW1 



CCW2 --■ 



CCW3 - -i 



± 



CCW Copy Block 



Page Pool 

I/O Areas 



[(Additional)| 



A (1st port) 



A (2nd part) 



T T 



Figure 6.35. Schematic Representation of 
Channel Prograir Translation 




REAL STORAGE 



CCW Copy Blocks 





CCW1 


ccw\ 




CCW2 


CCW \ 




CCW3 


CCW \ 






CCW4 


CCW 






CCW5 


CCW 






CCW6 


CCW / 

1 




CCW7 


CCW / 


TIC 


Address 
" of CCW8 


Virtual Address 
of CCW1 


/88 


000000 


Address of Next 
CCW.Copy Block 





CCW8 


CCW 




CCW9 


CCW 




^CCWIO 


CCW 




CCW1>\ 


CCW 


r x * 


80 


000000 


Virtual Address 
of CCW8 


88 


000000 


00000000 



Figure 6.36. CCW Translation for Channel 
Prograrrs Without TIC or 
Status Modifier Ccrrrrands 



Status Modifier Commands 



CC£^ing_Prcqrarrs_ccntainina_TIC_ 
hut no Status Modifier Ccrrrrands 



The first CCW in a channel program is 
always copied into the first copy location 
pointed to by the copied CCE. If command 
chaining or data chaining is specified in 
the CCW the following chained CCWs are 
copied into successive copy locaticns. 



If a prograrr of chained CCWs should 
contain 8 or more commands, a new CCW copy 
block must be used. The eighth copy 
location of the first copy block is then 
converted into a TIC command pointing to 
the first location of the next ccpy blcck. 
The VBA of the next copy blcck is set to 
the virtual address of the eighth chained 
CCW. 

Figure 6.35 is an example of a copied 
channel prograrr containing 11 chained CCWs. 



P. TIC 
is, wh 
ccpy 1 
ccrrman 
lcng, 
rreanin 
addre 
copied 
are us 
fellow 
the se 
Ccirman 
TIC is 



ccrrrrand (Tra 
en encounter 
ccaticn just 
d is. Altho 
enly the fir 
g (the comma 
s) . The sec 

TIC are set 
ed as a chai 

status modi 
cticr "Ccpyi 
ds") . The c 

set to X 1 08 



nsfer in Cha 
ed, copied i 

as any cthe 
ugh a TIC is 

t 4 bytes h 
nd cede and 
end four byt 

to zero. T 
n pointer fc 
fier ccrrrrand 
ng Status Mc 
omrrand code 
(standard 



nnel) command 
ntc the next 
r chained 

8 bytes 
ave any 
transfer 
es of the 
hese bytes 
r TICs which 
s (refer to 
difier 
of a copied 
user TIC) . 



The virtual storage location pointed to 
by the TIC command must be mapped into a 
lecation in the copied channel program. 
This mapped location is then placed in the 
copied TIC (unless the copied TIC is tne 
first location of a ccpy blcck, in which 
case the address is placed in the 



16 2 DOS/VS Supervisor 



end-of-block TIC (eighth ccpy location) of 
the previous copy block) and used as the 
copy location for the CCW pointed to by the 
TIC. The mapped location is determined in 
the following way: 



If the CCW pointed to 
has a copy location in 
block (i.e., there is 
the virtual CCW addres 
block's VEA and the bl 
place the location thu 
and copy the CCW in th 
is free. If the locat 
go to the translation 
routines. Figure 6.37 
a TIC which points to 
existing copy location 



by the TIC command 

an existing copy 
a block such that 
s lies between the 
ock's VEA+56) , 
s found in the TIC 
e location if it 
ion is not free, 
termination 

is an example of 
an already 



If it is possible tc align the new block 
to both the upper and lower blocks but 
net tc both at the same time (the 
difference between the VBAs of the two 
blocks is less than 112) , a short block 
must be created by moving the 
end-of-hlcck indicators tc the copy 
location following the last logical copy 
locations. Figure 6.39 shows hew a 
short tlcck is engueued. 



If no alignment of the new block with 
either cf its neighbors is possible, the 
VEA of the new block is made equal to 
the virtual address pointed tc by the 
TIC and the first copy location in the 
block is used. Figure 6.40 shews such a 
copy block being enqueued. 



If there is no existing copy loeatien a 
new CCW copy block must be enqueued. 
The new block is enqueued at either end 
of the existing queue or between twe 
existing blocks depending upon where the 
virtual address in the TIC is in 
relation to the VEAs of the existing 
blocks. Figure 6.38 shews hew a new CCW 
copy block is queued to provide a copy 
location for a CCW pointed tc bv a TIC. 
Cnce enqueued, the VBA of the new ccpy 
block must be determined. If at all 
possible, the new block will be aligned 
to the one either above cr belcw it (the 
VEA is 56 greater than the VEA cf the 
lower block or 56 less than the VBA cf 
the upper block) . This is only possible 
if the address pointed tc by the TIC 
lies within one of the ranges (i.e., is 
less than 56 below the VEA cf the above 
block or less than 112 above the VBA of 
the block chained below) . If possible 
to align to both blocks the alignment is 
made to the lower block. Considering 
the example in Figure 6.38 again it is 
seen to be possible to align the new 
block to the lower copy block and place 
the CCW to be copied in the 4th copy 
location. 



VIRTUAL STORAGE 
USER PARTITION 



User Channel Program 




CCW1 CCW 

CCW2 CCW 

CCW3 TIC CCW5 

CCW4 CCW 

CCW5 CCW 



REAL STORAGE 
SUPERVISOR AREA 



Copied Program 
CCW Copy Blocks 



ccwr ccw 


CCW2' ccw 


\ CCW3' TIC J 


\ ^ 


\ 


-►(copy location for CCW5) 


\ 


\ 


X'80' 







X'88' 









Figure 6.37. Locating a ccpy lecatien for 
a CCW pointed tc by a TIC 
when the lecation is in an 
already used ccpy tlcck 



Physical I/C Ccntrcl System 163 




CCW3 has just been copied. The 
problem is to find the copy location 
forCCW11. 



Free copy block is queued between A and B because the address 
used by the TIC at CCW3 lies between the VBA for A and the 
VBA for B. The solid line shows the conditions before the new 
block is enqueued and the dotted lines the conditions afterward. 



Once enqueued the VBA in the newly enqueued block will point to CCW8 (the block is aligned to the 
next lower block) and the TIC in CCW3 will point to the fourth copy location in the new block. 
Copying will then continue with CCW1 1 being copied into that location. 



Figure 6.38. 



Enqueueing a new copy blcck tc the ccrrect location in the CCW copy block 
chain to handle a CCfo pointed tc fcy a TIC 



164 DOS/VS Supervisor 




CCW3 has just been copied and the copy 
block for CCW1 1 has been enqueued. The 
problem is to align the block. 



Solution: Make the new block a 'short' block in that the 
end of block indicators are moved to the copy position 
following that for CCW12. 



Figure 6.39. CCW Copy block queueing calling fcr the creation of a "shcrt" fclcck to 
rraintain alignrrent 



Physical I/C Control Systeir, 165 



gQgyipg Status Mpjif ier_Coinrands 

Status modifier commands add another level 
of complexity to the copying process, 
because they may transfer control to either 
of the next two following CCWs depending 
upon the result of the status modifier's 
operation. If, for example, a SEARCH 
command is unsuccessful, control is 
transferred to following CCW. If it is 
successful, en the other hand, the 
following CCW is skipped and ccntrcl is 
passed to the second following command. 



This characteristic makes it possible tc 
create tree structures. Consider the 
following chain of commands: 

READ 

READ 

SEEK 

SEARCH 

TIC A 

READ 

READ 
A WRITE 

WRITE 

SEARCH 

TIC E 

READ 

READ 
E READ 

READ 



If the first SEARCH in thi 
successful, no branch is t 
command is skipped. If th 
successful the chained com 
at A are executed. The sa 
the second SEARCH is encou 
be done any number of time 
Since a program is copied 
executed, the presence of 
commands makes it necessar 
passes through a program i 
all the possible branches 



s program is 
aken as the TIC 
e SEARCH is not 
mands beginning 
me is true when 
ntered. This can 
s in a program, 
as it is 
status modifier 
y to take several 
n order to cover 



In the first pass through a program, a 
TIC following a status modifier command is 
copied but otherwise ignored (unless the 
status modifier is copied into the last 
copy location of a copy block) . The TICs 
thus encountered are queued in a line 
pointed to by LINEPTR in the TCE (the 
queueing addresses are in the second 4 
bytes of the copied TICs). Figure 6.41 
shows a program with status modifier 
commands after the first pass has been made 
at copying it. 



If a status modifier command happens to 
te copied into the last ccpy location cf a 

block, an entry in a different queue is 
made. This contains as entries the last 
locations cf blocks where a status modifier 
command is ccpied into the last ccpy 
location. The first entry in the queue is 
pointed tc by BENDFTR in the TCE. The 
queuing addresses are in bytes 1-3 of the 
queue elements (last lccaticr. cf the CCW 
ccpy blocks concerned) . Copying continues 
with the first CCW following the status 
modifier command being ccpied into the 
first location of the next queued ccpy 
block, and, if chained, copying continues 
with the following command. If, as is 
usually the case, the first command after 
the status modifier command is a TIC, the 
branch taken by the TIC cemmand is ccpied. 
Figure 6.42 shows how a program with a 
status modifier cemmand in the last ccpy 
position . 



As seen as an end is 
a program (a command wit 
command chaining is ccpi 
lecatien fcr a coinrard i 
the program checks tc se 
members in the queue pci 
or EENDPTR. The members 
are handled one at a tim 
6.42 - 6.44. Note that 
entries can be created w 
being handled. Translat 
when both LINEPTR and EE 
(i.e., no more entries i 



reached in copying 

bout data cr 

ed or a copy 

s already filled) 

e if there are any 

nted tc by LINEPTR 

cf these queues 
e. See Figures 
LINEPTR and EENDPTR 
hile ethers are 
ion is ccmplete 
NCPTR are zero 
n either queue) . 



Translating Data Addresses and Page Fixing 

Parallel tc the copying cf a channel 
program, the pages containing the data 
areas fcr the various CCWs are TFIXed in 
real storage and the virtual addresses of 
the data areas are translated into real 
addresses. If the user program has an IDAL 
(indirect data address list) cr if an I/O 
area crosses one or more page boundaries 
and IDAL must be built fcr the ccpied 
channel program. IDALs are first built 
using the virtual addresses cf the 
beginning cf the data area and the page 
boundaries. When the individual pages are 
TFIXed in real storage these addresses are 
replaced with the correct real addresses. 
Figure 6.45 shows an IDAL built fcr a data 
area both before and after the pages have 
teen TFIXed. Figure 6.46 shews hew the 
IDAL lecks if the command is a read 
backward cemmand. 



166 DOS/VS Supervisor 



VIRTUAL STORAGE 
USER PARTITION 


REAL STORAGE 
SUPERVISOR AREA 


User Channel Program 
CCB 




Copied Channel Program 

CCB Copy Block 








(j 






N 


^ 1 


^-» 




/ 




/ 










( 


* 




Y - 

Copied CCWss 


CCW1 CCW 


CCW2 CCW 


V 




CCW3 TIC 


\ 


:cwi ccw 




CCW2 CCW 
CCW3 TIC CCW16 
CCW4 CCW 
CCW5 CCW 
CCW6 CCW 
CCW7 CCW 
CCW8 CCW 
CCW9 CCW 
CCW 10 CCW 
CCWll CCW 
CCW 12 CCW 
CCW13 CCW 
CCW 14 CCW 
CCW15 CCW 
^CCW16 CCW 
( CCW17 CCW - 


\ 


\ 


\ 




\ 




— - 




jS New Copy Block 






^fopy Location for CCW 1 6 




































CCW3 has just been copied and it 
is necessary to find a copy location 
for CCW16, the next CCW copied. 



Solution: Enqueue a new copy block behind the first 
one and use the first copy location for CCW16 because 
it is impossible to align the new block to an existing block. 



Figure 6.40. Enqueueing new copy block which cannct be aligned tc existing blcck because 
CCW too far rerrcved from VEA of any existing block 



Fhysical I/C Ccntrol System 167 



VIRTUAL STORAGE 
USER PARTITION 



REAL STORAGE 
SUPERVISOR AREA 



User Channel Program 



LINEPTR(inTCB) 



k ^CCW1 


SEEK 


CCW2 


SEARCH 


CCW3 


TIC CCW9 


CCW4 


CCW 


CCW5 


CCW 


CCW6 


SEARCH 


CCW7 


TIC CCW12 


^CCW8 


CCW 


/ ^CW9 _ 
/ CCW10 


CCW _ 

"ccw 


\ CCW11 


CCW 


y CCW12 


CCW 




It is assumed that the 
user's original CCB points 
toCCWL Translation 
starts with this CCW. 
CCW8 and CCW9 are 
not chained 



CCW8CCW 



X'80" 



X'88' 



" - — VBA 



Status of copied channel program after 
first pass. First pass ends with 
CCW8 because it is not chained. 



Figure 6.41. A channel prcgrarr containing status rrodifior commands after the first pass 
has been made at copying it 



168 DCS/VS Supervisor 




Figure 6.42. 



Channel program containing status irodifier commands after the first pass 
has been made 



Physical I/C Control System 169 



VIRTUAL STORAGE 
USER PARTITION 



REAL STORAGE 
SUPERVISOR AREA 




CCB 




CCW1 


CCW 


CCW2 


CCW 


CCW3 


CCW 


CCW4 


CCW 


CCW5 


CCW 


CCW6 


CCW 


CCW7 


SEARCH 


CCW8 


TIC CCW15 


CCW9 


CCW 


CCW10 


SEARCH 


CCW11 


TIC CCW16 


CCW12 


CCW 


CCW13 


CCW 


4£W14 


_ccw^--^ 


CCW15 


CCW 


CCW16 


CCW 



It is assumed that CCW 14, 
CCW15 and CCW16 are 
not chained. 



to virtual 
CCW8 



CCW 15 CCW 




























X'80' 


3XW 






VBA • 




X'88' 


3XW 








to virtual 
CCW 15 



The only BENDPTR entry has been resolved. Note 
that a LINEPTR entry has been created, necessitating 
at least one more pass to complete the copying of the 
program. 



Figure 6.43. The channel prcgrair containing status ircdifier ccirirands after the second 
pass has been irade 



170 DCS/VS Supervisor 



VIRTUAL STORAGE 
USER PARTITION 



REAL STORAGE 
SUPERVISOR AREA 




It is assumed that 

CCW14, CCW15 andCCW16 

are not chained 



(InTCB) 
LINEPTR BENDPTR 



to virtual 
CCW8 



to virtual 
CCW15 



The translation terminates because a command 
without chaining, CCW16, has been copied and 
there are no more BENDPTR or LINEPTR entries. 



figure 6.44, 



The channel prcgrarr containing status rrodifier corrrrands after translation 
has been completed 



Physical I/C Ccntrcl Systeir 171 



VIRTUAL STORAGE 
USER PARTITION 



User Channel Program 



REAL STORAGE 
SUPERVISOR AREA AND PAGE POOL 



CCB Copy Block 




<^~>^ 




/> 


FF 







Copied Channel Program after 
data area pages are TFIXed 



<+ 1 Page Pool 




Figure 6.45. Copied CCW requiring an IDAL tc te fcuilt (r.crrral READ cr fcRITE ccrrirand) 



172 DCS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



VIRTUAL STORAGE 
USER PARTITION 



REAL STORAGE 
SUPERVISOR AREA AND PAGE POOL 



CCB Copy Block 



User Channel Program 







+ 8 










+ 32^ 


+36, 


* ^*^ 





CCW Copy Block 




Figure 6.46. Copied CCW requiring an IDAL to be built (READ Backward command) 



Physical I/O Control System 173 



Queueing_an__I/Q_Rec[uest 



After the channel program has been 
translated, the request is queued in the 
channel queue and control is given back to 
the channel scheduler. If there is no free 
channel queue entry for the request, the 
task is put into the wait state with the 
indication that it is channel-queue-bound 
(first byte in PIB is set to X'79'). 



PROCESSING AFTER COMPLETION CF AN I/O 
REQUEST 



At a normal end of channel condition for a 
translated channel program, the I/O 
interrupt handler transfers control to the 
routine CSWTRANS. This routine must then: 

• Free all pages fixed for I/O areas. 

• Retranslate the CCW address placed in 
the CCB at channel end to the correct 
virtual address. 

• Release the CCW copy blocks, IDAL 
blocks. 

• Move changed parts of the CCB to the 
virtual-mode program and release the CCB 
copy block. If the virtual CCB is not 
in real storage, the end of channel 
information is not copied to the virtual 
CCB by the routine CSWTRANS. Instead, 
CSWTRANS posts a bit in the tasks PIB 
(PIB DAT Flag = X'04") indicating tc the 
dispatcher that the CCB should be moved 
before the task is dispatched. This is 
necessary because CSWTRANS may not cause 
a page fault and, therefore, cannot 
request that the virtual CCB be brought 
into real storage. 

« Activate tasks waiting for copy blocks 
(set TRTBUF to X f 83') . 

CSWTRANS returns control to the interrupt 
handler when it has finished prccessing. 



BTAM CONSIDERATIONS 



An I/O request coming from a BTAM 
channel appendage via the I/O Interrupt 
Handler must be translated without 
incurring any interruption (wait, page 
fault, etc.). In order to do this BTAM 
specifies the maximum number of copy blocks 
that will be needed by an appendage in 
addition tc the number used by the original 
request. This number is contained in the 
residual ccunt field of the CCB when an I/O 
request is made. After a BTAM request has 
been translated and before it is put in the 
channel queue, the additional blocks 
specified are taken from the free queue and 
saved so that they will be available when 
the request for the appendage is made. 

All of the copy blocks used by BTAM 
(except the CCB copy block) are first freed 
when a translation, request for the BTAM 
channel appendage comes. They cannot be 
lost however, because no ether task can 
gain control of the CCW translation 
routines when an appendage routine is being 
processed. The special ETAM TCB is used 
for a BTAM channel appendage I/O request. 

Once the channel program for an 
appendage has been translated, control is 
returned tc the I/O interrupt handler. 
There is no need to enqueue the request in 
the channel queue since the original 
request has not been dequeued. 



TRACK-HOLD FACILITY 



The Track-Hold Table (THTAB) is similar to 
the Channel Queue Table: when a task 
requests a track to be protected, an entry 
in the Track-Hold Table is filled in the 
same way as a channel queue entry for an 
I/O request. Requests fcr mere tracks to 
be held on a specific device are chained in 
the same manner as a device chain in the 
channel queue. For the format of the 
Track-Hold Table, see Figure 6.48. 



T£3!pkr8Q.ld-Without .Seek Separation 
CFOPT macro TRKHLD^n, SKSEP=NO) 



If a BTAM channel appendage is to be called 
after a BTAM request, the CCW address left 
in the CSW at channel end is retranslated 
by CSWTRBTM and returned to the I/O 
interrupt handler before the appendage is 
given control. 



A BTAM I/O request is translated and 
copied in the same manner as normal I/C 
requests unless it comes from a BTAM 
channel appendage. 



Figure 6.47 shows the initialized 
significant bytes of the Track-Held 
mechanism. 



Figure 6.49 illustrates the pointers and 
table entries after several Track-Hold 
requests have been issued. Referring to 
this figure, if task aa releases track 1A 
(entry Nc. 0) or track 2A (entry No. 3), 
the way the pointers are then exchanged may 
be compared with dequeueing an entry in the 
channel queue. 



174 DOS/VS Supervisor 



FREE_LIST 
POINTER 

(THFLPTR) 

00 



TRACK-HOLD TAEIE ENTRIES 



PUBS 
TRACK_HOLD 
POINTERS 

(PUBOPTN) 

FF 

FF 

FF 

FF 

FF 



UntO Chs*in 



ain 
jyte 


CCB 
Addr A 


Track Addr. 
(EECCHH) 


Beg. 

ID 


Flag and 
Counter 


.01 


zercs 


zercs 


zercs 


zercs 


02 


zeros 


zeros 


zeros 


zeros 


03 


zercs 


zercs 


zercs 


zercs 


,04 


zercs 


zercs 


zercs 


zercs 


.O 5 


zercs 


zercs 


zercs 


zercs 


,06 


zercs 


zercs 


zercs 


zeros 


,07 


zercs 


zercs 


zeros 


zeros 


^0 8 


zercs 


zercs 


zeros 


zercs 


.09 


zercs 


zercs 


zeros 


zeros 


FF 


zercs 


zercs 


zeros 


zeros 



Figure 6.47. 



Track-Hold Table: 

Initial contents cf significant bytes used in responding tc 

track-hold requests 



When a task requests a held en a track 
that is already held by another task, the 
high-order bit of the f lag-and-ccunter byte 
is turned on (for example, entry Nc. 1 in 
Figure 6.49). When a task requests a hold 
on a track that it already hclds itself, 
the f lag-and-counter byte is incremented by 
one (for exairple, entry No. 4 in Figure 
6.49) . 



Cn rele 
task, and 
before the 
are waitin 
of the wai 
returns to 
selected t 
its hold r 
task or ta 
track now 
a task gai 
again been 
the wait s 



ase of a track by th 
provided the counter 

release, any task o 
g for that track are 
t state. The superv 

task selection and, 
ask was waiting for 
equest is honoured, 
sks that were waitin 
remain ready-to-run, 
ns control before th 

released, that task 
tate . 



e holding 

is zero 
r tasks that 

brought cut 
isor then 

if the next 
this track, 

Any ether 
g for the 

but if such 
e track has 

returns tc 



If the counter is more then zerc before 
the release, then only the counter is 
decremented by one so that the track 
remains held by the same task. Fcr 
illustrations of these operations, compare 
Figures 6.49 and 6.51, entry Ncs. 1 and 4. 



Figure 6.50 summarizes the sequence cf 
events leading to the situations shown in 
Figures 6.49, 6.51, and 6.52. 



THTAB 



1 



3 4 



9 10 11 



CCB Address 



Address of held track 
(BBCCHH) 



-Chain byte 



Key of task - 
Flag and Counter - 



THFL PTR*) 



The length of the table is deter- 
mined at supervisor generation time. 



Figure 6.48. Track-Held Table (THTAE) 



E;y t e s : 



Initially, pointer tc next sequential 
entry or X'FF' (table delimiter) in 
last entry. After requests have been 
issued, this byte points tc the entry 
fcr the next request fcr a track on 
the same device, or contains X'FF' 
(in entry fcr the last request) , or 
it is a pointer in the free list 
chain. 



Physical I/C Ccntrcl System 175 



1-3: Address of CCB associated with the 
task requesting the held. 



4-9: Disk address of the track being held 
(in the form BBCCHH) . 

10: Key of the task owning the track. 

11: Bit 0=1: Indicatess a task is 

waiting for this track 

1-3: Unused 

4-7: Counter of number cf hclds 
on the track. (The number 
of holds is one more than 
this value.) 



* VNo t e : 
THFLPTR: 



The Track-Hold Free List Pointer 
(1 byte) contains the 
displacement within the 
Track-Hold Table of the first 
entry in the free list cr X'FF' 
when the Track-Hold Table is 
full. 



Eytes 77-79 (X'^D' - X'4F') cf the System 
Communication Region (SY2C0M) contain the 
address cf the Track-Hold Table. Label 
THTAE identifies the first byte cf the 
table. 

Eyte 76 (x'4c') of the System Communication 
Region (SYSCOM) contains the address of the 
Track-Hold Free List Pointer. Label 
THFLPTR identifies the location cf the 
pointer. 

The half-wcrd at THTAE-2 contains the total 
number of 12 byte entries comprising the 
Track-Hold Table. 



Track-Held with Seek Separation 

(FCPT macrc TRKHLD=n, SKSEP=n, cr YES) 

When the supervisor supports Seek 
Separation, the PUB points tc the Seek 
Address Elcck (SAE) which contains a 
pointer tc the Track-Hold Table (THTAB) , 
but the operation cf the Track Held 
facility remains the same as without seek 
separation. . 



TRACK-HOLD TAELE ENTRIES 



Nc A Eyte 




CCB 
Addr. 

XXX 
XXX 
XXX 
XXX 
XXX 

zercs 
zercs 
zeros 
zeros 
zercs 



l£§ck_Addrj, 
(EECCHH) 

Track 1A 

Track IE 

Track 1C 

Track 2A 

Track IE 

zercs 

zercs 

zeros 

zeros 

zercs 



Reg. 

ID 

aa 

aa 

bb 

aa 

aa 
zercs 
zercs 
zeros 
zercs 
zercs 



Flac[_and 
Counter 

00 

80 

CO 

00 

01 
zercs 
zercs 
zercs 
zercs 
zercs 



Figure 6.49. Track-Hold Table: 

Task aa holding tracks 1A, IE, and IE (2 hclds) on 1st 
device, and track 2A on 2nd device; Task bb holding track 1C 
on 1st device; A task is waiting tc held track IB en 1st 
device. 



176 DCS/VS Supervisor 



TASKS: 



SEQUENCE_of 
REQUESTS 



aa 

Hold 1A 
Hold IE 

Hold 2A 
Hold ID 
Hold IE 



bb 



cc 



Held 1C 



Remarks 

Entry queued. 
Entry queued. 
Entry queued. 
Entry queued. 
Entry queued. 
Counter incremented. 



Hold IE 



Entry flagged and requestor put 
into wait state. 
- — The table entries and pointers at this stage are illustrated by Figure 6.49. 



Free IE 



Free 1A 



Flag turned eff, waiting task (cc) 
made ready-tc-run, and task 
selection entered; if task cc is 
selected, its request fcr track IB 
is honoured. 

Entry dequeued. 



Free ID Counter decremented . 
The table entries and pointers at this stage are illustrated by Figure 6.51. 

Free 2A Entry dequeued. 

Free ID Entry dequeued . 

Free 1C Entry dequeued. 

Free IE Entry dequeued. 

All tracks have new been freed as shewr in Figure 6.52. 

Figure 6.50. Example of Tracks Held and Freed by Three Tasks 



Physical I/C Control System 177 



TRACK-HOLD TABLE ENTRIES 



Entry Chain 
Nc. E^te 




CCB 
Addr. 

XXX 
XXX 
XXX 
XXX 
XXX 

zercs 
zercs 
zeros 
zeros 
zercs 



Track Addr. 
(EECCHH) 

Track 1A 

Track IE 

Track 1C 

Track 2A 

Track IE 

zercs 

zercs 

zeros 

zeros 

zercs 



ID 
00 
cc 
tb 
aa 
aa 
00 
00 
00 
00 
00 



Flag and 
Counter 

00 

CO 

CO 

00 

CO 

CO 

CO 

CO 

CO 

CO 



Figure 6.51. Track-Hold Table: 

Task aa has released holds on tracks IE and 1A, and one cf 
the holds on track Id; Task cc has keen trcught out cf the 
wait state and has been selected to run, so it now holds 
track IB. 



TRACK-HOLD TAELE ENTRIES 



THFLPTR 
01 



Entry Chain 




CCB 
Addr. 

XXX 
XXX 
XXX 
XXX 
XXX 

zercs 
zercs 
zeros 
zeros 
zercs 



T ra ck Addr. 
(EECCHHX 

Track 1A 

Track IE 

Track 1C 

Track 2C 

Track IE 

zercs 

zercs 

zeros 

zeros 

zercs 



Reg. 
ID 

00 

00 

00 

00 

00 

00 

00 

00 

00 

00 



Flag and 
Counter 

00 

CO 

CO 

00 

CO 

CO 

CO 

CO 

CO 

CO 



Figure 6.52. Track-Hold Table: Situation after tctal release 



178 DOS/VS Supervisor 



SEEK SEPARATION 



Executing the Channel Prcqram 



(FOPT macro SKSEF=n, or YES) 

A supervisor that supports Seek Separation 
on DASD includes a Seek Address Elcck (SAE) 
table with a 5-byte entry for each DASD in 
the system. The SAB entry fcr a device is 
pointed to by the PUB and, if the 
Track-Hold facility is alsc supported 
(TRKHLD=n) , byte 4 of the SAE points to the 
Track-Hold Table (THTAE) entry when a task 
requests a track to be protected. 

The first four bytes of the SAE table 
entry contain the current disk address 
(BCCH) for the device. These bytes are set 
up at initiation of the first long seek 
(command code X'07 f ) in the user's channel 
program. 

The Seek Separation routine is bypassed 
for diskette and devices with the 
disconnect command chaining feature on 
block multiplexer channels, running in 
block multiplex mode. 



Eefore executing the channel program, the 
user's seek address is compared with the 
address in the SAB table entry. If they 
are the same, I/O is started immediately. 
Note that this Start I/O could be for a 
chain cf commands cr fcr an isolated user's 
seek. 



If the addresses are unequal tut the CCW 
is not chained (isolated user's seek), the 
4-tyte seek address is stored in the SAB 
table entry before starting I/O en the 
channel. 

The following is the sequence cf events 
when the seek address is different from the 
address in the SAB table entry and the Seek 
CCW is the first in a chain: 

1. The user's Seek cCtt Chain Bit is turned 
off. 

2. The CCE 1st Communication Byte is 
saved . 



SAB 




\ S ^J> 1 2 

\ 



B 


C 


C 


H 


X'FF 



Figure 6.53. Seek Address Elock Table 
(SAB) 

Bytes : 

0-3: Current Disk Address (ECCH) 

4: X'FF' cr: Pointer tc the Track-Held 
Table entry. 

N2te: A SAE table is only generated if 
Seek Separation has been specified at 
supervisor generation time. 

Bytes 56-59 (X'38' - X'3B f ) of the System 
Communication Region (SYSCCK) contain the 
address of the SAB Table. Label SAB 
identifies the first byte cf the table. 



The CCE 1st Communication Byte is made 
X'04' (Device-End Posting Required). 

The CCE 3rd Ccmmunicaticn Eyte bit 7 is 
turned on (Seek Separation Active) . 

The 4-byte Seek Address is stored in 
the SAE table entry. 

I/O is started on the channel. 



Initialized Entry 

r T T T T -1 

| | 1 | 2 | 3 | 4 | 

j. + 4 + + 1 

| 00 | 00 | 00 | 00 | FF | 

L X X X X J 

Entry with Seek Address Stored 

r T T T T 1 

] | 1 | 2 | 3 | 4 | 

j. + x 1 1 -i 

| E | C | C | H | FF | 
L X X X _X J 

Entry with Seek Address Stored and with 
Pointer to Track-Hold Table Entry 
r T T T T n 

| | 1 | 2 | 3 | 4 | 

j. 4 4 4 4 1 

| B | C | C | H | xx | 

L X X X X J 

Figure 6.54. Seek Address Block (SAB) 
Table Entries 

Figure 6.54 shows the format and contents 
cf the entries. 



Physical I/O Ccntrcl System 179 



At Channel End: 



7. The data length is ircre than 80 bytes. 



If I/O is pending for other devices, the 
channel is rescheduled. Otherwise, return 
directly to task selection. 

Note; If unit check occurs when a 
separated seek is being executed, the 
user's CCW chain is restored and I/O is 
restarted. If a second unit check occurs, 
the original user's chain will then be 
available for ERP or dump analysis. 



When Device End occurs: 

1. The user's Seek CCW Chain Bit is 
restored. 

2. The CCE 1st Communication Eyte is 
restored. 

3. The CCB 3rd Communication Eyte is 
reset. 

4. I/O is restarted on the channel, using 
the same long seek command. 



This time the entire user's channel prcgram 
is executed; the arm is already at the 
user's seek address and the CCW is chained 
to the next command. 



8. The user's CCW is chained. 

9. The user's CCW PCI bit is on. 



The Ccnscle B 
is a 104 mult 
storage, wher 
entry in the 
a fullwcrd co 
buffer entry 
the address o 
104 every tim 
pcints tc the 
becomes great 
reinitialized 



uffer Table (see Figure 6.55) 
iplied-by-n bytes area of main 
e n is 1 - 5C. Each buffer 
table is 104 bytes. CBNEXT is 
nstant that points tc the next 

CBNEXT is initialized with 
f CBTAB and is incremented by 
e a buffer is used, so that it 

next entry. When its value 
er than CEENB, CBNEXT is 

with the value of CETAE. 



Each entry in the console buffer 
comprises three areas: 



1. The Ccnscle Buffer CCW (CBCCW) : an 
area in CCW-format whose data address 
field always points tc the Console 
Euffer Data (CBDATA) area. 



The Console Buffer CCE (CBCCE) : an 
area in CCB-fcrmat whcse CCW address 
field (CCB bytes 9-11) always points to 
the Console Buffer CCW (CBCCW). 



CONSOLE BUFFERING 



(FOPT macro CBF=n) 

If the FOPT macro parameter CBF=n vvas 
included, the supervisor supports buffering 
of output to the console printer (unless 
MODEL=125) . This enables the supervisor tc 
return immediately to the caller when a 
write I/O command is issued. 



The console buffering routine is 
bypassed, however, if cne of the following 
conditions exists: 

1. The I/O request is not a write. 

2. Device-end posting is requested by the 
user. 

3. Unrecoverable I/O errors can be 
accepted by the user. 

4. The user has his own I/C routine. 

5. The user wants sense infcrmaticn 
returned. 

6. The CCW or data are not in the user's 
partition. 



The Console Buffer Data (CEEATA) area: 
an output area tc vvhicb the user's 
output data is moved. 



When the console buffering routine is 
entered frcm the channel scheduler routine, 
provided the next buffer entry (pointed to 
by CENEXT) is free, the command code, flag 
byte, and byte count in the user's CCW are 
moved to the CBCCW, the user's output data 
is mcved tc the CBDATA area, and the user's 
symbolic unit address to the CECCE area in 
the buffer entry. 



If the next buffer entry is net free 
(CECCB traffic bit net yet pested) return 
is made to the user to reissue the SVC. 
The user is posted console buffer table 
entry bound (X'7D') . 



The console buffering routine pests the 
traffic bit in the user's CCE and moves the 
CECCE address to general register 1 before 
returning tc the channel scheduler routine. 



At channel end, the I/C interrupt 
handler sets the traffic bit in the CBCCB, 



180 DOS/VS Supervisor 



CBTAB 



■D 




0) 




C 




E 




V- 




0) 
0) 


F 


■D 


'+-» 


</) 






c 


to 


o 


O 


+-> 


k. 


m 


■4-* 




c 


<u 


0) 


c 


**- 

o 


% 


0) 


o 


a 




E 


> 


3 
C 


8. 



£ ^ 



\ 

\ 

\ 

\\ 

\ 
\ 



7 8 23 24 



CBCCW 



CBCCB 



CBDATA 



CBEND 



supervisor resident cr transient routines 
for analysis in attempting recovery. The 
last entry in the queue is used only by the 
resident routines in the supervisor. 

P3 Whenever exit has to he taken to a 
transient routine, this entry is rrcved up 
to the first free entry and is used fcy the 
transient when it beccrres the first in the 
queue. 



In a supervisor without MPS , there are 
at least three error queue entries. With 
IMPS, the rriniiruir; nurrker of entries is five, 
tut any nurrber frorr 5 to 25 nay be 
specified ty the ERRQ parameter in the FCFT 
iracrc at supervisor generation tirre. 



CBNEXT 



points to next buffer entry 



Figure 6.55. Console Buffering Table 
(CBTAB) 



By_t e s : 



0-7 



8-23 



CCW: Ccrrmand code, chain byte, and 
count field copied froir the user's 
CCW. The data address is always 
the address of the data portion of 
the buffer entry. 

CCB: The CCB used by the console 
buffering routine; the CCW address 
is always the address of the CCW in 
the buffer entry. 



24-103 DATA: Contains the data ircved from 
the requestor's output area. 

Label CBTAB identifies the first byte of 
the Console Euffer Table. 



ERR0R_QUEUEING_AND__DE2UEUEING 



The error queue is a series of entries 
containing information required by 



When an error 
checks the avail 
queue entry. If 
is filled with t 
information but 
If recovery is a 
resident supervi 
immediately avai 
cccurs. If the 
available, the t 
error queue over 



occurs, the supervisor 
ability of the last error 

available, the last entry 
he current error 
it is not flagged active, 
cccrrpiisfced entirely by 
sor routines, this entry is 
lable in case another error 
last entry is net 
ask is canceled due tc 
flow . 



When exit is to be taken to a physical 
transient routine, the contents of the last 
error queue entry are moved to the first 
free entry which is then flagged active. 
The last entry therefore remains inactive 
unless it is the enly free entry at the 
time this decision is taken. 

The physical transients serve each 
successive first entry in the queue. When 
error recovery is completed, control is 
returned tc a resident exit routine which 
dequeues the first entry by moving all 
ether entries upwards one position. The 
last entry is made inactive in case the 
queue was full or the bit was turned en by 
cverlay. 

See Figures 6.56 and 6.57 for operation 
cf error queue and format of the entries. 



Physical I/C Control System 181 



A. 1st Error Information entered 
into Last Error Queue Entry. 



B. 1st Error Information rrcved tc 
First Free Entry for use by 
Transient 



1st Error Information being 
used by Transient; 2nd Error 
Information entered into Last 
Error Queue Entry. 

1st Error Information being 
used by Transient: 2nd Error 
Information moved to First 
Free Entry for use by Transient. 

1st Error Recovered by Transient, 
1st Entry Dequeued: 3rd Error 
Information entered into Last 
Error Queue Entry. 

2nd Error Recovered by Transient, 
1st Entry Dequeued; 3rd Error 
Recovered by Resident Routine. 



Status 



Contents 



lSTJOTRY 
Inactive 

Free 



Active 

1st Error 
Inf oriration 

Active 

1st Error 
Inf oriration 

Active 

1st Error 
Inf criraticn 

Active 

2nd Error 
Inf oriration 

Inactive 

Free 



2ND_ENTRY 
Inactive 

Free 



Inactive 
Free 

Inactive 
Free 

Active 

2nd Error 
Inf criraticn 

Inactive 

Free 

Inactive 
Free 



LAST ENTRY 
Inactive 

1st Error 
Infcriraticn 

Inactive 

Free 

Inactive 

2nd Error 
Inf oriration 

Inactive 

Free 

Inactive 

3rd Error 
Inf oriration 

Inactive 

Free 



Figure 6.56. Operation of Errcr Queue with Three Entries 



ERBLOC 



ERRQ1 



Name of phase 
to be fetched 



8 



Branch address 
to retry the 
the failing 
operation 



10 



11 



Branch address 
to ignore the 
error 



12 



13 



Branch address 
to cancel the 
task 



14 



15 



Return address 
for A-transient 



First error queue entry 



The A-transient loads one of these addresses in 
register 14 before branching to the return address 
(see bytes 14-15) 



Last error queue entry 



Error queue entries (44 bytes each). 

The number of entries is determined 
at supervisor generation. 



Figure 6.57. Error Recovery Block (ERELOC) and Errcr Queue Entry 



Layout of any_ Error Queue Entry 

Eytes: 

0-7 CSW 

8-9 Address of PUB for device in error 

10: Flag byte: 



Bit 
1 
2 



1 = No record found on DASD 
1 = Intervention required 
1 = Passback (Set by device 
ERP) 



11: 



1 = Allcw igncre 

Net used 

1 = Allow retry 

Not used 

1 = Active entry 



Message cede: iray refer tc a 
device error recovery iressage 
generated by physical IOCS or: 



This location iray contain cne cf 
the following: 



182 DOS/VS Supervisor 



12-15 



16-19 



20-43 



X"E2' = The error is recoverable 

X'AE' = A record is to be recorded 
on the systeir recorder file 
for SVC 4 4 or a ETAM 
appendage routine, and a 
physical transient is to be 
fetched (last twc 
characters cf phase naire 
are in bytes 20-21). 

Disk seek address 

Address of CCB 

Sense data: The nurrber of sense 
bytes generated depends en the 
options specified; the minimum is 
24 bytes, or: 

Alternate entry name: If byte 11 
contains X'AE 1 , bytes 20-21 contain 
the last two characters cf the 
phase name of the physical 
transient to be fetched for SVC 44 
(A3) or ETAM (A5) . X'AF* in byte 
22 indicates that the I/C area 
associated with an alternate entry 
has been fixed temporarily. 



^2t§ : Tn9 address of the Error Elcck can 
be found in SYSCOM at displacement 
(X'OO 1 ) . 



To fetch another physical transient, an 
ERP transient issues a SVC 5. The Fetch 
Routine is then entered tc deactivate the 
ERP task while the Fetch is in progress. 
Cn completion of the Fetch, the ERF task is 
reactivated and the fetched phase is 
entered. 



5ISK_ERRCR_REC0VERY 

Eisk errcr recovery routines are the enly 
resident device error recovery routines. 
They are described belcw. A-transients are 
only fetched when the errcr is tc be 
recorded, cr when an operator message is 
required. 

For all other devices errcr recovery and 
recording is performed by A-transients. 
These transients are fully described in the 
E5§/VS_Errcr_Reccver^_and_Re cording 
l^j§ n si e n t s_Lccj ic manual. 



2311 AND 2314 DASD ERRCR RECOVERY 

This rcutire is entered at label DISKERR. 
The following list gives the conditions 
tested fcr. Refer alsc tc DCS/VS Error 
Recovery and Recording Transients Logic. 



CSW Bit 44 



Channel Data Check. 



LOADING ERP PHYSICAL TRANSIENTS 



ERP is a System Task, and when exit is to 
be taken to a physical transient a switch 
is set in the SCP Communication Region 
(SYSCOM) to indicate the initial selection 
of the ERP task. The initial entry in the 
errcr queue (last entry) is moved tc the 
first free entry, which is then made 
active, and return is made tc task 
selection in the General Exit Routine. 

fohen the entry has become the first in 
the error queue and the ERP system task is 
selected, the initial selection switch in 
SYSCOM is turned off and pointers to the 
current system task and to the errcr PUB 
are set up. 

The Fetch Routine is then entered and 
the ERP task is made to wait until the 
required transient has been loaded. The 
Fetch Routine makes the Supervisor System 
Task Dispatchable. 



Cn completion of the Fetch, the SUPVR 
bit is turned off and the ERP system task 
is reactivated. The physical transient 
phase that was read into the physical 
transient area is then entered. 



Action: One retry. If errcr persists, 
exits tc disk ERP transient and ERP 
message writer with the allcw retry 
switch cn. 

Message: OP2 8 CHAN DTCHK. 



• Sense Byte 0, Bit 3 - Equipment Check. 

Action: Exits to disk ERF transient and 
ERP message writer with the allcw retry 
switch cn. 



Message: 0P10 EQUIP CHK. 



• Sense Eyte 1, Bit 4 - Nc Record Found. 



Action : T 
(Missing A 
executes r 
retry oper 
persists a 
ERP transi 
with the a 
present, r 
it to user 
pests Nc R 
exits tc c 
equal, the 
Seek Check 



ests fcr byte 1 
ddress Marker) . 
estcre command 
ation. If the 
fter 10 retries 
ent and ERP ires 
How retry swit 
eads Heme Addre 
' s Seek Address 
ecord Fcund tc 
ontinue process 
condition is t 



, bit 6 


If present, 


and exits to 


errcr still 


, exits to disk 


sage writer 


ch cn. If not 


ss and compares 


If equal, 


the CCB and 


ing. If net 


reated as a 



Physical I/C Control System 183 



Message: 0P21 NRF - MADCMK (No. Record 
Found/Missing Address Marker) # or 0P15 
SEEK CHECK (Home Address unequal to Seek 
Address) . 



Note: Home Address is read, and the 
track address is provided for the error 
message. For other errors, the track 
address is obtained from the user seek 
address if error occurs during channel 
program execution. 



• Sense Byte 0, Bit 7 - Seek Check. 

Action: If byte 0, bit (command 
reject) is on, exits to disk ERF 
transient and ERP message writer to 
issue message after which the task is 
canceled. Otherwise, executes restore 
command and exits to retry the 
operation. If the error still persists 
after ten retries, exits to disk ERP 
transient and ERP message writer with 
the allow retry switch en. 

Message: 0P26 INVAL SEEK (Seek Check/ 
Command Reject), or 0P15 SEEK CHECK. 



• Sense Byte 0, Bit 1 - Intervention 
Required. 

Action: Exits to disk ERP transient and 
ERP message writer for operator 
intervention. 

Message: OP 08 INTERV RE£. 

• Sense Byte 0, Bit 2 - Bus-Out Check. 

Action: Exits to retry the cperaticn. 
If the error still persists after ten 
retries, exits to disk ERP transient and 
ERP message writer with the allcw retry 
switch on. 

Message: 0P09 BUSOUT CHK. 



• Sense Byte 0., Bit 4 - Data Check. 

Action: CCE options (all data checks, 
data check on read or verify) . Exits tc 
retry the operation. If the error still 
persists after 256 retries, exits tc 
disk ERP transient and ERP message 
writer with the allcw retry switch en. 
After each 16 retries, a recalibrate is 
performed until the maximum of 256 
retries is reached. If errcr persists 
after 256 retries, posts data check on 
count to CCB, if present; otherwise, 
posts data check. If command cede is 
verify (implied), pests verify error in 
CCB. 



The verify command is implied under the 
following conditions: 



The CCfc" has a command cede X'Cl' (Write 
- Special Count, Key and rata), and the 
skip and SLI flags are set en. 



The CCW has a command cede X'lE' (Read - 
Ccunt, Key and Data), the skip and SLI 
flags are set on, and the CCW fellows a 
CCW with a write command cede X'lD'. 

Message: 0P12 VERIFY CHK (Data Check en 
Verify command) , or 0P11 DATA CHECK 
(Data Check/net Data Check en Ccunt or 
Verify) , cr 0P16 DTACHK CT (Data Check 
on Count) . 

Note: Home Address is read, and the 
track address is provided for the error 
message. Fcr ether errors, the track 
address is obtained frcm the user seek 
address if errcr cccurs during channel 
program execution. 



• Sense Eyte 0, Bit 5 - Overrun. 

Action: Exits tc retry the cperaticn. 
If the error still persists after ten 
retries, exits tc disk ERF transient and 
ERP message writer with the allcw retry 
switch en. 

Message: 0P14 OVERRUN. 



Sense Eyte 1, Bit 6 - Missing Address 
Markers . 

Action: Exits to retry cperaticn. If 
the errcr still persists after ten 
retries, exits tc disk ERP transient and 
ERP message writer with the allcw retry 
switch en. 

Message: 0P13 ADDR MRKER . 

Ncte: Home Address is read, and the 
track address is provided fcr the errcr 
message. For other errors, the track 
address is obtained frcm the user seek 
address if error cccurs during channel 
prcgram executicn. 



• Sense Eyte 0, Bit - Ccmrrand Reject. 

Acticn: Check fcr Eyte 1, Eit 5 (File 
Protect); exits in either case to disk 
ERP transient and ERP message writer to 
issue message after which the task is 
canceled. 



Message : 
PROT. 



0P18 COMM REJCT, or 0P17 FILE 



184 DOS/VS Supervisor 



Sense Byte O f Bit 6 
Check, 



Track Condition 



CSW Bit 44 - Channel Data Check. 



Action: Reads Home Address and RO in 
the error recovery routine and iroves 
CCHH frorr, RO to Seek corrirand executed 
below. 

If alternate track: updates seek 
address to the next track address. If 
the track address equals 10, treats it 
as End-of-Cylinder ; otherwise proceeds 
to next step. 

Sets up the channel program: Seek, Read 
Home Address (with skip bit en) , TIC to 
CSW address minus eight. Executes this 
channel program in error recovery. At 
channel end, exits to channel scheduler 
CSW processing routine. If EASE file 
protection is present, sets the 
appropriate file mask following Seek. 



• Sense Byte 1, Bit 1 - Track Overrun. 



Action: One retry. If error persists, 
exits tc disk ERP transient and ERP 
message writer with the allcw retry 
switch en, 

Messages: OP 2 8 CHAN ETCHK. 

• Sense Eyte 1, Bit - Permanent Errcr. 
Action: Exits tc retry the operation . 

• Sense Eyte 0, Bit 3 - Equipment Check. 

Action: Ten retries. If errcr 
persists, exits to disk ERP transient 
and ERP message writer with the allcw 
retry switch on. 

Message: 0P10 EQUIP CHK . 



Action: Posts track overrun tc the CCB 
and exits to continue processing. 



• Sense Byte 1, Bit 2 - End of Cylinder. 

Action: Posts End of Cylinder to the 
CCB and exits to continue processing. 



• Sense Byte 1, Bit 5 - File Protect. 

Action: Exits to disk ERP transient and 
ERP message writer to issue message 
after which the task is canceled. 

Message: 0P17 FILE PROT. 



CSW Bit 47 - Chaining Check. 

Action: Ten retries. If errcr 
persists, exits to disk ERP transient 
and ERP message writer with the allcw 
retry switch on. 

Message: 0P14 OVERRUN. 

Note: If the error routine gets an 
error while trying to execute a Restore 
command or Read Home Address or RO, exit 
is taken to the ERP message writer with 
the allow retry switch on. Message: 
0P20 ERR ON REC (error during recovery) . 



3330 DISK STORAGE ERROR RECOVERY 

This routine is entered at label EISKERR. 
The following list gives the conditions 
tested for. 



Sense Eyte 0, Bit 2 - Eus-Out Check. 

Action: One retry. If errcr persists, 
exits tc disk ERP transient and ERP 
message writer with the allcw retry 
switch en. 

Message: 0P0 9 BUSOUT CHK. 



Sense Eyte 0, Bit 1 - Intervention 
Required. 

Action: One retry. If error persists, 
exits tc disk ERP transient and ERP 
message writer with the allcw retry 
switch en. 

Message: 0P0 8 INTERV REQ. 



• Sense Eyte 0, Bit - Command Reject. 

Action: Exits to disk ERP transient and 
ERP message writer to issue message 
after which the task is canceled. 

Message: 0P18 COMM REJCT. 



• Sense Eyte 1, Bit 4 - No Record Found. 

Action: Retries nine times. If 
cenditien persists, pests nc-record- 
found to CCB and exits to continue 
processing. 

Message: 0P21 NRF-MAEDMK . 



Physical I/O Control System 185 



• Sense Byte 0, Bit 5 - Overrun. 



Action: Nine retries. If error 
persists, exits to disk ERP transient 
and ERP message writer with the allcw 
retry switch on. 



Message: 0P14 OVERRUN. 



• Sense Byte 1, Bit 1 - Invalid Track 
Format. 

Action: Posts track overflow tc CCB and 
exits to continue processing. 



• Sense Byte 0, Bit 4 - Data Check. 

Action: If error is net correctable 
(Byte 2, Eit 1=0), then retries nine 
times and if error persists, exits tc 
disk ERP transient and ERF message 
writer with the allcw retry switch on. 

If error is correctable and track 
overflow occurred (Byte 1, Eit 7), then 
exit is taken to retry the operation. 

If error is correctable with nc track 
overflow, then the error correction 
bytes are ORed to error bytes in the 
data area, channel end and device end 
are posted in the CCB, and exit is taken 
to continue processing. 

If the error correction function detects 
incorrect length and the SLI flag bit is 
off, then incorrect length is alsc 
posted to the CCB before exit is taken. 

If chaining and end-of-record has been 
detected by error correction before the 
end of the user's channel program, then 
a Read Count CCW and TIC to user's next 
CCW is built, and exit is taken to 
restart the operation. 

If channel truncation exists, the 
equipment check bit in sense byte is 
turned on and the exit is taken to retry 
the operation. 

Message: OP 11 DATA CHECK. 

• Sense Byte 1, Bit 3 - End of Cylinder. 

Action: Posts End of Cylinder tc the 
CCB and exits to continue processing. 

• Sense Byte 1, Bit 5 - File Prefect. 

Action: Exits to disk ERP transient and 
ERP message writer to issue message 
after which the task is canceled. 

Message: 0P17 FILE PROT. 



Sense Eyte 1, Bit 7 - Track Overflew. 
Action: Exits to retry the operation. 

Sense Eyte 2, Bit 3 - Environmental Data 
Present . 

Action: Decrements error count and 
exits tc retry the operation. 

CSW Eit 47 - Chairing Check. 

Acticn: Ten retries. If errcr 
persists, exits tc disk ERP transient 
and ERP message writer with the allcw 
retry switch en. 

Message: 0P14 OVERRUN. 



3340 DASD ERROR RECOVERY 



• Sense Eyte Bit - Command reject. 

Action: Permanent errcr - the existing 
superviscr permanent errcr routine will 
be used. 

Message: 0P18 COMM RE JCT . 

• Sense Eyte 1 Bit 1 - Invalid track 
fcrmat. 

Action: Post the track overflew bit in 
the CCE and continue. 

• Sense Eyte 1 Bit 4 - Kc reccrd found. 

Acticn: Pest the nc reccrd fcund bit in 
the CCE and take the continue exit. If 
user wants to retry, retry 10 times, 
then take a permanent errcr exit. 

Message: 0P21 NRE - MADDMK (If 
retried) . 

• Sense Evte Bit 1 - Intervention 
required. 

Acticn: The 2314 errcr routine will be 
used. The logging will be dene if a 
nonzero condition exists in byte 10, 
bits 1-3 of the errcr queue entry. 
Return is tc the superviscr which calls 
the message routine. 

Message: 0P0 8 INTERV REQ. 



186 DOS/VS Supervisor 



• Sense Byte Eit 2 - Bus cut parity 
check. 

Action: Retry one time # then consider 
error periranent. The 2314 error routine 
will be used. The error logging bit 
will be turned on. 

Message: 0P09 BUSOUT CHK. 



Sense Byte 2 Bit 3 - Environmental data 
present. 

Action: Decrement the error ccunt by 
cne and retry. The 3330 errcr routine 
will be used. The logging bit will be 
turned on. 



Sense Byte Eit 3 - Equipment check. 

Action: Retry 10 times # then consider 
error permanent. The 2314 errcr routine 
will be used. The logging bit will be 
turned on. 

Message: 0P10 EQUIP CHK. 



• Sense Byte Bit 4 - Data check 

noncorrectable (byte 2 bit 1 is zerc) . 

Action: Retry 10 times, then consider 
error permanent. The 2314 error routine 
will be used. The logging bit will be 
turned on. 

Message: 0P11 DATA CHECK. 



• Sense Byte Bit 5 - Overrun. 

Action: Retry 10 times , then consider 
error permanent. The 2314 error routine 
will be used. The logging bit will be 
turned on. 

Message: 0P14 OVERRUN. 



Sense Byte Bit 6 
check. 

Action: Read home 
If defective track 
the alternate trac 
to the alternate t 
resume the operati 
track, get the add 
track from record 
defective track pi 
resume the operati 
routine will be us 
to allow for 3340 
checking for End-o 



Track condition 



address and record 0, 
, get the address of 
k from reccrd 0, seek 
rack, then search and 
on. If alternate 
ress of the defective 
0, seek to the 
us 1, then search and 
on. The 2314 error 
ed with modifications 
cylinder size when 
f-Cylinder. 



Sense Eyte Bit 7 - Seek check. 

Action: Execute a recalibrate CCW and 
issue a seek to the oriqinaladdress. 
Retry 1C times, ther consider the errcr 
permanent. The 2314 error routine will 
be used. The legging tit will be turned 
on. 

Message: 0P15 SEEK CHECK. 



Sense Eyte Bit 4, Eyte 2 Eit 1 
check ar.d correctable. 



Data 



Acticn: The 3330 errcr correction 
routine will be used with medif ications 
to allow for a 2-byte errcr correction 
cede fcr 3340 and a 3-tyte errcr 
correction code fcr 3330. The logging 
bit will be turned on. The following 
acticr is taken depending en the type cf 
error detected: 



If the error is correctable, OR the 
errcr correction bytes tc errcr 
bytes in the data area, pest channel 
end and device end tits in the CCE 
and take the continue exit. 



If the error correcticn routine 
detects the incorrect length and the 
SLI flag bits are cf f , then pest 
incorrect length bit in the CCB 
befcre taking the continue exit. 



c. If the chaining and End-cf-Record 

conditions have been detected by the 
errcr correction routine before the 
end cf the user's channel program, 
then build a read count CCW, TIC to 
the user's next CCW, and take the 
restart exit. 



d. If the channel truncation condition 
exists, turn en the equipment check 
bit in the sense byte and take the 
retry exit. 



• Sense Eyte 1 Bit 2 - End-cf-Cylinder . 

Acticn: Pest the end-cf-cylinder bit in 
the CCE and continue. The 3330 errcr 
routine will be used. 



• Sense Eyte 1 Bit 5 - File protected. 

Action: The permanent error routine in 
the supervisor will be used. 



Message: 0P17 FILE PRCT. 



Physical I/O Control System 187 



Page of SY33-8551-1, revised June 30 # 1974, by TNI. SN33-8770 

PRCGRAK RETRIEVAL 



SHARED_VIRTUAL_AREA_isyAl 

The Shared Virtual Area (see Figure 7.1) is 
located in the high end of virtual storage 
and has a storage protect key equal to 
zero. It is built by job ccntrcl after 
IPL. The SVA contains: 



a System Directory List (SDL) cf phases 
in the SVA and other highly used phases, 
resident in the System Core Image 
Library 

highly used programs that are resident 
and can be shared between partitions 
(virtual library). These programs run 
with the PSW of the partition which 
invokes their service. Only phases that 
are relocatable and reenterable can be 
put in the SVA 

a GETVIS area for the system (which can 
be used as a VSAM work area) . 



A program is only loaded intc the 
requesting partition if it is not in the 
virtual library (see Figure 7.2). However, 
the presence of the program in the virtual 
library is ignored if the main page pool 
contains less than eight page frames. 

In general, a phase is loaded into the 
SVA at the next available location if its 
length is not greater than the still 
available length of the page. If it is 
greater, it would cross a page boundary and 
in this case it is, for performance 
reasons, loaded at the next page bcundary. 



| Contents 

j date plus time SVA has been 
| updated (Note 1) 
| Start address of the System 
| Directory List 
start address of the virtual 
| library (Note 2) 

[address of next available location 
| in SVA 

j address of end of the SVA 
j communications area for Job 
| Control and $MAINDIR 
j System Directory List (Note 3) 

I alignment bytes for doubleword 

j boundary 

j virtual library (see Figure 7.2) 

j containing reenterable and 

j relocatable phases 

| GETVIS area for the system (starts 

j on page boundary) 



Figure 7.1. Layout of Shared Virtual Area 



Notes: 

1. As one of the tests to determine 
whether a warm start copy cf the SVA is 
available. Job Control compares this 
entry after IPL against the date and 
time in the SCIL descriptor entry. 

2. Address of first doubleword aligned 
byte after SDL. 

3. The layout of this area is compatible 
with a directory block in the Core 
Image Library. The SDL has fixed- 
length entries of 34 bytes. The last 
entry contains SX'FF* as phasename. 



| cage boundaries 

r + : 

I A | 

F X 

(doubleword aligned 



Figure 7.2. Layout of Virtual Library 

A: occupied by first phase in virtual 
library if the phase fits into this 
area. If the phase is lenger than this 
area, it is loaded on page bcundary. 



DIRECTORY LIST SUPPORT 



Directory List Support allows the user to 
create in-storage directories cf highly 
used phases. LOADS and FETCHs of such 
selected phases are made without searching 
the Core Image Library directories on disk. 
A System Directory List, available to all 
partitions, is provided in the SVA for 
phases resident in the SVA, and ether high 
usage phases. This is created by job 
control after IPL. Local Directory Lists 
may be created at any time, and are local 
to the partition which creates them. A 
local directory list exists for the 
duration of the jobstep, in which it is 
created. 

I Note: The local directory list used by RPS 
is located in the SVA. 

It should be noted that an in-storage 
directory entry in the user's partition 
does not contain any valid information, 
except for the phasename, until the first 
FETCH or LOAD request for the phase 
specifying this entry has been honoured. 
The first FETCH or LOAD request for the 
phase fills in the entry and subsequent 
requests can use this entry. 



Physical I/O Control System 189 



Parameter List 

On entry to the FETCH routine , register 1 
points to a parameter list or to a phase 
name. If register 1 points to a parameter 
list, the parameters are saved in the save 
area CALLSEQ (see Figure 7,3). This area 
is also used when no parameter list is 
passed. In this case bytes 4-7 contain 
zeros. 



If the user has provided such a directory 
entry, it can only be used when it has been 
filled in (activated) as result of an 
earlier request for the phase specifying 
the same directory element or list. If the 
directory entry is found to be active, the 
search is ended and exit is taken to the 
routines that use the contents of the 
entry , usually to load the phase. 



CALLPNAM 



I 
-X- 



-T 1 

J CALLLNAM | 
-X J 



LISTFLAG 
Dis- 
place- 
ment-. t£Q2th Contents 







Phasename pointer (first byte 
must be zero) 

Option Flags (X'OO* when no 
parameter list is provided) 

X*80 f : not used 
X'UO* : not used 
X f 20* : not used 
X'lCT : SVA load request. 

(See note 1) 
X'08 f : inactive entry 
X'OH' : SCIL to be scanned 

before PCIL 
X , 02 f : directory entry 

provided (DE=YES) 
X'Ol' : bypass load (phase 

in SVA or TXT=NO) 



5 3 Pointer to local directory 
list, or zero if no local 
directory list is provided 

Note 1: set and used by $MAINDIR for 
loading phases into the SVA 

Figure 7.3. Fetch Parameter Save Area 
(CALLSEQ) 



If the entry is not yet active (not 
filled in) , its presence is noted and the 
search continues. When an active entry is 
found later (or is read from disk) , an 
earlier found inactive entry is activated. 



When no active entry is found during the 
search described above, the System Core 
Image Library (SCIL) and Private Core Image 
Library (PCIL, if supported and assigned) 
directories are searched. The System 
Directory List (SDL) in the SVA is scanned 
immediately before the main SCIL. The 
search takes place in one of two possible 
sequences : 



If a $-phase is requested, or if SYS=YES 
on FETCH or LOAD macro: 

1. SCIL main directory (preceded by 
scan of SDL) 

2. PCIL main directory, if PCIL is 
assigned 

3. PCIL link directory, if PCIL 
assigned and link directory present 

4. SCIL link directory, if it is 
present and if PCIL net assigned 



If net a $-phase requested and SYS=NO on 
FETCH or LOAD macro: 



SEARCH FOR DIRECTORY ENTRY 



The user may have provided in his own 
partition a directory entry for the 
requested phase. He may have done this in 
two ways: 

1. He may have provided a directory 
element to which the phasename 
parameter (see Figure 7.3) is pointing 
(DE=YES specified on the FETCH or LOAD 
macro) . 

2. A local directory list is provided, 
which may contain a directory entry for 
the requested phase (LIST parameter 
specified on FETCH or LOAD macro). 



1. PCIL link directory, if PCIL 
assigned and link directory present 

2. SCIL link directory, if it is 
present and if PCIL net assigned 

3. PCIL main directory, if PCIL is 
assigned 

4. SCIL main directory (preceded by 
scan of SDL) . 



An active entry with a condense counter 
value which does not match the 
corresponding value in the Fetch Table is 
treated as if it were not active. SDL 
entries and disk directory entries are 
exempted from this check. 



190 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



The Fetch Table 



The Fetch Table (see Figure 7.4) contains 
an entry for the System Core Image Library 
and an additional entry for each partition 
if the supervisor supports Private Core 
Image Libraries. Each entry contains the 
address of the corresponding Second Level 
Directory (see below), a condense counter, 
the disk addresses of the directory and the 
link area of the library, and the number of 
tracks per cylinder and the number of 
library blocks per track of the library. 
If PCIL is supported and a PCIL has been 
assigned for the partition issuing the 
Fetch request, the Fetch Routine sets up a 
pointer to the appropriate Fetch Table 
entry. This pointer is zero, when no PCIL 
is assigned. 

FTTAB 



1 



8 14 



Entry of the Table 



Figure 7.4. Fetch Table (FTTAB) 



Dis- 
place- 
ment Length Contents 



1 condense counter (incremented 

for each condense of the 
library. Reset to zero when 
a new library is assigned - 
PCIL only) 

1 3 address of the corresponding 

Second Level Directory (zero 

if no SLD present) 
4 2 number of tracks per cylinder 
6 2 number of library blocks per 

track (device indicator if 

RPS device) 
8 6 address of directory of 

cataloged phases in the form 

BBCCHH 
14 6 address of linkarea in the 

form BBCCHH (zero is no 

linkarea present) 



Notes: The address of the Fetch Table is 
in SYSC0M. The Fetch Table is used as an 
interface between Job Control, Linkage 
Editor, Librarian, and Fetch. 

The entries for the partitions will not 
exist if the support fcr Private core Image 
Libraries is not included in the 
Supervisor. 



The Second Level Directory 

The address of the Second Level Directory 
is found in the appropriate entry in the 
FETCH table. It is a table cf the highest 
phase names found on each track of the 
corresponding directory. A Private Second 
Level Directory is optional for PCILs. 

The Fetch routine first scans the Second 
Level Directory (if present) of the 
appropriate directory and determines on 
which track the directory search should 
start. Then the directory itself will be 
searched by means of a search en key for 
the directory block containing the required 
directory entry. 

The last active entry in any SLD is 
always 8X f FF f . If the SLD has as many or 
more entries than there are active tracks 
in the corresponding directory, the 8X'FF' 
entry corresponds with the directory track. 
Remaining SLD entries are not used. If the 
SLD has less entries than there are active 
tracks, the last SLD entry is X'FF' and the 
remaining directory tracks are net 
represented. The multitrack channel search 
for directory blocks on unrepresented 
tracks begins on the last represented 
track, corresponding to the SX'FF' SLD 
entry. 



r 1 

| NN j 
-X 



HN1 
HN2 
HN3 




track 


1 


track 


2 


track 


3 


track 


4 


track 


5 



Figure 7.5. Relationship Eetween Directory 
and its Seccnd Level Directory 



Physical I/O Control System 191 



NO 



Component 



Address 
TT | R 



NO 
TR 



Required 
Optional 



IPL Bootstrap Record 1 ($$A$IPL1) 
IPL Bootstrap Record 2 ($$A$IPL2) 
Volume Label 
User Volume Label 



00 
00 
00 
00 



"T 

| Record 
| Record 
| Record 
| Record 
_jl 



R 
R 
R 




System Directory 



01 
01 
01 
01 



h 



IPL Retrieval Program ($$A$IPL2) 



01 



R 
R 
R 
R 



Core Image 
Library Directory 



| Directory of 

| Cataloged Phases 

j. 1 



02 



| Directory of 
I Linked Phases 



Core Image Library 



YY 



R 




Relocatable Directory 



YY 



Relocatable Library 



YY 








Source Statement Library Directory 



YY 



Source Statement Library 



YY 





o 



Procedure Library Directory 



YY 



1 

1 
1 



Procedure Library 



10 

11 | Label Cylinder 
l x .- 



YY 




R 



YY 

j. j. 

depends on user allocation 



X: depends on user allocation 
Figure 7.6. Layout of SYSRES 






8 


11 


12 


14 


16 


17 


18 


name 


TTR 


N 


TT 


LL 


C 


T 


PPP 



Field Length Contents 



21 



24 



26 



27 



30 



31 



EEE 


RR 


R 


AAA 


K 


VEE 



Figure 7.7. Layout of Directory Entry 



name 
TTR 



TT 
LL 



phasename 

relative track address and 

record number of phase 

number of half-words 

containing user data 

number of text blocks 

number of text bytes in last 

text block 

switch indicating type of 

phase: 



self relocating phase 

relocatable phase 

SVA eligible 

phase is in the SVA 

(Note 1) 

phase found in a PCIL 

(Note 1) 

phase not found 

(Note 1) 

active entry (filled 

in) 

not used 



X' 


80* 


X' 


40' 


X* 


20' 


X' 


10' 


x' 


08' 


X 1 


04' 


X' 


02' 


X' 


01* 



192 DOS/VS Supervisor 



T 


1 


PPP 


3 


EEE 


3 


RR 


2 


R 


1 


AAA 


3 


K 


1 



VEE 



Notes: 



always X'OO' (used as type 

byte for stow table) 

load point at INKEDT time 

(Note 3) 

entry point at LNKEDT tiire 

(Note 3) 

number of RLD items (Note 4) 

number of additional RLD 

blocks (Note 4) 

partition start address at 

LNKEDT time (Note 4) 

condense counter at the time 

when entry was activated 

(Note 7) 

entry point cf phase in SVA 

(Notes 1 and 5) 



1. Only used for directory entries that 
are in storage, 

2. The TTR is relative to the beginning of 
the directory. 

3. PPP and EEE are not present if both are 
zero and the phase is net relocatable. 

4. RR, R r and AAA are only present if the 
phase is relocatable. 

5. VEE is only present if the phase is SVA 
eligible. 

6. The last entry in the directory is a 
12-byte entry with a dummy phasename 
(contains 8X'FF'), a dummy TTR 
(contains XL3'00') and a dummy N 
(contains X'OO'). Directory entries in 
storage always have the standard length 
of 34 bytes (including the last entry) . 

7. Condense counter is used for in-core 
directory entries (not SCL) . 



RELOCATING LOAD 



If the FOPT macro included the parameter 
RELLDR=YES, the generated supervisor 
updates the entry-point address and the 
address constants in a relocatable phase 
that is fetched or loaded, and updates the 
load address of a relocatable phase which 
is returned as a result of SVC 23. It alsc 
updates the load address of a relocatable 
phase in the header which is returned as a 
result of SVC 51. 

Load Address Specified in the LOAD Macro 

When the second parameter of the LOAD macro 
is an explicit address, SVC 4 branches to 
the FETCH routine to read in the phase at 
the specified address if the phase is not 
in the SVA. If the phase is relocatable, 
the entry-point address and the address 



constants in the phase are updated with the 
relccaticr. factor, which is the specified 
load address decremented by the value cf 
the load address stored in the phase entry 
cf the Cere Image Directory. The 
entry-point address, or updated entry-point 
address, is returned tc the user in general 
register 1. If the phase is in the SVA, it 
is net leaded at the specified address. 
The entry-point address in the SVA is 
returned ir general register 1. 

Lead Address nct_ specif ied 

Vvhen the second parameter cf a LOAD macro 
is an implicit address, cr a FETCH macro 
was issued, SVC 4 or SVC 1 branches to the 
FETCH routine to read the phase into main 
storage. 

If the phase is ncn-relccatatle, it is 
read into storage at the address stored in 
the phase entry cf the cere image 
directory. The entry-point address stcred 
in the phase entry is returned in general 
register 1. 

If the phase is relocatable, it is read 
intc storage in the caller's partition at 
an address equal to the address cf the 
first byte beyend the register save area 
plus the value of the load address in the 
cere image directory (see Figure 7.1) 
decremented by the value cf the partition 
address stcred in the ccrtrcl hlcck cf the 
Core Image Library Elock (see Figure 7.2). 
The entry-pcint address and the address 
constants are updated with the relocation 
factcr, which is the difference between the 
actual address at which the phase is leaded 
and the lead address stcred in the phase 
entry of the Core Image Directory. The 
updated er.try-point address is returned in 
general register 1. If the phase is in the 
SVA, it is net leaded in the caller's 
partition. The entry-point address in the 
SVA is returned in general register 1. 

5^25§2tioi2_Key_Zero_Pro2rams 

When a SVC 23 is issued, general register 1 
contains the address of the phase name. 

If the phase is non-relocatable, the 
lead address in the directory entry for the 
phase is returned to the user at the 
address specified by general register 0. 

If the phase is relocatable, the lead 
address returned at the address specified 
by register is equal tc the address cf 
the first byte beyond the register save 
area plus the value cf the lead address in 
the phase entry cf the cere image directory 
decremented by the value cf the partition 
address in the control block of the Core 
Image Library Block. 



Program Retrieval 193 



First TXT Block 



|Additicnal \* 

|TXT Blocks] 



-Last TXT Blcck- 



-H 



I 



-RLD Iteir 



H 



-4-2M 
I 



10 



"T~" 

ll 



-K-j 



Additional RLD blocks 

Note: Each block is 1024 bytes, 
each RLD iterr is 4 bytes 



| |Address cf 

| j the Address 

|Fullwcrd |Ccnstant 

| Boundary ((established 

| | by the 

| JLinkage 

j JEditcr 

/ 

/ Address- N 
/Constant Descriptcr\ 

<- ^ 

Eit |0 1 2 3 4 5 6 7| 
|. -I 

I I 

|000LL00S| 

I I 

L J 



LL = Object Length of Address constant 
S = Relocation Factor Application: 
= Add, 1 = Subtract 



Figure 7.8. Core Image Library Elcck for Relocatable Fhase 



The program issuing an SVC 23 is canceled 
if the supervisor was generated with 
NPARTS=1, or if the PSW protection key is 
not equal to zero (only job control and 
B-transient programs can issue an SVC 23) . 



Request for Phase ..Header 



When a SVC 51 is issued, general register 1 
contains the address of the phase name. 
This phase name is followed by a save area 
to which a number of bytes cf the phase 
header are moved. 



If the last TXT block is not completely 
filled with TXT, the remaining bytes 



ccntain RLE information starting at the 
next fullwcrd boundary (intermediate bytes 
are padded). 



For information about the cere image 
library, refer to the IBN publication 
EOS/VS Librarian listed in the Preface to 
this manual. 



IERA (Independent Directory Read-in Area) 

IDRA is a supervisor cpticn that generates 
a supplemental area to reduce ccntenticn 
fcr the physical transient area. Core 
Image Library directories are read into the 
IDRA for all fetch and lead operations. 
Thus, the FTA is left free tc perfcrrr ERP. 
The IDRA is large enough to contain at 
least two text blocks. 



i 



194 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30 f 1974,, by TNL SN33-8790 



PHYSICAL ATTENTION 



The physical attention routine consists of 
two transients, $$ABERRZ and $$ABERZ1. The 
following four conditions result in 
activation of the attention task: 



The operator presses the console request 
key. This initiates an attention I/O 
interrupt from the console. When this 
interrupt comes in, the attention task 
is activated and the attention PIB 
switch byte (see Figure 2.7, item B) is 
posted for fetch of $$ABERRZ (REQPTA) 
and consecutive fetch of the logical 
attention root phase $$BATTNA (LTAFCH) . 
When the operator wishes to cancel a 
partition quickly, he presses the 
request key twice in quick succession. 
The second attention interrupt is 
detected when the attention task is 
already active as a result of the first 
interrupt. Emergency cancel (REQCAN) is 
posted in the attention PIB switch byte. 



The operator press 
interrupt key for 
background partiti 
external interrupt 
is activated when 
in. The attention 
is posted to indie 
request (EXTMSK) . 
to be fetched when 
selected. 



es the external 

communication with the 

on. This causes an 
The attention task 

the interrupt comes 
task PIB switch byte 

ate external interrupt 
This causes $$BATTNA 
the attention task is 



A task i 
transien 
have I/O 
quiesced 
canceled 
performs 
task is 
PIB swit 
$$ABERZ1 
searches 
requests 
found is 



s canceled in 
t area, in whi 
pending. Thi 
before the ta 
The transie 
this function 
activated and 
ch byte is pos 
(DELCAN) . Th 
the channel q 
from the LTA 
to be quiesce 



the logical 
ch it may still 
s I/O is to be 
sk is finally 
nt $$AEERZ1 

The attention 
the attention task 
ted for fetch of 
is transient 
ueue for I/O 
and any request 
d. 



The operator presses the ENTER key en 
the Display Operator Console (DOC) after 
entering a command or data. The CRT 
system task is activated. If a screen 
management command was entered, the 
appropriate CRT transient is called to 
execute the command. If an attention 
command was entered, the CRT task makes 
the attention task selectable. The 
attention task PIB switch byte is posted 
to indicate command available (REQLTA) . 
This causes $$BATTNA to be fetched when 
the attention task is selected. 



When the attention task is selected by task 
selection, the attention PIB switch byte is 
interrogated. 

1. When the fetch $$ABERRZ indicator 

(REQPTA) is on, $$ABERRZ is fetched. 
$$ABERRZ resets this indicator and 
determines whether a emergency cancel 
condition (REQCAN) exists cr a normal 
request for logical attention is being 
serviced. 



Request for logical attention : 
$$ABERRZ starts scanning the PUBs 
to see whether intervention is 
required. If intervention is 
anywhere required, a message is 
printed for the operator to reply 
with cancel cr ignore. If the 
operator replies with cancel, the 
attention task is deactivated 
(unless DELCAN, fetch $$ABERZ1, is 
posted in the attention PIB switch 
byte) and a branch through AREXIT 
tc the supervisor leads to the 
resident cancel routine, to cancel 
the task that is attempting to use 
the device with the intervention 
required condition. However, if 
the failing I/O operation is 
already dequeued by the time the 
operator replied with cancel, or if 
POWER/VS is running in the 
partition to be canceled, a cancel 
ignored message is issued, and the 
scan of the PUBs continues. If no 
intervention is required, or the 
operator replied with ignore, or 
the cancel reply is ignored, 
control is returned to the 
supervisor (the attention task is 
net deactivated) to fetch the 
logical attention roct phase 
$$EATTNA. 



Emergency cancel condition : The 
message 'request cancel' is issued. 
According to the operator's reply, 
cancelation of the appropriate 
partition is initiated. The 
attention task is deactivated 
(unless DELCAN, fetch $$ABERZ1, is 
posted in the attention PIB switch 
byte) and a branch through AREXIT 
to the supervisor leads to the 
resident cancel routine. The 
emergency cancel request is 
ignored, however, if the operator 
replies with END/ENTER, or if 
POWER/VS is running in the 



Physical Attention 195 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



partition. The attention task is 
deactivated, unless DELCAN (fetch 
$$ABERZ1), EXTMSK (external 
interrupt) , or REQLTA (DOC command 
available) are posted in the 
attention PIB switch byte. 



2. When the fetch $$ABERZ1 indicator 
(DELCAN) is on, while the fetch 
$$ABERRZ indicator (REQPTA) is not on, 
$$ABERZ1 is fetched. A task was 
canceled in the LTA and its I/C is to 
be quiesced. $$ABERZ1 scans all PUBs 
for a PUB which has an I/O request 
queued to it from the LTA. If such an 
I/O request is found, SVC 3 is issued 
to attempt to dequeue the request. 
Control is then returned to the 
supervisor. As DELCAN is net reset, a 
fetch loop will result. When this 
phase is fetched again, the PUE scan is 
continued with the PUB en which the 
request from the LTA was found. If no 
request from the LTA is found (on first 
or subsequent testing by $$ABERZ1) , the 
canceling task is posted ready to run 
and LTA I/O complete is indicated in 
bit of the cancel code in its PIB 
(the cancel procedure can continue). 
DELCAN is reset as subsequent fetches 
of this phase are no longer required. 



If neither $$ABERRZ, nor $$AEERZ1 are 
to be fetched, the logical attention 
root phase $$BATTNA is fetched. This 
is the case when the attention task was 
activated because the operator pressed 
the external interrupt key, or he 
entered an attention comirand en DOC and 
pressed the ENTER key, or he pressed 
the request key once and $$AEERRZ 
released control (having reset the 
fetch $$ABERRZ switch, REQPTA, in the 
attention PIB switch byte) . $$BATTNA 
determines which of these conditions 
exists (see DOS/VS Logical Transients 
Logic) . 




0P60D |INTERV REQ prog. id. cuu 
0P89I | I/O CANCEL IGNORED 
1I32K | AREA NOT ACTIVE 
1I40D | REQUEST CANCEL 
1S01D | INVALID STATEMENT 
1S02D | INVALID STATEMENT 
1Q6 2I (CANCEL FOR POWER/VS IGNORED 
L X 

Figure 8.1. Physical Attention Messages 
($$ABERRZ) 



196 DOS/VS Supervisor 



MACHINE CHECK AND CHANNEL CHECK HANDLING 



MACHINE CHECK ANALYSIS AND RECORDING 



MCAR attempts to notify the operator about: 



MCAR responds to MCIs, attempts recovery, 
and provides operator iressages en SYSLCG. 
Machine check records are recorded on the 
recorder file IJSYSRC by the RMSR 
transients $$RAST01 and $$RAST08. 



When a mach 
first logs the 
Logout Area in 
retries the fa 
(Error Checkin 
retry is succe 
occurs on the 
158 (if enable 
does not gener 
machine check 
For soft MCIs 
through the Er 
feature. If a 
reached, the r 
recording to q 
the operator c 
permits the op 



ine check occurs, h 
error in the Machi 
low real storage a 
ilure by CPU retry 
g and Correction) . 
ssful, a soft machi 
Models 135, 145, 15 
d) . The Model 115 
ate an interrupt fc 
from which it could 
the recording is cc 
ror Frequency Limit 
specified errcr cc 
ecording mode is ch 
uiet. The MCDE com 
ontrol of soft MCIs 
erator three option 



ardware 
ne Check 
nd then 
and ECC 

If the 
ne check 
5-II and 
or 125 
r a 

recover, 
ntrclled 

(EFL) 
urt is 
anged from 
rrand gives 
. It 
s : 



• Determine whether the system is in quiet 
or recording mode. 

• Alter mode of operation. 

• Change error threshold values. 



If hardware retry is not successful, MCAR 
determines machine check severity. A hard 
MCI occurs when: 

• CPU retry is not successful. 

• Interrupted instruction cannct be 
retried. 

• Storage failure is permanent. 



In the event of a hard MCI, the affected 
task is canceled. MCAR assesses the damage 
and continues system operation when 
possible. The system enters the hard wait 
state when a hard MCI: 

• Interrupts supervisor coding. 

• Occurs while assessing critical 
information or phases from SYSRES. 

• Damages privileged coding through a 
permanent storage error. 



Machine check type. 
Wait state, re-IPL. 
Problem prcgram termination. 
Mcde operation change. 
Buffer deletion. 



The Resident Machine Check Handler analyzes 
the Machine Check Interruption Cede (MCIC) 
and the Problem State tit (bit 13) of the 
Machine Check Old PSW. It categorizes 
errors irtc three classes: 



System operation termination cendition. 
The MCIC indicates: 

• System damage. 

• CPU-mask (1MWP) in clc PSW is 
invalid. 

• Instruction processing damage (while 
the CPU is in the supervisor state) . 

• Cne or more eld PSW bits, ether than 
in the CPU-mask, are invalid (while 
the CPU is in the supervisor state) . 

• Storage or Prctecticn errcr while 
the failing storage address is 
invalid. 

Acticn: Post C'A 1 in lecatien 
(system termination cede), pest C'S' in 
lecatien 1 (fcr SEREP), and pest 
Emergency Exit (EMEXIT,X ■ 08' ) in 
LD00SLCT (indicator to $$RAST00 to 
terminate the system). 



Hard Machine Checks. The system can 
continue but the damaged task is to be 
canceled. While the CPU is in the 
problem state, the MCIC indicates: 

• Instruction processing damage. 

• Cne or more eld PSW bits, ether than 
in the CPU-mask, are invalid. 

Acticn: Activate RAS System task and 
branch tc the cancel routine tc cancel 
the task. If storage error en GETREAL 
request, exit tc task selection (do net 
cancel task) . 



Machine Check and Channel Check Handling 197 



c. Soft Machine Check (if none of the 
above conditions is present) . Only 
recording is required for errors from 
which hardware recovered successfully. 

Action: If interruption occurred while 
in problem state, activate RAS systeir 
task and exit to Task Selection. 

If supervisor function is being 
performed on systeir task active, 
activate RAS system task (if net 
already active) and return to the 
interrupted code by loading the machine 
check old PSW. 

Nonresident machine check handling is 
described in the DOS/VS Error Recovery and 
Recording Transients Logic manual. 



CHANNEL CHECK HANDLER 



The channel check handler responds to 
channel error conditions. It first records 
the error. Then, it evaluates the damage 
and attempts to reduce the impact of the 
error on the system as a whcle. 

CCH assesses channel control checks and 
interface control checks to determine if 
the system can continue. Figure 9.1 shews 
the results of the Channel Check Severity 
Routine. Resident CCH performs severity 
analysis and builds an ERPIE entry. See 
Figure 9.2. 

Resident CCH coding performs nc recovery 
or recording action, but fetches the proper 
R-transient to attempt restoration of 
system operation and to record the error on 
the recorder file. Transients needed by 
CCH operate under control of the RAS 
Monitor. 

System termination results when: 

• Hard channel error occurs during 
accessing of critical information or 
phases from SYSRES. 

• Hard channel error occurs on the paging 
channel. 

• System reset has occurred. 

• Channel address or reset codes are 
invalid. 



A channel errcr is detected when a CSW is 
stored with either the interface control 
check cr channel ccntrcl check bit on. 
Thus, when an I/O interrupt with channel 
check cccurs cr when charnel check occurs 
en an I/C instruction, the legging is done 
under control of CR14 bit 2. 



This routine gains control from either 
the SIC cr I/O interrupt routines when a 
channel check occurs. The ECSW is 
inspected tc determine if encugh 
information is valid to isolate the damage 
tc either a channel cr a device. (See 
Figure 9.1.) 

When a system termination condition 
exists r the EMEXIT bit is posted in 
lecatien IC00SLOT to indicate to $$RAST00 
that the system is tc be terminated. The 
applicable termination cede is posted at 
lecatien 0. The following list gives the 
termination codes for the^varicus types of 
disastrous channel errors: 

E Irrecoverable channel check en fetch. 

C Channel check on log with RASMSG. 

E ECSW net stored. 

E ERPIE queue has been exhausted. 

F Two channels damaged en RTA I/O active. 

G System reset code in ECSWW. 

H Retry reset codes invalid. 

I Channel address invalid. 

J Irrecoverable channel check en paging 
channel. 



If the damage cannot be isolated tc a 
device, the entire channel is considered tc 
be damaged. An ERPIE is created with the 
PUE field containing the address of the 
damaged channel. The CSW and ECSW are 
saved in the ERPIB fcr the nonresident 
channel check handler. If the damage can 
be isolated tc a device, the entire ERPIB 
is filled for the nonresident channel check 
handler. 

Nonresident channel check handling is 
described in the DQS/VS Error Recovery and 
Recording Transients Logic manual. 



i 



198 DOS/VS Supervisor 



T T T T __ 

Reset |Systerr | Start |Unit |RTA I/O 
Codes |Reset | I/O |Address |Active 
Valid |Code On | Time |Valid | 



"T 

| Action 
Taken 



Channel 
Address 
Valid 



■+- 



-+- 



SYSRES 
Channel 



No 



|1, 2 



Yes 



No 



|lf 2 



Yes 



Yes 



lYes 



|1, 3 



Yes 



Yes 



I No 



I Yes 



15 



Yes 



Yes 



[NO 



INC 



|NC 



|Kc 

-4- — 

| Yes 
-+- 



Nc 



1, 3 



Yes 



Yes 



I No 



| No 



INC 



|1, 2 



Yes 



Yes 



I No 



INC 



|NC 

-4 

| Yes 
_jl 



|Kc 
I 



Yes 



|1, 3, 4, 5 



Yes 



Yes 



h 



INO 



i No 



15 



Action Codes 

1. Schedule recording. 

2. Schedule system termination with proper message. 

3. Set the damaged channel byte for nonresident channel check hardier. 

4. Assume the error is on SYSRES device. 

5. Error can be isolated tc a device , use Part 2. 

Note: Every Channel Check that cccurs in the system is passed through the Channel 
Check Severity Detect Routine. You can determine the disposition cf the check by using 
Part 1. When a Channel Check has been isolated to a device, use Part 2 tc determine 
the action taken. 



Channel Check Device Isolation Results (Part 2) 



Active 

ERPIB 
Exist 



Yes 



| Channel 
| Check 
| Entry 



| Yes 



"T 

|DASD 

I 



|Yes 

X_ 



|Channel 
| Retry 
|Request 



"T 

|Acticn 
| Taken 
I 



F x _ x 

Action Codes 



-T — 



NO 


____X 

|No 


X 

1 


4 

1 


4— - 

|6 








X 


X- 


- X - - 


x 






NO 


T 

| Yes 
X 


T 

1 

x 


T ~ 

1 

x 


T 

|7 
i 






Yes 


T 

|No 


T 

|No 


T — 

|No 


T 

|8 






Yes 


" +— 

|No 
X 


. X 

|No 
X 


^ 

|Yes 
X 


+— 

16, 
X 


9, 


10 


Yes 


T 

|No 
X 


T 

| Yes 

X — . 


T 

1 

X - 


T 

|6 
x 






Yes 


| Yes 

X 


T 
|No 

X 


T 
|NC 

- -p. X — 


T 

|8 

J. 






Yes 


|Yes 


|No 


T 

| Yes 


|8, 


9, 


10 




X „_ 


X 


X 


+— 







111 

-X L L 



—\ 



Exit to supervisor I/O routine after other functions performed. 

Find a free ERPIB in queue and fill with infcriraticr fcr ERPs . 

Exit to task selection after ether functions performed. 

Post ERPIB complete. 

Dequeue the RAS CCB and requeue the user's CCB. 



Figure 9.1. Channel Check Severity Detect Routine 



Machine Check and Channel Check Handling 199 



ERPIBQ 



xtfJ 



csw 


Sense 
Information 


PUB 
Pointer 


Channel 
Queue Pointer 



78 



13 14 



Channel 
Sched. Flags 


Message 


T 


Flag Byte 


Extended 
CSW 


17 


18 


19 


20 21 23 
Requestor Identification 



Figure 9.2. Error Recovery Procedure 
Information Block (ERPIB) 

Note: A free entry is indicated by X'FF' 
in byte zero. Label ERPIBG identifies the 
first byte in the Queue. 



Eyte 20: Flag Eyte: 



Eit 

1-4 

5 

6 



1 = Channel Check on SIO 
Not used 

1 = Sense data stored 
1 = DASD ERPIE active 
Not used 



5ICCVERY_TRANSIENTS_ ; ANE__RAS_KONI10R 

The Reccvery Transients (R-transients) 
perform machine check and channel check 
recovery and recording. When required, 
they are called by the resident Channel 
Check Handler via the RAS Monitor. 

The RAS Monitor is a resident control 
program which controls the RTA . At systeir 
generation the RAS Mcnitcr fcrirs a portion 
cf the resident supervisor. The RAS 
Monitor and MCAR/CCH coding are always 
generated for the Models 135 r 145, 155-11 
and 158. For Model 115 or 125, the RAS 
Mcnitcr and MCAR/CCH ceding are generated 
only if RMS=YES or MCH=YES was specified at 
systeir generation tiire. The RAS Mcnitcr: 

• Fetches R-transients into the RTA. 

• Schedules I/O requests freir the RTA. 

• Accepts RTA I/O request ccirplete 
postings from CCH. 

• Provides an exit interface freir 
R-transients. 



i 



200 DCS/VS Supervisor 



DISPLACEMENT 
DEC REC 



0(0) 


4(4) 


8(R! 


12(C) 


16(10) 


20(14) 


24(18) 


28(1C) 


32(20) 1 


LDOOSLOT 


LD01SLOT 


LD02SLOT 


LD03SLOT 


LD04SLOT 


LD05SLOT 


LD06SLOT 


LD07SLOT 


LD08SLOT 


($$RAST00) 


($$RAST01) 


($$RAST02) 


($$RAST03) 


($$RAST04) 


($$RAST05) 


($$RAST06) 


($$RAST07) 


($$RAST08) 


© © 


© 


© 


© 


© 


© 


© 


© 


© 


36(24) 


40(28) 


44(2C) 


48(30) 


52(34) 


56(38) 


60(30 


64(40) 


66(42) 


LD09SLOT 


LD10SLOT 


LD11SLOT 


LD12SLOT 


LD13SLOT 


LD14SL0T 


LD15SLOT 


RASCCB 


RASTIB 


($$RAST09) 


($$RAST10) 


($$RAST11) 


($$RAST12) 


(SSRAST13) 


($SRAST14) 


($$RAST15) 


Residual 


Transmission 


© 


© 


© 


© 


© 


© 


© 


Count 


information 


68(44) 


70(46) 


72(48) 


73(49) 


76(4C) 


80(50) 


88(58) 


96(60) 


104(68) 






RASCCBF 






RASCCWS 


RASRCG 


RASTIC 


RASREAD 


CCW Status 


SYSRES 


RASCCB 


RAS Fetch 


CCW stored 


RAS seek 


RAS search 


RAS TIC CCW 


CCW to read 


bytes 


LUB 


indicator 


CCWs address 


address 


CCW 


CCW 




module into 
RTA 


112(70) 


119(77) 


120(78) 


122(7 A) 


T24(7C) 


128(80) 


132(84) 


133(85) 


134(86) 


RASEEK 


RTAOWN 


MCPIK 


MCTIK 


ERPIBA 


CCENTADR 


RTAID 


ERPID 


RASRES 


Seek 


Index into 


PIKof task 


TIKof task 


ERPIB 


Address of 


RTA I/O 


WTOR request 


SYSRES 


Address 


load list for 


interrupted by 


interrupted by 


queue 


Channel Check 


requestor ID 


return load 


I/O address 




RTA owner 


machine check 


machine check 


address 


address 


Routine 


index 




136(88) 


138(8A) 


140(8C) TRANSAV - RTA Reg 


ster Save Area 










140(80 


144(90) 


148(94) 








200(C8) 


RASREC 


RASLOG 


TRANSAVO 


TRANSAV1 










TRANSAVF 










TRANSAV2 - TRANSAVE 






SYSREC 


SYSLOG 


Register 


Register 1 


Registers 2-14 






Register 15 


I/O address 


device 
address 
















204(CC) 


SYSREGS-Sy 


stem Register Save Area 








268(100 


269O0D) 


204(CC) 


208(D0) 


212(D4) 






264(108) 
















SUPXlNK 


SYSREGO 
Register 


SYSREG1 
Register 1 


SYSREG2-SYSREGE 






SYSREGF 
Register 15 


LINKFLAG 

© 


Address of 
RAS system 
function scan 
routine 


Registers 2-14 


182(B6) (HIR-H 


ardware Instruction F 


^etry accumulators) 


284(11C) (ECCMAIN-Main storage er 


ror accumulators) 




296(128) 


272(110) 


274(112) 


276(114) 


280(118) 


284(110 


286(1 1E) 


288(120) 


292(124) 


HIRACNT 


HIRLCNT 


HIR1TIME 


HIRLTIME 


ECMACNT 


ECMLCNT 


ECM1TME 


ECMLTME 


RESTARTA 


HIR 


Count 


Time of day for 


Time threshold 


Accumulated 


Count 


Time of day 


Time 


Disk 


accumulated 


threshold 


first error 


in clock units 


ECC count for 


threshold 


for first error 


threshold in 


restart 


count 


value 


of group 




mam storage 


value 


of count 


clock units 


address 


300(12C) 


302(12E) 


303(12F) 


304(130) 


305(131) 










RESTARTP 


MCMODE 


BUFDEL 


RASMSG1 


RASMSG2 










PUB address 


Mode status 


Count of 


Message byte 1 


Message byte 2 










of unit to 


for machine 


buffers 














be restarted 


checks (9) 


deleted 


© 


© 











Figure 9,3. RAS Monitor Tafcle (RASTAB) (Part 1 of 2) 



Machine Check and Channel Check Handling 201 



Notes: 



RASMSG1: 



Areas labeled LDxxSLOT (tytes 0-63) are 
called the Load List and each cf the 16 
entries are formatted as follows: 



Sii Flag Description 



Byte 



|1 2 3 

I 
Flag | Cylinder - Head - Record | 
Eyte | (disk address cf 

|R-transient in the core 
| image directory) 
l ± 



2 LD00SLOT flag byte: 



Bit 


Flag 


Description 





X' 80' 


$$RAST00 module activated 


1 


X'40' 


Machine check analysis to 
be performed. 


2 


X 9 20' 


Channel check analysis to 
be performed. 


3 


X'10' 


List of active I/O units 
invalid. 


4 


X'08' 


System termination 
situation. 


5 


X'04' 


Reserved. 


6 


X'02' 


Reserved. 


7 


X'Ol' 


Attempt made to record in 
system termination 
situation. 



3 LD01SLOT flag byte: 

Bit Flag Description 

X'80' $$RAST01 module activated. 

1 X'40* Build and record channel 

check records. 
2-7 ... Reserved. 

4 LD10SLOT flag byte: 

2it Flag Description 

X'80' $$RAST10 module activated. 

1 X"U0' Refetch calling module 

after issuing message. 
2-7 . . . Reserved. 

5 LDxxSLOT flag byte: 

Mit Flag Description 

X'80 1 $$RASTxx mcdule activated; 

that is, should be fetched, 
1-7 ... Reserved. 



0-3 

U 

5 

6 

7 



x'os 1 

X'04' 
X'02' 
X'01* 



Reserved . 

Timer damage. 

ECC in Quiet mode. 

Reserved. 

EFL overflow. 



RASMSG2: 



Bit Flag Description 

X'SO" Clock damage. 

1 X'40' Last track on SYSREC. 

2 x'20' C40 buffer pages deleted. 

3 X'10' Soft machine checks 

desabled. 

4 X'08' ECC MCI disabled. 

5 X'04' SYSREC full-run EREP . 

6 X'02' Errcr en SYSREC cf BBCCHHR . 

7 X'Ol' Soft machine check. 

LINKFLAG: Indicates which function is 
reguested by R-transient. This byte is 
tested by the RAS system function scan 
routine. 



Description 

Normal I/O request. 
Emergency I/O request. 
Restart I/O request. 
Fetch request. 
Request fcr exit. 
Wait request. 
Request tc initialize 
registers for I/O. 
Dequeue CCB request. 
Request tc cancel task, 
Getime request. 



MCMODE flag byte: 

Bit Flag Description 



HIR recording mode. 

HIR quiet mode. 

ECC recording mode in 

processor storage. 

ECC quiet mode in processor 

storage. 

ECC recording mode in 

control storage. 

ECC quiet mede in control 

storage. 

ECC threshold mode in 

control storage. 

Reserved . 



Eytes 12-13 (X'OC - X'OD') cf the RAS 
Linkage Area (RASLINK) contain the address 
cf the RAS Monitor Table. Label RASTAE 
identifies the first byte of the area. 



Bit 


Flag 





X^O* 


1 


X'40 - 


0,1 


X'CO* 


2 


X'20 f 


3 


X'lO* 


f 3 


X'90 f 


4 


X'08 f 


5 


x-oa" 


6 


X'02 i 


7 


X'Ol' 



I 





1 

2 


x'80* 

X'40 f 
X^O 1 


3 


X'lO 1 


4 


X'08 s 


5 


X'04 f 


6 


X'02 # 


7 


X'Ol* 



Figure 9.3. RAS Monitor Table (RASTAB) (Part 2 of 2) 



202 DOS/VS Supervisor 





RASLINK 

-o 




8 
8 


9 
9 


0A 
10 


OB 
11 


oc 

12 


10 
16 


14 
20 


18 
24 


1C 
28 


CPU ID Field 


Damaged 
Channel Byte 


RAS Flag Byte 


Machine 
Check 
Flags 


Largest CPU 
Model 


RAS Table 
(RASTAB) 
Address 


Base Address for 
RAS Monitor 


Address of 
Headqueue 
PUB Table 


Address of 
CCW Savearea 


Address of 
Page Queue 


x a 


xxxxxxxx 


X 


X 


X 


X 


XXXX 


XXXX 


XXXX 




XXXX 



Key to RAS Linkage Area displacement 






CPU ID Field 






8 


Address of damaged channel 


or X'FF' if no channel damaged 


9 


RAS Flag Byte 








bit 


flag 


description 





1 
2 

3 
4 
5 
6 

7 


X'80' 
X'40' 
X'20' 
X'10' 
X'08' 
X'04' 
X'02' 

x'or 


RAS active 

RAS SIO flag 

RTA in control 

RAS I/O delayed 

Channel check on error SIO 

Reserved 

Channel check on SIO 

I/O active for SIO 



10 


Machine Check Flags 






bit flag 


description 




0-4 


Reserved 




5 X'04' 


Hard machine check 




6 X'02' 


All machine records built 




7 X'01' 


All channel check records 
built 


11 


Largest CPU Model 




12 


Address of RAS Monitor Table (RASTAB) 


16 


Address used for base register in 


RAS Monitor Program 


20 


Address of Headqueue PUB Tabl 


e 


24 


Address of CCW savearea 




28 


Address of Page Queue Table 





Bytes 1 12-1 15 (XVO'-XVS 1 ) of the System Communication Region (SYSCOM) contain the address of the area. 
Label RASLINK identifies the first byte of the area. 



Figure 9.4. RAS Linkage Area (RASLINK) 



Machine Check and Channel Check Handling 203 



I 



CHARTS 



Chart 01.1. Supervisor General Entry 



c 



Allowable 
Supervisor 
Interruption 



See also the chapter 
'Interrupt Processors' 



SUPERVISOR CALL 



ENTSVC v 



ENTIO 



J 



Refer to Chart A01 



Machine Check 



Program Check 



External 



I 03.1 J I 12.1 I 



ENTEXTi entpck machek 



•Save registers 9—14 

•Set up for General 
Entry subroutine GENENT 

•Call GENENT to save inter- 
rupt status information and 
to establish addressability 

• If illegal SVC branch to 
cancel routine 

•Set RID (Routine Identifier) 
to X'04' 

•Use the SVC code to index 
the SVC address table SVCTAB 




•Save registers 9—14 

•Set up for General Entry 
Subroutine GENENT 

•Call GENENT to save 
interrupt status informa- 
tion and to establish ad- 
dressability 



If Job Ace. is 
supported ini- 
tialize job ac- 
counting pointers 
and Timer Inter- 
val, and set up to 
run on overhead 



I/O interrupt . 



*Save registers 9—14 

• Set up for General 
Entry subroutine 
GENENT 

• Call GENENT to save 
interrupt status infor- 
mation and to establish 
addressability 



v c 



■xt. interrupt . 



r=j g rsj 




SVCTAB 



ERR21 



INTRTN 



EXTRTN 



c 



GENENT 



3 



GENERAL ENTRY SUBROUTINE A36 



• If system task was interrupted save PIK or Tl K 
from BGCOMREG in the appropriate system 
task block. Set up pointers to PIB of serviced 
user task and to system task's save area. 

• If a user task was interrupted: 

1. set up pointers to PIB and task's save area 

2. save interrupt status information from low 
real storage in PIB extension 

3. set RID to X'00', save floating point registers. 

• For all tasks, save the old PSW and the general 
registers in the appropriate save area 

•Load supervisor base registers 11, 12, 13 



Called by 

ENTSVC 

ENTIO 

ENTEXT 

C NTPCK 

MACHEK 

TFIX 



(Chart 01.1) 
(Chart 01.1) 
(Chart 01.1) 
(Chart 03.1) 
(Chart 12.1) 
(Chart 13.9) 



c 



Return 
to Caller 



J 



Charts 205 



Page of SY33-8551-1, revised June 30 f 1974, by TNL SN33-8770 



Chart 02. 1. Supervisor General Exit, Select Task 



02.3 



02.2 
03.1 
05.2 
06.1 
07.1 



Exit 



11.1 

11.2 

12.1 

12.2 

12.3 

13.1 

13.2 

13.5 

13.8 

13.11 

13.12 



u 



General 
Exit 



13.13 
13.14 
13.15 
13.16 



14.3 
14.7 
14.11 



General Exit Routine 



A02 



(For a more detailed description 
see the chapter Task Selection' ) 
If a system task is active, control is 
immediately passed to this active task. 
Otherwise the routine determines whether 
a system task is dispatchable. If so, the 
highest priority system task that is 
dispatchable is selected to run. 

If initial selection of ERP task 

If initial selection of RAS task 



If not system task is active or dispatch- 
able, the EXIT routine determines which 
user task or program should run next. 

The PIB status flag (byte 0) indicates 
the status of the user task or program. 
(For details see PIB Flag Expansions). 

Priority is determined by sequence of keys 
in the MVCFLD (See User Task Selection). 
This sequence can be changed by the PRTY 
parameter or command. The task selected 
is the highest priority task that is dispatch- 
able. The following table shows tasks in 
sequence of priority for selection (If 
neither PRTY parameter nor the PRTY 
command is used). The PIK in the back- 
ground communications region, and the 
TIK in SYSCOM if multitasking, are set 
to the PIB displacement for the task 
selected. 

Initial selection of Attention Task 
Foreground 1 program 
Foreground 2 program 
Foreground 3 program 
Foreground 4 program 
Background program 

The above list assumes that AP is not supported. 
If no task is ready to run, the I/O old PSW is loaded, 
to put the system in a wait state with all interrupts 
masked on. Before the wait state is entered the 
Reactivation Routine (Chart 13.7) is called to 
attempt to reactivate a deactivated partition (if 
there is one) 



RASUPR 



c 



Fetch Physical 
Transient 



3 



c 



Wait State 




CNCLEXIT 



206 DOS/VS Supervisor 



Chart 02.2. Supervisor General Exit, Cancel Exit 



CNCLEXIT 




EXIT TO TERMINATOR 



A03 



If cancel occured in LTA with I/O still 
pending, activate the attention task. It is 
posted to fetch $$ABERZ1 (to quiesce LTA 
I/O, if any). Post the canceling task LTA-bound 
and exit to task selection. - 



• If AP and/or AB is supported, call the 
AP/AB cancel routine (CNCEL). 

• Free any tracks held by the canceling 

task, if the Track Hold function is supported. 

• If Page Handling Overlap is supported, reset 
any initialized PHO for the canceling task. 

• If Job Accounting is supported, update job 
accounting pointers and time interval. 

• If MPS system, reset task's wait list entry 
toX'FFFF'. 

• If emulator support, reset the 'emulator 
active' bit in the canceling partition's 
communications region and clear the 
partition's entry in the Emulator ECB 
Table (Figure 4.10). 

• Exit to SVC02 routine to fetch the first 
terminator phase, $$BEOJ3 or $$BEOJ4. 



SVC02 



I 02.1 J 

EXIT 



Charts 207 



Chart 02, 3, Supervisor General Exit, DAT Dispatcher 



DATEXIT 




SELECT SPECIAL ROUTINE FOR TASK 



A03 



See also the section 'DAT Dispatcher' 

in Task Selection ' 

If entered because another task than the task selected 

seized the system, post the selected task seize-bound 

(X'73' in PIB) and exit to task selection 



If selected task was interrupted in gated or reenterable 
supervisor routine, use information in task's system 

save area to return to the supervisor routine 

(see figure 3.06) 

If delayed deactivation posted for selected task, post the 
task load-leveler-bound (unless the partition is already 
reactivated), and exit to task selection 



If a real CCB is to be copied to virtual CCB, or emulator 
ECB to be posted (if emulator supported): 

1. Get and initialize Translation Control Block for 
this task 

2. Scan the CCB copy block queue for CCB copy 
blocks with the same partition or task identifier 
as the TCB. 

3. For any such CCB copy block found, check whether 
the traffic bit is posted in the copied CCB. If it is, 
copy significant parts to the virtual CCB, release 
CCB copy block, and allow tasks waiting for copy 
blocks to be selected (X'83' in TRTBUF). 

4. If emulator support active for partition, post the 
traffic bit in the partition's emulator ECB. 

5. Release the TCB, and exit to task selection 

If service delayed external interrupt posted for selected 
task, service page fault interrupt caused by external in- 
terrupt handler for selected task, and exit to task se- 
lection ■ 



If none of the above applies, the selected task seized 
the system and is dispatched 



SEIZRTRN 



c 



LPSW Return to 
Supervisor Routine 



3 



I 



ty 



EXIT 



208 DOS/VS supervisor 



Chart 03,1. Program Check Handler, and Cancel Routine 



ENTPCK 




PROGRAM CHECK HANDLER 



B32 



See also the section 

' Program Check Interrupt " in the chapter interrupt Processors' 

• Save registers 9—14 

• If the program check is a page-translation 

exception branch to page fault handler 

• If it is a translation-specification exception, 
put code X'FFA' in register 1 1 and put 

system into hard wait state 

• Enable DAT in PSW 

• If program check is segment-translation 
exception, change it to addressing 

• The program is cjjicjledlmmediate[y 
(ERR25 - Invalid address) it the program check 
occurred in the Supervisor due to an invalid 
user parameter. 

— 2— If program check occurred in the Supervisor 
not due to an invalid user parameter, put code 
X'FFF' in register 11 and put system into 
hard wait state 

• If MICR supported and program check is in 
an MICR stacker select routine the task is 
cancelled via MICR routines (MICRERR) 

• Set up for the general entry subroutine GENENT 
and call GENENT (Chart 01.1) to save interrupt 
status information and to establish addressability. 

• The program is canceled (ERR20 - Program Check) if: 

1. Supervisor was generated without user PC routine 
option. 

2. The user has not previously supplied the address 
of a PC routine by issuing a STXIT PC macro. 

3. The program check occurred while a Logical 
Transient was in operation. 

4. The program check occurred while the user's PC 
routine was in operation (routine in use) 

• To exit to user's PC routine: 

1. Save the PC old PSW, interrupt information, and 
problem program general registers in the user- 
supplied save area (see note) 

2. Store the address of the user's PC routine in 
the PC old PSW. 

3. Branch to task selection exit. 



c 



Note: The PC old PSW is remapped when saved. 

The user's PC routine will be executed when this 
task is selected in the general exit routine. Return 
from the user's PC routine must be with an EXIT PC 
macro. 





13.15 

13.16 

14.1 

14.3 

14.4 

14.11 



Hard 
Wait 



D 



CANCEL ROUTINE 



A01 



Calculate the cancel code (refer to 
Figure 10.03 for a table of cancel codes) 

Post the cancel code to the canceled 
program's PIB and set cancel switches in 
PIB 

Deactivate SVPVR task if the error 
was invalid address during fetch. 

For cancels during I/O pointers are set 
to channel queue entry, PIB and CCB, 
and exit is taken to EXIT via routines 
in the I/O interrupt handler which 
dequeue the channel queue entry and 
attempt to reschedule the channel. 

For other cancels immediate exit is 
taken to EXIT 

The next time the program to be 
canceled is selected, the first terminator 
phase, $$BEOJ3 or $$BEOJ4, will be 
fetched to cancel the program. 



EXIT 



Charts 209 



Chart 03.2. Program Check Handler, Page Fault Handler 



PFFLIH 




PAGE FAULT HANDLER 



B32 



(See also the section " Page Fault Handler " 
in the chapter 'Interrupt Processors ') 

Enable DAT in PSW 

If page fault in MICR stacker select routine, put 
cancel code X'15' in register 11, ready task, restore 
SVC new PSW address and exit to cancel task — 



If page fault in system task, other than Fetch, put 

code X'FFF' in register 1 1 and enter hard wait state 

If page fault in Fetch system task, or in enabled (for 

I/O and/or external interrupts) user task call GENENT 

(Chart 01.1) to save interrupt status information and 

to establish addressability. GENENT will not return to 

caller in this case, but branch to ENQU to enqueue the 

page request 

For other user tasks the RID is required to identify the 

routine in which the page fault occurred. Action is taken 

as indicated in Figure 4.-03- ^» % 

The Page Fault First level Interrupt Handler takes the 

following exits: 



1. Hard wait state is entered (with X'FFB') in 
register 1 1, when page fault occurred in 
Supervisor 

2. A branch is taken to the cancel routine in 
case of page fault in disabled user task or 
B-transient (ERR 15), in I/O appendage 
(ERR36), or in page fault appendage (ERR 15) 

3. A branch is taken to the enqueue page 
request routine in case of page fault in 
reentrant routine, in SVC29/47 routine, 
or in routine which requires no infor- 
mation to be saved, and when the RID 
points to the resource table 

(RID > X'3C) 



c 



Hard 
Wait 



) 



i 




ERRGO 
ERR15 
ERR36 



9 



ENQU 



210 DOS/VS supervisor 



Chart 04.1, Physical Attention Routines 



ATNRTN 




EXIT TO ATTENTION TRANSIENTS A04 



(For more detailed description, see 
the chapter 'Attejitioji_Rojjtinej) 

i If job accounting is supported, 
update pointers and time counter. 



» If $$ABERRZ is requested 
• If $$ABERZ1 is requested 



i Set up to fetch $$BATTNA, 
logical attention root phase. 
(See D^/VSJogic_a!Irjnsients) 




$$ABERR2 



C01 



$$ABERZ1 



> If emergency cancel request, 
set up to cancel the partition 
specified by the operator. 
Deactivate attention task, 
unless other attention 
request pending 

» If not emergency cancel: 

a. If intervention required 
found on a device, and 
operator wants using 
task to be- canceled, 
set up to cancel the 
task. Deactivate atten- 
tion task, unless other 
attention request pen- 
ding 

b. Otherwise, return to 
Supervisor for fetch of 
$$BATTNA. 



AREXIT 



D01 



• Scan the PUB Table for a 
PUB with a request from 
the LTA queued to it. 

• If such a request is found, 
issue SVC3 to dequeue the 
request. Set up to start the 
scan at this PUB when this 
phase is fetched next time 

• If no request from the LTA 
is found, post task that is to 
be canceled ready to run, post 
LTA I/O complete in the 
cancel code. Reset delay 
cancel switch (no more 
fetches of $$ABERZ1 required), 
and deactivate attention task, unless 
other attention request pending. 




Charts 211 



Chart 05.1. Supervisor Call Routines 




04.1 
> 02.2 , 




Refer to Chart A00 



(For a more detailed description, see the section 'Supervisor Call Interrupt' in the chapter 
'Interrupt Processors ' 



SVC 



6 - 

7 - 

8 - 

9 - 
10- 
11- 
12- 
13- 
14- 
15- 
16- 
17- 
18- 
19- 
20- 
21- 

22- 

23- 
24- 
25- 

26- 
27- 
28- 
29- 
30- 
31- 
32- 
33- 

34- 

35- 

36- 
37- 
38- 
39- 



Execute Channel Program 



Fetch Problem Program phase ( 
Fetch Logical Transient J 



Call FETCH routine (Chart 08.1) to load 
the phase and set up for execution of the 
phase when the task that issued the SVC 
is selected next time. 

Force dequeue 

Load phase. Call FETCH routine (Chart 08.1) to load 

the phase. 

Issued by Physical Transient: Call FETCH routine 

(Chart 08.1) to load the physical transient into the PTA 

and branch to its entry point 



Issued by User through MVCOM Macro: 

Modify Communications Region 

Cancel 

Wait for I/O Completion or Timer Interrupt 

Transfer to User from Logical Transient 

Return to Logical Transient after SVC 8 

Set Timer Interval 

Return from Logical Transient 

Reset Switches in partition communications region 

Set Switches in partition communications region 

Terminate Job Normally 

Headqueue and execute channel program 
Link to User PC Routine 
Return from User PC Routine 
Link to User IT Routine 
Return from User IT Routine 
Link to User OC Routine 
Return from User OC Routine 
Seize/release System Disable or Enable 
for Interruptions, set key in user PSW. 

Get load address. Branch to FETCH routine 

Set Timer Interval and Link to User Rtn. 

Halt I/O on TP Devices, or on any Device 

if OLTEP Request 

Validate Address Limits 

Special Halt I/O on TP Devices 

Return from user's stacker select routine 

Multiple Wait (WAITM) 

Wait for QTAM Element 

PostaQTAM Element 

QTAM SVC 

Return to Interrupted Program 

(Internal COM RG Macro) 

Update Date Field in Communications 

Region (Internal GETIME Macro) 

Protect Specified Track from Use by 

Other Tasks 

Free Specified Track 

Link to User AB Routine 

Attach Specified Subtask 

Detach Specified Subtask 




c 



Enter 
Transient 



J 



ERR10 



I 08.1 I 
FETCH 



9 



212 DCS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



Chart 05.2. Supervisor Call Routines 



Rcf.'t to Chart A00 



40- 
41 - 
42- 
43- 
44- 
45- 
46- 
47- 
48- 



49- 
50- 
51 - 
52- 
53 - 
54- 
55- 

56- 
57- 
58- 
59- 
60- 
61 - 
62- 
63- 
64- 
65- 
66- 
67- 
68- 
69- 
70- 
71 - 

72- 
73- 

74 - 

75 - 
76- 
77- 
78- 
84 - 
85- 
86 
87 - 
90 
91 - 



Post Completion of Specified Event 

Dequeue Specified Resource 

Enqueue Specified Resource 

Invalid (Not Used) 

Write Unit Check Record on Recorder File 

Provide Emulator Interface 

Give Control to OLTEP in Supervisor State 

Multiple wait (WAITF) for MICR type devices. 

Fetch CRT Transient. Call FETCH routine (Chart 08.1) 

to load the transient into the CRT transient area and 

set up for execution of the phase when the CRT task is 

selected next time. 

Used by VTAM 

Invalid (Not Used) 

Get Phase Directory Entry 



Return the remaining time interval or cancel a time interval 

Used by VTAM 

Release page frames to selection pool 



Get page frames for SDAID buffer area or PDAID alternate 



Reserved 
Reserved 

Provide interface with job control. Initialize Partition 

Provide interface with EOJ. Initialize specified page table entries 

Get virtual address for ERP and CRT routines 

Get storage in virtual partition 

Free storage in virtual partition 

Use a resource 

Release a resource 

Load VSAM or CI phase 

Return mode in which program is running 

Fix page in real storage (PFIX) 



Free page in real storage (PFREE) 

Return real address 

Return virtual address 

Establish/terminate linkage to user page-fault appendage 

routine 

Get/free copy block 

Authorize linkage to channel and appendage routine 

PFIX page in real storage in case of restart 

Calculate sector value (SECTVAL) 

Initiate recording of a RMSR I/O error record 

Return virtual address of copied CCW. Call CSWTRSVC (Chart 14.11) 

Reserved 

Reserved 

Release contents of one or more pages 

Force a page-out for one or more pages 

Page in one or more pages 

Link to POWER/VS appendage (user account information) 

Link to POWER/VS appendage (DOS/VS account information) 




K? 



Charts 213 



Chart 06,1. I/O Routines, I/O Interrupt Handler 



rcE J 



CHANNEL END ROUTINE 




ra 



HANDLE CHANNEL APPENDAGES 



Sm also th« MCtion 'I/O Interrupt Handler' in the 
chapter 'Physical Input/Output Control System' 

• Restore I/O registers and PIB pointer. (Use channel 
bucket for this channel if interrupt was for device 
on which I/O was started last). If headqueue in 
progress posted in PUB, point register 3 to as- 
sociated Headqueue PUB table entry 

• Call OLTEP appendage routine if OLTEP is active 
* TESTCE 

• Channel Control or Interface Control check 



• Initialize pointer to partition communications region, 
and PIK and TIK in BGCOMREG 

• Branch to channel check handler if RAS has 
I/O active 



■NOTRTA 

•It a channel appendage routine address is provided 
in the CCB, and if channel appendage is allowed, 
set RID to X'OC' and link to the appendage routine 

1. If the appendage is for BTAM running virtual 
call CSWTRBTM (Chart 14.11) to calculate the 
virtual address corresponding to the real address 
in the CSW. Store the returned real address in 
the CSW. 

2. If BTAM appendage routine on return requests I/O 
If BTAM in virtual mode, call CCWTRBT2 
(Chart 14.1) first for channel program trans* . 
lat.on. 

3. If BTAM appendage on return requests recor 
ding set up error queue entry and activate ERP 
task for recording by SSABERA5 

• Set RID to X'00' 

- «lf pure Channel End, or pure Channel End and 
Device End in CSW, branch to CHNDFU 

• If other flags on in CSW Status bytes 



& 



y 



~b 



• Store residual count and next CCW address 
in CCB, OR CCW status bytes into CCB 

• For system files: 

1. If on disk or diskette, update DIB entry 

2. Test for /#, /+. and IE on SYSIN and 
post the condition in appropriate 
control blocks 

• If not pure Channel End in CSW Device 
Status byte, branch to dequeue ■ 

• If posting at device end not requested 

• Indicate posting at dev. end requested 
in PUBCSFLG - 



JL 

I 06.2 I 



TSTERF TRNOFF 





UNUSUAL STATUS RTN 



» If repositioning required on 2560 

» Evaluate CSW, see Figure 6.25 

• Unit Check, Program and Pro- 
tection Check, Channel Data 
and Chaining Check 

TSTATTN 

► If attention from Console device, 
make attention task (if console 
printer-keyboard) or CRT task 
(if Display Operator Console) dis- 
patachable (CRT task is set up to 
handle attn. on DOC). Post emer- 
gency cancel is attention task was 
already active 



6 



IGNORE 

NOATTENT 

CEDETST 



Interrogate other 
Status bits in CSW. 
Other exits from 
this routine are: 



C 3 ^ 5J 

INITRG EXIT TRNOFF 



214 DOS/VS Supervisor 



Chart 06,2. I/O Routines, I/O Interrupt Handler 



See also the section ' I/O Interrupt Handler ' in the 
chapter ' Physical Input/Output Control System ' 



TRNOFF 



TSTERF 




INITRG 



^ 



06.1 
10.1 
12.2 




DEQUEUE CHANNEL QUEUE ENTRY 



A01 



If seek separation active, chain seek CCW and 
set up to re issue SI 



TSTERF. 



If tape ERP requested this I/O operation 



Post Traffic bit in CCB, post I/O complete in 
PIBFLG of requesting task. 

If the requesting task is a system task and 
a lower priority system task is active, 
deactivate that system task, to allow 
requesting task to be selected first. 

Dequeue channel queue entry 

If I/O was for a program running in 
virtual mode, call CSWTRANS (Chart 14.9) 
to retranslate channel program and 
release copy blocks and fixed pages 

If this was a headqueue request, deactivate the 
associated headqueue entry, reset PUB pointer, 
and reset PUB headqueue flags. 

If this was a headqueue request, or if request for 
headqueueing posted in PUB, determine system 
task with highest priority headqueue request for 
this PUB (if any) and set up PUB and associated. 
Headqueue PUB table entry for headqueueing 



INITRG 



PRTPRG 



06.3 
GIOADR 



© 



INITRG1 



RESCHEDULE CHANNEL 



A16 



t If this channel is a byte multiplexer channel, branch 
to GIOADR to restart, the device if more requests are 
queued to this PUB (if headqueue in progress posted 
in the PUB, point reg. 3 to the associated. Headqueue 
PUB table entry with the highest priority) 



INITRG1 

• If not byte multiplexer channel, do a rotery scan of all 
PUBs on this channel, starting with the PUB following 
the PUB for the device, which was last started, to see 
whether there is a PUB with a I/O request queued. 

If PUB with a request found, reschedule (if headqueue 
in progress is posted in the PUB, point Reg. 3 to the 
associated Headqueue PUB table entry with the highest 
priority) 



If no I/O request found, which can be serviced, exit to 
task selection 



EXIT 



06.3 



GIOADR 



Charts 215 



Chart 06.3. I/O Routines # Channel Scheduler 



See also the section 'Channel Scheduler' in the 
chapter 'Physical Input/Output Control System' 



SVC 00 



06.2 | I 

12.2 I * I 



GIOADR 



CHANNEL SCHEDULER 



A48 



6 



STRTIO 



If request is for RETAIN/370 and not from OLTEP. 

If console buffering is supported and the request is 
a write to a console printer-keyboard move CCB, 
CCW and data to the next entry in the console 
buffer table. Bypass channel program translation. 
See the section ICjjnjoleJJufferjnfl'in the chapter 
Til ysjca_M nj^l/Ou^uLCj^lroLSj/Atem' . 

Clear channel scheduler bits and status bytes in the 
CCB. If the request is from a user program executing 
in virtual mode (with user private translation not 
posted in CCB), call subroutine CCWTRANS 
(Chart 14.1) for channel program translation. 

Build channel queue entry and set RID to X'00'. 

If request is not from ERP, increase usage count 
in the PUB2 table entry for the device. 
Perform seek separation for seek (X'07') commands if 
seek separation is supported. See the section ' Seek 
Separation' in the chapter 'Physical Input/Output Control 
System' . Seek separation is not performed for diskette and 
for devices with the disconnect command chaining feature 
on block multiplexer channels, running in block multiplex 
mode. 

If there is already a request queued to the PUB, add the 

new request to the end of the chain and exit to task selection. . 

GIOADR 



• Exit to task selection when the device is busy or in error - 



Exit to task selection when the channel is not available — 
(If the device is on two adjacent selector or block multi- 
plexer channels, and switchable, and the primary channel 
is not available, the secondary channel is tried; a byte 
multiplexer channel is available unless it is running in burst 
mode and the device is burst mode or overrunnable) 

If a user did private channel program translation, set the 
virtual CCW address in register 9, m case an instruction 
refers to it. If the virtual address is invalid, cancel user 



If reading past /E on SYSRDR or SYSIPT, device not 
DASD or diskette, cancel user 



- If OLTEP active is indicated in CCB bypass CCW modification 

For read and write requests on SYSLOG modify CCW 
chain to write partition identifier prefix 

Tape devices: 

1. If intercept next SIO request is posted in the PUB2 
table entry for the device branch to Unit Check 
handler treating the device as not operational 

2. If request is from ERP modify the CCW string as 
indicated by flags in PUB2 table entry 

3. Unless command is sense, modify CCW chain to 
start write proper set mode command. 



NOTTAPE 



I 03.1 



ERR21 



V 



EXIT 



ERR30 



PRTPRG 



216 DOS/VS Supervisor 



Chart 06. a, I/O Routines, Channel Scheduler 



See also the section 'Channel Scheduler ' in the 
chapter ' Physical Input/Output Control System' 



I 06.3 I 



SIO 



o-^ 



NRTASIO 



© 



NOTTAPE 

• If the device is a DASD with File Protect support and 
violation is detected, cancel user 



• If I/O is for a system file on disk or diskette and an error 
is detected while checking disk address with DIB entry, 
cancel user 

STRTIO 

• Set key and CCW address in Channel Address Word. 
SIO 

• If OLTEP is active, branch to OLTEP routine. This routine 
issues the SIO for OLTEP and returns the condition code 

• Issue SIO 

• Exit to task selection if channel is busy (condition code 

2 returned) or attempt channel switching if supported and 
if block multiplex mode supported 



Branch to unit check handler when device not operational 
(condition code 3 returned) 



Save I/O registers (1 — 5) in channel bucket 

Bra nch to CSWSTORD in I/O Interrupt handler when 
condition code 1 is returned 

Post device busy in PUB and, if burst-mode devices on 
byte-multiplexer channel are supported, post channel 
running burst (in channel control table entry) if device 
is posted burst mode (in the PUB) 



EXIT 



CSWSTORD 



I 03.1 J 



ERR32 



PRTPRG 



CSW STORED AT SIO TIME 



A84 



Channel or Interface Control Check 

RAS retry request — 

NRTASIO 

If no other status bits than PCI, incorr. length, status 
modifier and Busy on 



3410, 3420 volume change on open device, handle as 
device not operational 



3410, 3420 volume change on not open device 

Otherwise, set up CSW and I/O address for interrupt 
processing 



CCENTRY3 CCENTRY1 



PRTPRG 



EXIT 



NOTRTA 



Charts 217 



Chart 07.1. External Interrupt Routines 







MICR SIGNAL ^/^ 


^w TIMER 






\ 


X 


l> 






MICR INTERRUPT A41 




KEY 


EXTERNAL INTERRUPT, TIMER A38 




This interrupt is ignored if MICR devices are not 


If no further interval is pending, the timer (SYSTIMER) 




supported 






is reset to the maximum value X'FFOOOOOO'. If job ac- 




1. If OLTEP active link to OLTEP appendage 






counting is supported (JA=YES),SYSTOD (X'54') is 




routine. 






set to the current time plus 15.5 hours. 




2. Locate the DTF table for the device causing the 






If there are pending intervals, the following actions are 
taken: 




interrupt. See Figure 2.12 for tables PDTABA (DTF 








pointers) and PDTABB (DTF addresses). From the DTF 






• SYSTIMER is set to the time interval of the next 




table, get the channel and unit number of the MICR 






interrupt (first entry in ITREQ is moved to 




type device and data concerning the record in the buffer 






SYSTIMER). 




and the stacker select routine. 






• SYSTOD is set to the time of day at which the inter- 




3. Issue the TIO to clear the pending interrupt. If any 






rupt is to occur (first entry in ITREQ is added to 




error conditions are detected, branch to the TIO 






SYSTOD). 




error recovery routine for 1419/1270/1275 or for 






• ITREQ is updated (first entry in ITREQ is subtrac- 




1419D. If an off-line sort is requested with 1419D, 






ted from the other entries in ITREQ, if any). 




the subsequent SIO will be bypassed. 






• The first entry in ITREQ is deleted and the other 




4. After a successful TIO has been completed, update 






intervals, if any, are moved up one entry. 




record and buffer data, prepare CCW, and exit to 










the user stacker select routine to get the pocket 










selection for the last document read. 






With User TECB Address: The event bit is posted in the 
user's TECB (timer event control block) and the timer sup- 




5. The Supervisor is reentered via an EXIT (MR) 






ported program is included in task selection. The TECB 




macro. Prepare CCWs and buffer for batch 
numbering and/of auto select, if required. 






address is cleared in the IT option table (ITTAB). 
With User IT Routine: To exit to the user's IT routine: 




6. Issue an SIO to stack the document. If any error 










conditions are detected, branch to the SIO error 






1. Save the interrupt status information and timer- 




recovery routine for 1419/1270/1275 or for 






supported-program registers in the user-supplied 




1419D. If more than one MICR type device inter- 






save area (72 bytes). 




rupted simultaneously, process these interrupts 






2. Store the address of the user IT routine in this 




beginning at step 2 above. 






save area. 
3. Branch to general exit. The user IT routine will be 




7. Check for IT or OC interrupts that may have 






executed when this task is selected in the general 




occurred with the MICR interrupt: 






exit routine. Return from the user's IT routine must 




Timer Interrupt - Update the job accounting 






be with an EXIT IT macro. 




timer to a minimum value so that it will inter- 






See Figures 4.07 and 4.08 for the timer tables 




rupt again without any other status. It will then be 






(ITTAB and ITREQ). Refer to Figure 6.20 for the 




processed as described in the Timer Interrupt block. 






format of the CCB (TECB has the same format as 




Key Interrupt - Process immediately as described 






the CCB. Only the event bit X'80' in byte 2 is used). 




in the Key Interrupt block. 






Note: If a B-transient is operating for the timer sup- 
ported program when the timer interrupt 
occurs for a user IT routine, the exit is deferred. 

When on return from LTA the SVC1 1 routine finds that 




| 














a timer interrupt is pending, a branch is taken to the timer 
interrupt handler to resume processing of the interrupt. 




\ 


r 








EXTERNAL INTERRUPT, KEY A38 








The attention routine PIB is posted to include the 








attention routine in task selection. The nonresident 








attention routine ($$BATTNA) processes the request 








when the attention task is selected in general exit. 








Note: If Supervisor was generated without user OC 








(operator communications) routine option, the inter- 








rupt is ignored. 








If timer interrupt occurred at the same time, handle 








it. Otherwise, exit to task 


selection. 








». 


-* 











218 DOS/VS Supervisor 



Chart 08.1. 



Fetch Routine 



m 



(For information about relocating load, see the section 
' Relocating load' in the chapter ' Program Retrieval' .) 



FETCH 

FETCHERP 

CRTFCH2 



c 



FETCH ROUTINE 



J> 



FETCH A PHASE 



B03, B10 



For a more detailed description, see the section 'Fetch 
Routine' in this logic manual. 

Objectives; 

1. Load a problem program phase or transient program 
from a private core image library (PCIL) or from a 
system core image library, unless it is in the Shared 
Virtual Area (SVA) or TXT=NO was specified. 

2. Supply the load address for a phase (SVC 23), or 

3. Supply the directory entry for a phase (SVC 51). 

Search for a directory entry for the requested phase. 
An active (filled in) directory entry may be found in 
storage (for example in Local or System Directory List). 
If no active directory entry is found in storage, the PCIL 
(if supported and assigned) and SCIL directories are to be 
searched. The order of the search depends on the type of 
phase ($ phase or not), and on the option specified by 
the user. 

The directory block containing the directory entry (if the 
phase is in the library being searched) is read into the PTA, 
if I DRA=NO was specified at sysgen. It is read into the 
Independent Directory Read-In Area (IDRA) if !DRA= 
YES was specified. When searching for a CRT transient 
($$BOCRTx), the directory block is read into the CRT 
transient area (CRTTRNS). 

If the fetch routine was entered by the SVC 23 routine, 
move the load address of the phase (relocated load address 
for relocatable phase) to the user area and exit to task 
selection —-—-—-—------------—----—- _-__-_____-—_-____. 



If the fetch routine was entered by the SVC 51 routine, 
move the requested number of halfwords of the directory 
entry of the phase to the user area and exit to task 
selection • 



Relocate the entry address if an overriding load address 
has been specified, and pass this address to the user in 
general register 1. 

Load the phase, unless it is in the SVA or TXT=NO was 
specified. (Phase in SVA is only used if there are 8 or more 
page frames in the main page pool.) 

Store the end address of the phase in the partition's 
communications region, unless the phase is in the SVA or 
TXT=NO was specified. 



c 




RETURN TO 
CALLER 



J 



EXIT 



Charts 219 



Chart 08.2, Fetch Routine 



FETCH A PHASE, phase not found 



If the phase to be fetched is not found. 

1. For SVC 23 and 51 the task is not canceled; 
return to task selection. 

2. If an in-storage directory is found and 
TXT NO was specified: 

post directory entry active 
and phase not found. 

The task is not canceled; return to task 
selection. 

3. In the other cases: 

X'22' cancel code is set. 

The task is canceled; return to task 
selection. 



220 DCS/VS supervisor 



Chart 09.1. 



Unit Check Routine 



I 06.1 J 

NOATTENT 



g 



PRTPRG 



06.1 
06.2 
06.3 
06.4 



Unit Check routine 



A19 



(See also the section ' Error Queueing and Dequeueing' 
in the chapter ' Physical Input/Output Control System') 

If Seek Separation was being executed, return to 

the I/O Interrupt Handler to restore the user's 

CCW chain and restart I/O. 



If the error queue table is already full, cancel 
the task (ERR31 - error queue overflow). 



Move the CSW into the last entry in the error 
queue table and set the error queue flag byte to 
allow retry or allow ignore. 

Determine the action to be taken for the 
following conditions: 



Program or Protection check, or 
Device not operational 



• If user has sense CCW provided, execute it, 
post CCB, restore original CSW and return to 

user via I/O interrupt Handler 

• If user has error routine provided, post CCB 
and return to user via I/O interrupt Handler 
(unit check condition is cleared by issuing 
sense command. Sense info is lost) 

• Read sense bytes into error queue entry 

• If the error occurred on a direct access device 
branch to resident error recovery routine — 



Jf device is a printer and channel 9 overflow 
is the only condition indicated in sense 
byte 0, post CCB, restore original CSW 
and return to I/O Interrupt Handler 

If device is a 3203, or 5203Uand channel 9 
overflow occurs with another unit check, 
post CCB. 



• For all other conditions and devices, exit 

to the Physical Transient Exit routine EXTRAN 



I 



EXTRAN 



ERR31 



EXTRAN 



I 06.1 I 
TSTATTN 



DISKERR 



EXTRAN 




Charts 221 



Chart 10.1. Resident Disk Error Recovery Routine 



DISKERR 



£ 



[06.1 J 



NOATTENT 



I 06.1 I 
TESTCE 




Resident Disk ERP: 



A26 



(See the section 'Disk Error Recovery* in the chapter 
'Physical Input/Output Control System' ) 



Keep account of the number of retries. 

Put user's virtual seek address into the 
last error queue entry. 

Analyze the sense information and the 
CSW stored in the last error queue entry. 

Determine and execute the error recovery 
procedure. 



If the failing command is to be retried, 
and recording is not required, branch 
to INITRG in I/O Interrupt Handler _ 



If the failing command is to be retried, 
but recording is required, post 'soft 
error' in the error queue entry and 
branch to EXTRAN to record the 

error before the retry is attempted. 

(Only initial errors, not on SYSRES, 
are recorded before a retry is attemp- 
ted) 

If the error condition is to be ig- 
nored, restore the original CSW 
and branch to NOATTENT in the 
I/O Interrupt Handler to continue 
processing the interruption. 

In some cases the disk ERP re- 
executes the user's channel pro- 
gram. Exit is than taken to TESTCE 
in the I/O Interrupt Handler to 



evaluate the resulting CSW 

If the task is to be canceled because 
of the I/O error, exit to EXTRAN 



6 

EXTRAN 



INITRG 



222 DOS/VS supervisor 



Chart 11.1. Physical Transient Interface, Exit Routine 



EXTRAN 




EXIT TO PHYSICAL TRANSIENT 



A20 



c 



Hard 
Wait 



3 



Complete error queue entry with address of PUB 
for device in error, address of CCB, and the user's 
TIK (in key portion of CSW) 

If error occurred on Page Dataset: 

1. If delayed service pending inicated 
in PIB, put code X'FF9' in general 

register 1 1 and put CPU into wait 

srate with all interrupts masked off. 

2. If no delayed service pending, branch 

to cancel the task 



If error occurred during a Fetch on SYSRES, 

put code X'FFE' in register 1 1 and put CPU 

■ into wait state with all interrupts masked off. 

Post status in PUB. Activate ERP task (unless 
first error queue entry is already active, or 
physical attention active). Move the contents 
of the last error queue entry to the first free 
entry and activate that entry. 

If error occurred on SYSRES (not fetch), 

dequeue channel queue entry first 

All other errors 



I 02.1 J 

EXIT 



I 03.1 I 
ERR37 



I 06.2 I 
TRNOFF 



Charts 223 



Chart 11.2. Physical Transient Interface, Return Routine 



c 



Entry from 
ERP/RMSR 
Transients 



ERPEXIT 



R 



I 



) 



RETURN FROM PHYSICAL TRANSIENTS 



A53 



• If this error queue entry is an alternate 
entry (SVC44 or BTAM Channel Appendage 
recording): free any temporarily fixed 
pages. Call subroutine TFREE (Chart 13.10) 
for this. 

• Dequeue first error queue entry and post 
last entry available. 

AREXIT 

• Set up PIB pointer and restore supervisor 
base registers 

• Set up for initial selection of ERP task if 
the first error queue entry is active 

• Zero select byte to deactivate ERP task 

• Branch to the address specified in reg. 15: 

1. Task selection, if return from $$ABERRZ, 
or $$ABERZ1, or from SVC44 or BTAM 
Channel Appendage recording (Alternate 
Entry) 



2. INITRG, to retry an I/O operation _ 

3. IGNORE, to ignore an I/O error 

4. ERR1A, to cancel task because of an 
irrecoverable I/O error - 



I 03.1 J 

ERR1A 



I 06.1 J I 06.2 J l 02 ' 1 J 

IGNORE INITRG EXIT 



224 DCS/VS Supervisor 



Chart 12.1. MCH/CCH, Machine Check Handler and Emergency Exit Routine 



See also the chapter 
'Machine Check and Channel 
Check Handling' 



MACHEK 



am 




RESIDENT MACHINE CHECK HANDLER 



B79 



Severity detect routine for machine checks. It 
categorizes errors in three classes 

1. System Termination Condition: System damage 
bit on in MCIC; CPU-Mask bits in Machine Check 
old PSW invalid; instruction processing damage 
while CPU in Supervisor state; one or more oid 
PSW bits, other than CPU-Mask, invalid while 
CPU in supervisor state; protection or storage 
error with invalid failing storage address. 

Action: Branch to emergency exit routine 



System can continue, but cancel damaged 
task and attempt repair (hard check): 
instruction processing damage while CPU in 
problem state; machine check old PSW not 
completely valid while CPU in problem state. 

Action: save registers 9—14, call general entry 

subroutine GENENT (chart 01.1) to save interrupt 

status information (unless system is allbound), 

activate RAS system task. 

If storage error on GETREAL, branch to 

task selection (don't cancel task) .... 



Otherwise, branch to cancel routine to cancel task 

Hardware recovered from the error and only 
recording is required (soft check). 

Action: Save registers 9—14, call general entry 
subroutine GENENT (chart 01.1) to save interrupt 
status information (unless system is allbound), 
activate RAS system task. 
If CPU in supervisor state, return to interrupted 

code via old PSW 

If CPU in problem state exit to task selection. 



EMGEX0-EMGEX9 



1 




(J 

EXIT 



EMERGENCY EXIT ROUTINE 



B79 



Post error code and SEREP code in low real 
storage. Post emergency exit bit and branch 
to RAS Monitor to load (if necessary) and 
enter $$RAST00 



6 

CHECKRO 




c 



1 



Load Machine 
Check Old 
PSW 



) 



Charts 225 



Chart 12.2. MCH/CCH, Channel Check Handler 



See also the chapter 'Machine Check and 
CHannel Check Handling' 



(See Entry points) 



V 



06.1 
06.4 
12-3 



Resident Channel Check Handler 



B82, B83, B86, B87 



Determines severity of channel check, sets flag to indicate R- 
transient recording and retry operations. 

Considers errors not isolated to a device as channel 
damage; creates ERPIB showing damaged channel, CSW, 
ECSW for analysis by R-transients. 

Fills entire ERPIB for errors isolated to a device. 

DASD device channel check. 



When RTA has avtive I/O request, resident CCH intercepts all 
interrupts to determine source. Interrupts originated by RTA are 
processed here. All other interrupts are passed on to supervisor 
for normal handling. 

Entry points: 

CCENTRY1 - Initial detection of channel check 

CCENTRY2 - Interrupt entry for active RTA 

CCENTRY3 - Channel check received at SIO time on CC 
retry request 

RASDEQ - R-transient dequeving a CCB. Subroutine 
called by RAS Monitor on request from 
R-transient. 
Exit points: 

INITRG — to reschedule the channel 

CCDASDE - see above 

IMOTRTA - to return to I/O interrupt 

routine 



NRTASIO -to return to SIO routine 



EMGEX 1,4-7 — to emergency exit routine 



EXTRAN — error on recovery exit to 
enter physical transients 



via link reg 8 — to return to RAS Monitor 
after dequeue operation 
performed 



EXIT 



- to task selection 



J, 



DASD CHANNEL CHECK HANDLER 



INITRG 



Retry CCW chain 10 times 

Exit points 

SIO - to retry operation on which 

channel check was detected at 
SIO time 

INITSIO — to retry operation on which 
(GIOADR) channel check was detected 

during interrupt handling 



EMGEX8 - emergency exit for 

irrecoverable error on fetch 
operation 



EMGEXO — emergency exit for 

irrecoverable error on 
paging operation 



ERR1B — exit to cancel routine to 
cancel damaged task for 
all other irrecoverable 
errors 



6 



| 06.4 
SIO 



6 

EMGEXO 
EMGEX8 



226 DOS/VS Supervisor 



Chart 12.3, MCH/CCH, RAS Monitor 



© 



CHECKRO 



c 



Entry from 
R-transient 



> 



m 



RASUPR 



RAS MONITOR 



B79, B80, B89 



(See also the section 'Recovery 
Transients and RAS Monitor' in 
the chapter 'Machine Check and 
Channel Check Handling' 

The RAS Monitor is an interface between the 
R-transients and the supervisor. 



Entry points: 



RASUPR 



CHECKO 



RASTSCAN 



— Entered at initial selection of the 
RAS System task. Save supervisor 
registers. Load (if necessary) and 
branch to $$RAST00 

— Entered from the emergency exit 
routine. Load (if necessary) and 
branch to $$RAST00. 

— Entered when a service is requested by 
an R-transient: 

• I/O or emergency I/O 

• waitonSYSREC 

• restart channel 

9 fetch of next R-transient 

• initialize registers for I/O. 

• dequeue CCB 

• cancel damaged task 

• get time of day 

• exit to task selection 



Exits: 

RTA-f 10 
via link reg 7 
EMGEX8 

INITRG1 
ERRGO 
RASDEQ 

EXIT 



to enter R-transient 

return to R-transient after service 

emergency exit when irrecoverable I/O error 
occurred while fetching R-transient 

restart channel 



— cancel damaged task 



subroutine in channel check handler, 
used to dequeue a CCB 

exit to task selection 



■c 



Enter (or 
re-enter) 
R-Transient 



J 



I 06.2 I 
INITRG1 



EMGEX8 



I 02.1 J I 122 J I 03 ' 1 J 



EXIT 



RASDEQ 



ERRGO 



Charts 227 



Chart 13.1. Page Management , Enqueue Request tc Page Queue 



V 



ENQU 



© 



03.2 

13.9 

13.12 

13.16 

13.17 



See also the section ' Page Fault Handling 
Overlap ' in 'Page Management' 



ENQUPHO 



ENQUEUE PAGE I/O REQUEST 



Set up entry for Page Queue, using 
information at TRADDR (loc X'90'), 
task's storage protection key, and 
task identifier (PI K or Tl K for user 
task, select byte for system task). 

If requesting task is a user task and 
page fault handling overlap is initia- 
lized for this task. 

Post task not selectable. 

If request is from fetch (SUPVR), 
check whether the partition is deac- 
tivated. If so, post the task load leveler 
bound and call RESFCH (Chart 13.5) 
to reset the fetch request and exit. 

If request is from fetch, and TRTFIX 
=X'00' (selection pool empty), 
call RESFCH, post the task fix bound 
(X'6D' or X'77'), and exit. 



UPDEOPQ 



Enqueue request to page queue 

If gate to Page Manager system task 
(PMGR) is closed (PMGR already 
active), exit to task selection. 

If the gate is open (PMGR not active), 
active PMGR system task. 



13.2 I 



EXIT TO AND RETURN FROM PAGE FAULT 
APPENDAGE ROUTINE 



B35 



f 
02.1 



If the page fault is in a supervisor 
service routine or the LTA: 

1) if a page fault is pending place 
the page fault information (in 
the form of a Page Queue entry) 
in the second half of the PFATAB 
entry for that task, post the user 
task not selectable, and exit to Task 
Selection 



2) If no page fault request is 

pending, post task not selectable, 
post page fault in supervisor 
service routine, and return to 
the ENQU routine 



If the page fault is not in a supervisor 
service routine or the LTA, set RID to 
X'16', branch to first entry point of the 
page fault appendage with the page fault 
information in a parameter register 



Page Fault Appendage 



Set RIDtoX'00' 
» If page fault request pending for 
this task, exit to task selection 

» If invalid parameter returned, branch 
to cancel routine 



Post request pending and return to 
ENQU routine 



PMR 



EXIT 



6 



ERR2C 



© 



228 DOS/VS Supervisor 



Chart 13.2. Page Management, Handle Page Queue Entry 



^ 



PMR 



13.1 
13.3 
13.4 



HANDLING OF PAGE QUEUE ENTRY 



B36 



PMR1 



PMR2 



This routine handles the first entry in the page queue. 

• If the request is not from GETREAL and the requested 
page is not in real storage: 

1) Update reentry rate counter in case of page 
reentry (see section ' Partition Deactivation' ). 

2) Call BQCL (Chart 13.5) to select a page frame 
from the selection pool. 

3) If the requested page must be read from the page 
data set (which contains a valid copy), call 
CPGIN (Chart 13.6) to update page-in counters. 



If the selected page frame (see above), or the requested 
page frame (GETREAL) is being used: 

1) Post reentry rate table (see section ' Partition Deactivation' ) 

2) If contents of the page frame were changed, indicate 
the necessity of page-out. 

3) Insert page frame's storage key into page table entry 
of page that is occupying the page frame. 



The following only applies when the requested page is not 
yet in real storage. 

1) Remove page frame from selection pool, 

2) Call PAGEIO (Chart 13.5) if page-in and/or 
page-out is to be performed. 

3) Set storage key in page frame, using the key from 
page table entry of requested page, and insert 
page frame number into this page table entry. 

4) If GETREAL request, post invalid address space in 
corresponding page table entry (high-order bit on) 
and exit to dequeue the page queue entry — 



PMR A 



5) Add page frame to the selection pool again, and 
append it to the end of the Hold Queue. 

6) If, however, the request is not GETREAL and the 
requested page is found to be non-addressable 
(high-order bit in page table entry on), instead 
of action 3 and 5, the storage key is set to zero 

and the page frame is added to the top of Q00 and 
posted unused. 

7) If delayed exchanging is posted, reset NFF (bit 12) 
in 'old' page frame table entry and call EXCH 

(Chart 13.13) and DPFIX (Chart 13.11) to exchange and PF IX 



If PFIX request, call PFIXPGE (Chart 13.12) to PFIX the page 
If PF IX is not successful exit to dequeue the page queue entry 
without posting the requesting task 



If TFIX request, call DTFIX (Chart 13.9) to TFIX the page. 
If TFIX not successful, exit to DEQUX 



f 

13.3 




DEQUX 



DEQU 



Charts 229 



Chart 13,3. Page Management , Dequeue Request from Page Queue 



DEQU 



o 



© 



See also the section 'Page Fault Handling 
Overlap ' in ' Page Management ' 



DEQUPHO 



DEQUEUE PAGE I/O REQUEST 



B37 



• If delayed exchanging was performed, 
post task that was waiting for it ready 
to run 

• If the request is not a dummy request: 
1. If an initialized PHO appendage 



exists for this task 

POSTTSK 

2. Post serviced task ready to run 

DELETE 

• Delete page queue entry 

The page queue is scanned for any page 
fault entries. If such an entry is found, it 
is checked whether the requested page is 
already in real storage. If this is the case, 
the appropriate action (see above) is taken 
to dequeue this entry. (DEQUPHO may be 
entered again). 

• If no more entries in page queue, deactivate 
PMGR system task, open gate to PMR rou- 
tines and exit to task selection 



• Set up PI K in SYSCOM (and Tl K in 
BGCOMREG if AP is supported) and 
enter PMR routines again. 



f 
13.2 



PMR 



02.1 
EXIT 



EXIT TO AND RETURN FROM PAGE FAULT 
APPENDAGE ROUTINE 



If the handled page fault comes 
from a supervisor service routine 
and there is no page fault information 
in the second half of the PFATAB entry 
for the task, return to the DEQU routine 



If the handled page fault comes from a 
supervisor service routine and the 
second half of the PFATAB entry contains 
page fault information, set RID to X'16', post 
task selectable, put information in parameter 
register, clear second half of PFATAB entry, 
and branch to second entry point of page 
fault appendage 



If a page fault from a supervisor service 
routine is pending in the PFATAB entry, 
exchange the Page Queue entry with the 
PFATAB entry, post page fault from 
supervisor service routine, set up PIK in 
SYSCOM (and TIK in BGCOMREG if AP 



supported) and branch to Page Manager 
routines 

In all other cases, load page fault information 
of handled page fault from Page Queue in 
parameter register, set RID to X'16', and 
branch to the second entry point of the 
page fault appendage for the user task 



Page Fault Appendage 



• Set RIDtoXW 

• If no parameter is returned (=0) from the 
appendage, return to DEQU routine 

• If invalid parameter returned, the entry is 
deleted from the page queue. If page queue 
is empty now the PMGR system task is de- 
activated and the gate to the PMGR task is 
opened. Exit to cancel user task 

• If valid parameter returned, place it in the 
first entry of the page queue set up PI K in 
SYSCOM (and TIK in BGCOMREG if AP 
supported), and branch to PMR routine 



PMR 



6 



© 



ERR2C 



230 DCS/VS Supervisor 



Chart 13.4. Page Management, Handle Selection Peel Eirpty Condition 



^ ; 



3.2 
3-5 



DEQUX 



m 



DEQUXE 



RESET TASKS 



B38 



This routine is entered when a paging request is to be handled 
and no page frame is available. 

• Post PMGR task TRTMASK byte, TRTFIX, to X'OO' (fix bound) 

• If there are no completed TFIX requests (CNTCOM= 0), 
the following action is taken. 

The following tasks are reset, in the order listed below. 
Resetting is terminated as soon as, as result of a TFREE, 
one or more page frames were returned to the selection pool. 
Exit is then taken to DEQUXE 



Resetted tasks are posted waiting for freeing of page frames 
(X'6D'), and the corresponding TRTMASK byte TRTPFG is 
set to X'00'. 

1) If fetch has an entry in the page queue, RESFCH 

(Chart 13.5) is called to reset the fetch task. 

Any started CCW translations with TFIXed pages 

are reset CCWRSVC (Chart 14.10) is called for this. 

Any started SVC 44 requests with TFIXed pages 

are reset. 



2) 



3) 



If no page frame is freed as a result of resetting of these tasks, 
the task with the last started CCW translation is set up by 
CCWRSVC to be canceled (page pool too small). 

Otherwise, exit is taken to DEQUXE, to continue handling 
of page queue entries. 



If one or more completed TFIX requests exist (CNTCQM^Q), 

the following action is taken. 

1) If fetch has an entry in the page queue, RESFCH 
(Chart 13.5) is called to reset fetch. The task 
requesting this fetch is posted fix-bound, X'77', and 
exit is taken to DEQUXE — — 



2) 



The PMGR system task is posted fix-bound, X'77', 
the select byte is set to X'00', and the instruction 
address in the PSW in the save area is mod ified 
to force task to enter the PMR routine when 
selected again. Exit to task selection. 



DEQUXE 




CONTINUE PAGE QUEUE HANDLING 



B38 



If page queue is empty, open gate to PMGR system task, 
zero select byte, exit to task selection 



If page queue not empty, set up PIK and TIK (if AP is 
supported) for handling of first page queue entry 



C 5 



EXIT 



13.2 




PMR 



Charts 231 



Chart 13.5. Page Management, Subroutines, Reset Fetch 



f BQCL J 



Called by 

PMR (Chart 13.2) 



BQCL 



( PAGEIO J 



Called by 

PMR (Chart 13.2) 



PAGEIO 



SELECT PAGE FRAME 



B60 



• Select a page frame from 

the selection pool. Reorganize 
selection pool queues during 
the selection procedure (see the 
section 'Page Frame Selection ' 

• Pass the address of the selected 
page frame to caller via register 1 

• If no page frame is selected, 
because the selection pool is 
empty 



(Return to A 
Caller J 

( CCWDEACT J 



PERFORM PAGE I/O 



B61 



• Initialize CCW's and seek address(es) 
for writing and/or reading the page(s) 
to and/or from the page data set. 
The address of the page frame and the 
relative page number(s) are passed to 
this routine by the caller. Device 
dependent information is extracted 
from the page data set table (DPDTAB). 

• Execute the channel program(s) and 
wait for completion. 

• If 'no record found' is posted in CCB, 
enter disabled wait (code X'FF9') 



DEQUX 



( cir ) ( ™»* ) 



Called by 

DEACT (Chart 13.6) 



f RESFCH J 



CCWDEACT 



RESFCH 



DEACT. CHAN. PROG. TRANSL. 



B31 



If no Channel Program 
Translation in progress for 
deactivated task, return to 
caller 



If the task has an entry in 

the page queue, call 

COR F I XI N (Chart 14.8) to 

correct possibly incorrect 

fix information. 

Call SETBACK (Chart 14.8) 

to reset Channel Program 

Translation 



Called by 
ENQ (Chart 13.1) 
DEQUX (Chart 13.4) 
DEACTP (Chart 13-6) 



RESET FETCH 



B47 



Open gate to fetch routine by setting 
appropriate TRTMASK byte (TRTPTA 
orTRTIDRA)toX'83\ 

Post PIB and modify requesting task's 
system save area to allow fetch restart 
routine (SETFCH) to be entered when 
the task is selected next time. 

If TFIX was in progress for fetch, call 
TFREE (Chart 13.10) to TFREE the 
pages with the data areas specified in 
the fetch IDALs 



(Return to N 
Caller ) 



(Return to ^ 
Caller J 



232 DOS/VS Supervisor 



Chart 13,6. Page Management, Deactivation of Partition 



C CPGIN j 



called by PMR Routines 
(Chart 13.2) 



See also the section 'Partition Deactivation 
and Reactivation' 



CPGIN 



UPDATE PAGE-IN COUNTERS 



B64 



i If entered for the first time: 

1) Store current time of day clock 
value to set start time for interval. 
If clock in error or not operational, 



return to caller 

2) Zero Reentry Rate Table and 
Reentry Rate Counter 

3) Update Page-In Counters and 



return to caller 

» On subsequent entries: 

1) If Page-In Counter for deactivation 
interval equals a prespecified 
value, reset it to zero and call DEACT 



2) Update Page-In Counters 



DEACT 



(Return to ^ 
Caller J 



PMR Routine 
(Chart 13.2) 



DEACTP 



CHECK LIMITS 



B64 



This routine calculates the exponential 
average of Page-ln's per second. If the 
exponential average and the rate at which 
specific pages are paged in (Reentry Rate 
Counter) both exceed certain limits the 
routine DEACTP is called to attempt to 
deactivate a partition 

• Store current time of day clock 
value 

• Return to caller if clock in error 
or not operational 

• Set start time of next interval 

• If first time through, set initial 
exponential average 

• Calculate new exponential 
average 

• Zero Reentry Rate Table and 
Reentry Rate Counter 

• If both exponential average and 
reentry rate counter (before zeroing) 

exceed certain limits, try to 



deactivate a partition 
Return to caller ^ 



DEACTIVATE A PARTITION 



B64 



If more than one virtual partition is active, this 
routine attempts to deactivate the partition with 
the lowest dispatching priority, which does not 
own the LTA. A partition which is in the process 
of being terminated is not deactivated. A partition 
which has a page queue entry with PHO enqueued 
is also not deactivated. If no virtual partition can 
be deactivated, or if a task seized the system, 

return to caller k 

All tasks of the selected partition are deactivated. 
If a task has control in a gated routine, the deacti- 
vation is delayed. If a task has a request for fetch, 
CCW translation (CCWDEACT, Chart 13.5), 
SVC44, PFIX, or GETREAL, then these routines 
are reset. Fetch is only reset when it has a page 
queue entry (RESFCH, Chart 13.5). Page Queue 
Entries for deactivated tasks are deleted. Selection 
Pool page frames of the deactivated partition are 
placed in Q00, or in Q01. The reference-bit is reset. 
The Reactivation Count (no. of page frames placed 
in QOOor Q01) is saved 

If one or more Page Queue entries have been dele- 
ted, exit is taken to DEQUXE, to continue page 
queue handling starting with the first page queue 
entry „ 



If no Page Queue entries have been deleted, return 
to caller 



<5> 

DEQUXE 



Charts 233 



Chart 13.7. Page Management f Reactivation of Partition 



(REACTC *\ 
REACTUC J 



Called by General Exit 
Routine (Chart 02.1) 



See also the section 'Partition Deactivation 
and Reactivation' 



REACTC 
REACTUC 



DETERMINE WHETHER REACTIVATION OF A 
DEACTIVATED PARTITION IS TO BE ATTEMPTED 



B68, B69 



This routine is entered when the system is about to 
enter a wait state because no program or task 
is ready to run. 

Entrance is at REACTUC (for unconditional reactivation) 
if one or more partitions are in deactivated state 
and one of the following conditions exist: 

1) There is no active virtual partition 

2) No I/O requests are queued to any PUB, or only 
requests with error or operator intervention required 
indicator or for console, CRT or TP devices. 

In other cases, entrance is at REACTC (conditional reactivation). 

• If entered for the first time, 

1) Store current time of day clock value to set 
start time for interval. If clock in error or 
not operational, exit 



2) Clear Page-In Counter for reactivation (this 
counter is maintained by the CPGIN routine, 
Chart 13.3), and exit 



• On subsequent entries: 

1) Store current time of day clock value, to 
calculate elapsed interval and to set start 
time for next interval. If clock in error or 
not operational, take one of the following 
exits: 

If no partition is in deactivated state 
If there is a partition deactivated — 



2) If elapsed time interval less than prespecified 
minimum value (MINTIME), exit 



3) If first time through set initial value of the 
exponential average 

4) Calculate new exponential average (see 
Reactivation of a Partition), using Page-In Counter 
for reactivation and clear this counter 

5) If unconditional reactivation, exit 

6) Calculate and save number of page frames 

in Selection Pool (to be used by reactivation 
routine) 

7) Exit to caller or to REACTPUC 



when: Page Manager Task active, or 

Exponential average greater than 
prespecified value (CCONST), or 
no partitions in deactivated state 
8) For other conditions, branch to REACTPC 
to attempt to reactivate, only when at least 
as many page frames are in the Selection — 
Pool, as were taken away from the Selection 
Pool when the partition was deactivated 



> 




13.8 




REACTPC 



REACTPUC 



234 DOS/VS supervisor 



Chart 13,8, Page Management , Reactivation of Partition 



v 



2.1 
13.7 



REACTPC 
REACT PUC 



REACTIVATE PARTITION 



B68 



This routine attempts to reactivate the 
deactivated partition with the highest 
dispatching priority. 

If entered at REACTPC the reactivation 
counter for the partition will be checked 
(see below). When entered at REACTPUC 
reactivation will take place without any 
checking (unconditional). 

• Identify the partition in deactivated 
state, with the highest dispatching 
priority 

• If conditional reactivation: 

Reactivation is done only when the 
number of page frames currently in 
the Selection Pool is greater or equal 
the number of page frames taken 
away from the partition (Reactivation 
Counter, set up by DEACTP routine). 
If this requirement is not met 



Increase counter of active virtual partitions. 
Decrease counter of deactivated partitions. 
Reactivate the partition by posting 
X'83' in corresponding TRT byte 



^j 



EXIT 



Charts 235 



Chart 13.9. Page Management, TFIX Routines 



See also the section TFIX Request ' 



( TFIX ) 



TFIX 



Called by 

FIXAREA (Chart 14.4) 

SVC44 

Fetch (Chart 08.1) 

SDAID 



( DTFIX ) 



TFIX A PAGE 



B44 



In register 2 a virtual address 

is passed. The page which contains 

this address is to be temporarity 



fixed. 



If the page is in real storage 
call DTFIX (Chart 13.9) to 
TFIX the page. 
1) If on return, the page is 
fixed, return to caller — 



2) If the page could not be 

TFIXedby DTFIX, take the 
action described below. 

If the page is not in real storage, 
or DTFIX could not TFIX the 
page, set up address of area to be 
TFIXed and TFIX identifier in 
TRADDR (location X'90'). This 
information is used by the ENQU 
routine to build a page queue entry. 

If the requestor is a system task, 
set up 'old PSW and call the general 
entry routine GENENT (Chart 01.1) 
to save task's status information. 
When the task is selected again, 
processing will continue with the 
next sequential instruction after the 
TFIX request. 

For other requestors, set up 'PSW, 
save 'PSW and registers in the task's 
system save area and indicate in task's 
PIB that this procedure was followed 
(P!B tested at task selection) When the 
task is selected again, processing will 
continue with the next sequential 
instruction after the TFIX request 



^ 



ENQU 



C 



DTFIX 



Return 
to Caller 



J> 



Called by 

PMR (Chart 13.2) 

TFIX (Chart 13.9) 



TFIX A PAGE WHICH IS IN REAL STORAGE 



B57 



DTFIX is called when the page to be 
TFIXed is in real storage. 

• If the page is already fixed: 

1) If the TFIX counter has readed 
the maximum value (255), enter 
a one-instruction loop. 

2) If not, add one to the TFIX 
counter and return to caller 



If the page is not yet fixed, the following 
two conditions make it impossible to 
TFIX the page in the page frame which 
currently is containing it: 

1 ) PF I X request pending for the page 
(NFF, bit 12 in PFT entry on) 

2) PFIX or GETREAL request pending 
for the page frame (NF bit, bit 15 

in PFT entry on) 

If these conditions are not present, the 
TFIX counter is set to one, the page frame 
is deleted from the selection pool, and return 
is made to caller 



If the first condition exists (NFF bit on), the 
TFIX attempt is indicated as not successful 
by returning to the address in the return 
register plus four. 

If the second condition holds (NF bit on), 
the following action is taken: 

1 ) A search is made for a page frame 
in which the page could be TFIXed, 
and with which the contents could be 
exchanged. First Q00 is searched for a 
PFT entry with the NF bit off. If such 
an entry could not be found in Q00, or 

if one is found but the corresponding page 
frame is in use, the entire PFT is searched 
for an entry with bits 12-15 zero (in 
selection pool, not failing, and above two 
conditions not posted) 

2) If such a page frame is found, 

call EXCH (Chart 13.13) to perform 
the exchange. The newly found page 
frame is removed from the selection 
pool and its TFIX counter is set to one. 
Return to caller 



If such a page frame could not be found 
indicate unsuccessful TFIX by returning 
to address in return register plus four. 



(Return to ^ 
Caller J 



236 DOS/VS Supervisor 



Chart 13.10, Page Management, TFREE Routines 



f TFREE J 



TFREE 



Called by 

CCW Transition {Chart 44.2) 

CCW Retranslation (Chart 14.3) 

SVC44 

Fetch (Chart 08.1) 

SDAID 

RESFCH (Chart 13.5) 

CORFIXIN (Chart 14.8) 



f DTFREE J 



Called by 

TFREE (Chart 13.10 



DTFREE 



TFREE A PAGE 



B44 



On entry to this routine, register 
3 contair&s the number of the 
page frame containing the page 
to be TFREEd. To decrement the 
TFIX counter, call DTFREE 
(Chart 13.10). 

• If on return from DTFREE the 
page is still fixed (TFIX counter 
± and/or PFIX counter ^0), 
return to caller. 



2) 



If both the TFIX and PFIX 
counters contain zero, additional 
action is taken to service any 
tasks waiting for freed page 
frames, for this page frame, or 
for this page: 

1) Allow tasks waiting for 
freed page frames to be 
selected by moving X'83' 
into the TRTFIX and 
TRTPFG bytes of the 
resource table TRTMASK. 
If a task is waiting for this 
page frame (IMF, bit 15 in 
PFT entry on), make the 
task selectable. If this waiting 
task is in virtual mode (there- 
fore this concerns a PFIX 
request), reset the NF bit in 
all other PFT entries for the 
corresponding real partition. 
If a task (PFIX request) is 
waiting for this page (NFF, 
bit 12 in PFT entry is on), 
get address of PFT entry of 
reserved page frame from 
FIXWTAB. Call EXCHANGE 
(Chart13.13) to exchange 
contents of page frames and 
PFIX the page in the reserved 
page frame. Post waiting task 
ready to run, unless exchange 
and PFIX have been delayed by 
the EXCHANGE routine. 



3) 



(Return to A 
Caller J 



DECREASE TFIX COUNTER 



B62 



• Reduce TFIX counter by one 

• If page is still TFIXed or 
PFIXed, return to caller 



• If page is no longer fixed, return 
the page frame to the selection 
pool 

1 ) If the request is from fetch, 
enqueue the PFT entry to the 
top of Q00 or Q01, depending 
on the status of the change bit. 
Reset the reference bit. 

2) If the request is not from fetch 
append PFT entry to the end 
of the Hold Queue 

• Indicate page no longer fixed by 
returning to address in return register 
plus four. 



(Return to ^ 
Caller J 



See also the section TREEREAL 
TFREE and PFREE Req uests' 



Charts 237 



Chart 13.11. Page Management PFIX Routines 



See also the section 'PFIX Request' 



STRTPFIX 




f DPFIX J 



DPFIX 



PFIX PAGE 



B54 



If requesting task runs in real 
mode, ignore request, branch 
to RCO 



Set up RID with requesting partition's 
PFIX TRTMASK byte displacement. 



If already a PFIX request in progress 
for this partition (part. PFIX TRTMASK 
byte=XW), post task PFIX-bound, 
and modify task's save area to force 
reissue of SVC when task is selected 
again. Exit to task selection 



If corresponding real partition= OK, no 
PFIX possible, branch to RC4 



Get from parameter list's first entry 
address and length of first area to be 
PFIXed. 



Initialize partition's FIXWTAB entry 
with TIK of requestor and clear reserved 
page frame address. 

Call RESPF1 (Chart 13.13) to check 
whether started PFIX is to be reset. 

If not, return is to this point. 



If address not in virtual partition, or 
if length is negative, call PFRLIST 
(Chart 13.14) to free pages already 
PFIXed for this request, then exit to 
RC12 



If the page containing the address 
of the area to be PFIXed is not in 
real storage, or if it is, but not in the — 
correct real partition, exit to search 
for a page frame 

Call DPFIX (Chart 13.11) to PFIX the 
page. If PFIX counter was already 255, 
cancel task 



NEXTPAGE 



If request from PFIX-restart 



Get address and length of next 
area to be PFIXed. This may be 
area specified in next entry of the 
parameter list, if the area specified 
in previous entry is completely 
PFIXed now. 

If end of parameter list reached, 
branch to RCO - 



EXIT 



I 13.1 2 1 

LOOKFPF 



Called by 
PMR (Chart 13.2) 
STRTPFIX (Chart 13.11) 
PFIXPAGE (Chart 13.12) 
EXCHANGE (Chart 13.13) 



PFIX PAGE WHICH IS IN 
CORRECT PAGE FRAME 



B58 



If page frame is still in selection 
pool (not yet TFIXed or PFIXed), 
remove it from the selection pool. 

If PFIX counter has reached the 
maximum value (255), return to 
address in return register plus four. 

Increase PFIX counter by 1 and 
reset NF bit, bit 15, in PFT entry 
(no longer PFIX request pending 
for the page frame) 



(Return to *\ 
Caller J 



RCO 
RC4 
RC8 RC12 



SET UP RETURN CODE 



B50-B52 



PFREXIT 



If entered at RCO, call RESPF1 
(Chart 13.13), to check whether 
started PFIX is to be reset. 
If not, set return code to zero 

If entered at RC4, RC8, or RC12, 
set return code to 4, 8, or 12. 

Reset Tl K byte in partition's 
FIXWTAB entry to X'OO'. 



Store return code in requestor's 
save area, and exit to task selection. 



6 



EXIT 



238 DOS/VS Supervisor 



Chart 13.12, Page Management, PFIX, Find a Page Fraire 



LOOKFPF 



I13.13I 



(PFIXPGE \ 
PFIX PAGE J 



PFIXPGE 
PFIXPAGE 



FIND A PAGE FRAME 



B51 



This routine is entered to find a page 
frame which 

1. is in the selection pool 

2. not failing 

3. in the correct real partition 
• If all page frames of the real parti- 
tion already contain PFIXed pages, 
this request can never be honoured. 
Call PFRLIST (Chart 13.14) to PFREE 
the already PFIXed pages for this 
request. Exit to RC4 (if no page frame 
of the real partition contains a PFIXed 
page now), or to RC8 (if one or more 
page frames of the real partition still 
contain PFIXed pages). 



If a page frame is not available, but 
there is not at least one page frame in the 
real partition which is not PFIXed (it 
is therefore TFIXed): 

1. post NF, bit 15, in all PFT entries of the 
real partition (PFIX pending for page 
frame) 

2. Post requesting task common wait 
(X'87'), close PFIX gate for this 
partition (X'OO' in the resource table 
TRTMASK). Set up task's system 
save area to force entrance at 
LOADRA2 when task is selected 
again. Post PIB for return to super 

visor routine . 



PFRFND 

• If a page frame is found, reserve it by 
storing it PFT entry address in partition's 
FIXWTAB entry. Post also NF, bit 15, in 
its PFT entry. 

LOADRA2 

• If to be PFIXed page is in real storage, 
call PFIXPAGE (Chart 13.12) to PFIX the 
page 

1. If PFIX was successful 



If not (page TFIXed outside real partition 
or page frame not in selection pool), post 
requesting task common wait (X'87'), close 
PFIX gate for this partition. Set up task's 
system save area to force entrance at 
NEXTPAGE (Chart 13.1 1) when task is 
selected again. Post PIB . 



If to be PFIXed page is not in real storage, 
save address and PFIX id. in TRADDR 
(location X'90'), to be used by ENQ routine 
to build page queue entry. Post requesting 
task common wait (X'87'). Close PFIX gate 
for this partition. Set up task's system save 
area to force entrance at NEXTPAGE 
(Chart 13.11) when task is selected again. 
Post PIB for return to supervisor routine. 



r=j 



EXIT 



Called by 

LOOKFPF (Chart 13.12) 

PMR (Chart 13.2) 



ATTEMPT PFIX 



B55 



113.111 

NEXTPAGE 



^ 



ENQU 



If entered at PFIXPGE, set up 

addresses of real partition's 

PFT entry boundaries and 

pointer to partition's FIXWTAB 

entry. 

Call DPIX (Chart 13.11) to PFIX 

the page immediately if, 

1. the page is already in the 
requestor's real partition 

2. the request is a PFIX-restart 
and the page is in the 
correct frame. 

After return from DP FIX, 

Return to caller. 



If the page cannot be PFIXed 
immediately: 

1. If the page is not TFIXed, 
call EXCHANGE (Chart 13.13), 
to exchange pages and PFIX 
a. If this was successful, 

return to caller _ 



If not, because the reserved 
page frame is not in the 
selection pool, indicate 
this by returning to address 
in return register plus 
four 



, If the page is TFIXed, post 
NFF, bit 12, of PFT entry of 
page frame containing the 
page (PFIX request pending 
for the page), save partition 
id. in page table entry corres- 
ponding to the page frame. 
This identifier (WID) is used 
to identify the waiting 
partition when the page 
frame becomes available. 
Return to address in return 
register plus four 



(Return to A 
Caller J 



Charts 239 



Chart 13.13. Page Management, Exchange Pages , PFIX-Restart 



( EXCHANGE j 



EXCHANGE 



Called by 

PFIXPAGE (Chart 13.12) 

TFREE (Chart 13.10) 



( EXCH J 



EXCH 



EXCHANGE CONTENTS OF 
TWO PAGE FRAMES AND PFIX 



If page frame in which the re- 
quested page is to be placed is not 
in the selection pool, save TIK for 
delayed exchange and post delayed 
exchange. This delayed exchange is 
performed when the PMR routine gets 
control). Return to caller 
Take care of proper settings of 
NFF bit (bit 12) in the two 
impacted PFT entries 
Call EXCH (Chart 13.13) to perform 
the exchange. 

Call DPFIX (Chart 13.11) to PFIX 
page. 

Return to address in return 
register plus four, to indicate 
successful exchange 



(Return to ^ 
Caller J 



Called by 
PMR (Chart 13.2) 
DTFIX (Chart 13.9) 
EXCHANGE (Chart 13.13) 



EXCHANGE PAGES 



B59 



Exchange queue pointers and page 
number entries of the PFT 
entries belonging to the two 
page frames. 

Change queue pointers of impacted 
PFT entries, other than PFT 
entries belonging to the two page 
frames. 

Exchange storage keys 
Disable DAT 

If page frame in which the 
requested page is to be placed, 
is unoccupied, set the address 
of this page frame in the page 
table entry of the requested 
page. Move contents of frame 
currently containing the page 
to the 'new' page frame. 
If page frame is which the 
requested page is to be placed, 
is occupied, exchange addresses 
in page table entries and 
exchange contents of page frames. 
Enable DAT. Purge TLB. 



ra 



STPFIXRS 



PFIX-RESTART 



Indicate PF I X-restart by 
zeroing register 0. 

If end of list reached, exit to 
task selection 



Initialize pointers to PFT entry, 

PFT extension entry and 

partition's FIXWTAB entry 

Initialize FIXWTAB entry 

with Tl K and address of PFT 

entry, indicating PFI X-restart 

in FIXWTAB 

Store saved PFIX-counter 

reduced by 1 into page frame's 

PFT entry. 

Point to next entry of the 

PFI X-restart parameter 

list 



(Return to A 
Caller J 

f RESPF1 J 



RESPF1 



f 
I 02.1 



Called by 

STRTPFIX (Chart 13.11) 

RCO (Chart 13.11) 



CHECK FOR RESETTING OF PFIX 



B56 



If partition is not deactivated 
(partition's load leveler TRTMASK 

byte=X'83') f return to caller 

Call PFRLIST (Chart 13.14) to 
PFREE pages already PFIXed 
for this request 
Modify instruction address 
in requesting task's saved 
PSW to force task to reissue 
SVC when selected again. 



i 02.1 



C 



Return to 
Caller 



J 



I 13.12 J 



LOADRA2 



EXIT 



240 DOS/VS Supervisor 



Chart 13.14, Page Management, PFREE Routines 



Entry point 
from BTAM 
Channel 
Appendage 



STARTPFR 



( BTPFREE J 



( PFRLIST J 



Called by 
STRTPFIX 
(Chart 13.11) 
LOOKFPF 
(Chart 13.12) 
RESPF1 
(Chart 13.13) 



f DPFREE J 



Called by 

STARTPFR (Chart 13.14) 



PFREE PAGES 



If task runs in real mode, set 
return code to zero 



Identify normal PFREE request. 

If entered at PFRLIST, save 
ending parameters (only entered 
at PFRLIST if PF IX request 
handling was terminated and 
already PFIXed pages have to 
bePFREEd again). 
Get from first entry in parameter 
list the address and length of 
. first area to bePFREEd. 
If end of list reached 

1. If normal PFREE request, 
not for BTAM, set up return code 

2. Normal PFREE for BTAM 
(entered at BTPFFREE) 

3. If entered at PFRLIST, return 
to caller 



If parameters equal to ending 

parameters (only if entered at 

PFRLIST), return to caller 

If address of area to be PFREEd 

outside real partition, or length 

negative, set return code 12 

If page not in real storage, set 

up parameters for next page 

to be PFREEd. 

Call DPFREE (Chart 13.14) to 

PFREE this page. 

If the PF IX counter has become 

zero as result of this PFREE, 

and the page is not TFIXed 

1. Allow tasks waiting for 
freed page frames to be 
selected, by moving X'83' 
into TRTFIX and TRTPFG in 
resource table TRTMASK. 

2. If NF, bit 15 in page frame's 
PFT entry is posted (PFIX or 
GETREAL request pending for 
the page frame), reserve the 
page frame by saving its PFT 
entry address in partition's 
FIXWTAB entry. Post the task 
waiting for the page frame 
ready to run. Reset the NF 

bit in all other PFT entries 

for the real partition 
Set up parameters for next 
page to be PFREEd. 




DECREASE PFIX COUNTER 



If PFIX counter is zero for 
this page frame, return to 
caller 



Reduce PFIX counter by 1 
If PFIX counter not equal to 
zero, return to caller 
If PFIX counter is equal to 
zero, indicate page not 
PFIXed any more as a result 
of this PFREE by returning to 
address in return register plus 
four. If page also not TFIXed, 
add page frame to selection 
pool and append it to the end 
of the Hold Queue 




(Return \ 
to Caller ) 



See also the section 'FREEREAL 
TFREE and PFREE Requests ' 



Charts 241 



Chart 13.15. Page Management, PAGEIN Routine 



f RELPAG J 



RELPAG 



>SetSVCID toC'R' 



f FCEPGOUT J 



PAGEOUT 



►Set SVCID to CO' 



BEGIN 



PROCESS RELPAG OR FCEPGOUT REQUEST 



B73 



• Set user specified area addresses to addresses of first fully 
contained page and page following the last fully contained 
page. Bit 6 of the return code is set for a negative area 
length specification encountered by the routine. 

Process all fully contained pages, one after 
the other: 

• If the page is outside the address range of the requesting 
program's partition, bit 5 of the return code is set. 

• If the page is found to be fixed, bit 4 of the return code 
is set. 

• If the page is found to have an entry in PGQU, bit 4 of the 
return code is set. 

• A successfully processed page that was in storage is 
enqueued at the beginning of 

Q00 for a RELPAG request (with bit 13 of the page 

table entry set to 1) and for an FCEPGOUT request 
if the page's change bit was (with the page frame's 
reference bit set to 1). 

Q01 for an FCEPGOUT request if the page's change bit 
was 1 (with the page frame's reference bit set to 1), 



( Return to Caller 1 



i 



242 DOS/VS supervisor 



Chart 13.16, Page Management, RELFAG and FCEPGOUT Routines 



SVPGIN 



( PAGEIN J 



CHECK THE REQUEST 



B75 



On entry, register 1 points to a list of area specifications and 
register to an ECB if this was specified. 

If request is issued by a program running in real mode, if 
the list of areas to be paged in is not completely contained 
in the requesting program's partition, if the table PAGETAB 
is full, if the (optional) ECB address is outside the 
requesting program's partition, then post the ECB, if 
correctly specified, and 



• Store the request in table PAGETAB. 

• If the PAGEIN task is active, then — 

• Activate the PAGEIN task. 



PGINIT 



Q 



Return to Caller 



d 



PROCESS THE REQUEST 



B75 



NEXTENTR 

Process all pages requested, one after the other: 

• For a page in real storage and fixed -- ignore the request 
for that page. Not fixed -- set the page's reference bit 
to and add the. associated page frame to the end of 
queue HQ. 



For a page not in real storage 



For a page outside the requesting program's partition 
or for a negative length specification, post the (optional) 
ECB and ignore the request for the page or area, 
respectively. 



QJ7) 

ENQU 



( Return to Caller J 



Charts 243 



Chart 13.17. Page Management, GETFEAL Routines 



See also the section GETREAL Request ' 



SVGREAL 



C 



GETREAL2 



Called by 
SVGREAL 



GETREAL FOR PDAID/SDAID 



B40 



If not issued by SDAID or PDAID, 
cancel issuer 



If already a GETREAL request 
in progress, if PDAID alternate 
area or SDAID buffer area already 
exists, exit to task selection 



Post GETREAL in progress for 

SDAID or PDAiD. 

Set up for GETREAL of requested 

number of page frames (or of 

available number of page frames, 

if the latter number is less than 

the requested number). 

If request is for zero page frames, 

or if no page frames available, 

set up return registers for user, 

exit to task selection 



Set up parameters for GETREAL2 

routine, store PIK in first entry 

of FIXWTAB 

Call GETREAL2 (Chart 13.15) 

to claim the page frames from 

the page pool 

Reset PIK in FIXWTAB first 

entry to X'OO'. 

Update address of SDAID or 

PDAID area in the boundary 

box. Also update the boundary 

box entry for number of page 

frames in main page pool. 

(This is, however, not done 

when the GETREAL could 

not be performed, because 

the first requested page frame 

is failing). 

If a requested page frame, 

not the first, is failing save 

the size of real storage that 

could not be GETREALed 

because of this (to be used 

by FREEREAL routines). 

Set up return registers for 

user. Reset GETREAL in 

progress for SDAID or PDAID 

indicator. 



I 02.1 



EXIT 



J f GETREAL J 



GETREAL 



Called by 
CLEARPAR 
(Chart 13.18) 



RESERVE PAGE FRAMES 



B42 



GETREAL2 



SetupTIK in partition's 
FIXWTAB entry 
I 

Post NF, bit 15 in PFT entries of all 
requested page frames (GETREAL 
request pending for page. 
If any of the requested page 
frames is TFIXed, post requestor 
common bound (X'87'), set up task's 
system save area to force entrance 
at BRTRWAIT+4 when task is 
selected again. Post CSV RET in 
PIB to indicate this procedure. 
Exit to task selection . 



(When entered at BRTRWAIT+4, 
the page frames are again tested 
for being TFIXed. If so, the same 
procedure is followed. A loop 
results until this task can pro- 
ceed when none of the requested 
page frames is TFIXed). 

LDRADDR 

• Store address of first (or subsequent) 
requested page frame in TRADDR 
(location X'90') and indicate GETREAL 
request. (This information is used by 
the ENQ routine to build a page queue 
entry). Point to next page frame. Set 
up task's system save area to force en- 
trance at LDRADDR when this task 
is selected again. (Then the next page 
frame can be handled, after this page 
frame is GETREALed by the PMGR 
system task). Post CSV RET in PIB 
to indicate this procedure. (Post 
also CINITSVC and close gate to 
SVC58 routine if the caller was 
CLEARPAR, RID=X71'). 

Branch to enqueue request . 



If finished, reset high order bit 
(invalid address space bit) in 
the corresponding page table 
entries, and 

1. return to caller if request 
came via SVC55 (SVGREAL) 

2. reset TIK entry in partition's 
FIXWTAB entry to X'00' and 
return to caller 



If one of the page frames is found to 
be failing (DRAP bit on), reset NF bit 
for this and following requested 
page frames. For page frames that 
were GETREALed, take action 
described in above item. If request 
was issued by CLEARPAR, return to 
caller via address return reg. plus four 



I 



( Return to Caller J 



244 DOS/VS Supervisor 



Chart 13.18. Page Management, Initialize Partition, Initialize Page Table Entries 




05.2 



CLEARPAR 



C 



INVPAGE1 



INITIALIZE PARTITION 



B48 



If key of issuing task is not zero, 

cancel task. 

If next job is to execute in virtua] 

mode: 

1. Fill in entry in partition communica- 
tions region for uppermost byte 
available to problem program. 

2. Set up PSW instruction address 
in save area. 

3. Call INVPAGE1 (Chart 13.16) to 
initialize page table and page 
frame table entries except parti- 
tion's first page table entry. 

4. Clear first page of partition after 
save area. 

5. Exit to task selection 



If next job is to execute in real mode: 

1. PostRID=X71' 

2. If gate to SVC58 routine closed 
(SVC58 TRTMASK byte + X'83'), 
post task SVC58 resource bound (X71' 
in PIB). Modify PSW address in save 
area to force task to reissue SVC 

when selected next time 



3. Set address or reaj save area in 
PIB. 

4. More virtual save area to work- 
area RESA2 and perform actions 
described in 1., 2. and 3. for virtual 
mode. (The copy of the save area 
is updated and all page table 
entries for the partition are initia- 
lized). 

5. Post real mode in PIB. Reduce 
entry in SYSCOM for number of 
active virtual partitions by one. 

6. Call GETREAL (Chart 13.15) to 
claim required page frames. 

7. If GETREAL successful, move 
copied save area to patition 

and exit to task selection 



8. If a page frame is found to be 
failing (DRAP bit on), the job is 
cancelled after the following action 
is taken — - — 



If not f[rst page frame failing, 
move save area to rea] partition 
change uppermost byte available 
entry in SYSCOM 
If f[rst page frame failing, call 
INVPAGE1 (Chart 13.16) to initialize 
first page of partition. Post virtual 
mode in PIB. Move copied save area 
to virtual patition. Update upper- 
most byte available entry in 
SYSCOM 




J 



Called by 
CLEARPAR 
(Chart 13.18) 



INVPAGE 



INITIALIZE PAGE TABLE ENTRIES 



B49 



If key of issuing task is no zero, 
cancel task 



• Load parameters from user save 
area to registers 3-5. 

INVPAGE1 

R3 points to the first and R4 to the 
last page table entry to be initialized 
R5 contains in its two low order bytes 
the contents of an initialized page 
table entry 

• Each page table entry is initialized 
with the contents if the two low 
order bytes of R5. Purge TLB 

• If, before initializing a page table 
entry, it is found that the page 

is in real storage (while the 
invalid address space bit, bit 0, 
is not on): 

1. set storage key of page frame 
containing the page to X'00'. 

2. Set PFT entry of page frame 
to unused and add it to 

the selection pool. 

3. Remove PFT entry from its 
queue (if it is on a queue) 
and add it to the top of 
Q00. Zero PFIX counter 

• If entered from CLEARPAR 
(SVC58), return to caller 

• If entered from from SVC59, 
exit to task selection. 




f 

02.1 



EXIT 




ERR21 



(Return to ^ 
Caller ) 



Charts 245 



Chart 13.19. Page Management , FREEREAL Routines 




05.2 



See also the section ' FREEREAL 
TFREE and PFREE Requests ' 



SVFREAL 



FREEREAL PAGE FRAMES 



B43 



If the request is from PDAID orSDAID: 

1. If GETREAL in progress for PDAID/SDAID, or if no 
PDAID alternate or SDAID buffer area exists, exit to 
task selection 



2. Update the entries in the boundary box for 
address of PDAID/SDAID area and number of 
page frames in main page pool. 

3. Set up parameters for DFREER routine. 

If the request is from a user task, but not PDAID or 
SDAID, increase by one the entry in SYSCOM for the 
number of active virtual partitions. 
Free the specified page frames one by one by 
calling DFREER (Chart 13.19) for each page frame. 
Allow tasks waiting for freed page frames to be 
selected by moving X'83' into the TRTFIX and 
TRTPFG bytes of the resource table TRTMASK 



O 1 



EXIT 



I 



C DFREER J 



Called by 

SVFREAL (Chart 13.17) 



DFREER 



RETURN PAGE FRAME TO SELECTION POOL 



B63 



On entry register 2 points to the page frame which is 

tobeFREEREALed. 

Clear address bits in page table entry corresponding to the 

page frame and insert page frame's storage key in this 

page table entry. Set invalid address space bit, bit 0, 

to one. 

Set storage key of page frame to zero. 

If page frame is failing, reset bit 13 in corresponding page 

table entry. 

If page frame is not failing, set in PFT entry the page 

number to X'FFFF' and reset SP and NF bits (page 

frame in selection pool, no PFIX or GETREAL request 

pending for it). Insert PFT entry at top of Q00. 



(Return to A 
Caller J 



246 DOS/VS Supervisor 



Chart 14.1. Channel Program Translation, General Routine 



See also the section 'Channel Program Translation' 



f CCWTRANS A 
I CCWTRBT2/ 



CCWTRANS 
CCWTRBT2 



Called by 

Channel Scheduler (Chart 06.3) 

I/O Interrupt Handler (Chart 06.1) 



CHANNEL PROGRAM TRANSLATION 



B14, B19 



Build a real channel program for an I/O request from a program 
running in virtual mode. The real CCB and channel program is 
built in copy blocks located in the supervisor. The real channel 
program preserves the structure of the virtual mode channel pro- 
gram, with the exception that TIC commands may be inserted 
and that IDALS (Indirect Data Address lists) are build for I/O areas 
which cross page boundaries. All virtual addresses in the original 
program are translated to the correct real addresses in the copied 
program, and any pages containing data areas are TFIXed in real 
storage. 

• If entered at CCWTRANS the Translation Control Block 
(CCWTCB) of the requesting task is initialized and enqueued 
to the queue of used Translation Control Blocks. The PIK 
(or TIK, if AP) and registers 2-15 of requestor are saved in 
the TCB. 

• If entered CCWTRBT2 (for BTAM channel appendage I/O 
request), initialize the BTAM TCB. Requestor's PIK (or TIK, 
if AP) and registers 2-15 are saved in the TCB. 

CCWTRB1 

• Initialize in TCB the pointers to the 'status modifier command' 
and 'control command with data' lists for the device for which 
the I/O is requested (only if the device supports such commands). 

• If the device is not supported, dequeue the TCB from the queue 
of used TCBs. Allow tasks waiting for channel program transla- 
tion to be selected by moving X'83' into TRTCCW TRTMASK 
byte (only if no channel program translation is in progress). 

Exit to cancel task. 

CCWTR00 

• If BTAM channel appendage I/O request, release all associated 
CCW copy blocks and I DAL blocks by enqueuemg than to the 
free copy block queue. Allow tasks waiting for copy blocks to 
be selected by moving X'83' into TRTBUF resource table byte. 
Set up number of required additional copy blocks in TCB, and 
pointer to first virtual CCW in copied CCB. 

• If request comes from BTAM (not appendage) set up number 
of required additional copy blocks in TCB. 

CCWREST 

• If not BTAM Channel appendage I/O request, call GETBLOCK 
(Chart 14.3) to get a copy block for the CCB. Enqueue the 
block to the CCB copy block queue. Initialize the CCB copy 
block and copy the virtual CCB into it. 

CCWTR02 

• If user provided a sense CCW, copy it to the CCB copy block and 
call TESTIDAL (Chart 14.4) to translate data address and TFIX 
data area or build Indirect Data Address list (I DAL). 



14.2 
CCWTR1 



03.1 
ERR11 



Charts 247 



Chart 14.2. Channel Prograir Translation, General Routine 




CCWTR1 



CCWTR2 




CHANNEL PROGRAM TRANSLATION 



B15 



Call GETBLOCK (Chart 14.3) to claim a copy block and initialize 
it as a CCW copy block. Set CCW address in copied CCB to point 
to this CCW copy block. 

Call GETCCW (Chart 14.3) to copy first or subsequent CCW from 
virtual to real location. 

If a TIC command was copied, call LOCATE (Chart 14.5) to calcu- 
late the address of the copy location for the virtual CCW the TIC 
is pointing to. Insert the returned address in the TIC's data address 
and continue at CCWTR5. 



If no data or command chaining specified in this CCW, branch to 
terminate CCW translation. 



Set up pointers to next sequential virtual CCW and next sequential 
copy location. 

If previously handled command was status modifier command with 
command chaining (posted in TCB flag by GETCCW); branch to 
handle this situation. 



If the next copy location is free, branch to handle next virtual CCW. 
(These are either next sequential, or the CCW pointed to by TIC and 
corresponding copy location determined by LOCATE, if last command 
was a TIC command) 

If n_qt end of CCW copy block reached (end of line) 

(End of copy block reached) 
Change block end indication to TIC. Call LOCATE 1 (Chart 14.5) to 
get next CCW copy block and pointer to its first copy location. 

If new copy location is already occupied, set its address in the previous 
end of block TIC, and exit 



(If the CCW in the new copy location is a TIC, the address pointed to 
by this TIC command is set in the previous end of block TIC. The TIC 
in the new copy location therefore will be a dummy command) 
If the new copy location is free, call GETCCW (Chart 14.3) to copy 
virtual CCW to copy location. 

If a TIC command was copied (into first copy block location), call 
LOCATE (Chart 14.5) to calculate the address of the copy location 
for the virtual CCW the TIC is pointing to. The returned address is 
jiot inserted in the TIC just copied, but in the previous end of block 
TIC. The TIC just copied therefore will be a dummy command. Con- 
tinue to check the status of the next copy location (address returned 
b7"LOCATE). 

If the command copied is not a TIC, set the address of its copy locat- 
ion in the previous end of block TIC, and continue to check for data 
or command chaining 



> 



> 




14.6 
CCWTR16 



I 




14.7 
CCWTR10 



248 DOS/VS Supervisor 



Chart 14.3. Channel Program Translation, Subroutines 



f GETBLOCK J 



GETBLOCK 



Called by 

CCWTRANS 

TESTIDAL 

FIXAREA 

CCWTR1 

LOCATE 

CCWTR19 

CBUF 



(Chart 14.1) 
(Chart 14.4) 
(Chart 14.4) 
(Chart 14.2) 
(Chart 14.5) 
(Chart 14.7) 
(Chart 14.11) 



GET A COPY OR IDAL BLOCK 



B26 



Dequeue the first block from the 
free copy block queue and clear 
the block. 

If the request is from BTAM, but 
not for a CCB copy block, increase 
by one the entry in the (copied) 
CCB for the number of used copy 
blocks. 

If the request is from BTAM channel 
appendage, reduce by one the entry 
in the TCB for the required number 
of additional copy blocks 

Return to caller, unless no block 

could be claimed because the free 
copy block queue is empty 
If free copy block queue is empty: 
1. If at least one completed CCW 
translation request exists, post 
the task copy block bound (X'75' 
in PIB), post resource not avail- 
able (XW in TRTBUF). Set up 
task's system save area to force 
entrance at GETBLOCK when 
the task is selected next time. 
Post CSV RET in PIB to indicate 
this procedure. 



The same action is taken when 
there is no completed CCW trans- 
lation request, but there are other 
translation requests in progress 
and this request is for a CCB 
copy block 



If there are no other CCW trans- 
lation requests in progress or 
completed, this request can never 
be satisfied. Call CORFIXIN 
(Chart 14.8) to correct TFIX in- 
formation, and RELALL (Chart 
14.8) to release all copy blocks 
and TFREE I/O areas. Dequeue 
TCB from queue of used TCBs. 
Exit to cancel task 



If the conditions stated in item 
2 apply, but the request is not 
for a CCB copy block, call 
CORFIXIN (Chart 14.8) to correct 
TFIX information, and SETBACK 
(Chart 14.8) to reset the translation 
request. Post task CCW translation 
bound (X'7B' in PIB) and post 
resource not available (X'OO' in 
TRTCCW). Exit to task selection. 





02.1 
EXIT 



EXIT 



03.1 
ERR12 




C 



Return 
Caller 



f GETCCW J 



D 



GETCCW 



Called by 

CCWTR1 (Chart 14.2) 

CCWTR16 (Chart 14.6) 



COPY CCW 



B19 



Copy the CCW, pointed to by register 
6 to the copy location pointed to 
by register 5. 

If the CCW is a TIC, set up standard 
TIC command code, clear unused part 
of CCW and indicate TIC command by 
returning to address in return 
register (for all other commands return 
will be to this address plus four) 
If the command code is invalid and 
data chaining was not specified by 
previous CCW, return to caller 



If data chaining was not specified 
by previous CCW, the command code 
is inspected to post special conditions 
in the Translation Control Block flag 
byte 

1. If it is a control command without 
data area, set dummy real data add- 
ress and return to caller 



2. Condition posted in TCB flag byte 

are: 

Read/Sense command, 

Read Backward command, 

Status Modifier command with 

chaining. 
Call TESTIDAL (Chart 14.4) to trans- 
late data address and TFIX data area 
or build IDAL. 

If data chaining specified in CCW, post 
it in TCB flag and exit to caller 



» If status modifier command indicated 

in TCB flag and command chaining in 

CCW, post this in TCB flag. 
» Reset other TCB flag bits (data chaining 

read, sense, read backward, status mod. 

with data chaining) 



(Return to A 
Caller J 



Charts 249 



Chart 14,4. Channel Program Translation, Euild IDAL, TFIX Data Area 



( FIXAREA J 



Called by 
CCWTR19 
(Chart 14.7) 



f TESTIDAL J 



TESTIDAL 



Called by 

CCWTRANS (Chart 14.1) 

GETCCW (Chart 14.3) 



BUILD IDAL IF REQUIRED 



B21 



If the CCW is a READ or SENSE with the skip bit on, reset 
IDAL bit in CCW and store a dummy real data address in 
CCW. Return to caller 



Return to caller if count in CCW is zero 

If count in CCW is not less than 32K, call RELALL (Chart 
14.8) to release all copy blocks and TFREE I/O areas. Dequeue 
TCB from queue of used TCBs. Exit to cancel task 



If data area does not cross page boundary and user has not 
provided an IDAL, branch to FIXAREA to translate the data 
address and TFIX the data area. 



If IDAL is to be created or copied: 

1. If no IDAL block is available, or if there are not enough 
Indirect Data Address Word locations available in the current 
IDAL block, call GETBLOCK (Chart 14.3) to claim a new 
block and enqueue the block to the IDAL block queue. 

2. If the IDAL is supplied by the user, copy it to the appro- 
priate I DAW locations in the current IDAL block. 

Return to caller 



3. If IDAL not supplied by user, build one. The virtual 
addresses of the begin of the data area and the page 
boundary crossings are placed in the appropriate I DAW 
locations in the current IDAL block. (Page boundary 
crossings minus one in case of read backward command). 
The address of the IDAL is set in the CCW and the IDA 
bit in the CCW is posted. Return to caller 



FIXAREA 



2 




I 



TFIX DATA AREA 



B23 



On entry register 5 points to a CCW or Indirect Data Address Word 
containing the (virtual) address of the area to be TFIXed. Before 
returning to caller this address is replaced by the corresponding 
real address. 

• If the page containing the passed address is in real storage: 

1. If the real address is equal to the virtual address, or if 

the request is from BTAM, or if this page is already TFIXed 
for this I/O request, return to caller 

2. Otherwise, call TFIX (chart 13.9) to TFIX the page and 
indicate that this page is TFIXed for this I/O request. 

The same action as described in the above item 2 is taken when 
the page is not in real storage. 

Note: 

• For a number of error conditions, such as real address beyond 
real storage or not in correct partition, a dummy real address 
is used and TFIX is not called. 

• A bit string in the CCB copy block (CCBXINF) is used to 
indicate whether pages are TFIXed for current I/O request or 
not. (One to one correspondence between bits and page frames). 
It may be necessary to call GETBLOCK (Chart 14.3) one or more 
times to obtain additional Fix blocks if page frames beyond 

384 K are involved. 



(Return to ^\ 
Caller J 



250 DCS/VS Supervisor 



Chart 14.5. Channel Prograir Translation, LOCATE Routine 



f LOCATE ~^\ 
\^ LOCATE 1 J 



LOCATE 
LOCATE 1 



Called by 

CCWTR1 (Chart 14.2) 

CCWTR10 (Chart 14.7) 



FIND ADDRESS OF COPY LOCATION 



The virtual address of a CCW is passed to this routine 
in register 6. This routine determines the correct copy 
location for this CCW, respective to the locations of 
already copied CCWs. (CCWs are copied in the order 
of increasing virtual addresses). If necessary, GETBLOCK 
(Chart 14.3) is called to claim a block to be used as a 
new CCW copy block. The address of the copy location 
is returned in register 5. See the section 'Channel Pro- 
grams Containing TIC commands' in 'Copying and 
Translating Channel Programs'. 

This routine is entered at LOCATE 1 when it is known 
that the next copy location will be the first copy lo- 
cation of the next (to be created) CCW copy block 
in the queue. 

The queue of CCW blocks for this I/O request is searched 
for a block for which the following applies. The virtual 
storage location of the first copied CCW in the block (VBA) 
is below the virtual storage location passed to this routine 
(VA). Also the offset of the passed address (VA) from 
VBA is less than 7 CCWs (VA-VBA <56). If such a CCW 
copy block is found, the copy location in the block can be 
specified. The offset of the copy location from the begin 
of the copy block will be the same as the offset of the 
passed virtual address from VBA (copy location - start 



CCW copy block =VA - VBA). Return to caller 

• If such a CCW Copy block cannot be found, a new block 
is to be claimed and enqueued. It is enqueued to the begin 
of the queue, or the end, or somewhere in the middle, 
depending on the passed virtual address. (The order of 
virtual addresses of CCWs is to be preserved). The copy 
location within the new CCW copy block is determined 
as follows: 

1. If the passed virtual address is less than 14 CCW's above 
the virtual CCW corresponding to the first copy location 
of the next lower block (if any), VA< VBA ( + 112, this 
offset minus 56 determines the copy location. In this 
case the new CCW Copy block may become a short block 

2. If the passed virtual address is less than 8 CCWs below 
the virtual CCW corresponding to the first copy location 
of the next higher block (if any), VA > VBA h - 56, 
56 minus this offset gives the appropriate copy location 

3. If the above is not possible, the first copy location in 
the new CCW copy block is chosen. 



B22 



(Return to A 
Caller ) 



Charts 251 



Chart 14.6. Channel Prograrr Translation, Status Modifier Ccirmand 



14.2 

V 



CCWTR16 



HANDLE STATUS MODIFIER COMMAND 



This routine is entered when the command previously copied 
is a status modifier command. If the next CCW copied is a 
TIC, the copy location of this TIC is enqueued to the chain 
of TICs following status modifier commands, which will be 
handled later. 

If however the status modifier command occupies the seventh 
copy location in the copy block, the ninth location is en- 
queued to the end of block chain, which will be handled 
later. The next CCW is not copied by this routine. 
• If the next copy location (after the copied status modifier 
command) is already occupied, return to continue with 
the second virtual CCW and second copy location after 
the status modifier CCW and its copy location 



• If the status modifier command was copied to the last 
(seventh) copy location of a copy block, enqueue the 
ninth location to the end of block chain. Return to 
continue with handling the end of block condition 

• If the next copy location after the copied status modifier 
command is free, call GETCCW (Chart 14.3) to copy 
next virtual CCW to next copy location. 

1. If the copied CCW is not a TIC, return to continue 
with the following virtual CCW and the following 
copy location 

2. If the copied CCW is a TIC, the copy location of this 
TIC is enqueued to the chain of TICs after status 
modifier commands. Then exit is taken as in item 1. 





i 



252 DOS/VS Supervisor 



Chart 14,7. Channel Program Translation, Handle TIC and Block End Chains , and IDALs 




14.2 



CCWTR10 



HANDLE TIC AND BLOCK END CHAINS 



B15 



If the queue of copy locations containing TIC commands 
after status modifier commands contains any entries, de- 
queue the first entry. Call LOCATE (Chart 14.5) to de- 
termine the address of the copy location corresponding to 
the virtual CCW pointed to by the TIC. Insert the returned 
address in the data part of the copied TIC. Exit to con- 
tinue with handling the virtual CCW the TIC is pointing 
to, and the corresponding copy location. ■ 
If the block end queue does not contain any entries, exit 
to check whether any Indirect Data Address words are to be 

translated and I/O areas to be TFIXed 

Dequeue the first entry of the block -end queue. Call 
LOCATE (Chart 14.5) to determine the correct copy location 
this TIC should point to. Return to handle this copy location 
and to set its address in the TIC. 




CCWTR19 



CCWTR7 




14.2 
CCWTR5 



TERMINATE CHANNEL PROGRAM TRANSLATION 



B17 



• If any I DAL blocks are enqueued, call for each Indirect Data 
Address Word in turn the routine FIXAREA (Chart 14.4) 

to translate the virtual address in the I DAW, and to TFIX 
the page containing the address. 

• If the request is from BTAM: 

1. Claim and enqueue the required additional copy blocks. 
GETBLOCK (Chart 14.3) is called for each required 
additional copy block. 

2. If the request is from BTAM channel appendage, return 

to caller (I/O Interrupt Handler) 

• Post translation complete, and if any pages were TFIXed 
as a result of this translation, add 1 to the count of trans- 
lations with TFIXed pages. 

• If no channel queue entry is available, post PIB channel 
queue bound (X'79' in PIB), post resource not available 
(X'OO' in TRTCHQ byte). Set up task's system save area 
to force entrance at this point (to test for available 
channel queue entry again) when the task is selected next 
time. Post CSV RET in PIB to indicate that this procedure 

is followed. Exit to task selection 



• Dequeue the TCB from the queue of used TCBs. If no 
other channel program translation is in progress, allow 
tasks waiting for channel program translation to be selected 
(X'83' into TRTCCW). Return to caller (Channel Sche- 
duler) 




02.1 
EXIT 



(Return to ^ 
Caller J 



Charts 253 



Chart 14,8. Channel Program Translation, Subroutines 



f CORFIXIN J c . 
> . / n. 



CORFIXIN 



Called by 

GETBLOCK 

CCWRSVC 



(Chart 14.3) 
(Chart 14.10) 



ENSURE CORRECT FIXINFORMATION B27 



Under certain circumstances the TFIX 
information in the CCB copy block and 
additional FIX information blocks (if 
any) may not correctly reflect the status 
of the last TFIXed page (if any). In such 
cases this routine is called to TFREE the 
last TFIXed page and to reset the corres- 
ponding FIX information bit. 

• Return to caller immediately when one 
of the following conditions exists: 

1. Task ready to run (TFIX info correct) 

2. No CCB copy block enqueued for 
this request. 

3. Request for BTAM 

4. No TFIX was performed for this re- 
quest 

• Get real address of TFIXed page. 

If page not in real storage enter hard 
wait state 



Call TFREE (Chart 13.10) to TFREE 
the page. 

Reset the corresponding FIX information 
bit. If this bit is located in a FIX informa- 
tion block which does not exist, return to 
caller without resetting. 



(Return to A ( 

Caller J \^ 



Hard 
Wait 



( RELALL J 



RELALL 



Called by 

GETBLOCK (Chart 14.3) 

CCWRSVC (Chart 14.10) 

TESTIDAL (Chart 14.4) 



RELEASE BLOCK, TFREE PAGES 



B27 



This routine releases CCB copy, CCW 
copy, I DAL and FIX information blocks 
in use for a translation request. Pages 
TFIXed for this request are TFREEd. 
• If no CCB copy block enqueued for 
this request, return to caller 



Dequeue CCB copy blocks from the 
queue of used CCB copy blocks 
Use FIX information in CCB copy 
block and any additional FIX infor- 
mation blocks to determine which 
pages were TFIXed for this request. 
Call TFREE (Chart 13.10) for each 
TFIXed page and reset corresponding 
FIX information bit. 
Release CCW copy blocks, I DAL 
blocks, FIX information blocks, and 
CCB copy block for this request and 
enqueue them to the free copy block 
queue 

Allow any tasks waiting for copy blocks 
to be selected by posting TRTBUF to 
X'83\ 



I 



)r Keturn to ^ 
I Caller J 



f SETBACK J 



SETBACK 



Called by 

GETBLOCK (Chart 14.3) 

CCWRSVC (Chart 14.10) 

CCWDEACT (Chart 13.5) 



RESET CCW TRANSLATION REQUEST B28 



• If no CCB enqueued for this request, return 

• Set up user task's system save area to force 
entrance at CCWREST (Chart 14.1) when 
the task is selected next time 

• Call RELALL (Chart 14.8) to release blocks 
and TFREE pages 

• Initialize TCB for restart 



(Return to A 
Caller ) 



254 DOS/VS Supervisor 



Chart 14.9. Channel Prograir Retranslaticn 



See also the section 'Processing after completion of an 
I/O Request 



( CSWTRANS J 



Called by 

I/O Interrupt Handler (Chart 06.2) 



CSWTRANS 



RETRANSLATE, COPY CCB, RELEASE BLOCKS 



B28 



If the copied CCB contains a (real) address in its location 
13 (CCW address in CSW), and no channel appendage rou- 
tine is present, calculate the virtual address corresponding 
to the real address and replace the real address by the virtual 
address. 

If any pages were TFIXed for this request, decrease the 
count of completed CCW translations with TFIXed pages 
by 1. Use FIX information in CCB copy block and any 
additional FIX information blocks to determine which 
pages were TFIXed for this request. Call TFREE (Chart 
13.10) for each TFIXed page and reset corresponding FIX 
information bit. 

Release CCW copy blocks, I DAL blocks and FIX information 
blocks for this request and enqueue them to the free copy 
block queue. 

Allow any tasks waiting for cupy blocks to be selected by 
posting X'83' in TRTBUF, 

If virtual CCB is in real storage, and emulator ECB is not 
to be posted, move significant parts of the copied CCB 
to the virtual CCB, release the CCB copy block and en- 
queue it to the free copy block queue. 

If virtual CCB is not in real storage, post PIB to indicate 
that copying of CCB and release of CCB copy block is to 
be done at a later stage (when the task is selected next 
time, as is also the case when the emulator ECB is to be 
posted). 

Allow tasks waiting for channel program translation to 
be selected by moving X'83' into TRTCCW. 
If no page frames have become available for TFIX as 
result of TFREEing by this routine, and if the count of 
completed translation with TFIXed pages is zero, whMe 
t^^A3^JI)l3h\D£lQlJP^9§^lPJJ}§li an attempt is made to 
make page frames available by resetting a task. The rou- 
tine CCWRSVC (Chart 14.10) is called for this function 
Return to caller 



(Return to ^ 
Caller J 



Charts 255 



Chart 14.10. Channel Prograir Translation, Reset cr Cancel 



( CCWRSVC ) 



CCWRSVC 



Called by 

DEQUX (Chart 13.4) 

CSWTRANS (Chart 14.9) 



RESET OR CANCEL CCW TRANSLATION 



629 



This routine is called to make page frames available by 
resetting (or canceling ) a pending CCW translation which 
has pages TFIXed. It is called when TRTFIX = X'00' 
and there are no cojripjeted CCW translations with TFIXed 
pages. 
"% Scan the queue of used TCBs for a translation in progress 
with TFIXed pages 
• If none found, return to caller 



• If the CCW translation found is the only_ pending CCW 
translation, and no pages are TFIXed by SVC44 or 
SDAID: 

1. delete task's entry in page queue (if any) 

2. call CORFIXIN (Chart 14.8) to correct the FIX 
information of the translation request. 

3. call RELALL (Chart 14.8) to release all CCB copy, 
CCW copy, I DAL and FIX information blocks of the 
request and to TFREE any pages TFIXed for the 
request. 

4. Modify task's system save area to force task to be 
canceled (page pool too small) when selected next 
time. Post task ready to run. 

5. Return to caller 



• If the CCW translation found is not the only pending 
CCW translation, or if it is, but there are also pages 
TFIXed by SVC44 or SDAID, the task is not canceled: 

1. delete task's entry in page queue (if any) 

2. call CORFIXIN (Chart 14.8) to correct the FIX 
information of the translation request. 

3. call SETBACK (Chart 14.8) to reset the CCW trans- 
lation 

4. post task waiting for freeing of page frames (X'6D' 
in PIB), and post resource not available (X'00' in 
TRTPFG) 

5. if page frames have become available, as a result 
of resetting this CCW translation request (TRTFIX 

± X'00'), return to caller 



6. if not, continue the scan of the queue of used TCBs 



Return to 
Caller 



I 



256 DOS/VS Supervisor 



Chart 14.11. Channel Program Translation, SVC 72, SVC 77 



(CSWTRBTM "\ 
CSWTRSVC J 



CSWTRBTM 
CSWTRSVC 



Called by 

SVC77 (Chait Ot.2) 

I/O Inter mpt HjiiuIIim (Chart 06.1) 



CBUF 



ra 



CALC.VIRT. ADDR. OF COPIED CCW B27 



This routine calculates and returns 
in register 15 the virtual address of 
a copied CCW. If no virtual address 
can be found, zero is returned in 
register 15. 

If entered at CSWTRBTM, the address 
in the CSW will be retranslated. 
If entered at CSWTRSVC, the address 
passed in register 2 will be retranslated. 
The queue of CCW copy blocks, which 
is chained to the CCB copy block, is 
scanned until the CCW copy block 
containing the real CCW is found. 
Using the virtual address (VBA) of the 
first CCW in this block, the required 
virtual address is determined. 



GET/RELEASE COPY BLOCK B31 



If requesting task has protection 

key not equal to zero, cancel 

If a parameter was supplied, 
the requestor wants to release 
a copy block. Enqueue the 
block to the queue of free copy 
blocks and allow tasks waiting 
for copy blocks to be selected 
<X'83*inTRTBUF). 
If no parameter was passed, the 
requestor wants to claim a copy 
block. Call GETBLOCK (Chart 
14.3). Set up address of block in 
requestors parameter register. 
Exit to task selection 



ERR21 



(Return to A 
Caller / 



^ 



EXIT 



Charts 257 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



The following flowcharts are organized in Sections A, B, C, and D. Off page connectors always 
refer to another chart within the same Section, unless another Section is specifically mentioned. 



Interrupt 

external 
input/output 
machine check 
program check 
supervisor call 

attention 
CRT 
MICR 
console 



Supervisor 
Call 

00 

01 

02 

03 

04 

05 

06 

07 

08 

09 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 

21 

22 

23 

24 

25 

26 

27 

28* 

29 

30 ) 

31 1 

32 J 

33 
34 
35 
36 
* Not entered 



Chart 



A46 


A3 6 


B79 


B32 


A46 


A65 


A3 8 


A46 


Chart 



A4 8 
A18 
A09 
A53 
A35 
A5 3 
A74 
A57 
A57 
A57 
A57 
A5 8 
A59 
A59 
A01 
A51 
A59 
A60 
A60 
A60 
A60 
A60 
A61 
A61 
A61 
A51 
A62 
A51 
A83 
A63 

QTAM 



A6 3 
A63 
A71 
A71 
via branch table. 



Supervisor 
Call 



i m 



37 

38 

39 

40 

41 

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 

55 

56 

5 

58 

59 

60 

61 

62 

63 

64 

65 

66 

67 

68 

69 

70 

71 

72 

73 

74 

75 

76 

77 

78 

79 

80 

81 

82 

83 

84 

85 

86 

87 

90 

91 



Chart 



A60 

A7 5 

A12 

A7 6 

A79 

A79 

Reserved 

A64 

A65 

A65 

A63 

A65 

Reserved 

A65 

A62 

Reserved 

A65 

A6 5 

Reserved 

A66 
A6 6 
A70 
A66 
A66 
A81 
A13 
A66 
A66 
A66 
A66 
A66 
A67 
A67 
A67 
A6 8 
A6 8 
B94 
A51 
A6 8 



Reserved 



A7 3 
A7 3 
A75 
A67 
A67 



Chart A00. Entry Index 



258 DOS/VS Supervisor 



Page of SY33- 8551-1, revised June 30, 1974, by TNL SN33-8770 





***** C5G4 

*C1 * 12C2 

* A2* 1212 

* * 12G2 

* 12K2 

1 46H1 

17 B2 

iNCTE 


***A1********* 

MACHINE CHECK * 
INTERRUPT * 


ERE XX V 

****A2********* 
*EHE11 - ERR2F +* 
* EIR39 * 



*************** 



4c **** ** ** ** ** ** 





* 


YES 


* GET MESSAGE 


& A3 


*~~1 


* CODE IN 


.* 
*. .* 


* REGISTER 11 
* 


*. . * 


***** 


************** 


*NO 


*B7S»* 










* Al* 


**** 








* * 


*01 * 








* 


* C2 *-> 

* * 
**** 


1214 




1 




ERE 10 'f 


*C1*** ******* 


*****C2******* 




* 


* 


ET.COr.RECT 


* 


* NORtlAl EC J - 


ibAGE CODE 


* 


* SET U? EXIT 






* 


* ADDRESS 



*********** 



****D1 ********* 

* HARD WAIT * 

* * 
*************** 



*****.**:* ********* 



**** 

* * 

* G2 * 



K INVALID * 
ADDS DUB I KG , 
if. FETCH . * 



*****^ 2 ********** 
♦FCHEXIT A 35* 

*—*-*-*-*-*-*-*-* 

* DEACTIVATE * 

* FETCH * 

* * 
***************** 



*****F 2*** ******* 



♦TURN SWITCH OIF* 


♦AND SET DP JOE * 


* CANCEL * 


* * 


4*** jc ************ 


**** 




*C1 * 


0414 


* G2 *-> 


79K4 


* * 


83G4 


**** 


B9 3C4 


ERR GO 




*****G 2*****4**** 


*SET J3320R CCDI * 


*IN PIB AND £E1 * 


i >* UP BASE * 

1 * REGISTER * 


************:< 


:******** 



*****H2 ********** 



***************** 



*****J2* ********* 
♦BRANCH REGISIIR* 



***** 
*01 * 
* A3* 



52E4 87H4 
53C2 B82G3 
j*J5 B86D4 
E7E3 B87K3 



**A3******* 



********** 



'—I 

***** 
*15 * 
* A1* 



*****C3* ********* 

* * 

* * 
♦GET CCU ADDBESS* 

* * 

* * 
***************** 



*****I3* ********* 
*YIR?AD A67* 

*-*_*_*_*_*_*_*_* 

* GET VIRTUAL * 

* ADDS. OF CCH * 

* * 
***************** 



*****G3*«* ******* 

* CCPY CCH * 
♦ADDRESS TO CCH * 

* POINTER * 

* * 
***************** 



******** 



i********* 



L 



**** 

>*02 * 
* H5 * 



*** + 
TO:A2 
47D2 
47F2 
47G1 
47G3 
47J1 
48E1 
48BU 

m 
m 

53Di 
70B£ 
70F5 
7111 
COL 5 



♦CHAIK TEE SEEK * 

* 6 RESTORE THE * 

* CCM1 BYTE * 

* * 
***************** 



**J3* ****** 



*********** 
4B2 



**** 
*C1 * 
* K3 *-> 



24B2 
24C2 



•n 

***** 
♦02 * 
* H5* 



.♦BURST MODE * 
. ON BYTE MPX 
*. CHAN . * 



*-> 



TCH 

*****D4********** 

* TEST CHAN, IF * 
AVL* CHAN SWITCHNG *BUSY 
< — *NOT SUPPRT MAKE* 

* EXIT IF BUSY * 

* * 
***************** 



*****E4*** ******* 

* DON'T ALLOW * 

* PENDING * 

* ATTENTION FOR * 

* 3277 AND 2260 * 

* * 
***************** 



*****F4********** 

* TRY CHAN * 

* SWITCHING IF * 

* AVAILABLE * 

* * 
***************** 



♦EXIT IF EEVICE *IES 
->*NOT SWITCHBL OB* 
* CLTEP REQUEST "' 



H* , 



**** ************* 

*02 * 
* H5* 



«n 



*****E5*« ******** 

* EXIT FOB ESP * 

* REQU ANE USER *TCH 
♦RETRY, ELSE TRY *— 
♦AGAIN TEST CHAM+ 

* * 
********************* 

I YES * * 

1 **** * oa * 

->+02 ♦♦ ♦ 

* H5 ***** 

* * 

**** 



u 



G4 ♦ 

* 

VSAM 



*****Htl********** 
*VIRTAD A67* 

* GET~VIRT ADDR * 

♦ SKIP IF CHAN ♦ 
♦TRAHSL BY USER * 
***************** 



♦♦♦♦♦^♦♦♦♦♦♦♦♦♦* 

♦ CANCEL IF ♦ 
♦VIRTUAL ADDR IS* 

♦ NOT VALID * 

♦ * 
***************** 



■n 



*****K4*+*^«*^ 

♦ REQUEST FOR * 

♦ SYSRDR.SYSIPT ♦ 
♦AND /& HAS BEES* , 

♦ READ ♦ 1 

********************** 
JYES ^02 ♦ 

* A1* 



***** 
♦0 4 ♦ 
* A4* 

* * 



T0:K3 
49J4 
49K3 
49 K4 



TO:A2 
71B5 
71 F5 
71 H5 
71K5 
72F4 

If!! 

m 

80 H2 

B01C1 
B21D3 
B48B1 
B49B3 



Chart A01. $$A$SUPl - IOINTER Macro, I/O Interrupt Handler, Dequeue Channel Queue Entry 
Refer to Chart 6.2. 



Charts 259 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



.♦0LTEP *EjU 

. BYPASS CCH 

♦ . MODIF1C. 



*****gl********** 

* * 

* SKI OP PREFIX *YE3 
*IF REQUEST FOR * 

* SYSLOG * 



*B2* 



** 


*** C8A2 


♦02 * C8E3 


* A3* C8C2 


* * Q8D2 


* C9A1 


j 65E3 *NOT FLOWCHARTED 


B86G1 


I 


♦♦♦A3********** 

* 

TOHI CCM AEDB * 


IN CAB *< , 

•1 


******************* 


** 


08E5 * A3 * 
C8F4 * * 


/. * 


£3 *-> 


08K3 **** 


* 


09B2 


** 


ENCTE 



******** 



♦.TAPE SUI'FOET 



* CHAIN PREFIX, - 
♦SKIP FOR RE OB * 

>*WH COflHD ELINK * 

* PR I! FIX IF hCI ♦ 
♦CONSOLE OH CRT * 

************ ***** 

**** 
♦02 * 

* C2 * — -, 38C1 

* * I 
**** V 

NOT TAPE .*. 

C2 *. 
.♦DACDFP *. 
.♦AMD LOGICI *. N 

— >*.srs I/O units. *- 

♦.DISK DEV .* 



♦ YES 



*****D1***** ***** 
*«MSGETP2 A68* 

♦GET PUB2~ADdI ~* 

* BENCH IF 2495 * 

♦ TP CAETE IDE * 



******** 



:**** 



YES . ♦ SKIP FCE ♦. 

*. NORMAL USER .* 

♦ . REQUEST .* 



*****£ j ********** 

* TREAT * 

* EXCEPTIONAL *YES 

* CONDI^ AS DEV * , 

♦NOT OPERATIONAL* I 



STETI01 .*. 

D2 ♦. 


.♦SUPEEVISOE* *. YES 
♦ . REQUEST .♦ 


*. . * 


*. . ♦ ♦♦* 

♦NO ♦ 




♦ A3 

♦ 




*** 


*****^2»* 


******** 


♦ IF £ 

♦ SEPA£A n 

♦ PR3GRE£ 

♦ DASD 

♦ PP.01 
******* *j 


>L'SK * 
'ICS IN *YES 
S SKIP * 

FILE ♦ 
'ECT ♦ 
************ 



ST3TIC2 

*****E 3* ********* 



♦KOVE KEY TO CAW* 
♦ ♦ 

***************** 



C3 *. 

. ♦ *. 
* * 

CET REQUEST , 



.* SESTAST * 
*. USi.ES CHAIN 
*. REDDEST .* 



*****jj 2 ****♦*♦*♦♦ 

* START I/O FOB ♦ 

* EASE DEV. EXIT ♦EASE 

* IF SYSRDR/1ET * -, 

* HEAD PAST /& * f 

* ♦ ? 
************* ******** 



BUST 2 .*. 

J1 ♦. 

.* SENSE *. 

. *C0fc«AND? DO*. 

*. NOT CHAIN .* 

*. I1JMODE .* 



*****K -j ********** 

* STOKE TIC. GET * 

* MODE FBCa ♦ 
♦PUB, GET ADDR OF* 
♦KODE CCH, GO TO * 

* START I/O * 
***************** 



NOCHTCND 

*****D4*** ******* 

* ♦ *PICK UP ADDS OF* 

♦ ERCH IF *BRCH *CSTTAB AND CRT ♦ 
*CCNES,REALLOC £ ♦ >*ARE,INDIC REENT* 

" ♦ ROOT * 



**E3********** 



♦CCNES.REALLOC, ♦- 
♦IPL IN PROCESS * 



**** 

* * 

* A3 * 

* * 
♦ *** 



*********** 

*je * 

* A2* 



***************** 



*****E3********** 

* * 

* ISSCE MESSAGE ♦ 
*TC SCREEN IHAGE* 

* BDFF * 

* ♦ 
***************** 



*****£ 3* ********* 

* GET SCREEN * 
*IMAGE AEDR.PUT ♦ 
♦ADER OF CBTCCW ♦ 

* TO CAH * 

* ♦ 
***************** 



***************** 



* EXECUTE DOC * 

* ROUT. NOT * 

* FLOWCHART ED * 
***************** 



************* 



**** 

*C2 * 
* H3 *-> 


* * 
**** 



*****£ 3* ********* 
♦CLTAEP1 ** 
*- *—*_*_*_*_ *— *-* 

* CALI GLTEP IF * 

* ACTIVE. NOT * 

* FLCWCHABTED * 
***************** 



ALARM 
REQUIRED 



*****G<|*«* ******* 



***************** 



♦SET CRT DEVICE ■ 
-* NOT BUSY. 
* RESTORE RID 

♦ 

****************: 



**************** 



.TRACE ACTIVE 



*. .* 
*YES 

L**** 
>♦ 4 
TO:B3 * A5 ♦ 
09E2 * * 
C9J4 **** 
9F1 



Chart A02. $$A$SUP1 - PIOCS Macro, Start I/O 
Refer to Charts 2,1 and 6.4. 



**** 
* * 

* A5 

♦ 
**** 



n 



*****A5********** 
*PDENTBY1 ** 

*-*-*-*_*_*_*_*_* 

♦ GO TO TRACE * 

♦ ROUT * 

♦ *< 
*****♦♦♦**♦♦♦♦♦♦♦ 



BUSI*BRANCH IF BUSY *HOP 

OR NOT 

OPERATIONAL 



n 



n 



*****C5** ****♦♦♦♦ 

♦ DO SIO * 
NOAC* ACCOUNTING, * 

-♦ BRANCH IF MO * 

♦ ACCOCNT * 

♦ * 
**** ** *********** 



***************** 



..••■— I 



* * 

* H5 * 

* * 
**** 



.♦EXIT If DEV*. 

. BUTST OB OVER. 

*. RUNNIELE . * 



n 



*****G 5* ********* 



********* ******** 



**** 
♦02 * 
* H5 ♦-> 

*♦*** 


01B1 
01D5 
01E5 
01J2 
PNOTE 


*****H5** ******** 
♦ ♦ 


♦ ID Br 
->* ALL- 

* PROCE. 


riFI * 
BOUND * 
5 SING * 



********************* 



*****J 5** *******: 



************* 





K5 *. 






* ANI *. 




. *SYSTE8 TASK* 


. IBS 


*.DISPATCBABLE 
*. .* 

*. .* 


—l 




*. .* 


♦♦♦♦♦ 




♦ DO 


♦06 * 




i 


♦ AH 




♦ * 


to:h5 

01K3 




♦♦*** 




03F2 


♦03 * 




04J2 


* A1* 




05K4 


♦ * 




CXREF 


* 




B45D3 






B48E2 






B82B4 







26 DOS/VS Supervisor 



**** 
* A3 



*****A1 ********** 



***************** 



*****B1*** ******* 

* * 

* INSEET PIB * 

* FLAGS IN WOEK * 

* FIELD * 

* * 
***************** 



*****d ********** 

* * 

* * 

* SCAN PIBFLAGS * 

* * 

* * 
***************** 



**** | 



***** 

*oa * 

* A5* 



****D2********* 

* * 

* PHGB DISPATCHER* 

* * 
*************** 



*****E1 ********** 

* * 

* CLEAB PIB OE * 

* SYSTEM TASK * 

* BLOCK POINTEE * 

* * 
***************** 



*****£ 3* ********* 

* * 

* SIT DP TIK IF * 

* AP RND SET OP * 

* PIK * 

* * 
***************** 



*****!> 3* ********* 

* GET COMFEG * 

* ADDPESS FECM * 

* PIB EXTENSION * 
*AND STOEE IT IN* 

* LCW COEE * 
***************** 



*****C3 ********** 



***************** 

**** | 

*C3 * I €3D2 

* D3 *-> 79D1 

* * 79E4 
**** i 79 G 3 
ETASK V 
*****£ 3*** ******* 



***************** 



.* ANY PMGE 

FODTINE 

♦.SELECTED 



***** 
♦06 * 
* A3* 



************** 



*****Q-| ********** 

* GET KEY OF * 

* SELECTED TASK 6* 

* SET OP SELECT * 

* BYTE ♦ 

* * 
***************** 



*****Hi ********** 



*****F2****+*++ 



***************** 



**** 
_>*C2 ♦ 

♦ H5 ' 



CANCEL OE 

EC J TO Bl 

. CALLED . 



.♦VTAH OB+. 

.♦EXIT EEC. OB+. 

♦. LTA ACTIVE . 



♦ At * 
,->* ♦ 

] **** 
CNCLEXIT OCPD 

*****P4 ********** 

♦LET LTA IN USE * 



1 ♦ OCCUPIED * 

********************* ^ 

*03 ♦ 

♦ YU* 12B5 
* ♦ 7UD1 



***** 
*09 * 
* A3* 



'-] 



*****q 4* ********* 
♦SETLT A09* 

*_*_*_*_*_*_*_*_* 

* SET LTA ADDE ♦ 

* INTO PIB * 

* * 
***************** 



L>*o 



*****H3 ********** 

* * 

* SET EETDPN ♦ 

♦ ADDEESS ♦ 

♦ (EVC53A) ♦ 

***************** 



♦SYSTEH TASK* 


NO 


SELECTED 


*~1 


♦. .♦ 
♦. .♦ 


*. . ♦ 


**** 


♦YES 


* 


j **** 


♦ A3 


it* 


♦ A1 


***** 



***************** 



Chart A03. $$A$SUP1 - FOPT Macro, Task Selection, Initial Selection qf Attention 
Refer to Charts 2.1 and 4.1. 



Charts 261 



Page of SY33-8551-1, revised January 2, 197 4, by TNL SN33-8769 



***** 03G3 
♦04 * 03 J3 
* A1* 
* * 



4c**4c«& 1 ********** 



***************** 



.* INIT. *. 
. SELECT. OF . 
♦ .ATTENTION.* 



n 



***** j 3* ********* 



***************** 



**** j 
RETURN V 

*****53*** ******* 



************ 



********* 

* * 

* B3 * 

* * 

**** 



************ 



C1 *. 

. * *. 

* * 

JAI SUPPORT 



*****D1 ********** 
♦JAXIT A46* 
*_*_* _*_*_*_*_*_* 

* SET COUNTERS * 

* FOR JOB ACCT. * 

* * 
***************** 



C2 *. 
.* *. 

.* 
*. Jft SUPPORT 



*****p 2*** ******* 
♦JAXIT A46* 

*~SET COUNTERS * 

* FOR JOB ♦ 

♦ ACCOUNTING * 

4c**************** 



*****C3 ********** 



***************** 



**** D 3********* 

♦ RETURN TO * 

♦ INTERRUPTED ♦ 

♦ FROGRAM ♦ 
*************** 



•'-1 

**** 

* * 

* B3 * 

* * 
**** 



v 

. *. 



.♦REQUEST FCR+. 
♦. ABESRZ/Z1 .* 



***** 01K 4. 

♦0 4 ♦ 02H2 

* A4* 08D2 

♦ * 08C4 

* 08 04 

09D1 

09F1 

FNOTE 



♦♦♦♦A 4 ********* 
*ERR30 - ERR38, * 

* ERR19 - ERR1B * 

* * 
*************** 



*****B 4*** ******* 



***************** 



*****rij* ********* 

♦CQDSP A34* 

*_*_*_*_*_*_*_*_* 

* SET UP ♦ 
*CH. QUEUE-. PIB-* 

♦ 5 CCW PTR * 
***************** 



*****D4********** 



**************** 



*****£ 4********** 



***** 03D1 
♦04 * 
* A5* 



***** 
*09 * 
* A5* 



*****P1********** 

* * 

* RESTORE ALL * 
♦FLOATING POINT * 

* REGS ♦ 

* * 
***************** 



ASYNCH 
PROCESSING 

* ♦. .♦ 
♦ . . * 


* 
* 


NO 
**** 


♦YES 

I 




* 

♦ B3 
* 
**** 



F2 *. 
.♦ ♦. 

.♦ ♦ 

-♦.IDRA SUPPOET 



***** 
*B03* 
♦ D2* 



***************** 

*** 
>+01 



I .... 

1_>*01 * 



* ENTRY * 

* * 
*************** 



***************** 



*****C5* ********* 



************** 



-*. JAI SUPPORT .* 



SET NEXT JOB * 

ACCT USER TO * 

ALL BOUND * 

* 

**************** 



*****p 5* ********* 
♦JAXITS A46* 

* _*_*_*_*_*_*_*_* 
*GO SET COUNTERS* 

* FOR JOB ACCT ♦ 

* * 
***************** 



*****£ 5********** 



************ 



*****H2***+**+*+* 



~1 



***** j 1 ********** 

* PROTECT THE ♦ 

* SYSTEM FROH * 

* SAVE AREA * 

* MODIFICATION ♦ 

* * 
***************** 



***************** 



OSE .**— — i 



*****K2********** 



LTA GETS *. YES 
CONTROL .♦ , 

*. .♦" V 

*. .* **** 


♦SET UP CORRECT ♦ 

♦ PHASE NAME ♦ 

♦ ♦ 

♦ * 
***************** 


♦ NO ♦ ♦ 
i ***** B3 ♦ 
l_>* * * 

* A 3 ***** 

* * 
**** 






1 

\ 

***** 
*10 * 
♦ A1* 



T0:A4 

09J4 

09H1 

09K1 

09E2 

09F2 

09H2 

13K5 

20G1 

50C1 

57B4 

58E4 

61B1 

61B3 

61B4 



62B4 


1 


65B4 


\ 


65C4 


65J1 


****K 5* ****** 


69G3 


♦ ENTER SYSTEM 


69H3 


♦ WAIT 


81E1 


♦ 


81G4 


************* 


81H1 




81H2 




84A3 




B05C2 




B33H5 




B86K3 





Chart A04. $$A$SUPl - FOPT Macro, Task Selection, Initial Selection of Attention; 
System Allbound 
Refer to Charts 2.1 and 4.1. 



262 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***** 03J1 
♦0 5 * 
* A1* 



SYSEXIT V 

♦***A1********* 

* SYSTEM TASK 

* DISPATCHES 
* 

********* ****** 



*****B1 ********** 

* STORE POINTER * 

* TO ACTIVE * 

* SYSTEM TASK * 

* BLCCK * 



******** 



***** 



*****£-]********** 



* * -, 

**** J 

ST3 5 V 



RM5T3 5 

***** A4 + ++# + i[1t4!l[# 

♦RMS3ETP2 A 6 8* 

*-*-*-*-*-*-*-*-* 

* * 

* GST PUB2 ADDR * 

* * 
***************** 



***** g 4* ********* 
♦CONTINUE IF ESP* 

* IN CTRL OR IN ♦ NESP 
*PTA,£LS£ ENTER 

* PTA 
* 
********************* 

* * 

♦ F4 ♦ 



♦CALL TAPE STAT * 

* UPDATE BYPASS * 
*N0H BMS CODING * 

* * 
***************** 



*.RAS SELECTED 



■'-] 



U0ISIO 

*****F1 ********** 

* CONTINUE EHP * 

* SVC05 IF NO 

* I NIT SELECT 

* Ei,^0I5ED 



n 



********** 



*****G1 ********** 

* IF NO ASYN * 
♦PROSESS SET UP * 
*COREESP PIK FOR* 

* EEP * 

* * 
***************** 



*****H1********** 
♦USE NAME CF ALT* 
♦ENTEY PBOG AND ♦ALT 

* BKANCH, ELSE * -, 

♦ NC6M ENTRY * 1 



************ 



******** 



*****J 1********** 

♦ * 
♦CALL VTAM STAT ♦VTAM 

♦ UPDATE, SKIP IF * -, 

♦ NO VTAM * I 

♦ * V 
****** ******* ******** 



NOVTAM 

*****K1* ********* 
* NOT MODIFY * 

♦PHASE NAME FOR +2495 



♦ US * 

♦ E2 * — -, C6S1 

* * 1 

**** 1 

YSPROC V 

*****U2 ********** 
♦SET UP THE UK * 

* OF THE USIB * 
->* TASK SERVICE! * 

♦ BY CURRENT * 

* SYSTEM TASK * 
***************** 



F2 


*. 




* 4. 

*. YES 

AP = YES .* , 

.. ./* 1 




*. .* ***** 
♦NO *06 * 






* Az* 
* * 

* 


**** 

♦ C5 * 

* G3 * — 



*****G2* ********* 



* VjJ * 1 

***** J 



***************** 



*****G3**+***^*** 



***************** 



E3 
. * 
* 
JAI SOPEOET 



ET . * , 



*****D4 ********** 



*SET UP TO FETCH* 
♦ $$ABEHAB ♦ 



*************** 

**** 
♦0 5 ♦ 

* E4 *-> 

* * 

**** 
GETE3P 

*****E 4*** ******* 
♦SXSFETCH ♦♦ 

->* READ IN PHYS ~*< , 

♦TRANS FOR S?C 5* 1 

* * | 
******** ************* 

* * 

* EU * 

* * 
**** 



♦ ACTIVATE ♦ 

* ESP, EXEC PHYS * 

♦ TRANS * 

* * 
***************** 



***** 
♦04 ♦ 
* B3* 



****** 

JAXITS A46* 

-*_*_*_*_*_*_*_* 

SET CCUNTEBS * 

JOE JOB * 

ACCOUNTING * 

**************** 



I .... 

L_>*c*4 * 



♦ILLEGAL SVC IF ♦ERR 
♦REQUEST FROM PP+ 
♦ AFTER SVC 8 



********** 

♦01 ♦ 
♦ A2 + 



***************** 



**** 


63F1 


♦0 5 * 


63H1 


* J4 ♦-> 


71B4 


♦ ♦ 


71F3 


♦♦♦♦ 


79J2 


'-ESVCNOX 


♦♦♦**J4*X 


****** 



* SIMPLE RESVC * 



***************** 



GETUTADD 

*****K4 ********** 

* EXIT IF INIT * 

* SELECT OF * 
♦ATTENT OR SVC2 ♦ 

* HASN'T ISSUED * 



K5 * . 



48J3 



**K5********** 

♦ 

r UP PSH ADDR+ 

♦ 

♦ 

************** 



***♦♦ 
♦02 ♦ 
♦ H5* 



♦♦♦♦♦ 
♦0 2 ♦ 
♦ H5* 

♦ * 



Chart A05. $$A$SUP1 - FOPT Macro, Task Selection, System Task Dispatcher 
Refer to Chart 2.1. 

PIOCS Macro, Initial Selection of ERP 
Refer to Charts 2.1 and 2.3. 



Charts 26 3 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***** 02K5 


*-**** C5I2 




***** 0312 


*0 6 * 


*06 * 




*C6 * 


* fl1* 


* A2* 




* 13* 


¥ ¥ 


*** 




* * 


* 


i 




* 


SYSRTwN V 


i 


V 

CBATECDT .». 


*****A1» ********* 


*****A 2* ********* 




A3 *. 


* * 


* * 






* DISABLE * 


* * 




.**C-1TEE SV***. YES 


* INTEKRUPTS * 


* RESTORE TJK * 




*. F.O0TINE . *- — -, 

*' •* ] 

*. . * V 


* * 


* * 




* * 


* * 




***************** 


***************** 




*. .* ***** 


I 








*NC *B.39* 


j **** 










* Al* 


t->*05 * 












* E2 * 










* 


* * 












**** 














" 




" 




*****tj2* ********* 




***** E 3********** 




* * 




* * 




* POINT TO PJB * 




* IIENTIFY ♦ 




♦EX? AND RESTORE* 




* REENTBENT * 




* PIK * 




* SCUTINES * 




* * 




* * 




******* ********** 
J ♦*** 




***************** 












* G3 * 










*> * 










**** 




'I 
.*. 

C3 *. 
. * *. 

.♦RE-ENTRENT *. YES 
*. SV ROUTINE . *— — , 
*. .* 1 
*. .* V 
*. . * ***** 
♦NO *B39* 










* A2* 










* * 










* 








■ 










.*. 








13 *. 








.* *. 






NO 


.* *. 










-*. KPS= 


BJF .* 



.*IEACTIV. CF*. YES 
TASK 
♦.NECESSARY.* 



••n 



* A3* 



.* AKY VIST. *. YES 
*. USER CCE TO 
*. EE CPD. 



TO .* , 



*b1§* 

* B4* 
* * 



G3 



*. TIMER SOEPCRT.*- 

**. 

*. .* 
♦YES 



~1 

***** 
*03 * 
* F3* 



****J 2* ******** 

* * 

* 3XTEETEN * 

* * 
*************** 



TIBER 

INTEBRUPT 

. SENDING . 



**** 
*06 
* J3 



H' 



♦YES 
34E3 



***** 
*03 * 
* F3* 



****** 3* ********* 



*****jt|******** 



***************** 



**** 

->*07 * 

* A1 



***************** 



***** 

♦ 07 ♦ 

* Al* 
* * 



Chart A06. $$A$SUP1 - FOPT Macro, Task Selection, System Task Dispatcher 
Refer to Chart 2.1. 



264 DOS/VS Supervisor 



***** 06J4 
♦07 * 06K3 
* A1* 



*****& 1********** 

* * 

* LOAD ROUTINE * 

* AND SAVE AREA * 

* ADDRESS * 



. * EXIT *. NO 

ROUTINE .* 

♦.AVAILABLE.* 



* 


*. 


NO 


*. MULT. TIMER . 


*~l 


*. .* 
*. .* 


*. . * 


***** 


*YES 


♦02 * 


**** 




* H5* 


*07 * 


34C3 


* * 


* D1 *-> 


34H1 


* 


* * 






**** 






COMPITRQ 






****$di ********** 


♦DOCOMPR 


A83 


* 



r — >* COMPRESS IT * , 

| * REQUEST TABLE * f 

************************** 

* *02 * 

D1 * * H5* 



.♦RETURN FRCH*. YES 

->*. TASK .* 

♦.SELECTION ♦ 



-*.QTAM SUPPORT 



*****]? 2********** 

* MAKE TASK * 

* SELECTABLE AND * 
♦DELAY INTERFUPT* 

* PROCESSING * 

* * 
****** ****** ***** 



*************** 



*.TECE REQUEST . *- 



PSTTECB 

**E4******* 
*POST TECB, * 
* PUBGE TECB ♦ 
>*SETTIME REQUEST* 



*.QT 



AM SUPPORT .♦ 



♦ NO 

i **** 
i_>*02 * 
* H5 ♦* 



~1 

*** 

D1 * 



*****j 3* ********* 

* PASS RETURN ♦ 
♦ADDR TO QTAM 8 ♦ 

♦ PE STORE OLD ♦ 

♦ INTERFACE * 

* * 
***************** 



****g 3* ******** 

* GOTO TIMER ♦ 

* APPENDAGE ♦ 

* * 
*************** 



.♦ LTA ♦. 

->*. OPERATING FOR. 

♦. REQUESTOR. ♦ 



33C1 
84A3 



♦NO 

i **** 
l_>*33 * 
_, * A1 



*****H s* ********* 

* * 
♦DELAY UNTIL LTA* 

>* GETS FREE * 

* * 

* * 
***************** 

**** | **** 

*07 ♦ »~>*02 ♦ 

* J5 ♦ , ♦ H5 * 

* * * * 
**** j **** 

(OUT v 



INDICATE ♦ 

ROUTINE TO BE ♦ 

REENTRANT ♦ 

**************** 



**** j **** 

CONVERT V 

*****£ 4* ********* 

* * 

* STORE ROUTINE ♦ 

* ADDRESS IN PC ♦<- 

* TABLE * 

* * 
***************** 



*K5* 



****** 
A60* 



♦EXITSAV 

*_*_*_*_*_*_*_*_* 
* map psw TO BC ♦ 

♦ MODE AND SAVE ♦ 

* STATUS ♦ 
***************** 



***** 
*02 * 
♦ H5* 



Chart A07. $$A$SUPl - SMICR Macro, External Interrupt Handler 
Refer to Chart 07.1. 



Charts 26b 



Page of SY33-8551-1, revised January 2, 1974, by TNL SN33-8769 



***** 

*02 * 
* HI* 



***** 
♦02 * 
* G2* 



**** 

* * 

* A4 * 

* * 
**** 



RMST10 V 

*****A i********** 

* COPY ERP * 

* CCW, SKIP IF * 

* REPOSITION OR * 

* READ OPPOSITE * 

* * 
***************** 



***** 

♦02 * 

* A3* 

* * 



>*. 



***************** 



♦STORE TIE AODR * 

♦ IN CCW2 AND SET* 
♦UP TIE COMMAND ♦ 

* * 
***************** 



***** 
*02 * 
♦ C2+ 



***** 

♦ 09 * 

* Al* 



* STORE ADDR OF * 
♦USER SEC. CCWIN* 

* CHAN CHAIN * 

* * 
***************** 



* B4 ♦-> 



**** 
NOTSRES V 

*****B4** ******** 

♦GETDADR A70* 

*_*_*_*_*_*_*_*_* 

♦ GET VIRTUAL ♦ 

♦ ADDP OF SEEK * 

♦ FIELO * 
***************** 



*****C 2 ********** 

♦ NOT SYSTEM ♦ 

♦ FILE OR WRITE *YES 

♦ ON SYSRES ♦ . 

♦ ALLOWED ♦ | 

♦ * 
***************** y 

***** 
*02 * 
* A3* 



*****D2 ********** 

* * 
NOCH* LONG SEEK IS +1 LGL 

. — ♦ ILLEGAL START ♦ . 

♦ I/O IF NOT ♦ 
I ♦ CHAINED ♦ I 

***************** 



***** 
*02 ♦ 
♦ A3* 



♦ . ADDR VALID 



.♦ JIB ENTRY ♦. 
. FOR THIS 
♦. DEVICE .* 



***** 

♦ 02 ♦ 

♦ A3* 



***** 
♦04 ♦ 
♦ A4* 



V 

***** 

♦ 04 * 

* A4* 



**** 

* * 

* E5 * 

* * 
**** 



*****E2********** 

* * 

* DASDFP AND *YES 

* SYSTEMFILE IS ♦ , 

* DISK * 1 

* * I 
***************** y 

***** 

♦09 * 

♦ Al* 

* * 



*****P2 ********** 
*GT ADDR OF CCW * 
♦CHAIN FOR CHAN ♦ 

♦ AND STORE IN ♦ 

♦ CAW ♦ 

♦ * 
***************** 



*****G2********** 

* * 
♦COPY USERS SEEM* 

♦ TO FIRST CCW ♦ 

♦ OF CHAIN ♦ 

* * 
***************** 



DASD3330 V 
*****E4********** *****E5 ********** 

* *3330/ * * 
2321* BRANCH TO THE *3340 * START I/O IF *YES 

* DEV if * >* EXTENTS IN * . 

* SUPPORTED * * LIMIT * I 



***************** 



***************** 



* START I/O IF 
— >♦ EXTENTS IN 

♦ LIMITS 

* 
***************** 



***************** 



***** 
♦02 ♦ 
♦ B3* 



***** 
♦02 ♦ 
♦ B3* 



GETNXT3 V 

*****F5 ********** 

♦NEXT JIB A50* 

*-*-*-*-*-*-*-*-* 

-♦GET NEXT EXTENTS 

♦ IN JIB TABLE ♦ 

* * 
***************** 



GETNXT1 V 

*****G4********** 
*NEXTJIB A50* 

*-*-*-*-*-*-*-*-* 

*GET NEXT EXTENTS 

♦ INFORMATION ♦ 

* * 
***************** 



*****J2********** 

* TIC TO USER * 
♦CCW, INHIBIT A ♦ 

♦ SEEK IN USERS ♦ 

♦ STRING ♦ 

* * 
***************** 



.* SYSRES 
REQUEST 
♦. 



*****K3 ********** 



***************** 



**** 

* * 

* B4 * 

* * 
**** 



***** 
*02 * 
* B3* 



Chart A08. $$A$SUP1 - PIOCS Macro, Check Seek Address 
Refer to Chart C6. 4 



266 DOS/VS Supervisor 



Page cf SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



* STAaT I/C IF *YES 

* JOB CNT?L DID * , 

* ISSUE OP3N * 1 



*D IB EN TRY 



13^405 

* SPORE CCK IN 



CANCEL1 V 

* FOP. SEIZED * 

* SYSTEM SET * 
>* SEIZE BYTE IN * 

*rRTHSK,SKIP FOR* 

* NO MPS * 

I 



CNLRLS V 




*****BU*** 




* FO« PSYN 


PROC 


* OR USER 


ABEND 


*TERR ROOT 


GOTO 


* AP/AB CANCEL 


* ROOT 




********** 


***** 


**** | 


10BU 


*09 * | 


10C4 


* C4 *->| 


10G3 


* | 


10H4 


*=*** 1 


FNOTE 


CANCEL V 




*****cu**» 




*D£LrH0 


A7 



ni 



*A5***** 
SVC 2 



*09 * I 04E2 

* PS *->| 1 U4 

* * | 1 I B4 
**** | 

SVC02 V 

*****Bb********** 
*FOfi ACTIVE LTA * 

* SET PIBFLG TO * 
>*SVCBND,SKIP FOR* 

LOG TRANS * 

SEQUESI * 



*l 



*DEL ALL TRACKS 

* HOLD IF TRCK 

* HOLD SUPPP.TED ■ 



*B03* 

vr 



'SF.Ofii CCW ADDS * 

* IS CArf. FF.NCH *3PR 

* Li ADD?. OFF * , 

* £Xi«T LI WITS * | 



Gti- VIRTUAL 

AD DP OF 

SiAFCHFLD 



*SC11 CCW CHAIN 



•n r- 



DISALLOW PAGE * 
FACLT OVERLAP * 
(PrfO) 



B03* 
THE * 



*DISP FOR LTA IN* 



CANCfL OSEf 

PRGo IF ADD! 

INVALID 



u:;r* 



*PUR^P TASK HAIT* 
*LIST ENTRY FOR * 
* MPS * 



ShT/RZS 5E LTK 



•SWITCH LTA AND 



V 

* UPDATE 
*iECOKD», 3PANCH : 

*if sa;.t:;j a dpi 

* NOT FQUAL 



*PESET EMULATOR 

* BIT, CLEAR ADDR 

* Of PAP r ICtS 



* GET DAD?. _ A7C * 

* Gix VI FT UAL * 

* aDDE OF * 

* COUNT FIELD * 

I 



****K1******** 
CANCFL USEP 
PkO^ IF ADDS 

INVALID OR 

FIEjlD NOT IN 

nEAL STOP 



*YFS 



*~J5***-*** 

* POST * 
*POWFR/VS PART* 

DISP, POST 
=*POWFR/VS MAIN* 

* ECB * 



Chart A09. $$A$SUP1 - PIOCS Macro, Cancel Exit 
Refer to Chart 02.2. 



TO:Cu 

1CJ4 
10K3 

10K4 



Charts 267 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



ERPSVC 

*S ELECT ANOTHER * 
*TASK IF ERP EEC* 

* ■ ILL HOT BE * , 

* bRAHTED, SKIP * I 

* FOR N3 IDEA * V 

I YES *05 



1 



♦CANCEL MAINTASK* 

->* HITH SUBTASKS * 

* ATTACHED * 



*.S0BS ATTACHED.* , 



.* SIMPLE *. YES 

*. CANCEL FROM . * , 

♦.CAINTASK . 



V I 

****! 

09 *| 

cu* i 



♦CLEAR AB ENTRY * 
♦AND KEEP CANCEL* 
* CODE * 



.♦HAS IT BEEN* 

DUMP FROM 

*- MAIN? . * 


YES 

1 

V 


* POINT TO USES 

* SAVE AREA 


"*NO 


*09 * 

* C4* 
* * 


1 

i 


r 1 

* i 

COPY PIB PTR * J 
AND POINT TO * | 
PIB EXTENSION * f 


1 
1 

•EXITS A 7 A60 

* HOVP PSH AND 
*REGS TO AB SAVE* 



♦IS THERE AN* 



**** S3* ********* 

* 

SET OP RO AND * 

n IS USER SAVE* 

A SEA * 



* CLEAR PIB * 
♦CANCEL CODE AND* 

* SET AB IN * 



CNCEL4 

***** G 
*GEWB 



OSER PGM 
CTKK PTN 

.SUPPORTED 



I I 



t_>*09 * 



->*. IS If EOJ? 



"1 



*l 



*. HO 
P?OC._.* 


— >* 


. * IS IT *. NO | 

SIKPLE .* -• 

*. ^CANCEL? .* 


=*YES 




**Y3S 

1 



♦ASYNCri USEP*. 

INTER. KEY . 

*. SUPPORT ED. * 



Chart A10. $$A$SUP1 - SGTHAP Macrc, AP Cancel Routine 



268 DOS/VS Supervisor 



***** 10K5 
♦11 * 
* A1* 



ASYNCH 


* 


. NO 


PROCESSING 




-1 


* *. . * 


* 


*. . * 




**** 


♦YES 
I 

I 




* 

* C1 
* 
**** 



~\ 



*****C1 ********** 
♦CCMTABA A60* 


*GET RIGHT ENTRY* 
*ADDR AND CLEAR * 
* IT * 
***************** 


**** 




*11 * 

* D1 *-> 

* * 


10K5 


**** v 


CNCEL5 


n. 



.* APE SUBS *. NO 

*. ATTACHED tq . * -. 

♦.MATNTASK .* | 



*****C4*** 



******** 



******** 



D1 *. 

. * *. 

.* INTERNAL *. NO 

— >*. TIMER OPTION .* -, 

I *. SUPPORTED.* \ 

**** "*. . ** ***** 

* *YES *02 * 
D1 * I * H5* 

* * * 



*****F1 ********** 

* GET -TTK AND * 

* COMPUTE * 
♦CORRESP. ITTAB * 

* ENTRY * 

* * 
***************** 



*****G1 ********** 



***************** 



H1 *. 

. * * 

* TIMER *. NO 

ACTIVE FOR . * , 

♦.TASK .* 

*. . * V 

*. .* ***** 

*YES *12 * 

* A1* 



*****j1 ********** 

* * 

* SET: INTEFV. * 

* BELONGS TO NO * 

* TASK * 

* * 
***************** 



.* IS A MAIN * 
. TASK OWNING 
*.THE TIWFF.* 



* POINT TO IT * 
~>*TAFLF AND CLF.AP* 

* TASKS EKTRY * 



*****E4********* 
*PUT CANCEL CODE 



**** 
L_>*02 * 



RDYCNLO 

*****jr 4* ********* 

*E RESET A3 4 * 



RDYCNL 

*****Q4* ********* 

♦MATNTASK A77* 

*_*_*_*_*_*_*_*_* 

* * 

* GET PIB ADDR * 

* * 
***************** 



*********** 



RDYCNL2 

*****j 4* ********* 
♦SUBTASK A77 * 

*_*_*_*_*_*_*_*_* 

■ >* SELECT NETT * 

I *HIGHER PRIORITY* 

I * TASK * 

I ***************** 



I 



*YES 

I 

I 



*****r,5******** 



| **** 

i — >* * 

* A^ * 



Chart All. $$A$SUP1 - SGTHAP Macro, AP Cancel Routine, Store Cancel Cedes 



Charts 269 



* DELETE ' 

♦ ENTRY IN : 
♦BY MOVING 
♦ENTRY ONE 



NEXT 



I ***♦ * B1 
t_>*02 * 



♦ ♦**A2***** **** 

ENTRY DETACH * 
* 
*************** 



DETACH * 

ISS'JEP FY 
l"!AI!I TASK. * 



* SAVE *. NO 

PARAME^EF .* 1 

♦.SPECIFIC.* 



*. HIGHEST M-T .* 



***** 
* A2* 



GFT "IK OF * 

SLTBT-ASK TO BE * 

DETACHED * 



♦POINT ^0 PIE OF* 
♦SUBTASK THEN TC* 
* EXTrNSIOK ♦ 



* SU3TASK *. YES 

RE LONGS TC . * 

*. PARTITION. * 



A3 *. 
. *SUETASK*. 
.* ALREADY 
->*. CANCELLING 



♦INDICATE EETACH* 
♦ FEQTIEST ♦ 



♦READY TASK WHEN* 

* TP EODND AND ♦ 

* KAFK ECP DET ♦ 



* ASYNCH 

PROCESSING 



*****C4* ********* 

* GE^ 1 PTP TO * 

* CHANNEL QHEUE * 

* AND NUMBER O" * 

* ENTRIES * 

* * 
***************** 



* I/O RQSTS *. YES 

QOEUED FOR .* n 

*. •''HIS TASK.* J 



***************** 



YES .♦OUTSTANDING*. 
*.I/0 ON CHAN Q. 



***************** 



*****H4******* 



************** 



************* 



. *TRACK HOLD *. 

FUNCTION 

♦.SUPPORTED.* 



NO 

V 
*** ** 

*n * 

* B1* 



(c ******* ********* 



I **** 

L>*03 * 

* Ft * 



I 



Chart A12. $$A$SUP1 - SGTHAF Wacrc, Detach Suhtask (SVC 39) 
Refer to Chart 05.1. 



270 DOS/VS Supervisor 



***** 12K4 



*****A1********** 
*DELTHO A73* 
*_*_*_*_*_*_*_*_* 
*MARK TH ENTRIES* 

* FOR DELETION * 

* * 
***************** 



*****g-|*** ******* 

* * 

* POINT TO PIE * 

* EXTENSION AND * 

* POINT TO ECB * 

* * 
***************** 



. *. 

C1 *. 

. * *. 

*IS THERE AN*. 



*****D1* ******** 

* 

♦CLEAR ECB ADER 

♦AND P.IB IDS IN 

* PIB EXTENSION 

* 

**************** 



*****£1* ********* 

* * 

* * 

* POST THE ECB * 

* * 

* * 
***************** 



*********** 



* MAKE SUBTASK * 
♦NOT ACTIVE AND * 
♦CLEAR SYS LOG ID* 

******** ********* 



***** A 2********** 

♦ POST PIB ♦ 
->* AVAILABLE IN * 

♦ ECB ♦ 

♦ * 
***************** 



*****B2***** ***** 



* SET ADDR CF * 

* SPVECB ANE * 

* PIBAFEA * 

* * 
***************** 



***** D 2+******* 



********* 

**** 

* * 

* E2 * 

* *_>i 



********** 



♦YES 

| **** 

L_>* * 

* A3 * 



.*POIN m USER 
R1 TO 
♦.SHPVECB? . 



♦POINT TO PVCFLD+ 

* * 

* * 
***************** 



***************** 



.♦IS THIS THE*. 

SUB T/B 

♦.DETACHED .* 



E3 *. 

. *THIS OR*. 
.♦NEXT MVCFLD*. NO 
. BYTE OF A .♦ — : 
♦. M.aiNTASK .♦ 

"*. . ♦* 



*****P3*** ******* 

* * 

♦UNPOET NO SUBS * 

* ATTACPEt AND ♦ 

* PFADY MAITASK * 



*****f^********** 

* * 

* * 

♦EEADY MAINTASK ♦- 

* * 

***************** 



WAS THIS 

P ND 0* MVC 

FED 



*****£ 4******** 



.♦ nSER PGH ♦. 

CHE RTN 

*. SUPPORTED. ♦ 



***************** 



*****j ^ ********** 

* * 
♦COMPUTE CORRECT^ 
♦ITTAB ENTRY ANU + 

♦ CLEAE IT * 



SVC39B V 

*****K2********** 



*****A5******** 

* SET TIMER 

* INACTIVE FOP 

* TASK 



*****gS********** 

* * 

* INSERT IN * 
->*TIDTPT THE TIK * 

* DEVIDED BY 16 ♦ 



****ps***** 



* SET BASE FOR 
♦SVC 6 3/64 ROUT 



ISVC64ALL V 

I *****j?5******** 



INDICATE 

'RELEASE ALL" 

PEODEST 



*****pc;********** 

♦SVC6364V A81* 

♦ADDRESS RURTAB ♦ 

♦ £ WATT LIST ♦ 

* * 
***************** 



**G«5******** 



********** 



♦NO 
14F3 



SVC64A 

*****j5* ********* 
♦SVC636UR A82* 
*_*_*_*_*_*_*_*_* 

♦ CONVERT ♦ 

♦ RESOURCE CODE ♦ 

♦ TO RUR ADDR * 
***************** 



***************** 



] **** 
L_>* * 



♦ TIMER 


* 


VES 


. ♦" 




HAS 




♦ . 


YES 


ACTIVE FOR 




*~1 

V 


♦.RESOURCE CODE. 


'I 


*. TASK 
♦. . * 


* 


*. 


* 


VALID 


* 


* 






**** 






*. *" 






****? 


♦NO 

I 




* * 

* AS * 

* * 
**** 






♦NO 

1 






♦ 14 

* A1 

* * 

* 


***** 










***** 








♦ 14 * 










*P4 * 








♦ AH* 










♦ A4 + 









Chart A13. $$A$SUP1 - SGTHAP Macro, Detach Suttask (SVC 39) 
Refer to Chart 05.1. 



Charts 271 



***** 13K5 
*14 * 
* A1* 
* * 



YES .* RELEASE S *. 
*. BEQUEST .* 



*^ 



* A2 
* 

**** 
SVC64E 

*****A2********** 
♦SVC6364R A82* 

*_*_*_*_*_*_*_*_* 
♦CONVERT REODRCE* 

* CODE TO RDR * 

* ADDR * 
***************** 



**** 

*14 * 

* B1 *-> 



13H5 



**** 
SVC64C 

*****B1 ********** 

* SET OFF * 

* REQUESTORS * 

* OWNER BIT IN *< , 

* RUR * ] 

* * J 
********************* 

* * 

* B1 * 

* * 
**** 



"1 



**** 

* * 

* G1 * 

* * 
**** 



.♦RELEASE ALL*. 
*. REQUEST .* 



*****£ 2********** 
♦MAKE THIS TASK * 

* READY (SET * 

* IOCMPL IN * 

* PIBFLG) * 

* * 
************ ***** 



*****£)2********** 

* * 

* RESET CURRENT * 
♦WAIT LIST ENTRY* 

* TO X'FFFF' ♦ 

* * 
***************** 



***** 13Kt , 
*1I» * 
* A4* 



***************** 



MTILAB2 

*****£ 5* ********* 

* DELETE THIS ♦ 
>* ENTRY AND ♦ 

♦ UPDATE TABLE * 



***************** 



*****£ (I********** 



***************** 



D4 ♦. 

.♦ *. 

. * * 

.END OF TABLE 



*YES 

L**** 
>*13 * 
* B5 



YES . * RELEASE 


♦ . 




* . ... , JC 

*. BEQUEST 
*. .* 

*. . * 


* 


* 






♦ NO 






**** | 






* * 






* F1 * 






* *->! 






**** y 






SVC64DA .*. 




SVC 


F1 *. 






.* * 






.♦CURRENT RUB*. 


YES 


♦. ACQUIRED 




* ; 



♦ MORE 


* 


YES 


ENTRIES IK 




*~1 


♦.WAIT LIST. 
*. . * 


* 


*. . * 




**** 


*NO 

I 




* 

* A2 
* 
**** 



'RELEASE *. NO 
■>*.ALL' REQUEST .* 



SVC64D 



G1 



WAS *. 
. * REUESTOR ♦. NO 
— >*.ONLY OWNER OF.* — > 
J *. CURRENT .* 

| *. RUR .♦ 

**** * # # * 

♦ +YES 

G1 * 



H1 *. 
.* SOME *. 
.* TASK *. NO 

. WAITING FOR .* 

*. CURRENT .* 
*. RUR .* 
*. . * 
*YES 



*****j-| ********** 

* * 

* POINT TO LAST * 

* ENTBY IN IN ♦ 

* WAIT LIST ♦ 



END OF 
PARAMETER 
. LIST 



ER .* . 

..■* 1 

. .* ***** 

*NO *02 * 

i **** * H5 * 
L_>*13 * * * 
* J5 * * 



**** 



nun ^. hvj 

E .* , 



*Y ES 

l **** 

l->*02 * 

* H5 



***************** 


l **** 
L_>* * 


* A2 * 



Chart A14, $$A$SUP1 - IOINTER Macro # Release a Resource (SVC 64) 
Refer to Chart 05,2. 



272 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974 , by T'NL SN33-8790 



*. RM5 S TAPES 



inO . *I5 DEVICE A*. 



< *. RAS REQUEST 



* A 
PURGE 



""1 



VE2LP.P.E EASE * 

F?P IT AND * 

:L£i. n , EFRCR *- 

COUNT * 



->* POST CCB 



*LOAD REQUESTOR 



**A5******* 



*17 *| 

Vl*l 



*POINT TO TASK'S* 

* PIB2 £ SET * 

* PARTITION ID * 



NO .*PETURN ADDR*. 

< * t m CCB FROM . * 

• *. SUPVP. .* 



*POST FIRST USER* 

-*CCW+8 AS RETURN* 

* ADDRESS * 



*GET ECB POINTEP * 



IS ECB 
SUPPORT 
ACTIVE 






*GET REQUEST ID 



u.-*-% 



**G4****** 



-* INTERRUPT *. NO 

*.fOP POWER/VS .* -, 

*. PART. .* 



15 * | 17C1 

Db *->| 17E1 

* | 17F1 



*. CRT SUPPORT .*<- 



INTERRUPT *- 
FROM CRT . * 
. DEVICE .* 






I I 

I I 



*. CRT FII 


WISHED .* -, 

.*" V 

YES *8b * 
* B5* 
* * 

* 


\ 

**H5** 

* EPEE 
* DEVICI 

* RESET 


CRT * 

AND * 
FLAGS * 



♦DEACTIVATE CRT 



.* REQUEST *. NO 

. EPOC". SYSTEM . * 

*. TASK .* 



->*. TASK ACTIVE . * 



SAME DEVICE .* , 

"*. .*" V 



Chart A15. $$A$SUPl - IOINTER Macro, Dequeue Channel Queue Entry 
Refer to Chart 06.2. 



Charts 273 



***** 1bK5 



* * 

* CLFAF CCB * 

* POINTER IN * 
♦CHANNEL BUCKET * 





***** 


17C2 




*1b * 


18GJ 




* A2* 


19F4 




* * 


2 1K3 




1 


22Ab 

26 K3 
FNOTE 


INIIEG 


* 




****( 


js^**** 










*COP! 


f::it 


iLDh * 


r — >*AND 


CHAN fc 


UNIT* 


* 


ATDE 


* 



'"""l 






CALCULATE 
POINTEF TO 
CrlUlNEL TABLE : 



*****<J-| ********* 

*Si'3FE ORIGINAL 
*PUB ADDRESS IK 
*CHANi»EL BUCKET 



I 



*lo 



D1 *_> it,K5 

aiOCLEAfi V 

**D1******* 

*F,SSET REQUEST* 

r-".. ID .-' 



SAVE CHAIN 

POINTER FROf" 

PU3 



****£■ -|****** 



*ADi) xl 10 HEAD 

* JF FPFE LIST 

* CHAIN 



CIIVATE TASKS 

«Ai.TING EOF 
CtiANNFL QUSUF 



.* rPTEEPOP' 



TEEPU 
BYTE 
CHAN 



INITFG1 

*****A3********** 

* PCI NT TO * 
*CHAl'NEL BUCKET * 

>*0F LAST INfERP.* 

* CHANNEL * 



*■- GET 6 SAVE * 
*APDFESS OF LAST* 
* PUE STAETSD * 



-*. 3.1F. V =YES 



* 


SVFRSTPG .*. 


E2 *. 


E3 *. 


* ANY *. 




OUTSTAND. *. NO 


NO „*IS IT HEAD * 


J Ft P. FOP . * t 


1 *. QUEUE REQUEST 


DEVICE .* I 


*• -* 



. * 3UP.PT OF *. 
.OifFc'PCNNABIE .* 
*. DEVICE .* 



*. 11QU. FOB .* t * 

*. DEVICE .* i * 

* . „* V * 



* DEVICE 

WUEO^D FOB 
*. ERF.OK . 



*YES 
1 * 

L_>* 



FT ADDRESS OF 

HEAD QUEUE 

TABLE 



* I 

*->| 



U.*"* 



V I 

*24 * 

* A2* 



r>: 



CSalaANS B2t* 



T0:A2 

2/Fb 

27Gb 

27Hb 
V^ 
2bD1 

e-fcG: 

8bHb 
tit J3 
dbJU 



REQUEST * 
ALREADY 
ST > F TED. . * 



Chart A16. $$A$SUP1 - IOINTER Macro, Reschedule Channel 
Refer to Chart 06.2. 



274 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***** 16J1 
♦17 * 2104 
* A2* 



*****A1 ********** 

*GET PIB FLAG CF* 

* PERTINENT * 

* SXSTEM TASK * 

* * 
****** *********** 



*****£•) ********** 



***************** 



INITHQ \> 

***** A 2+ ********* 
♦TESTHU * 

*—*-*-*—*-*-*-*-* 

* TEST AND * 

* PROCESS fllJD * 

* 00 SUE * 
********* ******** 



♦HEAD QUEUE 
BEQUEST 



►ANY si 
TASK 1 

*. 
*. 


(STEM *. NO 
iCTIVE .* , 

...'* J 

. * ***** 
►YES *15 * 
* D5* 
* * 

* 


.*R 
*. 
*. 


3TBY TAEI *. NO 
REQUEST .* -j 

*. .** I 

*. .* ***** 
*YES *16 * 

* a;* 

* * 

* 


' 


' 









RESETHQ 

♦*B4******* 
♦INACTIVATE * 

* ENTRY AND * 
>*TUBN OFF HO IN 

* PROGRESS * 
* * 

*********** 



READY HQ V 

*****C4* ********* 

* GET ADDR OF * 

* HEAD QUEUE * 
>* TABLE AND * 

♦INDICATE THESE * 

* IS NO NANTER * 
***************** 



*****D1 ********** 



******* 4lM(1>3|[]M + J( „ (t 



**D2******* 

* * 
* 

* RESET SWITCH 
* 

* * 
*********** 



READYHQ1 . *. 



****E3********* 

* * 

* 5ETUEN * 

* * 
* ************** 



r*. SA 



* F5 * 

* * 
**** 



* HAS SYST * 

TASK HIGHER 
♦.PRIORITY .* 



"1 



***************** 



*****f<| ********** 

* POST SYSBIB * 

* FLAG CLEAR * 

* SELECT FIELD * 

* * 
***************** 

L**** 
>*15 * 
* D5 * 



F2 


*. 

4 










*. 


NO 


PDAIDS 




^1 




.*" 


* 


*. 


.* 




***** 




♦YES 




*18 * 
* A2* 
* * 



***** 

♦YES *18 * 
* &2* 
* * 



*****U2*** ******* 



***************** 



**F4******* 

* SET HEAD * 

* QUEUE IN * 
♦PROGRESS AGAIN ♦<- 

* * 

* * 
*********** 



****G4***** 

* RETURN * 

* * 
*************** 



**** 




♦ ♦ 




* F5 * 




* *-> 




**** 


DYHQ2 .*. 


F5 *. 


. * * 


. * 


*. LAST ENTRY 


*. 


*. .♦ 


*. .* 


*YES 



YES .♦ TASK *. 

*. WAITING FOR .* 

♦. HQ . ♦ 



♦***H5********* 

* * 

* RETUBN * 

* * 
*************** 



*****J2* ********* 
♦PDENTRY2 * 
*_*_*_*_*_*_*_*_ # 

* I/O TRACI * 

* ROUTINE ♦ 

* * 
***************** 



***** K 2* ********* 

* * 

* * 

* RESTORE RE€S * 

* * 

***************** 



***** 

♦ 18 * 

* A2* 
♦ * 



Chart A17. $$A$SUP1 - IOINTER Macro, Initialize Headqueuing 
Refer to Chart 06.2, 



Charts 275 



***** 17f2 

♦ 18 ♦ 17G2 

* A2* 17K2 
* * 



* A4 
* 
♦ ♦** 
CHN0K1 



* DJT2RMINI * 

* POINTER TC * 
♦CHANNEL BUCKET * 

* * 
***************** 



*****32 ********** 

* * 

* GET ADDS CF * 

* LAST PUB * 

* STARTED * 

* * 
***************** 



*.CCB AVAILABLE.' 



*****Q{J* ********* 

* * 

*GET POINTER TO * 
*PIB EXTENSION- * 
♦INITIALIZE PIK * 

* * 
***************** 





* A5 * 






* * — jl 
**** f 

. *. 
A5 *. 






. * *. 


NO 


.♦IS OLTIP IN*. BO 


^1 


*. BG . * . 

♦. .♦ 1 

♦. .♦ 7 


*♦♦♦ 


♦. .♦ **** 


« ♦ 


♦ IBS ♦ i 


F4 * 




* C5 i 


* ♦ 




* 1 


♦ ♦♦♦ 




*♦** 



SVC01 

♦***F1********* 

* FETCH: BEAD * 

♦ PH A3 E * 



*****£]******,,„,,** 

♦ ♦ 

♦ SET PIBFLAG ♦ 
♦MADE TASK BEADY* 

♦ TO BUN ♦ 

♦ ♦ 
***************** 



SVC01A 

*****H1 ********** 

♦ STOBE ENTBY ♦ 
♦ADDS IN PSH-DSE* 
♦L/E ADDB IF NO ♦ 

♦ USER ABB * 

♦ SPECIFIED * 
***************** 



*****D2*** *** 



********** ******* 



.♦. 

E2 *. 

.* *. 

-•Ibtah guepoit*!* 

♦. . * 

*. .* 

*. .♦ 

♦ YES 



.♦IS IT 3 27C**. YES 
LOCAL . ♦ 



*****D4* ********* 
♦INITIALIZE TIK ♦ 

♦ OF REQUESTING ♦ 

♦ TASK.BESOBE * 
♦POINTER TO PIB ♦ 

♦ ♦ 
***************** 



*****EU ********** 



♦. .* 

♦ . .♦ 
♦NO 
♦♦** I 
♦18 ♦ J 2413 
♦ G2 *->J 2901 



♦GET ADDRESS OF * 
>♦ EIBST IDE CN * 

♦ CHANNEL/MFX ♦ 

♦ ♦ 
***************** 



********* 
♦ ♦♦♦ i 



F4 *. 
.♦ ♦. 

*BAS SUPPORT* 



♦ IS IT 

RETAIN/370 
♦. DEVICE . 



♦ C5 ♦ 

♦ ♦-> 

♦ ♦♦♦ 
CHCKAPP 

*****£ 5** *******: 

♦ POINT TC PIB 

♦ EXT. & GBT 

♦ ADDR. OF 

♦ PARTI1I0N 

♦ COHBIG 
***************** 



E5 ♦. 

.♦ ♦. 

.♦IS TP CHAN.^. 

*. APP. ALLOWED . 



■ VJ 

♦ ♦♦♦♦ 

♦ 19 * 

♦ E3* 



^l 



♦♦♦♦♦ 
♦YES *86 ♦ 

L**** * qi* 
>*86 ♦ ♦ ♦ 



L 



*****H2 ********** 

♦ GO TO CLTEP ♦ 

♦ APPENDAGE IF ♦ 

♦ ACTIVE ♦ 

♦ * 
***************** 



♦ ♦♦♦ 

>+02 ♦ 

' H5 : 



r*. FA 



'-] 



. .* ♦♦♦♦♦ 

♦YIS +16 ♦ 

♦ A2+ 



SET IND. FOB * 

PAGE FAULT IN * 

I/O APPINDAGB ♦ 

*** ***** ******** 



**** *G5* ♦ **♦♦♦♦♦♦ 

♦ SAVE PUB ♦ 

♦ POINTER (FOB * 

♦ PBGB. CHICK IN « 

♦ I/O APPEND.) * 

♦ ♦ 
***************** 



♦ ♦♦♦ 

♦18 ♦ 86B1 

* H4 ♦ , 86B1 



'-] 



IS THIS *. YES 
EIGHT PUE .♦ -, 


♦ . 


.* ♦♦♦♦♦ 

►NC +24 ♦ 

♦ A3+ 



:.- : -i 



♦♦♦♦♦ 

♦ 19 ♦ 

♦ E3* 
♦ ♦ 



TP 


AND 


♦. 10 


>F1 


t=YES 

.♦ 


•—I 


♦ 


.♦ 


♦♦♦♦♦ 

♦ 19 * 

* D1* 




♦YES 



♦♦** 

♦ ♦ 

♦ A4 ♦ 

♦ ♦ 
**♦* 



*****33* *♦******♦ 



************** 



.♦IS THERE A ♦. NO 


. ♦BTAH REQU. ♦. 10 

♦.FBOM VIBT.PGB.^ ■ 

♦. .♦ 1 
♦. .♦ V 


CCB . ♦ , 


♦. . ♦ ♦♦♦♦♦ 


♦. .♦ ♦♦♦♦♦ 


♦YES +19 ♦ 


♦ IBS *19 * 


I ♦ B4+ 
♦ ♦ 


1 ♦♦♦* * D1* 
l->*19 * * * 


* 


♦ A1 * * 



***** 
*B82* 
* B3* 
♦ * 



****K3+*+++**** 

♦ ♦ 

♦ HABDBAIT ♦ 

♦ ♦ 
4*4****4******* 



♦IS THERE AN+ 


. YES 


APP. BTN. 

♦. .♦ 

♦. .♦ 


■n 


♦. . ♦ 


♦♦♦♦ 


♦ NO 


♦ ♦ 


I 


♦ A5 ♦ 


♦ ♦ 


♦ ♦♦♦ 


♦♦♦♦♦ 
♦19 ♦ 




♦ B3 + 
♦ ♦ 





Chart A18. $$A$SUP1 - IOINTER Macro, I/O Interrupt Handler, PUBSCAN Routine 
Refer to chart 06.1. 



276 DOS/VS Supervisor 



***** 18J5 
*19 * 
* A1* 



Page of SY33-8551-1, revised June 30, 197U, by TNL SN33-8770 



***** A 1 ********** 

* * 

* SAVE CCH ADDR * 
♦IN CS* & FTB TO* 

* CCPIEE CCB * 



***************** 



*****ei ********** 

♦CSWTRBTH B27* 
*-*-*-*-*-*-*-*-* 

* RE-TRANSLATE * 

* CCW ADDR * 

* * 
***************** 



*****C1 ********** 



***************** 



* USEE'S * 

* AFFENDAGE * 

* BOUTINS * 

* * 
***************** 



**** 
*****J!3** 



.'"I 



.* ALT. ERR. *. 

*.QU. ENTRX TO . 

*. BE EUILT .* 



*****]3 2 ********** 



****** *********** 



-J 

***** 

♦ 86 * 

* A2* 



*****D2 ********** 

* CLEAR LAS! * 

* EN? EX S POST * 
♦ALTERNATE EKTRY* 

* * 
***** ************ 



* SAVE PUB 

* ADDRESS AKD 

* RECORD DA1A 

*************** 



*****F2+********* 
♦EXTRA NAE A21 * 

*—*-*— *_*_*_*_*_* 
♦MOVE ENTRY INTO* 

* UUEUE * 

* * 
****** *********** 



T 



* RETRIEVE * 

* POINTER TO * 

* COPIED CCB * 

* * 
***************** 



*****II2 ********** 

* SAVE USE* * 
♦STATUS- GET HAS* 

* STATUS * 

* * 
***************** 



*****j o* ********* 

E UASER 

P.- GET R 

PU3PTB 

* * 

***************** 

L4*** 
>* * 

* A3 * 

* * 
**** 



************* 



*****£3********** 

♦CQDSE A54* 

*- *- *- *- *- *- *_ *_* 

* SET OP * 

* REGISTERS * 

* * 
***************** 



*****C 3 ********** 



*♦** 4***4******** 



*****£3********** 

♦SET ILD TC I/C * 

* INI H8NELER * 

* * 

* * 
***************** 



18E5 
18K4 



*****! 3* ********* 

* * 
♦SET ROUTINE ID * 

* TC I/C Ml. * 

* FANELER * 

* * 
***************** 



*****AH* ********* 

* RETRIEVE AND * 

* RESTORE CCK * 

* ADDR IN CSW * 

* * 
***************** 



**** 

♦ 19 * 

* B4 *-> 



♦****K3*** ******* 



*********** 



♦ YES 

J **** 

L>* * 



♦ 22 * 

* A1* 

* * 



♦PURE CHAM +* 


YES 


DEVICE END 


'-] 


*. .* 
*. . * 


*. . * 


***** 


*NO 


♦ 22 * 






* A5* 






* * 






* 


|* 




D<T *♦. 




.* *. 




* PURE * 


YES 


CHANNEL END 

*. . * 

*. .* 


""I 


♦ . . * 


***** 


♦NO 


*22 ♦ 






* A5* 



♦PURE DEVICE*. 


YES 


END 

♦ . .* 

*. . * 


-J 


*. . * 


***** 


♦NO 


*86 * 






* A2* 






* * 






* 


" 




. *. 




F4 ♦. 




.* ♦. 




♦ CONTROL ♦ 


YES 


UNIT ESD ONLY. 


n 


"*. .** 


*. . ♦ 


***** 


*NO 


♦ 16 * 


l **** 


* A2* 




l_>*22 * * ♦ 



Chart A19. 



$$A$SUPl - IOINTER Macro, I/O Interrupt Handler, Channel Appendage Interface 
Refer to chart 06.1. 



Charts 277 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***** 87E4 
♦20 * 87F5 
* A1* 87G4 



r ♦ . CRT SUPEOET . ♦ 



*****C1 ********** 
♦CKTEEACT A80* 
*_*_*_*_*_*_*_*_* 
* * 

♦DEACTIVATE CRT * 



♦*D1******* 

* * 

* 
RESET FLAGS * 

* * 

*********** 



**** 

* * 

* A2 * 

* * 
**** V 

. *. 
A2 



**** 

* * 

* C2 * 

**** 



*****B2m******** 

* * 

* * 
♦UPDATE USER CCB* 



**** 
* 
* C2 



******** 

A8C * 

_*_*_*_* 



♦CLEAS UC STATUS* 
* * 

***************** 



.♦ERROR UUEUE*. YES 
*. OVE3ELOW .* -, 



***** 

♦ 04 * 

* A4* 
* * 



.* DOES USER *. NO 

♦ .WANT COMMAND .* 

♦.CHAINING .* 



. *. 




D2 *. 




.♦NOT OP.* 
.* PROG OH 




*. YES 


. PIOTi-CTICS 


>—) 


*. 

*. . * 


*. .* 


**** 


♦NO 


* 


1 


* H4 




* 




**** 



.* 
♦ .TAP. 1 
*. 
♦ . 


♦ . NO 
] SUPPCE1 .* -, 




*. . ♦ ♦♦*** 
♦YES *25 * 
1 * A4* 



*♦** 

* * 

* At * 

* ♦ „ 




**»; * 

* * 

* A5 * 


..„-] 


****"" ~y 


*****£ 4* ********* 

* CALCULATE * 

* LOCATION AND * 

* POINT TO * 

* PARTITIONS * 

* COMREG * 
***************** 


. * . 

A5 ♦. 
. * *. 

<* 3203/5203 **.*^-, 

*. .* 

*. .* 

*. .* 

♦ YES 

1 

j 


,, 


| 


. *. 
BU *. 

.* *. 
.*IS EMULATOR*. NO 

*. ACTIVE IN .* . 

♦.PARTITION.* J 
*. .* V 
♦ . .* *♦*♦ 
♦YSS * * 
1 ♦ H4 * 
| * * 
1 ♦*♦♦ 


. * . 
^B5 ♦. 

.♦*'_CH. 9 ***. N0 

*• WITH OTHER,,,** — > 

•*. U ' C - .** 
*. .* 
♦ YES 
1 

1 

I 

*****C5** ******** 

* POST * 

* CHANNEL 9 * 

* OVERFLOW J 

* ♦ 

********* ******** 

1 


UTPUNCK .* 

cn 

.*EU 

.♦PROCEi 

♦ . UNIT < 

♦. 

♦ . 

♦. 


:. 
♦ . 

1ANT + . 

>S OF *. NO 

IHECK .* , 

.*** 1 
. ♦ ♦♦♦♦ 

>YES * * 

♦ m * 

* * 

**♦* 




j< 






**** 


. *. 

DU *. 


* H4 * 



*. DATA CHECK 



CK .*——-, 



*****£4* ********* 

♦ DETERMINE * 
♦RESIDUAL COUNT * 

♦ FROM CCH * 

♦ ♦ 
***************** 



♦ .IS THIS NOISE, 



ISE.* , 



.♦IS DEVICE A*. YES 

*. TAPE .* 

♦.CARTRIDGE. * 



* G3 * — -, 26 

J...' 1 

ZE1 .*. 

G3 *. 

.♦"IS DEVIC .. ___ 
>*. DASD .* , 



♦ ♦♦♦ 

* ♦ 

* H4 * 

* * 

♦ ♦♦♦ 



.♦ IS DEVICE *. YES 



*****G4* ********* 

♦ * 

♦ * 

♦ SBITCH MODE ♦ 



♦ . 


. * ♦♦♦♦♦ 


********* 


>******** 


♦NC +26 ♦ 








* A5* 


**** 


25J4 




♦ ♦ 


*20 * 


26A5 




♦ 


* H4 *-> 


26C4 






♦ ♦ 


27C5 






♦♦♦♦ 


FNOTE 


.*. 


EJCTRAN 


E3 *. 


*****H4* ********* 


♦ ♦. 


* ♦ 


S DEVICE A*. NO 


* SET UP ERROR * 


ERI1 


TER .♦ 


>* QUEUE 


ENTRY ♦ 



********************* 



.* REQUEST 
*. STILL QUEUED 



**** 

♦ * 

♦ A5 ♦ 

♦ ♦ 
♦♦♦♦ 



ED .*— i 



***** 

♦21 ♦ 

* C3* 

* * 



♦ .TAPE SUPPORT .*- 



1 



♦YES ♦ ♦ 
***** Hl| * 

L->* * * 

* AH ***** 



**K3******* 

* * 

* INDICATE 

* CHANNEL 9 

* CVERELCW 

* * 
*********** 



. * 


PAGE I/O 


♦ . YES 


*. 

♦ 


REQUEST 
♦ . .♦ 


--I 




*. .* 


♦♦♦*♦ 




♦ NO 


♦21 ♦ 




i 


* B1* 




* * 


TC:H4 


♦ 


27D3 


♦♦ ♦♦ ♦ 




27G2 


♦21 * 




27G3 


* A1* 




27H2 


* * 




COL 5 


* 





TO:H4 

28E1 

28F3 

2BG3 

28H3 

29A4 

29D4 

30A1 

31A2 

31B3 

31D1 

31D2 

31K2 



Chart A20. $$A$SUPl - IOINTER Macro, I/O Interrupt Handler, Unit Check Routine 
Refer to Charts 09.1 and 11.1. 



278 DOS/VS Supervisor 



***** 20K1 
♦21 * 
* A1* 
* * 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



C1 *. 

.* ERROR *. 

IN CRT *. YES 
rEBBISATIOH .* 



**** 
*21 
C3 



* C3 *—- , 

* * 1 

**** I 

iESERS V 



**C3*44**** 
* * 

* * 

->* SET PUB FLAGS 



*****D1********* 



****4444******* 

**** 
♦21 * 



**** 
CBTIGN2 

**E1******* 



444**44**** 

**** 
♦21 * 

* D3 *-> 65B1 

* * 
**** 

EXTRANAE 

*****E3*4******** 

* * 

* INITIALIZE * 

* ERROR O0ECE * 

* FOIKTIR * 

* * 
4 44 4 4 4**4******** 



4*4**4****4 



**** 1 

♦21 * J 
* F1 *->] 



27F4 
28F2 
29B5 
FNOTE 



**** 
EXIGN 

*****F1********** 



t<- 



4***444********** 



**** 
♦21 * 

* G1 



G1 *. 
.* *. 

*DEVICE EDSY* 



*26 * 
V** 



****** 44* 4 44 4 4*** 



"1 



***** 

*86 * 
* A2* 



dl *. 

TP SUPPORT 



tin 



.* MORE * 

->*. COKHANDS 10 
*. BE EXEC. .* 



*YES 

L**** 
>*22 * 



***** 
♦01 * 
* A3* 



*4*4 *G3* ********* 



*444444444**444** 



**K3******* 



4444*444*4* 



***************** 



ENTRY FREE 



* FILL IT UP 6 * 
>* SET IT NOT * 

* AVAILABLE * 

* * 
***************** 



..-'—J 



***** 
*YES *17 * 

L**** * A2* 
>*85 * * * 
* B5 * * 





K1 *. 






**K2******* 




K3 *. 






. * 


*. 




* * 










* PBOGR. 




*. YES 


•INDICATE I/C * 




.* DEVICE = *. 
.3277 01 2260 . 


NO 


*. 


CONTROLLED 

*. INTERR. . 

*. .* 


.* 

* 


>* COMPLETE * 

* * 
* * 


>* 


*~1 




*. .* 






***4****44* 




*. .* 


***** 




♦NO 
| 










*YES 
| 


*85 * 
* B5* 


T0:G1 


1 




TO:F1 






1 


* 


2204 
22K3 


***** 
♦ 85 * 




m 






***** 
♦ 16 * 


22K4 


* B5* 










* A2* 





Chart A21. $$A$SUPl - IolNTER Macro, I/O Interrupt Handler, Active ERP 
Refer to charts 06.1 and 09.1. 



Charts 279 



Page of SY33-8551-1, revised June 30, 197U, by TNL SN33-8770 



***** 1?B4 

*22 * ^SI^ 

* A1* 



***** 19C4 
♦22 * 19D0 
* A!* 21H2 

* * 









* A2 * 








* A3 * 






* * 

**** I 






* * — , 


V 

UNITCHK .*. 




MODE i: £2 V 


A1 *. 


*****a2**+** ***** 






*****^3********** 


. * *. 


* * 








.* UNIT OR *. YES 


♦FLAG ATTLNTICK * 






* * 


♦.o-rma CHICKS .* , 

*. .* ^ 
*. , .* V 


* PODING * 

* * 

* * 






♦POINT TO iR PIB* 
♦ * 


*. .* **** 

*N(" * * 


4 ***>,<* .-* ********* * 






***************** 


**** 


* G2 * 










j 


*22 * 


25D5 * * 












* E1 *-> 


25E5 **** 












* * 


25F5 










J 


**** 






' 








TSfATTN .*. 


.*. 








B1 *. 


U2 *. 






E3* **. 


.* *. 










NO .* ATTENTION *. 


.♦ *. YES 




.**A1TENTION* *. NO 


j *. INTEJ'.R. .*< , 

r *•*. .*•* i 


*. CE OP. CUI .*- 

*. .* 

*. . * 


"1 




*. ACTIVE .* , 

*. . * 1 
*. .* V 


***** *. . * **** 


*. .* ***** 




*. .♦ **** 


*21 * *YES * * 


♦ NO x 


21 * 




*YES ♦ * 


* G1* 


* B1 * 


1 * G1* 






* F3 * 


* * 


* * 


I 


* * 






* * 


* 


**** 


I 


* 






**** 


*****C1*' 


1 

K* ******* 


. *. 
C2 ♦. 






.*. 
C3 *. 


* * 


.* *. 






• * *. 


♦SIMULATE DEVICE* 


YES .* *. 




NO 


.* IS THIS *. 


* END TO FORCE * 


I *. CE 01 BUSY .* 






-*. SECCND .* 


* DEQUEUING * 


♦ . .♦ 






*. ATTEST ION.* 


* * 
***************** 


*. .* 

*. . * 






*. .* 
*. . * 






♦ NO 






♦YES 


CRTHOOK2 . > 


'. 


1 






" 


D1 *. 


*****D2********** 






**E3******* 


. * *. 


* SET CBT * 






* * 


.* *. NO 


* DISPATCHABIE * 






* IKDICATE * 


*. CONSOLE .* » 

*. .* I 
*. . * V 


* AND G3T £N1£Y * 






♦BEQUEST CANCEI * 


* TO ATTENTION * 






* * 


* ROUTINE * 






* * 


*. .* ***** 


****** ** * ******** 






*********** 


*YE3 *21 * 














I * G1* 














I * 






■ 




.*. 








NOSELCAN .*. 


E1 *. 




f 






E3 *. 


. * *. 


****E2-» ******** 






.* *. 


.* *. YES 


* * 




NC 


.* ATT. *. 


*. CON DS /BE ALLOC. * , , 

*.IN PBOG?. .* I 
*. .* V 


r— >* BET URN * 
* * 






-*. LTA-ECUNE .* 
*. .* 


*************** 






*. . * 


*. .* ***** 








*• .* 


♦NO *85_* 








♦YES 




* B5* 








**** 






* * 








* * 






* 








* F3 * 

* *_> 






r 








**** 




CHTHOCK3 .*. 






READAR " " 


' 


F1 *. 








*****I3********** 


. * *. 








* * 


. * *. NO 








* 1TTACB * 


*. CKT SUPEOBT .* , 








* ATTEKTION ♦ 








* EOUTINE ♦ 

♦ * 


*. . * ***♦ 
♦ YES * * 








******** 


******** 




* A3 * 


**** 












* * 
**** 


* * 

* G2 * 




















r 


* * L 

**** v 










. *. 


.*. 




REJSEA51 1 




G1 *. 


G2 *. 






♦*G3******* 


. * *. 


. * *. 






* * 


. * *. NO 


.* *. YES 




* SET UP TO * 


*. CHI ACTIVE .* , 


*. DEVICE BUSY . *- 


"] 




*EETCE //ABEREZ * 


♦ . .♦ 
*. . * 




* * 
* * 


*. . * **** 


*. .* ***** 




*********** 


♦YES * ♦ 


*NO +86 * 








J * A3 * 


1 * an* 








} * * 




* * 
* 








V 

.*. 


V 
.*. 




IGNOBE 


1 


H1 *. 


H2 *. 






*****E3********** 


.* *. 


. * *. 






♦CODSP A34* 
*_*_*_*_*_*_*_*_* 


YES .* CRT WAITS *. 


.* *. YES 




r *. CN ATTENT .* 

r *. .* 

V *. .♦ 


*.CCi3 AVAILAEL1.*- 


"I 




* SET UE ♦ 


*. . * 




* REGISTERS * 


*. .* 




♦ * 


♦ *** *. . * 


*. .* ***** 




******** 


******** 


* * *JjO 


♦NO 1 


86 * 








1 A5 1 \ 




* HI* 








* * 1 —J 






* * 








1 








* 








.*. 

J1 *. 




*****J2* 


******** 






F 
.*. 

J3 *. 


. ♦ ♦. 




*CLRUNC A 80* 






• * *. 


.* *. YES 




*_*_*_*_*_*_*_*_* 






.* *. NO 


♦ . CRT FETCH .♦ -I 




* CLEA.l UNIT * 






*.VTAt SOPEOBT .* , 

*. .* [ 
*. .* V 


*. .* 
*. .* 


* CEECK * 

* * 






*. . ♦ 


****** *********** 






♦. .♦ ***** 


*NC 

1 **** 

L->* * 


{ **** 
«->* * 






i 


►YES *21 * 
* G1* 

* ♦ 


* A2 * 


* E1 * 








♦ 


* * 


* * 












**** 






**** 











r- 


CCB 
♦. 
*. 


AVAILABLE. 
.* 
.♦ 


n 


**** 




*. .♦ 








♦ IBS 


♦ 16 * 


* A5 * 




1 


♦ A2* 


* * 
**** 






* * 
* 



*****C 5** ******** 



***************** 



♦♦** *D5** ****♦♦♦* 



***************** 



*1 


P, VTAM OE* 


. MO 


♦. 


OLTEP 

.♦ 
*. .* 


'-I 




♦. .♦ 


*♦♦* 




*XES 

I 


* * 

* G5 * 

* * 
**** 



* G5 * 1 
♦ ♦♦♦ 1 

*****G 5** ******** 



***************** 



*********** 



.♦ IS THIS *. NO 

*. EEAD QUEUE .* 

*. PUB .* 



***** 

*21 * 

* 61* 

♦ * 



.* PUB ( 
->*. BY 

♦. 
♦ . 

♦. 


3WNED *. NO 
fTAM .* , 

..•* ) 

.* ***** 

►YES *21 * 

* G1* 

* * 

* 


*. .♦ ***** 
*YES *23 * 
1 * A3* 

1 V 


*****K4* 

♦ 

♦GO TO AI 

* HOU 1 ! 

♦ 
♦ 
********* 

| 


********* 

* 

'PENDAGE* 

'INE * 

* 
* 

<**¥***** 

I 


. *. 
K5 *. 

. * *. 
.* IS IT A *. MO 

*. SYSTEM PILE .* , 

*. .* I 
*. .* 7 
*. .* ***** 
♦ YES *23 * 
1 * J4* 

i 

***** 
*23 * 
* AI* 


**4 

♦21 

* C 


** 

lit 



Chart A22. $$A$SUP1 - IOINTER Macro, 
Refer to chart 06.1. 



I/O Interrupt Handler, Activate Attention 



280 DOS/VS Supervisor 



***** 22K5 
*23 * 
* 11* 



.* SEEK *. 

. SEPARATION . 

♦.SUPPOSTEN.* 



CI *. 

.♦IS IT A*. 

.* SEPARATE * 

. SEEK DUE TO 

♦.SEEK SEP .* 



***** 22J5 






*23 * 67C1 






* 13* 87E1 






* * 


**** 




* 


* 4c 




I 


* A4 * 




**** ^ 




NODIEUPD .*. 


.*. 




A3 *. 


A4 *. 




.* *. 


.* *. 




.♦UNIT SYSREE*. NO 

"*■* fit CJVCTDT a 


.* HAS IT *. 
*.MAINT CATALS 
*. .* 
*. .* 


NO 


i ♦. .* j 

♦. .* V 


n 


*. .* **** 


*. . * 


**** 


*iis * * 


♦YES 


* * 




* J«* * 


1 


* en * 




* * 




* * 




**** 


t 


**** 


***** £3* 4 ******** 


. *. 

B4 *. 




* * 


.* *. 




♦GET 1EEBESS Of * 


.♦ *. 


YES 


♦INP01 AEEA COT * 


♦ .HAS IT SYSIPT 


* 1 


* CF CC1 * 


*. . * 


1 



***************** 



*N 
**** | 

* * 

* cn * I 

* *->! 

**** v 



**** 

* * 

* an * 

* * 
**** 



***************** 

* A1 * 



**** 
♦23 * 
* F1 



F1 *. 

.♦MAX NDM*. 

.♦OF BECS PES*. 

. TRK ALREADY .♦ 

*. BAD .* 



*****G1********** 

* SET FOP FIRST ♦ 
*REC OF NEI TRK * 
♦AND PNT TO LAST* 

* HEAD BYTE IN * 

* DIBENTEY ♦ 
***************** 



*****J 1********** 

* SET TO START * 
♦NITH BEGINNING * 
♦TRK OF NEIT TRK* 

* * 
***************** 



*****K1 ********** 



* UPDATE CYL * 

* BYTES TO NEXT *- 

* CXL * 

* * 
***************** 



ADD1 

*****H2********** 
♦UPDATE HEAD OK * 

* REC HUM AKD * 
>* STORE IT IN * — > 

* DIEENTRY * 



******** 



i******** 



***************** 



£3 


*. 




.* 

ENE 

**. 


*. 

* 
Ot FIIE 
.* 
. * 


. YES 


* 


"*NG 

I 


**** 
* * 

* an ♦ 

* * 
**** 



*********** 



.♦RECUEST ON 
SYSBDB 
*. 

*. .* 


* 
* 


. YES * 


*. .* 

*NO 




**** * 
* * 

* H3 * 

* * 

**** 


.*. 




TSTEOP 



**E4******* 



*********** 



NG '.* , 



**** 

* * 

* m * 

* * 

**** 



NO 


.* PBOC1 


.CORE *. 


<- 


-*. WITH SISIFT . 




*. LATA .* 




*. .* 




*. .* 




i 


*YES 




**** 






♦ 23 * 


e?F1 
67G1 




* H3 *-> 




* * 






**** 




PP 


1EST0 .* 


. 



NC .* PEOCEBURE * 
< — *.STMT BEQUEST 



**G1******* 



*********** 
**** 



**** 
PSTEOF V 

**H4******* 

* * 
♦POST EOF AND ♦ 

♦UNIT EXCEPTION 
* IN CCB * 

* * 
*********** 



**** 
♦23 ♦ 
* JH ♦ 



G I* . 



*XES 

I **** 

L>* * 



.♦POSTING AT * 

DEV END 

♦.REQUESTED.* 



***** 
*15 * 
* A1* 



**K5*****^ 

SET DEVICE 
END POSTING 
REQUESTED -. 

*********** 



Chart A23. 



$$A$SUP1 - IOINTER Macro, I/O Interrupt Handler 
Refer to chart 06.1.. 



Charts 281 



Page of SY33-8551-1, revised June 30, 1974 f by TNL SN33-8770 



***** 16A5 
* A2* 161-4 



1SI1SI0 

*****k2*** ******* 
♦CtfDSP A 34* 

*-*-*_*-*_*_*_*_* 

* SET UP I/C * 

* REGISTERS * 

* * 
****:*» *********** 



***** 18H3 
*2<» * 
* A3* 
* * 



A3 
.* 
.♦HEAD CUE0E~*. NO 
. IN PECCESS .* 



ESS .*-— i 



♦.VTAfl SUPPOEI 



***** 

♦ 01 * 

* K2* 



***** 
+0 1 * 
* K3* 



*****E3********** 

♦GET IIPSI/MIXT 
>* HEAD CUEOE 
* EMRI 

* 
**************** 



*****D 2 ********** 


13 


*. 


*CCWrRBT2 E14* 


.* *♦ 


*_*_*_*_*_*_*_*_* 


NO .* EEC. *• 
1 *. ALREADY .* 


* TRANSLATE »EW * 


* VIRT. CHAJ * 


*. STABTID .* 


* PKOGRAM * 


*. . * 


***************** 


*. . * 


1 **** 
t->*d * 


*YES 


**** 
* * 




* K3 * 


* E3 * 




* * 


* *-> 




**** 


**** 
PDEPCDND 






*****I3* ********* 




♦CQDSE A34* 




*-*-*-*-*-*-*—*—* 




* SET DP I/C * 

* REGISTERS * 






***************** 




J **** 




l_>*18 * 






* G2 * 



Chart A24. $$A$SUpl - IOINTER Macro, I/O Interrupt Handler 
Refer to chart 06.2. 



282 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



*****A 4*** ******* 

* * 

* POST DISASTER * 
♦ERROR FOB OSEB * 

* EXIT * 

* * 
***************** 



**** 

* * 

* 11 * 

**** "k 
CSWCHKO .*. 

El *. 
.* * 

MO .* 

-*. DEf 2560 



F1 *. 

. * *. 

*l STAT BUSY 



* SET OP CAS fi * 

* ERROB EXIT *<• 

* 'RCVERR 1 * 

* * 
********„,,******* 



**** 
♦25 * 
* E2 *-> 



**** 
OURSIO 

***E2* ********** 



2614 
26G3 
2664 
26 £3 
26F4 



******* 4 4**4*4* 4 



F2 * 

* 

BUSY 



***************** 



*****C3********** 

* 

* 

♦ GET STORAGE KEY; 

* 

♦44444*44******* 



*****T3*4******** 

*SIT UP »IXIGH» 

* AS RETURN 

* ADDRESS 



* 4*4 44** 4*******1 



CSilCHKOI 
G 

HO . ** *C 

*%. 

***** 

♦26 * 

* A3* 

* * 



SAS SUPPORT 



***** 

♦ 26 * 

* A2» 



** ***j I * ** ** ***** 



***************** 



G2 *. 

.* *« 

.* *. 

*. CSS STORE! . 

*. .* 

*. .* 


YES 

n 


* 4 ***G3* ********* 
♦GETEADR A70* 
*_*_*_*_*_*_*_*_* 

* GET REIL EITA * 

* ADDRESS * 

* * 


*. .* 


**** 


***************** 








* E1 * 

* * 

***■» 






AFTTIO 


' 


' 








***iI2**** 4 ****** 


*****B3********** 


*TEST 1/ 

ro cl 

* CHANNEI 


'0 LCCf * 

.EAR 

. BUSY * 


* TRAHJ 
♦PBEPAREI 

* EY1 


fIR * 
) SEHSE * 
E * 



********* 44 4* *** 



I 



44*4 4 4*4 4 44****** 



**J3******* 

* * 
. * 

*■ RESET FLAG 
* 

* * 
4*4**4***** 



**** 
>*B82* 

**** 



♦ 4*4 

->*65 * 

* B5 * 



****K2*****4*** 

* RETURN TC * 

* CALLER * 

* * 
*************** 



. * DOES USER *. 

. HANDLE UNIT . 

*. CH3CKS .* 



*****D4********** 



***************** 



E4 * 

* 

VTAM 



*****F4*** ******* 



***************** 



:,•'•*-] 



***** 

*2Q * 

* G3* 

* * 



TP SUPPORT .*- . 



***** 
*26 * 
* A1* 



ICE .*— — , 



C5 
. * 
* 
CRT SDPPORT 



**** 
* * 

* E5 * 

* * 
**** 



*.SYSLOG IS CRT. 



CRT.* 1 



*. .* 
*I0 


***** 
♦22 * 


**** 1 


* B1* 


* * J 


* * 


* E5 * { 


• 


* *->[ 




**** v 




.*. 




E5 *. 




. * *. 




. * 


*. IBS 


*. TP DEVICE 
*. 

*. .* 


'—I 


*. .* 


***** 


*B0 


•22 • 






* B1* 






* * 



**************** 



**** 
>*22 * 
* B1 * 



L 



Chart A25, $$A$SUP1 - IOINTER Macro, I/O Interrupt Handler, Unit Check Routine 
Refer to Charts 06.1 and 09.1. 



Charts 283 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***** 25ij4 
♦26 * 25J4 



************ 



*****E1********** 
♦ERRSIO A25* 

*_*-*_*_*_*_*_*_* 

* * 

* GET SSNSii * 

* * 
***************** 



* (I&RDWAX 

* 
********** 



EMULATOR 

AND TAPE 

. SUPPORT 



"1 



. .* ***** 

♦YES *20 * 

L**** * G 3* 
>*20 * * * 
* H2 * * 



****F2*** ****** 

* * 

* RETURN * *<- 

* * 
****:< *4******** 



***** 25G1 
*26 * 
* A3* 



.* AENOSMAL 
CHANNEL 
*. STATES 



UNIT CHECK 



C3 *. 
.* *. 

S .* *, 

-*. CHANNEL END 
*. .* 

*. .* 

*. .* 
*NC 



*.TP= BTAM/QIAB.*- 



13 *. 
.* *. 

TE DEVICE 



G3 *. 
* * 

CU BOSY 



***** 20 63 


♦26 * 


* A5* 


* * 


* 


1 


DISKERR .*. 


A5 *. 


. * *. 


.♦IS DEVICE A*. IBS 


*. DATACELL .* , 


*. .* ***** 


■BO *20 * 




* H4* 




* * 




* 




*****B 5* ********* 


♦INCREASE EHBOfi * 


♦COUNT IN PUB BI* 


* 1 AND GET CCII * 


* ADDRESS * 



*************** 



♦CLEAR UC STATUS* 
♦ * 

***************** 



'♦♦♦*♦******** 



* : n 



***** 

♦ 25 ♦ 

* E2* 



NO . ♦THEBE ERIV 

*. CCH XLATE 

♦. SUPPCBT . 



♦♦♦♦♦D5^* ******** 
♦VIRTAD A 67* 

*_*_*_*_*_*_*_*_♦ 

* PIND VIBTOAL * 

* CCM AEDR ♦ 

* * 
** ** ***** ******** 



♦CHECK V AUDIT! * 
*OF ADDRESS AND * 
♦RESET EXIT REG ♦ 
***************** 



*****F5* ********* 
♦GET DA DR A 70* 



-*. 115 03 125 



G4 

* 

CU BUSY 



***************** 



*****G 5* ********* 
♦ADTST1 A82* 



***** 

♦ 25 ♦ 

* E2* 
* * 



.•••n 



♦ E2* 
* * 



*T0 RASEJIGI2 IF CALLED FOE H3 *. 

RAS EMERGENCY I/O JB90D3) .* 

TO EXIGN1 IF CALLED EY UNIT.* 
CHECK ROUTINE (21F2) *. CU END 



->*. KAS SUPPORT 



:-n 



♦YES 

I **** 

L>*25 ♦ 

* E2 * 



**** 

* * 

* K3 * 

* * 
**** 



** ** ** *********** 



*****H 5** ******** 

♦PUT USERS SEEK ♦ 

* ADDR IN ERROR * 

* QUEUE ♦ 

* * 
**** ***** ******** 



*****J 5* ********* 



♦SET UP RIG7 TO ♦ 
♦ BR TO RETR0I1 * 



***************** 



♦ K3 * 

* *-> 

**** 



*****K3* ********* 



************** 



***** 
*16 * 

* A2* 

* * 



***£()*** ******** 




K5 ». 
♦ ♦. 




* * 


.* 


IS IT ♦ 


. TBS 


DO TIO UNTIL OK 


♦.CHANNEL DATA 


•*-] 


* * 


*. 


CH« .♦ 


**************** 




♦. .♦ 


*♦♦♦♦ 


| 




♦ BO 


♦27 ♦ 






I 


♦ H3* 


I 




♦ ♦ 
♦ 


***** 




***** 




♦25 * 




♦27 * 




♦ E2+ 




♦ 11» 




* * 




* * 





Chart A26. $$A$SUP1 - IOINTER Macro, I/O Interrupt Handler, Onit Check Routine 
Refer to Charts 09.1 and 10.1. 



284 DOS/VS Supervisor 



***** 26K5 
♦27 * 
* A1* 
* * 



*. 3340 SUPPORT .* 



*. IS IT 3300 


—l 


*. . * 

*. . * 


*. . * 


***** 


*NC 


♦29 * 


1 


* A3* 


> 


* * 






1 




. *. 




C1 *. 




.* * . 




NO . * * 




♦ . 33 30 STJPPOPT 


* 



* 






* 


YES 








EQUIPMENT 


CHK 


-1 








*. 
*. 


* 


* 








*. * 






**** 








♦NO 






* * 
















* H3 * 
















* * 
















**** 










' 














. *. 














F1 * 














. * 


* 












* NO RECORD 


* 


YES 








FOUND 






* 








*. 
*. 


* 


* 


1 








*. . * 






***** 








*NC 






*28 * 
















♦ A2* 
















* * 
















* 








' 
















. *. 








SFKCHK 


* 




G1 *. 










G2* "*. 




. * 


* 








* *. 




* 




* 


YES 


. *" 


COMMAND 


*. YES 


SEEK ( 


'HECK 




* 


— >*. 


REJECT 


. * 



*NO *20 * 

**** | * HI* 

*27 * 1 28A2 * * 

* H2 *->] 28C2 * 

* * J 31C1 
**** y 



H2 



**** 

* * 

* A3 * 

* * 

*****A3 ********* 



***************** 



.* PUS OUT *. YES 
. CFFCK OR 
*. CVEFFUN .* 



K . * . 

V* ^ 



**** 

H3 



H3 * 
* 
**** 



..-—} 



***** 

♦ 20 * 

* HO* 





TRACK 


*. 


YES 


CONDITION 




*~n 




CFFCF 


* 


* 


. * 




V 








***** 




♦ NO 




*28 * 



**** 
*27 * 

* FU * 

* * J 
**** J 

TRKEOC V 



. * TRACK *. 
.♦OVEPP.UN OR *. YFS 
•>. F.ND OF CYL . * 



* POST TRACK * 
->*OVERRDN OR EOC * 

* TO CCB * 
* * 

*********** 



I .... 

L_>*21 * 



ECK .* , 



♦YES 


♦20 


**** 1 


* HO 


*27 * i 


* * 


* H3 *->/ 26K5 


* 



****H 3********* 
* 
>*EXIT VIA PEG 7 * 



* H3 * 

* * 
**** 



J1 *. 

. * 

* 
DATA CHECK 



.* RETRY *. YES 
♦.GREATER THAT .* . , . 

*. .* VI ************* 

*. . * ********* 

*NO *20 * * 

**** J * HO* H3 * 

* * l * * * 

* J2 * * **** 

* *_>j 
**** | 

RFCALIB V 

*****J2********** 



.*" \ * 

.* V * 



♦YES * * 

I ***** A3 * 

L_>* * * 

* j^ ***** 



****** ****** * 



***** K 2 ********** 
♦ERRSIO A25* 

*_*_*_*_*_*_ *_ *_* 

* *_ 

* RECALIBRATE ♦ 

* * 
***************** 



* A5 * 

* * 

**** v 
DATACK . *. 
A5 



_*_*_*_*_* 



♦READ HOME ADDS ♦ 
* * 

***************** 



.♦ ALREADY ♦. YES 

*. RETRIED 256 .♦ , 

*. TIMES .♦ 



♦NO 


♦ 20 ♦ 


I 


♦ HO* 


I 


* * 




♦ 


I 

V 




. *. 




D5 *. 




.♦IS THIS*. 




.* RETRY A ♦ 


YES 


♦. MULTIPLE OF 


•*~1 


♦. 16 .♦ 

♦. . ♦ 


♦. . ♦ 


**** 


♦NO 


* * 


**** 




* J2 ♦ 


♦27 ♦ 


28 E3 


* * 


* E5 ♦-> 


29E5 


**** 


* * 


29F5 




**** 


29J4 




RMSDOn 7 




*****E 5 ********** 



->♦ ALLOW RETRY * 



***************** 



. .* ***** 
♦YES *16 * 
I * A-2* 



.* ***** 
*YES *16 * 
* A 2* 
* * 



♦IS ERROR 


ON + . 


YES 


SYSRES 




*~1 


*. 


. * 

* 


♦. . ♦ 




***** 


♦ NO 




♦ 16 * 








* A2* 








* * 








* 











***** 

♦YES *16 * 
* A 2* 

* * 



* 


IS THERE 


* 


NO 




370 DASD 




*~! 


* 


SUPPORT 
*. . * 


* 




*. .* 




***** 




*YES 

I 




♦28 * 
* D1* 

* * 

* 




***** 








♦ 28 * 








* A1* 








* * 







Chart A27. $$A$SUP1 - SGDSK Macro, Resident Disk ERP 
Refer to Chart 10.1. 



Charts 285 



***** 27K5 
*28 * 
* A1* 



***** 27F1 
*28 * 
* A2* 



***** 27E3 
*28 * 31B1 
* AU* 



334 C .* t 



. * IS IT *. YES 

♦.BISSIHG ADO .* t 

*. MASKER .* 

*. . * V 

*. . * ***** 

*N0 *27 * 

I * H2* 



********** 



********** 



TRKCHK V 

*****A4 ********** 

* POINT TO * 

* PREVIOUS CCW * 
*AND SET TIC TO * 

* USER CHAIN * 

* * 
***************** 



*****Q{| ********** 
*READHA A82* 

*—*-*-*—*_*_*_*_* 

* READ HOSE * 
♦ADDRESS AND REC* 

* D * 
***************** 



.* DOES 


ERP * 


NO 


.**WAS SEEK * *. NO 




*. WANT EPFOR 


""J 


*.SA1E AS USERS.* -, 

*. .* ] 
*. . * V 




*. LOGGED .* 
*. . * 




*. . * 


***** 


*. .* ***** 




*YES 


*16 * 


*YES *?7 * 




**** j 


* A2* 


**** 


* H2* 




*28 * 


* * 


*28 * 


29 CU * * 




* D1 *-> 27K5 




* D2 *-> 


11E2 * 




* * 




* * 






**** y 




**** 






RHSD10 .*. 




NOPCD1 V 




D1 *. 




*****p ?********** 




. * * . 




* * 




.*SCIL UPDATE* 


YES 


* PASS INFO TO * 




r — >*. IN PPOCESS 
1 *. .* 
I *. .* 
**** *. .* 


*"l 


* ERP HONITCP * 




* * 

* * 




***** 


***************** 




* * *NO 


*16 * 








D1 * 




* A2* 






**** 29G4 31B3 


* 
**** 




* * 
* 


' 


' 


* 2 ^**__ 29K4 31F2 
* * "l 31A1 
***** | 31B2 




r 




. *. 


RETRY10 .*. 


*****£!*** ******* 


E2 *. 


E3 *. 


* 


* 


.* DOES *. 


. * *. 


♦POST SOFT ERROR* 


.* [JSER WANT *. YES 


.* ALREADY *. NO 


* IN EPQ 


* 


*. RETRY ON NO .* 


>*. PETPIED 10 .* 


* 




* 


*.RFC I 


? OUNE. * 


*. TIMES .* 



* ALTERNATE *. NO 


TRACK .* t 

*• •* 1 
*. . * V 


*. .* ***** 


*YES *29 * 




* A1* 




* * 



.*. 



***************** 



**** 

*28 * 

* F3 *-> 



***** 
*27 * 

* E5* 



*****p 2** ******** 



**************** 

L**** 
>*21 * 

* F1 * 



> : *1 



***** 
*20 * 
' H4* 



.* FQUIP, 
*. OVEPEUN 
*. IATA CRK 






***** 

♦ 20 * 

* H4* 



< — *.IS IT A 3340 .* 



***** H 3 ********** 



***************** 



I**** 
->*20 * 
* HU * 



.♦IS HEAD NUM*. YES 

♦.GREATER THAN .♦ 

♦. 9 .* 



**J5******* 



*********** 



I **** 
«->*27 * 



********* 



***************** 



***** 
*29 * 
* A1* 



Chart A28. $$A$SUP1 - SGDSK Macro, Resident Disk ERP 
Refer to Chart 10.1. 



286 DOS/VS Supervisor 



***** 28CU 
*29 * 28KU 
* A1* 



***** 27B1 

♦ 29 * 

* A3* 



. * DASD FILE *. 
PROTECT .* 
*. SUPPORT .* 



*.PWSF SDPPORT 



WRITE ON 

SYSRES 

. ALLOWED 



*****£-]*** ******* 

* * 

* SET IIP TO * 

* INHIBIT LONG * 

* SEEKS * 

* * 
***************** 



*****£> 1 ********** 

* * 

* SET OP TO * 
♦INHIBIT WET CN * 

* SYSRES * 

* * 
***************** 



* SET UP FOR * 
♦ERRSIO AND CHAN* 

* AEDR WORD * 

* * 
***************** 



**** 
EXHHY 

*****H1 ********** 



***************** 



*****j1* ********* 
*OURSIC A25* 

*_*_*_*_*_*_*_*_* 

♦REEXECUTE USER * 

* CHAIN * 

* * 
***************** 



* INHIBIT WRITE * 
->* HOKE APDR ANE * 

* RH * 

* * 
***********. ***** 



: *"ir 

**** 
* * 

* K3 * 



.*SFEKCHK OR * 


YES 


TATRCHK 


*~1 


*. . * 
*. .* 


*. . * 


**** 


*NO 


* * 


**** | 


* G3 * 


♦ 29 * | 


* * 


* CI *->| 27D1 


**** 


* * 




**** ^ 




^F3330 .*. 




C3 *. 




. * *. 




.* ECOIP CHK * 
*.OR EOS CDT CE 


YES 


*~1 


*. OVFUN .* 
*. . * 


*. . * 


**** 


*NO 


* * 




* G3 * 




* * 



.* ENVIRON - *. 

*. MENTAL DATA . 

*. FRESENT .* 



* H3 * 

* * 
**** 



E3 *. 
. * *. 

.* 
-*. EATA CHECK 



**** 




* * 




* G3 * 




# *_> 




**** 


r 


EERLCG1 .*. 


G3 *. 


. * FIRST *. 


NO .*OCCORRANCE *. 


<— *. THIS ERROR .* 


*. .* 


*. . * 


*. . * 


*YES 


**** 




*29 * 




* H3 *-> 


31B5 


* * 




**** 




ERFLCG2 




*****H3********** 


* * 


* LOCATE PDB2 * 


♦TABLE ENTRY FOR*< , 


* THIS EEVICF * 1 


* * / 


********************* 




* * 




* H3 * 




* * 




**** 




' 


*****j3 ********** 


* SET ERBOR ♦ 


* LOGGING ♦ 


♦ INDICATOR FOR ♦ 


♦ RM< 


5R * 



***************** 



**** 

* * 

* K3 * 

* * 
**** 



>*. DEVICE A 3330.*- 



COMMAND 


* 


VES 




REJECT 




* 






* 




. * 




V 




*. . * 




***** 




*NO 




*2n * 




1 




* HU* 


**** 


1 




* * 


*29 






* 


* B5 



**** I 

ITF370 V 

*****BS* ********* 



***************** 



. INTERVENTION 
♦ .REQUIRED .* 



*. BUS OUT CHECK. *- 



* E5 

* * 
**** 

RETRY01 



.♦ ALREADY 
->♦. RETRIED 1 
*. TIME 



*YES 

**** I **** * 

*29 * L>*28 * 
.A3 * F5 * — * F3 * 
* * j * * 
**** | **** 

ENVD370 V 



* DECR ERROR * 
->*COONT AND RETRY* 

♦USERS CHAN PGM ♦ 

* * 
***************** 



V 

**** 
27 * 
E5* 

* * 



L 



**** 

>*27 * 

■ E5 * 



*. DATA CHECK 



*N 
**** I 

♦29 * I 

* KU *-> 

* * 
**** v 



*2R * 

* E3* 

* * 



***** 
*31 * 
* A1* 



***** 
*27 * 

* T5"5* 



***** 
♦31 ♦ 
♦ A2* 



.♦ ERROR *. 


NO 


♦. CORRECTABLE . 


,_ 


♦. .♦ 


♦. .♦ 


V 


♦. . * 


***** 


♦YES 


*28 * 


j 


* E3* 




* * 


V 


* 


***** 




♦3 * 




* A1* 




* * 





Chart A29. $$A$SUP1 - SGDSK Macro, Resident Disk ERP 
Refer to Chart 10.1. 



Charts 287 



***** 29K4 
♦30 * 
* A1* 



.* OVERFLOW *. 

. ERBOR ALSO . 



*****g1 ********** 

* * 

* ALIGN CLOCK * 
*BYTES AND REAP * 

* DISPLACEMENT * 

* * 
***************** 



*****d ********** 

* * 

* CALCULATE * 

* FORWARD * 

* DISPLACEMENT * 

* * 
***************** 



. *THERE PRIV *. 

*. CCW XLATE . 

*. SDPPOPT .* 



*****E1 ********** 
♦VIRTAD A67* 

*_*_*_*_*_*_*_*_* 

* FIND VIPTriAL * 

* CCW ADDR * 

* * 
***************** 



♦CHECK VALIDITY * 

* OF ADDR AND * 

♦ RESET EXIT REG * 
***************** 



*****q1 ********** 

* * 
♦SAVE CCW COUNT ♦ 

* AND POINT TO ♦ 
♦CORRECTION CODE+ 

* * 
***************** 



***** D 2********** 



***************** 



*** 


* 
* 




A3 


* 




*** 






. *. 






A3 ♦. 




, 


* * 




, * 


PAGING 
SUPERV 


* 


*. 


FEQUEST 


* 



ECFNOTPM 

*****£ /}***** *%.*** 

♦GETDADR A70* 



*****P3********** 
** ** 

♦* STKSM - SET ♦♦ 
** SYSTFW PEAL ♦♦ 
♦♦JNE DISABLED *♦ 
** ** 

***************** 



*****(* 3 ********** 



***************** 



*****]> 3 ********** 



***************** 



*****y 3* ********* 
** STCSP* - SET ♦* 
♦* EACK TO ♦♦ 
** VIFTDAL AND ** 
** ENAELED *♦ 
** ** 
***************** 


**** 

* * 

♦ F3 * 




**** 

ECFINCP 

***** F 3* 

* FCINT 1 

* FCC BY1 

* INCF F( 

* DI< 


1 

********* 
n O NEXT ♦ 
"E AND ♦ 
'RWARD * 
?P * 



**************** 



.♦THFEE TIMES + 
. THRO LOOP 
*. PLFIflPY .♦ 



**** 

*ip * 

* H3 ♦ 



************ 



***** A 5* ********* 



***************** 



*****C4 ******** 



***** n 5* ********* 



**** *********** 



*****£ 5* ********* 

* * 

* STORE ADDR OF * 

* NEXT CCW IN * 
♦TEMPORARY AREA * 



*****T-^* ********* 

♦ * 
♦UPDATE ERQ CSW ♦ 
♦AND POST INCORR+ 

♦ LENGTH IN CSW ♦ 

♦ * 
***************** 



*-> 



31B4 



**** j 

ECFCEDE V 

***** G 5* ********* 

♦POST CHAN END /♦ 
♦DEV END IN CSW ♦ 

♦ AND tijpn OFF ♦ 
♦UNIT CHECK BIT ♦ 

* * 
***************** 



***** 
♦32 ♦ 
* A3* 



**. ZERO * .'* . 



**** 

* * 

* PI * 

* * 
**** 



♦NO 

| **** 

i_>*31 * 



.♦ IS SKIP *. YES 

*. FLAG ON IN .* . 

*. CCW .* I 

**. .** **** 

*NO ♦ ♦ 

i ***** p3 * 
L_> * * * 

♦ A3 ♦**** 

* * 
**** 



Chart A30. $$A$SUP1 - SGDSK Macro, Resident Disk ERP 
Refer to Chart 10.1. 



288 DOS/VS Supervisor 



***** 29K3 

♦31 * 
* A2* 



***** 30B5 
♦31 * 30J3 
* A4* 
* * 



RTN3340N 


*. 




A1 


*. 




* 




. * 






* . 


CVERRHN 


* 


„ 






* 


*N0 

I 



PACK 

DITICN 
HECK . 



CI *. 

SEEK CHECK 



.■•'-l 



*2^ * 

* H4* 

* * 



YES 

*— 1 



EQVZP CHF 



. * pttsout 1 OF * 
*. INrFR'.'ENTICN 
*. RZQn . * 



***** 
*28 * 

* E3* 
* * 



RACK FORMAT . * -, 



***** 
*29 * 

* B5* 



. DftTA CHECK . * , 



K2 *. 
.♦PROTECT*. 
* OP OPER. *. NO 
INCOMPLETE .* 



.* FSVTPON - *. YES 
. MENTAL DATA . - 
*. PRESENT .* 



1 



.* IS IT *. 
.* CHANNEL 
*. TRUNCATION 



NTNG *. YES 



"1 



***** 
*28 * 

* E3* 



*****C4********** 



***************** 



***** 5(4 ********** 



**************** 



*****G4 ********** 
*VIRTAD A67* 
*_*_*_*_*_*_*_*_* 

* CONVERT TIC * 

* ARGD TO VIRT * 

* ADDR * 
***************** 



*****fj4 ********** 
*ADTST A82* 
*_*_*_ *_ *_ *_ *_ *_ * 
♦CHECK VALIDITY * 
* OF ADDR AND * 
♦RESET EXIT REG * 
***************** 



. *NEXT CCW A *. *ES 

COUNT . * -, 

♦.OPERATION.* 



I ** 
L_>*3 



->*CHECK IN SENSE * 



************* 



I **** * H 3* 
I— >*29 * * * 
* E5 * * 



Chart A31. $$A$SUP1 - SGDSK Macro, Resident Disk ERP 
Refer to Chart 10.1. 



Charts 289 



***** 31J4 
♦32 * 
* A2* 



***** 30B3 
*32 * 
* S3* 



***** A 2 ********** 



***************** 



.♦IS OSER CCH*. 
. A MULTI TRK .* 
*. CCB .* 



*****C2********** 

* * 
♦HAKE THE COUNT * 

* OPERATION A * 
♦HDLTI TRK AISO * 

* * 
****** ****** ***** 



************ ***** 



**** 
*32 * 
* E2 



31 JH 



**** 
ECFCPEND 

*****£ 2******** 

* BDII.D TIC TO 
*DSERS CHAN PGM 
♦AND SET OP SEEl 

♦ ADDR 
* 
*************** 



*****£ 2********** 

* * 

* LRA - MAKE * 
♦CERTAIN TIC-TO ♦ 

* ADDR IS REAL ♦ 

* * 
***************** 



*****H2********** 

* SET UP CAW TO * 

* RESTART CHAN * 

* PGM AND GO * 

* RESTART IT * 

* * 
***************** 

l **** 
i_>*29 * 
* H1 * 



* DECREMENT * 

* CLOCKED EYTES * 

* BY CCR CCUNT * 

* * 
***************** 



*****B3 ********** 

* DECREMENT * 

* FORWARD * 

* DISPLACEMENT * 

* AND STEP TO * 

* NEXT CCW * 
***************** 



IS IT A TIC 



*****D3 ********** 



***************** 



.♦PRIVATE CCW*. 
*. XLATE 

♦.SUPPORTED.* 



*_*_*_*_ 



*********** 



*****£ 3 ********** 
♦ADTS1 A82* 

*_*—*_*_*—*_*_*_* 
♦CHECK VALIDITY ♦ 
♦ OF ADDR AND ♦ 
♦RESET EXIT REG ♦ 
***************** 



***************** 



Dp" "* . 

. .* ***** 

♦YES *30 ♦ 

i *+** * H 1* 

«— >*30 * * * 

* H3 ♦ ♦ 



Chart A32. $$A$SUP1 - SGDSK Macro, Resident Disk ERP 
Refer to Chart 10.1. 



290 DOS/VS Supervisor 



***** 37D3 



****** ***** 



*****P3********** 

* * 
♦MAKE EEF READY * 

->*ANP IF ST CTHER ♦— 

* TNTEPFTIFTS * 

* * 
***************** 



* RELOAD ROUTINE 

* AND SAVE APEA 

* ADDRESS 



| **** 

i— >* * 



************** 



**n******* 
* * 

*SET FLAG FCP * 

* fXT^N. * 

♦INTERRUPT KEY* 



***** F 3*** ******* 



************* 



* * *y 

* F4 * I 

* * 

I 



*****H4********** 



♦GET ADDRESS OF * 
* REQU. TABLE * 



***************** 



Chart A33. $$A$SUP1 - FOPT Macro, Interval Tiirer 



PORT .* -, 



*****£ 4* ********* 



***************** 



Charts 291 



***** 33JU 
♦34 * 
* A1* 



***** A 1 ********** 

* * 

* * 

* LOAD TIMER * 

* * 

* * 
***************** 

**** 
*34 * 

* B1 *-> 33K4 



*****A 3* ********* 



***************** 



****A4***** 

* 

* ERRSE^ 
* 
*********** 



****A5********* 

* * 

* CQDSP * 

* * 
*************** 



CQDSP BS '*'*. 



. * INTERRUPT *. YES 

ALREADY .* , 

♦.PROCESSED.* 

*. . * V 

*. .* ***** 

*NO *02 * 

I * H5* 

I * * 



*. JAI SUPPORT .* 



*****D1* ********* 



***************** 



*****£-) ********** 

* GET NEW * 

* INTERVAL AND * 
♦ADD IT TO TIKE * 

* OF DAY * 

* * 
***************** 



*. TIMER SUPPORT. *- 



.* ***** 

*YES *02 * 

* H5* 

* * 



H1 


*. 


.* DOES *. 


.* INTERVAL *. YES 


*. BELONG TO .* , 

♦.TASK .* 

*. .* V 


*. .* ***** 


♦NO *07 * 




* D1* 




* * 



*****J1 ********** 



***************** 



.♦WAS PRGRM. ♦. NO 
->♦. CANCELED OR . ♦— 
*. TFRM. 



~] 



*YES 
I 



***** 
*06 * 
* J3* 



*. MULT. TIMER . *- 



1 



. .* ***** 

*Y1S *02 * 

I **** * H5* 
L_>*07 * * * 

* D1 * * 

* * 
**** 



*****D4 ********** 

* * 

* * 

* RELEASE LTA * 

* * 

* * 
***************** 



*****E4 ********** 

* SETLT A09* 

* SWAP SAVEAREA * 

* POINTERS * 

* * 
***************** 



****P4********* 

* RETURN TO * 

* CALLER * 

* * 
*************** 



*****C5 ********** 



***************** 



*****0 5* ********* 



***************** 



*****£ 5* ********* 



***************** 



****p 5* ******** 

* * 

* RETURN * 

* * 
*************** 



*****£ 2***** ***** 



♦ NO 

L**** 
>♦ 
♦ A3 



****** ********* 



Chart A34. $$A$SUPl - FOPT Macro, Interval Tirrer 



292 DOS/VS Supervisor 



****A1*** ****** 

* * 

* FCHEXIT * 

* * 
*************** 



-♦.VSAfl SUPPORT .* 



*****C1 ********** 



***************** 



PCHEXT 

*****D1 ********** 



****A3********* 

* * 

* FCHEXT * 

* * 
*************** 



****A4 ********* 

* * 

* SVC 4 * 

* * 
*************** 



svcot V 

*****B4********** 
*FETCH BO 3* 

* HSAD IN THE * 

* PHASE * 

* * 
***************** 



***************** 



***** D4+#++<l+1(1)> 



***************** 



****E1 ********** 
* 
IDENTIFY * 
BEENTRENT * 
ROUTINE * 
* 
***************** 



F1 *. 

.* * 

I BR A= YES 



*****G1 ********** 

: * 

* SET PTA FREE * 

* * 

* * 
***************** 



H1 *. 

* 

PD=YES 



*****j1 ********** 



******** 



****K1********* 

* * 

* BETCRN * 

* * 
*************** 



*****F2+* ******** 
* 
* 
->* SET IDEA FBEI 
* 
* 
***************** 



************* 



*****EU* ********* 

* * 

* PASS ENTRY * 
♦ADDRESS TO USER* 

* REGISTER 1 * 

* * 
***************** 



*****P4*** ******* 



***************** 



I 



- H5 * 



chart A35. $$a$supi - fopt Macro, Fetch Exit, Load Phase (SVC 4) 



Charts 293 



Page of SY33-8551-1, revised June 30, 1974 , by TNL SN33-8770 



**** 

EXTERN 

*****jj ********** 

* SiTEASE FOR * 

* EXTERNAL *< 

* INTERRUPT * 



****A3* ******** 

* 1/C INTEEROET * 

* * 
444 4 4 4* ******** 



**** 








*36 * 








* B2 * — •, 46 E 2 

* * J 
**** fl 














ALB EXIT . *. 




ENTIO .*. 


D2 *. 




E3 *. 


.* *. 




. * 


fcO .* *. 




YES .* SYSTEM 


i *. D2BUG 


*< 


*. ALLBCDND 



*****C 2 ********** 



************ 



********* 



****#G2*****4**** 

♦DEVIDE ALLBCGKD* 

* TIHiJ BY NO. Of * 

* ACriV3 BATCH * 

* PART . * 



* * * * 4 



'*** 



V 
*****!! 2 ********** 
♦UPDAT5 ALLBCDND* 
♦TIME FOR ACTIVE* 

* PARTITIONS IN * 

* T1I2 PSOPEE * 

* TABLES * 
******** ********* 



*****j 2*****4**** 



*****C3* ********* 



****44**4******** 



*****£ 3* ******** 



* ENTBY * 

* * 
*************** 



. * ANY *. 

.♦SYSTEM TASK*. 

*. INTERRUPTED .* 



— *. JAI SDEECBT .* 



*****G3******** 



*****F 4 ********** 

* * 
♦STORE INTERRUPT* 
♦INFORMATION IN *— 

* PIB EXTENSION * 

* ♦ 
***************** 



444* 4**** 



******** 



**** *E 3* ********* 



***************** 



********* ******** 



G5 *. 

. ♦ ♦. 

. ♦ 
-*. FP SUPPORT 



*****U5* ********* 



***************** 



* SAVE CLD PSH * 

* AND REGISTER * 

* R9-RI * 

* * 
***************** 



***************** 



***** 

*37 * 

* R1* 

* * 



Chart A36. $$A$SUP1 - FOPT Macro, General Entry Routine 



294 DOS/VS Supervisor 



***** 
*37 * 
* Al* 



***** 36J1 
*37 * 82*5 
* A3* 
* * 



**** -} 
***** A 2********** 



♦.fllCR SUPPORT .♦- 



***************** 



* * * * * b 1 * ** ** * ** * * 



***************** 



C1 *. 

.* *. 

. * ♦. 

. JAI SUPPORTED. 



***************** 



***************** 




*H1*** ******* 



***************** 



*****j-|*** ******* 



♦UPDATE CPU TIME* 

* COUNTER AND * 
♦STORE NEW VALUE* 

* * 
***************** 



.♦INTERRUPT A + . YES 
. SVC OR P/C .* 



***************** 



****B2********* 

* * 

* RETURN ♦ 

* * 
*************** 



UK i . » 1 



**** 

* * 

♦ C3 ♦ 



.♦ HICR ♦. 


YES 


. *" 


" *. 


♦. INTERRUPT . 


*. 


— >♦. OLTEP = YES ."♦ 


♦. .♦ 




♦. .♦ 


♦. .* 




♦. . ♦ 


*. .* 




♦. .♦ 


♦NO 




♦YES 


**** 1 








♦ 37 ♦ 








♦ C3 ♦-> H1E5 








* * 1 








**** v 




•r 


EXTOC .*. 




. ♦. 


C3 *. 




C4 ♦. 


.♦ *. 




. ♦ ♦. 


.♦ ♦. 


NO 


.♦ IS OLTEP ♦. 


■ >*. OC SUPPORT . 


* . 


♦. ACTIVE .♦- 


♦. .♦ 


J 


♦. .♦ 


1 *- •♦ 


V 


*. .♦ 


**** * # # * 


***** 


♦. . ♦ 


* * *YES 


♦ 33 ♦ 


*YFS 


♦ C3 ♦ 




* F4* 






* * 




* * 






**** 




* 






.♦. 




*not 


E3 ♦. 




*****B 4********** 


.♦ ♦. 




♦OLTEP * * 


.♦ ♦. 


NO 


*_*_*_*_*_*_*_*_* 


♦.OC INTERRUPT . 


*-} 


♦ GO TO OLTEP ♦ 


♦. .♦ 
♦. . * 


♦ APPENDAGE VIA ♦ 

♦ REG 8 ♦ 


♦. .♦ 


***** 


***************** 


♦YES 


♦33 ♦ 


J **** 
L->*U1 * 


1 **** 
<->*33 * 


♦ F4* 
* * 




♦ A2 


* * 




* P1 * 



*********** 



**B5******* 

* TURN OFF * 

♦ BIT AND 1 : 
IN INTERRUPT 

* STATUS 

* * 
*********** 



**** 

♦ 37 * 

♦ C5 ♦-> 



41G1 



**** 
PDMPI 

*****C5* ********* 
*GET POINTER TO * 

♦ TABLE OF DTF ♦ 

♦ ADDRESSES. ♦ 

♦ 'AND' OUT ♦ 

♦ INTERRUPT BIT ♦ 
***************** 



*****D5* ********* 

♦ INSERT ♦ 
♦OWNERSHIP FLAG ♦ 

♦ IN PDTASK FOR ♦ 

♦ PRIORITY TEST ♦ 



********* 



:******* 



*****p 5 ********** 

* * 

♦GET PIBTAB EXT ♦ 
♦ADDR AND TASK'S^ 

* PARTITION ID ♦ 

* * 
***************** 



*****G5******** 



***************** 



*****H 5* ********* 



***************** 



*****j5********** 

* * 

♦ STORE TASK'S ♦ 
♦PARTITION ID IN* 

♦ PSW * 

* * 
***************** 



L 



**** 

>+38 ♦ 
A3 ♦ 



♦NO 

U." 



A2 ♦ 
* * 

**** 



Chart A37. $$A$SUP1 - FOPT Macro, General Entry Routine 

SMICR Macro, MICR Interrupt Handler 



Charts 295 



***** 37J5 

♦ 38 * 

* A3* 



*****A3 ********** 
♦GET ADDRESS OF * 

* DTE TABLE FOB * 
♦THIS INTERRUPT * 

* FRCH PDTABB * 

* * 
***************** 



*~1 

***** 

*U1 * 

* G1* 

* * 



*****q 3 ********** 



***************** 

**** 

* * 

* D3 * 

* *_> 
**** 

PDTIC 

***E3*********** 



-*. RESULT OF TIO.*<- 



-♦.MICR = 1419D .*<- 



-> CLEAR INTERRUPT 
* * 

**************** 



F3 *. 
. * *. 

.* 
-*. CSS STORED 



***** 

♦42 * 

* A2* 

* * 



.*FIRST TIME *. ON NOOP 

♦.SWITCH ON OR .* , , ♦ .RESOL? 

*. OFF 



ir 



# * ********* 

*OFF *41 *U2 * 

* G1* A5* 
* * * * 



1 

. * **** 

*A VA L * * 

I **** * D3 * 

L_>*m * * 

* G -j ***** 



*****G1 ********** 



***************** 



**** 

* * 

* J3 * 

* * 
**** 



.♦CHANNEL OR 
*. DEVICE END 
*. ONLY 



rn ♦. 

* 

1419D 



"1 



**j-|******* 

* * 

* * 
*TORN ON SWITCH * 

* * 

* * 
*********** 

L**** 
>*39 * 
* A1 * 



*. 


NO 


.* CHANNEL * 


MICR = 1 11 9D . 


-\ 


*. DATA CHECK 


.* 
*. . * 


*. 

*. .* 


*. .* 


***** 


*. . * 


♦YES 


*39 * 


*YES 


| 


* A1* 


**** 






* * 


*38 * 


42A3 




* 


* H4 *-> 


42C3 






* * 


42F3 


V 




**** 




. *. 




PDMVCSW 


r 


E3 *. 




*****H4*? 


****** 



.♦LATE SS OR * 


YES 


*. AUTO SEL ON . 


"l 


*. SCO .* 
*. .* 


*. . * 


***** 


♦ NO 


*45 * 


**** 




* B1* 


♦38 ♦ 


12A2 


* * 


♦ J3 *-> 


«5E1 


* 


* * 


45G1 




**** 






ICK 1 






*****J3* 


********* 



n 

****** 



********************* 
* * j 

* J3 * **** 

* * l->*39 * 
**** * A1 ♦ 

* * 
**** 



♦MOVE CSW TO DTF* 

♦ TABLE & CSW ♦ 

♦ STATDS TO CCB ♦ 

♦ * 
***************** 



**J4******* 



*********** 



**** 

->*H2 * 

♦ C5 ♦ 



G5 ♦. 
.♦CHANNEL*. 
.* CHAIN OR *. YES 
->*. PROT. CHECK .*- 



1 



*. 


. * 




***** 


♦NO 




*H2 * 








♦ A3* 








* * 








* 




' 






. ♦. 






H5 ♦. 






* *, 






UNIT 


*, 


NO 


EXCEPTION 




'-] 


♦. .♦" 


* 


♦. . ♦ 




***** 


♦YES 




♦ 39 * 








♦ A1* 



*****j5********** 

* * 
♦MOVE CSW TO DTF* 

♦ TABLE > CSW ♦» 

♦ STAUS TO CCB ♦ 

* * 
***************** 

L**** 
>*42 ♦ 
♦ D5 ♦ 



Chart A38. $$A$SUPl - SMICR Macro, MICR Interrupt Handler 
Refer to Chart 07.1, 



296 DOS/VS Supervisor 



***** 38G3 

♦39 * 38H5 

* A1* 38J1 

* * 38 J 3 



***************** 



-♦.END OF BOFFER.+ 



##***£1 ********** 



***************** 



PDSCAW 

*****D1 ********** 

* STOEE ADDRESS * 

* OF STACKER * 

* SELECT CCW IN * 

* CAW FOR START * 

* I/O * 
***************** 



*****£ 1********** 

* * 

* HOVE STORAGE * 

* PROTECTION KEY * 

* TO CAW * 

* * 
***************** 



n 



**** 

* * 

♦ A3 

**** 

*****A3********** 

♦ * 

♦ STORE ADDRESS * 
♦OF READ CCW IN * 

♦ TIC CCW ♦ 

♦ * 
***************** 



*****£ 3********** 

* * 

* GET I/O AREA * 

* ADDRESS FROM * 

* CCW ♦ 

* * 
***************** 



*****£ 3* ********* 

* * 

* GET 10 AREA ♦ 

* ADDRESS FROM * 

* CCW ♦ 

* * 
***************** 



-♦.END OF EOFPER.+ 



*****£3* ********* 

♦ * 

♦ LOAD BEGIN ♦ 

♦ ADDRESS OF ♦ 

♦ EDFFER ♦ 

♦ * 
***************** 



*♦*** 40K2 
♦39 ♦ 
♦ A5+ 



c 



*****&5********** 
* * 

SAVE CCB ♦ 

POINTER 6 ♦ 
REGISTERS ♦ 



******************* 



*****B5********** 



***************** 



**C5******* 

* * 

♦ INDICATE ♦ 
♦STACKER SELECT ♦ 

♦ RUNNING ♦ 

* * 
*********** 



*****Q5********** 

* * 
♦GET ADDRESS OF ♦ 
♦SVC 28 INTO SVC* 

* NEW PSW ♦ 

* * 
***************** 



****E5********* 



*************** 



***************** 



♦. B OFFER FULL 



♦ ARM CHANNEL ♦ 
>♦ PROGRAM FOR ♦ 

♦ DISENGAGE ♦ 

♦ * 
****** ****** ***** 



***************** 



*****G3********** 



***************** 



r 


. MICR = 1419D . 


*. 


.* 
♦. . * 


***** 




♦. .♦ 


♦40 ♦ 




♦ NO 


* A2+ 




j **** 
L_>* 


* * 




* 




♦ A3 



*****j2********** 

♦ INSERT DOM BY ♦ 

♦ COMMAND CODE * 
-*FOE FAILURE TO * 

♦ DISENGAGE ♦ 

♦ * 
****** ****** ** *** 



♦.OFF-LINE SORT. *- 



♦NO 
l_>* 



***************** 



* A5 * 

* * 
**** 



I .... 

L_>*41 * 



♦ A1 ♦ 

* * 
**** 



Chart A39. $$A$SUP1 - SMICR Macro, MICR Interrupt Handler 
Refer to Chart C7.1. 



Charts 297 



***** 
♦40 * 
* A2* 



.♦ALTERNATING*. 
.SWITCH ON CR . * 

*. OFF .* 



***************** 



*****B2********** 

* * 

* SAVE I/O AREA * 
♦FR01 FIRST CCW * 

* * 

* * 
***************** 



— *.END OF EUFFER.+ 



*****£ 2** ******** 

* * 

* GET 10 AREA * 

* ADDRESS FROM * 

* CCW * 

* * 
***************** 



*****£ 3 ********** 

* * 

* LOAD BEGIN * 

* ACTRESS OF * 

* PUFFER * 

* * 
***************** 



D2 *. 
.* *. 

NO . * *. 

*.END 0? BUTTER. * 

♦. . * 

*. .* 

♦. . * 
♦YES 



***************** 



***E2********** 

* 

LOAD BEGIN * 

ADDRESS OF * 

BUFFER * 

* 

*************** 



******** ********* 



*****£ 2********** 



***************** 



*****£ 3* ********* 

* * 

* * 

* HOVI IN SENSE * 

* * 

* * 
***************** 



* TORN OFF BYTE * 

* 1, BIT 2 CF * 

* SENSE * 

* * 
***************** 



.♦ USER HAVI *. 

♦.OFF LINE SCRT. * 

♦. MODE .♦ 



"1 



***** 
♦41 ♦ 
♦ F1* 



*****£ 2***** ***** 



***************** 



***** 

♦ 39 ♦ 

♦ A5* 
* * 



Chart A40. $$A$SUP1 - SMICR Macro, MICR Interrupt Handler 
Refer to Chart 07.1. 



298 DOS/VS Supervisor 



***** 39H4 
♦<t1 * 44K5 
* A1* 83K3 



***************** 



*****B 1*** ******* 



***************** 



***C1 *********** 



************ 



D1 *. 
. * ♦ . 

AVAILABLE 



*****g1 ********** 

* * 

* SET FLAG TO * 

* INDICATE GOOD * 

* BECORD * 

* * 
***************** 



**** 

♦41 * 

* P1 *-> 



**** 
PDEIIT 

*****Y1 ********** 



37 D4 
40J2 
42B1 
43 F 3 



**** 
*41 i 
* D2 



*~1 



->*.MICR SOP POET .♦- 



.* CSS *. 
.♦STORED. NON*. 
->♦. OPERATIONAL, . 
*. BUST .* 



*"♦ 



***** 

♦noop *nn * 
• **** * A i* 
i_>* * * * 

* F2 * * 



r 

***** 

*H2 * 
♦ A1 



.* csw *. 

.♦STORED. NCN*. STOR 

♦.OPERATIONAL, .* 

BUSY . ♦ 



->*. DNIT CHICK 



♦NOOI 
**** 

♦ 41 ♦ ] 42A2 

♦ F2 *->( 45G2 



***************** 



**** 




*m * 

* G1 ♦-> 

* * 
**** 

PDEXT1 .* 
G1 
.* 


38B3 

38F1 

38F2 

' 42F5 

it. 
*. 
*. 


.♦ MORE 
♦ . INTER 


MICR ♦. YES 
RUPTS .♦ 



.♦MICE DEV ON*. 
. SELECTOR 
♦. CHANNEL .* 



"1 

***** 

♦ 37 ♦ 

♦ C5* 



**** 

♦ D5 * 

* 4 
**** 



♦.ERROR ON TIO 

I *• •* 

V ♦. .♦ 

**** *. .* 

♦ ♦ +YES 

♦ C5 ♦ J 

♦ * I 

**** 



**** 

* * 

♦POST IN CCE: 
♦ SCU NOT 
♦ OPERATIONAL 



**** 
♦41 ♦ 

♦ F3 ♦-> 

* * 
**** 

PDCHAN 

**F3******* 



"I 

***** 

♦ 45 ♦ 

♦ A2+ 
* * 



**** 



*********** 

i * * 

1 ***** p2 ♦ 
{_>* * * 

* G4 ***** 

* * 
**** 



*********** 



*****G 3 ********** 

* * 
♦CSW INTO tTF e ♦ 
♦CSR STATUS INTO* — 

* CCB ♦ 

* * 
***************** 



♦ G4G + — -, 

♦ ♦ -> j 

.... | 



**G !»♦♦♦♦♦♦♦ 



*********** 



**** 
*U1 * 
♦ H4 



**** 
PDERXT3 

**RH****** 



♦ POST DOC 
REJECT & RCD 

♦ AVAILABLE 

* * 

*********** 



**j £»******* 

* * 
♦ POST IN ♦ 

♦ BUFFER RCB: ♦ 
♦REJECT POCKET* 

* * 
*********** 



*****£ 5********** 

* * 

♦ PICK DP PUB ♦ 
->+POINTER AND GET+ 

♦ CHAN & UNIT ♦ 

* * 
***************** 



*****B5* ********* 
♦INITRG A16* 
*_*_*_*_*_*_*_*_* 

♦ FORCE CHAN ♦ 

♦ SCHED ♦ 

♦ * 
***************** 

**** 



**** 
PDSWBP 

***** C 5* ********* 

* * 
♦RESET SWITCH TO* 

♦ INDICATE NO ♦ 

♦ ERROR ON TIO ♦ 

* * 
***************** 

**** ] 



**** 
***** D 5* ********* 



***************** 



**g5******* 

♦ TURN OFF ♦ 

♦ EXTERNAL 
INTERRUPT 

♦ STATUS 

* * 
*********** 



L 



**** 

>+37 ♦ 
♦ C3 ♦ 



Chart A41. $$A$SUP1 - SMICR Macro, MICR Interrupt Handler 
Refer to Chart 07.1. 



Charts 299 



***** 4 1E2 
*«I2 * 45B3 
* A1* 83G5 



*** A 1 *********** 

* SIO FOB * 

STACKER 
* SELECTION * 

**************** 



***** 38E1 
*42 * 
* A2* 



***** 38G5 
*«12 * 
* A3* 



PDNONOI 


.*. 

A2 *. 
* *. 




. ** 


1419 SORT *. 


NO 


*. 
*. 


MODE 
*. . * 


*~1 




*. . * 


***** 




♦YES 


♦41 * 




I **** 
L->*38 * 


* F2* 




* * 




* J3 


* * 



*. SENSE COMMAND.*- 



~1 

***** 

♦38 * 

* H4* 

* * 



***** 


38F2 


*42 * 


44C1 


* A5* 


44D2 


* * 


44F2 


* 


44H1 


! 


44H2 


I 


84F1 


i 


84G1 


**A5******* 


* 


* 


TORN ON 


DOC * 


P EJECT > 


ROD 


> AVAIL 


* 





. * OHLY BIT *. 


NO 


* 


.SET 


AVAILABLE. 


*"1 




*. 

* 


. * 

.* 






*. .* 


***** 






*YES 


♦41 * 






I **** 

L->*U1 * 


* D2* 






* * 






* F1 


* * 



*****£ 3* ********* 



***************** 



***** 
♦38 * 
* HI* 



*****£ 3 ********** 
♦FDSIORT A84* 

*_*_*_*_*_*_*_*_* 



***************** 



*********** 



**Q5******* 

* * 

POST REJECT 

POCKET TO 

BDFFER 

* * 
*********** 



**C5******* 

* * 

* POST 
->* DISENGAGE TO 

* CCB 

* * 
*********** 

**** I 

♦ 42 * I 

* D5 *->| 38J5 



**D 5* ********* 



***************** 



************* 



***************** 

L**** 
>*38 * 
* H4 * 



*IS CHANNEL *. NO 

QOEOE POINTER.*- , 

*. NOLL .* 

*. .* V 

*. .* ***** 

*YES *43 * 

I **** * A3* 
«— >*41 * * * 



Chart A42. $$A$SUP1 - SMICR Macrc, MICR Interrupt Handler 
Refer to Chart 07.1. 



300 DOS/VS Supervisor 



***** 42F5 
*1|3 * 
* A3* 



**A3******* 

* * 

* TOBN ON * 
♦TRAFFIC BIT IN * 

* CCE * 

* * 
*********** 



*****£3 ********** 

♦CQDSP A34* 
*_*_*_*_*_*_*_*__* 



***************** 



**C3******* 

* * 
* RESET FOB * 

* FLAG & TASK * 
♦REQUESTOR ID * 

* * 
*********** 



*****£ 3 ********** 

* * 

* MAKE NEXT * 

* REQtJEST FIRST * 

* IN PDE * 

* * 
***************** 



*****£ 3********** 
♦INSEET CHANNEL * 
♦CO Etl I ENTRY AT * 

* HEAD OF FREE * 

* LIST * 

* * 
***************** 



*****£ 3********** 



***************** 



Chart AU3. $$A$SUP1 - SMICR Macro, MICR Interrupt Handler 
Refer to Chart 07.1. 



Charts 301 



***** air>3 

*U4 * 
* A1* 



***** B1 ********* 



**************** 



DATA CHECK .* . 



*. 


# * ***** 










> 


NO *U2 * 
* fc5* 
* * 

* 










PDUNITCK . ' 
D1 
. * 


* *. 

*. 


PDSEFR1 


D2 

* 


*. 
*. 


.* "*. NO 

*. UNIT CHECK .* 

*. .* 
*. . * 


>* 


* 

.PRDGP. 
*. 


*. NO 
,11 CHECK.* 

.** V 


*. . * 






* 


. * ***** 




'YES 








♦YES *4? * 
i **** * a 5* 
{_>* * * * 

* H4 * * 

* * 
**** 


*****E1*** ******* 










♦ PDSIOBT A84* 
*_*_*_+_*_*_*_*_* 










* * 










* GET SENSE * 

* * 










********* 


********* 











.* INTFRV. *. YES 
->*. REQUIRED 






**** 

* * 

* G1 * 

* *_> 
**** 

PDSN02 

**Q-|******* 



*********** 



*****H1*** ******* 



***** 
*42 * 
* A 5* 



->*. OVER RON 



♦INFORM USER OF * 
->*LATE SS. NOP SS*- 

* COMMAND CODE * 

* * 
***************** 

**** 



*CSH 
*CSM 

* 
* 
**** 


INTO DTF S * 

STATUS INTO* 

CCB * 

* 
************* 




**** 
L>*42 * 
* A5 * 



*****u o* ********* 



***************** 



**** | 

SERS3 V 



f **** 
<->*H2 * 



* A5 * 

* * 
**** 



PDSE 

*****hii ********** 

* store cch * 

* ADDR-8 - * 
>* STORAGE KEY * 

* INTO CAW * 



***************** 



**JH******* 

* * 

* POST DOC 
* REJECT TO 

* BUFFER 

* * 
*********** 



I 



*****j5********** 

* NO-OP THE * 
♦COMMAND CODE IN* 

->*STACKER SELECT * 

* CCW * 

* * 
***************** 



***** K 5* ********* 

* * 
♦SET BUFFER MASK* 

* FOR REJECT * 

* POCKET * 

* * 
***************** 



*U1 * 
* A1* 

* * 



Chart A44. $$A$SUPl - SMICR Macro, MICR Error Recovery for SIO 
Refer to Chart 07.1. 



302 DOS/VS Supervisor 



***** 38F4 
*«5 * 
* A1* 

* * 



.* CHANNEL * 


YES 


*. DATA CHECK 


*~l 


*. .* 
*. . * 


*. . * 


***** 


*N0 


*41 * 


**** 




* F3* 


*45 * 




* * 


* B1 *-> 


38H3 


* 


* * 






**** T 




PDSEJDC . *. 




B1 *. 




. * *. 




NO . *OVERRON ON * 




* . SCO 


.* 



r 



*********** 



* INDICATE * 
* REJECT POCKET * 

* FOR DOC * 
* * 

*********** 



***** 11E3 
*45 * 
* A2* 

* * 



UNIT CHECK 



*****£ 2********** 



********** 



***C 2 ********** 



********** 



* AU * 

* * — , 
**** $ 

PDBOCK . *. 



♦GET ADDRESS OF * 
->* PRECEDING CCW ♦<- 

* (NOP) * 

* * 

***************** 



-♦.BUS OUT CHECK.* 



***************** 



*****D2********** 



************ ***** 



.♦AUTO SELECT* 


NO 


CN SCU 

*. .* 

*. .* 


*H 


*. . * 


***** 


♦YES 


♦ 38 * 




* J 3* 



*****£ 2********** 

* * 

* * 

* GET SENSE * 

* * 

* * 
************ ***** 



**|"|******* 

* * 
POST AUTO 
SELECT IN 

BUFFER RCD 

* * 
*********** 



♦YES 

\ 

I. 



** G 1******* 


G2 *. 




* * 


. * *. 




* INDICATE ♦ 


. ♦ NOT *. 


YES 


* REJECT POCKET * 


♦. OPERATIONAL . 


"I 


* FOR DOC * 


♦ . . ♦ 


* * 


♦. . * 


*********** 


*. . * 


***** 


J 


♦NO 


*41 * 


I **** 


I 


* F2 + 


L_>*38 * 




* * 


* J3 * 




* 



*****j 2***** ***** 

* * 

* * 

* RESTORE CSW * 

* * 

* * 
***************** 



K2 *. 
.* *. 
.* INTERV. ♦. NO 
*. F. QUIRED .* t 

*•.. ..•• I 

*, .* **** 

♦YES ♦ * 

I ♦ AU ♦ 



***** 
♦41 ♦ 

♦ m* 

* * 



**** 

L>*42 ♦ 



*****(- {}**** ****** 



***************** 



* t?3 * 

* * 
**** 



Chart A45. $$A$SUP1 - SMICR Macro, MICR Interrupt Handler 
Refer to Chart 07.1. 



Charts 303 



****A1 ********* 

* * 

* SVC INTERRUPT * 

* * 

*************** 



****A2********* 

* EXTERNAL * 

* INTERRUPT * 

* * 
*************** 



****A3********* 
♦CALCULATE TIHE * 

* IBTEK7AL * 

* * 
*************** 



****A4********* 

* JA EXIT * 

* * 
*************** 



ENTSVC 

*****£1 ********** 



***************** 



C1 *. 

PDAIDS 



*****£ 1 ********** 
*PDENTRY3 * * 
*_*_*_*—*_*_*_*_* 

* F/L TRACE * 

* ROUTINE (NOT * 

* FLOWCHASTED) * 
***************** 



* IDENTIFY OLD * 
*PSB AND GET SVC* 
♦INTERRUPT CODE * 

* * 
***************** 



*****G1********** 
♦GENENT A36* 
*_*_*_*_*_*_*_*_* 

* INITIALIZE * 

* ENTRY * 

* * 
***************** 



ENTEXT • " 


le. 

*. 


.* *. 


.*WAS SYSTEM *. YES 
*. ALLBOUND .* , 


*. . * ***** 


*NO *36 * 
J * B2* 

* * 




* 


v 
*****£ 2********** 
* * 


♦SAVE REG'S 9 - * 
* 1U * 



***************** 



*****]) 2*** ******* 
♦GENENT A36* 
*_*_* _*_*_*_*_*_* 

* INITIALIZE * 

* ENTRY ♦ 

* * 
***************** 



L 



JATIMER 

*****P3* ********* 
♦CALC. NEW ACC. ♦ 
*TIBE USING OLD * 

* ACC. TIME AND * 

* SYSTIH1R ♦ 

* * 
***************** 



***** C 3********** 
♦TIHE INTERVAL =♦ 

♦ NEW ACCOUNT. ♦ 

♦ TIHE - OLD ♦ 

♦ ACCOUNT. TIHE ♦ 

♦ * 
***************** 



*****D3 ********** 



♦UPDATE ACCOONT.* 
♦TIHE (ACCTIHE) ♦ 



***************** 



****2 3********* 

* * 

* RETURN ♦ 

* * 
*************** 



***************** 



NEXT .* . 



**** 

* * 

* K5 * 

* * 
**** 



*****D4 ********** 
*JATIHER A46* 

* CALCULATE * 

* DURATION OF * 

* INTERVAL * 

***************** 



.* IS IT *. 

. OVERHEAD OR . 

*.CPU TIHE .* 



F4 *. 

.* *. 

* * 

TOD SUPPORT 



**** 

* * 

* EH * 

* * 
**** 



E5 *. 
* * 

HPS=BJF 



*****P5* ********* 



********** 



I 



H1 


* 






. * 




*. 








*. 


YES 


ILLEGAL 


SVC , 


*~1 


" *. 




. * 

* 


* 


.* 




***** 




*NO 




*01 * 
* A2* 
* * 



SVCINDEX V 

*****j1********** 

* PICK UP SVC * 

* CODE AND * 

* CALCULATE SVC * 
♦ROUTINE ADDRESS* 

* * 
***************** 



****K1 ********* 

* BRANCH TO SVC * 

* ROUTINE JSEE * 

* CHART <50) * 
*************** 



YES .* TIHE *. 

*. INTERVAL 

♦.NEGATIVE .* 



**** 



*****H<i********** 

♦ CALC. NEW * 
♦OVERHEAD TIHES ♦ 

♦ FOR ACTIVE ♦ 

♦ BATCH ♦ 

♦ PARTITIONS ♦ 
***************** 



*****j4********** 

* * 
*STORE THEH BACK* 
♦INTO THE PROPER* 

* TABLES ♦ 

* * 
***************** 



*****Q5********** 

* UPDATE CPU * 
♦TIHE, STORE NEW* 
♦VALUE- AND SET ♦ 
♦NEW ACCTING ID ♦ 

* * 
***************** 



****H 5********* 

* * 

* RETURN * 

* * 
*********** 



SET NEW * 

ACCOUNTING ID *- 



***************** 



**** 

* * 

* K5 ♦ 

* * , 

**** | 

****K5* ******** 

* * 

* RETURN ♦ 

* * 
*************** 



Chart A46. $$A$SUP1 - FOPT Macro, Interrupt Entry Routines, Job Accounting Routine 
Refer to Chart 01.1. 



304 DOS/VS Supervisor 



* GET PUB 



CH.3NGE 
ACCOUNTING I.r 
TO OVERHEAD 



"1 



*YES 
02 6 ->'| iibB 1 



* S£? FfLSYSI. * 
*LUrf ZNPEX.SME * 

*Lut;rr, store key* 



* GET FROM PUB * 

* ZONE OF * 

* DEVICETYP EOF * 
*SVC 2b, 27, 3b, 3b* 



* RETURN TO 

* CALLING -ROUTINE 



* AIDE. OE *. I 
CC« IS FEAL .*- 
*. STORG. . * 



*posr rp.AFic* 

BIT 6 CLEAR * 
CHANNEL 
SCdEDJLER * 
* FLA3S * 



~1 



. * APPENDAGE *. 

-RTN PfiESENT &. 

*. ALLOWED . * 



*. PPIX = YES 



1 



**BPSS CONTROL 

** to rp 

** APPENDAiE 
** ROJTINE 



I 
PSTCEDE V 

•SIMULATE CS AND* 



* LOAD ECB 

. >* POINTER 



PiiOGfAMER *. PP.aU 

OR SYSTEM .* t 

:JNIT .* j 



Chart AU7. $$A$SUP1 - PIOCS Macro, Calculate PUB Address 
Refer to Chart 06,1. 



Charts 305 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



* SET UP AND 
*CH£CK ABSOLUT 

* LUn NUMBER 



ssr: o - .sxcp 



5 YES ,*I5 CHANNEL ■ 

-i i *. ,1'Jeu?, FULL 






52 C3 
52P5 
52f 3 



49G1 

51C2 

51S2 

| 80E2 



F1 *-> 5721 



f 3r;.7N=YBS 



"1 



-*IS OLTEP IN*. YES 



♦REQUEST FOS*. YES 

P. El A IN 3 7 .♦ . 

*- DEV. .*■ | 



♦NO *01 



* CLEAR CHAN * 
♦SCHIE. BITS AND* 

->* STATUS INFO IN * 

* CCB * 



♦SCAN PARTITION CONTROL 
BLOCK. IF PARTITION UNDER 
CONTROL OF POHER/VS, FOR 
MATCHING DEVICE. 



♦CONSOLE REQUEST NO JECL 
COHflAND IN CASE OF 
WRITER-ONLY PARTITION. 



♦YES * 



PREVIOUS 

REQUEST 
. FENDING 



-♦REQUEST*. 

♦ACCEPTED BY* 

POfcFR/VS * 



CONSOLE 
BUFFERING 
. OPTION . 



.* 1052 ♦. 
.CONSOLE TYPE 
*. WRITER .♦ 



* CHECK FOR 

* DEVICE END 

* POSTIN.UNREC. 
♦I/O ERROR, USER 

* FPfl.ROUr. 



4tf ♦ j 49B1 

F3 *->| 49C1 

♦ | 49D1 



****5 5* ******** 

CLEAP CHAN 

SCHED BITS IN 

USEE CCB AND 

DE^l STATUS 

*************** 



tl 



♦SYSTEM TASK*. 
AKTIVE FOR . 
♦.THIS USER.* 



YESI YES 



I I 

I V 

j *****J5********** 

| ♦ SKIP CCH * 

| ♦TRANSLATION FOR*YE5 

-t I *EXCP WITH PAEAM^ -, 

I | ♦ R2AL * 



CHAN PROG * 

ALREADY 

.TPANSLAT .* 



70: D1 
52G3 
56 J 3 
64 F5 



Chart A48. $$A$SUPl - PIOCS Macro, EXCP (SVC 0) 
Refer to Chart 06.3. 



306 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***** 48J1 
♦49 * 48K4 
* 41* 



*****£ 1 ********** 

* * 

* GET ESE3 CCW * 

* * 

* * 
***************** 



n 



*.«KITE COMKAND.*- 



***** 
*48 * 

* E5* 



*~1 

***** 
♦48 * 
* S5* 



*****C 94 ********* 

* TAKE CONSOLE * 

* BUPFFSR CCE * 

* INSTEAD 01 * 

* USERS * 

* * 
***************** 



* D2 *-> 



DATA PITS *. NO 
IN CONSOLE 
. EUFEEF 



""I 

***** 
448 * 
* E5* 



**** 
EXCP8 

***** D2 ***** 
♦INSERT USEE 

* AND STORE 
♦ID. IN CHAN 

* QUEUE 



***** 
KEY* 
ILL * 

KEL * 



*****£ 1 ********** 



***************** 



*****;-] ********** 

* * 
♦GET NEXT ENTRY * 

* IN CONSOLE * 

* BUFFER POOL * 

* * 
***************** 



***************** 



*****£ 9* ********* 

* CLEAR RESII. * 
♦COUNT - SKIP 11* 

♦ NO EHULATC5 * 
♦INTERF. GENER. * 

♦OR BTAK 

********* 



EXCP10 V 

*****P2* *♦♦♦*♦*** 

* * 
♦UPDATE CAHNKEI * 
♦QUEUE, SET K£H * 

* CHAIN EHE * 

* * 
***************** 



G1 ♦. 
* ♦. 

ENTRY *. NO 
AVAILABLE .* , 

.. ..- J 

*. .♦ ***** 
♦YES *48 * 
I * G3* 


NO 


G2 *. 
• * *. 

-♦Irhsh suppcjt *♦ 

♦. . * 

*. .* 

*. .♦ 
*YES 

1 


V 






V 

. *. 

H1 *. 

* *. 

*. NO 

BRAP .♦ , 

** I 




J 

*****U2* ********* 
♦UPDATE USAGE IN + 

* PUB2 TABLE, * 
♦SKIP USAGE IOE ♦ 

* SEP REQUEST ♦ 



♦ *** 

♦ ♦ 

♦ A2 ♦ 

♦ ♦ 
**♦♦ 



***************** 



*****j-| ******** 



.* SEEK 
♦. SEPARATION 
*. OPTION . 



***************** 

***♦ 

♦ ♦ 

♦ A2 ♦ 

♦ ♦ 
♦ ♦♦♦ 



L 



*YES 

L**** 
>♦ ♦ 

♦ A3 ♦ 



* — l 



**** 

* A3 
* 

**** 

*****A3* ********* 

* * 

* SKIP SEEK * 
♦SEPARATION FOR ♦ 

* CLTEE BECUES1 ♦ 

* ♦ 
***************** 



***** E3 ***** + + ]t# + 
♦ICR FAS IS SEEK^ 

* SEEAR. NOT * 

♦ ALLCWED, SKIP * 

* IT * 

♦ ♦ 
***************** 



*****C3********** 
♦iCH SO VSAM 05 ♦ 

* IF OSES HAS * 
♦IONE CCS 1RANSL* 
♦TEE ECILSUBB IS* 

* SKIPPED * 
***************** 



*****! 3* ********* 
♦VIBT1E A67* 

♦-*-*-*-*-*-*-*-* 

♦ GET VIRTUAL ♦ 

♦ ABEF. CF CCM * 

♦ * 
***************** 



NO .* VALID *. 

, ♦. ADDRESS OR .♦ 

*.LCNG SEEK.* 



♦****! 3* ********* 

♦SKIP SEEK SEP. * 

NO *IF FJELE SOT IN* 

< — ♦ COEE,ADDR. ♦ 

♦ IKVALIE, ♦ 

♦ * 
**** ************* 



**G3******* 

* * 

* ♦ 
♦SEEK SEEASATICN+ 

* * 

* * 
*********** 



.♦ALREADY*. 
.♦ A REQUEST *. YES 

•QUEUED TO THE.+ 

♦. PUB .♦ 



* 4* **J3* ********* 



***************** 



♦SET POINTER TO 
>♦ CHAN. QUEUE 



***************** 



♦ADD NEW REQUEST* 

♦ TO END OF ♦ 

♦ CHANQ. ♦ 

♦ * 
***************** 



•n 






Chart A49. $$A$SUP1 - PIOCS Macro, EXCP (SVC 0) 
Refer to Chart 06.3. 



NO 


.♦ DEVICE 


♦ 


. YES 


""I 


♦. QUEUED FOR 

♦. ERROR , 

♦ . .♦ 


♦ 


n 


***** 


♦. .♦ 




♦♦♦♦♦ 


♦ 01 * 


♦NO 




♦01 * 


♦ K3^ 


I 




♦ K3* 


* * 




♦ ♦ 


* 




♦ 




***** 








♦02 * 








♦ H5^ 








* * 







Charts 307 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



.4 ENTRY *. 
. * CCJTJ4IN3 *. YES 
. EX'iiJJT IPO .* 






44*********** 
j **** 



♦NO 

i **** 

«->*04 * 



****AU* ******** 

* DIB52NTHY * 

* * 
*************** 



n 



**** 

LISTDIB 

*****]3 5** ******** 



***************** 



PROCDIB 

C«* *. 
.* *. 

YES .* 
, *. PROCEDURE 



**************** 



****E4********* 

* RETURN TO * 

* CALLER * 

* * 
*************** 



***************** 



****C5* ******** 

* RETORH TO * 

* CALLIR * 

* * 
*************** 



Chart A50. $$A$SUP1 - PIOCS Macro, Subroutines 



308 DOS/VS Supervisor 



* S7C76 * 

* * 
******** 4*44* 4* 



4***A3*<******* 

♦SVC25 BAIT I/C * 

* * 

444444444****** 



SVC27 

****4£3* 4*4*4**** 

*GETPEB * 

*_ 4- *_*_*- 4-*-*—* 
♦INITIALIZE EUB * 

* POINTER * 

* * 
*4 44 444 4 44*4- 4***4 



*****C3* 4 ******** 
♦ILLEGAL SIC FCR* 
NO EBR**CN £G BECU If *TP 

-* NOT HES OB * 

*CLTEE. EBCH BOB* 
TELIBCC * 
*****4****4*4 4 4 4********** 
*iȤ *01 * 

G3* A2* 



*****C4********** 



1 r> 



n 



* * * * 



**4>**D2 ********** 
*GETPUB A47* 



***************** 



♦YES 

L*4** 
>*48 * 
* G3 



********************** 
*02 * 
* H5* 



*****E3*444*4**** 
♦ILLEG SIC IE »0* 

* CLTIP ANE NO *EEB 
*TELEJBCC BRANCH* -, 

* FCB HOIT PEG * 7 

* * V 
*44 4*4 4*4***4********* 

*01 * 

* A2* 



TSTDIV2 

*****£ 3*4***4**** 

♦ HALT DEI IE NC * 

JGNR* CLTIP, IGNCBE *HALT 

-*BIO EEQC IF CCB*- 

NCT AVAIL 



rv 



■n 



*4***f 3*4******** 

* BALT DEV IF NC * 

* EG ASSIGNS NTS *HALT 

* OB CLTIP CCE " 

* FIFST ENTRY 



n 



LTLOOP .*. 

G3 *. 






. * *. 






.*LAST ENTRY 


* 


YES 


>*. IN CHANQ 
*. 

*. .* 


* 


-I 


*. . * 




***** 


* 




♦02 * 








* H5* 








* * 








* 










*****E3*> 


***** 




** 



PCIKT TC NEXT 
CBANQ ENTRY 



**** 44*4*44*4*4* 



J3 *. 
. * *. 

OLTEF CCE 



*4***K3*4******** 

* BEKOVE FECI! * 

* CHANQ, SAVE * 
*IOINTER, ABE TO* 

* FBEE LIST * 

***************** 



Chart A51. $$A$SUP1 - PIOCS Macro, RMSR Recording EXCP (SVC 76) , Halt I/O (SVC 25) 



Charts 309 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***** 51E3 
*5i * 51E3 
* A3* 



*. VIET.ETAK 



"•■n 



* C3 * 

**** 



♦ ft* 
* A5 



* 

•*-] 



**** 
NOCCHIO 

*****&5* * ******** 

*GO TO HABD BAIT* 

* IF NO RAS AND * 

* CHAN FAILURE * 

* * 
***************** 



*****B5** ******** 



* 370 DEV.IF NO *■ 
♦TELE PROCESSING* 



4****1.4****4 4***4 

**** 



n 



BTHI01 

*****C 1********** 
* NOBKAL HIO II * 

YE5*SAME CCB IF NOT* 

r* VIET. BTAH *<- 
* SIQUEST * 
* * 

********** *4********* 



* C3 * 

* * 
**** 



* C2 * 

* *_> 

**** 
ETHIO 



**** 

* * 

* C3 * 



-*.BTAK 3EQ0EST .* 



BTHI0 2 

YES . * 

r" 

**** 

* * 

* C3 * 

* * 
**** 



***** 
♦48 * 
* F3* 

* * 



.* VICTUAL * 

*.BTAM 3EQ0EST 

*. .* 

*. . * 

*. . * 


NO 
**** 






* 

* F2 
* 
**** 









REDDEST ON '. *<- 
PUB .* 



****** -| ********** 



********** 
] **** 



*****i22** ******** 

* SCAN FOB * 
NO *CORRE<r CCB I J * 

* HIO CCB NCT * 

* EyUAL PUB CCE * 

* * 
***************** 



**** 

* * 

* F2 * 



4* *****£ ********* 



*****£ 3********** 
*E1CUIUE CCB II * 
*EEV NOT BOSS 0R*YES 

*HAITING EOR EEV* 

* E«D CiLY * 



**4*44**4******** 



*****£3* ********* 

* * 
EHST*ISSUI HIO CCKND* 
, * FOB CHAN OEER * 

* IN EURST MCDE * 

* * 
****444*4******** 



13 *. 

.* LAST *. 

.* PUB *. 

♦.STflETEI.REISS. 

*. TEE HIO .* 

*. SVC .* 



********************* 



***** c 5** ******** 

YES*DEQUEUE CCB FOR* 

* THESE DE¥ IF * 

* TELEPBOC * 



IOPSET 

** ***D4 * 4<* * * **** * 
* * 

*STORE CHAN ADDR* 

>* AND GO TO *- 

♦DEQUEUE THE CCB* 



*************** 



*****05** ******** 



************* 



*1 

***** 
*48 * 
* F3* 



BAIT 

*****G3********** 

* CLEAR CKAN * 

* SCEED BITS IN *IRPT 
♦USER CCB ISSDE * 
*EIC CCKSC.EENCH* 
*1F INTBIT PEND * 
*44444******** ******** 



»n 



n 

******* 

♦01 * 
* A3* 



♦REISSUE 


SVC FOR*BOSI 


* HIO IF CONTRL *— , 

* UNIT EUSY * ] 

* * 7 


********************** 




♦ 48 * 


**** 


* F3* 


* * 


* • 


* E5 * 


* 


* *_> 




**** 




TPB0SY2 .*. 


E5 *. 


. * *. 


NO .* TELE *. 


*. PROCESSING .* 



>—J 



***** 
♦02 * 
* H5* 

* • 



*****jI2 ********** 



♦48 



F3* 



* CHA 
*CODE 

♦ 3RD 



NGE TIC OF * 

TO NOP IN * 

AND 6TH CCK* 



***#«**ic****4**** 

L*4** 
>*C2 * 
* H5 * 



*****E3********* 
* 

* CHECK IF 

* RETAIN/370 

* EEV ICE 
* 
*44**4********** 



TPBUSY3 ¥ 

*****H5** ******** 
* BRCH IF NO BG * 



TPBUSY1 

***■**,] 3* ********* 

♦TEST DEV IF NO * 

CHCK* CHAK EAIIU8E, * 

* GO TO CHAN *< 

* CHECK IF BAS * 

* * 
****4******** 

*** 

* 
A5 * 



***************** 



**** *j 5** ******** 
♦ENTER APJENDAGE* 

* IF HIO TO * 
-*RETAIN/370 AND * 

* NO OLTEP * 



********* 
*B82* 
* B3' 



INOFL 



**************** 



**** 



Chart A52. $$A$SUP1 - PIOCS Macro, Halt I/O (SVC 25) 



310 DOS/VS Supervisor 



****A2********* 

* S7C 3 FORCE * 

* DEQUEUE * 

* * 
*************** 



****j3********* 

* * 

* svc q * 

* * 
*************** 



*************** 



*****C 2 ********** 

* EXIT ?OR EFP * 

* REQUEST, ELSE *NO 

* DEQUEUE ENTRY * , 

*FROK CHAN QUEUE* | 

********************** 
I YES ** 1 * 

j **** * A3* 
« — >*C2 * * * 

* H5 * * 



:.•••-! 



*****C3********** 

* VAT IE * 
*_*_ *_*_*_*_*_*_* 

* VALIDATE * 

* ADDRESSES * 

* * 
***************** 



CH * 

* 

EMSR 



* CANCEL 

INVALID TO 
*. ADDR 



:••■-! 



***** 
*01 * 
* A2* 



*.TFIXED RECRU .* 



*****£ 3 ********** 



***************** 



**** 
->*02 * 
* R5 * 



*****i?y********** 

* * 
*GET ADDR OF SD * 

* RCRD AND PAGE * 

* FRAME* * 

* * 
***************** 



*****pt| ********** 

* GE* ADDR OF * 

* LAST BYTE OF * 
*RCRD AND CALCPL* 

* PAGE FPAME* * 

* * 
***************** 



**j4********** 



***************** 



*****^4 ********** 

* TFREE B44* 
*_*_*_*_*_*_*_*_* 

* TFRFE ^HE * 

* TFIXED PAGE * 



********* 



Chart A53. $$A$SUP1 - PIOCS Macro, SVC 3, SVC 5, Return to Supervisor froir FTA 



Charts 311 



***** 53D4 
*54 * 53E4 
* A1* 53K4 



**** I 
REE V 



**** 
ERPNORM 

***** B 1 ********** 

* * 

* BRANCH IF MORE *YES 
♦THAN 5 ENTRIES * 

* IN ERR QOEDE * 

* * 
***************** 



****C1 ********** 



***************** 
**** 



**** 
*****D1 ********** 



***************** 




***************** 



*****pl ********** 

* * 
♦DEACTIV ERP IF *YES 

* FIRST ENTRY * 

* ACTIV AGAIN 



:1 



*****D3 ********** 



***************** 
f **** 

L_>* * 

* D1 * 



*****2 2* ********* 



♦MOVE ENTRIES IN* 
♦ ERR QUEUE ♦ 



***************** 



F2 *. 
. * ♦. 

ALL HOVSE 



************ 

* * 

♦ AU ♦ 



*****£ 1 ********** 



***************** 



♦NO 

I #*** 

L_>* * 

* C2 * 



*****H2********** 



************* 



*****j1********** 

* * 

* FORCE ERP * 

* PTAFOUND TO *- 

* ACTIVATE * 

* * 
***************** 



♦ FREE THF PHYS ♦ 
>♦ TRANS AREA ♦ 

♦ DEACTIV EP.P ♦ 

♦ * 
***************** 



*****£4****** 



************** 



CRTIGN 

****C4 ********* 

* EXIT TO ♦ 
♦IGNORE, RETRY OR* 

♦ CANCEL ♦ 
*************** 



I 



Chart A54. $$A$SUP1 - PIOCS Macro, Return to Supervisor from PTA 



312 DOS/VS Supervisor 



****A 2*** ****** 

* NO MORE PG * 

* FRAMES AVAIL * 

* * 
*************** 



*****p 2** ******** 

* * 

* GET NUMBER OF * 
♦TASKS FOR LCOF * 

* CNTRL ♦ 

* * 
***************** 



NXT11 V 

*****(- 2*** ******* 

* RESET REQDFST * 

* IF TASK HAS *PSFT 

, >*SVC«4 TFTX FECU* 

* PENDG * 

* * 
***************** 



********** 



*****£ 2** ******** 
* * 

NEXT* EXIT IF AIL * 

• +TASRS CHECKED. * 

♦ELSE CHECK KFXT* 



****E 2 ********* 
♦RETURN TO PAGE * 

* HA NAG * 

* * 
*************** 



_*_*_*_*_ 



*********** 



***£ 3 *********** 

* INEIC ENTRY ♦ 
WAS FOUND IN 
* PGQU * 

**************** 



***************** 



***** B i| ********** 

*NXT3 A56* 
*_*_*_*_*_*_*_*_* 
*PREP SAV AR FOR* 
♦RESUMG EXEC OF * 
* SVC44 LATER * 
***************** 



***** D 4 ********** 

* SET TASK * 

* WAITING, PREV * 

* ACTIV OF PFG * 

* BOUND TASK ♦ 

* * 
***************** 



*****p 4* ********* 

* CHECK FOR NXT ♦ 
*TSK IF TFIX HAS*NO 
♦NOT BEEN POSTED* ^ 

* DUE TO TFREE ♦ 

* * v 
********************* 



****G4* ******** 
♦RETURN TO PAGE ♦ 

* MANAGER ♦ 

* * 
*************** 



Chart A55. $$A$SUP1 - PIOCS Macrc, Reset SVC 44 Request 



Charts 313 



****A1 ********* 

* S7DEACT * 

* DEACTIVATE * 

* * 
*************** 



* CALCUL OFFSET * 

* IN SVC44 CTEL * 

* FIELD * 

* * 
***************** 



*****CI ********** 

* NOTHING TO * 

* RESET IF NO * 

* SVC44 REQO ♦- 

* PENDING * 

* * 
***************** 



* INDICATE * 

* NOTHING TO * 

* DEACTIVATE * 

* * 
***************** 

**** 

* * 

* E1 * 

* *_> 
**** 

OKDEACT 

***** El ********** 

* * 

* POINT TO PG * 

* MA NAG PE STORE * 

* REG * 

* * 
***************** 



****F1********* 

* * 

* RETURN * 

* * 
*************** 



* CLEAR SVC 44 
->*INDIC FOR THIS 

* TASK 

* 

************ ****: 



*****D2********** 

* * 
NOCL* DON'T TFIX * 

-♦INDIC IF OTEER * 

* REQU PENDG * 

* * 
***************** 



*****E 2*** ******* 



***************** 



NOCL44 V 

*****p 2* ********* 
♦SET OP INSTP IN* 

* PSW FOR RS1RT * 
♦SVC44 WHEN TASK* 

* IS POSTET * 

* * 
***************** 



TF44R2 V 

*****Atj********** 

* * 

* PREPARE * 
, >* PARAMETER FOR * 

♦TFREE 2ND PAGE * 
j * * 

********************* 



* A4 * 



****HS* ******** 
* 

* NXT3 

* 

*************** 



I 



******* 



♦TFRFE 1ST PG IF* 

>* 1ST TFIX *■ 

* FECOCCMPLETFD * 



*****H 2*** ******* 

* IS 2ND TFIX * 

* REQO COMPL * 

* TFRFE 2 TIMES * 

* ELSE TFREE 1ST * 

* PG ONLY * 
***************** 

| 2ND 



TF44F1 

*****H3********** 

♦CALCULATE REAL * 

* PAGE FRAME * 
— >*NUMEER OE LAS1 ♦ 

♦RYTE 0^ RFCCRD * 

* * 
***************** 



************** 



I **** 
l_>*<48 * 
* F3 ♦ 



Chart A56. $$A$SUP1 - PIOCS Macrc, Check Whether Deactivated Task has SVC 44 Request 
with TFIX 



314 DOS/VS Supervisor 



SVC 7 



reissue svc 

AFISR PAGE 
FAULT 



**A3*****; 
SVC 9 



*q1********** 



I ... 

f—>*H8 



**ES 
J 61DU 



*. TIMER SUPPORT.* 



1 



* SET WIN/MAX 

* INTERVAL FOR 

* INTERVAL TOO 

* SMALL/LARGE 






* ADD NEW 

->* INTERVAL FROM - ; 

* SJfSTOD 



***** B 5* ********* 
♦INCREMENT TIME * 

* OF DAY HITH * 

* TIRE SINCE * 

* 'TIMER KENT TO * 

* ZERO * 



*PLUS LENGTH OF * 

* TIME INTERVAL * 

* SET * 



*UPDATE TIM±i OF • 

* DM WIfri TIME : 

* ELAPSED 



Chart A57. $$A$SOPl - SGSVC Macro, Entry for SVCs 7, 8, 9, and 10 
Refer to Chart 05.1, 



Charts 315 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



***** t,7c« 



*****A1****** 



* 


****A4***»* 


GET TIBS * 




1NTEPVAL IN REG* 


* SVC 11 



. hiiitiSE :\invu. 



*GS? DlfFfEENCE ; 
->*0f 3LD AND *.EH : 

* interval 



SVC24K V 



SVC^-Jti Afcl* 



*STOFE INTERVAL, : 
->* PIK, TIC INTO ' 
* ITPEQ TAB 



*1TES *0u 



TIflEP 

imrEP.p. 

PENDING 



*YES *0^ * 



*. ACCOUIv— 1;^ 



UPDATf SYS TOD 



I >| 



5\(l/4^ V 



t->*06 * 



6ITC24G V 

**„=** H 1*x- ********* 

'SVC^4H Afel* 



< 10 *0 2 



Chart A58. 



$$A$SUPl - SGSVC Macro, Set Timer Interval, Provide Linkage (SVC 24) 
Refer to Chart 05.1. 



316 DOS/VS Supervisor 



Page of SY33-8551-1, revised January 2, 1974, by TNL SN33-8769 



****ai ********* 

SVC 12 * 

* 
*************** 



*.PCIL SUPPORT 



****£3******** 

* 

* SVC 13 

* 
************** 



*. R1 IS ZERO .♦- 



*****D1 ********** 

* * 
♦TORN OFF BIT 5 * 
*OF CCHREG BYTE * 

* 59 * 

* * 
***************** 

L**** 
>*02 * 
* H5 * 



***************** 



V 
***** 

♦ 87 * 

* A4* 



C3 


* . 




.* *. 




*. NO 




Rl IS ZERO .* — > 




.* 




*. .* 




*. .* V 


* YES ***** 




*87 * 




* A5* 




* * 


' 




1" 



*****D3* ********* 



*************** 



**** 

->*02 * 

* H5 



****& 5* ******** 

* * 

* SVC 16 * 



SVC16 

*****g 5* ********* 

♦GETPC A60* 

* SET POINTER TO~* 

* TASK'S ENTRY * 

* * 
***************** 

**** 

♦59 * ) 60B3 

* C5 *->! 60 B5 
! 60H2 

**** 
COHSVCE 

C5 
.* 
NO .* PA 



***** D 5* ********* 
♦VALID A69* 

*_*_*_*_*_*_*_*_* 

* VALIDATE SAVE * 

* AREA ADDRESS ♦ 

* * 
***************** 



*****]? 5********** 



*************** 



Chart A59. $$A$SUP1 - SGSVC Macro, Entry for SVCs 12, 13, and 16 
Refer to Chart 05.1. 



♦SET ROUTINE AND+ 

* SAVE AREA ♦ 

* ADDRESS ♦ 

* * 
***************** 



Charts 317 



****A1*** ****** 

* * 

* SVC 17 * 

* * 

*************** 



****A2********* 

* * 

* GETPC ROOT IN E * 

* * 
*************** 



****A3********* 

* * 

* SVC 18 * 

* * 
*************** 



****A4********* 

* * 

* SVC 19 * 

* * 
*************** 



****A5********* 

* * 

* SVC 20 * 

* * 
*************** 



SVC17 

*****B1 ********** 
♦GETPC A60* 



***************** 



COBSVCO V 

*****C1********** 
♦EXITRTRN A60* 



***************** 



L**** 
>*07 * 
* K4 ■■ 



****Q1*** ****** 

* * 

* SVC 21 * 

* * 
*************** 



*****H1********** 



***************** 



*****32***** ***** 

* * 

* POINT TO * 
♦BEGINNING 0* FC* 

* TABLE * 

* * 
***************** 



COMTABA v 

*****£ 2********** 
*GET REQUESTOR'S* 

* KEY AND * 
♦CALCULATE THIS *<- 

* TASK'S ENTFY * 

* * 
***************** 



*GET ADDS OF IT * 

♦ TAB AND USE ♦ 

♦ COHHON RT ♦ 

♦ * 
***************** 

L**** 
>*59 * 
* C5 * 



♦GET ADDR OF IT ♦ 
♦TAB AND OSE COM* 

♦ ROOT * 

* * 
***************** 



l_ .... 

>— >* * 



***************** 



L 



**** 

>*59 * 
* C5 



***************** 



** E 2********* 
RETORN TC * 
CALLER * 

************* 



****32******** 
* 

* SVC 37 

* 

************** 



SVC 37 V 

*****£ 2*** ******* 
♦GETAB A60* 

♦GET AB ROUT AND* 

♦ SAVE ADDF ♦ 

* * 
***************** 



****G3********* 

* ROUTINE TO * 

* POINT TO TASK * 

* ENTRY * 
*************** 



***************** 



****G4********* 

* * 
♦EXITSAV ROUTINE* 

* * 
*************** 



EXITSAV 

*****H4*******nc*« 

* NAP PSW TO BC * 

* MODE AND SAVE * 

* INTERRUPT * 

* STATOS ♦ 

* * 
***************** 



****JI» ********* 

* RETORN TO * 

* CALLER * 

* * 
*************** 



****G5********* 

* EXITRTRN * 

* ROOTINE * 

* * 
*************** 



EXITRTRN V 

*****H5* ********* 

* HAP PSW TO EC * 

* HODE AND RETORN* 

* THE INTERROPT * 

* STATOS * 

* * 
***************** 



****j5* ******** 

* RETORN TO * 

* CALLER * 

* * 
*************** 



Chart A60. $$A$SUP1 - SGSVC Macro, Entry fcr SVCs 17-21, 37 
Refer to Chart 05.1, 



318 DOS/VS Supervisor 



**** A 1 ********* 

* * 

* SVC 22 * 

* * 
*************** 



****A3********* 

* * 

* SVC 23 * 

* * 
*************** 



****A4********* 

* * 

* SVC 24 * 

* * 
*************** 



**** A 5*** ****** 
* 

* SVC 2<*H 

* 

*************** 



*.PSW KEY ZERC . ♦■ 



.. ..■* ^ 



-*. PIPS SUFPORT .♦ 



*#***£) 1*** ******* 

* SWITCH THE * 
*SEIZE FLAG AND * 
♦FLIP THE SEIZE * 

* BYTE * 

* * 
***************** 



.♦ ♦ . NO 


.♦ DOES 


PART ♦. 


NO 


*.PSW KEY ZERO .* , 


*. OWN TIMER 


*~1 


*. » * 
*. .* 


*. .* ***** 


*. . * 


***** 


*YES *oa * 


♦YES 


*r>4 * 


J * AH* 






* £«♦ 


* * 






* * 


J * 






* 


V 


' r 




*****C3 ********** 


*****Ct|* ********* 


* * 


♦VALID A69* 


* LOAD PHASE * 


*_*_*_*_*_*_*_*_* 


* HEADER * 


♦ VALIDATE TECB 


* 


* * 


♦ ADDR 


* 



***************** 



***************** 



***** D4 ********** 

* * 

♦ RESET TRAFEIC ♦ 
♦BIT, GET ADDR OF* 

♦ IT TAB ♦ 

* * 
***************** 



♦DELETE INTERVAL^ 

♦ IF ALREADY IN ♦ 

♦ ITREQ TABLE ♦ 

♦ * 
***************** 



****CS ********* 

* * 

* RETURN ♦ 

* * 
*************** 



** EE SET ."* 



*****]?•]*** ******* 

* * 

* * 

* SET USER KEY ♦ 

* * 

***************** 



**H1******* 



****** *********** 



i__>*02 * 



♦ H5 * 

* * 
**** 



*********** 



u 



Chart A61. $$A$SUP1 - SGSVC Macro, Entry for SVCs 22, 23, and 24 



Charts 319 



****£ -|********* 

* * 

* SVC 52 * 

********* ****** 
1 



****& 4********* 

* * 

* SVC 2 6 * 

* * 
*************** 



*GET TIMER VALDE* 

* * 

* * 
***************** 



***** 
*nu * 
♦ A 4* 



. ♦ . 

C1 *. 
. * *. 
.* INTEFV OF *. YES 

*. TASK IN LOC .* ~, 

*. 80 .♦ J 
♦. .* V 
*. .* **** 
♦NO * * 
* E2 * 



*****c u* ********* 
♦VALID A69* 
*_*_*_*_*_*_*_*_* 

♦ VERIFY ADDR * 

♦ LIMITS ♦ 

♦ * 
***************** 

**** 

i—>*<\2 ♦ 
♦ H5 ♦ 



*****£ 1 ********** 

♦ SEARCH ITBEC * 

♦ TABLE FOR ♦ 

♦ INTERVAL OF ♦ 

♦ PARTITION ♦ 

♦ * 
***************** 



♦ INDICATE NO ♦ 

♦ INTERVAL ♦ 

♦ PENDING ♦ 

♦ * 
***************** 



**** 
->*02 ♦ 
♦ H5 ♦ 



SVC52B 

*****f)2**+++ ♦♦♦♦♦ 

♦ GET INTERVAL ♦ 

♦ AND ADD IT TO ♦ 
>+VALUE FROM IOC ♦ 

♦ no * 



***************** 

**** i 

* * ] 

* E2 ♦ 

* *_>} 
**** j 

SVC=2A V 

*****3 2********** 



*********** 



I 



SVC5 2G V 

*****H 2 ********** 

♦ DELETE THI * 
♦ENTRIES AS LOHR* 

♦ AS THE NEXT ♦- 

♦ ENTRY IS NOT ♦ 

♦ MAX VALUE ♦ 
************ ***** 



SVC52H 

***** G ^ ********** 

♦ INDICATE ♦ 

♦ FUNNING ♦ 
>♦ INTERVAL ♦ 

♦BELONGS NOT TO ♦ 

♦ A TASK ♦ 
***************** 



*E3********** 



***************** 



*****j3********** 



***************** 



t**** 
->*02 ♦ 
♦ H5 ♦ 



Chart A62. $$A$SUP1 - SGSVC Macrc, Entry fcr SVCs 26 and 52 



320 DOS/VS Supervisor 



****A1* ******** 

* * 

* SVC ?.9 * 

* * 
*************** 



***** 3 ********* 

* * 

* SVC 33 * 

* * 
*************** 



****&4********* 

* * 

* SVC 34 * 

* * 
*************** 



**** 

* * 

A5 



* * . 



*****& 5********** 



***************** 



* SET POTJTINE * 
♦IDENTIFIER FOE * 

* WAITH TYPE * 

* * 
***************** 



* SCAN ECB LIST 



***************** 



.*FIEST TIHE *. YES 



**E1******* 



..•* 1 r 



***** 

*B02 

* CI 



ISSUED BY *. 


NO 


SYSTFP TASK , 


-1 


* *. . ** 


*. . * 


***** 


*YES 


*02 * 



— ■*. TOD SUPPORT .* 



*****£ 4* ********* 



***************** 



♦STORE ICB AtER * 
>* IN USERS * 

* REGISTER 1 * 

* * 
****** *********** 

L**** 
>*03 * 
* D3 * 



♦.MICH SUPPORT .*■■ --, 



***** 
*0 5 * 
* J4* 



*.WAITK SUPPORT. *- 



***** 
*YES *02 * 

* H5* 



**D3********** 



***************** 



*****j3 ********** 

* * 

* * 

* DEACTIVATE TJSK* 

* * 

* * 
***************** 



****-p3********* 

* RETURN TO * 
♦CALLER CR EXIT * 

* * 
*************** 



! 

1 



NO . *SYSTEM TASK*. 
*. REQUEST . * 



*****£{} ********** 

* * 

* POINT TO * 

* CURRENT SYST * 

* TASK BLOCK * 

* * 
***************** 



♦CREATE DEFAULT * 

* PAR AM IF NOT * 

* NEW GETIHE * 

* * 
***************** 



***************** 



* ZERO OUT * 
— >*REGISTER AND * 

* 1 ♦ 

* * 
***************** 

**** 

* 63 ♦ 

* C5 ♦- 

* * 
**** 

EX IT TOD 

*****C 5* ********* 



***************** 



L 



**** 

•>*02 ♦ 
* H5 ♦ 



. .* ***** 

♦YES *05 * 

j **** * j(j* 

L_>*02 * * * 

* H5 * * 

* * 
**** 



* STORE CLOCK * 

* * 

* * 
***************** 



. *CLCK IN SET* 




STATE 


*1 


*. .* 
*. . * 


*. .* 


**** 


*YSS 


* 


I 


* A5 


I 


* 


V 


**** 


***** 




*6U * 




* A1* 





Chart A63. $$A$SUP1 - SGSVC Macrc, Entry fcr SVCs 29, 33, and 34 



Charts 321 



***** 63K4 
♦64 * 
* A1* 



PROCESS 

***** A "| ********** 

♦CALCULATE TIME * 

* OF DAY FOR * 
♦GREENWICH MEAN * 

* TIME * 

* * 
***************** 



SUBMIDHI 

*****B1 ********** 

* CALCULATE THE * 
*DAY DIFFERENCE * 

* FRCM LATEST * 

* DATE * 

* * 
***************** 



*****C1 ********** 

* * 

* CALCULATE NEW * 
♦MIDNIGHT VALUE * 

* FOP GMT * 

* * 
***************** 



CALTULP 

*****D1 ********** 

* CALCULATE TOD * 

* FOR GMT AND * 

* LOCAL IN TIME * 

* UNITS * 

* * 
***************** 



*****£-)********** 

* * 

♦UPDATE SYSTEM, * 

* JOB AND * 
♦GREENWICH DATE * 

* * 
***************** 



**** 
* A4 



•'"I 



♦♦♦♦A 2** ******* 

* * 

* SVC 44 * 

* * 
*************** 



♦YES 
! 



*****P3 ********** 



***************** 



**** 
->+02 ♦ 
♦ H5 ♦ 



*************** 



REQUEST 
FROM PEAL 
. PROGRAM . 



*****]? 2 ********** 

* * 

* INDICATE * 

* REQUEST FOR * 

* THIS TASK * 

* * 
***************** 



*****p 2 ********** 



♦IDENTIFY SVC 44* 
* TFIX REQUEST * 



**** 
TFX44 

*****£ 4********** 

♦TFIX B44* 
*_*_* _*_*_ *_ *_*_ * 

* * 

* TFIX IT * 

* * 
***************** 



***** B 4********** 

♦ CLEAR TASK ♦ 

♦ INDICATOR IN ♦ 

♦ SVC 44 CONTROL ♦ 

♦ FIELD ♦ 

♦ * 
***************** 



****C4******** 



***************** 



YES .♦ TFIX REQ 

♦. PEND FOR 

♦. SVC44 



**g(l******* 

* * 

* CLEAR TFIX ♦ 
INDICATOR FOR 

* SVC 44 ♦ 

* * 
*********** 



— >+.REAL REQUEST . ♦- 



I 



***************** 



♦TFIX SD RECCRD * 
* * 

***************** 



RQ v 
**G4***** 



CLEAR ERROR * 

QUEUE ENTRY AND* 

POST ALTERNATE * 

ENTRY * 

* 

**************** 



. * 


***** 


*YES 


*56 * 


| **** 
L_>*48 


* A 4* 


< * * 


* F3 


* * 



♦GET ADDRESS CF ♦ 

♦ LAS m 3YTE CF ♦ 

♦ RECORD ♦ 

♦ * 
***************** 

j **** 

l_>* * 

* A4 * 



. * 


*. 


YES 


♦.REAL REQUEST . 


*-) 


♦. . ♦ 

♦ . .* 


♦. . ♦ 


***** 


♦ NO 


*65 ♦ 






* R -|* 



*****j4* ********* 

♦ INDICATE TFIXED+ 

♦ RECORD AND ♦ 
♦INCREMENT TFIX ♦ 

♦ COUNT ♦ 

♦ * 
***************** 

L**** 
>+65 ♦ 
♦ A1 ♦ 



Chart A64. $$A$SUP1 - SGSVC Macro, Entry for SVC 44 



322 DCS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974., by TNL SN33-8790 



*3AVE Si. COED AND* 

* fijiO/JE 313 i> * 

* IhjrO?.M?.1'IOK * 



*CLEA3 FLAG BITE* 
*AND iiOVE FrtTfY * 
*TO LND OF uOEU?* 



i **** 
t— >*21 



svr «i> 



I3ST F.EG 1 



EUECB 

***** B 3= 

*VALID 



STOF.E ECB 

ADDPESS IN 

TABLE 



'1 



****A5********* 

* * 

* SVC CRTATTNT * 

* - * 
*************** 



INDICATE DOCK 

NEXT PHASE TO 

FETCH 



cu *. 




**C5******* 










NO 


* INDICATE 


OLTEP IN BG 


• 


* FETCH IN 




* PROCESS 




V 








*********** 


"**es 

1 
1 


*0« * 
* A4* 


I 



****£ -J** *** 



♦CfiTJSATFY B01* 



*__ 



J1 * 



JfU'H00K4 V 

*F£fCn 303* 



SVC 51 
I 



SVCbl 

***** 32 
* VALID 



♦FETCH CET t>H/ SZ* 



* SET OP TO 
*EPANCH TO FfiEE ' 

* PEAL ROUTINE 



j **** 

«->*BU3* 

: A2„ 



*********** 



****D5 ********* 
♦FETCH $$BOCRTK * 
* SVC48 A 



****p 5 ********* 

* * 

* SVC 55 * 
*************** 

I 



***G 5* ********* 



* SET OP TO 

* BHANCH TO GET 

* REAL FOB SDAI-D 


: 


***************** 




] **** 

«— >*amj* 

1 A3.** 



Chart A65. $$A$SUPl - SGSVC Macro, Entry for SVCs 45, 46, 48,, 51, 54, and 56 



Charts 323 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



SVC b2 



SET OP TC 
BPAfCH TO 
CLEARPAB 



* SET UP TO * 
*LRANCH TO SVC59* 

* FOUTINE * 



* SET UP ro 

* BRANJri TO 
*GETVIS ROUTINE 



* SET UP TO * 

* BEANCH TO * 
*FFEEVIS ROUTINE* 



*B70* 
t B5« 



->*B72* 
* B1 ** 



*D2***** 

svr tfc 
I 

I 



SVC 67 



SVC 69 * 

*********** 



. **** 
«— >*B6 9* 



.* USFP 


TSK * 


YE 


*.ECNS IN VIST . 




*. tfJDE .* 












"*NO 


*0 






* 


*66 * 


67H2 




* Fi *-> 


bbCJ 






70K2 










FTCODF V 




*****P2******»* 








* Sf )3E FETUiN 


* 


*COD£ Hi RETCFN 




1 FGI 


3 TEE 


* 



* SET UP TO 
*E5ANCH TO PFIX 

* BOO TIKE 



->*B54* 
* A2* 



* SET UP TO * 

*BFANCH TO PFREE* 

* SOU TINE * 



* A2** 



A DDR . * , 



♦CALCULATE HEAL * 
*PAGE NUMBER AfiD* 

* GET CORRECT * 

* FNTP.r IN PFTX * 



PAGE PFIXiSD .*- 



PASS P5AL 

ADDRESS TO 

CALLER 



Chart A66. $$A$SUP1 - SGSVC Macro, Entry for SVCs 57-59, 61-62, 65-69 



324 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



* SVC 70 



SVC 71 



SVC 72 



. * *. * STOfiE USER * 

PAF? MEIER *. YLS * ADDRESS IN * 

PA1-SED .* >* PAGEFAULr APP * 

.* * • TABLE * 

*. . * * * 



L>*02 * 



* SET UP TO 
♦BRANCH TO CBOF 

* ROUTINE 



L 



>*B31* 

* M ** 
**** 



RESET LINKAGE 



«— >*0^ * 



* SaVE ?.IAL 

* AuDKFSS AND 

♦calculate rzll 

* tHuF tt-JMBff 



< *. PAGE 'JSeQ 



*. DKiP BIT OK .* 



->*'.Ck^L£P~tY SVC** , 

■•.. 70 ..■* n 



SVC 9C * 



* S£l HIGH * 
05 DSP E¥T£ Cf * 

■■* po to x'yo' * 



* svc yi 



* -Sfir tlIGH * 
ORDER BYTE OF * 

* PO 10 X'91' * 



-* iOfcBF/VS *- YfS 

ACCOUNT . * >** yO/yi)' ** 

*. SUFPOFT -* ** APPF.MDAJE ** 



I .... 

i_>*02 * 



Vlt^l:AD^ V 



U 



Chart A67. $$A$SUP1 - SGSVC Macro, Entry for SVCs 10-12, 9-0-91 



Charts 325 



* SVC B.KSGRHP2 



| .... 

«-->*02 * 



- 5 rir UP TC 
*3£MJK TO PfIX ; 
* iOOrj.NE ECf 



->*B4 9* 



SVC7 7 V 

*CSh'TR5VC £2 7 

*G£T AP DRESS Of 

* ORIGINAL 3S£fi 

* ccw 



Pi>SS BETUF.N * 

PARAMETER IN * 

REG * 



FMSGETP2 V 



-*. REQffesr 



*****D4****** 



RETURN TO 
CALLER 



Chart A68. $$A$SUP1 - SGSVC Macrc, Entry for SVCs 73, 7U f and 77 



326 DOS/VS Supervisor 



* ADDRESS * 

* VALIDATION * 

* ROUTINE * 
*************** 



****A4********* 

* POHGE WAIT * 

* ROUTINE * 

* * 
*************** 



****g3********* 

* * 

* RETURN * 

* * 
*************** 



RWAITL V 
*****gl|* ********* 

♦ COMPOTE * 
♦DISPLACEMENT OF* 
♦REQUESTING TASK* 

♦ WAIT LIST SLOT ♦ 

♦ * 
***************** 



♦ LOAD REAL ♦ 
♦ADDRESS OF HIGH^ 

♦ ADDRESS ♦ 

♦ * 
***************** 



*****C4 ********** 



********** 



:, ;t -i 



* GEr PROGRAM / ♦ 
-> ♦STORAGE KEY IN ♦ 

♦LOW ORDER B7TI ♦ 

* * 
***************** 



***************** 



♦.MATCH PIK KE¥<+"- 



♦ LOAD REAL ♦ 
♦ADDRESS OF LOW ♦ 

♦ ADDRESS ♦ 

♦ * 
***************** 



->♦. CRT SUPPORT 



NO .♦ TABLE ♦. YES 

_. — *, LENGTH .♦ 

♦.VIOLATION.* 



***** 

♦ 04 * 

♦ M* 





* 




* 


NO 


♦ 


CRT 


ACTIVE 




-1 




♦ . 

*. 


. *' 


* 




* 


. . ♦ 

♦YES 

1 
I 




***** 

*ou * 

♦ At* 

* * 

* 


*****j3 ********** 


* 








* 


* 








* 


* 


FLftG 


ERROR 




* 


* 








* 


* 








* 


***************** 



***************** 



****K3********* 

♦ RETURN TO ♦ 

♦ CALLER ♦ 

♦ * 
*************** 



Chart A69. $$A$SUP1 - SGSVC Macrc, Address Validation 



Charts 327 



****A1******* 
* SVC 6P 



* INDICATE SVC 

* BEQUEST 



***************** 



**** 








* * 








* A3 ♦ 








* *_ 


1 






**** 
GETD^ 






*****j 3* ********* 


* 






* 


* CALCULATE 


* 


>+FEHAINDER 


BINDS* 


*2K OF 


I/O 


AREA 


* 



***************** 



.♦OFFSET LESS*. YES 
♦.I/O AREA PART.* 



****A5********* 

* * 

* SYC 35 * 

* * 
*************** 



**************** 



*****£ 3* ********* 

* POINT TO NEXT * 

* IDAL WORD AND * 
-* GET NEXT PART * 

* OF I/O ARIA ♦ 

* * 
***************** 



**************** 



REAL * 

STORAGE 
ADDRESS .* 



. * ***** 

*YES *01 * 

* A 2* 

* ♦ 




F1 *. 

. * *. 

. * 
*. IDAL BIT ON 



GETD2 V 

*****p 2 ********** 

* CALCULATE * 
♦VIRTUAL ADDEESS* 

>*FEOK R3AL PAGE * 

* FRAME NUMBER * 



***************** 



.* USER *. 
. TRANSLATED . 
*.CHAN PROG.* 



*****£5* ********* 
♦VIRTAD A67* 
*_*_*_*_*_*_*_*_* 
♦GET VIRT. ADDR.* 

♦ OF CCW * 

* * 
***************** 



.* EXISTS *. NO 

*. VALID VIRTUAL.* 

*. ADDRESS .* 



***** 

♦ 01 * 

♦ A 2* 



SAM SUPPORT .♦ , 

"♦. .** V 



* A3 1 
**** 



*****{] 1 ********** 

♦ VIRTAD A67* 
*_*_*_*_*_*_*_*_* 
♦CONVERT ADDRESS* 

♦ OF IDAL TO ♦ 

♦ VIRTUAL ♦ 
***************** 



G2 ♦. 
. * *. 

PAG3 USED 



I 



*****fj 2 ********** 



***************** 



*****p 5 ********** 
♦HOLDFREE A72* 

*_*_*_*_*_*_*_*_* 
♦SUBROUTINE FOR ♦ 

♦ HOLD AND FREE ♦ 

* * 
***************** 



Jl ♦. 


J2 *. 


.♦ ♦. 


. * *. 


♦IS ADDRESS ♦. NO 


.* ♦.NO 


VALID .* 


>♦. CALLED BY SVC* , 

A ♦. . * 1 
1 *. .* V 
**** * m .* ***** 


*. .♦ 
♦. . ♦ 


♦ . . * 


*YES 


* * *YE5 *02 * 


| **** 
L_>* * 


♦ J2 * ! ♦ H5* 


* * 1 * * 


* A3 * 


**** * 


* * 




**** 


1 




*****K2********** 




* INDICATE * 




* PARAMETEF * 




♦REGISTER, PASS ♦ 
♦VIRTUAL ADDFESS* 






* TO CALLEF * 




***************** 

I 




J 

***** 




♦66 * 




* F2* 



. * ***** 

♦YES *71 * 

* A2* 



♦.BY REQUESTOR .* 



"1 



♦ . .♦ 


***** 


♦NO 


♦71 * 


) 


* 11* 


1 


♦ * 


V 


* 


***** 




♦ 71 * 




* AU* 





Chart A70. $$A$SUP1 - SGSVC Macro, Provide Virtual Address of Lccaticr in I/O Area 
(SVC 60) 



328 DOS/VS Supervisor 



***** 70KS 
*71 * 
* A1* 



♦71 * 
* A2* 

* * 



***** 70K5 

♦ 71 * 

* AU* 



..•*— i 



***************** 



***************** 



****& 5********* 

* * 

* SVC 36 * 

* * 
*************** 



**B2********** 



*****P3 ********** 



********** 



*****p 4*** ******* 

* * 

* POT REQUESTOR * 

* IN WAIT STATE * 
♦AND REDRIVE SVC* 

* * 
***************** 



***** 
*01 * 
* A2* 

* * 



-*. VSAH SOPP. .* 



************ 



***************** 



***#*!■)?■***** ***** 

* CALCULATE * 

* DISPLACEMENT * 

* AND POINT TO * 

* FREE ENTRY * 

* * 
***************** 



.* OSEP *. 
< — *. TRANSLATED . 
*.CHAN PROG.* 



*mWP F3FE LIST 

* PTR TO NEXT 

* ENTRY 



*****T7 3 ********** 



***************** 



***** E 5* ********* 
♦VIRTAD A67* 

*_*_*_*_*_*_*_*_* 
*GET VIRT. ADDR.* 

* OF CCW * 

* * 
***************** 



*****F ?********** 

* * 
♦INSERT CCB BEEF* 
♦AND TRACK ATDR * 

* TO BE HELE * 

* * 
***************** 



*****p 3* ********* 

* * 

* INDICATE NO * 
♦ENTRY AVAILABLE* 
♦AND PEDPTVE SVC* 

* * 
***************** 



.* EXISTS *. NO 

♦.VALID VIRTUAL. ♦ 

♦. ADDRESS .♦ 



***** 
*01 * 
♦ A 2* 



CHKTRK V 

***** G 5********** 

♦HOLDFREE A72* 



*************** 



******** 



*****f?2********** 



* IS TRACK *. NO 
BEING HELD .* 



********* 



_>*H8 * 

* E4 * 

* * 
**** 



.* IS TRACK *. YES 

*. BEING HELD BY.* n 

*. REQUESTOR.* J 



* ♦. 


. *" 


***** 


*NO 


*72 * 






♦ R1* 






* * 






* 


■ 


' 




. *. 




K5 *. 




♦ *. 




REQUEST * 
PROW 


YES 


*— 1 


TRANSIENT.* 


*. . * 


V 


♦. . ♦ 


***** 


♦NO 


*72 * 


I 


* A1* 


I 


* * 


V 


* 


***** 




*M * 




* J 


\2* 





Chart A71. $$A$SUP1 - SGTHAF Macro, Held Track (SVC 35) , Free Track (SVC 36) 



Charts 329 



***** 71J5 
*72 * 71K5 
* A1* 



* BORE THAN *. NO 

ONE HOLD ON .* 

*. TRACK .* 



*****B 1 ********** 

* * 
*DECREHENT TRACK* 
*HOLD COUNTER BY* 

* ONE * 

* * 
***************** 



**** 

->*0 2 * 

* H5 



SVC36A 

*****A2********** 

* * 
♦SAVE AND SETUP * 

>* PREELIST * 

* POINTER * 

* * 
***************** 



*****B2***** ***** 



***************** 



SVC 36C I 

*****C2********** 

* SAVE TH FP1E * 

* LIST PTR TO * 
*THIS ENTRY AND * 

* ZERO TASK ID * 

* * 
***************** 



*****q 2*** ******* 

* * 

* * 
♦RESET FLAG EYTE* 

* * 

* * 
***************** 



E2 * 

.* IS A 

TASK 

WAITING 

K THIS 

♦.TRACK 


*. 
*. 

FOR . 
. * 

* 


YES 





***** £3* ********* 

* * 

* * 
>* POINT TO MVCFLD* 

* * 

* * 
***************** 



"1 



*****£ 2********** 



************ 



****A 4* ******** 

* * 

* HOLDFREE ♦ 

* * 
*************** 



HOLDFREE 

*****34********** 



**************** 



C4 *. 
. ♦ *. 

.♦ * 

-♦.VSAH SUPPORT 



.♦ USER ♦. 
.♦TRANSLATED * 
-*. CHANNEL PROG 



*****£!!*** ******* 
♦VIRTAD A67* 

*-*—*_*_*_*_*_*_* 
♦GET VIRT. ADDR.+ 

♦ OF CCW * 

* * 
***************** 



VALID * 
VIRTUAL 
ADDRESS .* 



***** 
♦01 ♦ 
♦ A2+ 



I 



♦INDICATE ENTRY ♦ 




.** 


** 


YES 


♦ AVAILABLE ♦ 


* 


.END OF HVCFLD 


*~1 


* * 

* * 




*. .* 
*. .♦ 


***************** 




*. .* 


***** 


I .... 

i— >*02 ♦ 






•■NO 


♦ 02 * 

* H5+ 
* * 


♦ H5 ♦ 








* 


* * 










**** 












***** H 3 ********** 




* 


GET PIB 


* 




* 


DISPLACEMENT 


* 




* 


AND POINT TO 


* 




* 


P] 


[B 


* 



***************** 



♦ SAVE REQ'RS ♦ 

♦ TRACK ADDRESS ♦ 
♦AND IND. SEARCH^ 

♦ * 
***************** 



♦ GET SAB INDEX ♦ 
♦AND SAVE ADDR. ♦ 

♦ FOR UPD. * 

♦ * 
***************** 



*****j n* ********* 



IS TASK IN * 




♦CALCULATE DISPL* 




WAIT STATE 


* 


♦ AND POINT TO * 




. * 




♦ SAB ♦ 




♦. . * 




* * 




♦. .* 




***************** 




♦YES 
















**** 




**** 








♦ 72 ♦ 


73D3 


♦ 72 * 








♦ K*t ♦-> 


73E1 


* K5 * — 73D2 








* * 




* * 1 








**** 


' 


**** 


1 




SVC3536C . *. 




**K3********** 


K4 ♦. 


V 




* 


.♦ ♦. 


****K5********* 


REMOVE TASK 


* 


.♦ END OF ♦. YES 


* RETURN TO 


CM WA] 


T STATE+ 


♦. CHAIN 


OR NO .* 


>* CALLER 



***************** 



*************** 



***** 

♦ 73 ♦ 

♦ A1* 



Chart A72. $$A$SUPl - SGTHAP Macrc, Free Track (SVC 3 6) 



330 DOS/VS Supervisor 



***** 72KU 
♦7 3 ♦ 
* A1* 



**A1*** ******* 



*****B1 ********** 

* * 
♦CALCULATE DISPL* 
*AND PINT TO TK * 

* EN TE Y * 

* * 
***************** 



* DELETE * 

* FIRST- UNUSFD * 

* ENTRY * 
***************** 



*****£-]********** 

* PCINT TO * 

* PRECEEDING * 

* ENTRY AND TRY * 

* AGAIN * 

* * 
***************** 



*YES 
j **** 
L>*75 * 

* K5 * 



* POINT TO NEXT * 
>* ENTRY AND * 

* CONTINUE * 

* * 
***************** 



u 



****A4********* 

* * 

* DELTHO * 

* * 
*************** 



DELTHO 

*****£ H ********** 

* * 

* POINT TO THE * 

* TRACK HOLD * 

* TABLE * 

* * 
***************** 



*****C4 ********** 



***************** 



*****D4*** ******* 



***************** 



**** 

* * 

* A5 * 

* * 

**** 

*****£ 5********** 



•*-] 



*************** 



r 



*** 

72 * 



*****p 4* ********* 



***************** 



*****£ (J********** 

* * 

* HARK FOR * 

* DELETION AND * 

* RESET FLAGS * 

* * 

***************** 



*****j 4* ********* 

* POSTWNTR ** 
**-.*_*_*_*_*_*_*_* 

* POST ANY * 

* WAITERS * 

* * 
***************** 



BOHP TO NEXT * 

>*ENTRY AND LOOP * 

' THRO TABLE * 

* * 

***************** 



****C5********* 

* RETURN TO * 

* CALLER * 

* * 
*************** 



♦ YES 

I **** 

i— >* * 

* A5 * 



Chart A73. $$A$SUP1 - SGTHAP Macro, Hold Track (SVC 35), Free Track (SVC 36) 



Charts 331 



**** A 1********* 

* * 

* SVC 6 * 

* * 
*************** 



****A3********* 

* * 

* CNCELO * 

* * 
*************** 



****A 4********* 

* * 

* GETSAV1 * 

* * 
*************** 



♦.IS AP SUPP. 



IS IT 


*. YES 


NTASK 


:•••*-] 


*. . * 


***** 


*NO 


*12 * 




* B5* 



***************** 



***************** 



T. ? ". * . 

..■* ^ 



***** 
*01 * 
* A2* 



*****£ ^ ********** 



***************** 



*****D o***** ***** 

* SET CODE FCR * 

* SIMPLE CANCEL * 
♦AND SET CANCEL * 

* IN PROGRESS * 

* * 
************ ***** 



* C5 * , 

* * 
**** j 

VCONT V 



SAVCONT 

*****£ 5********** 

♦ POINT TO AR PIB* 
*AND GET CORRECT* 

>* PTR TO SAVE * 

* AREA * 



******* 



********* 



****p 4* ******** 

* * 

* RETURN * 

* * 
*************** 



****!) 5*** ****** 

* * 

* RETDRN * 

* * 
*************** 



""1 



*****F 2 ♦♦*♦**♦♦♦♦ 
♦ERRSET A34* 

*_*_*_*_*_*_*_*_* 
♦INITIALIZE JOR * 

♦ CANCELATICN * 

* * 
***************** 



♦SET CANCEL CODE^ 

♦ X' 1C» , CANCEL ♦ 

♦ ALL ♦ 

♦ * 
***************** 



***************** 



Chart A74. $$A$SUP1 - SGTHAF Macro, Cancel Program or Task (SVC 6) 



332 DOS/VS Supervisor 



****A1 ********* 

* * 

* GET SAVE * 

* * 
*************** 



***************** 



.* DOES THIS *. YES 
*. TASK OCCDPY . *— 
*. LTA 



"1 



*7<t * 

* C5* 

* * 



V 
****D1********* 

* * 

* RETURN * 

* * 
*************** 



**** 
4c * 

* A3 

* 
**** 

***** fl 3 ********** 



* — _ 



**** 

* * 

* A«* 

* 
**** 

*****^({*** ******* 



*"1 



****^2********* 


* 


* 


* 


* 




* 


♦SET UP POINTER * 


♦ONPOST THE PIB ♦ 


SVC 3 8 


* 


♦TO LAST BYTE OF* 


♦ AVAILABLE ECB ♦ 




* 


♦ ECB ♦ 


* * 


*********** ***^ 




* * 


* * 








***************** 


***************** 








' 


**** 














♦75 ♦ 














♦ BU ♦-> 


76K1 












* * 




^ 








**** 




. *. 




V 


SVC38F 


B2 *. 




***** £3 ********** 


*****£ 4* ********* 


. * *. 




♦VALID A69* 


* * 


.* DID MAIN *. 


NO 


*_*_*_*_*_*_*_*_* 


* GET HAINTASK * 


. TASK ISSCI . 


*~1 


♦ VALIDATE ECB * 


, >* SAVE AREA * 


*. ATTACH . * 


♦ ADDR ♦ 


♦ ADDRESS ♦ 


*. . * 


* * 


J * * 


*. . * 


***** 


***************** 


********************* 


♦ YES 


*oi * 






* * 








* A2* 






♦ BU ♦ 








* * 






* * 








* 






**** 




i 




V 


-• 



***#*C2**** 



*************** 



***************** 



*****£ 2********** 

* * 

*SET POINYER TO * 

* FIRST BYTE OF * 

* SAVE AREA * 

* * 
***************** 



*****p 2* ********* 

* * 

* SET POINTR TO * 

* LAST 3YTE OF ♦ 

* SAVE AREA ♦ 

* * 
***************** 



****** 
♦VALID A69* 

*_ *_*.. *_*—*_ *u, *_ * 

♦ VALIDATE ♦ 

♦ SOBTASKS SAVE ♦ 

♦ AREA ADDS ♦ 
***************** 



*****H 2 ********** 

* * 
♦SET UP POINTRS * 

* TO SDBTASKS ♦ 

* ENTRY POINT ♦ 

* * 
***************** 



*****j2 ********** 
♦VALID A69* 

*_*_*_*_*_*._*_ *_* 
♦VALIDATE ENTRY ♦ 

♦ POINT ADDR ♦ 

♦ * 
***************** 



*****C3*** ******* 

* * 

* * 
♦UNPOST THE ECB * 

* * 

* # 
***************** 



*****j3* ********* 

* * 
♦SET DP POINTER ♦ 

* TO FIRST BYTE ♦ 
♦OF AESAVE AREA ♦ 

* * 
***************** 



*****P3* ********* 

* * 
♦SET DP POINTER ♦ 
♦TO LAST BYTE OF* 

* ABSAVE RREA * 

* * 
***************** 



***************** 



H3 ♦. 

.* PIB *. 

.* AVAILABLE *. 

*. FOR THIS 

*. SUBTASK .* 



*****j 3* ********* 

♦ * 

♦ GET ADtR. OF * 

♦ PIB AVAILABLE ♦ 

♦ ECB ♦ 

♦ * 
***************** 



.* DETACH *. YES 
*. WORKING? .* , 



*****££}********** 

♦ * 

♦POT ADDR OF PIB* 

♦ AVAIL ECB IN ♦ 
♦MAIN TASKS REG1* 

♦ * 
***************** 



*****j) 4*** ******* 



**************** 



*****E 4*** ******* 



***************** 



*. .* **** 
*NO * * 
I ***** B4 * 
L_>* * * 
* ^4 ***** 



* PICK OP FOOHD ♦ 
->+TID AND CREATE ♦ 

♦TIK OF SUBtASK ♦ 

* ♦ 
***************** 



***** B 5* ********* 



***************** 



***** C 5* ********* 

* * 
♦SET OP PIB AND ♦ 

♦ PIB EXTENSION ♦ 

♦ OF SOBTASK ♦ 

* * 
***************** 



*****j)t^ ********** 

* * 
♦SET OP THE SAVE + 

♦ AREA OF THE ♦ 

♦ SOBTASK ♦ 

* * 
***************** 



*****£ 5* ********* 

* * 

* POT SOBTASK ♦ 

* SAVEAREA ADDR ♦ 

* IN S-T PIB ♦ 

* * 
***************** 



*****p 5 ********** 



***************** 



*****q 5 ********** 

♦ RESET PHGR ♦ 

♦ FLAGS CHANNEL ♦ 

♦ APP. FLAG AND * 
♦ANY CANCEL CODE^ 

♦ * 
***************** 



*****H5 ********** 



***************** 



*****j5 ********** 

♦ * 

* POT S-T ECB * 
*ADDR IN S-T PIB* 

♦ EXT * 

* * 
***************** 



*****K^ ********** 

* * 

* COPY M-T ♦ 
♦SAVEAREA TO S-T+ 

♦ SAVEAREA ♦ 

♦ * 
***************** 



***** 
♦76 ♦ 
♦ A1* 



Chart A75. $$A$SUP1 - SGTHAF Macro, Attach Sufctask (SVC 38) 
Refer to Chart 05.1. 



Charts 333 



***** 75K5 
*76 * 
* A1* 



*****A1 ********** 



*************** 



***** B 1 ********** 

* * 

* POINT TO BYTE * 

* BEYCND S-T * 

* SAVEAREA * 

* * 
***************** 



*****C 1 ********** 

* * 

* POT H-T * 

* SAVIAREA ADPF * 

* IN S-T R1 * 

* * 
***************** 



***** D"| ********** 



************** 



*****£ 1 ********** 



*********** 



♦DECR MVCFLD PTR* 
>* AND PICK OP * 

* CHARACTER * 

* * 
***************** 



*****G1 ********** 



***************** 



HI *. 

.* IS IT *. 

.♦THE ONE OF *. 

*.THE ATTACHING. 

♦.MAIN TASK.* 



***** j 1 ********** 

* * 

* INSERT TIK OF * 

* ATTACHED * 

* SOBTASK * 

* * 
***************** 



*****B2 ********** 



***************** 



SVC38E 

*****£ 2********** 

* INDICATE * 

* SOBTASK * 

* ATTACHED IN * 

* MAIN TASK FIE * 

* * 
***************** 



L 



****A4 ********* 

* svc ao * 

* * 
*************** 



*****£ 4********** 



**************** 



*****C4 ********** 
♦VALID A69* 

*_*_*_*_*_*_*_*_* 

* VALIDATE ECB * 

* ADDR * 

* * 
***************** 



*****D4 ********** 
♦POST THE ECB S * 
♦SET OP REG 7 TO* 
♦BR TO EXIT FOR ♦ 
♦ONHAIT/SOBTASK ♦ 
♦ HOOTINE ♦ 

***************** 



WAS SAVE ♦. 
PARAM. 
.SPECIFIED. ♦ 



**************** 



*****K3* ********* 

* * 

* * 

* POST THE TASK ♦<- 

* * 

* * 
***************** 



YESSAVE i 

*****£ 4********** 

♦HAINTASK A77* 

*_*_*_*_*_*_*_*_* 
♦GET PIB POINTERS 

♦ TO MAIN TASK ♦ 

* * 
***************** 



YESSAV1 V 

*****fj4 ********** 

♦GETSAV1 A74* 

*_*_*_*_*_*_*_*_* 

♦ GET SAVE AREA *<- 

♦ POINTER ♦ 

♦ * 
***************** 



*****j<l********** 



***************** 



K4 ♦. 
.♦ TASK ♦. 
.♦IDENTIFIED ♦. NO 

. BY ITS SAVE .♦ 

♦. PARAH 



. * 



YESSAV2 

***** K 5* ********* 

♦SOBTASK A77* 

*_*_*_*_*_*_*_*_* 

>*GET PIB POINTERS 

♦ TO SOBTASK ♦ 

* * 
***************** 



***** 
♦02 ♦ 
♦ H5* 



Chart A76. $$A$SUPl - SGTHAP Macro, Post ECB (SVC 4 0) 
Refer to Chart 05. 2. 



334 DOS/VS Supervisor 



****A1********* 

* * 

* MAINTASK * 

* * 
*************** 



****A2* ******* 

* 

* SUBTASK 

************** 



****A3********* 

* * 

* UNWAIT * 
*************** 



**** 

* * 

♦ A4 ♦ 
**** 

*****A4********** 



*-l 



***************** 



SUBTASK . 
B2 



***************** 



***************** 



DOES TIK 
EQUAL FIK 



* STILL A *. 

SUBTASK OJ . 

*. PARTITION.* 



* POINT TO THE * 

* PIB OF TASK * 

* WITH SAME PIK * 

* * 
***************** 



*****pi ********** 

* * 

* POINT TO * 

* FOREGOING * 

* MVCFLD BYTE * 

* * 
***************** 



****G1 ********* 

* * 

* RETURN * 

* * 
*************** 



UNWAIT 

***** £3* ********* 

* * 
♦INDICATE ENTRY * 

* NOT FFOM * 

* DEQUEUE * 

* * 
***************** 



_ *_ *_ *_*_*_ *_ 



***************** 



*****£3********** 

♦MAINENT A77* 
*_*_*_*_*_*_*_*_* 

* * 

* TEST MAINTASK * 

* * 
***************** 



13 *. 
.* *. 
. * 
-*. OC SUPPORT 



*****-p3 ********** 

* GET KEY AND * 

* DEVTDE EY TWO * 
♦TO GET CORRECT * 
♦ENTRY IN TABLE * 

* * 
***************** 



*****G3* ********* 
♦ASYNTST A78* 

*_*_*_*_*_*_*_*_* 
♦TEST FOR ACTIVE^ 

♦ OC RODTINE ♦ 

* * 
***************** 



*****gtl********** 
♦ASYNTST A78+ 

*_ *_* _*_*_*_*_*_* 
♦TEST FOR ACTIVE* 

♦ IT ROUTINE ♦ 

* * 
***************** 



**** 
♦77 * 
* C4 ♦-> 



78A2 
78A3 
78C4 



**** 
TASKS CAN V 

*****£ I}********** 

♦SUBTASK A77+ 

*_*_*—*—*_*_*_*_* 

I >^GET PIBADDR OF ♦ 

♦ SUBTASK ♦ 

* * 
***************** 



♦ ENTRY ♦ 

* * 
*************** 







**** 






> 




*77 * 

♦ m ♦-> 

* * 


78D4 




7 


**** 


' 




. *. 


TSTECB .*. 




E3 *. 


HU ♦. 




. * *. 


. ♦ ♦. 




.♦ MULTIPLE ♦. NO 


.♦IS IT SVC29*. 


NO 


♦.TIMER 


SUPPORT. ♦ > 


♦. WAITM 





♦YES 

I **** 

L>* * 

* A4 * 



*_*_*_*_*_*_*_ 



***************** 



*****£ 4********** 



***************** 



*****j(l ********** 

* * 

* * 

* GET LIST ADDR ♦ 

* * 

* * 
***************** 

78B1 



Chart A77. $$A$SUP1 - SGTHAP Macrc, Investigate Waiting Tasks 



♦ NO 
I 

4 

***** 

♦ 78 ♦ 

♦ A1* 



Charts 335 



***** 77KU 
♦78 * 
* A1* 



***** 77HU 
*78 * 
* A3* 



IS EN^FY *. YES 

THE ECB .* 

. ADDRESS .* 



->*ONWAIT THE 1ASK 



* *. WAITING FOR .* , 

* I *. ECB / RCB.* I 



****£ 4*** ****** 

* * 

* ASYNTST * 

* * 
*************** 



*****g-| ********** 



**************** 



**** 
->*77 * 
* KU * 



* FOOTINE 

ENTERED BY 
*. DEQUEUE . 



*****C3 ********** 



ASYNTST 

*****£ 4 ********** 



***************** 



*************** 



. .* ***** 

*YES *77 * 

* CU* 

* * 



*****p tj ********** 

* * 

* POINT TO * 

* SAVEAFEA , TO * 
♦INT. CODE IN PSW* 

* * 
***************** 



L 



Chart A78. $$A$SUPl - SGTHAP Macro, Investigate Waiting Tasks 



336 DOS/VS Supervisor 



**** A 1*** ****** 

* * 

* SVC 42 * 

* * 
*************** 



***«A3********* 

* * 

* SVC til * 

* * 
*************** 



VALIDATE PCF 

AND GET TASKS 

ECT 



♦ENCDEC 
*_*_*_*_*_ 



* VALIDATE RCE * 

* AND GET TASKS * 

* ECB * 
***************** 



*****C3******** 



I .... 

l_>*0 3 * 



TEE .* , 

..■• ^ 



NG . * . 

. *' V 



***** 

♦ 01 * 

* A2* 



**** 

* * 

* f3 * 



. * IS DEO IN *. YES 



EQ IN *. YE 
RfN . * 



♦NO *H3 * 
• **** * D 3* 
L_>*ni * * * 

* A2 * * 



IS OWNER *. 
ENCHEUEING . * 



******* 



.♦ RESOURCE •*. NO 
*. WANTET EY A. . *■ 
*. TASK .* 



~) 



PUT ENQUEUING 

TASK IN WAIT 1 

STATE 



*****P3********** 

* * 

* INDICATE THAT * 
♦FNTRY TO UNWATT* 

* IS FROM DEQ * 

* * 
***************** 



*****j 2********** 


*****j3********* 


* P r r OWNFR BCE * 


♦UNWAIT A77 


♦A DDE IK ENQDING* 
* TASKS REOT TO * 




♦REMOVE WANTERS 


* PREVENT * 


♦FFCJ1 FAIT STATE 


* DEADLOCK * 


* 



********** 



j **** 

L_>*f5 * 



***************** 



***** K 4* ********* 



.♦WAS WANTER ♦. 

FOUND 

♦ . . * 

♦ . . * 

♦ . .♦ 

♦YES 


NO 


♦SET UNKNOWN ENQ+ 
>* REQUESTOR ♦ 

* * 

* * 
***************** 

1 


***** 
*n2 * 
* H5* 




y 
***** 
*01 * 
♦ G2 + 



Chart A79. 



$$A$SUP1 
Resource 



- SGTHAF Wacrc, Enqueue (SVC 42) and Dequeue (SVC 41) Task from a 



Charts 337 



**** A 1********* 

* * 

* ENQDEQ * 
*************** 



* POINT TO FIRST * 

* AND LAST BYTE * 

* OF RCB * 

* * 
***************** 



_*_*_*_*_*_ 



***************** 



** ***£)-) ********** 



***************** 



** B84E1 
* B54D2 



GATEWAIT 4^ 

******; 2** **♦*♦♦♦♦ 



****A 3* ******** 

* * 

* CRTDEACT * 

* * 
*************** 



***************** 



*****£ 3********** 



***************** 






****5^********* 

* * 

* PFTOBN * 

* * 
*************** 



****A4********* 

* * 

* CLPUNC * 

* * 
*************** 



******** 



*************** 



***ca*********** 

* START DUMMY * 
10 TO CLEAR 
* UNIT CHECK * 

**************** 



**************** 



****j?4********* 

* * 

* RETURN * 

* * 
*************** 



************** 



*****F1* ********* 
♦COPY TASKS PIB * 

♦ POINTER AND ♦ 

♦ POINT TO PIB * 

♦ EXT ♦ 

♦ * 
***************** 



*****G1 ********** 



***************** 



****j1******* 

♦ RETURN TO 

♦ CALLER 
* 

************* 



**j 2********* 
PET'JRN TC * 
CALLER ♦ 



Chart A80. $$A$SUP1 - SGTHAP Macro, Dequeue (SVC 41) Task from a Resource 



338 DOS/VS Supervisor 



****A1 ********* 

* * 

* SVC 6 3 * 

* * 
*************** 



SVC63 

*****B1 ********** 
♦SVC6364V A81* 

*—*_*_*_*_*_*_*_* 
♦VALIDATE PARM. * 
♦LIST ADDRESS - * 
* FORMAT. * 

***************** 



*****£ 1 ********** 

♦SCAN RDRTAB FOR + 

* REQUESTOR'S ♦ 

* HIGHEST BUR . * 

* SAVE ADDR IN * 

* REG 3 * 
***************** 



**** 

* * 

* A3 * 

* *__ 
**** V 

SVC63E .*. 

A3 *. 



! 



SVC63C I 

*****])-;********** 

♦SCV6364R A82* 

*—*_*_*_*_*_*_*_* 

* CONVERT * 

* RESOURCE CODE * 
♦TO RUR ADDRESS * 
***************** 



♦ HAS 


THE *. 


NO 




RESOURCE CODE 


*"1 




♦. VALID .♦ 

♦. .♦ 




♦. .* 


***** 




♦YES 


*QH * 








* A4* 








* * 








* 




1 


' 






. ♦. 




SVC63F .*. 


F1 ♦. 




F2 *. 


• ♦ *. 




.♦RFQUSTR*. 
.* WAIT IF *. NO 


* CAN RSQU *. 
RESOURCE BE . 


NO 


* 


>♦. P. ESECE .* . 

*. UNAVAIL . ♦ 

*. . * V 


♦.ALLOCATED.* 
♦. . ♦ 




♦. .* 




*. . * **** 


♦YES 




*YES * * 








I * J2 * 








( ♦ ♦ 








J **** 


■ 






I 


. *. 






G1 *. 




*****(;•?********** 


. ♦ * . 




* * 


* NORMAL *. 




* * 


REQUEST 


* 


♦SCAN RUR TABLE * 


*. .* 




* * 


*. .* 




* * 


*. 


.* 




***************** 



. * ISSUED BY * 


NO 


.* P.EQ. * 


YES 


*. MAINTASK 


-I 


♦. VIOLATE 


-1 


*• .* 
*. .♦ 


♦.SEQUENCE .♦ 
*. . ♦ 


*. .* 


***** 


*. . ♦ 


***** 


♦YES 


*04 ♦ 


♦NO 


*on * 






* A4* 


**** 




* At}* 


> 




* * 


* * 




* * 






* 


* J2 * 

* *_> 
**** 




* 


SVC63D 






SVC6 3G { 


; 




*****j -j ******** 




***** j2 ********** 


* SET ON 


* 


* SET CONDITION 


* 


* REQUESTOR'S 

♦ OWNER BIT IN 


* 


♦ CODE =H 


* 


* 
* 


♦ {ALLOCATION 

* FAILED) 




♦ CURRENT RUR 

* 


* 



*****P3 ********** 

* * 
♦SET FETDRN CODE* 

* 0. (ALLOCATION ♦ 

* SUCCESSFUL) . ♦ 

* ' * 
***************** 



SVC6 3H ■' 

*****C3* ********* 

♦ STORE RETURN ♦ 
♦CODE > POSITION^ 

— >♦ IN PARM LIST ♦ 

♦ INTO REQU'S ♦ 

♦ SAVE AREA ♦ 
***************** 



****A4********* 

♦ SVC6364V * 

♦ ROUTINE ♦ 

♦ * 
*************** 



SVC6364V V 

*****g 4* ********* 

♦GET START ADDR ♦ 

♦ OF PARM LIST * 

♦ FROM USER'S * 
♦SAVE AREA (R1) ♦ 

***************** 



***************** 



***** K 1 ********** 



*********** 



•*FAIL=WAIT S* 
.RESOURCE NOT , 
*. AVAIL. .* 



~1 



*****E3 ********** 

* * 

* SET UP PSW TO * 

* RE-EXECUTE * 

* EAILING REQU. * 

* * 
***************** 



*****P3 ********** 
♦ENTER RESOURCE * 

* CCDE INTO * 

* REQUESTING * 
♦TASK'S WAITLIST + 

* SLOT * 
***************** 



*****£ 3********** 

* * 

* SET 'SOMEONE ♦ 
♦WAITING' BIT IN+ 

* RUR * 

* * 
***************** 



***** H 3 ********** 



♦PLACE REUESTOR * 
♦INTO WAIT STATED 



***************** 



*****D4 ********* * 
♦VALID A69* 
*_*_*_ *_ *_*_*_*_* 

♦ VALIDATE ADDR * 

♦ OF 1ST PARM * 

♦ BYTE * 
***************** 



*****E(| ********** 

* * 

* POINT TO LAST ♦ 

* BYTE IN PARM * 

* LIST * 

* * 
***************** 



♦VALIDATE LIMITS+ 

♦ OF PARAMETER * 

♦ LIST * 
***************** 



***** 

*nu * 
* AH* 



SVC6364W 

*****fj4 ********** 

♦ COMPUTE * 

♦ REQUESTORS * 
♦OWNER BIT FROM * 
♦IS TIK (PIK IF ♦ 

♦ AP=NO) * 
***************** 



.* IS *. NO 

♦. REQUESTOR .* >| 

♦.MAINTASK .* 
♦. .* 

*. . * 
♦YES 



*****K4*** ******* 



******** 



********* 
I 
] 



*****Q5* ********* 
♦COMPUTE ADDRESS^ 

♦ OF 1ST SYSTEM ♦ 

♦ RUR AND LOAD ♦ 

♦ INTO REG 4 ♦ 

♦ * 
***************** 



*****C 5* ********* 

* * 
♦COMPUTE ADDRESS^ 
♦OF WAITLIST AND+ 
♦LOAD INTO REG 5+ 

* * 
***************** 



****D5********* 

* RETURN TO ♦ 

* CALLER * 

* * 
*************** 



***************** 

L**** 
>* * 

♦ A3 ♦ 

* * 
**** 



************** 



Chart A81. $$A$SUP1 - IOINTER Macro, USE (SVC 63)/RELEASE (SVC 64) Coinron Subroutines 
Refer to Chart 05.2. 



Charts 339 



****A1********* 

* SVC6364R * 

* ROUTINE * 

* * 
*************** 



SVC6364R 

*****£ i********** 

* GET PESODRCE * 

* CODE FROM * 

* CURRENT PARK * 

* LIST ENTRY * 

* * 
***************** 



RUR TAB) 
»'UP LIM 1 

* OF WAIT . 

***************** 



***** D 1********** 

* * 

* GET SYSTEM * 

* RESOURCE CODE * 

* GIVEN * 

* * 
***************** 



**** E 1*** ****** 

* RETURN TO * 

* CALLER * 

* * 
*************** 



SVC6UCTD 

*****A2********** 
♦SVC6 3 64V A81* 
*_*_*_ *_*_*_ *_ *_* 
♦VALIDATE PAFM. * 

* LIST ADDR S * 

* FORMAT * 
***************** 



****B 2 ********* 

* * 

* SVC 6 4 * 

* * 
*************** 



****j3********* 

* READ HCME * 
♦ADrFESS POUTINE* 

* * 
*************** 



****A4********* 

* ADDRESS 

* VERIFICATION 

* ROUTINE 
*************** 



*A <">*** 


****** 


?V1 


Rl 


N 


*** 


| 


****** 




1 

L 


**** 

->*37 * 

* A3 



I **** 

L_>*13 * 

* G5 



******* 



***************** 



*****(• 3 ********** 

* * 
*GET ADDPESS OF * 

* EDCCWH FOR * 

* EFRSTO * 

* * 
***************** 



*****D3 ********** 
*ERPSTO A25* 

*_*_*_*_*_*_*_*_* 

* PFAD HCME * 
♦AirPESS AND PEC* 

* * 
***************** 



*****P3 ********** 



***************** 



****^3******* 
* 

* FETUPN 

* 

************* 



~1 

V 
***** 



****pu ********* 

* RETURN TO * 

* CALLER * 

* * 
*************** 



Chart A82. $$A$SUP1 - IOINTER Macro, USE (SVC 63) /RELEASE (SVC 64) Ccinrcn Subroutines 



340 DOS/VS Supervisor 



COMPRESS IT * 
REQUEST TAELE * 
POUTINE * 

*************** 



****23********* 
♦ENTERED VIA SVC* 

* 28 IN DSEP * 

* STACK SEL RTN * 
*************** 



**** 

* * 

♦ A5 



n 



*****&5* ********* 



***************** 



** R 2********** 



♦LOAD ADDR OP IT* 
* PQU. TABLE * 



***************** 



*****£ 2* ********* 



***************** 



*****r> 2** ******** 

* * 

* GET FIRST * 

* ELEMENT IN JT * 

* REQ. TABLE * 

* * 
***************** 



*****t? 2** ******** 

* UPDATE ALt * 

* INTERVALLS F * 
♦STORE THEM CNE * 

* POSITION DCWN * 

* * 
***************** 



****F 2 ********* 

* P.ETRON TC * 

* CALLER * 

* * 
*************** 



♦LOAD SMICR BASE* 

* 5 SET OP * 
♦SUPEPVISOE BASE* 

* * 
***************** 



**C3******* 

* * 

* * 
♦TURN OFF SS BIT* 

* * 

* * 
*********** 



**** I 

PDNOB V 

*****B5* ********* 

* * 
*EXCL - OR USEES* 

* SS NUMBER TO * 

* CCW * 

* * 
***************** 



***** C 5* ********* 

* STORE USERS * 

* POCKET * 
♦SELECTION CODE * 

* IN BUFFER * 

* * 
***************** 



*****E3* ********* 

* RESTORE CCE * 

* POINTER 8 NEW * 

* PSW ADDRESS ■ * 

* REGISTERS * 

* * 
***************** 



.* DOES USER *. 

*. WANT BATCH . 

*. NUMBERING.* 



**** 

* * 

* B5 * 

* * 
**** 



.* 


* 


YES 


*.MICP = 1H19D . 


*~1 


*. .* 
*. . * 


*. .* 


**** 


*NO 


* * 






* A5 * 






* * 






**** 


' 


' 




*****H3 ********** 


* STORE ADERESS 


* 


* OF BATCH 


* 


* NUMBERING CCW 


* 


* IN TI( 


: ccw 


* 



->*SET CANCEL CODE* 

* * 

* * 
***************** 

*** 

£E4 > -♦ B32C2 

******: 

♦READY THE TASK * 

* * 

* * 
***************** 



*****P4* ********* 

* * 

* SET EXIT * 

* REGISTERS FOR * 

* ERRGO * 

* * 
***************** 



****G4*** ******* 



*************** 



***E5********** 



***************** 



*****p 5* ********* 

* * 

* TELL USER OF * 

* REJECT PKT * 

* SELECTION * 

* * 
***************** 



LOAD RETRY * 

COUNTER WITH * 

THREE * 

* 

**************** 

I **** 
i— >*42 * 
* A1 * 



***************** 



*****j3 ********** 

* STCRE USERS * 

* POCKET SELECT * 

* IN STACKER * 
♦SELECT CCW AND ♦ 

* EUFFER ♦ 
***************** 



.♦AUTO SELECT^. 

". OR SPACING . * 

♦. EPROR .♦ 



"1 



***** 

*tm * 

* J5* 



Chairt A83. $$A$SUP1 - SMICR Macro, Return frcir User Stacker Select Routine (SVC 28) 
Refer to Chart 05.1. 



Charts 341 



m l B33J5 
* B56D4 



****A1*** ****** 

* * 

* PDSIORT * 

* * 
*************** 



*SAVE CSW ■ MOVE* 

* 1DDB OF SENSE * 

* CCI INTO CAW * 

* * 
***************** 



*****C1 ********** 



PPWAIT V 

*****A 2***** ** *** 
*RESVCNOX A05 * 

*_*_*_*_*_*_*_*_* 

* * 

* RESVC * 

* * 
***************** 



.* 


CALLED BY *. 


YES 


** 


PFFLIH 

. * 
*. . * 


"I 




*. . * 


***** 
*B34* 




*NO 




1 **** 
L_>*02 * 


* A4* 




* * 




* H5 


* * 




* * 






**** 





. .* ***** 

♦YES *07 * 

I **** * J5* 

1_>*0U * * * 

* A4 * * 



***************** 



.* CHANNEL * 


NO 


*. CHECK ON SIO . 


*"1 


*. .* 
*. . * 


*. .* 


***** 


♦YES 


*85 * 




* A1* 



♦. RAS SUPPORT . *- 



***************** 



*****D1 ********** 



GET SENSE 



***************** 



♦ 26 * 

♦ A 2* 
* * 



**D4******* 

♦TTIRN ON SIO* 

♦BIT FOR RAS fi* 

♦ CLEAR OLD ♦ 

♦COWHAND ADDR ♦ 

* * 

*********** 

L**** 
>*B82+ 
: B3+ * 



.♦ NC 


)T ♦ 


YES 


♦. OPERATIONAL 


'~\ 


♦. .♦ 
*. . * 


♦. .♦ 


***** 


♦ NO 


*t»2 * 






♦ A5* 






* * 






* 




' 




. ♦. 




G1 ♦. 




. ♦ ♦. 




.♦ * 


YES 


♦. UNIT CHECK « 


*~1 


♦. .♦ 
♦. . ♦ 


♦. .♦ 


***** 


♦NO 


♦42 ♦ 






♦ A5* 






* * 






* 


' 






*****(]-]*** ******* 


* 


* 


♦SET OP. CAN WITH* 


♦ STCEAt 


SB KEY 


* 



***************** 



*****J1 ********** 

* * 

* * 

* RESTORE CSN ♦ 

* * 

* * 
***************** 



****K1 ********* 

* * 

* RETURN * 

* * 
*************** 



Chart A84. $$A$SUP1 - SMICR Macro, Return frcir User Stacker Select Routine (SVC 28) 
Refer to Chart 05.1. 



342 DOS/VS Supervisor 



***** 84Bb 



r—v 



I hi SUPPORT .*<- 



*. ZB.1 REQUEST .* 



♦ EMSGETP2 A68* 



:;-••*"! 



** A 5***** 
DUKMY 



L>*B8 6* 
! B5 * 



EX HA 



07C1 
07D1 
07E2 
07F4 

FNOTE 



*B5* 



FILE OPENED . 


*_ n 

V 


♦YES 
i 


*02 
* A3 



♦ ALL POINTERS TO* 

♦THIS BLOCK MUST* 

r — >* BE CHANGED ON * 

I *fiEPE3 INTO 02H5* 

I * * 



i **** 
<—>*M * 



u 



.♦AMI STATUS ♦ 
*. BUI PCI OE 
*. iNC LEW .* 



G1 ♦. 

♦ ANY : 
TATOS EUT ♦. NO 

BUSY 03 

bTATJS 
♦.MODIF.* 

"♦YES 



1 



AND r'WSE.* 



♦VOL CHANGE ♦. NO * L^kC ORIGINAL ; 

r'Or. 3410 CP. .♦ ■ >* "I) ADDESSS 

*.J420 TAPE-* * 






5TJXE £!™XT ( CW * 

kuCP IM C£H AND* 

:il?:I!/aNIl *■ 

MU'.BEP. IN I/C * 

CLP PSfc * 



->*SET DEVICE BUSY* 



T0:35 


TO:i35 


07H5 


21K1 


11D1 


21K3 


11 E3 


22E1 


11F2 


25J3 


11F3 


33F4 


11J-1 


34B1 


12A3 


34C3 


12C3 


34F1 


12E1 


72B1 


14F3 


72F2 


14G2 


72G2 


15G5 


72G3 


16E2 


75*4 


16E4 


76C2 


1bG2 


76K3 


21J1 


79K3 


21J4 


d1D3 


COL b 


CXREF 



Chart A85. $$A$S0P1 - IOINTER Macro, CSW Stored at SIO Time 
Refer to Chart 06.4. 



Charts 343 



Page of SY33-8551-1, revised September 30, 1974, by TNL 3N33-8790 



***** 1y£4 

*86 * 19F1 

* A2* 19G1 

* * ilGl 



*B83* 
* D2* 



*****£ -j ******* 



*****£ ■)*** 



SkAP SAVE 

ItitOhAkTIQS Hi 

iii TA3L2S 



* REGI STEPS 



****,* -| ********: 

SX03F COMPG 
POINTER FROM 

PIi>2 IN LOW 
COaE AND HAS 

iAVSAREA ' 



L>*18 



***** B2 ********** 

* 5AV3 USEE * 
* STAT OS. GET HAS* 

* STATUS * 



** B 3 ******* 

* * 

*EESET POB FLAG • 



TP OP CEAPP 



DEVICE EAD 



->*RSSET PUB FLAG * 



* A5 * 

%••♦*-» 

NOTBSY .*. 

A5 *. 

.* *. 
NO .* *. 
*. POWER SUPPORT.* 



****D5******** 



I **POHFR/VS HOT ** 
-i | **PDR APPENDAGE** 



***************** 



: A5 :l 



*. REPOSITIONING. * , *. DEVICF 3340 .*- 

*. REQUIRED .* *. . * 

*. .* V *. .* 



SENSd340 V 

*****S 5** ******** 
*EPP.SIO A25* 



"1 



DEVICE TAPE .* , 



*YES *1b 



ISSUE SENSE 



1t>F1 
-> 22 0,2 
22VL2 
V 67C2 



ERROR 
ALREADY 
QUEUED 



* H5 * 
**** 
NOTBSY 2 



* DEVICE END *- NO 
POSTING .* 

*. ossiesD .* 



** ***j5******** 



IMG . * . 

.** V 



*YES *3b ■ 



CUE + BUSY 



Chart A86. $$A$SUP1 - IOINTER Macro 



PES EI POB FLAG ' 



344 DOS/VS Supervisor 



Page of SY33-8551-1, revised September 30, 1974 , by TNL SN33-8790 



***** (J2BS 
*87 * CzF1 
* A2* fcbCJ 



***** 59C2 



RESET USEE KEY 

IF SDL BUILD 

FINISHED 



* IF FETCH ENQ, 

* WHILE FETCH 
♦ACTIVE, SET TO 



RFSVC 



* IF FETCH 

* DEQUEUED FREE : 
♦FETCH RESOURCE : 



* TURN ON BITS 

* SPECIFIED BY 

* P.EG 1 



*.OU.*flY ASSIGN 



*NO *01 * 

■ **** * A3 * 

I— >*fcb * * * 



| **** 
<— >*02 * 



* 

* IF SDL BUILD 
*SET, GIVE USER 

* KEY 



.* SEEK *. N 
. SEPARATION .*- 
".SUPPORTED.* 



r1 *. 

. * *. 

.* 2b *. 

♦.RECORDS/TRACK.; 

**YE5 



SEEKSEP + *. NO 

DASDFP .* 

SUPPORTED.* 


>*'. SEPASATION 

*. REQUEST .* 






*YES 
I 

I 


*NO 

«— >*20 
* A1 



I .... 

L_>*23 * 



* SEEK *. NO 
SEPARAHON 

*. REQUEST . 



._, 



Chart A87. $$A$SUP1 - IOINTER Macro 



Charts 344.1 



****A1******** 

ACTIVATE CRT 

HOOKS 



■IMS ROUTINE IS 
EXECUTED ONLY 

ONCE ON 1ST SVC 
4d DURING IPL 



* LTA ROUTINE 

* ENTEEFD FRCM 

* BPNCE 



*AG1* 
* A2* 



*****£)■)** ******** 

* OVERRIDE * 

* TEMPORARY * 
"■LINKAGE IN SVC * 



***************: 



** ***£ T ********** 

* ACTIVATE * 

* CttTHOOKI IN * 

* CHANNEL * 

* SCHEDULER * 



*** f 1 ******* 
ACTIVATE 

RrHO0K2,3.5 
INTERRUPT 
HANDLER 



* RETURN SVC 48 



THIS ROUTINE IS 

EXECUTED ON 1ST 

FETJH DURING 

IPL 



****C2 -********** 

3VEPPIDE * 

TEMPORARY * 

LINKAGE IN * 

FETCH ROUTINE * 



* POINT TO 

FETCH 
*TA8LE(FTTAB) 



PITK UP 

V J LUES 



***A3 ********** 

SET TR/CYL, * 

ELKS/TR IN * 

FTTAB * 



**** j 
SLDLOOP1 V 
**A4***' 



* FOINT TO 
FIRST SYSTEM 

* SLD ENTRY 



**j3******* 



J3 
*1 LAST ENTRY 



*G3**** 



***r**jj3 ********** 

* * 

* RESTORE * 

* ORIGINAL CCH * 

* LIST POINTER * 

***************** 



****jj ********* 
* BONCE (SGDFCii) * 



****£)4**** 

* 

* EXCP 



*F4***** 
BAIT 



HEAD ADDR 



U ****** 



Chart B01. $$A$SUP1 - SGEND Macro, Activate CRT Hooks, LTA Routine Entered from BONCE 



344.2 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30 f 1974, by TNL SN33-8770 



* ACTIVATE * 
♦DYNAMIC ADDRESS* 

* TRANSLATION * 
*** ****** ****** 



THIS ROUTINE IS 

EXECUTED CN 1ST 

SVC 33 DURING 

IPL 



INITDAT .*. 

C1 *. 

.* HEAL ♦. 
. * STORAGE *. NO 

♦.SMALLER THAN ..* 

*. RSIZE 



. * 



*****£ 1 ********** 

♦SET DP ADDRESS * 
♦OF ALT. AREA = * 

♦ END ADDR. OF * 

♦ REAL CORE * 

♦ ♦ 
***************** 



*****£1 ********** 

* CALCULATE * 

* DIFFERENCE * 
♦BETWEEN END OF ♦ 
♦CORE AND RSIZE ♦ 

* ♦ 
***************** 



*****F1 ********** 

♦ CALC. NO. OF ♦ 
♦ENTRIES IN PAGE* 

♦ TABLE TO BE ♦ 

♦ INVALIDATED ♦ 

♦ ♦ 
***************** 



*****£ 1 ********** 

♦ CLIAR PAGE ♦ 

♦ TABLE ENTRIES ♦ 

♦ FROM END OF ♦ 

♦ CORE TO RSIZE * 

♦ ♦ 
***************** 



*****H1 ********** 

♦ SET CORRESP. * 

♦ PAGE NO«S IN IN* 

♦ PAGE FRAME ♦- 

♦ TABLE TO ♦ 

♦ X«FFFF« ♦ 
***************** 



RSZMSG 

*****C2********** 

♦ SER INDICATOR * 

♦ FOR IPL H£G ♦ 
>* 0I48I IF RIAL ♦ 

♦ CORE NE RSIZE ♦ 

♦ ♦ 
***************** 



*****A3* ********* 

♦ ♦ 

♦ LOAD CCNTBCL ♦ 
->* BEG1STIB FOB * 

♦ EAT ♦ 

♦ ♦ 
***************** 



♦♦♦♦♦E3+.M******* 



***************** 



*****C3* ********* 

♦ * 

♦ GET EMGB AEEB ♦ 
♦AND ENABLE EAT ♦ 

♦ IN PCK EL1H ♦ 

♦ * 
***************** 



*****E3* ********* 



***************** 



***** E 3********** 

♦ IF E1EUG IS * 

♦ SCPPCRTED * 

♦ ACTIVATE * 

♦ MONITOR CALL * 

♦ IN7EEBUFTS ♦ 
***************** 



***** J 3+ **♦♦*♦♦♦♦ 
♦GET LIKE TO 2ND + 
♦ TART OF THIS ♦ 
EC01ISE 



***************** 



***+G3********* 

♦ ♦ 

♦ RETURN SVC 33 ♦ 

♦ * 
*************** 



•'"I 



****£(}*♦♦♦♦♦♦♦* 

♦INITIALIZE PAGE+ 

♦ TABLE * 

♦ ♦ 
*************** 



THIS CODE IS 

EXECUTED VIA 

SVC 59 DURING 

IPL 



***************** 



*****D«»********** 



***************** 



***** £4* ********* 



************* 



* POINT TO NEXT * 
>♦ ENTRY IN ♦ 

* BOUNDARY BOX * 

* ♦ 
***************** 



G<1 *. 
.* SEAL ♦ 
YES . * STORAGE 

♦. ALLOC. TO 

♦. THIS 
*.PART..* 
♦. . * 
♦ NO 



*****Hi»********** 

* ♦ 

* CALC. NO. OF * 
♦ENTRIES IN PAGE* 

* TABLE ♦ 

* ♦ 
***************** 



*****j4*** ******* 
♦INITIALIZE ALL ♦ 

♦ PAGE TABLE ♦ 

♦ ENTRIES FOR ♦ 

♦ THIS PART. ♦ 

♦ ♦ 
***************** 



***♦ 

♦ ♦ 

♦ A5 

♦ 
♦ ♦*♦ 

♦* ♦♦ ♦A 5** *♦♦♦♦♦♦♦ 

♦ ♦ 
♦GET POINTER TO ♦ 

♦ BEGIN OF ♦ 

♦ BOUNDARY BOX ♦ 

♦ ♦ 
***************** 



*****B5** ******** 

♦ INITIALIZE * 

♦ REMAINIKG PT * 

♦ ENTRIES WITH ♦ 

♦ X«80 11« ♦ 

♦ ♦ 
***************** 



♦SET POINTER TO ♦ 
>♦ NEXT ENTRY IN ♦ 

♦ BOUNDARY BOX ♦ 

♦ ♦ 
***************** 



D5 *. 

. ♦ VIRT. ♦. 

STORAGE 

ALLOC. TO 

. THIS 

*.PART. .* 

♦. .♦ 

*XES 



*****£ 5* ********* 

* CALC. NC. OF ♦ 

* PAGE TABLE * 

* ENTRIES FOR * 
♦THIS PARTITION ♦ 

* ♦ 
***************** 

I 



*****p 5** ******** 

* INITALI2E ALL ♦ 

♦ PAGE TABLE * 

♦ ENTRIES FOR ♦ 
♦THIS PARTITION ♦ 

* * 
***************** 



.* ALI *. 

. PARTITIONS .i 

♦. PROCESSED. ♦ 



♦ YES 
| ♦♦♦♦ 
«->*03 ♦ 
♦ A1 * 



.♦ ALL ♦. 

-♦. PARTITIONS . 

♦.PROCESSED. ♦ 



Chart B02. 



$$A$SUP1 
Table 



SGEND Macro, Activate Dynamic Address Translation, Initialize Page 



Charts 3U5 



***** 0265 
♦03 * 
* A1* 



**** 



***** A 1 ********** 

* * 

* CALC. NO. OF * 
*PFT ENTRIES FOR* 

* uoo * 

* * 
***************** 



*****B1 ********** 
*SET SIT SP-BIT * 

* = ANE PAGE * 

* NO. = X'FFFF* * 

* IN EACii PFT * 

* ENTRY * 
***************** 



*****£}********** 

* SET REF. AND * 
♦CHANGE BIT FOB * 
♦EACH PAGE FRAKE* 

* TO * 

* * 
***************** 



*****D1 ********** 

* * 

* ENABLE * 

* INTERRUPTS IN * 

* DISPATCHER * 

* * 
***************** 



* GENERATE COPY * 
♦BUFFER ADDRESS * 

* CHAIN * 

* * 
***************** 



n 



****A2********* 

* * 

* FETCH ROUTINE * 

* * 
********* 44 4 «** 



02 *. 

.*** 
*.IDRA 3UPP0F1 



**A5******* 



* IN Dl CAT f IDS A* 
* I* OSS * 



*********** 



**** 

* * 

* E3 * 

* * 
***« 



**** 

*C3 : 

C3 



C2 *. 
.* *. 

prA in usi 



**** 

* * 

* D2 * „ 

* *->( 

**** 
RESVC2 

**D2* ****** 

* MAILS TASK * 
♦PTA/IDEA BOCND *<- 

* * 
* * 

*********** 



****E2********* 

* * 

* RESVCXIPIOCSJ * 

* * 

*************** 



* «-j * — « 

* * 1 
**** J 



**C3******* 



4********4* 



*. CRT SUPPOBT .*-- 



**** 

* * 

* D2 * 
r->* * 

IIES *** 



♦YES 
**** 
♦0 3 ♦ 
* E3 *->] 10E<» 



YES . * * 


. NO 


,* REQUEST ♦» YES 


*. UFA IN USE 


"1 


*. FROM SYSTEH . * , 

*. TASK .* 1 
♦. .* V 


*. .* 

♦. . * 


*» .* 


**** 


*. .* ***** 


* 


* * 


♦NO *04 * 


**** A 


* A5 * 




* A2^ 




* * 




* * 


♦ F3 * 


**** 




* 


* * 








**** 









**ytl* ****** 



*********** 



**G*»******* 

* * 

* INDICATE 

* BEQUEST FRO!! 

* USER TASK « 

* * 
*********** 



k N 

* 


TASK .♦ , 

.."* 1 

.* ***** 

»MO *04 * 

* C2* 

* * 

* 


' 


■ 



*****J4********** 



4c* ****** ******** * 



**** 
•>♦()«♦ * 
* E2 * 



L 



Chart B03. $$A$SUP1 - SGDFCH Macro, Fetch Routine 



346 DOS/VS Supervisor 



***** 03E*» 
♦04 * 
* A2* 





A2 


*. 




.* ♦. 


NO . 


* 


j_.. 


PDAIDS 
*. 

*. . ** 


**** 


*. .* 


* 


*YES 


► C2 * 






* 






**** 




< 




**B2******* 



*********** 

**** 
*oa * 

* C2 * 

* * 
**** 

ATTNFCH 

**C2******* 



* * 

* C2 * 

* * 
**** 



*********** 



*****]) 2********** 



♦SET HORK PTR T 
♦FETCH WORKAFEA 



***************** 

**** / 

♦04 * 1 

♦ E2 ♦->( 03 JH 

* * 1 
**** f 

FCHCONT V 

**E2******* 



*********** 



**F2******* 



********** 



-♦.PCIL SOPPOBT .♦ 



*****H2********** 

* * 

♦ SET PCIL PTB ♦ 



NASSIGNED) 
*********** 



FIRST FETCH . ♦- 



*****£ 2********** 
*LTA B01* 

♦ INI TI ALIZe" *- 

♦ FETCH ♦ 

♦ TABLE (FTTAE) ♦ 
***************** 



***************** 



DIRECTOBY ♦. 
ENTBY 
. SOPPLIED .♦ 



*****B4********** 

♦SCANLIST Bll* 

*_*_*_*_*_*_*_*_* 

->♦ SCAN FOR LIST ♦ 

♦ ENTRY ♦ 

♦ * 
***************** 



*****C3*** ******* 
♦TSTENTRY B91* 

*_*_*_*_*_*_*_*_* 

♦ VALIDATE DIR. ♦ 

♦ ENTBY ♦ 

♦ * 
***************** 



OND '.* , 



***** 

♦ 07 ♦ 

♦ A3^ 



SYSSCAN 

*****£{l********** 

4 ; ¥ „,„,, *• ♦SCANSCIL B91> 

.♦$ PHASE OR ♦. YES *_*_*_*_*_*_*_*_* 

♦. SYS=YES .♦ >* SCAN SCIL ♦ 

*• • * ♦ DIRECTORY ♦ 

♦. .♦ ♦ * 

♦. .♦ ***************** 



13 



*****£ 3********** 
♦SCANLISK B12* 

*_*_*_*_*_*_*_*_* 

♦ SCANLINK ♦ 

♦ DIRECTORY, IF ♦ 

♦ ANY ♦ 
***************** 



G3 ♦. 
-♦ ♦. 

NO . ♦ *. 

, ♦.PCIL SUPPORT .♦ 

♦. .♦ 

♦. . ♦ 

♦. .♦ 
♦YES 



*****[]3* ********* 
♦SCANPCIL B92 + 

♦ SCAN PCIL ♦ 

♦ DIRECTORY, IF ♦ 

♦ ANY ♦ 
***************** 



F«» ♦. 

• ♦ ♦. 

.♦ ♦ 

-♦.PCIL SUPPORT 



*****G4********** 

♦SCANPCIL B92* 

*— *— * _*_*_*_*_*_* 

♦ SCAN PCIL ♦ 

♦ DIRECTORY, IF ♦ 

♦ ANY ♦ 
***************** 



*****H4********** 
♦SCANLINK B12* 

*—*—*—*_*_*_*_*_* 

♦ SCAN LINK ♦ 

♦ DIRECTORY, IF ♦ 

♦ ANY ♦ 
***************** 



*****j3********** 
♦SCANSCIL B91* 

*_*_*_*_*_*_*_*_* 

♦ SCAN SCIL ♦ 

♦ DIRECTORY ♦ 

♦ * 
***************** 



PHNFND .♦. 

F3 ♦ 



****£{§********* 

* * 

->♦ FCHEXT (FOPT) ♦ 
*************** 



***** 

♦05 ♦ 

♦ 11* 

* * 



Chart B04. $$A$SUP1 - SGDFCH Macrc # Fetch Routine 



Charts 347 



***** 04K3 
*05 * 
* A1* 
* * 



♦. PDAIDS 



**B1******* 



*********** 



**** 
*0 5 * 
* C1 *-> 



-••If 



**D1******* 



*********** 



**g-|******* 



*********** 



**f\******* 

* * 

*GET PIK VALUE* 

♦ FOB PARTITION * 

* TEST * 

* * 
*********** 



*****G1 ********** 

* PDENTBI4 * 
*_*_*_*_*_*_*_*_* 

* EXECUTE F/L * 

* TBACE * 

* * 
***************** 



->**. CBT SOPPOBT ". * , 

*■.. ..•* n 

*. .* **** 

*YES * * 

* C2 * 

* * 
**** 



.♦C-TBANSIENT*. YES 
BEQUEST .* 



->* HARD WAIT FP8 * 
* * 

*************** 



**** 

* * 

* C2 * 



C2 *. 
.* *. 

.* DE + NO * 
♦.TEXT BEQDEST 



1 

* A4* 



*****D2***** ***** 

* * 

* SET ACTIVE + * 

* NOT FOUND FIAGS* 

* IN USER DI * 

* * 
****** *********** 



****E2********* 

* * 

* FCHEXIT(FOFT) * 

* ' * 
*************** 



**** 
*05 * 
* J1 *-, 



*****A4********** 

* * 

* CALCULATE END * 
->* OF PHASE * 

* ADDRESS * 

* * 
***************** 



YES .* REQ FROM * 
< — *. SYS OR ATTN 
*. TASK .* 



VALIDTR 

*****F4********** 
♦VALID A69* 



***************** 



**QH******* 



*********** 



**** 

*05 * 

* m *-> 



**H4******* 



*********** 



**J4******* 



**E5******* 

* SET * 

* APPROPRIATE * 
*COMREG ADDRESS 

* * 

* * 
*********** 



*****P5********** 

* * 

* UPDATE LATEST * 
-♦LOAD ADDRESS IN* 

* COMREG ♦ 



***************** 



♦YES 

L**** 
>*10 * 
* A1 



*********** 



.♦RELOCATING ♦ 


NO 


.LOAD SUPPORT . 


'"J 


♦. .♦ 
♦. .♦ 


♦. .* 


***** 


♦YES 


*06 * 


J 


* B1* 


I 


* * 


V 


* 


***** 




*06 * 




♦ A1* 





Chart E05. $$A$SUP1 - SGDFCH Macro, Fetch Routine, Phase Not Found 



348 DOS/VS Supervisor 



»P* 05K4 
* A1* 



S 



*****A1 ******** 
♦SETIND 

*„*».*_*«.*_*„*. 

* RESET CCS * 

* BUffiS EHO If * 

* RLD'S * 
***************** 



*=***» 

* B1 * 



81 *. 

BEQ FOR*' 
¥I3f LOAD 



*y1s 



*****C1 ********** 
* 
* 
SAVE REGS * 
* 
* 
**************** 



n 



********************* 

* D1 * 



EECREflENT 

TEXT BLOCK 

CCUNTEB 

* * 

*********** 



*****G1*** ******* 
* * 

*SET 



*********** 



**** 

* 
J A2 



* 

1 



*♦** 

* * 

* A3 * 



**** 
TBANSCCi 

**A2******* 



*********** 



**Q2******* 

** SET TEXT 
♦ADDRESS PQI 



TBJJiBEQ 



*********** 



*jf3********** 
*TFIX B44* 

* FIX f*«E * 

* * 

****""**'*#******** * 



**** 

SETADDK 

**E3* ****** 

* RESET LCCAX > 
♦ JSIDRISSAEIlStT 



********** 



*****D2 ********** 



***************** 



**** 

* * 

* K3 * 

* 4 
***♦ 



H1 *. 


**II 2 ******* 


B£a FOB *. NO 
VIST LOAD .* , 

•* A 
*. .* V 


♦SET ADDS P1B 
* TO IBAL 

* 
* 


*. . * **** 

♦YES ♦ * 


*********** 


1 ***** D4 * 
t_>* * * 

* 12 ***** 






****** 




1 



-*.IDAL SEtOIilE. 



***** G2 * ********* 

* * 
♦POINT CCH AEDR * 

* TO HE EN1BY * 

* ♦ 

* * 
***************** 



*****J2********** 



♦ CLEAR HI BYTE 
♦OF BOTH IDAl'S ; 



***************** 



***************** 



*****I3* ********* 

♦SIT 1EAL Ell IN* 
*CCH, PT TC NEXT* 

* IDAS * 

* * 
***************** 



**f3******* 



*********** 



*****G 3* ********* 

* * 

* SET NEXT 2K * 

* BDBY FOB 2ND * 

* IIIW * 

* * 
***************** 



UPDATE LOAD * 

ADDRESS FOB * 

NEXT BLOCK * 

* 

*************** 



LAST BLOCK 



***** 
*09 * 
♦ C2* 



♦F<*^********* 



***************** 



**** 
B13* 



********* 



******** 

**** 
->* * 

* D1 * 

* * 
**** 



.♦REtOCiTING *. 

.LCAI SUPPORT . 

♦• .* 

♦. . * 


YES 


.♦END OF CCS 
*. BUFFER 
*. 

♦. .* 


*. 


.* 

>NC 


***** 

♦09 * 

* A1* 

* * 

* 




*. .* 
♦YES 
| *** 

♦ C 



•n 



.*MOEE EDFFEB*. 


NO 


*. SPACE 


-1 


*. .* 


***** 


*YIS 


♦09 * 


**** I 


* A2* 


*C€ * 


* * 


* K3 *-> 0911 


* 


* * j 




**** v 




THOKBDBY .*. 




K3 *. 




.* *. 




.♦ WILL *. 


NO 


♦.CURJENT PAGE . 


* 


*.BE FILLED.* 


n 



♦YES 

I **** 

L_>* 

♦ A3 



chart B06* $$A$suPl - SGDFCH Macro, Channel prograir Translation for Fetch Program 



Charts 349 



Page of SY33-8551-1, revised June 30, 1974 f by TNL SN33-8770 



*07 * 

*'AW 



***** C1C3 

*C7 * 1215 

* A3* 91H5 



**** * a 1 ***** ***** 

* * 

* SET »RO BEAD * 

* REy DIKED* BIT * 

* IN PT ENTRY * 

* * 
************ *** ** 



*****£-|*** ******* 

* * 

* EUSGE PT * 

* LOOKASIDE * 

* E UPPER * 

* * 
***************** 



*NCT FLOHCKARTEE 



*—♦-*-*—*—*—*—*—* 



***************** 



*****D1* ********* 
♦TFIX B44* 


D2 
. * 


*. 
*. 




E3* 
. * 


*. 
*. 
*. 


*—*—*—*—*—*—*—*—* 

* * 

* TPIX PAGE * 


*'. PAGE 
*. 


*. NO 

TFIXIE .* , 

..•* 1 

.* ***** 


NO 
<— 


.♦PHASE 
-*. IN 
*. 


FOUND* 
ECIL 

-.* 


* * 
***************** 


*. 

* 




*. 

*. 


. * 
.* 


I **** 
•— >*06 * 

* B3 * 

* * 




*YES *09 * 
1 **** * A2* 
V->*C6 * * * 

* E3 * * 

* * 






♦YES 

1 


**** 




*«** 




**13* 


1 

****** 



* SET ACTIVE ; 
BIT IN SAVED 

* ENTBY 

* * 

*********** 



**E3******* 



*********** 



-*.PCIL SDPEOBT .* 



*********** 



**I3******* 



*********** 



**G3******* 



*********** 



PREVIOUS 
INACTIVE 
. ENTRY 



*****J3 ********** 
♦KVEN1EY BG8* 
*_*_*_*_*_*_*_*_* 
♦UPDATE INACTIVE* 

* ENTBY * 

* * 
***************** 



* CALCULATE AND * 
>* SAVE PUASE * 

* LENGTH * 

* * 
***************** 



*****B4*** ******* 

* * 

* SET WCCHHB = * 

* DISK ADDS OF * 

* PHASE * 

* * 
***************** 



*****e<4********** 

* * 

* <PICiK W iLQAD * 

* PT, ENTRY PT * 

* £BOfl BE * 

* * 

***** ******* ***** 



*****pt(********** 

* * 

* RELOCATE LOAD * 
♦POINT AND ENTRY* 

* POINT * 

* * 
***************** 

>| 



TSTSVC V 

**G4******* 
♦SET FCHEXIT* 

* RETURN FOR * 
♦MVENTRY ROUTINE* 

* * 

* * 

*********** 



HU 


*. 


.* *. 


♦ SVC 23 OS ♦. NO 
SVC 51 .* . 

*•.. ..- ] 


♦. . ♦ *♦*♦* 


*YES *08 * 




* A3* 




♦ * 




* 


■ 


• 


**J4 + > 


****** 



* COPY USER. * 
♦HORK, AND EXIT ♦ 

* POINTERS * 



.OLTEP SUPPORT. 



n 



♦. 


. * 


♦** 




♦YES 

J 


♦08 
♦ A 

♦ 
♦ 


♦♦♦♦* 




♦0 8 ♦ 




♦ 


A2* 





Chart B07. $$A$SUP1 - SGDFCH Macro, Calculate Load Point and Entry Point of Phase 



350 DOS/VS Supervisor 



***** 07RU 
♦08 * 
* A1* 



A1 *. 

* 

SVC 51 



***** 07 IW 
♦08 * 
* A2* 



***** 07H4 
*08 * 
* A3* 



MVENTRY 

****A2********* 
* MOVE ENTRY TO * 
>* OSER AREA * 



*************** 



*****g1 ********** 

* * 

* HOVE LOAD * 
*ADDRESS TO OSER* 

* ARIA * 

* * 
***************** 



****C1*** ****** 

* * 

* FCHEXT * 

* * 

*************** 



*****£ 2 ********** 

* * 
♦DETERMINE HCVE * 
♦LEN3TH, SAVE IN* 

* ENTRY * 

* * 
***************** 



*****C 2* ******* 



********** 



****D 2*** ****** 

* * 

* RETURN * 

* * 
*************** 



**p 3******* 



*********** 



* SAVE LOAD * 
♦ADDRESS, ENTRY * 

* ADDRESS * 

* * 
******** 4******** 



YES .*S*S REQ OR *. 
♦.OSEF VIST REQ.* 



$* J }******* 

* SET FCHSW * 

* TO INDICATE ' 
REQ FOR RFAL 

* STORAGE 

* * 
*********** 



'n 



**** 

* * 

* A5 ** 

* * 
**** 

S ETP EL 

** A 5******* 

* * 

* SAVE 

* RELOCATION 

* FACTOR 

* * 
*********** 



**B5******* 

* * 

* * 

* SET RLDSH = * 



AIDS !*— — , 

. ,* ***** 

♦YES ♦ OS ♦ 

i **** * ji* 

l_>*05 * * * 

* C1 * * 



*****(p********** 

* * 

* CALCULATE * 

* RELOCATION ♦ 

* FACTOR ♦ 

* * 
***************** 



. * — 



♦YES 

I 



1 



**** 

* * 

* A5 * 

* * 
**** 



*****K 3* ********* 



***************** 

L**** 
>* * 

♦ A5 ♦ 

* * 
**** 



* SET STARTING ♦ 
>♦ BYTE ADDRESS ♦ 

* FOR RLD'S ♦ 

* * 
***************** 



*****£ 4********** 

* * 

* SET RCCHHR ~ * 

* STARTING DISK ♦ 
♦ADDR FOR RLD*S ♦ 

* * 
***************** 



Chart B08. $$A$SUP1 - SGDFCH Macro, Load the Phase 



Charts 351 



***** 06H3 
*09 * 
* A1* 



***************** 



***** C6J3 
♦09 * C7D2 
* A2* 13C2 



* PESET LOCAL * 
♦ADDRESSABILITY : 



*********** 



*****g2********** 



****** ****** ** *** 



*****CI ********** 

* * 
♦POT READ, RDCNT* 

* CCW'S BEYOND * 

* IDAL'S * 

* * 
***************** 



*****D1 ********** 

♦SETTIC B13* 

*_*_*_*_*_*_*_*_* 
♦SET TIC CCW TO ♦ 

♦ RIAD CCW * 

* * 
***************** 



*********** 

L**** 
>*06 ♦ 
♦ K3 



**** 








♦09 ♦ 


06EU 




♦ C2 ♦-> 


06 HU 




* * 






**** 






TEXTSEAD V 


.♦. 


**C2******* 


C3 *. 


* * 


. ♦ *. 


* SA7E PTR TO ♦ 


NO .♦ IDAL FOR ♦. 


♦ LAST CCW ♦ 


. ♦. THIS CCW .* 

I *• •* 
v *. .* 


* * 
* * 


*********** 


**** *. .* 






* * *YES 






* F3 ♦ 








* * 








**** 




' r 


■' 


** D 2******* 


*****£3 ********** 


* * 


* * 


* POINT TO * 


♦GET FIRST IDAW ♦ 


* FIRS^ 


r ecu * 


♦ VALDE * 



*********** 



*****£ 2* ********* 



************ 



********** 



*****g 2**+ ******* 



*************** 



**A3******* 



♦GET PAGE MGR ♦ 
-^♦ADDRESSABILITY ♦ 



**£3******* 



*********** 



***************** 



**E3******* 



*********** 

**** 

♦ 09 * 

♦ F3 * 

♦ * 
**** 

SETPTO 

*****P3 ********** 



r 

**** 



k******* ************* 

K * I 

> F3 ♦ I 

11 ♦ I 

**** I 



PAGEFREE V 

***** C 3********** 

♦TFREF B44* 

*_*_*_*_*_*_*_*_* 



***************** 



] **** 

l->* * 

* BH * 



*********** 

**** 
*fg * 

* J 3 *-> 

* * 
**** 

CHKNXT 

**J3******* 



*********** 



*****A4* ********* 

♦ * 

♦ DECREMENT CCW ♦ 
>♦ TRANSLATION ♦ 

♦ COUNTER ♦ 

♦ * 
***************** 

**** 



RELOC. 




* 


YES 


FACTOR = 







-1 


**. 


* 


* 


♦. .♦ 






**** 


♦NO 

1 






* 

♦ K5 

* 
**** 



.♦ ANY 


RLD 


♦. 


NO 


♦. ITEMS LEFT 




*_~1 


*. 


* 


♦. .♦ 




V 


♦. . ♦ 




**** 


♦YES 




* i 


**** 






♦ KS i 


♦09 * 






* i 


♦ E4 ♦-> 


10E3 




**** 


* * 








**** 






NEXTRLD .*. 






E4 ♦. 






.♦ ♦. 






. +RLD SWITCH 


* 


YES 


*. = 







* 



**** 


* * 


♦ A5 ♦ 


* * 

**** \ 
READRLD V 


**A5******* 


♦ ♦ 


♦POINT TO READ^ 


>♦ CCW FOR RLD * 


♦ BLOCK ♦ 



*********** 



**B5******* 

* * 

* * 
♦SET RLD SWITCH 

* * 

* * 
*********** 



*****C 5* ********* 



♦SAVE RLD SWITCH+ 
♦ AND POINTER ♦ 



***************** 



*****D 5* ********* 



***************** 



♦READ RLD BLOCK ♦ 
* * 

***************** 



*****P5* ********* 



***************** 



*****G y* ********* 



********** 



EXT RLD 1 


♦. 




G5 


♦. 




.♦ 


*. 




. ♦ 


*. 


YES 


♦. MORE 


ADCONS . 


*~1 


*. 

♦. 


.* 

.* 


*. 


. * 


***** 




♦NO 


*10 ♦ 
♦ A3 + 



**H4******* 


**H5******* 


* 


* * 


INITIALIZE * 


♦SET TO BYPASS+ 


RLD POINTER ♦ 


♦ NEXT TIME ♦ 


* 


* * 


* 


* * 


*********** 


*********** 


| **** 


**** 




1_>* * 


*09 * 


10B3 


♦ A5 ♦ 


* J5 ♦-> 


10E3 


* * 


* * 




**** 


**** 
RLDEXIT \ 






*****J5*!( 


******** 



***************** 



♦NO 
I 

\ 

***** 

♦ 10 ♦ 

♦ A2* 



♦ K5 ♦ 






* *_> 






**** \ 






)PCHK2 .♦. 




K5 ♦. 




.♦ ♦ 




.♦ MORE TEXT 


♦. NO 


♦. TO READ 


♦—! 


*. 

♦. . ♦ 


♦. .♦ 


***** 


♦YES 


♦ 10 ♦ 


I 


♦ A1 + 


j 


* * 


V 


* 


***** 




♦ 05 ♦ 




♦ ! 


in* 





Chart E09. $$A$SUP1 - SGDFCH Macro, Channel Program Retranslation 



352 DOS/VS Supervisor 



***** C5J1 
♦10 * 09K5 
* A1* 



***************** 



*****B1 ********** 

* SAVE DE OR 

* PHASINAME PTB 

* IN E1 
* 
**************** 



*****£. J********** 



***************** 



***** C9K3 

♦10 * 
* A2* 
* * 



***** C9G5 
*10 * 
* A3* 
* * 



***************** 



CHTFCH2 

****AU********* 
♦ENTRY WHEN CRT * 

* ACT IV B * 

* * 
*************** 



* ENTRY EOR ERP * 

* * 
*************** 



*****B2******** 



***************** 



BEYCNE LAST*. 
TIXT RIAE . 
.* 
*. . * 


YES 


*. .* 

*NC 


***** 

♦ 09 * 

* J 5* 






* * 



♦ .IDEA SUPPORT 



*****C3* ********* 



*. NO 


* RELOCATE USER * 


ONDAFY .* t 


* ADCCN * 


* * 


* * 


# * ***** 


***************** 


♦YES *09 * 






I **** * J3* 
t->*C9 * * * 






* 13 * * 






* * 






**** 








" 




*****E 3* ********* 




* * 




* UEEATE ELD * 




* JOINTER * 



***************** 



ORT .* . 

.♦•* I 

. .* ***** 

*YES *03 * 

L**** * c3* 
>*03 * * * 
* E3 * * 



********* 



****f1 ********* 

* FCHEIIT(FOPT) * 

* * 
*************** 



• : -l 



- . . ***** 

♦YES *09 * 

I **** * J5* 
i_>*09 * * * 



Chart Bi0 ] * $$A$SPP1 - SGDFCH Macro, Relocate User Adeems 



Charts 353 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



***A3********** 



**** 

* * 

* A5 * 

* *— I 
**** V 

SCANEC1 .*. 

A5 



♦.LIST ADD?. = C.*- 



* CI * 

* * 
**** 



****C1 ********* 

* * 

♦ fcETUfcN, CC = * 



*****C2 ********** 
** ** 

♦♦BINARY SEAFCH** 
** DIRECTOR! ** 
** LIST ** 

** ** 

********** ******* 



********* 



*. ACTIVE ENTBI . *- 



..-•n 



* F5 * 

* * 
**** 



1 



* M ♦ 

* * 
**** 



.* PHASE *. *ES 

*. PREVIOUSLY .* 

♦.NCI fCUNt.* 



**** 1 
EgER V 



AVAILABLE 


'•"I 


♦.PAGES < 8. 
*. .* 


*» .* 


**** 


*KO 


* * 






* C1 * 






* * 






**** 


' ' 





**E3******* 



*********** 



E3 
. * 

**.PCIL SDEEOBT 



BT .* , 



**** 

* * 

* A5 * 

* * 
**** 



* SET ERROR 
->* EXIT (PHNFND) 

* * 

*********** 

**** 

* * 

* D«t * 

* *-> 



*********** 



*****E4* ********* 



***************** 



**C5******* 



*********** 



**j3******* 



.* PCIL *. NO 

*. SPECIFIC ir ■ 
*. EN1RS 



~\ 



**** 

* * 

* A5 * 

* * 
**** 



**H3******* 



*********** 



*.PCIt ASSIGNED.*- 



'~J 



YES .* *, 
*. ACTIVE ENTRY .* 



♦ NO 

L**** 
>* * 

* C1 * 



* FETCH FOB 
NON USES 

*. .* 

♦. .♦ 


* 
* 


. IBS 

**** 




*KO 

i 




* * 

* G5 * 

* .* 
**** 



**** 

* * 

* F5 * 

* *— > 
**** 

SCANEQ2 

F5 



* G5 * 

* *-> 

**** 



YES ,*ENTRY 
< — ♦. SINCE 
*. CON 



**** 

* * 

* G5 * 

* * 
**** 



EUILT*. 
IAST . 
IS .* 



*****H 5** ******** 



** ******* ******** 



*****j 4*** ******* 
* 
* 

*<- 
* 
**************** 



UPDATE 
PREVIOUSLY 
FOUND ENTRY 



**K3******* 



*********** 

i • *** 



****K*U** ****** 

* * 

♦ RETURN, CC > 49 * 

*************** 



NO .* fSEVICUS 
*. INACTIVE 

*, ENT BY 



*****K5********** 



:**************** 



Chart Bll. $$A$SUP1 - SGDFCH Macro, Scan Directory List for Equal Phase Name 



354 DOS/VS Supervisor 



Page of SY33- 8551-1, revised June 30, 1974, by TNL SN33-8770 



***** S1KU 
*12 * 92C2 
* A3* 



SCANLINK 

****A1********* 

* SCAN LINK * 

* DIRECTORY * 

* * 
*** ****** ****** 



*.PCIL SUPPORT .* 



"1 



*. . * **** 

♦YES * 

* G1 



**C1******* 



**D1******* 



*********** 



**p-|******* 



.* LINK 

. DIRECTORY 
*. PRESENT . 



*J1********* 

RETURN * 

************ 



********** 



444******4 



**E3******* 



4****4***** 



**C3******* 



*********** 



T3 *. 

*'. CRT SUPEOBT ** 

*. . * 

*. .* 

*. .* 

*YES 



♦.fETCH fOB CRT.* 



**f 3******* 



4*4**444*** 



*********** 



***************** 



**cu******* 

RES TO HE 

NORMAL CCB 

POINTERS 



*****y 4* ********* 

** SEQUENTIAL ** 

** SCAtf OF ** 

** DIRECTORY ** 

** BLOCK ** 



*. MATCH FOUND . *- 



***F<********** 

RETURN * 

* 
************** 



********* 4* ****** 



**F5**4**** 

* * 

* INVEST * 
* FNDENTSU FLAG * 

* IN LISTFLAG * 

* * 
* *****4**** 



**** 

->*07 * 
* A3 * 



Chart B12. $$A$SUPl - SGDFCH Macro, Scan Link Directory 



Charts 355 



***** 93A5 



TESTEND 

****A1* ******** 
♦CHECK FOii MOSS * 
* BUFFER SPACE * 



********* 



SETEKE 

****A3********* 

* RJESET ELE * 

* fCINTER * 

* * 
*************** 



MORE SPACE 



**** 



****C1**** 

* * 

* ftETUT.N * 

* * 

*************** 



****C3********* 

*JETUEN, CC = 3 * 

* * 

*************** 



****B4* ********* 



***************** 



♦ 09 * 

* A2* 
* * 



**D2******* 



*********** 



****D<4* ******** 

* * 
♦RETURN, CC -.= 0* 

* * 
*************** 



******** ********* 



**G2»****** 



**«*^****** 



Chart B13* $$A$SUP1 - SGDFCH Macro, Check for More Buffer Space 



356 DOS/VS Supervisor 



SETFCH 

****Al********* 

* RESTART FETCH * 

* ROUTINE * 

* * 
*************** 



**C1******* 



*********** 



*. PTA IN OSE 



**E1******* 

* * 

* * 
*SET PTA IN USE * 

* * 

* * 
*********** 



* * 

♦A3 * 

**A3******* 



*********** 



**£3******* 

* * 

* 
RESET FCHSW * 
* 

* * 
*********** 



*********** 



****£3********* 

* * 

* RESTART FETCH * 

* * 
*************** 



CCWTRBT2 

****A4********* 
♦ENTRY FROM I/O ♦ 
♦INTERR. HANDL* ♦ 
* BTAH 2ND TIME ♦ 

*************** 



*****£ 4********** 

♦ * 

♦ SAVE ENTRY ♦ 

♦ REGISTERS IN ♦ 

♦ CCWERA ♦ 

♦ * 
***************** 



**C3******* 


*****£ (J********** 


* * 


* * 


♦ RESTORE ♦ 


♦INITIALIZE TCB * 


RETURN POINT ♦ 


* FOR BTAH 2ND ♦ 


* * 


* TIME * 


* * 


* * 


*********** 


***************** 






**** 








*U * 








* D4 ♦-> 


19C1 






* * 








**** v 


11 


CCWTRB1 . *» 


♦♦E3^****** 


D4 *. 


* * 


*♦ ♦. 


♦RESTORE ADDR * 


YES .♦ NORMAL ♦. 


OF SYSTEH TCB ♦ 


♦. DEVICE? . * 



*****p n* ********* 

* * 

♦STORE POINTERS ♦ 

♦ TO SPECIAL ♦ 

♦ COMMAND LIST ♦ 

* * 
***************** 



ONE 

PARTITION 

. SYSTEM . 



*****F5********** 
*PELTCB B25* 

*_*_*^ *_*_*_*_*_* 

* * 

* RELEASE TCB ♦ 

* * 
***************** 



**Q1******* 



*****q5********** 



*********** 



***** 

♦ 16 * 

♦ BH* 

* * 



***************** 



I **** 

l— >*A01* 



**J1******* 

* * 

* * 
♦SET IDRA IN USE* 

* * 

* * 
*********** 

L**** 
>* * 

♦ A3 * 

* * 

**** 



* INDICATE * 
->* RETURN VIA ♦ 

♦ SYSTEM SA ♦ 
* * 

*********** 



****J2********* 

* * 

* EX IT * 

* * 
***** ********** 



. . * ***** 

♦YES *16 * 

i **** * A4 * 

L_>*i5 * * * 

♦ M ♦ * 



Chart B14. $$A$SUP1 - SGDFCH Macro, Restart Fetch Routine 

SGCCfcT Macrc # Channel Prcgrair Translation 



Charts 357 



***** i4 H n 



***** ^1*** ******* 

* * 

* SAVE TOTAL * 
♦NUMBER OF COPY * 

* BLOCKS * 

* * 
***************** 



*****B1 ********** 

* * 

* RELEASE ALL * 

* COPY BLOCKS * 
*EXC. CCB BLOCK * 

* * 
****** *********** 



****d********** 



***************** 



CCWTR02 

*****q1********** 

* SET NUMBER OF * 

* USED CCPY * 
♦BLOCKS TO ZERO * 

* (FOP BTAM) * 

***************** 



*****pl*** ******* 

* * 

* * 
*COPY SENSE CCW * 

* * 

* * 
***************** 



* BUILD IDAL IF ♦ - 

* NECCESSARY CR * 

* TRANSLATE * 
***************** 



CCWTR1 

*****; 2***** ***** 
♦GETBLOCK B26* 

*_*_*_*_*_*_*_*_* 

>* GET 1ST CCW * 

* COPY BLOCF * 

* * 
***************** 



*****B2********** 
♦ENQUEUE IN CCW * 

* COPY BLOCK * 

* QUEUE AND * 

* INITIALIZE * 

* BLOCK * 
***************** 

I 



*****C2********** 

* * 

* SET VEA EQUAL * 

* TO ADDRESS OF * 
♦1ST VIRTUAL CCW* 

* * 
***************** 



*****D2********** 

* SET" REAL * 

* ADDRESS OF * 
♦CHANNEL PROGR. ♦ 

* IN COPIED CCE ♦ 

* * 
***************** 



CCWTR2 

*****t?2*++ ******* 
♦GET3CW B19* 

*_*_*_*_*_*_*_*_* 

>♦ COPY VIRTUAL ♦ 

♦ CCW IN RE St ♦ 

♦ COPY LOCATION ♦ 
***************** 



**** 

♦ 15 ♦ 

♦ G2 



**** 

♦ 15 * 

♦ H2 

♦ * 
**** 



♦NO 
->| 16G1 



**** 

♦ 15 ♦ 

♦ G3 



16A1 
16D3 
16F2 



18C1 
18C7 
18D2 



CCWTR4 

***** H 2********** 

♦ 3ET NEXT ♦ 
♦VIRTUAL CCW AND+ 

♦ NEX m COPY ♦ 

♦ LOCATION ♦ 

♦ * 
***************** 



.♦ WAS LAST ♦. YES 
♦.COMMAND STJT..*- 
♦. MOD.? .♦ 



*~1 

***** 

♦ 17 ♦ 

♦ A1* 



*****H3 ********* 
* 

♦ REMOVE CNE 
♦ENTRY FROM TOP 

♦ OF STACK 



1 



*****H4* ********* 

* * 
♦POINT TO COPIED^ 

->♦ TIC TO BE ♦ 

* HANDLED ♦ 

* * 
***************** 



**** 
CCWTR15 V 

***** J4* ********* 

♦ * 

♦ "OINT TO ♦ 

♦ LOGICAL NEXT ♦ 

♦ VIRTUAL CCW ♦ 

♦ * 
***************** 



NEW COPY ♦. 
LOCATION .♦<- 
FREE? .♦ 



******* 



********* 



Chart E15. $$A$SUP1 - SGCCKT Macro, Channel Program Translation 
Refer to Chart 14. 2. 



358 DOS/VS Supervisor 



***** 15K2 
*16 * 
* A1* 



***** 
*16 * 
* A4* 



*. 


. * 


***** 


♦YES 


*15 * 


**** 




* G3* 


♦ 16 * 




* * 


* B1 *-> 


18D1 


* 


* * 






**** 






CCWTR6 t 




*****g1 ********** 



CCWTR01 

*****A4********** 

* SAVE NOHBER OF * 
♦ADDITIONAL COPY* 

* BLOCKS (FOR * 

* BTAH) * 

* * 
***************** 



**** 
CCWTR01A 

*****BH* ********* 
♦GETBLOCK B26* 



***************** 



♦POINT TO FIRST * 

* COPY LOCATION * 

* OF NEXT BLOCK * 
***************** 



**** 




♦ 16 * 




* D1 *-> 


17 


* * 




**** 


' 


CCWTR7 .*. 


D1 *. 


. * 


.* NEW COPY 


*. LOCATION 


*. FR 


EE? 



* COPY CCW * 

* * 
***************** 



CCWTR9 

*****E^ ********** 

* SET UP ENDTIC * 

* APDE . WITH * 
>*ADDRFSS OF COPY* 

* LOCATION * 

* * 
***************** 

L**** 
>*15 * 
* G3 * 



*****j?2********* : 

* SET OP ENDIIC : 

* ADDR. WITH 

* TIC ADR OF TIC : 

* IN COPY 

* LOCATION 

****************: 



L 



**** 



***************** 



*****C4********** 

* * 
♦MOVE PIK OR TIK* 

* TO CCB COPY * 

* BLOCK * 

* * 
***************** 



* ENQOEOE BLOCK * 

* IN CCB COPY * 

* BLOCK QOEHE * 

* * 
***************** 



*****£{}********** 

* * 

* STORE ADDRESS * 

* OF COPIED CCB * 

* IN CCWTCB * 

* * 
***************** 



*****P4********** 



YES 

V 
***** 
*15 * 
* JH* 



************* 



**** 
->*15 * 
* D1 ♦ 



*****q-j ********** 

* SET DP ENDTIC ♦ 

* ADDRESS WITH * 

* ADDRESS OF * 

* COPIED CCW * 

* * 
***************** 

I **** 
L->*15 * 

* G2 * 



Chart B16. $$A$SUPl - SGCCWT Macro, Channel Prcgrair Translation 
Refer to Chart 14.2. 



Charts 359 



***** 15G3 
*17 * 
* A1* 



**** 

* * 

* D3 * 



***** B -| ********** 

* * 

* REMOVE ONE * 
♦ENTRY FROM TOP * 

* OF STACK * 

* * 
***************** 



* POINT TO 1ST 

* IDA WORD OF 

* BLOCK 
* 
*************** 



*****C1 ********** 

* GET VIRTUAL * 
♦ADDRESS OF 2ND * 

* CCH IN NEXT * 

* BLOCK * 

* * 
***************** 



********* 



**** 
>*16 * 
* D1 



.♦LOGICAL END*. YES 

->*. OF IDAL .* 

*. BLOCK? .* 



***** D 2********** 
♦FIXAREA B23* 
*_*_*_*_*_*_*_*_* 

* TRANSLATE IDA * 

* WORD AND FIX * 

* * 
***************** 



YES 
CCWTR27 .*. 

C3 *. 
.♦FURTHER*. 
.*IDAL BLOCK 
>*. AVAILABLE? 



**** 

* * 

* D3 * 



*.BTAM REQUEST?.*- 



1 



***** 
*18 * 
* B3* 



*****E2******** 



***************** 



.♦ADDITIONAL *. NO 

->*. BLOCKS NEEDED.* 

*.EY BTAM? .* 



*****P3 ********** 

* GETBLOCK B26* 
*_*_*_*_*_*_*_*_* 

-* RES. ELOCKS * 

* NEEDED * 

* * 
***************** 



CCWTR30 

*****E4 ********** 

* SAVE TOTAL * 
♦NUMBER OF COPY * 

>* BLOCKS USED BY * 

* BTAM * 



**** 



**** 



*****G4 ********** 

* * 

* RELOAD ENTRY * 
♦REGISTERS FROM * 

* BTMTCB * 

* * 
***************** 



****HH********* 

* * 

* RETURN * 

* * 
*************** 



Chart B17. $$A$SUP1 - SGCCWT Macro, Channel Prcgrair Translation 
Refer to Chart 14.7, 



360 DOS/VS Supervisor 



***** 17F4 

♦ 18 * 

* R3* 



* RESET STAT. * 

* BOD. BIT IN * 

* CCWTCB * 

* * 
***************** 



NEW COPY 
LOCATION 
. FREE? 



CCWTR17 

*****5 2********** 

♦GETCCW B19 * 



***** 

♦ 15 * 

* H2* 



* COPY CCW * 

* * 
***************** 



* MARK BTAM 2ND 

* TIRE IN CCB 

* COPY BLOCK 
* 
**************** 

**** I 

*18 * 1 

* B3 



17D3 



***** 

♦ 15 * 

* H2* 



**** ^ 

TR31 .*. 

B3 *. 

.* ANY *. 

.*PAGES FIXED*. 

*. FCR THIS .* 

♦.REQUEST? .* 



*****C3******** 
♦INCREASE NUMBE 

* OF COMPLETED 

* TRANSLATIONS 

* WITH PAGES 

* FIXED BY 1. 
*************** 



*****D1********** 

* SET AD DR. OF * 

* END OF COPY * 
♦BLOCK ON TOP OF* 

* BLOCKENDPTE * 

* STACK * 
***************** 



L 



CCWTR18 7 

***** D 2********** 

* SET ADDR. CF * 

♦ COPIED TIC ON ♦ 
♦TOP OF LINEPTR ♦ 

♦ STACK ♦ 

* * 
***************** 



**** 
■>*16 * 
E1 



L 



♦ CHANNEL ♦ 

QUEUE FREE? 



*****53* ********* 

* * 

* SET TASK ♦ 

* WAITING FOB * 

* CHANNEL QUEUE ♦ 

* * 
***************** 



.* ONE 

->*. PARTITION 
♦.SYSTEM ? . 



♦ RELEASE TCB * 

* * 
***************** 



***** D 5* ********* 

* * 

♦ RESTORE ENTRY ♦ 
->*REGISTERS FROM ♦ 

♦ CCWTCB ♦ 

* * 
***************** 



****E 5********* 

* * 

* RETURN ♦ 

* * 
*************** 



***************** 



Chart B18. $$A$SUPl - SGCCWT Macro, Channel Program Translation 
Refer to Chart 14. 6. 



Charts 361 



CCWTRANS 

****A1********* 

* ENTRY FEOH * 

* CHANNEL * 

* SCHEDULER * 
*************** 



***** B 1 ********** 

* * 

* SAVE ENTRY * 

* REGISTERS IN * 

* CCWERA * 

* * 
***************** 



(CCWTCE) " * 
************** 



**** 

* * 

A3 



* * 

**** ) 
GETCCtH V 



****j 2********* 
* 

GETCCW * 

* 
*************** 

I 



GETCCW 

*****j)2********* 

* 

♦COPY VI RT. CCti 

* ro cnpy 

* LOCATION 



*****A3******** 



***************** 



GETCCW2 v 

*****B7********** 

♦INCREASE RETURN* 

♦ADDRESS BY <4 TO* 

— >* GET 'NO TIC * 

* EXIT * 

* * 
***************** 



"1 



TEST OF-CODE 

AND SET 

TCBFLAGS 

**************; 



**~J 



**** 
*****£ 4********** 



***************** 



* B4 * 

* *-> 

**** 

GETCCW4 

*****g4***** 

* CLEAR DC-B 

* AND OTHE 

* TCBFLAGS S 

* FROM SETFL 
* 
************ 



***C4********* 
* 
RETURN * 

* 

************** 



********* 



***************** 



GETCCW3 7 

*****P3* ********* 

♦TESTIDAL B21* 

*_*_*_*_*_*_*_*_* 

* FOIID IDAL OR * 

* TRANSL. * 

* EATA-AEER. * 
***************** 



I 



.* *. YES 

. CATJs-CHAINING. * 

♦.SPECIFIED.* 



J3 *. 
. ♦CCMMAND+. 
.* CHAINING *. NO 
*. SPECIFIED? 



::•♦•"! 



Chart B19. $$A$SUP1 - SGCCWT Macro, Copy CCW 
Refer to Chart 14. 3, 



. .* **** 

*YES * * 
■ ***** B 4 * 
i_>* * * 

* A4 ***** 



362 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



****A2*** ****** 

* * 

* SETFLAG * 

* * 
*************** 



SETFLAG 



**** 

* * 

* G2 * 

* * 

**** 



**** 

* * 

* El * 

* * 
**** 

1 

SETFLAG1 .*. 



.* WRITE OB * 

CONTROL 

*.CO«MAND? . * 



SETFLAG2 . *. 



-♦.BEAD COMMAND?.* 



.* READ *. 

. BACKWARD 
♦.COMMAND? .* 



** ***C4* ********* 

* * 

* SET READ * 
♦BACKWARD BIT IN* 

* TCBFLAG * 

* * 
***************** 



* AN* *. 

CHAINING IN .♦<- 
*. CCH? .* 



**** 

* * 

* E3 * 



**** 

* * 

* E3 * 



*****£ 1*** ******* 



***************** 

L**** 
>♦ ♦ 

* E3 * 

* * 
**** 



CONTROL 
WITH DATA 
. ADDR. ? . 



* *—- , 

**** 1 



****£3*4******* 

* * 

* BETDBN * 

* * 
*************** 



***************** 



* D1 * 

* * 
**** 



*****P2* ********* 

* * 
♦STORE ANY RI8L * 

* ADDR AS DATA * 

* ADDR * 

* * 
***************** 



**** 

****G2********* 

* ♦ 

* RETURN * 

* * 
*************** 



Chart B20. $$A$SUP1 - SGCCWT Macro, Set TCE Flags 
Refer to Chart 14.3. 



Charts 363 



♦♦**A1 ********* 
4 TEST I DAL * 

* ♦ 

*************** 



C2 
.♦ 
->♦. COUNT = ? 



? .* 1 



* E1 * 

♦ *** 



*****D1*** ******* 

* * 
♦STORE ANY REAL * 

* ADDS AS DATA * 

* ADDS * 



EEEOB4 

*****I3********** 
♦ERRREL B31* 



♦ .COUNT GT 3 2K?.*- 



**** 
*** 



******** ***** 



* RELEASE ALL * 

* * 
***************** 



] **** 

i->* A01 * 



**£■}*** ****** 

* 

RETURN * 

************* 



♦CALC. "JUMBEE CF* 

* PAG2S FOE * 
♦DATA- ATI E A (=N) * 

* * 

* *** * *^ +++ + ^ + ++ + 




A4 ♦ . 

.* HAS * 
.* LAST 
. IDAL-BLOCK 
*. FREE 
*.»OEDS.* 
*. .* 
♦NO 



*****B 4*** ******* 
♦GETBLOCK B26^ 

♦ GET NEW ~ ♦ 

♦ IDAL-BLOCK ♦ 

♦ ♦ 
***************** 



***** C 4* ********* 

♦ ENQUEUE NEH ♦ 

♦ BLOCK IN * 

♦ IDAL-BLOCK * 

♦ QUEUE ♦ 

♦ ♦ 
***************** 



*****£){J*** ******* 

♦ ♦ 

♦ SET NUMBER OF * 

♦ FREE HORDS TO ♦ 

♦ 17 ♦ 

♦ ♦ 
***************** 



♦DECREASE NUMBER* 

* OF FREE iORDS ♦ 

* BY N ♦ 

* ♦ 
***************** 



F4 *. 
.♦ ♦. 

♦ 

USER IDAL? 
♦. 

*. .* 

♦. .♦ 
♦NO 



**F5** ******** 



***************** 



*****H2 ********** 

♦FIXABEA B2 3* 

*_*_*_*_*_*_*_*_♦ 

-♦ TRANSLATE ♦ 

* DAfA-AREA ANE * 

♦ FIX * 
***************** 



♦♦♦♦♦G4********** 
♦SET DAT A- ADDR. ♦ 

♦ FROM CCM INTO * 

♦ 1ST FREE IDA ♦ 
♦WORD, SET IDAL * 

♦ BIT IN CC» OH * 
***************** 



IDAL6 

♦♦♦**H4******++** 

♦ PUT NEXT ♦ 

♦ VIRTUAL PAGE * 
, >*ADDR. INTO NEXT* 

♦ IDA-HORD ♦ 

♦ ♦ 
***************** 



IF READB, TEE 
ADDR. OF THE 
LAST BYTE IN 
THE NEXT LONER 
PAGE IS USED 



IDAL8 

***** K 5* ********* 

♦ REPLACE ADDR. ♦ 
♦IN CCM BY ADDH.^ 

>* OF IDAI IN ♦ 

♦ IDAL-BLOCK * 



***************** 



Chart B21. $$A$SUP1 - SGCCWT Macro, Build Indirect Address List 
Refer to Chart 1U.U. 



36a DOS/VS Supervisor 



* * 

* LOCATE * 

* * 
*************** 



****A4********* 

* * 

* LOCATE 1 * 

* * 
*************** 



LOCATE ' r 

*****B1 ********** 

* * 
♦LOAD BA AND VF.A* 

* OF DUHHY LOU * 

* BLCCK (1=1) * 

***************** 



LOCATE 1 V 

*****Fj 4 ********** 

* * 
*LOAD BA AND VBA* 
♦OF CURRENT COPY* 

* BLOCK (1=1) * 

***************** 



*****C1 ********** 

* * 

* POINT TO NEXT * 
->*BLOCK ON QUEUE,* 

J B(I»1) 

***************** 



. *IS THERE A *. NO 
.BLOCK B(I+1) .* 



V LOW *. Y5S 
VBA(I+1) .* 



**** f\ ********** 

* 

1=1+1 * 

* 

* 

**************** 



.* V LOW *. NO 

->*. VBR (I) +LENGTH. * 

*.OF BLOCK .* 



locu 

*****p 2** ******** 
♦CALCULATE AtDF. * 
*OF COPY LOC. , * 

* Z=BA(I) *< 

* +V-VBA(I) ♦ 

* * 
***************** 



****5 2***** **** 

* * 

* RETURN * 

* * 
*************** 



*****P3********** 



*****g 3**** ****** 

* * 

* CALCULATE VBA * 

* OF NEW BLOCK * 

* (=VBA(I)) * 

***************** 



*****E3* ********* 



********** 



-*. SHCPT BLOCK .* 



*****ff 3********** 



***************** 



Chart B22. $$A$SUP1 - SGCCWT Macro, Find Address of Copy Location 
Refer to Chart 14. 5. 



Charts 365 



**** 
* A3 
**** 



n 



* 
FIXAREA * 
* 
*************** 



FIXAREA 

***** B 1 ********** 



** ** * ** *** ** * * * ** 



*****C1* ********* 



***************** 



* MARK AT LEAST * 
->*CNE FACE EIXFE * 



***************** 



* FIX PAGE 

* INDICATED EY 

* VIFT. AEDP. 
*************** 



*****C3 ********** 



***************** 



*****]r 3* ********* 
♦FIX4 B23* 
*_*_*_*_*_*_*_*_* 
♦CALCULATE BYTE * 
♦AND EIT OFFSET * 
* IN FIXINF * 
***************** 



**** 

* 23 * 

* e?. * . 33 E2 

* * 

**** j 

. *. ERR OP 1 * 

E1 *. *****]??********** 

.* *. ♦ERRPEL B31* 

* *. NO *_*_*_*_*_*_*_*_* 

VALID ADDR. . * >* * 

*. •* * PEL EASE ALL * 



***************** 

| .... 

L_>*A01* 
* A2 * 



*****TT3 ********** 

* * 

* SFT COPPESP. * 

* BIT IN FIXINF * 

* TO ONE * 

* * 
***************** 



*****P3 ********** 

* * 
♦REPLACE VIPTUAL + 

-> + ADDR . IN CCR BY* 

* PEAL AEEF. ♦ 

* * 
***************** 



*****H1 ********** 
♦FIX4 B23* 
*_*_*_*_*_*_*_*_* 
♦CALCULATE BYTF * 
♦AND BIT OFFSET ♦ 
♦ FOR FIXINF ♦ 
***************** 



**** G 3********: 

FETTJPN 
************** 



j **** 

L_>* * 

* A3 ♦ 



****AU********* 



*************** 



THIS ROUTINE IS 

A PART OP THE 
FIXAREA ROUTINE 



♦POINT to FIXINF* 

* FIELD IN CCB * 

♦ COPV BLOCK ♦ 



FIX7 

*****p 5* ******** 
♦DISPLRTN 
♦. V ES *-*-*—*_*_*_*_*_ 

.* ^CALCULATE BYTE 

♦ A *AND BIT OFFSET 

I ♦ 

**************** 



♦ SUBTRACT 1 P2 ♦ 
♦FROM PARE *RAME+ 

♦ NUMBER ♦ 

♦ * 
***************** 



YES .♦ ANY 

-♦. FIX-BLOCK 
♦.AVAILABLE. 



♦ GE" 1 FTX-BLOCK ♦ 

* * 
***************** 



***** H 4 ********** 

♦ * 

♦ STORE POINTER ♦ 

♦ FOR FIX-BLOCK ♦ 

♦ QUEUE * 

***************** 



*****j {j**** ****** 

* * 

* LOAD ADDR. OF ♦ 

* FIXINF ♦ 

* EXTENTION * 

* * 
***************** 



K4 ♦. 

.♦MEMORY ♦. 
* G^EA^ER 

THAN ADD. 
*. ina«v 



***** 
*?U * 

♦ 'ai* 



****T?S********* 

* 

♦ RETURN 

* 
*************** 



I 



Chart B23. $$A$SUP1 - SGCCWT Macro,, TFIX Data Area 
Refer to Chart 14. 4. 



366 DOS/VS Supervisor 



***** 23K4 
*2H * 
* A1* 

* * 



*****A1 ********** 

* * 

* SUBTRACT 5 4U * 
♦FROM PAGE FRAME* 

* NUMBER * 

* * 
***************** 



UNFIXO 

****A2********* 

* ENTRY PROM * 

* RELALL ROOT. * 

* * 
*************** 



****A3********* 

* * 

* UNFIX * 

* * 
*************** 



****A4********* 

* * 

* FREE * 

* * 
*************** 



NEXT 

FIX-BLOCK 

.AVAILABLE. 



'—I 

***** 

♦ 23 * 

* J4* 



*****Q2********** 

* * 

* POINT TO FIXINF* 

* IN CCB COPY *<- 

* BLOCK * 

* * 
***************** 



XA E3 *. 

.* ANY *. 
.♦PACE FIXED 
*. FOR THIS 
♦.REQUEST? . 



•'•*-} 



THIS ROUTINE IS 
A PART OF THE 
UNFIX BOUTINE 



* GET FIX- BLOCK * 

* * 
***************** 



*****0 J********** 



***************** 

I**** 
->*23 * 
* J4 * 



*****C2********** 
*FREE B24* 

*_*_*_*_*_*_*_*_* 

♦ RESET BITS IN ♦ 
♦FIXINF AND FREE* 

♦ PAGES ♦ 
***************** 



***** C 3* ********* 

♦ DECREASE NUMBERS 

♦ OF COMPL. ♦ 
-♦ TRANSL. WITH ♦ 

♦ PAGES FIXED ♦ 

♦ * 
***************** 



**** 

* * 

* J2 * 

* * 
**** 



UNFIX1 

*****E2********** 
♦FREE B24* 



->♦ RESET BITS IN ♦ 
♦FIXINF EXT. AND* 
♦ FREE PAGES ♦ 
***************** 



*****£• 2********** 

♦ * 

♦ GET ADDR. OF ♦ 
♦FURTHER FIXINF ♦ 

♦ EXT. ♦ 

♦ * 
***************** 



***C5********* 
* 
RETURN ♦ 

* 

************** 



***************** 



*****g4 ********** 



**************** 



♦ FREE PAGE ♦ 

* * 
***************** 



*****H 2** ******** 
♦RELBLOCK B26 + 

*_*_*_*_*_*_*_*_* 
♦RELEASE FIXINF ♦ 

♦ EXT. BLOCFS ♦ 

♦ * 

:************* 



*** 



♦ RETURN ♦ 

♦ * 
*************** 



Chart B24. $$A$SUP1 - SGCCWT Macro, TFREE Data Area 
Refer to Chart 14. 9. 



Charts 367 



****42********* 

* * 

* GETTCB * 

* * 
*********** **** 



****£ 3* ******** 

* * 

* RELTCB * 

* * 
*************** 



****A4********* 

* * 

* RELTCBNS * 

* * 
*************** 



GETTCB 

*****B2 ********** 



***************** 



♦SAVE REGISTERS * 

* * 

* * 
***************** 



.* ONE 

. PARTITION 
♦.SYSTEM ? . 



*****C3 ********** 



*FIND CCWTCB TO * 
* BE DEQUEUED * 



***************** 



*****D2********** 



*****£3* ********* 



***************** 



OM USED TCB * 

* QUEUE * 

* * 
***************** 



*****E2***** ***** 


E3 *. 


* CLEAR THE ♦ 


. * * 


* CCWTCB SAVE * 


NO .* USED TCB 


♦ENTFY BEG. AND * 


*. QUEUE EMPTY 


* T IK/P IK * 



***************** 



****P2* ******** 

* * 

* RETURN * 

* * 
*************** 



*****p 3* ********* 

* * 
♦ACTIVATE TASKS * 

♦ WAIT. FOR ♦ 

♦ CCSTR. ♦ 

* * 
***************** 



I 



♦ BESTOHE ♦ 
♦REGISTERS FROM ♦ 

♦ SAVEAREA * 

♦ * 
***************** 



****E3 ********* 

* * 

* FETURN * 

* * 
*************** 



Chart E25. $$A$SUP1 - SGCCWT Macro, Get/Release TCB 
Refer to Chart 14.1. 



368 DOS/VS Supervisor 



****&1********* 

* * 

* GETBLOCK * 

* * 
*************** 

**** 

* * 

* B1 ♦ 

* *. 
**** 



****A5* ******** 

* * 

* RELBLOCK * 

*************** 



GETBLOCK . 



.* FREE COPY *. YE 
*. BLOCK QUEUE .♦ — 
♦ . EMPTY? . * 



*****C1 ********** 

* DEQUEUE ONE * 
♦COPY BLOCK FBOH* 

* FREE BLOCK * 

* QDEUE * 

* * 
***************** 



*****]) ^ ********** 



***************** 



.* ANY *. 
.♦TRANSLATION*. YES 
->♦. COMPLETED? . ♦ 



*****F1 ********** 

* * 
♦INCREASE NUMBERS 

♦ OF USED COPY ♦ 

♦ BLOCKS * 

* * 
***************** 



*****H1 ********** 

* * 
♦DECREASE NDMEER* 

* OF ADDITIONAL * 

* COPY BLOCKS * 

* * 
***************** 



****J1 ********* 

* * 

* RETURN * 

* * 
*************** 



.* ONE 

. PARTITION 
♦.SYSTEM ? . 



ONE 
PARTITION 
.SYSTEM ? 



*****C3* ********* 

* * 

* SET TASK * 

* WAITING FOR *- 

* EUFFER * 

* * 
***************** 



***** B4* ********* 

* * 

* SET TASK * 
->*WAITING FOR I/O* 

* COMPL. * 

* * 
***************** 



>* SAVE REG. IN 

* SYSTEM SAVE 

* AREA. WAIT. 

*************** 



D2 *. 

.* ONLY *. 

.* ONE I/O *. 

*. REQUEST IN . : 

♦.TRANSL. ?.* 



*****E2********** 

* * 

♦ LOAD ♦ 

♦ SUPERVISOR'S ♦ 
*BASE REGISTERS * 

* * 
***************** 



*****£> 2********** 



************ 



♦CORRECT FIX INF * 
♦(USED IF CAILED* 
♦ FROM FIXAREA) ♦ 
***************** 



*****H2********** 
♦SETBACK B28* 

*_*_*_*_*_*_*_*_* 

♦ SET TASK BACK ♦ 

♦ TO RESTART ♦ 

♦ TRANSL. ♦ 
***************** 



*****J2********** 

* * 

* SET TASK * 

* WAITING FCR * 

* CCHTR. ♦ 

* * 
***************** 



*****£ 2********** 

* * 

* RESTORE * 
♦REGISTERS FROM * 

* CCWERA * 

* * 
***************** 



urn 



ERROR 3 V 

*****D3* ********* 

♦COBFIXIN B27* 

*_*_*_ *~. +_*_*_*_ * 

->* * 

♦CORRECT FIXINF * 
* * 

***************** 



*_*_*_*-.*_*_*_*_* 

* * 

* RELEASE ALL * 

* * 
***************** 



**** 

* * 

* B1 * 

* * 
**** 



**** 
->*A01* 
I A2 * 



♦FIND LAST BLOCK* 
*WHICH SHOULD BE* 
♦ RELEASED (=BL) ♦ 

***************** 



*****C 5*** ******* 



***************** 



*****q 5 ********** 

* SET ADDR. OF * 

* 1ST RELEASED * 

* BLOCK TO NEW * 

* OUEUE POINTER ♦ 

* ' * 
***************** 



.* ONE 

. PARTITION 
♦.SYSTEM ? . 



*****F5* ********* 

♦ * 

♦ POST TASKS ♦ 

♦ WAITING FOR ♦ 

♦ COPY BLOCKS * 

♦ * 
***************** 



****G5****** 

* RETURN 

* 
************ 



Chart B26. $$A$SUP1 - SGCCWT Macrc, Get/Release Ccpy Elcck 
Refer to Chart 14.3. 



Charts 36 9 



* CORFIXIN * 

* * 
*************** 



**** A 2********* 

* * 

* RELCCB * 

* * 
*********** **** 



****^3 ********* 

* * 

* RELALL * 

* * 
*************** 



* AH 



•*! 



**** 

RELALL4 

*****A4********** 

♦RELBLOCK B26* 



***************** 



****A5********* 

* * 

* CSWTRBTM * 

* * 
*************** 



***************** 



*****D1 ********** 


♦SET BIT OFF 


IN 


* 


♦FIXINF FOB LAST* 


* FIXED PAGE 


IP 


* 


* PRESENT 




* 



***************** 



**** E -|********* 

* * 

* BETUPN * 

* * 
*************** 



RELCCB | 

*****5 2********** 

* * 

* DEQUEUE CCB * 
♦COPY BLOCK FROM + 

* CCB QUEUF ♦ 

* * 
***************** 



*****C 2*** ♦♦ *♦ *♦♦ 

* * 

♦ MOVE RESIDUAL ♦ 
♦COUNT TO VIET. ♦ 

♦ CCB ♦ 

* * 
***************** 



*****D9********** 

♦ MOVE ♦ 
♦COMMUNICATIONS ♦ 

♦ AND STATUS ♦ 
♦BYTES TO VIET. ♦ 

♦ CCB ♦ 
***************** 



*****j?2********** 



***************** 



***************** 



****3 2*+ ******* 

* * 

* RETURN ♦ 

* * 
*************** 



*****C3 ********** 

* * 
♦SEARCH CORRECT ♦ 
♦CCB IN CCB COPY+ 

* BLOCK QUEUE ♦ 

* * 
***************** 



****g4********* 

* * 

* RETURN ♦ 

* * 
*************** 



*****E3 ********** 

* * 

♦ DEQUEUE CCB ♦ 
♦ELCCK FROM CCB ♦ 

♦ QUEUE ♦ 

* * 
***************** 



*****F3 ********** 
♦UNFTXO B24* 
*_*_*_*_*_*_*_*_* 
♦FREE PAGES AND ♦ 

♦ RELEASE FIX ♦ 

♦ ELOCKS ♦ 
***************** 



G3 ♦. 
.♦ CCH ♦. 
NO .♦COPY BLOCKS+. 
-♦. AVAILABLE ? .♦ 



***************** 



CSWTRBTM 

*****55********** 

* * 

* SAVE ENTRY ♦ 

* REGISTERS IN ♦ 
♦CCWERA FOR BTAH* 

* * 
***************** 



*****£ 5********** 

♦ * 

♦ GET CCH ADDR. ♦ 

♦ FROM CSW ♦ 

♦ (=CCWADR) ♦ 

***************** 



CSHTRSVC 



D5 ♦. 
.♦ 
.* 
♦. CCWADR = 

*. 
♦. 

♦. .♦ 
♦NO 



*****£ 5********** 

* * 

♦ GET CORRESP. ♦ 
♦VIRT. ADDR. OF ♦ 

♦ THIS CCW ♦ 

* * 
***************** 



♦ RESTORE ♦ 
♦REGISTERS FROM ♦ 
♦CCHERA FOR BTAM* 

* * 
***************** 



***** G 5* ********* 



***************** 



****H5* ******** 

* * 

* RETURN ♦ 

* * 
*************** 



I 






***************** 



I **** 
\_>* * 
♦ A4 ♦ 



Chart E27. $$A$SUP1 - SGCCWT Macro r Release Blocks,, Get Virtual Address of CCVi 
Refer to Charts 14.8 arid 14.11. 



370 DOS/VS Supervisor 



**** A "!*♦♦♦♦♦♦♦♦ 

* * 

* CSWTRANS * 

* * 
*************** 



CSWTRANS r 

*****g-|********** 

* * 

* SAVE ENTRY * 

* REGISTERS IN * 

* CCWERA * 



*****C| ********** 

* GET CCH ADDR. * 

* IN CSW FROM * 

* COPIED CCE * 

* (=CCWADR) * 

***************** 



*****£!*** ******* 

* * 

* GET CORRESP. * 
♦VIRT. ADDP. OF * 

* THIS CCW * 

* * 
***************** 



*****P1* ********* 



***************** 



CSHTR3 

*****£ ') ********** 

♦ONFIX B24* 

*_*_*_*_*_*_*_*_* 

* * 

* FREE PAGES * 

* * 
***************** 



***************** 



J1 ♦ . 
.* IDAL *. 
.♦BLOCK QOEOE*. NO 
. AVAILABLE ? . * — > 



*****£ 1 ********** 
♦RELBLOCK B26* 
*_*_*_*_*_*_*_*_* 

* RELEASE IDAL ♦— 

* BLOCKS * 



***************** 



*****g 2*** **=♦**** 

* * 
♦POST VIRT. CCE ♦ 
♦AND RELEASE CCB+ 

* COPY BLOCK ♦ 

* * 
***************** 



♦ RESTORE ENTRY ♦ 
♦REGISTERS FROM ♦ 

♦ CCflERA ♦ 

♦ * 
************ ***** 



YES .♦ ONE 

♦. PARTITIOK 

♦.SYSTEM ? 



*****E2********** 

* * 
♦ACTIVATE TASKS ♦ 

♦ WAIT. FOP ♦ 

♦ CCttTR. ♦ 

* * 
***************** 



****P2*++^*+++ 

* * 

* RETURN ♦ 

* * 
*************** 



****A4* ******** 

* * 

* SETBACK ♦ 

* * 
*************** 



SETBACK ' r 

***** B 4********** 

* * 

* SET INSTR. ♦ 
♦ADDR. IN PSW TO+ 
♦CCWRESTART LOC.+ 

* * 
***************** 



*#***C4 ********** 

* * 

♦ SET CORRECT ♦ 
♦R1,RF IN SYSTEF1 + 

♦ SAVE AREA ♦ 

* * 
***************** 



*****£)£l* ********* 

♦P.ELALL B27 + 

*_*_*_*_*_*_*_*_* 
♦RELEASE BLOCKS ♦ 
♦ AND FREE ♦ 



********* 



******* 



*****E4 ******** 



***************** 



****P4 ********* 

* * 

* RETURN ♦ 

* * 
*************** 



******* 



!********* 



Chart B28. $$A$SUP1 - SGCCWT Macrc, Channel Program Retranslaticn 
Refer to Charts 14. 8. and 14.9. 



Charts 371 



*-] 



* * 

► DELENT * 

* * 
*************** 



DELENT 

*****B1 ********** 



* GET TIK/PIK * 



***************** 



* ESTABLISH * 
♦ADDRESSABILITY * 
♦OF PAGE HANAGEH* 

* * 
***************** 



*****£ 1 ********** 

* * 
♦SEARCH FOR PGQU+ 

♦ ENTRY OF THIS ♦ 

♦ TASK ♦ 

* * 
***************** 



**** A 3 ********* 

* * 

* CCWRSVC ♦ 

* * 
*************** 



CCWRSVC 

*****B3* ********* 



***************** 



CCWRSVO 

*****C3 ********** 

♦CALC. NUHBER OF+ 

♦ USIt CCUTCE'S ♦ 

♦ HAVING PAGES ♦< 

♦ FIXED (=M) ♦ 

♦ * 
***************** 



*_*_*_*_*. 

♦ SET TASK BACK ' 

♦ TO RESTART 

♦ TRANSL. 
**************** 



*****Q5* ********* 

* * 
♦SET TASK WAIT. ♦ 
♦FOR NEXT FREED ♦ 

* PAGE ♦ 

* * 
***************** 



-♦.TFIX POSTED ?.♦ 



♦.ENTRY FOUND 



****p-|*** ****** 

♦ RETURN WITH ♦ 

♦ DISPL. ♦ 

♦ * 
*************** 



EELENT2 

*****E 2***** ***** 

♦DELENTR ♦ 

*_*_*_*_*_*_#_*_* 

>♦ DELETE ENTPY ♦ 

♦ FROH PGQU ♦ 

* * 
***************** 



****P2***** **** 

♦ RETDRN WITH ♦ 

♦ DISPL. 4 ♦ 

♦ * 
*************** 



E3 ♦ 
. * 

H LE 1 



*****£ 3********** 

♦ GET FIRST ♦ 

♦ CCSTCE IROM ♦ 

♦ QDEDE HAVING ♦ 

♦ PAGES FIXED ♦ 

♦ * 
***************** 



->♦. H = ? 
*. 

♦. .♦ 

♦. . ♦ 



.♦ PAGES ♦ 
. ♦ FIXED BY 
OTHER 
♦.SERVICES 



CCWRSV2 V 

*****F3********** 

♦DELENT B29+ 



♦ DELETE ENTRY ♦ 

♦ FROM PGQD ♦ 

♦ * 
***************** 



.♦ WAS AN ♦. YES 
♦ .ENTRY IN PGQD.* 



PGQD. *- , 



**** 

* * 

* A5 * 

* i 
**** 



*****F4********** 
♦DELENT B29+ 

*_*_*_*_*_*_*_*_* 

♦ DELETE ENTRY ♦ 

♦ FRO« PGQD ♦ 

♦ * 
***************** 



YES .♦ WAS AN ♦. 
♦.ENTRY IN PGQU.^ 



***************** 

**** 
l->* * 

♦ A5 ♦ 



***************** 



*****£ 4* ********* 



♦ PESTORE ♦ 
->+REGISTERS FROM ♦ 

♦ CCWERA ♦ 

♦ * 
***************** 



****E5********* 

* * 

* RETURN ♦ 

* * 
*************** 



I 



***************** 



Chart B29. $$A$SUPl - SGCCWT Macro,, Reset Channel Program Translation 
Refer to Chart 14.10, 



372 DOS/VS Supervisor 



* . ■ * 

* CCBMOVE * 

* * 
*************** 



ERROR 5 

**** A 5********* 

* ENTRY FROM * 

* DISPATCHER * 

* * 
*************** 



CCBMOVE ^ 

*****F 3* ********* 
♦GETTCB B25* 
*_*_*_*_*_*_*_*_* 

* GET CONTROL * 
♦ELOCK (CCWTCB) * 

***************** 

**** 

* * 

* C3 * 

* *_> 
**** 

MOVECCBO 

*****£ 3 ********** 

* * 

* SIAPCH FIRST * 

* CCB COPY BLOCK * 

* FOR THIS TASK * 

* * 
***************** 



***** B 5* ********* 
♦ ERRREL B31* 



* RELEASE ALL * 

* * 
***************** 



**** 
->*AQ1* 
! A2 * 



*****D1* ********* 

* * 

* RELOAD ENTRY * 

* REGISTERS FF.OH ♦<- 

* CCWTCB * 

* * 
***************** 



YES ,♦ ONE 

*. PARTITION 

♦.SYSTEM ? . 



***************** 



*****£4 ********** 

* * 

♦SEARCH NEXT CCB* 
->*COPY BLOCK FOR * 

* THIS TASK * 

* * 
***************** 



****F 2* ******** 

* * 

* RETURN * 

* * 
*************** 



♦POST VTPT. CCB,* 

* RELFfiSE CCB * 

* COPY BLOCK * 
***************** 



Chart E30. $$A$SUP1 - SGCCWT Macro, Mcve Copied CCB tc Virtual CCE 
Refer to Chart 02, 3, 



Charts 373 



EBR0B6 

****A 1********* 

* ENTRY FROH * 

* GETBLOCK AND * 

* CORFIXIN * 
*** ****** ****** 



****A2********* 

* * 

* ERRREL * 

* * 
*************** 



****A3********* 

* * 

* CCWDEACT * 
*************** 



****A4********* 

* CBUF * 
*************** 



***** 51 ********** 

* * 

* BESTOBE * 

* SUPERVISORS * 

* BASE REGISTERS * 

* * 
***************** 



****C1 ********* 

* * 

* HARDWAIT * 

* * 
*************** 



ERRREL 

*****B2********** 
♦RELALL B27* 



*********** 



YES .* ONE 

*. PARTITION 

*. SYSTEM . 



* RELEASE TCB 
* 

***************: 



*****£ 2*^******** 



***************** 



****F 2*** ****** 

* * 

* RETURN * 

* * 
*************** 



.♦CCWTRANSL. 
. IN PROCESS 

*. FOR THE . 
♦.TASK .* 



**** 

* * 

* F3 * 

* * 
**** 



.ILLEGAL STC ?. 
*♦. .** 



FBECBUF 
BEQUEST ? 



***** 

*A01* 
* A2* 



FRCBUF 

*****C5* ********* 

♦RELBLOCK B26 * 

*_*_*_*_*_*_*_*_* 

>* RELEASE COPY * 

* BLOCK * 

* * 
***************** 



L_>* 



**** 

A02* 
H5 * 



***** E 3* ********* 
♦CORFIXIN B27* 

*_*_*_*_*_*_*_*_* 

* CORRECT * 

* INFORMATION * 

* * 
***************** 



CCWDE3 

*****£3********** 

♦SETBACK B28* 

* SET TFANSL. * 

* BACK FOR * 

* RESTART ♦ 
***************** 

**** 



* RETURN ♦ 

* * 
*************** 



***** 
*A02* 
♦ H5* 



*****£ t(*** ******* 
♦GETBLOCK B26* 

*_*_*_*_*_*_*_*_* 

♦ GET ONE COPY ♦ 

♦ BLOCK ♦ 

♦ * 
***************** 



*****py* ********* 

* * 
♦RETURN ADDS OF ♦ 

♦ COPY BLOCK TO ♦ 

♦ USER ♦ 

* * 
***************** 



****G4********* 

* * 

* RETURN ♦ 

* * 
*************** 



I 



Chart B31. $$A$SUP1 - SGCCWT Macro, Reset Translation, GETCBUF, FREECEUF 
Refer to Charts 13,5 and 14.11. 



374 DOS/VS Supervisor 



ENTPCK 

****&£}*** ****** 

* ENTRY (PRQGR. * 

* CHECK) * 

* * 

*************** 



*32 * 

* C2 i 



1 



**** 
SSERROR 

*****C2********** 



***************** 



NO 


* MICR 


. * 


SUPPORTED 


J 


*. 


V 


*. . * 


**** 


*. .* 


* 


*YES 


D3 * 





C3 ♦ . 

.* PAGE * 

FAULT IN 

STACKER 

. SELECT 

*. ETN . * 

* . * 

♦NO 



**** 

* * 

* D3 * 



.♦PACE FAULT : 
*. IN SYSTEM 
*. TASK 



***** 
*33 * 
* A5* 



.* PAGE *. 

TRANSL. 

♦ .EXCEPTION,* 



TRANSL. 

SPEC 

.EXCEPTION. 



*****p 4* ********* 



**************** 



**** 

♦ 32 * 

♦ C5 : 



C5********* 
* 

ARDWAIT * 

* 

*********** 



-♦.PHD SUPP0F1ED.*<~ 



BRPFA 

*****? 1 ********** 

♦RESPHO B46* 

*_*_*_ *_*_*_*_*_* 

* *<_ 

* PF IN PHO APP. * 

* * 
***************** 

I .... 

L->*AQ1* 

: A2 * 



**** 

* * 

* C5 * 



YES .*PAGE EA0L1 *. 

♦ . IN PHO 

♦.APPENDAGE.* 



I **** 

l_>* * 

* C5 * 



*****p 3********** 
*GENENT A36* 

*_*_*_*_*_*_*_*_* 
♦SAVE INTERRUPT ♦ 

* STATUS ♦ 

* * 
***************** 

L**** 
>*34 * 
* Aft * 



.♦ SEGMENT ♦. 

TRANSL. 

♦ .EXCEPTION.* 



*****]?(!********** 

♦ CHANGE ♦ 

♦ EXCEPTION TO ♦ 

♦ ADDRESSING ♦ 

♦ EXCEPT. ♦ 

♦ * 
***************** 



***** 

♦ 33 ♦ 

♦ F1* 
* * 



.♦ LTA DUMP ♦. NO 
*. REQUESTED . ♦- 



****j l»***** ***** 



***************** 



*. IT SUPP 



♦33 ♦ 
♦ A1* 

* * 



***** 
♦33 ♦ 
♦ D1* 



Chart B32. $$A$SUP1 - SGPMGR Macro, Entry Point for Program Check 
Refer to Chart 03,1. 



Charts 375 



***** 32K4 
*33 * 
* II* 
* * 



***** 32D3 
*33 * 
* A5* 



A1 *. 

. * *. 

AP SDPP ? 



*****B1********** 



***************** 



***************** 



**** 
♦33 * 

* D1 



**** 



*****D1 ********** 

*PDENTRY1 ** 

*_*_*_*_*_*_*_*_* 

* LTA-DOMP * 

* ROUTINE * 

♦not flowcharted* 
***************** 



*****£ 1 ********** 



* SAVE CURRENT * 


* RID AND ORIG * 


* TIK/PIK * 


***************** 


**** 




*33 * 


32G4 


* F1 *-> 


32H4 


* * 




**** 


r 


NOPDTRHK .*. 


F1 *. 


. * *. 


.* *. 1 


*.PHO SUPPORTED. *- 


*. .* 


*. .* 


*. . * 


* 


*YES 



.* PROGR. * 
♦.CHECK IN PHO 
*. APP. RTN .* 



*****<] 1********** 
*RESPHO B46* 

*_*_*_*_*_*_*_*_* 

* RESET PHO * 

* CAPABILITY OF * 

* INTERR TASK * 
***************** 



.* PROGR. * 

♦.CHECK IN CCH . 

*. TRANSL. .* 



♦ NO 
I 



*****£ 2******** 



* RESTORE REGS 



***************** 



***** 

♦ 23 ♦ 

♦ E2* 



E3 *. 

.♦PROGR. ♦ 

CEECK IN 

STACKER 

. SELECT 

♦. RTN .♦ 

♦. .♦ 

♦YES 



♦ C2 

* * 
**** 



♦ IDENT OLD PSH ♦ 
->♦ GET PCK INT. ♦ 

♦ CODE ♦ 

♦ * 
***************** 



♦ GENERAL ENTRY ♦ 

* * 
***************** 



A5 ♦. 
.♦ENABLED^. 
♦ DSER TASK ♦. 
INTERRUPTED .♦ 



*****B5 ********** 

♦ PPGENENT A45^ 

♦SAVE INTERRUPT"^ 

♦ STATUS ♦ 

♦ * 
***************** 



***** 

*3U ♦ 
♦ B1* 



'—I 



***** 

*A70* 
J2* 



***** 
♦32 ♦ 
♦ C5* 



PCK EXIT ♦. 
ROUTINE 
. SUPPORTED. ♦ 



*A01* 
♦ A2* 



*****£{)********** 

♦ GETPC A60* 
*_*_*_*_*_*_*_*_* 
♦GET ENTRY IN PC* 

♦ TABLE WHICH ♦ 
♦BELONGS TO TASK* 
***************** 



*****D5* ********* 
♦IDENTIFY HANDL.+ 

♦ OF PAGE FAULT ♦ 

♦ VIA RID JRTN ♦ 

♦ IDENTIFIER) ♦ 

♦ * 
***************** 



.♦ SYSTEM ♦. 

ERROR 

♦. CONDITION. ♦ 



***** 
♦32 ♦ 
♦ C5+ 



***** F 2********** 



***************** 



*•*-! 



**** 



♦NO 

L**** 
>*A01* 



* REENTRANT *. YES 


ROUTINE .* , 


*. .* ***** 


♦NO ♦3t ♦ 




♦ G1* 




* * 




* 




r 


.♦. 


G5 ♦. 


.♦ ♦. 


♦USER ERROR *. YES 


CONDITION .♦ , 


*. . * ***** 


*UO *A01* 




J ♦ A2* 



I 



.♦PF IN USER ♦. YES 
*. I/O APP. 



V*~l 



L 



**** 

>*A01* 



*A04* 
♦ A4* 



: *-l 



***** 
♦YES ♦3'J * 

L_>*A84* * * 

* A2 ♦ * 

* A % 
**** 



Chart B33. $$A$SUP1 - SGPMGR Macro, Prograir Check Entry Routine 
Refer to Chart 03.1. 



376 DOS/VS Supervisor 



***** 33J5 

♦ 34 * 

* A1* 



***** 32F3 
♦34 * 44H1 
* A4*A84B2 



***** 

* * 

* ENTRY * 

* * 

*************** 



L 



— >* ENTRY * 

* 
*************** 



***B1********** 



* SETUP EXIT TO 


* 




* DISP 

* 
* 


* 
* 
* 




***************** 




**** 








*34 * 


32 J 1 






* C1 *-~> 


>IM F1 






* * 








#*** ■' 






a-SA . *. 




PFRELSTR 


CI *. 




***** C 2******* 


* *. 




* 


, ^GATING ROUT* 


. NO 


* GET USER PIB 


*. INT] 


3BH. 


. * 


>* ADDRESS 



*****])1 ********** 

* * 

*GET RID^TIK AND* 

* USER PIB * 

* ADDRESS * 

***************** 



**** 

*34 * 

* El *-> 



33C5 



**** 
SAVER ID 

*****E1 ********** 

* SAVE RID (RTN * 

* IDENTIFIER = * 

* IDENTIFIER OF * 

* RESOURCE) IN * 

* PIB OF TASK * 
***************** 



*****F1 ********** 

* * 

* INDICATE * 
♦RESOURCE TO BE * 

* OCCUPIED * 

* * 
***************** 



**** 
♦34 * 
* G1 



***************** 



**** 
*34 * 

* C3 *— 

* * 
**** 


r 


***** C 3* 


********* 



* TNSERT TIK OF * 
♦REQUESTING TASK*<~ 

* INTO ENTRY * 

* * 
***************** 



-*. PHC OPTION 



E3 *. 
.* PHO *. 
.♦INITIALIZED*. YES 
♦.FOR THIS TASK.*- 



*****B4* ********* 

* INSERT TIK OF * 
♦USER TASK INTO ♦ 
♦PAGE-IO REQUEST* 

* ENTRY ♦ 

* * 
***************** 



.♦REQUESTING ♦. 

-♦.TASK A SYSTEM. ♦ 

♦. TASK .♦ 



1 



***** 

♦ 35 ♦ 

♦ A3* 



*****£ 4*** ******* 

* * 

* INSERT SYSTEM * 
♦TASK INDICATOR * 

* INTO ENTRY ♦ 

* * 
***************** 



*****JT(|*** ******* 

* * 

♦SET SYSTEM TASK* 

♦ NON- ♦ 

♦ DISPATCHABLE ♦ 

* * 
***************** 



*****P3 ********** 



***************** 



**: 



35A1 
-, 35C5 
j 35K3 
I 



♦INSERT REQUEST 

>♦ INTO 1ST FREE 

♦ENTRY OF QUEUE 



****************** 
* 
F5 ♦ 



♦ ATTACH SYSTEM ♦ 

♦ SAVEAREA OF ♦ 

♦ TA SK * 

♦ * 
***************** 



***** H 1 ********** 

* * 
♦SAVE INTERRUPT * 

* STATUS INTO * 
♦SYSTEM SAVEAREA+ 

* * 
***************** 

**** 

L_>* * 

* AH * 

* * 

**** 



♦ . . * 
*YES 
I 



***** 

♦ 35 * 

* A1* 



*****H4********** 
♦RESFCH B47* 

*_*_*_*_*_*_*_*_* 

* RESET FETCH * 

* REQUEST * 

* * 
***************** 



GATE OF 
PMGR-TASK 
. CLOSED . 



***** 

*A02* 

V** 



*****H 5 ********** 



***************** 



*****j5********** 



******** 



V 

*****K5 ********** 

* IDENTIFY IN * 
♦SYSPIK THE TASK + 

* PMGR-TASK IS ♦ 

* WORKING FOR ♦ 

* * 
***************** 



Chart B34. $$A$SUP1 - SGPMGR Macro, Enqueue Request to Page Queue 
Refer to Chart 13.1. 



Charts 377 



***** 34G4 
*35 * 
* A1* 



***** 34E3 

♦ 35 * 

* A3* 



TTBTFIX .*. 

A1 *. 

.* *. 


. * PMGR-TASK *. YES 
*. POSTED .* , 

*. . * ***** 
♦NO *34 * 
* F5* 
* * 

* 


• r 
*****£-| ********** 

♦RESFCH B47* 
*_*_*_*_*_*_*_*_* 

* RESET FETCH * 

* REQUEST * 



**************** 



C1 *. 

. * *. 

NPAFTS=1 * 

* *. . *" 

*. . * 



*NO 



. *NO. OF *. 

. * COMPLETED 

. GEN. TFIX- 

*.REQU. =0 . 



*****E1 ********** 

* * 

* SET TASK * 

* WAITING FOR * 

* FREED PAGE * 

* * 
***************** 



SETFBND T 

*****D2**** 



****** ****** 



l_>* 



***** 
*** 



**** 

->*A02* 
**H5** 



.♦PAGE FAULT *. YES 

* . IN SV-SERVICE. * 

*. FOUTINE .* 



*****C3* ********* 



***************** 



*****£3 ********** 

* GET ADDR OF * 
*FHO- APPENDAGE * 

* ROOTINI FROM * 

* PFATAB * 

* * 
***************** 



***** 5 3* ********* 

* * 
♦SET RID FOR PHO* 

* AIPINEAGE * 

* ROOTINE * 

* * 
***************** 



*****P3 ********** 

* TRANSFER * 

* CCNTFCL TO * 

* ENTRY A OF * 

* AFPINESGE * 

* ROUTINE ♦ 
***************** 



**************** 



.*PP REQUEST *. 

*.0F THAT TASK . 

*.IN QUEUE .* 



INDSVP 

*****C5* ********* 

* INDICATE PF * 
*FROH SV-SERVICE* 

>* ROUTINE IN * 

* QUEUE * 



******* 



:********* 



L 



**** 

>*34 * 
F5 



*****£ (J********** 



* ENTRY OF TASK * 



***************** 



**** 

->*A02* 

I H5 * 



I 



*****£ 3* ********* 

* * 

* * 

* RESET RID ♦ 

* * 

* * 
***************** 



CONTROL IS 

RETURNED TO 

THIS POINT IEOH 

AFPENDAGE 



*. IN QUEUE .* 



~1 



*****K3********** 

* * 

* INDICATE * 
♦REQUEST OF THAT* 

* TASK IN QUEUE * 

* * 
***************** 



***** 
*14 * 
* F5* 



Chart B35. $$A$SUP1 - SGPMGR Macro, Page Fault Handling Overlap Interface 
Refer to Chart 13,1, 



378 DOS/VS Supervisor 



***** 34K5 
♦36 * 37J4 
* A1* 

* * 

* 


**** 

* 
* A2 

* 


" 


PMR1 



*-) 



****A1 ********* 

* * 

* ENTRY * 

* * 
*************** 



.* GETREAL- 
REQUEST 



CI 


* 








. * 


*. 






* 




* 


YES 


PAGE IN CORE . 


*"} 


*. 
*. 


*" 


* 


*. . * 






***** 


♦ NO 






*37 * 










* E1* 










* * 










* 


^ 


J 








. *. 








D1 * 








. * 

* 


*. 


* 




npari 


r=i 


* 




* 



* SET BIT IK * 

* REENTRY- RATE * 

* TABLE RTAB ON * 

* * 
***************** 



* TEST BIT IN * 

* BEENTRY- RATE * 

* TABLE RTAB * 
***************** 



*****£ 2********** 

* INDICATE PAGE * 

* OUT . SET * 

* USED-BIT CF * 

* 'OLD' PTE TO * 

* ZERO * 
************ ***** 



*****pl ********** 
*BQCL B60* 



************** 



FMR3 

*****P2********** 

* INVALIDATE * 

* 'OLD' PTE , * 
♦INSERT STORAGE * 

* KEY INTO PTE * 

* * 
***************** 



-1 

**** 

* t 

* A2 * 



***** H i ********** 



***************** 



PMP2 V 

*****3 2* ********* 
♦REMOVE *♦ 

*_*_*_*_*_*_*_*_* 

* REMOVE PAGE * 

* FRAME FROM * 
♦SELECTION FCOI ♦ 
***************** 



*****p 2** ******** 



******** 





*. YES 


PARTS=1 ♦ .♦ -j 

♦. .♦ " V 


*. .* **** 


*NO * * 




* A2 * 




* * 




**** 



* A3 ♦ 

* * 
**** 



*****K1 ********** 
♦CPGIN B64+ 

*_*_*_*_*_*_*_*_* 

♦COUNT PAGE-TNS * 

♦ FOB DEACTIV./ ♦ 

♦ REACTIVATION ♦ 
***************** 



♦ A2 ♦ 

* * 
**** 



* A3 
**** 



*****2 3* ********* 
♦PAGEIO B61* 
*_*_*_*_*_*_*_*_* 

♦ PAGE OUT OR ♦ 
♦PAGE IN OB BOTH* 

* * 
***************** 



.,♦•*-! 



**** 

* * 

* D3 ♦ 

* * 
**** 



PMR4 

*****C3 ********** 
♦CLEAEPF * ♦ 



***************** 
**** 



♦ D3 * 

* *_) 
**** 

B5 

E3 



.* 



GITREAL? 

.♦ 
. . * 
♦NO 



********* 



*****G3****** 



***************** 



*****£ 3* ********* 



***************** 



*****j3 ********** 



♦INSERT PAGE AT ♦ 
♦ TOP OF Q00 ♦ 



***************** 



PMP97 


. ♦. 




K3 ♦. 




* 


NO .♦ 


PFIX=YES 


r % 


OPTION 


*. 


***** 


♦. . * 


*37 * 


♦YES 


♦ E1* 


| 


* * 
* 


4 




***** 




♦ 37 ♦ 



♦INSERT STORAGE * 
->* KEY FOR PAGE ♦ 

♦ FRAME ♦ 

♦ * 
***************** 



*****E ij* ********* 

♦ * 
♦SET REFERENCE- ♦ 
♦BIT AND CHANGE-* 

♦ BIT TO ZERO ♦ 

♦ * 
***************** 



*****p 4* ********* 
♦VALIDATE 'NEW ♦ 

♦ PTE , INSERT ♦ 

♦ NR. OF PAGE ♦ 
♦FBAME INTO PTE ♦ 

♦ * 
***************** 



*****g 4* ********* 



***************** 



GETREAL 
REQUEST 



♦ TURN HIGH ♦ 
->*ADDRESS BIT IN * 

♦ PTE ON * 

♦ * 
***************** 



J **** 
l->*37 * 



*****, 

* 

* SET 



j4********** 



***************** 



***** K 4 ********** 

♦INSBOT *♦ 

*_*_*_*_*_*_*_*_* 

-♦INSERT PAGE AT ♦ 

♦ BOTTOM OF HQ ♦ 

♦ * 
***************** 



Chart B36. $$A$SUP1 - SGPMGR Macro, Page Manager System Task 
Refer to Chart 13. 2. 



Charts 379 



***** 36K3 
♦37 * 
* A1* 
* * 



***** 36HS 
*37 * 
* A4* 



.* DELAYED *. NO 
*. EXCHANGE .* . 

*. . * **** 
♦YES * * 
1 * E1 * 
* * 
**** 


■ ' 


***** B 1 ********** 

* * 

* RESET NFF-BIT * 
♦FOR 'OLD' PAGE * 

* FRAME * 



************** 



*****C1 ********** 
*EXCH B58* 
*_*_*_*_*_*_*_*_* 

* EXCHANGE PAGE * 

* FRAMES * 

* * 
***************** 



***** C 1 ********** 
♦DPFIX B58* 
*_*_*_*_*_*_*_*_* 

* * 

* PFIX PAGE * 

* * 
***************** 



. * TFIX- OP *. 
->*.PFIX- REQUEST. 



**** 

E1 * 



****Aq********* 

* * 

* ENTRY * 

* * 
*************** 



.* WAS * 
. * EXCHANGE 
REQUEST 
*. DELAYED 



*****£ £J********** 

* POST TASK * 

* WAITING FOR * 

* DELAYED * 

* EXCHANGE * 



****** 



******* 



YES .* *. 
*. DUMMY REQUEST.* 



*****EH* ********* 
♦ POSTENT B4 5* 

*_*_*_*_*_*_*_*_* 
♦POST REQUESTING* 



EQUE 
ASK 



***************** 



♦.PFIX-REQUEST . *- 



*TFI 

* 
**** 



**H1 ********** 

FIX B57 * 

_*_*_*_*_*_*_* 

* 

X PAGE FRAHE* 

* 

************* 



PMRC 

***** G 2********** 
*PFIXPGE B55* 



"1 



*PFIX PAGE FFAME* 
* * 

***************** 



PAGE CAN NOT EE 

PFIXED BECAUSE 

IT IS TFIXED: 

NFF-BIT IS 

TURNED Q* 



PAGE IS PFIJED 

WHEN THE TASK 

IS POSTED (SEE 

TFREE) 



DELETE ENTRY 
FROM QUEUE 



********** 



I 



*. AP OPTION 


-] 






*. .* 
*. . * 




*. . * 


***** 




*NO 


*38 * 








* A1* 


**** 






* * 


♦37 * 38A1 






* 


* H5 * , 38C5 

* * j 


' 






**** ] 


. *. 




OPENGTE V 


HU *. 




*****H 5********** 


.* *. 




* * 


. * ANOTHER *. 


NO 


* OPEN GATE OF * 


*. REQUEST IN 


* 


>* PMGR-TASK * 


*. QUEUE .* 




* * 


*. . * 




* * 


*. . * 




***************** 


*YES 








**** 


38C5 








*37 * 


38 E2 








* ja *-> 


38G1 








* * 


U6B2 








**** 


46K2 








PMRINIT 






V 


*****j4 ********** 


*****j 5********** 


* 


* 


* * 


♦SET PARTITION- 


* 


* SET PMGR-TASK * 


*AND TASK- ID OF* 


* NON- * 


* NEXT REQUEST 


* 


* DISPATCHABLE * 


* 


* 


* * 


***************** 


***************** 


1 **** 
i->*36 




I **** 
•— >*A02* 


k 


* AT * 

* * 






**** 






**** 



*IOAD ADDRESS OF* 
>* QUEUE * 



*YES 

j **** 

I— >* * 

* A4 * 



***************** 



Chart B37. $$A$SUP1 - SGPMGR Macro, Dequeue Page Queue Entry 
Refer to Chart 13.3. 



380 DOS/VS Supervisor 



***** 37G4 
*38 * 
* A1* 



***** 37J1 
*38 * 60G5 
* A3* 

* * 



**** 

* * 

* A5 * 



'-* 



ANOTHER 
REQUEST IN 
. QUEUE . 



* FNTRY * 

* * 
*************** 



D .* , 



**** 

k * 

* C5 * 

* * 
**** 



. *TFIX, PFIX 
— >*. OR GETEEAL 

*. REQUEST? . 



**** 

* 

SK * 



***************** 



. *NO. OF *. 



* TFFFE TFIXED * 
♦PAGES OF STARED* 

* SVC'S HH * 
***************** 

**** J 

*38 * I 65F5 

* C5 *->) 



MPLETEP * 

PAL TFTX 

ZFEO .* 



. *RET ADDE > 
HIGHEST 
*.COEFADDR? 



REQUEST* 
FETCH TN 
QUEUE .* 



* POST REQ TASK 
**************** 
I 



*****pi* ********* 



* DELETE ENTRY 

* FRCM QUEUE 



***************** 



YES .* ANOTHER *. 

*. PF-REQ FOR . 

♦.SAME PAGE.* 



****** *********** 



♦ASOTHEF FEQ*. NO 
IN QUEUE 



**** 

* * 

* J3 * 

* * 
**** 



.♦ANY REQUEST*. 

*. FROM FETCH IN.* 

*. QUEUE .* 



*SET RETURN APBR* 
*IN SAVE-AREA OF* 

* PMGR TASK * 

* * 
***************** 



r 



*ANY REQUEST*. 
IN QUEUE 



■~1 

***** 
*37 * 
* H5* 



. . * **** 

♦YES * * 

I **** * B1 * 
L_>*37 * * 

* jJ4 ***** 



*NO 

i **** 
L_>*37 * 
* J4 * 



*****£ 7 ********** 

*RESFCH B47* 

*_*_*_*_*_*_*_*_* 

* RESET FETCH * 

* FEQUFST * 

* * 
***************** 



-*. NPARTS=1 



*****P3 ********** 

* * 

* SET TASK * 

* WAITING FOR * 

* FREED PAGE * 

* * 
***************** 



***** £4 ********** 

* SET PMGR TASK * 

* FIX BOUND AND * 

* NON- ♦ 

* DISPATCHABLE * 

* * 
***************** 

I .... 

L ->*A02* 

* * 

* H 5* 
**** 



**** 

* * 

* J3 * 

* *_> 

**** 

RSETCCWT 

*****j3******* 

♦CCWRSVC 



*_*_ 



_*_*_ 



* FREE TFIXED 

* PJ.GIS OF 
♦STARTED CCWT' 
************** 



♦NO 

I **** 
t— >* * 
♦ A5 ♦ 



Chart B38. $$A$SUP1 - SGPMGR Macro, Handle No Page Frames Available Condition 
Refer to Chart 13. 4. 



Charts 381 



A1*i** 



INITSVC 

****A1*** ****** 

* ENTEY (RETURN 

* TO GATED RTN) 



* * A06C3 



SVRETUBN i 

****A2********* 

* ENTEY fBETURN 

* TO REENTRANT 



************* 



*****£ -|********** 

* GET RID (RTN * 
*IDENT=RESOURCE * 
♦IDENT) FROM PIB* 

* CF TASK * 

* * 
***************** 



*****C1 ********** 

* * 

* * 

* FREE RESOURCE * 

* * 

* * 
***************** 



DETASK , 










****»3********* 




****&n* ******** 


♦ENTRY (DELAYED * 
* DEACTIVATION) * 




* * 




* HOVECCB * 


* * 




* * 


*************** 




*************** 








**** 










* * 










* * * „ 

* * 


-A06F3 








**** 




. *. 




HOVECCB 


B3 *. 




***** B 4 ********** 


. * HAS *. 




♦CCBHOVE B30* 


.* PARTITION *. YES 




♦.ALREADY EEEN . *- 




* * 


*. RIAC. .* 


i 


♦ SETOP CCB ♦ 


*. . * 


V 


* * 


*. .* ***** 


***************** 


*NO *A02* 








* 


JV 


**** 


41B2 £ 






♦39 ♦ 


«»1D2 






* 


♦ C4 ♦-> 

* * 

**** 


48K3 
i\9CH 


7 




PFEXIT 


*****£ 3* ********* 




*****C4*** ******* 


* * 




* * 


* * 




* RELOAD BASE * 


♦ DEACTIVATE TASK* 




* REGISTERS * 


* * 




* * 


* * 




* * 


***************** 




***************** 


f **** 




J **** 


«— >*A02* 




<->*A02* 


:«*.* 




** H5„* 




**** 






**** 



51D4 
51E3 



*****D1 ********** 
♦LOAD INTERRUPT * 

* STATUS FROM * 
♦SYSTEM SAVSAREA* 

* OF TASK * 

* * 
***************** 



****E1*** ****** 
♦RETDBN TO POINT* 

* OF INTERRUPT * 

* * 
*************** 



I 



Chart B39. $$A$SUP1 - SGPMGR Macro, Return to Supervisor Routine 
Refer to Charts 02,3 and 13,4. 



382 DOS/VS Supervisor 



* * 

* SVGREAL * 

* * 
*************** 



.♦ REQ FROM ♦. NO 
♦.SEAID/PEAID ?.*- 



"1 

***** 
*A01* 
* A2* 



.*1LREADY*. 

.* A GETREAL *. 

REQ IN 

♦. PROGRESS?. ♦ 



13 *. 
.♦ALREADY*. 
.* ALTERNATE *. YES 
.AREA ASSIGNED. * 



****D4 ********* 

* * 

* RETURN * 

* * 

*************** 



*****E1 ********** 

* GET NO. OF * 

* REMAIN. PAGE * 
♦FRAMES OF REAL *<- 

* BG: Z ♦ 

* * 
***************** 



F3 ♦. 
. ♦ ♦ 

NPARTS=1 



♦NO 
1 



***** F 2** ******** 

* * 

♦ GET NO. R CF ♦ 
♦PAGE FRAMES OF ♦ 

♦ REAL BG ♦ 

* * 
***************** 



*****G2********** 
♦GET NO. OF FAGE+ 

♦ FRAMES ♦ 

* AVAILABLE : ♦ 

♦ Z=R-8 ♦ 

* * 
***************** 



* *** *f 3* ********* 

* * 
♦GET NO. OF PAGE+ 
♦FRAMFS OF MAIN ♦ 

* PAGE FOOL H ♦ 

* * 
***************** 



*****G4 ********** 

♦GET NO. OF PAGE* 

♦FRAMES OF MIN. ♦ 

->+REAL PARTITION ♦ 



*****# 3* ********* 

* * 
♦GET NO. OF PAGE+ 

* FRAMES ♦ 
♦AVAILABLE Z=M-8* 

* * 
***************** 



r* 

***** 
♦i»i ♦ 

♦ A3 + 



♦YES 
| **** 
t_>*t»1 * 
♦ A2 



********** 



H4 ♦. 

.♦MINIMUM^. 

. ♦ REAL ♦ 

• PARTITION GT 

♦. 8 PAGES .♦ 



*****j4*** ******* 

* * 
♦GET NO. OF PAGE+ 

-♦ FRAMES ♦ 

♦ AVAILABLE Z=M ♦ 



*****H5* ********* 

♦ GET NO. PAGE ♦ 

♦ FRAMES ♦ 
>♦ AVAILABLE ♦ 

♦ Z=M+X-8 ♦ 

♦ * 
***************** 



♦ J3 ♦ 

* * 
**** 



Chart B40. $$A$SUP1 - SGPMGR Macro,, GETREAL (SVC 55) Routine 
Refer to Chart 13.15. 



Charts 383 



***** U0J3 
*l»1 * 
* A2* 



***** 40J3 
*1»1 * 
* A3* 



*****& 2********** 



****** ****** ***** 



***** 

♦ 39 * 

* C4* 



**** 

* * 

* C2 * 

* * 
**** 

*****Q2***** ***** 

* * 

* SET N INTO REG * 

*0 IN USER SAVE *< — -, 

* AREA * 

* * 
***************** 



*****D2********** 

* SET ADDR CF * 
♦ALTERNATE AREA ♦ 

♦ INTO REG 1 IN * 

♦ OSER SA ♦ 

* * 
***************** 



*****A3* ********* 
♦GETRIAL B42+ 
*_*-*-*_*_*_*_*_* 

♦ GET N PAGI ♦ 

♦ IRAHES ♦ 

♦ * 
***************** 



E3 *. 

.♦ ANY *. 

.♦PAGE FRAME 

*. IS FAILING 

♦. STORAGE . 



*****C3*** ******* 

* * 

* * 

* UPDATE N ♦ 

* * 

* * 
***************** 



*****D3 ********** 

* * 
♦UPDATE ADDR OF ♦ 
♦ALTERNATE ARIA ♦ 
♦IN BOUNDARY EOX+ 

* * 
***************** 



I 



NPARTS=1 ♦ 



*****£ {}********** 

* * 
♦UPDATE END ADDR+ 

->* OF REAL BG IN ♦ 

* BBOX ♦ 

* * 
***************** 

L**** 
>* * 

♦ C2 ♦ 

* * 

**** 



*****F3 ********** 

* * 

* UPDATE NO. OF ♦ 
-♦PAGE FRAMES OF * 

♦MAIN PAGE POOL ♦ 

* * 
***************** 



Chart B41. $$A$SUP1 - SGPMGR Macro, GETREAL (SVC 55) Routine 
Refer to Chart 13.15, 



384 DOS/VS Supervisor 



****fl1* ******** 

* * 

* GETREAL * 

* * 
*************** 



*****C1 ********** 

* * 

* MOVE TIK INTO * 
♦FIXWTAB- ENTRY * 

* OF PARTITION * 

* * 
***************** 



♦ANY REQUEST*. 


YES 


PAGE FRAME 


*~1 


*. FIXED . * 
* . . * 


*. . * 


***** 


"NO 


♦ 43 * 


** 




* M* 


2 * 




* * 


E1 *-> 


mci 


* 



UPPER .* j 

IMIT .*-* ^ 



* H2 * 

* * 
**** 



. * NEXT PAGE *. YES 

.FRAME FAILING.* 

*. STORAGE .* 



*****P2********** 

* * 

* RESET NE-BITS * 
>* FOR REMAINING * 

* PAGE FRAMES * 

* * 
***************** 



**G2********** 



***************** 



**** 

♦ 42 * 

* H1 *-> 



NQADR V 

*****H1 ********* 



***************** 



***** j 1 ********** 

* * 
♦SET LOFER LIMIT* 

* TO NEXT PAGE * 

* FRAME * 

* * 
***************** 



************ 



H2 



**** 
RESHADB V 

*****fl 2* ********* 

* RESET » HIGH- * 

* ADDR- BIT' IN * 

* ALL PETE'S OF * 

* THE REQUEST * 

* * 
****** *********** 



REQUEST 
FROM SVC 
. GETREAL 



*****j3* ********* 

* * 
♦RESET TASKS ID * 

>* IN FIXWTAB- *- 

* ENTRY * 

* * 
***************** 



* RESET TASK'S ID* 
->*IN 1ST FIXWTAB *- 

* ENTRY * 

* * 
***************** 



**** K S* ******** 
* * 

->* RETURN * 



Chart B42. $$A$SUP1 - SGPMGR Macro, GETREAL Routine 
Refer to Chart 13.15. 



Charts 385 



***** U2D1 
*i»3 * 
* A1* 



BEISSGBR V 

***** & -| ********** 

* 4c 

* SET TASK * 
>* WAITING FOH * 

* TFREE * 

* * 
***************** 



*****B1 ********** 
♦RWAIT B34* 

*_*_*_*_*_*_*_*_* 

* ATTACH SYSTEM * 

* SAVE AREA * 

* * 
***************** 



.* STILL ANY * 

. REQUESTED PF 

*. TFIXED .* 



SVFREAL \!/ 

****A2********* 



* ENTRY * 

* * 
*************** 



* AU * 
**** J 

TASKS V 



.* FREEREAL 

♦ . FOR ALTN. 

*. AREA 



*-] 



PWTASKS 

*****A4* ********* 



♦POST PMGR- TASK* 

* * 

* * 
***************** 



BU *. 
. * *. 

S .* 

-*. NPARTS=1 * 
*. 

*. .* 

*. . * 
♦NO 



*****£ If********** 

* * 

♦POST ALL TASKS * 
-♦ WAITING FOR ♦ 

* FREED PAGE ♦ 

* * 
***************** 



****Q3********* 

* * 
->* RETURN * 

* * 
*************** 



***** E 2********** 

♦ SET ADDR CF * 

♦ ALTERN. AREA IN* 
♦BBOX TO END CF * 

♦ CORE * 



*. NPARTS=1 * 
*. 

*. . * 

*. . * 
*NO 
I 



*****G2********** 

* * 

* UPDATE NO. OF * 
♦PAGE FRAMES IB ♦ 
♦MAIN PAGE PCOI ♦ 

* ♦ 
***************** 

**** 



YES .♦LOWES LIMITS 

r + . GE UPPER 
*. LIMIT .* 

**** * *„ . ** 

* ♦ ♦NO 

♦ AU * J 



*****f3 ********** 

* * 
♦UPtATE END ADDR+ 

->♦ OF PEAL BG IN ♦ 

* BBOX ♦ 

* * 
***************** 

**** 



* G3 
* 
*** 
FREEREAL 

YES .* 



I 



G3 ♦. 
NPARTS=1 



*****{] 3* ********* 

♦INCREASE NO. OF + 

♦ACTIVE VIRTUAL ♦ 

-♦ PARTITIONS BY ♦ 

♦ ONE ♦ 

* * 
***************** 



*FREE PAGE FRAME* 
* * 

***************** 



*****£ 2********** 

* * 
♦SET LOWER LIMITS 

♦ TO NEXT PAGE ♦ 

♦ FRAME ♦ 

* * 
*********** 



* H2 ♦ 

* * 
**** 



Chart B43. $$A$SUP1 - SGPMGR Macro, FREEREAL (SVC 54) Routine 
Refer to Chart 13.17. 



386 DOS/VS Supervisor 



Page cf SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



****A1*** ****** 

* * 

* TFIX * 

* * 
*************** 



TFIX 
NO . 



♦♦♦♦A3* ******** 

* * 

* TF5EE * 

* * 



TFREE 

*****E3* ******** 
*ITFEEE B62 



********** 



** ** *Q -J * ** ** ***** 
♦DTFIX B57 * 

*-*-*-*-*-*-*-*-* 

* * 

* TFIX PAGE * 

* * 
***************** 



**** 
*44 * 

* D2 ■■ 



4512 
1511 
45K1 



1**4 

* 

* D2 



* RETURN * 

* * 
*************** 



*****E3* ******** 

* 

*EOST PMGB TASK 

* 

* 

**************** 



BLDBEGU 7 

*****£1 ********** 

* EUILD * 
*TFIX-ENTEY FOE * 

* PAGE-I/O * 

* BEQUEST QUEUE * 

***************** 



*. SYSTEM TASK .*— 



***** 
♦34 * 
* C1* 



*****G1 ********** 

* SET UP A PSH * 
♦KITH THE EETUEN* 

* ADDR USING SVC * 

* OLD PSW * 

* * 
***************** 



*****£ -]********** 

* GENEM1 A36* 

♦EXECUTE GENEBAL* 

* ENTRY * 

* * 
***************** 



»->*3a * 



*****j 3 ** ]Ml , )[:Mt4 , t: 

* POST TASKS 

* HA1TIKG FOB 

* FBEEE PAGE 
* 
**************** 



.* PAGE *. 
. * FRAME HOT *. NO 
->*. TEMP. 

♦.FIXABLE 



MP. .* , 

BLE: -* I 
= 1 .* ¥ 



H3 *. 




* PAGE ♦ . 




FRAME NOT *. 


NO 


TERP. 
F1XAELI: .♦ 
*.NF=1 .* 


*~1 


*. .* 


***** 


♦ YES 


*45 * 


I **** 
1->*H5 * 


* E1* 


* * 


* A1 


* * 



.♦PAGE FRAME *. YES 

.IN MAIN PAGE . * 

♦.POOL ABEA.+ 



*****jjj* ********* 

♦ ♦ 

♦ GET TIK OF * 

♦ WAITING TASK ♦- 
♦FBOM PTE OF PF * 



*****H5* ********* 

* GET TIK OF ♦ 

* BAITING TASK ♦ 
->♦ FROM 1ST ♦ 

* FIXWTAB-ENTBI ♦ 

* * 
***************** 



***************** 



************** 



K5 *. 
. * *. 

PFIX=YES? 

*. .* 

*. .* 
♦ IBS 



Chart B44. $$A$SUP1 - SGPMGR Macro, TFIX and TFREE Routines 
Refer to Charts 13.9 and 13.10, 



***** 

*45 * 
* 81* 
* ♦ 



Charts 387 



***** i|i|H3 

♦ 45 * 

* 11* 



*****A1 ********** 

* GET TIK OP * 

* WAITING TASK * 

* FROM WAITERS * 

* TABLE FIXWTAB * 



***** 



*********** 



*£•]*** ******* 



***************** 



* GUT REAL * 

* PARTITION * 

* BOUNDARIES * 
***************** 



*****D1***** ***** 

* HESNirBTS * 
*_*_*_*_*_*_*_*_* 

* RESET NF-BITS * 
♦IN PFT-ENTRIES * 

* * 
***************** 



**** 

♦45 ♦ 

* E1 *-> 



. * PAGE *. 
NOT TEMP. 
FIXABLE; 
NFF= 1 . 



***** 

*nn * 

* D2* 



*****£ 1********** 

♦GET H A ITERS ID * 

* FROB PT- ENTRY * 

* OF PAGE F1AME * 

* * 
***************** 



*****G1 ********** 

* * 

* GET FIXHTAB- * 

* EKTRY OF * 

* WAITING TASK * 

* * 
***************** 



*****H1*** ******* 

* GET ALDR OF * 

* RESERVED PAGE * 

* FRA3E FBOM * 
♦FIXHTAB- ENTRX * 

* * 
***************** 



*****j -J********** 
♦EXCHANGE B58 * 

♦-♦-*-*-*-*-*-*-* 

* EXCHANGE PF'S * 

* AND PFIX PAGE * 

* * 
***************** 



*****£ 2* ********* 

♦ GET TIK OF * 

* WAITING TA£K * 
->* FROM FIXWTAB- * 

* ENTRY * 

♦ * 
****** *********** 



*****q2* ********* 



***************** 



* ENTRY * 

* * 
*************** 



**** 
->*l\H * 
* D2 * 



13 


*. 


B4 


*. 








.♦IS ♦. 


.♦ ♦. 






.* REQUESTOR *. NO 

. SYSTEfi TASK .* 

♦. . ♦ 
*. . * 


• * * 


NO 




— >*. PHO OPTION 

♦. .♦ 
*. .* 


n 




♦. . * 


♦. . ♦ 


♦♦** 




♦YiS 


♦YES 


* * 












* D3 * 












* * 












**** 




****C3********** 


7 

. *. 

C*t ♦. 




DEQOPBO .*. 

C5 *. 


* 


.* PHO *. 






SET SYSTEH TASK* 


.♦INITIALIZED^ 


YES 


.♦PAGE fAULT"^. HO 


DISPATCEABLE * 


*.FOR THIS TASK 




>♦. IN SV-SERVICB. ♦ , 

*. ROUTINE .* I 
♦. .♦ ¥ 


* 
* 


***. 




**************** 


*. .* 




*• .* ***** 






♦NO 




*IES *46 * 


**** 




1 






♦ 11* 


D3 * 




i 






* * 
* 


*— > 












**** 












1SK 






' > 


****E3 + *++++^+ + 






*****j)5** ******** 


SET TASK ♦ 






* RESET * 

♦ SV-SER¥ICE ♦ 


EISFATCHABLE * , 






* ROUTIN * 






* INDICATOR IN * 

♦ PFA- TABLE ♦ 


********************* 






***************** 




% H5* 

* 






r 

.*. 

E5 ♦. 

.♦REQUEST*. 
NO .* STORE! IN *. 
♦. PFA- TABLE .* 











***** F 5** ******** 



***************** 



***** G 5** ******** 

* LOAD REGISTER * 
♦13 WITH BEQUEST* 
*FROM PFA TABLE * 

* ENTRY * 

* * 
***************** 



*****H5** ******** 

* * 

* RESET RIQUEST * 

* IN PFA TABLE * 

* ENTRY * 

* * 
** ** ** *********** 

I**** 
->*l»6 * 
* C1 * 



Chart BU5. $$A$SUP1 - SGPMGR Macro, Post Requesting Task Ready to Run 
Refer to Charts 13,3 and 13*11. 



388 DOS/VS Supervisor 



***** 4bC5 



Page of SY33-8551-1, revised September 30, 1974 , by TNL SN33-8790 



A1 *. 

.♦aEQUSST*. 
* SjCOHED IN *. YES 
PEA- TABLE .* 



*****j3-| *********; 

* LJAD REGISTER 
*1J hlTE REQUEST 

* FROM QUEUE 



*****£•)******** 

* GET ADDR Of 
*PbJ- APPENDAGE 

* ROUTINE FROM 

* PEA TAB 



*****£!** ******** 

* * 
*SET aID TOP PHO* 

* APPENDAGE * 

* AOUTIK3 * 



***£,1******* 

TAANSIE3 
CONT53L TO 
ENI3Y fl JF 

APPENDAGE 
ROUTINE 



*.c1 ********* 

reset fid 



aalFOL IS 

3i;iU3NED TO 

Iriio 10I.M FECK 

ArPENIUGE 



a* OTHER PAJ5 
FAULT RFQUSS1 

flilUFHfD^It! 
aEGISIE 3 1J 



* AiWTAER *. YES 

PELT TO BE .* 

*- iriSCISSLD.* 



***** A 2********* ; 

* SXCHANGE 
♦ENTRIES IN PEA : 

* TABLE AND 

* SYSTEM QUEUE 

* ENTRY 



*****£ 2*********' 
*INDICATE ENTRY 
*fOi PAGE FAULT ' 

* IS SV-SER VIC* 

* ROUTINE IK 

* SYSTEM QUEUE ' 
**************** 



************* 



QUEUE EMPTY .* 



****jj ******** 
POINT TO PIB 



I .... 

«->*A01* 



* ENTRY (RESETS * 

* PHO-CAP. OF A * 

* TASK J * 



*~l 



*****~ 4*******: 



. * END *. YES 

->*. PAGE-I/O-REQ .* , 

*. QUBUE .* I 

*. .** **** 
*N0 * * 



*****Q4******** 

* DELETE 3NTRY 



•INDICATE DUMMY 

* EEQ TO DEQ 

* ROUTINE 



*****Q5********** 

* * 

* POINT TO PIE * 



Tii. 



**K1 ******** 

INDICATE NO 
"" UEST FOf 
TASK IK 
vUECE 



SfliE, P.EQUES'i 
INTO SYSTEM 
^Jf'U.'l ENTRY 



*AG2* 



Chart B46. $$A$SUP1 - SGPMGR Macro, Dequeue Page Queue Entry 
Refer to Chart 13.3. 



Charts 389 



*.PAGi IS COdE .* 



1 

i 


♦las lu? 

* yOl f 


3SP- 









*.CPf SUPPORT? . *- 



3PFN GAT I * 



OPEN GATE 



*J2*«* 



TFIX2 

* SET UP PS* IN * 

* SYSTEfl SA FOR * 

* RETURN TO *< . 

*SETFCH ROUTINE * | 



TFIX V 



****B4* 
* RETURN 



**A5********** 

* GET ADDR OF * 

* CCH-CflAIN AND * 

* IDAL-LISTS * 



..'-^ 



*D5********** 



*****£ 5* ********* 

*TFREE B44* 

*FREE PAGE HITH * 
* DATA AREA * 

***************** 



*****?5********** 



u 



Chart B47. $$A$SUP1 - SSPMGR Macro, Reset Fetch 
Refer to Chart 13.5. 



390 DOS/VS Supervisor 



Page of SY33-8551-l f revised June 30, 1974, by TNL SN33-8770 



n 



♦ EHTBI SVC 58 * 
*************** 



*.PSM KEI ZSBO 



•"I 



si; 

A2* 



VIE T JOB 

*****C2* ♦****♦*** 
♦SET POINTEBS SO* 

* THAT 1ST PAGE * 
>*OP FIBT PABI.IS* 

* MOT INVALID * 

* ATED * 
***************** 



>'■-] 



♦ ♦*♦ 

J" t 



~1 

. .♦ ♦ ♦*♦ 

♦SO * * 

L**** * A3 * 

>*A80* * 

* A0U ***** 
* JD2****** 



*****D2* ******** * 
♦INVPAGE1 B48* 

♦INVALID ATE~ IT- * 
♦ AND PPT- ♦ 



*****E2* ********* 

♦ ♦ 

♦ CLE A3 FIBST * 

♦ PAGE BEHIND ♦ 

♦ SAVE ARE1 ♦ 

♦ ♦ 
***************** 



♦A02\ 
♦ H5^* 
♦#♦♦ 



*****A3* ********* 

* KOVE SAVE ABEA ♦ 
*l»TO Skll ABEA * 

* IN S0PEBVISOB * 

* ♦ 
***************** 



*****E3********** 

♦ ♦ 

♦ GET OBIGIN Of ♦ 
♦HEAL P1BTITI0N ♦ 

♦ EBCH EEOX * 

♦ ♦ 
****** *********** 



*****C3*** ******* 

♦ * 

♦ STOBE IDEE OF * 
♦SEAL SAVE ABEA * 

♦ INTO PIB ♦ 

♦ * 
******** ********* 



*****£3* ********* 



***************** 



♦****I3+*+*^***** 
♦INVPIGE1 B48* 
*_*_*_*_*_*_*_*_* 
♦INVALIDATE PT- ♦ 
*AND PPT- ENTB. * 
♦ OF VIB1.P. * 
***************** 



*****! 3* ********* 



***************** 



G3 ♦. 
.♦ ♦. 

S .* *. 

-*. NPABTS=1 * .* 

***. 

♦ . .♦ 
♦NO 



*****E3* ********* 
♦DECBEASE HO. CF* 
♦ACTIVE VIBTOAL * 

♦ PABTITICBS BI * 

♦ QBE ♦ 

♦ ♦ 
***************** 



*****J3* ********* 
♦GETBEAL B42* 

*GET EAGE ERAHES* 
* * 

***************** 



*****K3* ********* 

♦HOVE SAVE ABEA * 

♦ INTO BEAL * 

♦ PABTITIOM * 

♦ ♦ 
***************** 



****£ q* ******** 

* INVPAGE1 ♦ 

♦ ♦ 
*************** 



♦ *** 

INVPAGEl 
*****B4* 



***************** 



CU *. 

.♦ *. 

.* ♦ 

.PAGE INVALID 



TBS 

n 

♦ ♦*♦* 
*U9 ♦ 



—I 

♦**** 
*49 * 
* D1* 



*****£4* ********* 

♦ ♦ 
♦SET STOBAGE KEY* 

♦ OF PAGE FBAHE * 

♦ TO ZEBO * 



***************** 



*****F4*** ******* 



***************** 



YES . *PAGB FBAHE *. 
*.IN SEL, POOL .* 



♦♦fit******* 

♦ * 
♦ 

* SET SWITCH 
* 

♦ ♦ 
*********** 



*****J<1*** ******* 



***************** 



*****K<1* ********* 



XED .♦ , 



**♦** 
♦49 * 
♦ A1* 

♦ ♦ 



C5 

. ♦ 

SNITCB ON 

♦ . 

♦. .* 
♦ HO 



:---n 



♦♦♦♦ 

♦49 
♦ A1* 
♦ ♦ 



*****D5** ******** 

♦ BEHOVE PAGE ♦ 

♦ FBAHE EBOH ♦ 

♦ QOEDE * 

♦ ♦ 
***************** 

I ♦*♦* 
L_>*49 * 
♦ A1 ♦ 



***************** 



♦♦*♦♦ 

• 39 * 

♦ C<U 
♦ ♦ 



Chart B48. $$A$SUP1 - SGPMGR Macro, Initialize Partition (SVC 58) 
Refer to Chart 13.16. 



Charts 391 



Page of SJf 33-8551-1, revised June 30, 1974 f by TNL SN33-8770 



***** 46B5 

*49 * 48C5 

* A1* 48D5 

* * 



**A1******* 

.* 

* RESE1 SWITCH * 

% 

*********** 



*****B1 ********** 
♦INSTOP * 

*-*_*_*_*_*_*_*_* 
* INSERT PAGE * 
♦FRAME AT TOP OF* 



**** 



********** 



*****C1 ********** 



*************** 



**** 
SETPTENT 

*****C1*** ******* 



***************** 



VPAGE 

****JS3********* 

* ENTFY SVC 59 * 

* * 
*************** 


****A4********* 

* * 

* STPFIXRS * 

* * 
*************** 


.*. 

E3 *. 

.* *. 

.* *. MO 
*.PSW-KEY ZEBO .* , 

*■%. ..-*'* Zl 


**** 
*49 * 

* B4 *-> 50 E1 

* * 

NXTENTR 

*****£4*** ******* 

* GET ADDR OF * 
♦NEXT PAGE TO BE* 

* P FIXED * 

* * 


**yjS *A0l* 


***************** 


I **** * A2* 
(_>*i»8 * * * 

* E« * * 

* * 






**** 


" 




. *. 
C4 *. 




.* *. 
.* *. YES 

*. END OF LIST . * . 

•■.. ..•* ^ 

*. . * ***** 

*NO *39 * 

* C4* 

* * 






* 




,. 






*****D 4* ********* 

* GET ADDR OF * 

* PFTE OF * 

* RESERVED PAGE * 
♦FRAME FROM LIST* 



**** 12 2* ******** 

* * 

* RETURN * 

* * 
*************** 



*****f 1 ********** 



***************** 



**** 
->*48 * 

* c*r * 



***************** 



*****£{}* ********* 

*STORE PFTE- ADDR* 

* INTO FIXWTAB- * 

* ENTRY * 

* * 
***************** 



*****£• 4* ********* 

* STORE * 
*PFIX-CO0NTER -1* 

* INTO * 

* FIXHTAB-ENTRY * 

* * 
***************** 



t ******* 



* INDICATE * 


♦PFIX-RESTART IN* 


* FIXWTAB- ENTRY * 


* * 


********* 


!******** 


**** 




*49 * 


51D2 


* m *-> 


51K2 


* * 




**** 




DRA2 . *. 


B4 *. 


.* *. 


.* PAGE IN *. YES 


*. REAL CORE . * » 

*. .* \ 
*. .* V 


*. .* ***** 


♦NO *50 * 




* A1* 



*****j4* ********* 



***************** 



**** 
->*H2 * 
* H1 * 



Chart B49. $$A$SUP1 - SGPMGR Macro, PFIX Restart 
Refer to Chart 13.13. 



392 DOS/VS Supervisor 



***** 49H4 

♦ 50 * 

* A1* 



GETPFTE 

*****&-]********** 

♦PFIXPAGE B55* 

*_*_*_*_*_*_*_*_* 

* * 

* PFIX PAGE * 

* * 
***************** 



**** 

* * 

* AH * 

* *■ 
**** 



**** 

* * 

A5 



* * 1 

**** j 

NVADR V 



************ 



*. PAGE IN CORE?.*- 



*****C1 ********** 

* * 

* SET TASK * 

* WAITING FOR * 

* TFPEE * 

* * 
***************** 



*****D1 ********** 
♦RWAIT B34* 

*_*_*_*_*_*_*_*_* 

* ATTACH SYSTEM * 

* SAVE AREA * 

* * 
***************** 



.* PAGE IN * 

. RfcAL PART OF 

*. REQ. ? .* 



***** 
*51 * 
* A1* 



***** 
*51 * 

* ai* 



*****j)ti ********** 

*DPFIX B58* 

*_*_*_*_*_*_*_*_* 

* PFIX PAGE * 

* IMMEDIATELY * 



********* 



***** 



-♦.PAGE PFIXED? .* 



***** 
♦49 * 
* BU* 



i **** 

L->*A01* 



*****j"l* ********* 
*GETNPADR B54* 

* _*_* _*_*_*_*_*_* 
♦DETERMINE NEXT * 

* PAGE TO BE * 

* FIXED * 
***************** 



5UC3 
5«C4 
5UH2 
5<IJ2 



G1 *. 

. * *. 

.* * 

.END OF LIST? 



**** 

♦ 50 * 

* G2 



1 



*****3 2 ******** 



***************** 



*****H1 ********** 



♦BESET TASK«S-ID* 

->* IN * 

* FIXKTAB-ENTRY ♦ 



************* 

**** 

* 50 * 

* H3 *-> 

* * 
**** 

PFREXIT 

*****E3 ********** 

* * 

* LOAD RETURN * 

* CODE AND BASE * 

* REGS * 

* * 
***************** 



*****j1 ********** 
*RESPF1 B56* 

*_*_*_*_*_*_*_*_* 
*TEST IF STARTED* 

* PFIX TO BE * 

* RESET * 
***************** 



ALPADR 


. *. 

K1 *. 

* *. 




. * 


ADDRESS * 


YES 


*. 
*. 


VALID? 
*. . * 


*"! 




*. . * 


**** 




♦ NO 


* 




I ***> 

L->* 


K* AH 




* 




* A5 


***** 




* 


* 




**** 



Chart B5 0. $$A$SUP1 - SGPMGR Macro, PFIX Routine 
Refer to Chart 13.11. 



Charts 393 



***** 50BU 
*51 * 50CU 
* A1* 



*1 



* IN IT NO PAGE * 

* FHAHE FOUND * 

* INDICATOR * 

* * 
***************** 



*****B1 ********** 



**************** 

**** 

* * 

* C1 * 

* *_> 
**** 

TSTSPB .*. 

C1 *. 
.♦IF PAGE*. 
YES .* FRAME IS * 
-*. FAILING 
*. STORAGE .* 



.♦PAGE FRAME *. YES 

.IN SELECTION .* 

*. POOL ? .* 



E1 *. 

. * *. 

. * * 

.PAGE PFIXED? 



*****p 1 ********** 

* * 
♦INDIC. AT LEAST* 
*1 PAGE FRAME NO* 

* EFIXED * 

* * 
***************** 



PFRFND 

*****D 2*** ******* 

* SET PFTE-AEDB * 

* OF RESERVED * 
>*PAGE FRAME INTO* 

* FIXWTAB-ENTRY * 



***************** 



u 



**** 



*****A 3* ********* 
♦PFRLIST B54* 

*_*_*_*_*_*_*_*_* 

* PFREE ALREADY * 

* PFIXED PAGES * 

* * 
***************** 



*****£3* ********* 



***************** 



. *. 

C3 *. 

.* 1ST *. 

YES .* PAGE REAL 

-*. PART STILL 

*. PFIXED . 



D3 *. 

.* PAGE *. 

FRAME 

PFIXED IN 

REAL 
♦.PART?.* 
*. .* 
*YES 



H * . 

•'1 



*****Qi( ********** 

* * 

* * 

->* RETURN CODE=4 * 

* * 

* * 
***************** 

L**** 
>*39 * 
* C4 * 



SVPFREE 

****A 5* ******** 

♦ ENTERED FROH * 

*BTAM CHAN. APP * 

* * 
*************** 



*****B^* ********* 
♦BTPFREE B53* 

*_*_*_*_*_*_*_*_* 

* * 

* PFREE LIST * 

* * 
***************** 



**C5******* 

* * 

* INDICATE * 

* SUCCESSFUL * 

* PFREE * 

* * 
*********** 

**** 
*51 * 

* D5 *-> 53CU 

* * 
**** 

BTRET V 

****D «,* ******** 

* RETURN TO * 

* CALLER * 

* * 
*************** 



*****53 ********** 

* * 

* * 

* RETURN CCDE=8 * 

* * 

* * 
***************** 

L**** 
>*39 * 

* ca * 



***************** 



*YES 

L**** 
>* * 

* A3 * 



TONFBTS 

*****j 2********** 

* INDICATE PAGE * 

* FRAME NOI * 
>* TEMPORARY * 

* FIXABLE * 



***************** 



*****K2********** 
♦RWAIT B34* 

*_*_*_ *_*_*_ *_ *_ * 

* ATTACH SYSTEM * 

* SAVE AREA * 

* * 
***************** 



***** 

♦ 49 * 

* H4* 



Chart B51. $$A$SUPl - SGPMGR Macrc, PFIX, Find Page Fraire 
Refer to chart 13.12. 



394 DOS/VS Supervisor 



***** A66E4 



t 



****A2***** **** 

* * 

* STARTPFR * 

* * 
*************** 



STARTPFR f 

*****3 2********** 

* * BTPFREE. 

* * ****B3********* 
♦SET RETURN BEG * *ENTKY FROM BTAB* 

* * * PFREE RTN * 

* * * * 
***************** *************** 



*****C3 ********** 

* * 

* I DINT NORM * 
>* PFRFE REQ * 



**** 

*52 * 

* D2 *-> 



. * **************** 

YES I 

I **** 

l_>*«»7 * 

53E1 *"A2 



**** 
SCO PFR 

*****£ 2*** ******* 



* RETORNCODE=C 

* 
*************** 



**** 

->*50 * 

* H3 



Chart B52. $$A$SUP1 - SGPMGR Macro, PFREE Routine (SVC 68) 
Refer to Chart 13. 1U. 



Charts 395 



***** =2C3 
*53 * 54C1 
* A2* 



NPAGE V 

*****£ 2********** 
♦DETERMINE AEDR * 

* OF FIHST CP * 
, >*NEXr PAGE TO BE* 

* F3EED * 
I * * 
********************* 



A2 



r* 



END OF LIST 



****C 1* ******** 

* RETURN TO * 

* CALLEE * 

* * 
*************** 



.* PFEEF *. 

->*. ISSUED FROM . 

*.BTAM APP..* 



BTMRC12 

*****£((********** 

* RETURNCODE=12 * 

* IN REG, F * 
>* UNSUCCESSFUL * 

* PFREE * 



********** 

L**** 
>*51 * 
* D5 * 



****** 



D2 


*. 




*****£ 3* ********* 


.* 




*. 


* 


RETURNCODE=12 * 


.* 




*. NO 


* 


III RIG. C * 


.PAGE IN CORE .* -, 


* 


UNSUCCESSFUL * 


*. 




.•* i 


* 


PFREE * 


*. 




* 


* 


* 


. *" 


**** 


***************** 


*YE£ 


* * 




J 






* A2 * 




( **** 






* * 




i->*50 * 






**** 




* H3 * 

* * 
**** 




' 








****E2** 


>:*** 


***** 






DPFPEE 




B62* 






_*_*_*_* 




.*_*_* 
I * 






PFREE 


PAG 







***************** 



"1 



**** 

* * 

* A2 * 

* * 
**** 



*~1 

**** 

* * 

* A2 * 

* * 
**** 



♦ .PAGE NF- BOUND. *- 



* A2 * 

* i* 
**** 



*****j2********** 

* * 

* * 

* ACTIVATE TASK * 

* * 

* * 
***************** 



*****£ 2*******4** 

* * 

* SAVE ADDR CF * 

* PFTE INTO * 

* FIXWTAB * 

* * 
***************** 

**** 



u 



Chart B53. $$A$SUP1 - SGPMGR Macro, PFREE Routine (SVC 68) 
Refer to Chart 13,14. 



396 DOS/VS Supervisor 



***** A66E3 



****A1********* 

* PFRLIST * 

* * 
*************** 



****A2********* 

* * 

* STRTPFIX * 

* * 
*************** 



****A 3 ********* 

* * 

* GETNPADR * 

* * 
*************** 



PFRLIST r 

*****g 1 ********** 

* * 

* SAVE EFT)- * 

* ADDRESSES FOR * 

* PFREE * 

* * 
***************** 



*****C1 ********** 



************** 



**** 
~>*53 * 
* A2 * 



STRTPFIX .*. 




B2 *. 




. * *. 




. * RONS TASK *. 


YES 


*.TN REAL MODE . 


"1 


*. . * 


*, . * 


***** 


*NO 


*50 * 


I 


* G2* 



D2 *. 

. *GATE OF* 
PARTITION 
FOR PFIX 

. CLOSED . 
*. . * 


*. NO 


*. . * 
*YSS 


***** 

*A80* 
* E2 * 



* GET PETE-AIDE * 

* OF PEAL PAET * 

* BOUND. * 
***************** 



*. ZERO .* , 

•■.. ..•* ^ 

*. . * ***** 

*NO *51 * 

I * DH* 

I * * 



*****Q2********** 



***************** 



.* REMAINING *. YES 

.AREA SMALLER .* 

*. THAN A .* 
*.PAGE?.* 



*****C 3* ********* 

* * 
*DECRFASE LENGTH* 
*CF AREA. POINT * 

* TO NEXT PAGE * 

* * 
***************** 



***************** 



**** 
->*5P * 
* G1 * 



***** 
*50 * 
* Gl* 



*****£ 4* ********* 



************* 



, .* ***** 
*NO *50 * 
I * Gl* 



*****j 2********** 
♦GET BEGIN ACDP * 

* OF AREA TO BE* 

* PFIXED OF * 

* PFREED * 

* * 
***************** 



| .... 

t->*50 * 



* G 1 * 

* * 
**** 



Chart B54. $$A$SUP1 - SGPMGR Macro, PFIX Routine (SVC 67) 
Refer to Chart 13.11. 



Charts 397 



* * 

* PFIXPGE * 

* * 
*************** 



**** A5 **** 
* 

* GPFTEBDS 

* 

*********** 



PFIXPGE 

*****32********** 
♦GPFT3BDS B55* 

*_*_*_*_*_*_*_*_* 

* GET PFTE-ATDB * 

* OF REAI PART * 

* BODND * 
***************** 



*****£ 2********** 



****** ****** *** 



****B4********* 

* * 

* GPFTBNDS * 

* * 
*************** 



***************** 



***************** 



***************** 



YES .* PFIX * 

♦.REQUEST FRCM 

♦.RESTART? . * 



E1 ♦. 
. * * . 
* SRME ♦. NO 
PFTE-ADDPESS .♦ , 

*•.. ..•* 1 

*. .* **** 


E2 ♦. 
.♦PAGE IN*. 
.♦ REAL PART 
♦.OF REQUESTOR 
♦. 

♦. . ♦ 
♦. . ♦ 


♦YES ♦ ♦ 
1 ♦ E3 ♦ 


♦NO 

1 


I **** 





EXCHPGES 

*****£<**** ******* 

♦EXCHANGE B58 + 



PFIXIMD V 

*****P2**+***+*** 
♦DPFIX B58* 

*_*_*_*_*_*_*_*_* 

* * 

* PFIX PAGE ♦ 

* * 
***************** 



****(5 2********* 

* * 

* RETURN ♦ 

* * 
*************** 



***************** 



****q 3 ********* 

* * 

* RETURN ♦ 

* * 
*************** 



*********** 



****F4*** ****** 

* * 

* RETURN ♦ 

* * 
*************** 



*****QC^* ********* 

* * 

♦ CORRESPONDING ♦ 
♦PFTE ADDRESS IN+ 

♦ REG. 7 * 

* * 
***************** 



*****E5* ********* 



***************** 



*****P5 ********** 

♦ * 

♦ CORRESPONDING ♦ 
♦PFTE ADDRESS IN + 

♦ PEG. 8 ♦ 



****G 5* ******* 
* 

♦ RETURN 

* 

******** 



Chart B55. $$A$SUP1 - SGPMGR Macro, PFIX Routine (SVC 67) 
Refer to Chart 13.11. 



398 DOS/VS Supervisor 



**** ft 2********* 

* * 

* RESPFIX * 

* * 
**** *********** 



*****r2***** ***** 



****A4********* 

* * 

* RESPF1 * 

* * 

*************** 



***************** 



***************** 



*****p o********** 
*RESNFBTS ** 

*~ P.ESET~ALL * 

* NF-HTTS * 

* * 
***************** 



*****P3 ********** 

* * 

* * 

* PESJT NFf-BIT * 

* * 

* * 
***************** 



RESPF2 

***** D 4 ********** 

♦PFRLIST B54* 

*_*_*_*_ *-*^.*^*_* 



***************** 



****CS* ******** 

* * 

* RBTORN * 

* * 
*************** 



* RELOAD REGS *<- 

* * 

* * 
***************** 



-* RESET H? BIT * 

* * 

* * 
***************** 



****p 2 ********* 

* * 

* RETURN * 

* * 
*************** 



Chart B56. $$A$SUP1 - SGPMGR Macro, PFIX Routine (SVC 67) 
Refer to Chart 13.11. 



Charts 399 



* * 

* DTFIX * 

* * 
*************** 



DTFIX B1 *. 



B2 * 
. * 
.* 
->*. NF7=1? 



DTFIX2 

.** 

>*. 



F3 ♦ . 
NF=n? 



**** 




* * 




♦ D1 * 




* *_> 




**** 




DTFIX5 


*****£ i *** *** **** 


* INCREASE TFIX * 


* COUNTER FOE * 


* PAGE FRAME BY * 


* 01 


«E * 



***************** 



****C2********* 

* * 

* RETURN * 

* * 
*************** 



FFPF1 

*****E2* 



* INITIALIZE * 
♦SCANNING OF QOO* 



***************** 



F3 * 
* 1ST 
ENTRY OF 



***************** 



♦ NO 

I 



*****£ 2********** 



*************** 



* STOFE ACER OF * 
->♦ »NEH» PAGE * 

* FRAME * 

* * 
***************** 



* GET ftDDR OF * 

* 'CLD' PAGE * 

* FRAME * 

* * 
***************** 



***************** 



DTFIX3 

*****H 4* ********* 

♦ REMOVE * * 
*_*_*_*_*_*_*_*_* 

>*REMOVE PF FROM ♦ 

* SEL POOL * 



***************** 



not flowcharted 



****j2********* 
♦RETURN VIA EXIT* 

* 2 * 

* * 
*************** 



*****j4* ********* 

* * 

* * 

* SET SP=1 * 

* * 

* * 
***************** 

L**** 
>* * 

* D1 ♦ 

* * 
**** 



Chart B57. $$A$SUP1 - SGPMGR Macro, DTFIX Subroutine 
Refer to Chart 13.9. 



400 DOS/VS Supervisor 



****A1******** 

* 

* DPFIX 
* 
************** 



****A3********* 

* * 

* EXCHANGE * 

* * 
*************** 



.♦IS PAGE*. 
FRAME IN * 
SELECTION 
POOL . * 



* GET PFT-ENTRY * 

* OF »NFW PAGF. * 

* FRAME * 

* * 
***************** 



* REMOVE PAGE * 

* FRAME FROM * 
♦SELECTION POOL * 

* * 
***************** 



. *PAGE-I/0 IN*. 
. PROCESS: 
*.SP-BIT=1 .* 



EXCHA 

*****£• 4********** 

* MOVE CONTENTS * 
♦OF NFF-BIT FROM* 

>*'NEW« TO •OLD' * 

* PFT-ENTRY ♦ 

* * 
***************** 



*************** 



*****E3******** 



***************** 



*****P4********** 

* * 
♦SET NFF-BIT OF * 
*"NEH» PFT-ENTRY* 

* TO ZERO * 



*****£ 1 ********** 



WHEN PMGR- TASK 

GETS CONTROL 

NEXT THE PAGE 

IS PFIXEE 



***************** 



****F1 ********* 
*RETUEN VT» E7IT* 

* 1 * 

* * 
*************** 



*************** 



*****t?4* ********* 
♦DPFIX B58* 

*_*_*_*_*_*_*_*_* 

* PFIX »NEW PAGE* 

* FRAME * 

* * 
***************** 



*************** 



Chart B58. $$A$SUP1 - SGPMGR Macro, DPFIX Subroutine, Exchange Pages 
Refer to Charts 13.11 and 13.13. 



Charts 401 



* * 

* EXCH * 

* * 
*************** 



EXCH V 

*****B2******** 



***************** 



*****C2********** 

* * 

* EXCHANGE PAGE * 
♦NUMBERS IN PFT-* 

* E NTRI ES * 

* * 
***************** 



*****£) 2** ******** 



************* 



*****F2********** 

* * 

* EXCHANGE * 

* PF-APDE. IN * 

* PPT- ENTRIES * 

* * 
***************** 



*****r;2********** 

* * 

* EXCHANGE * 

* CONTENTS CF * 

* PAGE FRAMES * 

* * 
***************** 



EXCH1 

*****E3 ********** 

* SET AEDR OF * 

* »NFH» PAGE * 
>* FRAME INTO * 

* PT- ENTRY * 



***************** 



*****P3* ********* 

* MOVE CONTENTS * 

* OF 'OLD' INTO * 

* »NEW PAGE * 

* FRAME * 

* * 
***************** 



****H2*****-**** 

* * 

* RETURN * 

* * 
*************** 



Chart B59. $$A$SUP1 - SGPMGR Macro, Exchange Pages 
Refer to Chart 13.13, 



402 DOS/VS Supervisor 



****J13********* 

* * 

* BQCL * 

* * 
*************** 



n 



**** 
* * 

* E3 * 

* *-> 

**** 

BQCL8 ¥ 

*****E3* ********* 

* * 

* INDICATE * 
♦SCANNING OP QOO* 

* * 

***************** 
**** 



*****B5********** 

* * 

* REMOVE PAGE * 
♦FRAME FROM QOO * 

* OR Q01 * 

* * 
***************** 



**** 
BQCLH 



*****C3* ********* 



* *C 5* * ******** 



♦INSERT PAGE AT * 
* BOTTOM OF Q11 * 



***************** 



**** ***** ******** 



D3 *. 
.* *. 

CCO EMPTY 



.♦SCANNING OF*. 
QOO 



***************** 



* CALCDLATE * 
♦ADDRESS OF ?AGE*<- 

♦ FRAME * 

***************** 



BQCL2 



♦***G1 ********* 
*; SET OB 8 *<- 

*************** 



.♦SCANNING CF*. 



*****H2********** 

* INITIALIZE * 
♦INSERT INTO Q01* 

♦ ♦ 

***************** 



r* 

♦♦♦♦ 
* ♦ 

♦ A5 ♦ 

* ♦ 
♦♦♦♦ 



R=1 AND C=0 . 

*. ** 

*. • * 



* INITIALIZE 
->*INSERT INTO Q10 



***************** 



* REMOVE PAGE * 
♦FRAME FROM QOO ♦ 

* OR Q01 * 

* * 
***************** 



*****g4* ********* 

♦INSERT PAGE AT * 

* BOTTOM OF 001 * 

* OR Q10 RESP. * 

* * 
***************** 

**♦♦ 



* INITIALIZE * 
♦SCANNING OF Q01* 



***************** 



F5 ♦. 
. ♦ ♦. 

Q01 EMPTI 



• mo 

—J 

♦♦♦♦♦ 
♦38 * 
* A3* 



L 



*****H5* ********* 

* APPEND C10 TO * 

QOO, HQ TO Q10#* 



***************** 



*****J5* ********* 

* * 

* AND APEEND * 

* »OLD» QOO TO * 

* 011 * 

* * 
***************** 

**** 



L 



Chart B60. 



$$A$SUPi - SGPMGR Macro, Scan Queues for Page Frame 
Refer to Chart 13, 5. 



Charts 403 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



n 



♦♦♦♦A2* ******** 

* * 

* PAGEIO * 

* * 
*************** 



*****A4*** ******* 

* WAIT FOR * 

* COMPLETION OF * 

* READ I/O * 

***************** 



PG2X 

*****C1********** 

* * 

* COMPUTE DISK * 

* ADDRESS FOR *<• 

* PAGE * 

* * 
***************** 



***D1 *********** 
READ PAGE 
* FROM PAGE * 
DATA SET 'SYSIO 
* SVC 15* * 

**************** 



♦MOVE ADDRESSES * 
♦OF PAGE FRABES * 

* INTO CCN«£ * 

* * 
***************** 



C2 *. 

.* *. 

.* * 

.PAGE-IN OH II 



♦.PAGE-OUT 0111.*- 



PG3X 

*****E3^*«****** 



♦ COMPUTE DISK 
>♦ ADIRESS FOR 

* PAGE 



*****E2********** 



.♦ ONBEC I/O ♦. YES 

t. ERROR . *— 1 

♦. .* 1 
*. .* V 
*. . * **** 
♦NO * * 

I * J3 $ 


♦ COMPUTJ 

♦ ADDRES. 

♦ PA( 

* 
******** 


B DISK ♦ 
5ES FOR * 
3ES * 

********* 


1 **** 






V 
.♦. 

F1 *. 

.♦*NO RECORD* ♦. YES 

s. FOUND COHD. .* , 

♦. .♦ I 
♦. .♦ V 


■ 

***P2* 

WRITE I 

♦PAGE DJ 

•SYSIO i 

* 


r 

********** 
»AGE TO 
IT A SET ♦ 
JVC 15 • 
* 


*. . * **** 


**************** 




* J3 * 

* * 








**** 






• 

****Q1*: 

RETt 
******** 


n******* 
* 

JSN * 
* 

K* ****** 


***G2*< 

READ 

♦ FROM 

DATA SE1 

♦ SVC 


********** 

PAGE 

PAGI * 
P •SYSID 

15« ♦ 



***************** 



***E3*****^«^* 
1RITE FAGE TC 
♦PAGI EAT A SET ♦ 
•SYSIO SVC 15» 



♦♦♦♦************ 



**************** 



♦MO 



****H3********* 

♦ RETURN * 

* * 
*************** 



****D4********* 

* * 

* RETURN ♦ 

* * 
*************** 



♦ NO 

L**** 
>* ♦ 

♦ A4 ♦ 

♦ ♦ 
*♦♦♦ 



>* HARDiAIT 

!**/ 



*************** 



♦ J3 ♦ 

♦ ♦ 
♦♦♦♦ 



Chart B61. $$A$SUP1 - SGPMGR Macro, Perform Page I/O 
Refer to Chart 13. 5. 



404 DOS/VS Supervisor 



* * 

* DTFREE * 

* * 
*************** 



****A4********* 

* * 

* DPFREE * 

* * 
*************** 



DTFREE 

*****B i*** ******* 



**** ****** ******* 



*****34********** 

* GET PFT- * 

* EXTENTION- * 

* ENTRY * 

* * 
***************** 



* TFIX- 


♦. NO 


CODNTEB ZERO .* , 

♦. . * V 


*. .* 


**** 


*;es 


* 






* J1 






* 






**** 


.*. 




D1 *. 




. ♦ *. 




* PFIX=YES 


*. NO 


OPTION 

*. 

*. .* 


•-I 


*. . * 


**** 


♦YES 


* 






* F1 






* 






**** 


1 


- 




.*. 




E1 *. 




.* *. 




♦PAGE FRAME 


*. 


PFIJ 


[ED 


.* 



*****D4********** 



***************** 



*N 
**** I 

* F1 * J 

**** | 



**************** 



.*TFBEE FBOM**. 
FETCH .* 



*****G1 ********** 

* * 

* INSERT PAGE * 
♦FRAME AT BOTTOM* 

* OF HQ * 

***************** 



TFREEPF3 

*****P2********** 

* * 
♦RESET REFER IN CE* 

>* Bir OF PAGE * 

* FRAME * 



***************** 



G2 *. 
.* *. 

.* *. Ni 

♦.CHANGE BIT ON.*— 



* INSERT PAGE * 
->*FRAHE AT TOP OF* 

* Q00 * 

* * 
***************** 

l **** 



PAGE TFIXED .* 



*************** 



*****G4* ********* 

* INSERT PAGE * 
♦FRAME AT BOTTOM* 

* OF HOLD Q0BUB * 

* HQ * 



♦ ♦*******: 



****** 



TFREEPF6 

**** *Q 1 ********** 



->♦ 



*<- 



********************* 

* * 
♦HI ♦♦♦♦♦ 

♦ ♦ ♦ 
♦♦*** ji * 

♦ *-> 

**** 

****J1*** ****** 

♦ ♦ 

♦ RETURN * 

♦ * 
*************** 



***** H2*** ** ** *♦ ♦ 

♦ ♦ 

♦ INSERT PAGE * 
-♦FRAME AT TOJ OF+ 

♦ U01 * 

♦ * 
***************** 



**************** 



****j «»*** ****** 
*RETUBN YIA EXIT* 
♦ 2 * 



Chart B62. $$A$SUP1 - SGPMGR Macro, DTFREE and DPFREE Subroutines 
Refer to Chart 13.10. 



Charts 405 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



****A1 ********* 

* * 

* DIPREER * 

* * 
*************** 



**** A3* ******** 

* * 

* SRTAEE * 

* * 
*4*****4******* 



****A4********* 

* TRTABB * 

* * 
*************** 



***************** 



*****C1 ********** 

* SET 'HIGH- * 

* ADDR'- BIT ON * 

* IN PTE * 

* * 
***************** 



*****D1 ********** 

* * 
♦SET SIOEAGE KEY* 
♦Of PAGE FRAME 0* 

* , R=0 AND C=0 * 

* * 
****** *********** 



. *PAG£ FRAME 
EAILING 
♦.STORAGE? . 



*44**4********** 



*****C3* 4** ****** 

* * 

♦SET BTAE-EIT CN* 

* ♦ 

* * 
***************** 



****E3* ******** 

* * 

* RETURN * 

* * 
4*4*4********** 



***************** 



.RTAB-BIT OFF?.* 



*****gt|********** 

* * 

* * 
♦INCREASE RRCTR * 

* * 

* * 
***************** 



*****£ 1*** ******* 



***************** 



***** G J********** 

* * 

* CLEAR TFIX * 
♦COUNTER SET OFF* 

* SP AND NF * 

* * 
****** 4 ********** 



******** 4* ** ***** 



****P2* ******** 

* RETURN * 

* * 
******* 4 ******* 



* RETURN * 

* * 
*************** 



* INSERT PAGE * 
♦FRAME AT TOP OF* 

* Q00 * 

* * 
***************** 



****J 1********* 

* * 

* RETURN * 

* * 
*************** 



Chart B63. $$A$SUP1 - SGPMGR Macro, Subroutines 
Refer to Charts 13.14 and 13.17. 



U 06 DOS/VS Supervisor 



****Ai ********* 

* * 

* CPGIN * 

* * 
*************** 





DEACT3 V 






***** A 4********** 


DEACTP 


*A3********* 




**** A5 **** 


* 


* CALCULATE * 


* 


ENTRY * 


* EXPONENTIAL * 


* ENTRY 




* AVERAGE D * 




************ 


* * 


********** 



*.T3D AVAILABLE.* 



*****D1 ********** 
*REAL STAST TIKE* 
*Ot IbT DEACT.- * 

* MEASUREMENT * 

* INTERVAL * 



***** 



******: 



***** i ;-| ********** 

* sei all bits of* 

* reentry -rate * 

* table p. tab to * 

* ZERO * 
***************** 



*****r"l* 

* SET 

* REENTRY -RATE 

* COUNTER fiRCTE 

* 10 ZEBO 

**************** 



********** 



** ri 1 ******; 



V"l 



piojte: no. of 
pa3s-ins since 

LAST PEACT.- 
HSASUREMENT 



********** 



*.TOD AVAILABLE. 



*****J)3* ***»****: 

♦CALCULATE TIME ' 
♦INTERVAL SINCE : 

* LAST DEACT.- ' 

* MEASUREMENT 



***************** 



*DEA:r B64* 

*_*_ *_*_*_*_*_*_* 

* PEICTIVATICN- * 

* MEASUREMENT * 



**** 



r*** ********* 



SET START TIME ; 
FOR NEXT 
INTERVAL TO > 
TIMEA 



~1 



♦SET ALL BITS IN* 

* REENTRY RATE * 

* TABLE RTAB TO * 

* ZERO * 



* SET REENTRY * 
♦RATE COUNTER TO* 

* ZERO * 



.* TOO MANY 

-*. PAGE- INS: 

*.T00 HIGH 



*ANY ACTIVE * 

VIRTUAL 
♦.PARTITION.* 



.* MORE *. 
* THAN ONE * 

ACTIVE VIRT 
♦.PARTITION.* 



*****D5********** 

* * 

* TRY TO DEACTIVE* 

* ONE VIRTUAL * 

* PARTITION * 



* ANY TASK *. N 
SEIZED THE .*- 
*. SYSTEM .* 



TRY TO 

DEACTIVATE A 

PARTITION 



* SKIP REQUEST 

* FOP. 

* DEACTIVATION 



* Gb *->l 65G1 
**** | 

ACTF V 

****G5********* 

RETURN * 

i *************** 

G5 * 



r~ 



***H3 ********** 

SE1 INITIAL * 

VALUE iOR * 

EXPONENTIAL * 

AVERAGE * 



L>** 



Chart B64. $$A$SUP1 - SGPMGR Macro, Update Page-In Counters 
Refer to Chart 13.6. 



Charts 407 



Page of SY33-8551-1, revised September 30, 1974, by TNL SN33-8790 



*MJVE TfiT-EYTES : 

* r'Oi LL INTO 

* nAITFLD 



. * ANY * 

.PAixITIC?} USES 

*. lta .* 



I i\t»ICA3 IN 
i-AnTITION JSES 



*r,GVE 25VCFLE TC 
*' i-'EAC-fLD AND 
DIVIDE ENTRIES 
* BY It 



iiAJ VI2TJAL 

tttr.ii tick rot 

i)ifti_TlVATIOH 



DEACTIVATED: 



j **** 



RTP .V 



*jj********* 



r _ 



I? THAT *. WO 

Pki-.TZTIOb .* 

. i.CTVE .* 



PfFTITION J 
IK Vir.TOAL 
. KODE 



***** E 3**« ******* 
*IECREASE NO. OF* 

* ACTIVE V1FTUAL * 

* PARTITIONS BY * 

* ONE * 



INCREASE NO. O. 
rSAOIVATSD 
PABTITIOFS 



* INDICATE 
*IAF.TITION TO BE 

* LL-BOUND IN 

* TFT-MASK 



*.AP=YES OPTION. 



**** f 3********* 

PIND SOBTASKS 

BELtNGING TO 

PAST IT ION 



INDICATE IN 

DEACTFLD ALL 

SUBIASKS OF 

PARTITION 



AND INDICATE 
THE SOBTASKS 
HHICfc HAVE AN 
ENT9Y IN PG^U 



* CAi.ZfiL Hi *. YF3 

PROCESS FJE .* 

*.h.dia "ASK.* 



* INITIALIZE * 
->*CON?INrjAIICN Of* 

* SCAN * 



DEACTIVATE EACH 

TASK BELONGING 

TO PART. 



.* 1ASK IN 
. GATED SPVfi 
*. EC DUNS . 



. * 


TASK IN *. 


— >*. 


GATING 




ROOriNE? . * 












**YES 




i 


*6b 


* | b6A4 


* B4 


*->| 6b J2 




* 1 






DEACTCD 


V 


***** £4 ********* 


*INDICAfE DELAY 


*OF 


DEACTIVATION 


* 


IN PIB 


**** 


************ 


**** 


| 


*6 5 


* | 67D1 


* C4 


*->| b7F2 




* I 67F3 




V b7G2 


FINDEAC 


T .*. 




C4 *. 








**. 


*Tap 


= YES OPTION. 



~~1 



*****J)U *********: 

* SCAN FOR NEXT : 

* TASK OF 

* PARTITION 



-*NO flORB*. 

. *TASK TO BE *. 

*. DiACriVAIEP . 



*GEI NEXT ENTRY 



JCANDE2 V 

****G4***** 

* ENTRY 



*CALC UK OR PIK* 
* ffJi-! LOCATION * 
*IN DEACT FIELD * 



FINSCAN 

*****£ 5********** 

* ACCOUNT PAGE * 

* FRAHES OF * 
>*D£ACr.PASr. AND* 

♦REARRANGE THE« * 



******** 



. * RETURN 10 *. YES 

.£EQ0- ROUTINE.* ■, 

*. NECESSARY.* 1 



***** 
*3d * 
* C5* 



*** 35 ***** 
RETURN 



!_>.***% 



L>**~ 



Chart B65. $$A$SUP1 - SGPMGR Macro, Deactivate a Partition 
Refer to Chart 13.6, 



4 08 DOS/VS Supervisor 



***** 65A4 
♦66 * 
* A2* 



.* TASK IN 
. RFENTBENT 
*. ROUTINE . 
*. . * 

*- .* 
*YES 

65 F3 

**** 
EEACTT4 

*****£ 2********** 
♦CCWDEACT B31* 



****** ****** ***** 
I 



.* ENTBY OF *. NO 
*.TASK IN QUEUE.* 



*****£ 2*** ******* 
*SVDEACT A56* 

*_*_*_*_*_*_*_*_* 

* TRY TO RESET * 

* SVC 44 * 

* * 
************ ***** 



kS SVC4«J *. 

BEEN 
ESSTTED?. * 



* FEQDEST 

FECM SUPVR 
*. TASK 



***************** 



* DELETE ENTBY 

* FECH QDEUE 



***************** 



. * ENTEY 
.*IN PAGE I 
->*. EECO. QUE 



♦ YES 
I **** 
L>*f57 * 
* G2 ; 



"1 

***** 
*65 * 
* B4* 

* * 



***** 
*67 * 
* G2* 



*****G3 ********** 

* * 

* DELETE ENTBY * 

* FEOK PAGE I/O * 

* REQUEST QUEUE * 

* * 
***************** 

L**** 
>*67 * 
* G2 * 



GETBEAL 
BEQUEST 
ENDING? 



***** 
*67 * 
* B2* 



.* PFIX *. 

REQUEST 
♦.PENDING? . * 



'~1 



***** K 2********** 

* * 

* SET INDICATOE * 

* FOR D1LAY CF * 

* DEACTIVATION * 

* * 
***************** 



***** 
*67 * 
* A2* 



Chart B66. $$A$SUP1 - SGPMGR Macro, Deactivate a Partition 
Refer to Chart 13.6. 



Charts 409 



***** 66G2 
*67 * 66K2 
* A2* 
* * 



.* PFTX *. NO 


*. REQUEST .* -, 

*. PENDING .* 1 


*. . * V 


*. . * ♦ ♦*♦ 


♦ YES * 


**** 


* G2 


♦ 67 * 


♦ 


* B2 *-> 


66K2 **** 


♦ * 




**** 




7 


*****5 2********** 


* * 


♦INDICATE DELAY * 


*OF DEACTIVATION* 


* IN PIB * 



****** ****** ***** 



YES .* ENTRY IN 



♦ *♦♦ 

♦ ♦ 

♦ D3 * 

♦ ♦__ ^ 

♦ ♦♦♦ V 

. *. 
D3 



"1 

***** 
*65 * 
♦ C4* 



TASK *. YES 

P. E SOURCE .* 

BOUND . * 



*****g1 ********** 

* ♦ 

* DELETE ENTRY * 

* FROM PASE-IO * 

* REQDEST QUEUE * 

* ♦ 
***************** 

♦ ♦♦♦ 
♦ 

D3 * 
* ♦ 

♦ ♦♦♦ 



L_>* 



PFIX=YES 


* 


NO 


OPTION 
*. . * 


* 


'1 


*. . * 




***♦ 


♦YES 
J 




♦ 

♦ G2 



*.PFIX REQUEST .*- 



DEACTGTR 

*****E4*** 

♦ RESGETR 
*_*_*_*_ 



RESET GE' 
***** 



******* 
♦ 
♦_*_* 
* 
TREAL * 
* 
♦*♦♦♦ 

**** 
♦ 

■■ G2 * 
* 

*♦*♦ 



F2 *. 


*****f 3********** 


. * *. 


♦EESPFIX 


B56* 


.* *. YES 


♦_ 


♦_*_*_ 


*_*_*_*_* 


*.PFIX -REQUEST .* -, 

*. .* ] 
*. .* V 


♦ 




♦ 


♦ 

♦ 


RESET 


PFIX * 

♦ 


*. .* ****♦ 


******** 


********* 


♦NO +65 * 






J 


♦♦♦♦ | * c4* 






f **♦♦ 


*67 * I 66 A4 * * 






<->*65 ♦ 


* G2 *->l 66T3 ♦ 






* C4 * 


♦ * 66f3 






♦ ♦ 


♦*** | 66 G3 






♦ ♦♦♦ 


DEACTLL V 








*****32***** *♦♦♦♦ 








♦ ♦ 








* SET TASK TO * 








, >* LL -BOUND * 








J * * 








* * 








**************** 4**** 








♦ * | 








♦ G2 * J ♦ *** 









Chart B67. $$A$SUP1 - SGPMGR Macrc, Deactivate a Partition 
Refer to Chart 13.6. 



410 DOS/VS Supervisor 



>* 

lNO 



* * . 

**** J 
REACTP V 



****A1 ********* 

* * 

* REACTUC * 

* * 
*************** 



REACTUC r 

*****B1 ********** 

* * 

* INITIALIZE * 

* ONCOND. * 

* REACTIVATION * 

* * 
*****.************ 



*****D1 ********** 
♦GET START TIME * 

* FOE 1ST * 

* REACTIVATION * 

* MEASUREM. * 

* INTERVAL * 
***************** 



*.TOD AVAILABLE.* 



**f1 ********** 



***************** 



->* ENTRY * 

* * 

*************** 



*****p ?********** 

* * 

* * 

* 3FT TIME * 

* * 

* * 
******* ********** 



->* . TIME-INTER VA L . * 
*. GE . * 

* MINIMUM* 
*. . * 

♦YES 

I 



REACT2 V 

***** B 4 ********** 

♦ CALCULATE ♦ 

♦ EXPONENTIAL ♦ 

♦ AVERAGE OF ♦ 

♦ PAGE-INS/ ♦ 

♦ TIME-INTERV ♦ 
***************** 



*not flowcharted 



*********** 



♦ ARE THERE ♦. YES 

DEACTIVATED . ♦ 

♦. PART. .♦ 



♦ INITIALIZE ♦ 

>* ONCOND. ♦ , 

♦ REACTIVATION * 

♦ * v 
********************* 

* * 

* A5 i 

* x 
**** 



****G1 ********* 
♦ RETURN : NO ♦ 
r — >♦ REACTIVATION ♦ 
I * * 

I *************** 



. ♦ ARE THEPE * 
. DEACTIVATED 
♦. PART. .♦ 



♦ INITIALIZE 

♦ CONP. 

♦ REACTIVATION 

♦ * 
***************** 



L_J 



TRY TO 

REACTIVATE A 

PARTITION 



*****^5********** 
♦FIND PARTITION ♦ 

♦ WITH HIGHEST ♦ 

♦ PRIORITY FOR ♦ 

♦ REACTIVATION ♦ 

♦ * 
***************** 



**** 

* * 

* F5 ♦ 



*****D5********** 

* GET ♦ 

* REACTIVATION * 

* COUNTER RC OF ♦ 
*THAT PARTITION * 

* * 
***************** 



.♦NO. OF *. 
.* UNFIXED *. N 
♦.FRAMES GE RC . *- 



**** I * 

* * I * 

* f5 * | ♦ 

* *-> | 
**** j 

*****p5********** 

* * 
♦INCREASE NO. OF* 
*ACTIVE VIRTUAL ♦ 

* PARTITIONS ♦ 

* * 
***************** 



*****G 5* ********* 

* * 
♦DECREASE NO. OF* 

* DEACTIVATED ♦ 

* PARTITIONS * 

* * 
***************** 



*****H5********** 

* * 

* ACTIVATE * 
♦PARTITION: SET ♦ 
*TRT-BYTE READY * 

* * 
***************** 



L 



>+A02^ 
H5J 



Chart B68. $$A$SUP1 - SGPMGR Macrc, Reactivate a Deactivated Partition 
Refer to Chart 13. 7, 



Charts 411 



****A1*** ****** 

* * 

* REACTC * 

* * 
*************** 



* INITIALIZE * 

* COND. * 

* REACTIVATION * 

* * 
***************** 

**** 
l_>*68 * 



****£ 2********* 

* * 

* CDLOAD * 

* * 
*************** 



CDLOAD V 

*****B2********** 
♦HOWE PHASE JAME* 

* INTO SYSTEM * 

* SAVE AREA OF * 

* TASK * 

* * 
************ 44*** 



->*. FETCH BUSY 



*****£ 3 ********** 

* EUTLD CALLING * 
■ SEQUENCE WITH * 

TXT=NO AND * 

* IE=YES * 

* * 
***************** 



_>* 



* LOAD PHASE * 

* * 
***************** 



* SEr TASK P1A * 

* BOUND OR UFA * 

* BOUND * 

* * 
***************** 



*****£ 2*** ******* 

*RWAIT B34* 

*_*_*_*_*^*_*_*_* 

-* SET TASK INTO * 

* WAIT STATE * 

* * 
***************** 



*****P3 ********** 
♦GTVSINIT * 

*_*_*_*_*_*_*_*_* 

* PRE-CHECK AND * 

* INITIALIZATION * 

* * 
***************** 



*****p 3 ********** 

* * 

* INITIALIZE * 

* ANCHOR TABLE * 

* ICCKUP * 

* * 
***************** 

**** J 

7PA1 



* ANCHOR * 

TAILE ENTRY 
*. EMPTY .* 



*****H3* ********* 



***************** 



*****j3 ********** 

* SET STATUS * 
♦SWITCH FOR THIS* 

* PHASENAME TO * 

* NOT LOADED * 

* * 
***************** 



NCOMP .*. 




K3 *. 




. * *. 




.♦EQUAL PHASE*. 


NO 


*. NAMES 


*"1 


*. .* 
*. . * 


*. .* 


***** 


*YES 


♦ 70 * 




* A1* 



****c *********** 

* * 

* EPR22 * 

* * 
*************** 



**** 
♦ 69 * 

D4 *- 



* * 

**** j 



*****DU* ********* 

* * 

* GET LENGTH, * 
->*LOAD- AND ENTRY* 

* POINT FROM DE * 

* * 
***************** 



**** 

♦69 * 

* F5 *-> 



70A3 



*****F4* ********* 



***************** 



**** 
PHSALD 

*****p 5* ********* 

* STORE LENGTH- * 
♦LOAD- AND ENTRY* 

>* POINT INTO * 

* USER'S SAVE * 

* AREA * 
***************** 



*****G 5* ********* 
* * 

*SET RETURN CODE* 



************ 



****H5********* 

* * 

* EXIT * 

* * 
*************** 



***** 
*70 * 
* A3* 



Chart B69. $$A$SUPi - SGAM Macro, CDLCAD Routine (SVC 65) 



412 DOS/VS Supervisor 



***** 69K3 
*70 * 
* A3* 
* * 



A1 

. * 
* 
LAST ENTRY 



. .* ***** 
♦YES *69 * 

* G3* 
* * 



IS STATUS 7F . * . 

*. .* J 

*. . * v 



****A5********* 

* * 

* GETVIS * 

* * 
*************** 



*****B1 ********** 

* * 
♦SET ERROP CODE * 

* 16 iTOO MANY * 

* PHASES) ♦ 

***************** 



**** 

♦ 70 ♦ 

♦ C1 *-> 



71G5 
71H5 
72C1 
72D1 



72D4 
72E4 
72F1 
72H1 



**** 
RETYY V 

*****C 1*** ******* 

* SET OP RETURN * 
♦CODE AND STORE * 

— >* IT IN REG 15 *<— - , 

* USER'S SAVE * 
1 * AREA * 
********************* 

* 
C1 * 



*****Q1 ********** 

* * 

♦LOAD SAVE AREA ♦ 

♦ POINTER FOR ♦ 

♦ CDLOAD * 

* * 
***************** 



*****£-] ********** 

♦ * 

♦ LOAD BASE * 

♦ REGISTERS FOR * 

♦ SOEERVISOR * 

♦ * 
***************** 



****F1 ********* 

* RETURN TO * 

* CALLER * 

* * 
*************** 



***************** 



_*_*_*_*_* 



***************** 



GETVIS V 

*****g 5 ********** 

*GTVSINTT B72* 



* INITIAL TESTS * 

* * 
***************** 



* C1 * 

* * 
**** 



*****D2********** 

* RESET STATES * 

* SWITCH IK * 

* ANCHOR TAB IE *< 

* ENTRY ♦ 

* * 
***************** 



****E ?********* 

* * 

* EXIT * 

* * 
*************** 



***************** 



*****p^********** 

* * 

* SET TASK PTA * 

* BOUND OR IDRA * 

* BOUND * 

* * 
***************** 



*****<?3********** 

* RRAI1 B34* 
*_*_*_*_*_*_*_*_* 

-* SET TASK INTO * 

* WAIT STATE * 

* * 
***************** 



***************** 



| **** 
t_>*(=;9 * 



.* POOL 
. SPECIFIED 
*. CORRECT . 



*****g5* ********* 



***************** 



***************** 



*****£ 5 ********** 

* * 

* GET START ♦ 

* ADDRESS OF ♦ 
♦SEARCH, SAVE IT ♦ 

* * 
***************** 

I 
**** 
*70 * 

* H5 *->{ 71B1 



♦ START SEARCH 



***************** 



**** 
*70 * 
* J5 *-> 



J5 *. 

. * 
.* 
*.END OF VISTAB.*- 



~\ 



*71 * 

* A4* 

* * 



Chart B70. $$A$SUP1 - SGAW Macrc, CDLCAD Routine (SVC 65) , GETVIS Routine 



Charts 413 



***** 70JS 



*A 1*****4**** 



***************** 



B1********** 



*****g 4* ********* 

* GET BYTE AND * 

* SHIFT IT INTO * 

* CORRECT * 

* POSITION * 

* * 
***************** 



**** 

* * 

* C4 * 



| **** 

L_>* * 
* D3 * 



* SHIFTS * 

* * 
***************** 



********** 



GFTVIS27 

*****£ 2 ********** 

* INCREASE * 
♦POINTE? TO N^XT* 

♦HALFWOm JPAGF. *<- 

* BOUNDARY) * 

* * 

****** *ic********* 



*****P 2 ********** 

* * 

* TNCP.EASE * 

* POINTER IN10 *< 

* VI5TAB * 

* * 
***************** 



.* TEST PAG* 
. BOUNDARY 
♦.REQUIRED . 



GETVIS29 V 




*****£•?********** 


*****(?-}********** 


* CLEAR SHIFT * 


♦SAVE'NEK SEARCH* 


* COUNTE" AKD * 


* STAFT AltRESS * 


♦SAVE NEW SEARCH* 


♦CCNTTNUF SFARCH* 


* START ADDPFSS * 


* IN THIS EYTE * 


* * 


* * 


******** ********* 


***************** 


| **** 


| **** 


L_>*~r * 


i_>* * 


* J5 * 


* C4 * 



*****£ ^********** 



.*. GETVTS3 

F4 *. *****p5********** 

. * *. * CALCULATE * 

.♦SUFFICIENT *. YES * VIRTUAL * 

*. LENGTH .* >*ADDRESS, STORE * 

*. .* * IT INTO R1 IN * 

*. .* * USERSAVE AREA * 

*. . * ***************** 

♦ NO 



GU *. 
.* BYTE *. 
.* ALREADY 8 *. N 
*.TIMFS SHIFTED. *- 



***** 
*70 * 
* C1* 



***** H i(* ********* 

* CLEAR SHIFT * 

* COUNTER * 

* INCREASE * 

* POINTER INTO * 

* VISTAB * 
***************** 

**** 



*****{] 5* ********* 
♦GETVISB B72* 
*_*_*_*_*_*_*_*_* 
♦OCCUPY STORAGE * 

♦ AREA ♦ 

* * 
***************** 



Chart B71. $$A$SUP1 - SGAM Macro , GETVIS Routine 



414 DOS/VS Supervisor 



****& i ********* 

* * 

* FREEVIS * 

* * 
*************** 



* # 

* GE W VTSB * 

* * 
*************** 



****/ u**** 
* GTVSINT. 



***B s********* 

in.^ BASE 
o^p.tsxpp FOF 
CPPn.An SAVE 
PEA ADDRESSING 



FREEVIS V 

*****g 1********** 

♦GTVSINIT B72* 

*_*_*_*_*_*_*_*_* 

* * 

* INITIAL TESTS * 

* * 
***************** 



. * S^ART *. YES 

.ADDRESS = END.* 

*. ADDRESS . ♦ 



G TV SI NIT- V 

*****gtt* ********* 

* * 

*save indicators* 

* clear return * 

* CODE * 



C1 *. 

. * CHECK *. 

. * ADDRESS *. I 

.WITHIN 1ETVTS.*- 

*. APEA .* 



"1 



D1 *. 
.* CHECK *. 
* ADDRESS *. NO 
MULTIPLE OF .* n 

*. 128 .* 

* . . * v 


*. .* ***** 


*YES *7f> * 
* C1* 








* 






***E1 ********** 


* 


CALCUL 
ADD! 


^E END * 
'ESS * 



*****C2********** 
♦SAVE FIRST EITS* 



********* * 



* LAS -11 PITS TO 



************ 



F1 *. 
. * CHECK *. 
. *END ADDRESS*. ! 
.WITHIN OETVIS.*- 
*. APEA . * 



1 



*****Ql*** ******* 

♦CALCULATE START* 
♦AND END ADDRESS* 

* OF * 

* CORRESPONDING * 

* BIT STRING * 
***************** 



RELEASE AREA * 

* 

**************** 



I **** 

L_>*70 * 

♦ CI * 



GPT NEXT RY1* 



***************** 



| **** 

u_>* * 

-* R3 * 



NEX^ *. YES 

BYTE-LAST .♦ 

BYTE? . * 



**** ***** 

* 

ET NEXT * 



->♦ GET LAST BYTE 

* 
**************** 



*****(■;-}*** ******* 

♦SAVE I AST BITS * 
* IN PYTE AND * 
♦SE1/FFSET FIRST* 



*****(14********* 
* 

* GE' P SAVE AREA 

* ADDRESS O p 

* CURRENT TASK 
* 
**************** 



. * SPECIFIED *. NO | 

SIZE OK . * t ' 

*. .* | 



*****P4****** 
* 

* CALCULATE 

* ADDRESS 0? 

* ANCHOR TABL 



* * 








♦ H3 * 








* *_> 








**** 








FTVIS33 1 


' 


V 


*****f43********** 




* ' * 




* PESTLE SAVED ♦ 


♦CLEAP 1ST 


* BITS 1ACK IN * 


♦AFTER USER 


♦ VIS r 


rAF. ♦ 


* 





♦ ♦J'.* ******** 
RETURN TC * 
CALLER * 
* 
************* 



♦CALCULATE SOW? 

* CONSTANTS AND 

* SA*E ^HEM FOR 

* LATER USE 



Chart B72. $$A$SUP1 - SGAM Macro, FREEVIS, GETVISB and GTVSINIT Routines 



Charts 415 



****&-)********* 

* * 

* SVC 86 * 

* * 
*************** 



****A2*f******* 

* * 

* SVC 85 * 

* * 
*************** 



**** 

* * 

* A3 * 
* 

**** 

*****£ 3********** 



"1 



♦GET THE LENGTH * 

* * 

* * 
***************** 



>AGEOUT 

*****B1 ********** 

* * 

* * 

* MOVE '0' TO ID * 

* * 

***************** 


1 

RELPAGE i 

*****B2* ********* 

* * 

*MOVE 'R' TO ID* 

* * 

* * 
***************** 

| 






1 








EGIN 

***** C 1** 

* 


k* ******* 
* 




* MOVE 

* RETUFJ 


P to * 
CODE * 





***** C 3 ********** 



* SET 2-BIT IN 
->♦ RETURN CODE 



***************** 



******* 



* D2 * — t 

* * 1 
**** i 

PET V 



***************** 



*****P1 ********** 

* * 

* POINT P6 TO * 

* PAGE FRAME * 

* TABLE * 

* * 
***************** 



*****G1 ********** 



***************** 



*****H1 ********** 



***************** 



***** j 1 ********** 

* * 

* POINT R2 TO * 

* BBOX ENTRY OF * 

* PARTITION * 

* * 
***************** 

**** 



r *.END OF LI'-T? 



*****P2********** 

* * 
♦GET ADDRESS OF ♦ 

>♦ HSER'S SAVE ♦ 

* AREA ♦ 

* * 
***************** 



*****32 ********** 

* * 

♦ POST RFTUIN ♦ 
♦CODE IK USEE'S ♦ 

♦ PEG. 15 ♦ 

* * 
***************** 



****P2********* 

* * 

* ro PFEXI1 ♦ 

* * 
*************** 



***************** 

I 

I 

I 

*****£3* ********* 

* * 

* * 

♦GET END AEDRESS+ 

* * 

* * 
***************** 



*****53********** 

* * 

* * 

* E+1=E ♦ 

* * 

* * 
***************** 



*****P3*** ******* 
♦TRANSFORM IT TO* 

* B*GTN OF * 

* CURRENT ♦ 

* PARTITION ♦ 

* * 
***************** 



***** G 3* ********* 
♦TRANSFORM BEGIN+ 

♦ ADIRESS TO ♦ 

♦ BEGIN OF NEXT * 

* PAGE ♦ 

* * 
***************** 



SUETRACT 2K 



***************** 

74B2 
74C5 
7UD3 
74DU 

♦*♦♦ 75E1 
NEWPAGE V 

*****j3* ********* 



***************** 



***** 

♦ 74 * 

♦ A1* 



***************** 
l **** 

L_>* * 

♦ K1 ♦ 

* * 
**** 



Chart B73. $$A$SUP1 - SGPCFT Macro, PAGEOUT (SVC 85/86) Routine 



416 DOS/VS Supervisor 



***** 73K3 
*7U * 
♦ A1* 



**** 

* * 

* M * 

* *— i 
**** V 

NOTINQU .*. 



*****Bt ********** 

* CALCULATE * 

* POINTER TO * 

* APPB. PAGE T. * 

* ENTRY * 

* * 
***************** 



*****£ i ********** 



***************** 



*****B2********** 



***************** 



I ... 

1_>*-J3 



IS PAGE 

PFIXED OR 

. TFIXED . 



**C3* ********* 



**** 

* * 

* B5 * 

* * 
**** j 

TC8 V 



************* 



*****C 5* ********* 



***************** 



***************** 



************* 



*****£ 1 ********** 



***************** 



***** pi ********** 

* CALCOLATE * 

* POINTER TO PAGE* 

* FRAME TABLE * 

* ENTRY * 

* * 
***************** 



*****G1 ********** 



***************** 



****{]1 ********** 



E3 


*. 


DU 


*. 


.* *. 


. * *. 


FAGE IS *. YES 


.* *. YES 


INVALID? . * , 


*.PAGE INVALID?.*^ -, 

*. .* 1 
*. .* V 


*. .* ***** 


*, . * ***** 


* *73 * 


* *73 * 




* J3* 




* .n* 




* * 




* * 




* 




* 


'r 


r 


**£3********** 


*****}? 4********** 


* 


♦GET STOBAGE KEY* 


MOIIFY PAGE * 


* OF FRAME AND * 


TABLE EHTFY * 


* SAVE IT TO * 




* 


* STORK * 



***************** 



*****F 3 ********** 



***************** 



*****£ 3 ********** 

* * 
*SET PAGE FFAME * 
♦TABLE ENTRY TO * 

* UNUSED * 

* * 
***************** 



*****H 3* ********* 

* * 

* * 
*KOVE TO STORK* 



***************** 



*****F4 ********** 



***************** 



I **** 
<— >*73 * 

* J3 * 



*****H4******** 



*****r; 5* ********* 



***************** 



**** 
_>*75 * 
* A1 * 



***************** 



QULOOP 
YES .** 



***************** 

L**** 
>*73 * 
* D2 * 



************** 



* A4 * 

* * 
**** 



. *. 

K1 *. 

.*IS THIS* 

.* PAGE 

♦.CONTAINEr IN 

♦ .THE QUEUE.* 



*. 



♦YES 

I **** 

L_>* * 



*****K2******** 



***************** 



Chart B74. $$A$SUP1 - SGPOPT Macro, PAGEOUT (SVC 85/86) Routine 



Charts 417 



***** 7UG5 
♦75 * 74H4 
* A1* 



ERT1 V 
*****a 1 ********** 
♦REMOVE * 
*_*_*_*_*_*_*_*_* 
♦REMOVE THE PAGE* 
♦FRAME FFOM THE * 
* QUEUE * 
***************** 



* * 

* SVC 87 * 

* * 
*************** 



**** 

* * 

* A5 

* 
**** 

*****A 5* ********* 



•-I 



***************** 



*****g1 ********** 

♦INSTOF * 

*_*_*_*_*_*_*_*_* 

* INSERT IT IN * 

* Q00 OP Q01 * 

* * 
***************** 



SVPGIN 

*****^3* ********* 

* * 

* LOAE 1ST AND * 

* 2ND BASE REG * 

* FOE PMGR RTNS * 

* * 
***************** 



.♦PAGEIN TASK* 
ALREADY 
*. ACTIVE 



y .* 



*****c i ********** 

* * 

♦POINT TO BEGIN * 

♦ OF STORAGE * 

♦ BLOCK * 

* * 
***************** 



-*. ICE PRESENT .* 



*****C5* ********* 



***************** 



V 

*****£)-) ********** 

* * 

* * 

♦SET STORAGE KEY* 

* * 

* * 
***************** 



*****£ 3 ********** 
♦VALIEATE B77* 
*_*_*_*_*_*_*_*_* 

♦ VALIDATE ECB ♦ 

♦ AEDR ♦ 

♦ * 
***************** 



*****£) 5********** 



***************** 



***** El ********** 



***************** 



**** 
->*73 * 
♦ J3 ♦ 



ON !♦ , 



***** 

♦ 76 ♦ 

♦ A 5* 



*****E 5* ********* 
♦START TO HANDLE* 

♦ FIRST PAGEIN * 

♦ REQU. FROM * 

♦ PAGETAB * 

♦ * 
***************** 

**** i 

♦75 ♦ J 

♦ F5 ♦-> I 76J3 



PSTRL 
NO .* 



r % 



F2 *. 

*. 
* 
ECB PRESENT . *<- 



***** 

♦76 * 

♦ A5* 

* * 



.♦ TASK IN ♦. 

RIAL 

♦. PARTITION. ♦ 



*****? 5* ********* 



***************** 



V 
*****q 2* ********* 

* * 

* * 

* POST ECB ♦ 

* * 

* * 
***************** 



♦.PAGITAE FULL . ♦- 



->♦. ECB PRESENT 



I .... 

L_>*76 * 



♦ A5 



*not flowcharted 



*****H3 ********** 

♦VALLIST *♦ 

*_*_*_*_*_*_*_*_* 
♦VALIDATE PARAM.+ 
♦LIST POINTED TO* 
* BY R1 * 

***************** 



*H4********** 



************** 



**** 
->*76 * 
♦ A5 ♦ 



♦YES 
| **** 

L>* * 

* A5 * 



***** 

*76 * 

♦ A 5* 

* * 



***G5********** 



NO 


♦SET TASK ID IN * 


~1 


* 


PAGEIN TASK * 


* 
* 


BLOCK * 

* 


***** 


** 


*************** 


*76 * 








♦ A 5* 








* * 








* 












1r 




****: 






* 




* 


SET UP PIB * 




* 


POI! 


ITER * 



******** 



*****j5********** 

* * 

* GET LIST ADDR * 

* FROM PAGETAB * 

* ENTRY * 

* * 
***************** 



**** 

->*76 * 

* A1 



*****£(}********** 



***************** 



***** 

*76 * 
* AS* 



Chart B75. $$A$SUP1 - SGPOPT Macro, PAGEIN (SVC 87) Routine 



418 DOS/VS Supervisor 



***** 75J5 
*76 * 77C5 

* A1* 



NEXTENTR V 

*****£ 1 ********** 

♦GETPADR B54 * 

*—*_*_*_*_*_*_*_* 
♦GET FIRST PAGE * 
♦FOR THIS REQU. * 

***************** 



* D3 * 

* * 
**** 



VALIDE 

*****Ci ********** 
♦VALIDATE B77 * 



************* 



♦.INVALIDS ADDR.*- 



♦. PAGE IN CORF. .*- 



♦. PAGE FIXFD 



**** 

* * 

* A3 * 



* INDICATE * 
>* INVALID ADTR * 

* FODND * 

* * 
******** ********* 



♦STORE PA^EAEDE 
->*IN LOC. TRATDE 
* FOR ENQU RTN 
**************** 



*****F2********** 

* snr UP PSW TO * 

* RE TORN AFTIR * 

* HAHDL OF PAGE * 

* I/O REQU. * 

* * 
***************** 



*****Q1 ********** 

♦REMOVE * * 

*_*_*_*_*_*_*_*_* 

* REMOVE PA1E * 

* ' FRAME FROM * 
♦SELECTION POOL * 
***************** 



*****3 i ********** 

* * 

* SET * 

* REFERENCE-BIT ♦ 

* TO ZERO ♦ 

* * 
***************** 



*****j1 ********** 

♦ INSBCT ** 
*_*_*_*„*_*_*_*_* 

* INSERT PAGE * 
♦FHAM AT BOTTOM * 



ENTRY FROM 

DISPATCHER 

AFTER PAGE I/O 

IS HERE 



* SAVE STATES 

* 

***** ********** 



****H 2* ******** 
♦GOTO ENQTJ: SET * 

♦ REQU. IN PGQO * 

* * 
*************** 



**** 

* * 

* A3 * 

**** } 
GETNXTPG .*. 
A3 * 



***** ' 
♦76 ♦ 
♦ A5* 



75K4 
78G2 



iEQD. 
TERl 



FOR ♦. YES 



♦ READY ♦ 

-> ♦REQUESTING TASK+ 



********** 



*************** 



**** 

* * 

* D3 * 

* *— > 
**** 

PGTNEND 

*****^3 ********** 



***************** 



— *. ICE PRESENT .* 



*****Y3********** 

* * 

* * 
*POST USERS ECB * 

* * 

* * 
***************** 



*G3********** 



************** 



NOPST 

*****^3 ********** 

* delet'ent * * 

*_*_*_*— *_~ *_*_*_ * 

* DELETE ENTRY * 

* FRCK PAGETAB * 

* * 
***************** 



*. PAGETAB EMPTY.*- 



1 



*YES 


♦ 75 ♦ 


**** i 


♦ F5* 


♦ 76 * 


* * 


* K3 ♦-> 78G5 


* 


* * 




**** j 




GATE OP V 




*****K 3* ********* 


* OPEN GATE FOR 


* 


* PAGIIN TASK. 


* 



* NOT * 

* DISPATCHABLE ♦ 
***************** 



*****&5* ********* 



***************** 



****r 5*** ****** 

♦ RETURN TO * 

♦ DISPATCHER ♦ 

♦ * 
*************** 



Chart B76. $$A$SUP1 - SGPOPT Macro,, PAGEIN (SVC 87) Routine 



Charts 419 



****A1********* 

* * 

* VALLIST * 

* * 
*************** 



****A3********* 

* * 

* VALIDATE * 

* * 
*************** 



VALLIST 

*****Q1 ********** 



***************** 



VALIDATE V 

***** E 3 ********** 

* GET BOUNEARY * 

* BOX ENTRY OF * 

* THE REQU. * 

* PARTITION * 

* * 
***************** 



SEARCHL V 

*****C1 ********** 

♦VALIDATE B77* 

*_*_*_*_*_*_*_*_* 

->* VALIDATE LIST * 

* ADDF * 

* * 
***************** 



. * ACER IN 
VIRTUAL 
♦.PARTITION 



C4 *. 
. * * 
.♦ LENGTH 
->*. NEGATIVE 



* INDICATE * 
->*NEGATIVE LENGTH* 

* FODND * 

* * 
********* 



c******* 



ADDP VALID 



****D 2***** ** ** 

* RETURN WITH * 
-> ♦OFFSET 0, LIST * 

* NOT OK * 
*************** 



****E3 ********* 

* INV. ADDR * 

* RETURN WITH * 

* OFFSET * 
*************** 



****D4* ******** 

* VALIDE ADDR * 

* RETURN WITH * 

* OFFSET <* * 
*************** 



***** D 5* ********* 



***************** 



->*76 * 
♦ A1 * 



****t?2********* 

♦ RETURN WITH * 
->*OFFSET 4, LIST * 

* OK * 
*************** 



*****?-)******* 



***************** 



Chart B77. $$A$SUP1 - SGPOPT Macro, Validate Parameter List 



420 DOS/VS Supervisor 



****A1 ********* 

* * 

* SCANPGT * 

* * 
************* v* 



TEFMPGIN 

****£ 4********* 

* ENTRY FHOH LOAD* 

* LEVELLER * 

* * 
*************** 



****& 5* ******** 

* * 

* CLEARTAB * 



* POINT TO NEXT * 
>* PAGETAB ENTRY * 

* * 

* * 
***************** 

**** j 

* * ) 

* D1 * 

* *_>| 
**** y 

CNTSCAN1 .*. 

D1 *. 

. * * . 

. * END OF *. Y 

*, PAGETAB .*- 

*. REACHED . * 



. *BELONGS*. 
* ENTRY TO * 
TERM. TASK 



*****P1 ********** 

* DELETENT * * 
*_*_*_*_*_*_*_*_* 

* DELETE FNTP.Y * 

* FROM PAGETAB * 

* * 
***************** 

| .... 

L_>* * 

* D1 * 

* * 
**** 



.♦PAGET N ♦. 

.♦TASK ACTIVF*. 

♦. F3R TERM. . * 

+ . TASK .* 



********* ***** 



*****j?2*+ ******** 

* * 

♦ SFT 05EP TASK ♦ 
♦IN COMMON WAIT ♦ 

♦ STATE ♦ 

* * 
********** ******* 



***************** 



****j 3* ******** 

* * 

* RETURN ♦ 

* * 
*************** 



*****G2*+**+ ***** 

* * 
♦MAR* FOR DETACH^ 
♦IF NOT ALREADY ♦ 

* ON ♦ 

* * 
***************** 



***************** 



YES .♦ TERM. 
< — ♦. ALREADY IN 
♦.PROCESS ?. 



***** j) 4 ********** 

* * 

♦ INDICATE * 
♦TERMINATION IN ♦ 

♦ PROCESS ♦ 

* * 
***************** 



*****E4 ********** 
♦ESTABLISH THAT ♦ 
♦THE PAGEIN TASK + 
♦ENTERS ROUTINE ♦ 
♦ CLEARTAB IF ♦ 
♦DISPATCHED NEXT + 
***************** 



*****P4 ********** 



***************** 



*****G4 ********** 
♦ SEARCH PGQU ♦ 
♦ENTRY OF PAGEIN* 
♦TASK AND DELETE* 



***************** 



*****p 4* ********* 

* SET ♦ 
♦RETURNSWTTCH ON* 

* FOR LOAD * 

* LEVELLER * 

* * 
***************** 



TERMFIN 

****jy*** ****** 
♦RETURN TO LOAD ♦ 

♦ LEVELLER ♦ 

* * 
*************** 



r 



.♦HAS ECB*. 
* SPECIFIED ' 

FOP THIS 
*. REQUEST ?. 



j *****J)^********** 

I * * 

I * * 

I *POST USER' S ECB* 

* * 

* * 
***************** 



*****!? 5********** 

* * 

* * 
♦TOST USER TASK * 

* * 

* * 
***************** 



— > 



CLEARDEL 

*****F5********** 

*DELETENT 



*_*_*_*_*_ 



********* 



PAGETAB * 


NO 


EMPTY ? 


*-} 


. * 
.* 


*. . * 


**** 


*YES 


* * 


1 **** 
L_>*76 


* C5 


:* 


* K3 


***** 



Jhart E78. $$A$SUP1 - SGPOPT Macro, Delete PAGETAE Entries if Task Terminates 



Charts 421 



HACHEK 

****A1 ********* 

* MACHINE CHECK * 

* INTERRUPT ENTRY* 

* * 
*************** 



♦ALLOW HARD MACR* 
>* CHKS * 



***************** 



♦RESTORE GENERAL* 
>* REGISTERS * 



***************** 



* B4 *-> 



31B3 



***** B 1 ********** 

* ESTABLISH * 
*ADDRESSABLILITY* 

* AND DECLARE * 
♦STANDARD EASES * 

* * 
***************** 



**** 
MCSCHDL 

*****B4 ********** 

*SET UP BITS FOR* 

* SSRASTOO AND * 

* SAVE KEY FOP * 

* $$RAST01 * 

* * 
***************** 



**** B 5********* 

* * 

* P STURM * 

* * 
*************** 



*SET DP TO MASK * 

* SOFT MACHINE * 

* CHECKS * 



*********** 



IS THE 
SYSTEM 
DAMAGED 



.* HAS *. 
YES .*INSTBDCTION*. 

r *. DAMAGE 

♦.OCCURRED .* 



♦.FROM ALLBOUND.*- 



* J2 *-> 



PROBLEM 
PROGRAM 
DAMAGED 



*****K1 ********** 



**** 
EMGEX9 

*****j9***** 
♦SET WAIT CO 
*SERAP CODE. 

>*EMERGENCY E 

* BIT 



***** 
DE, * 
AND* 
KIT *- 



**** 






♦ 79 * 






* J3 


"1 


80B3 


* * 




**** 




CHECKRO 


. * 




J3 


*. 


. * 




*. 


.*IS 


SfRASTOO* 


>*. IN 


TEE 


RTA 



*************** 



♦YES 
**** 
*79 * j 80E2 
* K3 *-> 81K1 



**** 
EMGENT 

***** K 3 ********** 



***** 

*80 * 

♦ A2* 

* * 



*****D 4* ********* 

* * 

* SAVE TIK OF * 

* TASK FOR * 

* SSRAST09 * 

* * 
***************** 



. * IS RAS 
ALREADY 
*. ACTIVE 



*****p(l*** ******* 



***************** 



. * DID 
.♦CHECK OCCUR+. YES 
*, IN PROBLEM 
*. CODE 



I 



EM .* . 



***** 

♦ 80 * 

* R1* 
* * 



*.IS PAS &CTIVE.*- 



*****J4*** ******* 



***************** 



********* 



******** 
**** 



************* 



* A4* 
* * 



Chart B79. $$A$SUP1 - MCRAS Macro, Machine Check Handler 
Refer to Chart 12.1. 



422 DOS/VS Supervisor 



***** 13G1 

♦ 90 * 

* 11* 



***** 79J3 
*80 * 
* A2* 



***** B 1****** 



*************** 



***************** 



********** 



NO . *STOF.AGE OR *. 

*. PROTECTION . 

*, EFROR .* 



***************** 
**** 



**** 
CALLRTA V 

***** B 2 ********** 

* * 

* SET UP FETCH * 

* ID, NEW OWNER * 

* OP STA * 

* * 
***************** 



*****Q2********** 

* * 

* SET WAIT FCP * 
♦DEVICE END+ACC * 

* ERRORS * 

* * 
***************** 



*****D 2*** ******* 
♦RASFTCH * * 

*_*_*_*_*_*_*_*_* 

* * 

* GO FETCH LCAE * 

* * 
***************** 



****}3********* 

* RAS HONITOR * 

* POOTIHB * 

* * 
*************** 



****A 4*** ****** 
* 

* RAS FE1CH 
*************** 



*.IS FSA VALID .*• 



~1 

***** 
♦79 * 
* J2* 



ON GETPEAL . * , 



. *IS THE TASK*. NO 

*. EAMAGED .* , 

*. •* I 

*. .* V 

*. .* ***** 

♦YES *A02* 

I **** * H5* 
t~>*A01* * * 

* A2 * * 

* A ^* 



***************** 



**** 
->*79 * 

* J3 * A05D1 



***************** 



**cn******* 



*********** 



♦TORN OFF RAS * 
->*I/0 DELAYED BIT* 



*****B5* ********* 



***************** 



*****C 5* ********* 



*************** 



**#*.* OS* ********* 



..J 



*YES *' 

**** i 83P 1 * 

*80 * ( 83C1 

* F2 *->] 83H1 

* * J 83K1 
**** j FNCTE 

*****P2********** 

* * 

* CALCULATE * 

* CORRECT ERROR * 

* CODS * 

* * 
***************** 

L**** 
>*79 * 
* J2 * 



. *REALLOC OR *. NO 
. CONDS IN .* — > 

♦.PROGRESS .* 



*****F 4 ********** 

* * 

* WAIT UNTIL * 

* FINISHED (SVC * 

* 7) * 

* * 
***************** 



*****pc^ ********** 

* TURN OFF * 

* C1-BITS IN H2 * 

* BYTE OF SEEK * 

* FIELD * 

* * 
***************** 



*****G5********** 

* STORE C1 BACK * 
♦INTO SEEK ADDR * 

* AFTER SHIFTING * 

* OUT H2 BITS * 

* * 
***************** 



*****H5* ********* 

* * 

* * 
*GET LUB NUMBER * 

* * 

* * 
***************** 



***** 
♦81 * 
* A 4* 



*****£ 5* ********* 

* * 
♦SET UP CAW AND * 
♦GET ACTUAL ADDR* 

* OF RES * 

* * 
***************** 



tiart B80. $$A$SUP1 - MCRAS Macro, Determine Kachine Check Severity 
Refer to Chart 12.1. 



Charts 423 



***** f n K 5 
*81 * 
* A2* 



*****C1 ********** 

* RESTORE SYS * 

* BASE PEGS AND * 

* SET siASE FOP * 

* IOINTEP * 

* * 
***************** 



***** D 1 ********** 

* * 

* * 
♦SET RETPY COUNT* 

* * 

* * 
***************** 



*****£ i ********** 

* * 
♦POINT REG. 5 TO* 

* ERROR EXIT * 

* EMGSI02 * 

* * 
***************** 



*****F1***** 



************** 



*****Q1 ********** 

♦OORSIO A25* 

*_*_*_*_*_*_*_*_* 

* * 

* GO ISSUE 'I/O ♦ 

* * 
***************** 



*****j1 ********** 



**************** 



*A2********** 
* 
> TIO TEST SYSPES 



**** *** 



******** * 





* A? * 

* * 




**** 


MGSIO 

*****B1* ********* 
* * 




* DISABLE * 

* INTEFRUPTS *< - 


AVAL 
* 



*****p 2 ********** 

* * 

* -ap^ure and * 

* ALLOW I/C * 

* INTERRUPTS * 



L**** 
>* * 



***************** 



***** 80JS 
♦81 * 90RI* 
* A4* 
* * 



♦ STORE RETURN * 
♦addr and SET UP+ 

♦ CCW ADDR ♦ 

♦ * 
***************** 



*****B4 ********** 



***************** 



*****C n*** ******* 



***************** 



DU ♦. 

. * ♦. 

.* ♦. 

-♦. IS IT RETRY .♦ 

♦. .* 

*. .* 

♦. . ♦ 

♦YES 



*****T)4 ******* 



***************** 



POSTED .* t 

♦. . ♦ 1 

*. .♦ V 



***** 

♦ 82 ♦ 

♦ A1* 
* * 



I 



*****£ 4********** 

* * 

* * 
-♦ SVC 7 ♦ 

* * 

* * 
***************** 



***** 

♦ 79 ♦ 

* K3* 



Chart E81. $$A$SUP1 - MCRAS Macro, Emergency Situation Handling 
Refer to Chart 12.1. 



424 DOS/VS Supervisor 



Page of SY33-8551-1, revised June 30, 1974, by TNL SN33-8770 



♦82 * 
* A1* 

* * 



**** 

* * 

♦ A5 * 



* 


is it cca 

RETRX 
*. . *' 


*. NO 




♦» .♦ 


**** 




♦YES 


* 
* Gl 



* RESIDENT * 

* CHASNEL CHECK * 

* EANELER * 
4***4********** 



*****£)*** ******* 



***************** 



*****C1 ********** 



* GET PQBPTS 



***************** 



10 . * , 



**** 

*82 * 

* C4 *-> 

* * 

**** 
CCEEEIIT 

*****£1|*** ******* 



4c**** 

*A02* 



..- : *~l 



**** 

* * 

* A5 * 

* * 
**** 



************* 



L 



.*. 



**** 

*=H4** 
**** 



.♦ MAS I 

*. SUCCSf 

*. 
*. 
*. 

4 


tETBY ♦. NO 
jSFBL .* , 

. * **** 
>Y£S * * 

♦ G1 

* 
4i*** 


' 


' 


*****£]*< 

♦BASDBU 

* DEGUEi 

* US] 


********* 

* 
*_*_*_*_* 

IE THE * 
»B * 



***************** 



*****F 1 *♦* ******* 



13 
.* *. 

. ♦ *. Ni 

*.IS IT CH CUT .*- 

♦. .* 

*. . • 

*. .* 

♦ YES 



**4>**£3* 4 ******** 



***************** 



*****I3********** 



->*. EAS ACTIfB 



B .* 1 



***** 

*83 * 
* B1* 

• • 



**B5******* 

* * 

* SET BIT FOB 
* EAS COMPLETE 

* TEST 

* * 
*********** 



*****D5** ******** 

* LOAD ACT SIST * 
♦TASK BLOCK AMD * 

* PIB OP SYST ♦ 

* TASK * 

* * 
***************** 



*****£ 5** ******** 

* * 

* SET THAT TASK * 
*EEADr AND HIKE * 

* EAS SELECT * 

* * 
***************** 



4c 


* 






♦ POST CCB HITB ♦ 


* GO TO TBE ETA * 




* EEBOfi * 


* * 




♦ * 


i^ ♦ 




* * 


***************** 




******** 4* ******* 


**** 


89 H4 








♦82 * 

* Gl *-> 


90 D3 
90 E2 








* * 








**** 


r FHOTB 








BTARETBM . *. 


BTABETR2 


■ 




Gl ♦. 


**** *G 2*** *♦ ***** 


*****G34 4******** 


.* *. 


* * 


* * 


.♦ ♦, NO 


♦ EESTOBE HI A ♦ 


♦E1STCEB ICINTEE* 


r — »** FETCH BEQUEST.*- 


>* EEGISTEBS, * 


* BASE * 


♦. .* 


• • 


* * 


*- .* 


* * 


* * 


1*** 4. . * 
♦ ♦lES 


******** ********* 


**** 44** 4***4**** 
J **** 

L>* A01 * 


G1 * 

* 














"**'* 








t A3** 


■ 


' 






**** 


*****H1*i 


********* 




' 







CCBASEDY " 

*****P5* ********* 

* * 
•GET POINTER TO * 
*EAS AND PIB OP * 

* HAS * 

* * 
***************** 



*CL£AB FLAG BITE* 



***************** 



****J 1********* 

* HETOHN TO ETA ♦ 

* FETCH * 

* * 
*************** 



****H2* ******** 

* * 

* EETOEH TO FT A * 
*- * 

*************** 



*****H 5** ******** 

* * 

* * 

* ACTIVATE BAS * 

* * 

* • 
***************** 



CCNOTIN 


. ♦. 

J5 * 

* 


.* 
*. 


DEBUG 



,•'•-1 



*****K5** ******* 

♦ MONITOR CALL 

* 
* 
***************** 



TO:G1 
91C1 
91D2 
91D3 



***** 

♦ 83 * 

* A1* 

* * 



Chart E82. $$A$SUP1 - MCRAS Macro, Channel Check Handler 
Refer to Chart 12.2, 



Charts 425 



***** 82J5 
♦83 * 82K5 
♦ A1* 



*****A1*** ******* 



**** 

* * 

* A2 



n 



**** 

CCSETDHC 

*****A2* ********* 



***************** 

**** ,| 

*83 * | 
* B1 *->! 82A5 



***** 

♦ 80 * 

* F2* 



"1 

***** 

♦ 80 * 

* F2* 



************ 4**** 



.*IS THIS TEE*. NO 
SYSRES .* — - 

*. CHANNEL .* 



**** 
*83 
* B4 



n 

I 7 



**** 
ERPIBCB 

*****B4********** 



* SET REG 3 MEG * 
->* FCR ERPIB *- 

* iODUFE * 

* * 
***************** 



*****C2********** 

* ASSUME THI * 

* ERROH IS CN * 

* SYSRES * 

* * 
************ ***** 



86C5 

A86A1 



r 

**** 
* * 

* D2 * 

* * 
**** 



_ IS A CCB * 

■>*. QUEUED TO THE 

POB .* 



*****£2******* 



*** 

* 
It * 



***************** 



**** 
*83 * 
* F2 *-> 



84A5 
8UG1 
84J1 



.* *. F : 



ENTERED 
FROM SIO 
ROUTINE , 



********* 

♦ 82 *e«» * 

* C4* A3* 



J1 *. 
. * IS A * 
* CHANNEL 

ALREADY 
*. DAMAGED 



•n 



***** 

♦80 * 

*