60459420J_VSOS_Version_2_Reference_Manual_Vol_2_Nov88 60459420J VSOS Version 2 Reference Manual Vol Nov88
60459420J_VSOS_Version_2_Reference_Manual_Vol_2_Nov88 manual pdf -FilePursuit
60459420J_VSOS_Version_2_Reference_Manual_Vol_2_Nov88 60459420J_VSOS_Version_2_Reference_Manual_Vol_2_Nov88
User Manual: 60459420J_VSOS_Version_2_Reference_Manual_Vol_2_Nov88
Open the PDF directly: View PDF .
Page Count: 456
Download | |
Open PDF In Browser | View PDF |
CD C® VSOS VERSION 2 . / FOR USE WITH CYBER 200 SERIES COMPUTER SYSTEM· Volume 2 of 2 REFERENCE MANUAL ~~ CONT~OL DATA 60459420 CD C® VSOS VERSION 2 FOR USE WITH CYBER 200 SERIES COMPUTER SYSTEM Volume 2 of 2 REFERENCE MANUAL €:~ CONT~OL DATA 60459420 REVISION RECORD DESCRIPTION REVISION A Manual released. (04-16-82) B Manual revised to reflect VSOS 2.0 corrective code release at PSR level 575. (10-15-82) C (07-29-83) D (03-30-84) E (10-31-85) F (04-18-86) G (12-05-86) H Manual revised to reflect VSOS 2.1 at PSR level 592. New features documented include support of on-line magnetic tapes, IQM performance improvements, and channel utilization statistics. This edition obsoletes all previous editions. Due to extensive reorganization, change bars and dots are not being used at this revision and all pages reflect the current revision level. Manual revised to reflect VSOS 2.1.5 at PSR level 607. Changes include documentation of adding the job name to the account record and various other technical and editing changes. Manual revised to reflect VSOS 2.2 at PSR level 644. Changes include documentation of dynamic file allocation, project tracking, multiple batch jobs per user and various other technical and editing changes. Due to extensive changes, change bars and dots are not used and all pages reflect the latest revision level. This edition obsoletes all previous editions. Manual revised to reflect VSOS 2.2.5 at PSR level 654. Changes have been made to descriptions of I/O connectors for explicit and implicit I/O and the explicit I/O system message has been updated. Various other technical and editing changes have also been made. Manual revised to reflect VSOS 2.3 at PSR level 670. been made. Various technical and editing changes have Manual revised to reflect VSOS 2.3.5 at PSR level 690. ( 10-23-87) Publication No. 60459420 REVISION LETTERS I, 0, Q, S, X AND Z ARE NOT USED. Address comments concerning this manual to: 1982, 1983, 1984, 1985, 1986, 1987 by Control Data Corporation All rights reserved Printed in the United States of America © 2 Control Data Corporation Technology and Publications Division 4201 North Lexington Avenue St. Paul, Minnesota 55126-6198 or use Comment Sheet in the back of this manual. LIST OF EFFECTIVE PAGES New features, as well as changes, deletions, and additions to information in this manual, are indicated by bars in the margins or by a dot near the page number if the entire page is affected. A bar by the page number indicates pagination rather than content has changed. PAGE REV Front Cover Title Page - 2 3 4 5 6 7 8 9 10 11 12 1-1 1-2 1-3 1-4 1-5 1-6 1-7 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-8.1/2-8.2 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 2-18 2-19 2-20 2-20.1/2-20.2 2-21 2-22 2-23 2-24 2-25 2-26 2-27 2-28 2-29 2-30 2-31 2-32 2-33 2-34 3-1 3-2 3-3 H H H F 60459420 H E H H G H H E F F F G H H F F H H H H H H H H E F E E E E H E E H G F G G G E E G G E G E F E E E F F H F PAGE 3-4 3-5 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 4-11 4-12 4-13 4-14 4-15 4-16 5-1 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11 5-12 5-13 5-14 5-15 5-16 5-17 5-18 5-19 5-20 5-21 5-22 5-23 5-24 5-25 5-26 5-27 5-28 5-29 5-30 5-31 5-32 5-33 5-34 5-35 5-36 5-37 5-38 5-39 5-40 5-41 REV F F E E E E E E E E E E E E E E E E G F F F F F F E G H F F E G G G F F F E F H E E E F E E E F G G H H H G E F F E E PAGE 5-42 5-43 5-44 5-45 5-46 5-47 5-48 5-49 5-50 5-51 5-52 5-53 5-54 5-55 5-56 5-57 5-58 5-59 5-60 5-61 5-62 5-63 5-64 5-65 5-66 5-67 5-68 5-69 5-70 5-71 5-72 5-73 5-74 5-75 5-76 5-77 5-78 5-79 5-80 5-81 5-82 5-83 5-84 5-85 5-86 5-87 5-88 5-89 5-90 5-91 5-92 5-93 5-94 5-95 5-96 5-97 5-98 5-99 5-100 REV E H H H H F F E F H E H H E H E H E E E E E E F F E E H E E F E E E E E E F E E E E E E E E E E E H E E E H H E E H H PAGE 5-101 5-102 5-102.1/ 5-102.2 5-103 5-104 5-105 5-106 5-107 5-108 5-109 5-110 5-111 5-112 5-113 5-114 5-115 5-116 5-117 5-118 5-119 5-120 5-121 5-122 5-123 5-124 5-124.1 5-124.2 5-125 5-126 5-126.1/ 5-126.2 5-127 5-128 5-129 5-130 5-131 5-132 5-133 5-134 5-135 5-136 5-137 5-138 5-139 5-140 5-141 5-142 5-143 5-144 5-145 5-146 5-147 5-148 5-149 5-150 5-151 5-152 5-153 REV H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H F E H H H E F H F H F H F G E F E F E E F E E E F H PAGE 5-154 5-155 5-156 5-157 5-158 5-159 5-160 5-160.1 5-160.2 5-161 5-162 5-163 5-164 5-165 5-166 5-167 5-168 5-169 5-170 5-171 5-172 5-173 5-174 5-175 5-176 5-177 5-178 5-179 5-180 5-181 5-182 5-183 5-184 5-185 5-186 5-187 5-188 5-189 5-190 5-191 5-192 5-193 5-194 5-195 5-196 5-197 5-198 5-199 5-200 5-201 5-202 5-203 5-204 5-205 5-206 5-207 5-208 5-209 5-210 REV H H H H H H H H H H H H H H H H F E F E E E E E F E E E E E E G E E E E E F H H E H F F F F F F F F F F F F F F F F F 3 PAGE REV 5-211 5-212 5-213 5-214 5-215 6-1 6-2 6-3 6-4 6-5 6-6 7-1 7-2 7-3 8-1 8-2 8-3 8-4 8-5 8-6 8-7 8-8 8-9 8-10 8-11 8-12 8-13 8-14 8-15 8-16 8-17 8-18 8-19 8-20 8-20.1/8-20.2 8-21 8-22 8-23 8-24 8-25 8-26 8-27 8-28 8-29 8-30 8-31 8-32 8-33 8-34 8-35 8-36 8-37 8-38 8-39 9-1 9-2 9-3 9-4 9-5 9-6 9-6.1/9-6.2 9-7 9-8 9-9 9-10 9-11 9-12 9-13 9-14 9-15 9-16 F F F F F E E E E E E G G G E E 4 H E E F H E H H E F E E F E E H H H F E F F E F E F F E E E E F E F E H E F H E E E H H H E E E E E E G E G F PAGE 9-17 9-18 9-19 9-20 9-21 9-22 9-23 9-24 9-25 9-26 10-1 10-2 10-3 10-4 10-5 10-6 10-7 10-8 10-9 10-10 10-11 10-12 10-13 10-14 10-15 10-16 10-17 10-18 10-19 A-I A-2 A-3 A-4 B-1 B-2 B-3 B-4 B-5 B-6 C-1 C-2 C-3 C-4 C-5 C-6 C-7 C-8 D-1 D-2 D-3 D-4 D-5 D-6 D-7 D-8 D-9 E-l E-2 E-3 E-4 F-1 F-2 G-1 G-2 G-3 G-4 G-5 G-6 Index-1 Index-2 Index-3 REV G E E E E E G E E E F F E E E E E G F G F F F E G E G G E E E E E F F F F E E F G F F F F F F E E E E G E G F F PAGE Index-4 Index-5 Index-6 Comment Sheet Back Cover REV PAGE REV PAGE REV H F F H - H E E E E E E E E E E E F H H 60459420 H PREFACE This manual describes the CDC®Virtual Storage Operating System (VSOS) for the CONTROL . DATA®CYBER 200 Series Computer System. This manual is published in two volumes: • Volume 1 describes system utilities and system interface language (SIL) subroutines. It also contains a general description of CYBER 200 hardware and operating system software, file concepts, and task execution. It is written primarily for applications programmers. • Volume 2 describes system messages and job management tables. It also describes system accounting file formats, common execute line routines, and loader conventions. It is written primarily for systems programmers. RELATED PUBLICATIONS Related information can be found in the following publications. Control Data Publication Publication Number CYBER 200 Maintenance Software System Reference Manual 60457200 CYBER 200 Model 205 Computer System Hardware Reference Manual 60256020 CYBER 200 Model 205 Troubleshooting Guide 60430060 RHF Usage 60460620 VSOS User's Guide for Fortran 200 Programmers 60455390 VSOS Site Manager's Handbook 60461490 VSOS Version 2 Reference Manual, Volume 1 60459410 VSOS Version 2 Operator's Guide 60459430 VSOS Version 2 Installation Handbook 60459440 FORTRAN 200 Reference Manual 60485000 CYBER 200 Assembler Version 2 Reference Manual 604B5010 RHF Application-to-Application Interface Specification ARH 1/4260 I Control Data manuals can be ordered from: Literature and Distribution Services STP005 308 North Dale Street St. Paul, Minnesota 55103 60459420 F 5 DISCLAIMER This product is intended for use only as described in this document. Control Data cannot be responsible for the proper functioning of undescribed features or parameters. Control Data does not support the station communication software described in this manual. It supports only the LCN/RHF communication software. Control Data does not support the FORTRAN 66 compiler. 6 60459420 E CONTENTS 1. INTRODUCTION TO VSOS Central Operating System Resident System Virtual System Queuing of Virtual System Tasks Scheduler Interaction with PAGER Privileged System Tasks Obtaining Privileged Status Privileged Resident System Calls Virtual System Calls 2. I JOB MANAGEMENT TABLES 1-1 4. TAPE MANAGEMENT 4-1 1-1 1-1 1-2 Tape Assignment Recovery PRU Recovery User Error Recovery System Label Processing Nonstandard Labels ANSI Labels Required Labels Optional Labels 4-1 4-1 4-1 4-1 4-2 4-2 4-2 4-2 4-15 5. 5-1 1-2 1-3 1-4 1-5 1-5 1-7 2-1 File Index Table (FILEI) Minus Page I/O Connectors Map Directories Minus Page File Maps Bound Explicit Maps Bound Implicit Maps Drop File Map Tapes Table 2-1 2-16 2-19 2-25 2-26 2-26 2-27 2-28 2-30 3. 3-1 FILE CONCEPTS File Names File Ownership File Access Production Files File Management Categories Mass Storage Files Scratch Files Output Files Drop Files MODDROP (Write-Temporary) Files Files Connected to a Terminal Tape Files File I/O Physical Files Virtual Files 60459420 H 3-1 3-1 3-2 3-2 3-3 3-3 3-3 3-4 3-4 3-4 3-4 3-4 3-5 3-5 3-5 SYSTEM MESSAGES System Message Execution Alpha and Beta Word Conventions Overview Messages CREATE FILE (f=#0001) DESTROY FILE (f=#0002) OPEN FILE (f=#0003) Mass Storage Files Magnetic Tape Files Files Connected to a Terminal MAP (f=#0004) CLOSE FILE (f=#0005) Mass Storage Files Magnetic Tape Files Files Connected to a Terminal TERMINATE (f=#0006) LIST FILE INDEX TABLE (f=#0007) GIVE FILE (f=#0008) LIST SYSTEM TABLE (f=#0009) CHANGE FILE ATTRIBUTES (f=#OOOB) FILE DISPOSITION (f=#OOOD) USER/ACCOUNTING COMMUNICATION (f=tIOOOE) ATTACH PERMANENT FILE (f=#0010) GET PACK LABEL AND PFI (f=#0011) LIST CONTROLLEE CHAIN (f=#0013) SEND A MESSAGE TO CONTROLLER (f=IIOO 14) SEND A MESSAGE TO CONTROLLEE (f=110015) 5-1 5-2 5-3 5-5 5-8 5-14 5-17 5-26 5-27 5-27 5-28 5-32 5-38 5-38 5-38 5-39 5-40 5-43 5-47 5-53 5-61 5-64 5-68 5-70 5-74 5-76 5-78 7 GET MESSAGE FROM CONTROLLER OR OPERATOR (f=#0016) GET MESSAGE FROM CONTROLLEE (f=110017 ) REMOVE CONTROLLEE FROM MAIN MEMORY (f=110019) SEND A MESSAGE TO OPERATOR ( f=IIOOIA) INITIALIZE OR DISCONNECT CONTROLLEE (f=#OOIB) PROGRAM INTERRUPT CONTROL (f=IIOOIC) 8. 5-83 5-86 5-88 5-90 5-92 INITIALIZE CONTROLLEE CHAIN ( f=IIOOID) ENABLE/DISABLE ATC (f=#0020) EXECUTE OPERATOR COMMAND (f=110021 ) 5-94 5-97 5-99 EXECUTE PROGRAM FOR USER NUMBER I ( f=110022) UPDATE USER DIRECTORY (f=#0023) MISCELLANEOUS (f=#0024) RECALL (f=110025) POOL FILE MANAGER (f=#0026) LINK (f=110027) VARIABLE RATE ACCOUNTING ( f=110028) SEND MESSAGE TO DAYFILE (f=#0029) RHF CALL (f=#002A) ACCESS CONTROL (f=#002B) TAPE MANAGEMENT (f=#002C) TAPE SWITCH VOLUME (f=#002D) LABEL (f=11002E) USER REPRIEVE (f=#002F) EXECUTE IQM REQUEST (f=#0030) SEND MESSAGE TO JOB SESSION (f=110033) RETURN FROM INTERRUPT (f=#0051) SHRLIB ALTER OR RESTORE (f=#0053) TAPE FUNCTION (f=#F406) EXPLICIT I/O (f=#F500) ADVISE (f=IIFFOO) PROCESS SYSTEM PARAMETER (f=IIFFOI ) GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME (f=#FF02) 6. VIRTUAL SYSTEM DEBUG TOOL 5-126.1 5-128 5-134 5-142 5-143 5-147 5-149 5-151 5-153 5-165 5-168 5-178 5-182 5-187 5-189 5-192 5-194 5-196 5-198 5-204 5-208 5-212 5-214 6-1 Resident System Virtual System User and System Interfaces Shared Table Commands Command Format Debug Commands Control Commands Error Messages 6-1 6-1 6-2 6-2 6-4 6-4 6-5 6-6 6-6 7. 7-1 8 ANALYZER ACCOUNTING 8-1 5-80 Calculation of STUs Statistics Accumulation Cumulative Accounting Buffer Accounting File Active Accounting File Blocks Task Records Terminal Records Disk File Management Records Tape Records System Records Job Records Network Usage Records Channel Usage Statistics Records Periodic System Records Periodic Job Records Standardized Accounting Enhancements Calculation of SBUs Variable Rate Accounting Variable Rate/Service Level Tables Variable Rate File Virtual System Table Definition File Maintenance System Dayfile General Format of System Dayfile Entry User Entries System Entries Label Entries Diagnostic Entries 9. COMMON EXECUTE LINE SUPPORTING ROUTINES 8-1 8-1 8-2 8-3 8-5 8-8 8-15 8-16 8-17 8-18 8-18 8-20.1 8-22 8-27 8-29 8-30 8-30 8-32 8-32 8-32 8-34 8-34 8-35 8-36 8-37 8-38 8-39 8-39 9-1 9-1 9-5 9-5 9-6 9-6.1 9-7 Conventions Supporting Routines Q7ENVIRN Q7MODE Q7PROMPT Q7KEYWRD Ihs Table rhs Table Return Buffer Special Characters 9-14 9-19 9-26 10. 10-1 LOADER CONVENTIONS General Table Structure Module Tables Module Header Table Code Block Table Code Relocation Table External/Entry Table 9-11 10-2 10-3 10-3 10-4 10-5 10-6 60459420 H I Interpretive Data Initialization Table 10-9 Interpretive Relocation Initialization Table 10-15 Transfer Symbol Table 10-15 Debug Symbol Table Symbol Definition Table Pseudoaddress Vector Table 10-15 10-17 10-19 APPENDIXES A. CHARACTER SET A-I B. DIAGNOSTICS B-1 Register Save Area External Procedure Call Sequence Prologue Sequence Epilogue Sequence D-6 D-7 D-7 D-9 System Error Codes Tape Error Codes B-1 B-3 E. CYBER 205 INVISIBLE PACKAGE E-1 C. GLOSSARY C-1 F. PROGRAM STATES F-1 D. REGISTER FILE CONVENTIONS D-1 G. TAPE FORMATS G-1 Registers Machine Registers Temporary Registers Global Registers Environment Registers D-1 D-1 D-1 D-2 D-5 I (Internal) Format SI (System Internal) Format LB (Large Block) Format V and NV (Variable) Format G-1 G-3 G-5 G-6 INDEX FIGURES 2-1 2-2 2-3 2-4 2-5 2-6 2-6.1 2-7 2-8 2-9 2-10 4-1 4-2 File Index Table Format for Nontape Files File Index Table Format for Tape Files Format of I/O Connector for a Mass Storage File Opened for Explicit I/O Format of I/O Connector for a Mass Storage File Opened for Implicit I/O Format of I/O Connector for a Tape File Map Directory Format Bound Explicit Map Entry Format Bound Implicit Map Entry Format Drop File Map Full-Word Entry Format Drop File Map Half-Word Entry Format Tapes Table Format VOL1 Format HDR1 Format 60459420 G 2-2 2-9 2-19 4-3 4-4 5-1 5-2 5-3 5-4 5-5 5-6 5-7 2-21 2-23 2-25 5-8 5-9 5-10 2-26 5-11 2-27 5-12 2-28 5-13 2-29 2-30 4-5 4-7 5-14 EOF1 Format EOV1 Format CREATE FILE Message Format DESTROY FILE Message Format OPEN FILE Message Format MAP Message Format CLOSE FILE Message Format TERMINATE Message Format LIST FILE INDEX TABLE Message Format GIVE FILE Message Format LIST SYSTEM TABLE Message Format CHANGE FILE ATTRIBUTES Message Format FILE DISPOSITION Message Format USER/ACCOUNTING COMMUNICATION Message Format ATTACH PERMANENT FILE Message Format GET PACK LABEL AND PFI Message Format 4-10 4-13 5-9 5-14 5-17 5-29 5-32 5-39 5-40 5-43 5-47 5-53 5-61 5-64 5-68 5-70 9 5-15 5-16 5-17 5-18 5-19 5-20 5-21 5-22 5-23 5-24 5-25 5-26 5-27 I 5-28 5-29 5-30 5-31 5-32 5-33 5-34 5-35 5-36 5-37 5-38 5-39 5-40 5-41 5-42 5-43 5-44 5-45 5-46 5-47 5-48 10 LIST CONTROLLEE CHAIN Message Format SEND A MESSAGE TO CONTROLLER Message Format SEND A MESSAGE TO CONTROLLEE Message Format GET MESSAGE FROM CONTROLLER OR OPERATOR Message Format GET MESSAGE FROM CONTROLLEE Message Format REMOVE CONTROLLEE FROM MAIN MEMORY Message Format SEND A MESSAGE TO OPERATOR Message Format INITIALIZE OR DISCONNECT CONTROLLEE Message Format PROGRAM INTERRUPT CONTROL Message Format INITIALIZE CONTROLLEE CHAIN Message Format ENABLE/DISABLE ATC Message Format EXECUTE OPERATOR COMMAND (Alpha) Message Format EXECUTE OPERATOR COMMAND (Beta) Message Format T_JCAT System Table Format EXECUTE PROGRAM FOR USER NUMBER Message Format UPDATE USER DIRECTORY (Alpha) Message Format UPDATE USER DIRECTORY (Beta) Message Format MISCELLANEOUS Message Format RECALL Message Format POOL FILE MANAGER Message Format LINK (Alpha) Message Format LINK (Beta) Message Format VARIABLE RATE ACCOUNTING Message Format SEND MESSAGE TO DAYFILE Message Format RHF CALL (Alpha) Message Format RHF CALL (Beta) Message Format ACCESS CONTROL Message Format TAPE MANAGEMENT Message Format TAPE SWITCH VOLUME Message Format LABEL Message Format USER REPRIEVE Message Format EXECUTE IQM REQUEST Message Format SEND MESSAGE TO JOB SESSION Message Format RETURN FROM INTERRUPT Message Format 5-49 5-74 5-76 5-78 5-80 5-83 5-86 5-88 5-90 5-92 5-94 5-97 5-99 5-101 5-125 5-126.1 5-128 5-129 5-134 5-142 5-143 5-147 5-148 5-149 5-151 5-153 5-154 5-165 5-169 5-179 5-182 5-187 5-189 5-192 5-194 SHRLIB ALTER OR RESTORE Message Format 5-50 TAPE FUNCTION Message Format 5-51 EXPLICIT I/O (Alpha) Message Format 5-52 EXPLICIT I/O (Beta) Message Format 5-53 ADVISE Message Format 5-54 PROCESS SYSTEM PARAMETER Message Format 5-55 GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME Message Format 7-1 ANALYZER Execute Line Format 8-1 Master Clock Format 8-2 Master Clock Example Accounting Record Format 8-3 (First Word) 8-4 Task Record Header Format 8-5 Task Record Format, Subtype 0 Task Record Format, Subtype 2 8-6 8-7 Task Record Format, Subtype 4 Interactive Job 8-8 Task Record Format, Subtype 4 Batch Job with First CHARGE Statement 8-9 Task Record Format, Subtype 4 Batch Job with Second through Last CHARGE Statement 8-10 Terminal Record Format, Subtype 0 8-11 Terminal Record Format, Subtypes 1 and 3 Tape Record Format, Subtype 0 8-12 8-13 Tape Record Format, Subtype 1 8-14 Job Record Format, Subtype 0 8-15 Job Record Format, Subtype 1 8-15.1 Job Record Format, Subtype 2 8-16 Network Usage Record Format 8-17 Channel Usage Statistics Record Format, Subtype 8-18 Channel Usage Statistics Record Format, Subtype 2 8-19 Periodic System Record Format 8-20 Periodic Job Record Format 8-21 Algorithm for SBU Calculation 8-22 Q5VRF File Format 9-1 Key-Dependent Parameter Format 9-1.1 Q7ENVIRN Call Statement Format 9-2 Q7MODE Call Statement Format 9-3 Q7PROMPT Call Statement Format 9-4 Q7KEYWRD Call Statement Format 9-5 Ihs Table Pointer Configuration 9-6 Ihs Table Format 9-7 Ihs Table Header Format 9-8 Ihs Table Entry Format 5-196 5-199 5-205 5-206 5-209 5-212 5-214 7-2 8-6 8-6 8-7 8-9 8-10 8-11 8-13 8-13 8-14 8-15 8-15 8-17 8-17 8-19 8-20 8-20 8-20.1 8-22 8-25 8-27 8-29 8-30 8-33 9-3 9-5 9-6 9-6.1 9-9 9-10 9-11 9-12 9-13 60459420 H I I 9-9 9-10 9-11 9-12 9-13 9-14 9-15 9-16 9-17 9-18 9-19 9-20 9-21 9-22 9-23 rhs Table Format rhs Table Entry Format (First Word) rhs Table Entry Format, Type 2 rhs Table Entry Format, Type 3 rhs Table Entry Format, Type 4/6 Return Buffer Format Return Buffer Entry Format (First Word) Return Buffer Entry Format, Types 1 and 2 Return Buffer Entry Format, Type 3 Return Buffer Entry Format, Type 4 Return Buffer Entry Format, Type 5 Return Buffer Entry Format, Type 6 Return Buffer Entry Format, Type 7 with Zeroed Flags Return Buffer Entry Format, Type 7 with Set Flags Return Buffer Entry Format, Type 8 with One Set Flag 9-14 9-24 9-15 9-16 9-16 10-1 10-2 10-3 10-4 10-5 9-17 9-19 9-20 10-6 10-7 10-8 10-9 10-10 10-11 9-21 10-12 9-22 D-1 D-2 D-3 E-1 G-l G-2 G-3 9-19 9-20 9-22 9-23 9-23 G-4 Return Buffer Entry Format, 9-25 Type 8 with Two Set Flags 10-2 Loader Table Header Format 10-3 Module Header Table Format 10-5 Code Relocation Table Format 10-7 External/Entry Table Format Descriptor Format for Externals and Entry Points 10-8 Data Item Format 1 10-9 Data Item Format 2 10-11 Data Item Format 3 10-12 Data Item Format D 10-13 Debug Symbol Table Format 10-16 Symbol Definition Table Entry 10-17 Format Pseudoaddress Vector Table 10-19 Entry Formats D-3 Register File D-4 List of Parameter Addresses D-6 Stack Frame E-1 Invisible Package Contents G-l I Tape Format G-3 SI Tape Format G-5 LB Tape Format G-6 V and NV Tape Formats 9-24 TABLES 1-1 1-2 1-3 2-1 2-2 2-3 3-1 4-1 5-1 6-1 6-2 6-3 Resident System Calls for Privileged Users 1-5 Virtual System Calls Available to Privileged User Tasks Only 1-7 Virtual System Calls with Options Available to Privileged User Tasks Only 1-7 File Disposition Specifications in the File Index Table 2-14 File Characteristic Specifications in the File Index Table 2-15 Minus Page Format 2-17 File Index Table Fields that Affect File Ownership 3-2 Tape Label Format 4-3 Message Function Codes 5-5 Structure of the T VSD Table 6-2 VSDT Command Summary 6-4 VSDT Commands for Setting and Resetting Breakpoints 6-5 60459420 H 6-4 6-5 8-1 8-2 8-3 8-4 9-1 10-1 A-I A-2 A-3 B-1 B-2 F-1 VSDT Command for Accessing Paged-Out Addresses 6-6 VSDT Error Messages 6-6 Accounting Record Type and Subtype Codes 8-3 Active Accounting File Block Format 8-5 Active Accounting File Format (First Block) 8-7 8-31 System Resources Execute Line Special Characters 9-26 10-4 Module Header Table Types ASCII Character Set with Punched Card Codes and A-2 EBCDIC Translation Hexadecimal-to-Octal Conversion Aids A-3 Hexadecimal-to-Decimal A-4 Conversion Aids B-1 System Error Codes B-3 Tape Error Codes Program State Codes F-1 11 I NOTATIONS USED IN THIS MANUAL UPPERCASE UNDERLINED UPPERCASE Lowercase [ ] Brackets 12 Words or character strings that must be entered as shown. They must be spelled correctly including any = or / shown. Words or character strings that can be abbreviated to the number of underlined characters. Generic terms which represent the words parameters or character strings supplied by the programmer. When generic terms are repeated in a format, a number or letter might be appended. Optional portion of a format. All parameters enclosed within the brackets can be omitted at programmer option. The brackets are editorial conventions only; they are not part of the format. { } Braces Ellipses Portion of a format in which only one of the vertically stacked items can be used. The braces are editorial conventions only; they are not part of the format. Repetition indicator. The portion of the format immediately preceding can be repeated at programmer option. Blank indicator. In a format, this character indicates that a blank or space should appear. Numbers used in this manual are decimal unless noted as hexadecimal. Hexadecimal numbers are prefixed by the # character. Punctuation characters shown within the formats are required unless the text indicates another punctuation character can be substituted. 60459420 E 1 INTRODUCTION TO VSOS The Virtual runs in the the network nonresident Storage Operating System (VSOS) consists of a central operating system, which central processing unit (CPU), and a peripheral operating system, which runs in access devices (NADs). The operating system consists of a resident system and a set of callable tasks. CENTRAL OPERATING SYSTEM The central operating system can be divided into three parts: • The resident system runs in a hardware mode called monitor mode. It is always resident in memory and references memory by absolute address rather than through the virtual paging mechanisms. When the resident system is running, interrupts are inhibited and some extra instructions are enabled. • The virtual system runs in a hardware mode called job mode. It consists of a pageable set of subroutines that perform such functions as controlling entry of users into the system, file management, and terminal message handling. Virtual system tasks communicate with the resident system by using resident system calls. The virtual system can modify system tables directly. • I Privileged system tasks run in the hardware mode called job mode and perform many of the same functions as virtual system tasks. Privileged system tasks can issue privileged resident system calls to communicate with the resident system. However, the only privileged system tasks that can modify system tables directly are Input Queue Manager (IQM) and Interactive Transfer Facility Servicer (ITFS). CYBER 200 hardware modes are described in the CYBER 200 Hardware Reference Manual. RESIDENT SYSTEM The resident portion of the central operating system contains: • KERNEL, which handles time-slicing and message communication. • PAGER, which is responsible for main memory allocation and page swapping. All communications between the various portions of the system are by means of system messages. These messages either pass through KERNEL, which in this case acts as a message switcher, or are processed directly by KERNEL. User jobs, privileged tasks, and virtual system tasks communicate messages to KERNEL through the exit force instruction (a machine language instruction). PAGER communicates messages to KERNEL by direct subroutine calls. The peripheral system communicates with KERNEL by setting pointers in the station queuing structure; KERNEL communicates with the peripheral system by setting pointers and station channel flags. 60459420 F 1-1 I The time-slice management portion of KERNEL is controlled by a loop ovpr the a'tprn~tor table that acts as a circular table with various indicators in each table entry. These indicators include a pointer to a minus page table entry, a descriptor block table entry, and three sets of flag bits that define the status of each alternator entry. A unique entry in the alternator is shared by all virtual system tasks; to prevent two routines from modifying the same system table simultaneously, only one virtual system task is allowed to run at a time. This system alternator slot has the highest priority; it is always run unless blocked for I/O or PAGER action. All memory access interrupts, as well as certain messages dealing with physical memory allocation, are conveyed by KERNEL to PAGER for processing. PAGER dynamically allocates both large and small pages, and performs all implicit I/O necessary to free m~mory pages and obtain the pages caused by memory access interrupts. That portion of memory that is not permanently occupied by the resident system and its tables is available for allocation to executing system and user tasks, including the virtual system. This allocatable memory is either allocated space (space reserved for use by a specific task) or free space (space not allocated to any task). VIRTUAL SYSTEM The virtual system contains routines for system functions such as file management, explicit I/O, message handling, and CPU scheduling. Only that part of the virtual system that is needed at anyone time is in physical memory. The virtual system is assigned tasks by KERNEL and is initiated by KERNEL to do one type of task only. It must finish one task before it begins another. I Queuing of Virtual System Tasks For virtual system demand tasks, which are critical to the efficient working of the operating system, queuing occurs if: • Bits are set in one or more alternator slots to indicate that virtual system action is required. • PAGER requests KERNEL to queue a virtual system demand task. For periodic virtual system tasks, which are not considered critical, queuing occurs if: 1-2 • A communication from a peripheral processor requires activity. • A user job issues a message that requests a system service not provided by the resident system. • An entry in the periodic table indicates it is time to run a virtual system task. 60459420 F Scheduler Interaction with PAGER The CPU paging processor (PAGER) interacts with the CPU scheduler and the input queue scheduler to regulate the processing load on the CPU. The process is: • When PAGER determines that the load on the system is excessive, it notifies the virtual system routine LOAD to suspend certain tasks (refer to the following) and/or disconnect tasks from the CPU scheduling queue (CPUQ) and places them into the wait queue. • When PAGER determines that the system is not being fully utilized, it notifies LOAD to reconnect tasks in the wait queue to the CPUQ, resume system-suspended tasks, and/or submit new batch jobs to the CPU scheduler. Estimates of the memory requirements of any task in the system are based on the size of the task's working set, which is a function of the number of blocks of memory referenced or altered by the task in a given period of time. Before a task begins execution, it is assigned an initial and a maximum working set. The maximum working set is determined by the RESOURCE statement as explained in volume 1 of this reference manual. The CPU scheduler sets the initial working set based on the task's drop file size. PAGER then monitors the memory usage of the task and adjusts its working set accordingly. PAGER will not evaluate a task's working set to be higher than the maximum working set for the task. It will, however, keep track of the frequency with which a task is attempting to exceed its maximum working set. When the frequency becomes too high, PAGER flags the task as a candidate for suspension. When the number of candidates for suspension exceeds an installation-defined limit, PAGER notifies LOAD to suspend candidates for suspension in reverse priority order until the limit is no longer exceeded. (Observe that tasks which have a maximum working set equal to all of allocatable memory will not be considered candidates for suspension.) In addition to monitoring each task's working set, PAGER keeps track of the sum of the working sets of all tasks in the CPUQ and wait queue (WQ). This variable is used to calculate a running average sum of working sets (known to the system as IQM_RWS). IQM RWS represents the load on the system after factoring out temporary dips in memory committed to tasks. For each job in the input queue, the input queue scheduler estimates the maximum working set that the job will require while in execution. One of the scheduling constraints on a job in the input queue is maximum memory overcommitment. When a job fails this constraint, it is given a status of MXMO. IQ~1 RWS must be less than the lowest estimated working set among all jobs with a status of MXMO in order for any job with that status to be submitted without overcommitting memory. When IQM RWS is evaluated by PAGER as being below this value, PAGER notifies LOAD to cause the input queue scheduler to reevaluate jobs in the input queue for submission. The input queue scheduler will attempt to resume system-suspended tasks before submitting new jobs to the CPU. When the sum of the working sets of tasks in the CPUQ is low enough, PAGER notifies LOAD to remove tasks from the wait queue and reconnect them to the CPUQ within the limits of committable memory. A task qualifies for reconnection when it is the highest priority task in the wait queue whose working set plus memory for working set growth fits into uncommitted memory. When a task is evaluated as having a working set which will no longer fit into co~ittable memory, it is disconnected from the CPUQ and placed into the wait queue. 60459420 F 1-3 PRIVILEGED SYSTEM TASKS Any task can be run as a privileged task if it is running under a privileged user number or has the privilege flag set in the file index table entry of its source file. A privileged system task is any privileged task that is part of the central operating system. A privileged user task is any other privileged task, such as one that a system or installation-defined utility might use. I Privileged and virtual system tasks have similar characteristics in that they run in job mode, make resident calls, are pageable, and can access the files of other users. Unlike the virtual system tasks, privileged tasks (with the exception of IQM and ITFS) do not have direct access to system tables; through privileged calls to the virtual system, they are able to obtain indirect access to the tables. Because they can make most resident system calls, privileged system tasks are able to perform some functions for the virtual system. This reduces virtual system overhead and frees the virtual system to process other functions. Tasks such as handling I/O files and operator communications are currently done by privileged system tasks. IQM, OPERATOR, QTF, QTFS,PTFS, and ITFS are privileged system tasks that run under privileged user numbers. The system user number (for installation management), 999998, is also a privileged user number; EDITUD is run under this number. System Task 1-4 Description IQM Input Queue Manager. Creates and routes error dayfiles to the user for batch jobs which could not be submitted to the CPU scheduler (user number 000003). OPERATOR Enables the operator to communicate with the system by issuing the EXECUTE OPERATOR COMMAND message (f=#0021), enabling the operator to display memory and task information. The operator is able to control the flow of jobs to be submitted to the CPU scheduler, the jobs which are running in the system, and the access to peripheral equipment and linked mainframes available to the system (user number 000098). QTF Queue File Transfer Facility. Queues input and output files from CYBER 200 to a Remote Host Facility (RHF) front end (user number 000006). QTFS Queue File Transfer Facility Servicer. Queues job files from an RHF front end to CYBER 200 (user number 000008). PTFS Permanent File Transfer Facility Servicer. Services the remote host connection for permanent file transfer (user number 000010). (Does not imply the direction of the transfer.) ITFS Interactive Transfer Facility Servicer. 200 (user number 000013). Allows interactive use of CYBER 60459420 G Obtaining Privileged Status A user is a privileged user if the privilege flag (udtrust field) in the user directory entry is set. The flag can be set by using EDITUD. Privileged status for a running task is indicated in the descriptor block. An executable file can run as a privileged task under a nonprivileged user number if the privilege flag in the source file's file index table entry is set. If the task is not running under a privileged user number, but the privilege flag is set in its source file, control lees or a controllee chain started by the task must also have the privilege flag in their source files set to have privileged status. The privilege flag in the user directory entry associated with each user is passed on to each task that the user executes. Privileged Resident System Calls Privileged resident system calls made to KERNEL are processed by KERNEL or by a peripheral device. Resident system calls available to privileged tasks are listed in table 1-1. Before a C501, C502, or C503 calIon a file can be issued by a privileged task, the file must be opened for explicit I/O, using the OPEN FILE (f=#0003) message. The file segment table (FST) ordinal (returned in the fsto Beta word field for a CREATE or OPEN message) must be supplied with the call; otherwise, the task aborts. Privileged tasks can read and write segmented files with C500 and C501 calls, but files cannot be extended by tasks using these calls. Extensions are permitted, however, in other situations, such as when the privileged tasks perform implicit I/O or use the EXPLICIT I/O (f=#F500) message. Table 1-1. Resident System Calls for Privileged Users (Sheet 1 of 2) Call Number Description F002 Delete pages from the page table. F003 Delete a virtual range with a given key from the page table. F004 List a virtual range with a given key from the page table. F005 Delete all pages in the page table under a given key. F007 List the page table entry for the keyword and the virtual block identifier. F008 Terminate the task. F009 Complete outstanding boats. FOOC Change key. FOOD Get an input buffer. 60459420 H I 1-5 Table 1-1. Resident System Calls for Privileged Users (Sheet 2 of 2) Call Number I 1-6 Description FOOE Queue system/demand task. FOOF Change system keys. F010 Unlock a virtual range with a given key. F015 Performance measurement call. F016 Process checkpoint. F017 Return to KERNEL from Virtual System Debug Tool (VSDT). F018 List page table entry for large page. memory. F019 Checkpoint preprocessing. C304 Teletype output message. C305 Teletype input message. C313 Full screen output message. C320 Reserved for installation use. C500 Read physical blocks. C501 Write physical blocks. C502 Read physical disk. C503 Write physical disk. C504 Write a disk pattern. C510 Read logical blocks. C511 Write logical blocks. C512 Read logical disk. C513 Write logical disk. C514 Write logical pattern. C700 Read Remote Host Facility (RHF)/loosely coupled network (LCN). C701 Write RHF/LCN network. C702 RHF NAD function. C703 Receive RHF remote connection. C704 Abort timed-out boat. Fault for large page if not in 60459420 H Virtual System Calls Privileged tasks can make all nonprivileged calls to the virtual system. They can also make special virtual system calls and use options of nonprivileged calls that are restricted to privileged tasks. (All messages described in chapter 5 except EXPLICIT I/O, TAPE FUNCTION, ADVISE, PROCESS SYSTEM PARAMETER, and GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME are virtual system calls.) I Special virtual system calls available to privileged tasks are listed in table 1-2. The restricted capabilities of nonprivileged calls available to privileged tasks are listed in table 1-3. Table 1-2$ Virtual System Calls Available to Privileged User Tasks Only Function Code Message Function 0021 EXECUTE OPERATOR COMMAND Acts as the interface between the privileged task OPERATOR and the virtual system. 0022 EXECUTE PROGRAM FOR USER NUMBER Starts the file transfer process for a user. 0023 UPDATE USER DIRECTORY Modifies the user directory of an existing user or to create a new user. 002A RHF CALL Reserved for RHF virtual system calls. 0030 EXECUTE IQM REQUEST Deletes or inserts a job into the IQM. Table 1-3. I Virtual System Calls with Options Available to Privileged User Tasks Only Function Code Message Function 0001 CREATE Creates a public, pool, or private file for another user. 0002 DESTROY Destroys a public, pool, or another user's private file. 0003 OPEN Opens any file (private, public, or pool). 0005 CLOSE Closes any public, private, or pool file. Destroys the file being closed. 0008 GIVE Makes a file public; that is, gives to user 000000. Gives file to IQM (user 000003). Gives file specified by sector address and unit number. Gives file with trust bit set. OOOB CHANGE FILE ATTRIBUTES Changes the account number of an input file. OOOE USER/ACCOUNTING COMMUNICATION Makes accounting entry or dumps accounting temporary storage to permanent storage and terminates the accounting file. 60459420 F 1-7 JOB MANAGEMENT TABLES 2 Tables used by VSOS to control job processing within the system can be affected or altered indirectly by user programs. In all cases, access to the tables must be through system messages. FILE INDEX TABLE (FILEI) The file index table is a catalog of files connected to a terminal, mass storage files (public, private, and attached pool), and tape files for all active users in the system. The catalog entries of mass storage files for inactive users are maintained on a mass storage unit (in the inactive file index table). When a user becomes active, the catalog entries describing the user's mass storage files are brought into the file index table in main memory. Each entry in the file index table consists of at least one three-word top chapter and one or more 14-word bottom chapters. A top chapter exists for every attachment (or privileged open) of the file to a user. Every file has a bottom chapter containing basic file attributes. If individual user access permissions have been specified for the file, an additional bottom entry is present for the file access directory entries (FADE). When the file index is returned, a 16-word format is returned to the caller. The third word of the top is not returned; relevant information is placed at the bottom as previously described. The format is shown in figure 2-1 and figure 2-2. All fields in an entry contain binary values, unless otherwise indicated. The fidc, fiic, and fiec fields in the file index table entry contain specifications for the file's disposition, internal characteristics, and external characteristics. The fidc field values are listed in table 2-1; the values of the fiec and fiic fields are listed in table 2-2. RHF file disposition is controlled by the submitting host system and/or the user via the MFQUEUE statement. The ic field is the only field used by RHF. In the protocol exchange, the submitting RHF host includes disposition and routing information, which is saved as the last group of an input file. The batch processor copies the last group to a file Q5JRTHRF during job execution. If a file is MFQUEUEd during job execution, a copy of the Q5JRTHRF file is saved in a file named Q5Lxxxxx which is associated with the MFQUEUEd file which will be named Q50xxxxx, where xxx xx is a unique five-character string generated by the system microsecond clock. At the end of job execution, the Q5JRTHRF file is renamed PYYxxxxx and is given to QTF as the last member of the xxxxx family. The information in the PYYxxxxx file and the Q5Lxxxxx file are used in the RHF protocol exchange returning the output files. The front-end host examines the received protocol and disposes the file accordingly. 60459420 F 2-1 o o 63 poolname ---~--~--~-------------------- 00 8 atjdn 12 auser 44 name 64 2 reserved mpn 24 un- aql used Vfp 42 1 1 16 dorg 5 dola 6 et 16 4 16 meat 4 dolm 4 16 16 16 3 t rep ref ptrpfil figs ostat osver 5 3 4 lodlen 32 8 type 4 f ouser i 9 unused., 20 1 1 , xd x f pme . slev p I I 11 8 2 8 act 11 ekjdn tt att 12 18 tlr 18 t ~ t r tolm 9 18 3 11 '-Inaet dup 8 fact 7 torg 64 8 fide A fizip fitid 42 fiie fiee fiem fio1 -fistid- 12'I--:~~d ~----fisid----2~ 4 2 4 4 8 8 tt slen 16 C D E fidi DI Jobname in Display Code finae 8 8 32 16 8 8 9 hba Ibe gaes oaes flen seglen 1 24 seglen2 16 tt2 unused 16 18 16 tt4 extsize 16 tt~ segadr2 24 fLjdn segadr3 hbw F seglen4 16 t t i pkno 18 unused 8 bilb4 segadr 1 16 tt2 dfso seglen3 saddr 2 18 36 segadr4 18 48 0 p ~ g¥ fsto 8 1 1 1 '1 16 t t tt sfo 24 4 mnr bt 18 12 oe i 4 24 mxr rt 4 24 vri rmk 12 pc 8 8 tPurge only (1 bit) tt Reserved. Figure 2-1. • 2-2 File Index Table Format for Nontape Files (Sheet 1 of 8) 60459420 H Word Field o poolname Pool name in ASCII, left-justified with blank fill. atjdn Job descriptor number to which this file is attached; it is assigned to a job for the life of the job in the system. auser Owning user number in binary notation. name File name in ASCII, left-justified with blank fill. The information in this table refers to the file of this name. File names must be in the format described in chapter 3. ptrpfil Pointer into the proper block of the permanent file index (PFI) for this entry relative to the first block of the PFI. PFI = #FFFF for local files. 2 Description Number of times this file has been opened. rep Retention flgs 1 (DFRSTRT) Drop file restartability flag. If 0, this drop file is restartable. If 1, this drop file is not restartable if IP DFRSTRT is 1. 2 (PRODTN) Production file flag. If 0, this file is not a production file. If 1, it is a production file. 3 (PURGONLY) Purge-only flag. Indicates whether the file can be used or not because of PFI or directory of file segmentation (DFS) errors. Set by permanent file verification at autoload time. pe~iod in days. o 1 ostat Output file status (integer): o 1 2 3 4 5 6 7 8-31 osver Normal status. Destination LID disabled. Destination not responding. Destination rejecting file. System interface language (SIL) error occurred during file transfer. Diverted. Hardware path to the logical identifier (LID) not available. System error occurred during file transfer. Reserved by CDC. Version number of the operating system that created the file. value defined as: o 1 2 Figure 2-1. 60459420 H File has not been flagged as purge-only. File has been flagged as purge-only. Binary Release 2.0 or earlier. Release 2.1, 2.1.5, or 2.1.6. Release 2.2 or later. File Index Table Format for Nontape Files (Sheet 2 of 8) 2-3 Field Word 3 4 Description mpn Master project in ASCII, left-justified with blank fill. reserved Reserved for installation. lodlen Drop file length, file is a virtual privileged system the user who gave dorg Date this file was originated, in the format: in blocks, for the execute file; only valid if the code file (type = 2). For a file given to a task, this field contains the binary user number of this file to the privileged system task. Description Subfield Last two digits of the year. Number of days since the beginning of the year (1 through 366). yy ddd apf I Access permission flags: Queue flag: qf o 1 o 1 I Permanent file. Local file. ouser Originating user number. i Duplicate files flag: o 1 No duplicate found. Duplicate found at login. File acquisition method: fg o 1 5 IQM has read the file. IQM has not read the file. Local/permanent flag: lp User created this file. File was given to user. torg System clock time, in seconds after midnight, at which this file was originated. dola Date of last access to this file, in the same format as the dorg field. (To access a file means to open it.) ct Communication type: o 1 2 Figure 2-1. 2-4 1 if this entry is a file extension entry. 1 if this file has an extension entry. Bit 1 Bit 2 Non-RHF file. Non-RHF file. RHF file. File Index Table Format for Nontape Files (Sheet 3 of 8) 60459420 H Word 5 Field type Description File type: o 1 act Number of active I/O connectors for this file. slev Security classification level of this file (1 through 8). xpr If set, indicates that this file is currently being accessed by a privileged utility. dmp Dump flag: o 1 xcI 1 fi The file is a candidate for dumping by a privileged utility. Indicates the file has been dumped by a privileged utility since creation or modification. Exclusive access flag: o File can be shared. File cannot be shared. Task privilege designator: o 1 6 Physical file. Virtual code file. Not a privileged task. Privileged task. tlr System clock time, in seconds since midnight, at which the file was last opened. dolm Date the file was last opened with write access, in the same format as the dorg field. mcat Present file management category: o 1 2 3 4 6 7 9 #A #F Mass storage file. Scratch file. Output file. MODDROP file. Magnetic tape file. System-generated drop file. Batch file. Connected file. Checkpointed output file. Checkpointed input file. ckjdn Checkpoint job descriptor number. belongs to a checkpointed job. att Count of the attaches and privileged opens for private files; the number of opens for public and pool files. Figure 2-1. 60459420 H This field is set when the file File Index Table Format for Nontape Files (Sheet 4 of 8) 2-5 I Word Field Description inactdup Inactive duplicate file. rern Rerun indicator; valid for batch input files only (mcat tolm Time, in seconds since midnight, when this file was last opened with write access. 7 fact Account number of the file, in ASCII, left-justified with blank fill. 8 oacs Owner's access permission for private files and pool boss' access permission for pool files. For public files, oacs is set equal to gacs: I Bit 1-3 4 5 6 7 8 9 7). Access Permitted Reserved (ignored by the system). Execute. Modify. Append. Read. Write. gacs General access permissions. oacs. lbc Last used bit count in the last block to which something was written in the file. Used only for files with osver less than 2. hba Bit address plus 1 of the highest page accessed. with osver less than 2. fidc Numeric value indicating disposition of this file (refer to table 2-1). fiic Numeric value indicating the internal format characteristics of the file (refer to table 2-2). fiec Numeric value indicating the external punch representation characteristics of the file (refer to table 2-2). ficm Numeric value indicating the conversion mode of the file. are: o 1 2 fiot The format of this field is the same as Used only for files 1 2 Figure 2-1. The values Display code (64-character set). Extended display code (128-character set). Binary. Numeric value indicating the origin type of the file. o 2-6 = Values are: Local batch. Remote batch. Interactive. File Index Table Format for Nontape Files (Sheet 5 of 8) 60459420 H Word 9 A B Description Field fitid A seven-character terminal identifier stored as seven 6-bit display code characters. fistid A two-character terminal identifier stored as two 6-bit display code characters. fisid A three-character (ASCII) mainframe identifier indicating the source or destination mainframe. fizip Numeric value indicating the destination processor zip number for this file. The mainframe table associates this zip with a three-character mainframe identifier. finac Access station area code. fidi Job name (eight 6-bit display code characters). slen Length of the file, in blocks. cont = O. saddr Starting sector address on disk for the first segment of the file. Not valid for files with osver = 2 and cont = 1. (For these files, saddr is set to #3FFFF.) pkno Pack number of the disk device on which the first segment of the file is allocated. cont File contiguity flag: o 1 ext 1 1 File is extendable. File is not extendable. File does not span a downed device. File spans a downed device. File overflow flag: o 1 C Segmented file or more than #FFFF blocks. Unsegmented file and less than #10000 blocks. File completeness flag (set when file is attached and promoted to FILEI): o ovfl 2 and File extendability flag (set when file is created or opened): o inc Not used for files with osver File is contained on one device. File spans more than one device. fsto File segment table ordinal; when file is attached and promoted to FILEI, this field contains the ordinal of the first FST entry for the file. flen For files created on VSOS 2.2 or later systems, this field contains the total allocated space for the file in 512-word blocks. Figure 2-1. 60459420 H File Index Table Format for Nontape Files (Sheet 6 of 8) 2-7 I Word Field bilb Description Bits used in last byte: o 1-7 C For files created on a system before VSOS 2.2, this field contains the length in blocks of the first segment. segadrl For files created on a system before VSOS 2.2, this field contains the starting sector disk address for the first segment. sfo File organization: 1 For files created on a VSOS 2.2 or later systems, this field contains the ordinal of the first DFS entry associated with this file. extsize Extension size, in 512-word blocks. This is the last extension size used when the file was extended; or, the user-specified allocation unit value adjusted to the next multiple of DAUs. This value is used to compute the next extension size. seglen2 For files created on a system before VSOS 2.2, this field contains the length, in blocks, of the second segment. segadr2 For files created on a system before VSOS 2.2, this field contains the starting sector disk address for the second segment. bt Blocking type: 1 I I SIL assumes the file was created before SIL was added to the system. Therefore, it enters default values in the SIL fields of the file index entry. C-type blocking. mnr Minimum blocking length; 24-bit length, in number of bytes. seglen3 For files created on a system before VSOS 2.2, this field contains the length, in blocks, of the third segment. segadr3 For files created on a system before VSOS 2.2, this field contains the starting sector disk address for the third segment. fiidn FILEI inn. rt Record type: o 1 2 7 Figure 2-1. 2-8 Sequential. Direct. dfso o E Last byte seglen1 o D All of last byte is used. Only from 1 to 7 bits of the last byte are used. is the NBWth byte. Control word (W). ANSI fixed length (F). Record mark (R). Undefined (U). File Index Table Format for Nontape Files (Sheet 7 of 8) 60459420 H Field Word F Description mxr Maximum record length; 24-bit maximum length, in number of bytes. hbw For files created on a VSOS 2.2 or later systems, this field contains a count of the total number of 8-bit bytes written to the file. seglen4 For files created on a system before VSOS 2.2, this field contains the length, in blocks, of the fourth segment. segadr4 For files created on a system before VSOS 2.2, this field contains the starting sector disk address for the fourth segment. vri Variable rate index (VRI) transferred to the descriptor block to be used for variable rate accounting (VRA). Valid for virtual code files only. Record mark; 8-bit ASCII character (any character is valid). pc Padding character; 8-bit ASCII character (any character is valid). Figure 2-1. 60459420 H File Index Table Format for Nontape Files (Sheet 8 of 8) 2-8.1/2-8.2 I o o 63 00 auser atjdn 12 8 44 name 2 64 ref ptrpfil rep 16 unused 16 16 16 unused 3 4 unused I dorg dola type t 16 6 dolm ouser 4 4 meat 16 torg t 7 P 16 5 64 18 20 2 act tlr unused 18 14 8 unused tolm 4 18 26 7 fact 64 8 ofa oacs 8 reel opo exp 16 8 ova 8 16 8 mfn 9 64 A plb vsn 48 16 B rpb nvsn 16 c tun 8 mpru 4 D fmtp E 16 unused F t 16 Figure 2-2. 60459420 E 16 mnr 24 mxr rt 4 24 4 vri t 32 211 tUnused. fsn 8 4 4 rpo pcvsn ctfp 4 bt t 32 16 8 sfo t 32 pvsn unused 16 I pc rmk 12 8 8 L.::conv tproc File Index Table Format for Tape Files (Sheet 1 of 6) 2-9 Word o Description Field atjdn Job descriptor number to which this file is attached, assigned to the job for the life of the job in the system. auser Owning user number, in binary notation. 1 name File name used to assign the tapes. 2 ptrpfil Pointer into the proper block of the PFI for this entry relative to the first block of the PFI. PFI=#FFFF for local files. ref Number of times this file has been opened. rep Retention period, in days. dorg Date this file was organized, in the format: 4 ddd lp Subfield Description yy ddd Last two digits of the year. Number of days since the beginning of the year (1 through 366). Local/permanent flag: o 1 I 5 Permanent. Local. ouser Originating user number. torg System clock time, in seconds since midnight, at which this file was originated. dola Date of the last access to this file, in the same format as the dorg field. (To access a file means to open it.) type File type: o 2 Physical file. Virtual code file. act Number of active I/O connectors for this file. 1-1 .... s~,...::t~= ~!::;~!~ .... .: _ . - of _ _ _ _ _ _ ...l _ _ ................. ' - , ""'-.L.A. O'-'-Vl.1.UO O~l.I.'-~ ~ _ _ _ ___ ~ ..1 __ , _1 __ lll..LU11..L5l1 .... , • aL Wll.L\,;.11 1..11t:: .L.L.Lt:: Wd.1:; last opened. 6 dolm Date the file was last opened with write access, in the same format as the dorg field. Figure 2-2. 2-10 File Index Table Format for Tape Files (Sheet 2 of 6) 60459420 F Word 6 Field mcat Description Present file management category: o 1 2 3 4 S 6 7 S 9 #A #F Mass storage file. Scratch file. Output file. MODDROP file (formerly known as write-temporary file). Magnetic tape file. User-generated drop file. System-generated drop file. Batch file. Link file. Connected file. Checkpointed output file. Checkpointed input file. tolm Time, in seconds since midnight, when this file was opened with write access. 7 fact Account number of the file in ASCII, left-justified with blank fill. S oacs Owner's access permission for private files and pool boss' access permission for pool files. For public files, oacs is set equal to gacs: I Bl B21 B31 B41 B51 B61 B71 B8 Access Permitted 1-3 4 5 6 7 S Reserved (ignored by the system). Execute. Modify. Append. Read. Write. ofa Original file accessibility character. reel Reel number of the current volume. exp Julian expiration date obtained from the first header (HDR1) label. Figure 2-2. 60459420 'E Bit File Index Table Format for Tape Files (Sheet 3 of 6) 2-11 Word 8 Description Field opo Open processing options: Bit 1 2 3 4-8 Processing Option End-of-processing option. If 0, the system automatically switches volumes. If set, control is returned to the user at end of tape. Unused. User error processing. If 0, tape I/O errors are returned to the operator. If set, control is returned to the user if a tape I/O error occurs. Unused. ova Original volume accessibility character. 9 mfn Multifile set name. A plb Index to the label buffer in a system table. vsn Volume serial number (VSN) for the currently assigned volume. nvsn Number of VSNs assigned to this tape file. rpb Records per block. lun Logical unit number; the ordinal in the tapes table, or is not assigned. pvsn Index to the VSN list in a system table. mpru Maximum length of the physical record unit (PRU). sfo File organization: B C ° D Current file position. fsn File sequence number. fmtp Format parameter. ° 2 Figure 2-2. 2-12 Sequential. ctfp Dl.u\,;~iu~ ° if the unit Refer to the tapes table. cype: SIL assumes the file was created before SIL was added to the system; therefore, it enters default values in the SIL fields of the file index entry. Character type blocking (C) •. File Index Table Format for Tape Files (Sheet 4 of 6) 60459420 E Word Description Field D mnr Minimum record length; 24-bit length in number of bytes. E pcvsn Index to the current place in the VSN list in MFPP. rpo Request processing options: Bit Processing Option 1-10 11 Unused. Error retry parameter. reading the tape: o 1 12 13 1 14 1 15-16 not allowed to read past the end of or the end of tape. allowed to read past the end of or the end of tape. This could cause go off the reel. When the the load When the the load drive. tape is released, the tape is rewound to point and unloaded from the drive. tape is released, the tape is rewound to point, but it is not unloaded from the Unused. Record type: o 1 2 7 Control word (W). ANSI fixed length (F). Record mark (R). Undefined (U). Maximum record length; 24-bit maximum length in number of bytes. Figure 2-2. 60459420 E The user is information The user is information the tape to Tape unload processing option (inhibit unload): o mxr Standard error recovery processing takes place when a hardware read/write error occurs. Error inhibit; all hardware read/write errors are ignored and processing continues. Unused. Read unconditional processing option: 0 rt This field only applies when File Index Table Format for Tape Files (Sheet 5 of 6) 2-13 F Description Field Word lproc Label processing option: o 1 Read labels. Write labels. Data conversion option: conv o There is no data conversion. Convert data. 1 vri Variable rate index transferred to the descriptor block to be used for variable rate accounting. Valid for virtual files only. rmk Record mark; 8-bit ASCII character (any character is valid). pc Padding character; 8-bit ASCII character (any character is valid). Figure 2-2. Table 2-1. Destination Any 2-14 File Index Table Format for Tape Files (Sheet 6 of 6) File Disposition Specifications in the File Index Table Value Disposition Mnemonic 0 None No disposition. 1 SC Scratch. 1110 PU Punch. 1120 PR Any available line printer. 60459420 E Table 2-2. File Characteristic Specifications in the File Index Table Format Type Value Mnemonic Internal characteristics (fiic field in word 9) 0 None Use internal characteristics default (currently PA). 1 PA Eight-bit ASCII. If the fidc field indicates a print file, the file has free-form carriage control. 2 BI Binary. 3 AS Eight-bit ASCII. If the fidc field indicates a print file, the file has ANSI-defined carriage control. 0 None Default 29. 1 29 029 keypunch. 2 26 026 keypunch. 3 80 80-column binary. External characteristics for punch files (fiec field in word 9) 60459420 H I 2-15 MINUS PAGE VSOS recognizes two types of files: virtual files, usually containing executable code, and physical files, always containing nonexecutable data only. A virtual file is prefaced by at least one 512-word block containing program execution and data access information to be used by the operating system. This preface is known as the minus page and is created by the operating system at load time. Physical files do not have minus pages. The minus page of a virtual code file is created at load time to pass information such as the entry point address, the length of the drop file, the code origin, data base locations, and so forth. The operating system needs this information for starting program execution. Once execution begins, the operating system uses the minus page to store the invisible package, time-slicing data, I/O connection blocks to high-speed devices, maps of defined virtual space, time-sharing data, and statistics relating to resource usage. If the program execution terminates abnormally, the minus page is stored on the drop file and can be used for debugging purposes. The original minus page remains on the virtual code file as initialized at load time. In addition, drop files may contain a second minus page (immediately following the first), which is a logical extension of the first minus page. An executing controllee cannot access its minus page except via system messages. A control lee can execute the SIL call Q5GETMPG to copy it's minus page. Otherwise, the minus page is like any other part of a file, and can be accessed explicitly or implicitly. The minus page has the format shown in table 2-3. Individual words are described in the table, with the contents of the invisible package shown in appendix E. The working set pager information buffer in the minus page is used by PAGER to store information about a task's working set. The buffer occupies words #29 through #31. The leftmost 16 bits of word #88 or #136 of the first minus page contains the second minus page pointer. If this field contains a 0 or #FFFF, there is no second minus page. Otherwise, this field contains the physical page address of the second minus page. 2-16 60459420 E Table 2-3. Minus Page Format (Sheet 1 of 2) Words Decimal o- Hexadecimal t o- 39 27 Contents Executing program invisible package. 40 28 Unused. 41 - 49 29 - 31 Working set pager information buffer. 50 - 52 32 - 34 Program restart temporary buffers. 53, 54 35, 36 Time information required by the operating system for alternator and message management. 55, 56 37, 38 Same as words #32 to #34. 57, 58 39, 3A Used by application accounting. 3B Error code saved during abnormal termination control processing. 59 (bits 16 - 23) 3B Device number of the device causing the fatal PAGER I/O error. 59 (bits 24 - 31) 3B Pack number of the device causing fatal PAGER I/O error. 59 (bits 32 - 63) 3B Unused. 60 3C Buffer flushing, ATC process, drop file and reload status information. 61 3D Database address for buffer flushing. 64 - 123 40 - 7B (2 - D9) I/O connectors for user disk or tape files. 124 - 127 7C - 7F If controllee is dynamic, this is the I/O connector for the SHRLIB (#F). 128 - 131 80 - 83 I/O connector for the source file (#10). 132 - 135 84 - 87 I/O connector for the drop file (#11). 59 (bits o- 15) tWords shown in parentheses are second minus page values. 60459420 E 2-17 Table 2-3. Minus Page Format (Sheet 2 of 2) Words o- 88 Second minus page pointer. 136 (bits 16 - 23) 88 Reserved. 136 (bits 24 -31) 88 Unused. 136 (bits 32 - 63) 88 Directory for bound explicit map entries. 89 Unused. 89 Directory for bound implicit map entries. 8A Third minus page pointer.tt 138 (bits 16 - 27) 8A Unused. 138 (bits 28 - 63) 8A Directory for drop file map entries. 139 8B System error code. 140 - 150 8C - 96 Time usage and accounting entries. 151 - 152 97 - 98 Q5TERM information for buffer flushing. 153 99 Drop file size. 154 - 156 9A - 9C Unused. 157 - 159 9D - 9F Reserved for installation. 160 - 175 AO - AF (DA - 10F) I/O). BO - FF (110 - IFF) I/O). 100 - IFF Drop file map. 136 (bits 137 (bits o- 15) 31) 137 (bits 32 - 63) 138 (bits I Contents Hexadecimalt Decimal 176 - 255 256 - 511 o- 15) Bound explicit maps (of file opened for explicit Bound implicit maps (of file opened for implicit tWords shown in parentheses are second minus page values. ttThe format of the third minus page is: Word 0 to 340 contains drop file map full-word entries. Word 341 to 511 contains drop file map half-word entriP~a 2-18 60459420 H I/O CONNECTORS Words #40 through #87 of the first minus page contain the first 18 I/O connectors. Words #2 through #D9 of the second minus page contain the remaining 54 I/O connectors. An I/O connector (laC) is a four-word block used to establish a link between the program and an I/O device. The operating system also uses I/O connectors to keep track of the activity of a specific file and a program's use of that file. Each time a program issues an OPEN FILE request, an I/O connector is created and initialized by the system with information provided in the request and in the file index table. Each program can have up to 70 connectors for user files, numbered 0 through #F and IH2 through #47. The I/O connector for the program's source file is numbered #10, and the I/O connector for the program's drop file is #11. The I/O connector for the system shared library file, if used, is #OF. I/O connectors numbered 0 through #F and #12 through #47 can be allocated by the user or automatically allocated by the system. Formats of the I/O connectors are illustrated in figures 2-3, 2-4, and 2-5. The connector for a mass storage file opened for explicit input and output is shown in figure 2-3; the connector for a mass storage file opened for implicit input and output is shown in figure 2-4. The connector for a tape file is shown in figure 2-5. In figure 2-4, when the name field contains a drop file name, the fourth word of the I/O connector serves the same purpose as the second word of a bound implicit map entry for a source file. o 63 o name 64 en m 1m e a ~ t t 4e 2 hpa 2 mfs fsto 2 16 24 errno 3 pbe t g~ t AS C:O Et 20 2tf 11 wda 24 8 aes 3 1111 11 unused r wn 0 I 5 v 2 I 1 15 bien 48 16 tUnused. A pattrn B gap C fault o Igpg E extf Word Field Description o name Name of the file in ASCII. File names must be in the format described in chapter 3, File Concepts. 1 mcat File management category: °1 2 3 4 5 6 7 Figure 2-3. 60459420 G Mass storage file. Scratch file. Output file. MODDROP file (formerly known as write-temporary file). Magnetic tape file. User-generated drop file. System-generated drop file. Batch file. Format of I/O Connector for a Mass Storage File Opened for Explicit I/O (Sheet 1 of 3) 2-19 Word Field mode Description Mode of input/output: o Open for explicit I/O. Open for implicit I/O. 1 hpa Page address of the highest page accessed. pbc Page byte count; number of bytes written to user's dayfile. cont Contiguous flag. noext No extension flag. acs File access permissions. This 5-bit field is treated as five I-bit fields with each bit specifying the associated permission: Bit x m a r w priv 8 4 2 1 Execute access permitted. Modify access permitted. Append access permitted. Read access permitted. Write access permitted. Regular open. Privileg~d open. File ownership (refer to File Concepts, chapter 3). o The values are: Private. Public. Pool. 1 2 fsto File segment table ordinal. mfs Minimum file size to which this file needs to be extended. XIOCALL when the extf flag is set. pattrn Set if need to faul t in the unused portion of the I/O buffer for patterning. gap Set if GAP patterning needs to be done. fault Flag bit. complete. 19p9 Large page flag bit. I arge pages. Figure 2-3. 2-20 Description Privileged open designator: 1 2 Set if file is not extendable. Hex. Value 10 o own Set if file is contiguous. Set by Set if Fc=lIf500 call will be reissued after PAGER I/O is Set only if the file is to be extended with Format of I/O Connector for a Mass Storage File Opened for Explicit I/O (Sheet 2 of 3) 60459420 F Word 2 3 Description Field extf Extend flag bit. ptr For a privileged open file, the owner's user table (UT) entry or the pool list table (PLIST) entry number. errno Error number returned from EXTENDF call. blen Length of I/O buffer. Figure 2-3. 60459420 G Set if the file needs to be extended. Format of I/O Connector for a Mass Storage File Opened for Explicit I/O (Sheet 3 of 3) 2-20.1/2-20.2 I o 63 o name m m c 0 a d t t4 e2 2 2 hpa 64 c n p 0 0 r w t e acs i n 5 v1 2 20 2 t1 f1 g pbc 24 fsto t mfs 16 24 1 e 69 l gx t 15 11 3 unused 13 31 con 3 len DROP Ifa 24 24 unused I ptr 1 vba FILES NONDROP FILES tUnused. Word Field Description 0 name Name of the file, in ASCII. File names must be in the format described in File Concepts (chapter 3). 1 mcat File management category: o 1 2 3 4 5 6 7 mode Mass storage file. Scratch file. Output file. MODDROP file (formerly known as write-temporary file). Magnetic tape file. User-generated drop file. System-generated drop file. Batch file. Mode of input/output: o 1 Open for explicit I/O. Open for implicit I/O. hpa Page address of the highest page accessed. pbc Page byte count; number of bytes written to user's dayfile. cont Contiguous flag. noext No extension flag. acs File access permissions. This 5-bit field is treated as five I-bit fields with each bit specifying the associated permission: Figure 2-4. 60459420 G Set if file is contiguous. Set if file is not extendable. Bit Hex. Value Description 1 2 10 3 4 4 2 5 1 Execute access permitted. Modify access permitted. Append access permitted. Read access permitted. Write access permitted. 8 Format of I/O Connector for a Mass Storage File Opened for Implicit I/O (Sheet I of 2) 2-21 Word 1 Description Field priv Privileged open designator: o Regular open. Privileged open. 1 own File ownership (refer to File Concepts, chapter 3). o Private. Public. Pool. 1 2 2 I 3 The values are: fsto File segment table ordinal. mfs Minimum file size to which this file needs to be extended. is set by PAGER when the extf flag is set. 19p9 Large page flag bit; set only if the file is to be extended with large pages. extf Set to 1 by the operating system if the file needs to be extended. ptr For a privileged open file, the owner's user table (UT) entry or the pool list table (PLIST) entry number. con For a drop file, a control field with the following format: This field (drop files) cl Subfield cl=l c2=1 c3=0 c3=1 c2 c3 Description Write access is permitted. Read access is permitted. File is contained on small pages. File is contained on large pages. Otherwise, this field is O. 3 (nondrop files) len For a drop file, the length of the file, in blocks. field is O. lfa For a drop file, the logical mass storage sector address of this file's first page. Otherwise, this field is O. vba Virtual block address of the start of the file. not mapped in from the start of the file. Figure 2-4. 2-22 Otherwise, this Zero if the file is Format of I/O Connector for a Mass Storage File Opened for Implicit I/O (Sheet 2 of 2) 60459420 G o flags 63 o name 64 m 0 meat 4 d t e 2 2 t 2 2 leall Isfne 25 4 nor opo 2 m e t aes lun 8 8 5 3 teall 8 8 48 mpru 3 fmtp 32 32 t Unused. Word Field Description o name Name of the file in ASCII. File names must be in the format described in File Concepts, Chapter 3. 1 mcat File management category: o 1 2 3 4 5 6 7 mode Mass storage file. Scratch file. Output file. MODDROP file (formerly known as write-temporary file). Magnetic tape file. User-generated drop file. System-generated drop file. Batch file. Mode of input and output: o 1 Open for explicit I/O. Open for implicit I/O. mc Reserved. flags Status flags: errb Figure 2-5. 60459420 E wvsb Bit Name 1 2 errb wvsb 3 4 syop wrb syop wrb Description An error was returned for at least one call. Set by RESIDENT if all I/O has completed, but virtual system completion routine has not run. Set if the system is processing OPEN. Set if a write was issued for this file. Format of I/O Connector for a Tape File (Sheet 1 of 2) 2-23 Word Description Field lcall Physical word address of the last outstanding request. lsfnc Last subfunction issued for this tape file. lun Logical unit number. acs Access permission: 1 2 3 2 3 This field contains the tapes table ordinal. Write access only is permitted. Read access only is permitted. Read and write access are permitted. opo Open processing options. nor Number of outstanding requests. tcall Virtual bit address of the first outstanding request or top call. mpru Maximum PRU size. fmtp Format parameters as defined in the TAPE MANAGEMENT system message. Figure 2-5. Refer to the OPEN FILE system message. Format of I/O Connector for a Tape File (Sheet 2 of 2) 60459420 E MAP DIRECTORIES Words #88 through #8A of the first minus page contain map directories. Each map directory contains information relating to the location and length of its associated file map. Each directory occupies the second half-word of its location in the minus page. For the first minus page, the bound explicit map directory is at word #88; the bound implicit map directory is at word #89: and the drop file map directory is at word #8A. Each directory is formatted as shown in figure 2-6. For the second minus page, the bound explicit map directory is at word 0, and the bound implicit map directory is at word 1. o 63 non map directory information 28 Figure 2-6. 60459420 G count of entries 12 pointer to first entry of this type of map 24 Map Directory Format 2-25 I MINUS PAGE FilE MAPS The file maps in the minus pages associate files with physical mass storage areas. For files opened for implicit I/O, the maps associate physical mass storage areas with virtual address areas. Each time a program opens a file for explicit I/O, one entry is made in a bound explicit map. The MAP message (f=#0004) places entries in a bound implicit map. Bound Explicit Maps I Words #AO through #AF of the first minus page and #DA through #lOF in the second minus page contain bound explicit maps. These maps are related to files opened for explicit I/O (mode=O). Each file that has been opened for explicit I/O corresponds to one map entry; the files are identified by their I/O connector numbers. The format of the bound explicit map entry is shown in figure 2-6.1. 63 0 unused 01 ~ 0 13hl Ifa len 2.1 Field .. con 241 Description Flag bits, in the following format: c1 c2 c3 Subfield Description c1=1 c2=1 c3=O c3=l Write access is permitted. Read access is permitted. File consists of small blocks. File consists of large blocks. Otherwise, the field is O. len Length of the file, in blocks. lfa Logical file address of the first block of this segment of virtual space. Figure 2-6.1. 2-26 Bound Explicit Map Entry Format 60459420 G Bound Implicit Maps Words #BO through #FF of the first minus page and #110 through #lFF in the second minus page contain bound implicit maps. These maps are related to files opened for implicit I/O (mode=l); such files can consist of discontinuous virtual address ranges. Up to 160 virtual address space segments can be mapped simultaneously. All the segments can be associated with one I/O connector, or each segment can be so associated. The format of a bound implicit map entry is shown in figure 2-7. In bound implicit map entries, all first words are in the first half of the map space, and all second words are in the second half. Entries are sorted by ascending virtual page address; blank entries are squeezed out. Observe that both minus pages have a first half of the map space so that no map entry is split between the two minus pages. o 63 ioe fsto 16 vpa unused 8 33 7 n 0 2 unused P con s 12 1 Word 2 Ifa len 3 24 Field 24 Description fsto File segment table ordinal. ioc I/O connector number associated with this segment. vpa Virtual page address of the first block of this segment. nops Flag bit indicating there is not yet physical space associated with this map entry. con Flag bits in the following format: e1 Subfield C1=1 C2=1 C3=1 e2 e3 Description Write access permitted. Read access permitted. File consists of large pages. len Length of this segment in blocks. lfa Logical file address of the first block of this segment. Figure 2-7. 60459420 E Bound Implicit Map Entry Format 2-27 DROP FILE MAP I I I I Half of the first minus page and the whole third minus case of a free-space attachment to a file, the defined file on which it can reside if it becomes necessary to attachments are cataloged in the drop file map in much virtual space are cataloged in the bound implicit map. page are space is swap the the same a drop file map. In the allocated a part of the drop attachment out. Free-space way that other kinds of Each drop file map entry consists of one full word and one half word. Up to 511 entries can be made in the drop file map, and each entry can have up to 32 associated pages. This allows for up to 511 noncontiguous address spaces to be part of the drop file. The first and third minus page have 170 and 341 full word map entries respectively. The format of these entries is shown in figure 2-8. The 170 half-word entries that follow the full-word entries correspond as shown in figure 2-9. Each half-word entry consists of 32 bits, 1 bit per page. If the bit is 0, the page is either undefined or exists in main memory or on the paging device; if the bit is 1, the page has been written to mass storage on the drop file. Bit 0 or 32 corresponds to page 1 of a segment; bit 31 or 63 corresponds to page 32 of a segment. 0 I Word 0 Ifa length I vpa 13 Field Description lfa Logical file address of the first block of this segment of virtual space. pgsz Size of the pages in this segment of virtual space: o 1 Small pages. Large pages. length Length of this segment of virtual space in blocks. vpa Virtual block address of the first page in this segment of virtual space. Figure 2-8. 2-28 63 Drop File Map Full-Word Entry Format 60459420 G o 63 32 1 32 3 2 32 4 32 5 32 6 32 32 , ~ ? ';J 107 32 109 Figure 2-9. 60459420 E 32 108 10A 32 32 Drop File Map Half-Word Entry Format 2-29 TAPES TABLE I The tapes table holds pertinent information about the tape units and the volumes which are in use on them. There is one entry per unit. The tapes table entry is returned to the user in the TAPE FUNCTION system message after the completion of a request. The tapes table entry is also returned to the user in the OPEN, CLOSE, and TAPE SWITCH VOLUME system messages if the user supplied a buffer. Refer to chapter 4 for more detailed information on use of this table. The format of the tapes table is shown in figure 2-10. o 63 t I uato pzip 2 t 8 4 db bzip 8 8 16 8 tad2 tad1 8 jdt rpo ioe 4 8 8 3 pu 4 Ibsn 8 8 stun cflgs dev 12 8 8 Ifn 64 4 fsn sn 16 fwe pepr fre 8 16 8 8 wer 4 rer 4 time 5 64 6 reel vsn 16 48 bid1 7 bid2 16 8 bid5 9 fe abc etfp trre 16 c elflg 16 cbc 24 8 stce 16 pruct 8 bid12 16 24 twre 16 bid11 16 8 8 bid8 16 bid10 16 A bid7 16 bid9 16 16 bid6 16 bid4 bid3 16 dtee 16 tflgs 24 16 16 r eml denl t d t y 4 4 3 b 4 tUnused. Word I 1 Field Description uato User activity table ordinal. db Descriptor block number; nonzero if opened. ioc Input/output connector. Figure 2-10. 2-30 Tapes Table Format (Sheet 1 of 5) 60459420 F Word Field rpo 1 Description Request processing options: Bit 32-41 42 Description Unused. Error retry parameter. reading the tape: o 1 Unused. 44 Read unconditional processing option: 1 45 when The user is information The user is information the tape to not allowed to read past the end of or the end of tape. allowed to read past the end of or the end of tape. This could cause go off the reel. Tape unload processing option (inhibit unload): o 1 46-47 a~plies Standard error recovery processing takes place when a hardware read/write error occurs. Error inhibit; all hardware read/write errors are ignored and processing continues. 43 o 2 This field only When load When load the tape is released, it is rewound to the point and unloaded from the drive. the tape is released, it is rewound to the point, but it is not unloaded from the drive. Unused. jdt Job descriptor table ordinal. lbsn Last boat sequence number; each boat is assigned a sequence number. lbsn is the sequence number for the last request on this unit. pzip Primary zip for this unit. bzip Backup zip for this unit. tad1 First tape access driver NAD number. tad2 Second tape access driver NAD number; 0 if single access. pu Physical unit (0 through #F). dev Device unit number (#100 through #iFF). Figure 2-10. 60459420 E Tapes Table Format (Sheet 2 of 5) 2-31 Word 2 Description Field cflgs Central flags: Bit Name Description 48 PDWNB BDWNB TIDB T2DB Status of primary inboard NAD. Status of backup inboardNAD. Status of tape access NAD 1. Status of tape access NAD 2. Unused. Single access bit. Unused. 49-50 51 52 53-54 55 56 stun SACB Status of the unit: Bit Name Description 56 57-59 60-62 61 62 63 RERB STRES ASNB ROB OWNB OFFB Resident detected error. Free. Assign bit. Read-only bit. Down bit. Off bit. 3 lfn Logical file name; set if unit is assigned. 4 fsn Current file sequence number for an ANSI labeled tape; 0 for unlabeled/nonstandard tape. sn Current file chapter number for an ANSI labeled tape; 0 for unlabeled/nonstandard tape. fwe Fatal write errors. fre Fatal read errors. pepr Positioning errors per reel. wcr Number of consecutive reels in which write recoverable errors exceeded the threshold. rcr Number of consecutive reels in which read recoverable errors exceed the threshold. 5 time Length of time the unit was assigned, in microseconds. 6 reel Reel number of the current volume. vsn Volume serial number of the currently assigned reel. bidl through bid12 The block identifier of the eleventh through the last good PRU on tape. 7, 8, 9 Figure 2-10. 2-32 Tapes Table Format (Sheet 3 of 5) 60459420 E Field Word A fc Description Failure code. This field is set when a unit exceeds an error threshold or because the unit got a nonfatal or fatal marginal drive indicator (MDI). The system automatically degrades unit status at unload time if fc is set. fc is cleared when the unit is brought up: 1 2 3 4 Nonfatal MDI (degraded to read only). Erase/write errors exceeded the threshold on consecutive reels (degraded to read only). Write threshold and consecutive reel count are installation parameters. Erase/read errors exceeded the threshold on consecutive reels (degraded to down). Read threshold and consecutive reel count are installation parameters. Positioning errors exceed the threshold on one reel (degraded to down). Positioning threshold is an installation parameter. abc Absolute physical record unit (PRU) count including tape marks from the beginning of the volume. abc is a count of the number of interblock gaps encountered on the tape. If abc=O, the tape is at load point. ctfp Current tape file position flags. If ctfp=O, the tape is positioned in the middle of a logical record unit (LRU). The only legitimate combination of bits is end of group (EOG) and end of information (EOI). Bit Tape File Position B1-B4 Unused. Beginning of information. End of LRU. End of group. End of information. B5 B6 B7 B8 cbc Current PRU count from the beginning of information. does not include label PRUs if the tape is labeled. twre Total accumulation of recoverable write errors in the use of this volume. This count is put in the dayfile at unload time and cleared at the next reel mount time. trre Total accumulation of recoverable read errors in the user of this volume. This count is put in the dayfile at unload time and cleared at the next reel mount time. stce Total accumulation of single-track, hardware-corrected errors. This count is put in the dayfile at unload time and cleared at the next reel mount time. dtce Total accumulation of double-track, hardware-corrected errors. This count is put in the dayfile at unload time and cleared at the next reel mount time. B Figure 2-10. 60459420 E This PRU count Tapes Table Format (Sheet 4 of 5) 2-33 Word C Description Field elflg Error log flags. pruct PRU count. tflgs Tape flags. cml Conversion code for the label: o 1 2 denl Density of the label: 1 2 rdyb Unknown. ASCII. EBCDIC. 6250 bpi. 1600 bpi. Ready bit. This field is set/cleared by the scan when the tape is ready/not ready. Figure 2-10. 2-34 Tapes Table Format (Sheet 5 of 5) 60459420 E FILE CONCEPTS 3 The file concepts used in VSOS are described in volume 1 of this reference manual. This chapter describes additional file specifications used in the system messages described in chapt.er 5. FILE NAMES A file has only one name associated with it; it is both its permanent file name and its logical file name. The file name can be one to eight letters and digits long, and must be left-justified and blank-filled within the field. User-created file names cannot contain special characters and must begin with a letter. System-created file names can contain any character; system-created drop files must begin with one digit. The conventions used for naming drop files are described in volume 1 of this reference manual. FILE OWNERSHIP Privileged users have ownership rights over all files except local files. A nonprivileged user has ownership rights determined by the values in file index table fields as shown in table 3-1. The file index table is described in chapter 2. The GIVE FILE system message can change file ownership. The file owner specifies the file attributes. To permanently change file attributes, the appropriate fields in the ,file index table must be changed (refer to the CHANGE FILE ATTRIBUTES system message in chapter 5). The three file ownership categories are private, pool, and public. Each private file cataloged in the file index table belongs to a particular user number and account identifier. When a private file is given by one user to another, the user number associated with the file changes immediately. However, the account identifier does not change until the new owner references the file. The system accounting tables indicate the total amount of time that the original account owned the file. Calls to the POOL FILE MANAGER system message perform the same functions as the pool file utilities and SIL calls described in volume 1. The GIVE FILE system message can give files to a pool; the DESTROY FILE system message can destroy pool files. Public files are owned by user number 000000, signifying system ownership. The list of public files is controlled by the installation administrator or by privileged tasks. 60459420 F 3-1 Table 3-1. File Category File Index Table Fields that Affect File Ownership File Index Table Field Nonprivileged User Privileged User Public buser = 0 All users All users Pool POOLNAME = poolname Pool boss Users according to pool access list of user numbers Private gacs = 0 and no access directory Originating usert Originating usert gacs :/: 0 Originating usert All users Access directory exists Originatingusert Users in access directory and originating user tOriginating user number determined by the user field of the file index table. FILE ACCESS File access is controlled by the file ownership category, file access permission fields, and security level in the file index table entry. All file references require the task to be at an equal or higher security level than the file which the user is trying to access. Assuming this requirement is met, all users can access public files; users given access to a pool can access files in the pool; the file owner can access private files. The file owner can also give other users access to a private file. Privileged users can access any permanent file on the system, regardless of the access permissions. Read, write, append, modify, and execute access are controlled by the permission parameter, which is set either when the file is created or by subsequent permission calls. A file with write access can be written into by a user program or by the operating system. An attempt to write into a read-only file produces a fatal error. The only exception is that the OPEN FILE message (f=#0003) can be used to indicate that during subsequent execution in the task, pages of read-only files can be mapped with MODDROP (write-temporary) access. When the user opens a file, he requests read, write, modify, execute, or modify access. The system checks if the requested access is allowed for the file by checking the appropriate access permissions. For example, if write permission has not been specified for the file, write access cannot be granted to the file. If no access is explicitly requested, the default access is as many permissions of read and/or execute as the user is granted. Each private file access defaults to wait for a file, if it is already attached in such a way that file access cannot be shared. PRODUCTION FILES A site may use additional security measures which include designating executable files as production or nonproduction files and users as production or nonproduction users. Production users can only execute production files. Refer to the Installation Handbook for further discussion. 3-2 60459420 H FILE MANAGEMENT CATEGORIES The management category field in the file index is a combination of device type~ disposition information~ and file origin information. This file index table entry determines the system management of the file. The possible category designations are: • • • • • • • Mass storage file Scratch file Output file Drop file MODDROP file File connected to a terminal Tape file I MASS STORAGE FILES The originating user controls the creation and disposition of mass storage files. VSOS protects mass storage files from access or destruction by other nonprivileged users. SCRATCH FILES Only a task can create scratch files. Scratch files exist during the originating task's activity. When the task terminates normally~ all scratch files are automatically destroyed. When the operating system terminates the task and saves its drop file~ scratch files are saved. A CLOSE FILE system message specifying a scratch file destroys the file. All scratch files have read and write access. Scratch files are a subset of local files. Local files exist for the duration of the user job; scratch files exist only for the duration of the task. Scratch files can be created only on mass storage. 6045Y4:l0 F 3-3 I OUTPUT FILES Output files contain information suitable for processing by an output device, such as a printer, card punch, or microfilm device. Only a user task or utility can create an output file. When one of the following occurs for batch jobs, VSOS gives all output files with valid disposition codes to privileged system tasks for output processing. • The task terminates normally. • The task issues a CLOSE FILE (f=#0005) message. • The task issues a TERMINATE (f=#0006) message. After output files are processed, they are destroyed. DROP FILES VSOS creates a drop file for each task called into execution. If a local file already exists which has the same name as the target file name, the system destroys the existing local file and creates a new drop file. The executing task is called the source file. Its drop file contains modified pages of the source file, free space, and write-temporary files. Modified pages for other files are written directly to the re$pective file. Drop files may exist on mass storage or tape, but must exist on mass storage when used in the execution of a controllee. Volume 1 gives further description of drop files and their naming conventions. MODDROP (WRITE-TEMPORARY) FILES A MODDROP file is a read-only file that has been modified while paged in to central memory. The modified pages cannot be paged back to the read-only file, and so are paged to the drop file. Subsequent references to those pages access the modified version from the drop file. To reference the original read-only version, the modified pages must be removed from the drop file. Only files being used implicitly can be MODDROP files. This form of access is selected when the file is opened. FILES CONNECTED TO A TERMINAL Files connected to a terminal are useful for small amounts of interactively entered I/Os. The task may create, open, and destroy such files through virtual system calls, but must perform using SIL subroutines. These files may be used only by a level-2 or lower controllee execution. TAPE FILES I A tape file is a file that has been stored on tape rather than in mass storage. The system treats tape files as a separate file management category. (Refer to chapter 4, Tape Management. ) 3-4 60459420 F FILE I/O As described in volume 1, VSOS performs two types of input/output, implicit and explicit. The type of input/output is specified in the OPEN call. The type of I/O that may be done to a file is dependent on the device type. The EXPLICIT I/O (f=#F500) and TAPE FUNCTION (f=#F406) system messages perform explicit I/O. With a single system request, these messages can transfer one or more blocks between the specified buffer and a storage device. The system locks down the buffer in memory while the peripheral request is active; it cannot be paged out while I/O is going on. More system action is required to prepare for explicit than for implicit I/O. The mass storage EXPLICIT I/O message (f=#F500), a single I/O request, may transfer up to 24 small or large pages. The TAPE FUNCTION message (f=#F406) performs explicit tape I/O. The buffer cannot span more than 48 small or large pages. Small and large pages cannot both exist in the buffer at the same time. Implicit I/O is performed only with mass storage files. With implicit I/O, information transfers directly between a storage device and its current location in central memory. The transfer occurs when the user causes an access interrupt by referencing a page of data or code not in memory. If the virtual page has been previously associated with physical space via the MAP function, the system transfers the data between memory and the physical device. If a virtual-to-physical relationship has not been previously established, the system defines the virtual page in free space so that it becomes an extension of program space. Files connected to terminals do not use explicit or implicit I/O messages. This type of I/O is a SIL feature. SIL translates Q5GETN and Q5PUTN calls into Q5GETMCR and Q5SNDMCR calls and uses the message processing facilities in the system. VSOS recognizes two types of file addressing, physical and virtual. PHYSICAL FILES A physical file is accessed by physical addresses. It is, by definition, a data file. It cannot be executed. File I/O can be implicit or explicit. A physical file never has a minus page. VIRTUAL FILES A virtual code file is a controllee file produced by the LOAD utility. its minus page. 60459420 F Its first block is 3-5 I I 4 TAPE MANAGEMENT TAPE ASSIGNMENT Whenever a tape is mounted, the system checks for labels. If the tape is labeled, the system records the VSN from the VOLl label in the system tapes table. If a requested VSN matches a VSN in the tapes table, the system automatically assigns the tape to the requesting job. If there is no match, the system suspends the job until the tape with the requested VSN is mounted. If a tape is unlabeled, the operator must type in a VSN for the tape. If the job did not specify a VSN when it requested the tape file, the sytem requests that the operator specify a VSN for the job. When the job and the tape unit have a matching VSN, the tape unit is assigned to the job. Observe that assignment of a NOS tape can occur only if the VSN is six characters long. RECOVERY VSOS handles tape recovery for the physical record unit (PRU) and for user errors in the following manner. PRU RECOVERY The system PRU recovery of bad reads and writes of tapes is done at the driver level. The advanced tape system (ATS) features such as controlled backspace, selectable clipping levels, and block ID identification are employed. For group-encoded (GCR) tapes, single-track write correction and dual-track read correction are used (single-track write correction can be disabled by the user). A block ID is a hardware-generated identifier for use in positive positioning of tape during error recovery. There is 1 identifier per PRU and the last 12 identifiers are kept in the tapes table. The absolute block count is the count of PRUs, including tape marks since load point. The current block count is the count of PRUs since the previous label group. The block IDs and block counts are kept current on a volume-by-volume basis and are cleared on a rewind or unload. The block IDs are discarded one PRU at a time for a backspace. USER ERROR RECOVERY If the user selects user error processing (UEP) at open time, the system returns control to the user after a tape I/O error (#100 through #1FF) or tape subsystem error (#200 through #2FF) occurs. Observe that PRU recovery at the driver level has not been able to recover this error. The user can choose to skip the failing data. 60459420 E 4-1 SYSTEM LABEL PROCESSING VSOS processes both nonstandard and ANSI standard labeled tapes. NONST.ANDARD LABELS The system permits the user to process nonstandard labels if the installation parameter IP TPNSL equals 1. The user must request the tape with a label type of nonstandard. Then it is possible for the user to supply labels in the OPEN FILE system message. A nonstandard label consists of 80-character PRUs delimited by tape marks as in ANSI standard label. The only difference in system processing of standard/nonstandard labels is the system omits any verification of fields for nonstandard labels. Also, the system does not position to nonstandard labels. The system does not inhibit ANSI standard labels from being processed as nonstandard if the installation parameter IP TPNSL equals 1. ANSI LABELS ANSI labels conform to the American National Standard Magnetic Tape Labels for Information Interchange X3.27-1978. VSOS processes labels characters of an ANSI number within a label and whether or not it at level 2. All labels are 80 characters long. The first three label identify the label type. The fourth character indicates a type. Table 4-1 shows a summary of each label type, name, function, is required. Required Labels The VOL1, HDR1, and EOF1 labels are required on all ANSI-labeled tapes. In addition, an EOV1 label is required if the physical end-of~tape reflector is encountered before an EOF1 label is written or if a multifile set is continued on another volume. In the descriptions of the contents of these labels, n is any numeric digit and a is any letter, digit, or any of the special characters of the center four columns of the code table in ANSI X3.4-1977 except position 5/15. Refer to appendix A for this code table. Some fields are optional. An optional field which does not contain the designated information must contain blanks. Fields which are not described as optional are required and written as specified. All n-type fields are right-justified and zero-filled, and a-type fields are left-justified and blank-filled. For reading labels, nonzero fields in the user HDR1 label buffer are compared with .the tape HDR1 label until a match occurs. For writing labels, the fields in the user label buffer are verified for a-type or n-type as required; however, only the file sequence number field in the label buffer is used to position to the tape HDR1 label. 4-2 60459420 E Table 4-1. Label Identifier Number VOL 1 UVL Tape Label Format Label Group Name Beginning-of-volume or beginning-of-file chapter Required/ Optional Volume header Required 1-9 User volumes Optional HDR 1 File header Required HDR 2-9 File header Optional User header Optional Beginning-of-file Required Beginning-of-file Optional User header Optional End-of-file Required UHL HDR 1 HDR 2-9 Beginning-of-file UHL t Label Set Name EOF 1 End-of-file EOF 2-9 End-of-file Optional UTL t User trailer Optional EOV 1 End-of-volume Required when a file crosses tape volume EOV 2-9 End-of-volume Optional UTL t User trailer Optional End-of-file chapter An a-type character defined in the Required Labels section. 60459420 E 4-3 Volume Header Label (VOL1) The volume header label must be the first label on a labeled tape. All reels begin with a VOLl label. The user can use the existing VOLl label or write a new VOLl label. In either case, the volume accessibility character in the tape VOLl label must match the original volume accessibility (ova) in the TAPE MANAGEMENT Beta. If the user is writing a new VOLl label, UVL labels can also be written. The system processes the following fields in the VOLl label. • Label identifier • Label number • Volume identifier • Accessibility • Label-standard version The format of the volume header label is shown in figure 4-1. 4-4 60459420 E o 63 1 VOL vsn 24 reserved va vsn 2 32 8 16 40 8 reserved 3 64 reserved 4 64 owner identifier reserved 5 24 40 owner identifier 6 64 owner identifier 7 reserved 40 24 8 reserved 9 reserved 64 64 10 Isv reserved 56 Word 1-2 2 5-7 10 Field 8 Description vsn Volume serial number assigned by the owner to identify this physical reel of tape. .va Accessibility. An a-type character which indicates the restrictions, if any, on who may have access to the information on the tape. A blank means unlimited access. owner identifier Any a-type characters identifying the owner of the physical volume. lsv Label-standard version: 3 blank Labels ·and data formats on this volume conform to the requirements of the ANSI X3.27-1978 standard. Labels and data formats on this volume require the agreement of the interchange parties. Figure 4-1. 60459420 E VOL1 Format 4-5 First File Header Label (HDRl) The first file header label must appear before each file. When a file is continued on more than one volume, the file header is repeated after the volume header label on each new volume for that file. If two or more files are grouped in a multifile set, each HDRI label indicates the relative position of its associated file within the multifile set. If writing labels, the system first positions the tape using only the file sequence number. If the file sequence number is 0, it defaults to the current tape file sequence number plus one (next file). In order to extend a multifile set, the file sequence number must be set to 9999. For this case, the system positions the tape after the last file in the multifile set and sets the file sequence number to the last member sequence number plus one. The system processes the following fields in the HDRI label. • Label identifier • • • • • Label number • File identifier File set identifier File chapter number Expiration date Accessibility The format of the first file header label is shown in figure 4-2. 4-6 60459420 E o 63 HDR file identifier 1 24 32 8 file identifier 64 2 file identifier set identifier 24 40 3 fsn file section number set identifier fsn grn generation number 24 5 32 grn 6 8 32 24 4 8 unused creation date 48 8 expiration date block count fa 40 7 block count 8 16 system code 32 32 8 8 system code 64 9 system code 10 Word reserved 56 8 Field Description 1-3 file identifier Up to 17 a-type characters used to identify the file. 3-4 set identifier Up to six a-type characters used to identify the file set. To conform to the ANSI tape standard, this value is the same for all files of a multifile set. file section number Four n-type characters identifying the file section number. The file section number of the first HDR1 label of a file is 0001. If the file extends to more than one volume, this number is incremented by one for each subsequent volume. fsn File of a 0002 this 4 4-5 sequence number. Four n-type characters to specify the position file within a file set. This value is 0001 for the first file, for the second, and so on. In all the labels for a given file, field contains the same number. Figure 4-2. 60459420 E HDR1 Format (Sheet 1 of 2) 4-7 Word Description Field generation number Four n-type characters specifying the generation number of a file. This value is 0001 for the first generation of a file, 0002 for the second, and so on. grn Generation version number. Two n-type characters used to distinguish successive iterations of the same generation. The generation version number of the first attempt to create a file is 00. This field is not checked for privilege jobs. 6 creation date Date the file was created; it is recorded as a space followed by two n-type characters for the year followed by three n-type characters for the day within the year. 7 expiration date The file is considered expired when today's date is the same as or later than the date given in this field. When this condition is satisfied, the remainder of the volume may be overwritten. Thus, to be effective on multifile volumes, the expiration date of a file must be earlier than or the same as the expiration date of all preceding files on the volume. The expiration date is written in the same format as the creation date. fa File accessibility. An a-type character which indicates the restriction, if any, on who may have access to the information in this file. A blank means unlimited access. An A means the owner identification field in the VOL1 label must contain the owner's user number. If any other character, all future accesses to the tape must specify this character as the fa. 7-8 block count This field must be zero-filled. 8-10 system code Thirteen a-type characters identifying the operating system that recorded this file. The tape is considered to have been written under VSOS if the first 10 characters match the default. 5 5-6 Figure 4-2. 4-8 HDR1 Format (Sheet 2 of 2) 60459420 E First End-of-File Label (EOFl) The end-of-file label is the last block of every file. It is the system end of information for the file. A single tape mark precedes EOFI. A double tape mark written after the EOFI label marks the end of a multifile set. When writing labels, the system uses the fields from the HDRI label to write the corresponding fields in the EOFI label. The system processes the following fields in the EOFI label. • Label identifier • Label number .' Block count The format for the first end-of-file label is shown in figure 4-3. 60459420 E 4-9 o 63 file identifier 1 EOF 24 32 8 file identifier 64 2 fi Ie identifier set identifier 40 3 24 file section number set identifier fsn 24 4 32 generation number fsn grn 24 5 32 creation date grn 8 unused 48 8 6 8 expiration date fa 40 '7 block count block count 8 16 system code 32 8 8 32 system code 64 9 10 Word system code 8 reserved 56 Field Description 1-3 file identifier Up to 17 a-type characters used to identify the file. 3-4 set identifier Up to six a-type characters used to identify the file set. To conform to the ANSI tape standard, this value is the same for all files of a multifile set. file section number Four n-type characters identifying the file section number. The file section number of the first HDR1 label of a file is 0001. If the file extends to more than one volume, this number is incremented by one for each subsequent volume. 4 Figure 4-3. 4-10 EOF1 Format (Sheet 1 of 2) 60459420 E Word 4-5 Description Field fsn File of a 0002 this generation number Four n-type characters specifying the generation number of a file. This value is 0001 for the first generation of a filet 0002 for the second t and so on. grn Generation version number. Two n-type characters used to distinguish successive iterations of the same generation. The generation version number of the first attempt to create a file is 00. This field is not checked for privileged jobs. 6 creation date Date the file was created; it is recorded as a space followed by two n-type characters for the year followed by three n-type characters for the day within the year. 7 expiration date The file is considered expired when today's date is the same as or later than the date given in this field. When this condition is satisfied t the remainder of the volume may be overwritten. Thus t to be effective on multifile volumes t the expiration date of a file must be earlier than or the same as the expiration date of all preceding files on the volume. The expiration date is written in the same format as the creation date. fa File accessibility. An a-type character which indicates the restriction t if anYt on who may have access to the information in this file. A blank means unlimited access. An A means the owner identification field in the VOLl label must contain the owner's user number. If any other character t all future accesses to the tape must specify this character as the fa. 7-8 block count Six n-type characters specifying the number of PRUs between this label and the preceding HDR label group. This total does not include labels or tape marks. 8-10 system code Thirteen a-type characters identifying the operating system that recorded this file. The tape is considered to have been written under VSOS if the first 10 characters match the default. 5 5-6 sequence number. Four n-type characters to specify the position file within a file set. This value is 0001 for the first filet for the second t and so on. In all the labels for a given filet field contains the same number. Figure 4-3. 60459420 E EOF1 Format (Sheet 2 of 2) 4-11 First End-of-Volume Label (EOVl) The end-of-volume label is required only if the physical end-of-tape reflector is encountered before an EOFI label is written or if a multifile set is continued on another volume. EOVI is preceded by a single tape mark and followed by a double tape mark. When writing labels, the system uses the fields in the HDRI label to write the corresponding fields in the EOVI label. The system processes the following fields in the EOVI label. • Label identifier • Label number • Block count The format for the first end-of-volume label is shown in figure 4-4. 4-12 60459420 E o 63 1 EOV 24 file identifier 32 8 file identifier 64 2 file identifier set identifier 40 3 set identifier 24 file section number fsn 24 4 32 fsn grn generation number 24 5 grn 32 creation date 8 unused 8 6 8 48 expiration date block count fa 40 7 block count 8 16 system code 32 8 8 32 system code 64 9 system code 10 reserved 8 Word 56 Field Description 1-3 file identifier Up to 17 a-type characters used to identify the file. 3-4 set identifer Up to six a-type characters used to identify the file set. To conform to the ANSI tape standard, this value is the same for all files of a multifile set. file section number Four n-type characters identifying the file section number. The file section number of the first HDR1 label of a file is 0001. If the file extends to more than one volume, this number is incremented by one for each subsequent volume. fsn File of a 0002 this generation number Four n-type characters specifying the generation number of a file. This value is 0001 for the first generation of a file, 0002 for the second, and so on. 4 4-5 5 sequence number. Four n-type characters to specify the position file within a file set. This value is 0001 for the first file, for the second, and so on. In all the labels for a given file, field contains the same number. Figure 4-4. 60459420 E EOV1 Format (Sheet 1 of 2) 4-13 Word Description Field grn Generation version number. Two n-type characters used to distinguish successive iterations of the same generation. The generation version number of the first attempt to create a file is 00. This field is not checked for privilege jobs. 6 creation date Date the file was created; it is recorded as a space followed by two n-type characters for the year followed by three n-type characters for the day within the year. 7 expiration date The file is considered expired when today's date is the same as or later than the date given in this field. When this condition is satisfied, the remainder of the volume may be overwritten. Thus, to be effective on multifile volumes, the expiration date of a file must be earlier than or the same as the expiration date of all preceding files on the volume. The expiration date is written in the same format as the creation date. fa File accessibility. An a-type character which indicates the restriction, if any, on who may have access to the information in this file. A blank means unlimited access. An A means the owner identification field in the VOL1 label must contain the owner's user number. If any other character, all future accesses to the tape must specify this character as the fa. 7-8 block count Six n-type characters specifying the number of PRUs between this label and the preceding HDR label group. This total does not include labels or tape marks. 8-10 system code Thirteen a-type characters identifying the operating system that recorded this file. The tape is considered to have been written under VSOS if the first 10 characters match the default. 5-6 Figure 4-4. 4-14 EOV1 Format (Sheet 2 of 2) 60459420 E Optional Labels Six types of optional labels are processed. They are additional file header (HDR2 through 9), end of file (EOF2 through 9), end of volume (EOV2 through EOV9), user volume (UVLa), header (UHLa), and trailer (UTLa) labels. These labels are written to tape if supplied in a label buffer or returned to the user if a label buffer is supplied. Additional File Header Labels (HDR2 through HDR9) HDR2 through HDR9 labels may immediately follow HDRI. Character Position Field Name Their format is as follows: Contents 1-3 Label identifier HDR 4 Label number 2 through 9 5-80 Any a-type character Only the label identifier and the label number are checked when writing label. number must be in ascending order, beginning with 2. The label Additional End-of-File Labels (EOF2 through EOF9) EOF2 through EOF9 labels may immediately follow EOFI. Character Position Field Name Their format is as follows: Contents 1-3 Label identifier EOF 4 Label number 2 through 9 5-80 Any a-type character Only the label identifier and the label number are checked when writing labels. number must be in ascending order, beginning with 2. 60459420 E The label 4-15 Additional End-of-Volume Labels (EOV2 through EOV9) EOV2 through EOV9 labels may immediately follow EOV1. Character Position Their format is as follows: Contents Field Name 1-3 Label identifier EOV 4 Label number 2 through 9 Any a-type character 5-80 Only the label identifier and label number are checked when writing labels. number must be in ascending order, beginning with 2. The label User Labels User labels may immediately follow their associated system labels. Thus, user volume labels (UVLa) may follow VOL1, user header labels (UHLa) may follow the last HDRn label, and user trailer labels (UTLa) may follow the last EOVn or EOFn label. Their format is as follows: Character Position Contents Field Name 1-3 Label identifier UVL, UHL, or UTL 4 Label number Must be 1, 2, 3, 4, and so on, consecutively for UVL labels. For other labels, any a-type character 5-80 Any a-type character Only the label identifier and the label number are checked when writing labels. checks the number of user labels of a label type; a maximum of 32 is allowed. 4-16 The system 60459420 E SYSTEM MESSAGES 5 Programs use system messages to request VSOS processing. With five exceptions, the system messages described in this chapter are calls to the virtual system. (The ADVISE, EXPLICIT I/O, GIVE UP, PROCESS SYSTEM PARAMETER, and TAPE FUNCTION messages are calls to the resident system. ) SYSTEM MESSAGE EXECUTION A program can use either of two methods to issue a system message. It can call an SIL subroutine which, in turn, issues a system message, or it can issue the system message directly. SIL subroutines are described in volume 1. The SIL method is recommended because it is recognized as the supported user interface and will remain unchanged even though the system messages may change. To issue a system message directly, the user presets one or two blocks of words known as the Alpha and Beta of the message and then issues an exit force instruction. The Alpha and Beta formats for each message are referenced in the individual message descriptions. The exit force instruction is described in the CYBER 200 Hardware Reference Manual. A 32-bit indirect or 64-bit direct pointer immediately follows the exit force instruction within the instruction stream. It points to the system message Alpha. When the exit force instruction is executed, system operation changes to monitor mode and the system message is executed. The hexadecimal format of an indirect message pointer is: OOEEOOrr rr is the number of the register containing the virtual bit address of the message. hexadecimal format of a direct message pointer is: I The OOFFaddress I address is the virtual bit address of the first full word of the message (12 hexadecimal digits). When a message is processed without error, the operating system returns control to the half word or full word immediately following the message pointer. 60459420 G 5-1 ALPHA AND BETA WORD CONVENTIONS System messages have a two-part standard format. The first part, called the Alpha portion, specifies the function to be performed, the length of the Beta portion, and where to proceed for error processing. The Alpha portion has the same general format for all messages, and is always either two or three words in length. The second part, called from one message to the described later in this portion what the length message descriptions in must be. The user can, left unchanged. the Beta portion, contains parameters and varies greatly in length next. The format of the Beta portion depends on the function, as chapter for each function code. The user specifies in the Alpha of the Beta portion is and, in some cases, where it is located. The this chapter specify what the minimum size of any particular Beta however, specify a larger Beta, in which case the extra space is Alpha and Beta portions must start on full-word boundaries. They must exist in virtual space and have read/write or write-temporary access. Alpha and Beta portions must not cross large page boundaries. I NOTE I Options/control field values of #EO through #FF, response code (r field) values of #7000 through #7FFF, and error response (ss or cerr field) values of #EO through #FF are reserved for installation use. The options/control field is the 8 bits to the left of the function code field in Alpha. The response code field is bits 0 through 15 in Alpha (1), where bits are numbered from O. Values returned in the r, ss, serr, and cerr fields are in hexadecimal notation. In the figures in this chapter, some of the Alpha and Beta words are drawn with dashed lines. These words are optional. 5-2 60459420 F OVERVIEW The following are the available system messages listed according to functional areas. comments in parentheses are meant to clarify the purpose of the message.) (The File Management ACCESS CONTROL (f=#002B) ATTACH FILE (f=#0010) CHANGE FILE ATTRIBUTES (f=#OOOB) CREATE FILE (f-#OOOl) DESTROY FILE (f=#0002) GIVE FILE (changes file ownership) (f=#0008) POOL FILE MANAGER (f=#0026) FILE DISPOSITION (f=#OOOD) Tape Management LABEL (f=;1002E) TAPE MANAGEMENT (f=#002C) TAPE SWITCH VOLUME (f=#002D) Input/Output Operation CLOSE FILE (f=#0005) EXPLICIT I/O (f=#F500) GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME (f=#FF02) MAP (into virtual space) (f=#0004) OPEN FILE (f=#0003) TAPE FUNCTION (f=#F406) I Interrupt Processing ABNORMAL TERMINATION CONTROL (f=#0020) PROGRAM INTERRUPT CONTROL (f=#OOlC) RETURN FROM INTERRUPT (f=#0051) Starting and Ending Program Execution EXECUTE IQM REQUEST (f=;10030) EXECUTE PROGRAM FOR USER NUMBER (f=#0022) RECALL (suspends program execution) (f=#0025) TERMINATE (ends program execution) (f=#0006) USER REPRIEVE (f=#002F) Controllee Chain Processing INITIALIZE CONTROLLEE CHAIN (f=#OOlD) INITIALIZE OR DISCONNECT CONTROLLEE (f=#OOlB) LIST CONTROLLEE CHAIN (f=#0013) REMOVE CONTROLLEE FROM MAIN MEMORY (f=#0019) 60459420 F 5-3 Message Communication GET MESSAGE FROM CONTROLLEE (f=#0017) GET MESSAGE FROM CONTOLLER OR OPERATOR (f=#0016) SEND MESSAGE TO CONTROLLEE (f=#0015) SEND MESSAGE TO CONTROLLER (f=#0014) SEND MESSAGE TO OPERATOR (f=#001A) SEND MESSAGE TO DAYFILE (f=#0029) SEND MESSAGE TO JOB SESSION (f=#0033) File Space Allocation ADVISE (on virtual space requirements) (f=#FFOO) PROCESS SYSTEM PARAMETER (sets memory limits) (f=#FF01) Information Retrieval GET PACK LABEL AND PFI (f=#0011) LIST FILE INDEX TABLE (f=#0007) LIST SYSTEM TABLE (f=#0009) MISCELLANEOUS (f=#0024) Accounting UPDATE USER DIRECTORY (f=#0023) USER/ACCOUNTING COMMUNICATION (f=#OOOE) VARIABLE RATE ACCOUNTING (f=#0028) Special Functions EXECUTE OPERATOR COMMAND (for operator user number) (f=#0021) RHF CALL (RHF functions) (f=#002A) SHRLIB ALTER or RESTORE (f=#0053) 5-4 60459420 F MESSAGES The message descriptions in this chapter are in function code order. messages in alphabetical order. Table 5-1. Table 5-1 lists the Message Function Codes (Sheet 1 of 3) Message Hexadecimalt Function Code ABNORMAL TERMINATION CONTROL 0020 ACCESS CONTROL 002B ADVISE FFOO ATTACH 0010 CHANGE FILE ATTRIBUTES OOOB CLOSE FILE 0005 CREATE FILE 0001 DESTROY FILE 0002 EXECUTE IQM REQUESTtt 0030 EXECUTE OPERATOR COMMANDtt 0021 EXECUTE PROGRAM FOR USER NUMBERtt 0022 EXPLICIT I/O F500 GET MESSAGE FROM CONTROLLEE 0017 GET MESSAGE FROM CONTROLLER OR OPERATOR 0016 GET PACK LABEL AND PFI 0011 GIVE FILE 0008 GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME FF02 INITIALIZE CONTROLLEE CHAIN 0010 INITIALIZE OR DISCONNECT CONTROLLEE 001B t#lE, #IF, and #EOthrough #FF are reserved for installation use. Alpha(l). Abbreviated as f. ttAvailable to a privileged system task. 6045Y420 F I I Rightmost field in I 5-5 Table 5-1. Message Function Codes (Sheet 2 of 3) Message LABEL 002E LIST CONTROLLEE CHAIN 0013 LIST FILE INDEX TABLE 0007 LIST SYSTEM TABLE 0009 MAP 0004 MESSAGE CONTROL 0018 MISCELLANEOUS 0024 OPEN FILE 0003 POOL FILE MANAGER 0026 PROCESS SYSTEM PARAMETER FFOI PROGRAM INTERRUPT CONTROL 001C RECALL 0025 REMOVE CONTROLLEE FROM MAIN MEMORY 0019 RETURN FROM INTERRUPT 0051 RHF CALL tt 002A ROUTE AND FILE DISPOSITION DODD SEND MESSAGE TO CONTROLLEE 0015 SEND MESSAGE TO CONTROLLER 0014 SEND MESSAGE TO DAYFILE 0029 SEND MESSAGE TO JOB SESSION 0033 SEND MESSAGE TO OPERATOR 001A SHRLIB ALTER OR RESTORE 0053 TAPE FUNCTION F406 TAPE MANAGEMENT 002C t#lE, #IF, and #EO through #FF are reserved for installation use. Alpha(l). Abbreviated as f. ttAvailable to a privileged system task. I 5-6 Hexadecimalt Function Code Rightmost field in 60459420 F Table 5-1. Message Function Codes (Sheet 3 of 3) Message Hexadecimalt Function Code TAPE SWITCH VOLUME 002D TERMINATE 0006 UPDATE USER DIRECTORY 0023 USER REPRIEVE 002F USER/ACCOUNTING COMMUNICATION OOOE VARIABLE RATE ACCOUNTING 0028 t#lE, #IF, and #EO through OFF are reserved for installation use. Alpha(l). Abbreviated as f. 60459420 F I Rightmost field in 5-7 CREATE FILE (f=#OOOl) The CREATE FILE message defines parameters for files. Except for files connected to a terminal, this message also assigns space, usually on a mass storage device, names it, and gives that space to a user. The operating system makes an entry in the file index table and PFI for this named space (file), and initializes fields in the entry using information given in the message. The format of the CREATE FILE message is shown in figure 5-1. A privileged user can set some of the values in the new file index table entry the operating system creates every time a file is created. Eight Beta words are required for a privileged create. Only one Beta is processed per Alpha issued. In Beta(4) the user can provide a file's access directory entry. Beta(3) contains the virtual bit address of a file index table entry copy as shown for the file index table in chapter 2. The user sets the following fields of the copy, which the system uses to initialize the created file's file index table entry. For the file's access directory entry option, Beta(4) contains file index table extension entry. The format of this entry is portion (message option #10) of the LIST SYSTEM TABLE message. filled in by the system before storing to ensure that there is being created and its associated file access directory entry. file access directory defined, Beta(4) must contain O. the virtual bit address of a as described for the Beta The first two words are no mismatch between the file For files that do not have a The operating system sets the mcat and acs fields for a privileged create (c=1); otherwise, values of the message fields are provided by the user. 5-8 60459420 E o 63 Alpha(1) r len c 16 Alpha(2) 0001 16 16 16 n eea 16 I Alpha(3) 48 bl ba I ________ -1§ _____._ _ _ _ _ _ _ _.____________ ......1a L Beta (1) name 64 Beta (2) ss acs Beta (3) 8 24 8 fiord ec x n ~ unused 8 1 11 5 pkno slev length 8 (c=1) fiptr 48 16 Beta (4) unused fade (c=1) 48 16 Beta (5) csio 64 Beta (6) unused 4 dat meat 4 Beta (7) sfo rt bt 4 4 4 reserved pc rmd 4 8 8 comt 8 rlmax rlmin 24 Beta (8) 4 unused ie 4 8 au 24 16 reserved 64 Word Alpha(1 ) Description Field Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: r 1 2 11214 Figure 5-1. 60459420 G Error code was returned in an ss field of Beta(3). User is not privileged (privileged creates only). Beta buffer length error; the buffer length must be greater than or equal to 8. CREATE FILE (f=#OOOl) Message Format (Sheet 1 of 5) 5-9 Word Alpha(l) Description Field len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. All requests must provide at least four Beta words and for privileged creates, len must be a multiple of 5. c Create mode: o Request a local file. Define an unattached permanent file (privileged only). Define a permanent file (make local file permanent or create a permanent file). 1 2 Alpha(2) n Number of creates in this message; maximum is 16. eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Beta(l) name File name, in ASCII~ left-justified with blank fill. must be in the format described in chapter 3. Beta(2) ss Error response field. o 1 2 3 4 5 6 7 8 #A #B #C #D #E #F #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 I Figure 5-1. 5-10 File names The values are: No error. File already exists. No available mass storage for this file. Invalid mcat specified. Invalid C option specified. The file index table, user table, or File Segment table is full. Invalid file name. Invalid data type. Unable to find the requested pack identifier. If c=l or c=2, error in attempt to make file permanent. If c=l, cannot locate user or pool. Requested file size is greater than installation parameter LDSK. Number of user files exceeds installation limit. If c=2, attempt to define a tape file. Attempt to create a file at a higher security than allowed. If c=2, attempt to define a file connected to a terminal. Illegal value in the comt (communications type) field. Invalid access. Illegal value in the sfo (file organization) field. Illegal value in the bt (blocking type) field. Illegal value in the rt (record type) field. Invalid sfo/rt combination. Illegal value for ostat (bits 59 through 63 of Beta(6) must be zero). Caller not the file owner. Production status lost on the file. Warning only, the file is created. Privileged create only. CREATE FILE (f=#OOOI) Message Format (Sheet 2 of 5) 60459420 H Word Beta(2) Field acs Description Initial access permissions. This 8-bit field is treated as eight, I-bit fields with each bit specifying the associated permission: Bit Hexadecimal Value 1~ 4 5 6 7 8 10 8 4 2 Description Unused. Execute access permitted. Modify access permitted. Append access permitted. Read access permitted. Write access permitted. length Length of the file to be created in 512-word blocks. The actual file length is rounded up to a disk allocation unit boundary and returned to the called. slev Security level (1 through 8) to be given to the file if this field is not zero and is not greater than that of the interactive job issuing this message. If the field is zero, use the security level belonging to the interactive job issuing this message. pkno Indicates pack number. If a calling parameter, this field contains the number of the disk pack in the device set on which the file is to be created. VSOS returns the number of the disk pack on which the initial segment of the file was created. Valid pack number entries are all binary numbers from #1 through #80 for which a disk pack exists. Specifying a 0 allows the operating system to choose the disk pack on which to allocate space. ex File extensions: o 1 File may be extended. File may not be extended. I If cn is set to 1 but ex is set to 0, a contiguous, extendable file is created. Therefore, a file that was contiguous when created may become noncontiguous when later extended. cn File contiguity requirements: o 1 da If c=2, action statement returned by the system: o 1 Figure 5-1. 60459420 F File may be created as a noncontiguous (segmented) file. File must be created as a contiguous (nonsegmented) file. New file created. Existing local file made permanent. CREATE FILE (f=#OOOI) Message Format (Sheet 3 of 5) 5-11 Word Beta(3) I Description Field fiord File position (local file identifier); returned to the caller. fiptr For privileged creates (c=I), this field contains the virtual bit address (furnished by the user) of a 16-word copy of the file index table extension entry that is used to define the characteristics of the file being created. Beta(4) f~e For privileged creates (c=I), this field contains the virtual bit address (furnished by the user) of a 16-word copy of the file index table extension entry. The system uses the file access directory portion of this entry to initialize the file's access directory entry in the file index table. The format of the file index table extension entry copy is the same as for the Beta portion of the LIST SYSTEM TABLE message (f=#0009), option #10. Beta(5) csio Field reserved for the operating system. defined on return to the caller. Beta(6) dat Data type: o 1 mcat Physical data file. Virtual code file. File management category: o 1 2 I The contents are not 5 9 Mass storage file. Scratch file (valid only if c=O). Output file. User-created drop file. File connected to a terminal (valid only if c=O). The operating system sets the mcat field to 0 for a privileged create. For categories 0 through 2 of this field, standard file name conventions apply. sfo File organization: o bt Blocking type field. This field is ignored by the system on entry, and is set to 2 on return. rt Record type: o 1 2 7 Control word (W). ANSI field length (F). Record mark (R). Undefined. rmd The record mark delimiter may be any 8-bit ASCII character. pc A padding character is used only with F-type records. any 8-bit ASCII character. Figure 5-1. 5~12 Sequential file. Direct file. It may be CREATE FILE (f=#OOOI) Message Format (Sheet 4 of 5) 60459420 F Word Beta (6) Field Description reserved Reserved for the operating system. comt Communication type: o 1 Beta(7) Beta(8) ic Not used. rlmin Contains the minimum record length in bytes. rlmax Contains the maximum record length in bytes. au Allocation unit size is used by the operating system as a guideline when extending a file. The value in this field is given as the number of 512-word blocks. reserved Reserved for the operating system. Figure 5-1. 60459420 E Non-RHF. RHF. CREATE FILE (f=#0001) Message Format (Sheet 5 of 5) 5-13 DESTROY FilE (f=#0002) The DESTROY FILE message can be issued to sever the program's connection with a file and/or release the mass storage space. At the conclusion of DESTROY FILE message processing, any mass storage file referenced by the message has ceased to exist, as have any modified pages of the file. Virtual address definitions pertaining to this file are no longer defined, and the I/O connection and map entries are erased. The format of the message is shown in figure 5-2. (Only one Beta is processed for each Alpha.) If a mass storage file is at a sufficiently high security level, it is overwritten with a pattern when it is destroyed. Some installations can choose to overwrite all files when they are destroyed. A privileged destroy is not a close and destroy, as is the nonprivileged destroy; the privileged destroy must be preceded by a privileged close. If the name refers to a tape file, the system rewinds and unloads the current volume. If the name is a multifile set, all logical files belonging to the multifile set are returned. o 63 r Alpha(l) len 16 eea 16 -Alpha(3) IL bl _ _ _ _ _ 1§. 16 16 n Alpha(2) 0002 e 16 48 I ba ----- Beta(l ) - - - - - - - - - - - - _4§J name 64 I Beta(2) ioe dev 8 Beta(3) 22 dre 8 own 8 ss 8 owner Field Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: r 1 2 #211 #214 Figure 5-2. 5-14 unused L _ _ _ _ _ -_ _ _ _ _ _ _ _ Word Alpha(1) ul 8 2 Error code was returned in an ss field of Beta(2). User is not privileged (privileged destroys only). Number of destroys in this message is illegal (the n field is 0 or greater than 16). Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. DESTROY FILE (f=#0002) Message Format (Sheet 1 of 3) 60459420 G Word Alpha(l) Field Description len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in word of the Beta protion. The value of len must be a multiple of 2 (for regular destroys) or 3 (for privileged destroys). c Destroy mode: o 1 2 3 Alpha(2) Return local and attached permanent files. Privileged purge of a permanent file. Purge of a permanent file (makes file local if attached). Purge of a pool file in pool in Beta(3). n Number of requests in this message; maximum is 16. eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Beta(l) name File name, in ASCII, of the file to be destroyed. be in the format described in chapter 3. Beta(2) ioc Input/output connector number. If the file is connected to a terminal, this field is #FE. If a mass storage file is being destroyed, the operating system returns, in this field, the inclusive OR of all I/O connector numbers connected to this file. dev Device type: o 8 ul Mass storage device or magnetic tape device. Reserved. Unload Tape. This field is significant only for returning files (c=O) and is only applicable to tape files. o 1 2 drc File names must When the tape is released, the tape is rewound to the load pOint and is then unloaded in accordance with the iu option specified in the TAPE MANAGEMENT system message (f=#002C). When the tape is released, the tape is rewound to the load point, but is not unloaded from the drive. When the tape is released, the tape is rewound to the load point and unloaded from the drive. Decrement resource count if this field is nonzero. If drc=O, do not decrement resource count. This field applies only to tape files. Ownership of the file to be destroyed. This field is significant only for nonprivileged users (c=1). The values are: o 1 2 Figure 5-2. 60459420 G Private ownership. Public ownership; valid only for privileged users. Pool ownership; valid only for the pool boss. DESTROY FILE (f=#0002) Message Format (Sheet 2 of 3) 5-15 Word Beta(2) Field ss Description Error response field. The values are: o Normal completion. 1 2 3 4 5 6 7 8 9 #A #B #C #D #E #F #10 #11 I Beta(3) owner Figure 5-2. 5-16 File name does not exist. File name given is in conflict with that in the I/O connector. Another active program has the file open, or the file has been privileged opened. Attempt to purge a permanent file attached to another job. Nonprivileged task tried to destroy a public file. User other than the pool boss tried to destroy a pool file. Illegal I/O connector number specified. Drop file map is full. Error trying to remove the PFI entry. Disk is logically off. Caller is not the file owner. No room in FILE1 for privileged destroy pseudologon. Attempt to destroy an open tape file. Illegal ul option specified. Cannot destroy a public file unless privileged. Attempt to purge a tape file. Pool not attached or does not exist. For privileged destroys, a user number or pool name to which the file being destroyed belongs. The binary user number must be right-justified with zero fill or, if this is the pool name, it must be left-justified with blank fill. DESTROY FILE (f=#0002) Message Format (Sheet 3 of 3) 60459420 G OPEN FILE (f=#0003) The format of the OPEN FILE message is shown in figure 5-3. (The Beta portion of the message can actually consist of more than one of the five- or six-word sets shown in the figure.) o Alpha(1) 63 r Alpha(2) len 16 n 16 c 16 0003 eea 16 I Alpha(3) LWord Alpha(l) 48 bl ba 16 ----- - - ---------- Field I _ _ _ _ _ _4f!J Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: r 1 2 3 114 11211 11214 #216 Error code was returned in an ss field of Beta(3). User is not privileged (privileged opens only). Input/output error code was returned. Illegal message option (c field). Number of opens in this message is illegal (the n field is 0 or greater than 16). Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. Descriptor is out of bounds. len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. c Open mode: o 1 Figure 5-3. 6045Y420 F 16 Regular open; file must be attached. Privileged open; fields dola, tlr, dolm, and tolm in the file index table are not updated for the file being opened. OPEN FILE (f=#0003) Message Format (Sheet 1 of 9) 5-17 I I Word Description Field Alpha(l) c This field determines the settings of several other fields in Beta(2) of this message. When this field is 0, the cl option enables the user to modify fields in the file index table. Permission to modify these fields is granted by the system if the file ownership is: private; pool, and the user is the pool boss; or public, and the user is privileged. When this field is 1, the cl option enables the privileged user to specify who can access the file for the duration of this open. Alpha(2) n Number of files to be opened at this time; maximum is 16. At times, it might be more efficient to open more than one file at a time. When this is to be done, the Alpha portion for the OPEN FILE message is used once, with n equaling the number of files to be opened; this is followed by groups of Beta words, one group per file. eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full words of the Beta portion. Alpha(3) For nontape files: o 63 name Beta(1 ) 64 e Beta(2) m "[ t 3 e3 x unused e e 1a t ~ ioe t 6 8 2 unused slev mode aes 8 8 8 I Beta(3) pw n 1 2 unused length Beta(4) 0 8 n st e 4 2 unused I 8 ptr (e=1) 48 unused fade (e=1 ) 48 16 I ss 40 16 Beta(6) 8 nab 24 Beta(5) pkno tUnused. Word Field Beta(l) name File name, in ASCII. File names must be in the format described in chapter 3. If the format is not proper, error response #21 is returned in the ss field. Beta(2) ioc The file's input/output connector number (0 to #F and #12 to #47), #FE, or #FF. #FE indicates that a file connected to a terminal is to be opened. Description Figure 5-3. 5-18 OPEN FILE (f=#0003) Message Format (Sheet 2 of 9) 60459420 F Word Beta(2) Field Description ioc #FF causes the operating system to allocate an input/output connector and then to return the number in this field. If no input/output connector is available when the system attempts to allocate one~ the system returns an error code of #37 in the error response field in this message. ~t File extendability; set by the user. o 1 The values are: Extensions allowed if extensions were not prohibited on creation of the file (same as ext=2). No extensions allowed (same as ext=3). Value that was set at creation time is returned by the operating system after a successful open. This field is 0 if extensions were allowed or 1 if not allowed. If the file was created with no extensions allowed~ it would not have been opened with extensions allowed; however~ if the file was created with extensions allowed~ it can be opened with either extensions allowed or not allowed. cl Open the file as specified in the mode field. the values are: o 1 1 mcat opens~ the values are: Other privileged and nonprivileged opens are allowed~ but without write access. No other opens are allowed until the privileged open is complete; the privileged open cannot occur if any other opens or attaches currently exist. File management category to be associated with the file. For privileged opens~ the operating system sets this field to O. For regular opens~ this field is copied into the mcat field of the I/O connector. A file connected to a terminal is indicated by ioc=#FE instead of in the mcat field: o 1 2 3 4 type opens~ Do not change the file type. Change the file type to the one in the type field. For privileged o For regular Mass storage file. Scratch file. Output file. MODDROP file (formerly known as a write-temporary file). Tape file. File type. If the cl option is O~ the operating system returns the file type to this field. If the cl option is l~ the file type is to be changed to the type specified by this field~ which can be one of the following: o 1 2 Physical data. Virtual data. Virtual code. The operating system sets this field to 0 for privileged opens. Figure 5-3. 60459420 F OPEN FILE (f=#0003) Message Format (Sheet 3 of 9) 5-19 I Word Beta(2) Description Field File access desired. Only the indicated access combinations are allowed. The values are: acs Hex. Value 00 01 02 03 04 06 08 OA Description Open file for R, W, or RW access as determined by access permissions. Write access requested. Read access requested. Read, write access requested. Append access requested. Read, append access requested. Modify access requested. Read, modify access requested. Observe that if acs is 0, the system will attempt to open the file for read and write access. If the caller has read, write, or read and write permissions, the file is opened accordingly. The actual access obtained is returned in acs. If the caller has neither read nor write access, an access violation error is returned. Beta(3) mode Input/output mode. This field is 0 if the file is to be opened for explicit I/O, or set to 1 if the file is to be opened for implicit I/O. slev Security level of this file, 1 through 8; set by the operating system. pkno Pack number of the disk pack on which the initial segment of the file resides; returned by the operating system. 1p Field returned by the operating system. permanent file, and 1 for a local file. own File ownership; set by the operating system. o 1 2 st The values are: Private. Public. Pool. Management category of the file; set tby the operating system. values are: °1 2 3 4 5 6 7 9 Figure 5-3. 5-20 This field is 0 for a The Mass storage file. Scratch file. Output file. Write-temporary file. Magnetic tape file. Drop file created by the user. Drop file created by the operating system. Batch file. File connected to a terminal. OPEN FILE (f=#0003) Message Format (Sheet 4 of 9) 60459420 E Word Beta(3) Field nc Description File extendability and contiguity; returned by the operating system if the open is successful. The values are: o 2 3 ss Error response field. o #21 #22 #24 #25 #2A #2B #2C #2D #2F #31 #32 #33 #34 #35 #37 #3A #3B #3C #3D #3E #3F #40 #41 #50 #61 #62 Beta(4) create was not requested but extensions are create was not requested and extensions are create was requested and extensions are create was requested but extensions are The values are: Normal completion. Either no name was given or the file is not attached. Illegal value in the mcat field. I/O connector is already in use or not #0 through #45. Illegal value in the aCS or type field. File spans downed device, and open access is not read only (privileged opens only). User directory was not found or the pool was not found (privileged opens only). Read or write open is not allowed; the file has been privileged opened by another user. Nonprivileged user. No more write opens permitted. No more room for the user table (privileged opens only). Cannot open an attached file (privileged opens only). No FST space available. File access violation. Implicit mode required with write temporary. No I/O connector available. Attempt to implicitly open a file with write-only access. Cannot privilege open tape file. Cannot locate tape volume. Cannot open tape file implicitly. File does not exist. Cannot privilege open local disk file. Calling task is not a level-2 controllee. Warning; file is open but may be only partially available. Error in modifying the PFI entry for this file. Attempt to open a purge only file. File is currently privileged open. length The length of this file in blocks, set by the operating system. When ss=#41, this is the number of blocks available. nab Relative byte address, returned by the system, of the next byte to be written in the file. Figure 5-3. 60459420 F Contiguous allowed. Contiguous allowed. Contiguous allowed. Contiguous allowed. OPEN FILE (f=#0003) Message Format (Sheet 5 of 9) 5-21 Description Field Word Beta(5) ptr For privileged opens (c=I), this field contains the virtual bit address (furnished by the user) of the first word of a 16-word area in which the operating system is to return a formatted copy of the file index table entry for the opened file. The format of the file index table entry copy is the same as for the Beta portion of the LIST FILE INDEX OR SYSTEM TABLE message (f=#0009), option 1, or unformatted as described in chapter 2, depending on the setting of fmt. The first word of the file index table entry copy must be prefilled by the user with the user number or the pool name of the file to be opened; the second word contains the file name; and the remaining words contain the file index table, as supplied by the operating system. Beta(6) fade For privileged opens (c=I), this field contains the virtual bit address (furnished by the user) of the first word of the 16-word area in which the operating system is to return a copy of the file index table extension entry for the opened file. The entry copy contains the file access directory for the file and is the same format as for the Beta portion of the LIST FILE INDEX OR SYSTEM TABLE message (f=#0009), option #10. This first two words of the copy are set to 0 by the operating system if the file does not have an extension entry. I For tape files: o 63 Ifn Beta(1 ) 64 Beta(2) ioe 8 m e unused a 9t3 unused unused aes 12 24 8 unused vsn Beta(3) 48 ss 8 8 mfn Beta(4) 64 Beta(5) 8 unused ofp ado opo 8 16 mpru unused Beta(6) ioer 24 8 32 32 dtt Beta(7) 64 dvsn Beta(8) 64 dulb Beta(9) 64 dlb Beta(10) 64 Figure 5-3. 5-22 OPEN FILE (f=#0003) Message Format (Sheet 6 of 9) 60459420 H Word Field Description Beta(1) lfn Logical tape file name t in ASCII. Beta(2) ioc The file's input/output connector number. mcat Management categorYt returned by the system. to 4 for a logical tape file. acs Access permissions. If acs=1 and unexpired HDR1 label date is found t an error is returned. It is possible for the installation to allow the operator to override this condition and allow writing on an unexpired tape: o 1 2 3 Beta(3) acs is set from the file index. Write-only permission only. Read-only permission only. Read/write permission. vsn Volume serial number of the currently assigned tapes. field is returned by the system. ss Error response field: o #21 #22 #24 #25 #2A #2B #2C #2D #2F #31 #32 #33 #34 #35 #37 #38 #39 #3A #3B #3C #3D #3E #3F #40 #41 #42 1143 #44 Figure 5-3. 60459420 E This field is set This Normal completion. Either no name was given or the file is not attached. Illegal value in the mcat field. I/O connector is already in use or not #0 through #45. Illegal value in the acs or type field. Disk is logically off. User directory was not found or the pool was not found (privileged opens only). Read or write open is not allowed; the file has been privileged opened by another user. Nonprivileged user. No more write opens permitted. No more room for the user table (privileged opens only) • Cannot open an attached file (privileged opens only). No FST space available. File access violation. Implicit mode required with write temporary. No I/O connector available. Need six Beta words for option c=2. Illegal user number for option c=2. Attempt to implicitly open a file with write-only access. Cannot privilege open tape file. Cannot locate tape volume. Cannot open tape file implicitly. File does not exist. Cannot privilege open local disk file. Calling task is not a level-2 controllee. Not all entries were returned in the tapes table array; OPEN was completed. Not all VSNs were returned in the VSN array; OPEN was completed. Label buffer was too short; OPEN was completed. File identifier does not match. OPEN FILE (f=#0003) Message Format (Sheet 7 of 9) 5-23 Word Beta(3) Description Field ss 1145 1146 1147 1148 1149 114A 114B 114C 114D 114E 1150 1151 1152 1153 1154 1155 1156 1158 1159 115B File set identifier does not match. File chapter number does not match. File sequence number does not match. Generation number does not match. Generation version number does not match. File accessibility character does not match. File accessibility character is A and user number does not match. Illegal labels. Volume not available. Header 1 not found. Error in modifying the PFI entry for this file. No unit was assigned. Illegal assembly/disassembly. Illegal access. Only one tape open per Alpha allowed. Logical tape file already opened. Label unexpired and IP TPEXP=O. Tape coded mode with ado=3. Attempted to write expiration data greater than the multifile set expiration date. Illegal tape position option. Beta(4) mfn Multifile set name, returned by the system for the currently assigned tape. This field equals 0 if the logical file name does not belong to a multifile set. Beta(5) opo Open tape file processing options. These processing options are in effect for as long as the tape file is opened: Bit Name o ETP Description End-of-tape processing option: o 1 1 3-7 Unused. 2 UEP User error processing option: o 1 3-7 Figure 5-3. 5-24 The system automatically switches volumes. Control is returned to the user at end of tape. Tape I/O errors encountered when reading or writing a tape are returned to the operator. The operator makes a decision whether to repeat or ignore the error, drop or rerun the job, and so forth. Refer to appendix B for more information on tape I/O errors. Control is returned to the user when a tape I/O error occurs. Refer to appendix B. Unused. OPEN FILE (f=1I0003) Message Format (Sheet 8 of 9) 60459420 E Word Beta(5) Field ado Description Bit string assembly/disassembly option. This field specifies what type of assembly or disassembly is to be done on the data: o 3 ofp No assembly/disassembly is done. Bits 60 to 64; 60 bits on tape, 64 bits in memory with the upper 4 bits equal to O. The buffer address must be on a 64-bit word boundary for the TAPE FUNCTION call. Open file positioning option. selected is returned: o 1 If ofp=O, the file positioning No rewind. Rewind to the beginning of information of the current file. ioer Error number. The r field in Alpha is set to 3 if ioer is nonzero. Refer to appendix B for a complete description of the ioer error numbers. Beta(6) mpru Maximum PRU size in bytes. This field is valid only for tape formats V and NV. If mpru is 0, the mpru from the REQUEST is used. If mpru=O and no mpru was specified at request time, the system default is 32,768 bytes. Beta(7) dtt Tapes table descriptor. If nonzero, the system returns the tapes table entry. For ofp=3, the user supplies the tapes table and on completion, the updated tapes table entry is returned: Beta(8) Beta(9) Beta(10) dvsn dulb dlb Itt 16-63 att Length of the tapes table, in words. This field must be 12 words long. Virtual bit address of the tapes table buffer. The buffer must be on a word boundary. Descriptor for the VSN list. VSN list: 0-15 lvsn 16-63 avsn If nonzero, the system returns the Length of the VSN list, in words (0 < Ivsn 256). Virtual bit address of the VSN list. The buffer must be on a word boundary. < Descriptor for the user header labels. If dulb is nonzero, the user header labels are supplied by the user. This field only applies when writing labels: 0-15 lulb 16-63 aulb Length of the user label buffer, in words (0 < lulb < 512). Virtual bit address of the user label buffer. The buffer must begin on a word boundary. Descriptor for the label buffer. returns all labels here: Figure 5-3. 60459420 E 0-15 0-15 llb 16-63 alb If dlb is nonzero, the system Length of the label buffer, in words (0 < lIb < 512). Virtual bit address of the label buffer. The label buffer must be on a word boundary. OPEN FILE (f=#0003) Message Format (Sheet Y of 9) 5-25 Mass Storage Files The OPEN FILE message connects the user's program to a preexisting file for performing input and output on the file. In opening a file, the user can accept the parameters given to the file when it was created; otherwise, if the file owner has given permission, the user can al ter the parameters. Both physical and virtual files can be opened for either explicit or implicit I/O. Once opened for explicit I/O, however, a file cannot be accessed implicitly, and vice versa. Nevertheless, a file can be opened in several I/O connectors at the same time; some for implicit I/O, and others for explicit I/O. I When a program opens a physical file in explicit mode, the specified I/O connector in the program's minus page is filled in as required and an entry is made in the explicit file map area of the minus page. This allows initiation of explicit I/O. In this mode, the file is accessed by explicit requests to transfer data into buffer areas. The EXPLICIT I/O message (f=#F500), or its SIL counterpart, must be used to define the buffers and initiate data transfers. When a program opens a physical file in implicit mode, the specified I/O connector in the program's minus page is completed. No entry is made in the bound explicit map. Explicit input/output cannot be accomplished on a physical file that is opened in implicit mode. When a program opens a virtual file in explicit mode, all input/output must be done explicitly through the program's buffers in the same manner as for physical files opened in explicit mode. The I/O connector number specified in the program's minus page is filled in, and one entry is made in the explicit map. When a file is opened in explicit mode, no implicit access is possible to any of the virtual space usually represented by the file. When a program opens a virtual file in implicit mode, the I/O connector number in the program's minus page is filled in. For privileged opens to occur, the file must not be open with write access by anyone; while the file is privileged open, all attempts to open with write access are barred. If the cl field in Beta(2) is 1, these rules are extended to exclude an open of any sort to assure that the privileged open is successful. A privileged user can get a copy of the opened file's file index table entry by specifying a virtual bit address in Beta(5). The copy is returned beginning at the specified address. This copy is not used in the same way that the copy can be used on a privileged create; initializing fields in the copy associated with an OPEN FILE message does not alter the values in the file index table entry. If this is used, the fmt=l option to return the unformatted file index should be used. A privileged user can also get a copy of the opened file's file index table extension entry, which contains the file access directory, by specifying a virtual bit address in Beta(6). The copy is returned, beginning at the specified address in the same format as the Beta portion of the LIST SYSTEM TABLE message (f=#0009), option #10. If no file index table extension entry exists, the first two words of the area, starting at the specified address, are set to 0 by the system. If the file was created with no extensions allowed, it cannot be opened with extensions allowed; however, if the file was created with extensions allowed, it can be opened with either extensions not allowed or extensions allowed. 5-26 60459420 F Magnetic Tape Files The OPEN FILE message can be issued only for a logical tape file requested in the TAPE MANAGEMENT message or for a logical tape file requested in the LABEL message. If the logical tape file belongs to a multifile set, only one of the logical files can be opened at one time. There can be only one tape file specified in the Beta for each OPEN FILE message. After a successful open, the ioc is built, and the user can issue input/output and positioning functions to the tape file. The file position at the time of the open is determined by the ofp field. Label processing is not required for a file that is being reopened after previous use in which label processing was done and the tape was left positioned within this file. Observe that only explicit I/O is allowed for tape files. on the open. Implicit use may not be specified Files Connected to a Terminal The OPEN FILE message is also used to connect the user's program to a file connected to a terminal. A connected file can be opened only if this is done by a level-2 or lower level controllee of an interactive processor. It cannot be opened implicitly. A connected file does not use an I/O connector. Since a file connected to a terminal is a SIL feature, no explicit or implicit I/O is done to this file. SIL traps all I/O requests and converts them to either GET MESSAGE FROM CONTROLLER or SEND MESSAGE TO CONTROLLER requests. This is why a file connected to a terminal needs no ioc. It does not use any buffers as explicit I/O does. Instead, it uses the numbered common block 99434642. Observe that the following Beta fields are not valid for a file connected to a terminal: ext, nc, saddr, unit, fsto, length, mlength, and packid. 60459420 E 5-27 MAP (f=#0004) The MAP message gives a program access to a virtual region by defining a correspondence of virtual addresses to physical mass storage addresses. The process of defining the virtual region associated with a file is called mapping-in the file. Once a program maps in a file, the program can perform implicit reads and writes on the file. The message might also be used to release (map out) a virtual region by erasing the correspondence of the virtual addresses with mass storage. The map-out operation can also be performed by using the CLOSE FILE message. The mass storage space that is being mapped could contain a file already defined and opened, or it could be space that is not associated with any file (free space). Before virtual space can be accessed implicitly, the definition of that space must be cataloged in the implicit map area of the program's minus page. The definition can be made using MAP with the map-in option. Up to 40 noncontiguous address regions can be cataloged. The user associates a virtual starting address and length with the mass storage address of an open file or free space and indicates the access rights pertaining to that virtual region. The operating system makes the necessary entries in the bound implicit map (for an open file) or drop file map (for free space) of the program. Overlaps of space are signaled as an error. If all entries of a map are full, an error is signaled and no further map-in calls are permitted until some space is released with a map-out. The map-out option allows for release of virtual address space. Virtual address space that has been mapped out is no longer accessible to the program, but the mass storage file itself is not closed (the I/O connector for the file remains intact). The mass storage region can, after the map out, be mapped in again to the same or other virtual space. Mapping out free space causes the corresponding drop file map entries to be deleted and frees the mass storage space for reassignment. If the mass storage file represented by a virtual region has write access and is mapped out, all modified pages of that space are written on that mass storage file before the map-out process is complete. If the file itself did not have write access, all modified pages are lost through the map-out process. The MAP call must not be used with files opened for explicit I/O. be mapped in. The format of the message is shown in figure 5-4. 5-28 Also, source files cannot 60459420 E o Alpha(1) 63 r Alpha(2) e len 16 0004 16 16 16 eea unused 48 16 I Alphq(3) bl L _____ 1~~ Beta (1 ) ba _____________ 32 32 length Word Alpha(1 ) .. ee unused 24 14 Ox t r .ioe con 8 55 8 8 Description Field r - Ifa vpa Beta(2) I _ _ _4~ Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 #214 Error has been returned to the ss field of Beta(2). Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. This must be zero when WPA is zero and IOC is #OF to MAPIN SHRLIB. Used by debug. c Map mode: o 2 Map-in the file specified in the ioc field. Map-out the file specified in the ioc field (both the bound implicit map and drop file map entries are altered). Map-out only this program's drop file (a c field value of 0 must be used to map-in a drop file). Alpha(2) eea Virtual bit address at which control transfers if an error occurs during processing of this message (riO). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Figure 5-4. 60459420 E MAP (f=#0004) Message Format (Sheet 1 of 3) 5-29 Word I Beta(1 ) Beta(2) Field Description vpa Virtual page address of the first small page of the space defined. Must be zero when len is zero and ioc is #OF to MAPIN SHRLIB. lfa Logical file address associated with the virtual page address. If this field is #FFFFFFFF, free space is appended as defined by the virtual page address and length fields. length Length of the virtual region, in blocks. If this call is not for free space, the space on the mass storage file must be contiguous. When returned to the caller by the operating system, this field is adjusted to the next page multiple. cont File contiguity; set by the operating system after a successful map-in (value is set at creation time). This field is 0 if the file was not created contiguously (in two segments), or set to 1 if the file was created. ext File extendability; set by the user. o The values are: Extensions allowed if extensions were not prohibited on creation of the file (same as ext=2). No extensions allowed (same as ext=3). Value that was set at creation time by the operating system after a successful map-in. This field is 0 if extensions were allowed or set to 1 if not allowed. If the file was created with no extensions allowed, it could not have mapped-in with extensions allowed; however, if the file was created with extensions allowed, it can be mapped-in with either extensions allowed or not allowed. ioc Input/output connector number for the mass storage file being mapped (a source file cannot be mapped in): I Mass storage file map-in or map-out. Source file map-out. Drop file map-in or map-out. SHRLIB MAPIN: used by debug. VAP and LEN must be zero. IIO-IIE, 1112-1/47 1110 1111 IloF con A set of 8 bits providing control information as follows: c4 ac 11 Subfield c3 Description Page map request. o Figure 5-4. 5-30 Small. Large. MAP (f=110004) Message Format (Sheet 2 of 3) 60459420 F Word Beta(2) Description Field con Description Subfield wa Access: o 1 ac Get access rights (determined when the file was opened) from the I/O connector. Get access rights from the ac field if allowed by the ioc access field. Access: o 1 2 34 No read or write access. Read access. Write access. Both read and write access. Bits cl. c2. c4. and c5 are not used. The wa and ac fields are examined by the system when mapping in files associated with I/O connectors 0 through #E. ss Error response field. o 1 2 3 4 5 6 7 8 9 #A #B #C #D #E #F #10 #11 #12 #13 #14 #15 #16 #17 Figure 5-4. 60459420 G The values are: Normal completion. Virtual address overlap of file space. Cannot map-in file in virtual page O. Length field in a map message is 0 or greater than the length in the map. Length in the request is not modulo page size. I/O connector does not exist or the mode specified in the I/O connector is not implicit. Virtual address is the same as that of an existing ADVISE call. Bound implicit map was full at map-in. Logical mass storage address plus length exceeds the file length. Page requested for map-out is locked in. Space is undefined at map-out. Map entry virtual address is not on a page boundary. Bound implicit map is full at map-out. I/O connector is not proper for a free space request. Drop file map is full at map-out. Drop file map is full at map-in. Mass storage file index table entry cannot be found. Virtual address overlap of free space. For a map-in request. no read access was specified; map-in has not been performed. File is privileged opened by the user and cannot be mapped. Logical file address overlap. Logical file address plus length exceeds user or pool maximum. Error in extending file. No more disk space available when extending the file. MAP (f=#0004) Message Format (Sheet 3 of 3) 5-31 I CLOSE FILE (f=#0005) This message terminates immediate access to the data. System operation varies slightly, depending on the medium. Only one Beta is processed for each Alpha. The format of the CLOSE FILE message is shown in figure 5-5. o 63 Alpha(1} len r 16 Alpha(2} 0005 e 16 16 16 eea n 48 16 Alpha(3) ba bl I 16 --- - - - - - Beta(1 ) ioe '------- - - - - - - - . - - - - - meat Beta(2) type ef 4 8 8 4 length unused: bilb '12 flag 4 opt 8 ss 8 nab 24 Word Alpha(l) Field 8 40 Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: r 1 2 #211 Error code was returned in an ss field of Beta(I). User is not privileged (privileged closes only). Number of files specified in this call is illegal (the n field is 0 or greater than 16). Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. Beta portion is in read-only space. #214 #270 len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. This field must be a multiple of 3 for a regular close issued by a privileged system task (c=2); this field must be a multiple of 2 for other regular closes (c=O). For a privileged close (c=I), Beta must have a length of at least two words per file closed. c Close mode: o 1 I 2 Figure 5-5. 5-32 ~ Regular close. Privileged close. Regular close by a privileged task. CLOSE FILE (f=#0005) Message Format (Sheet 1 of 6) 60459420 G Field Word Alpha(2) Description n Number of files closed by this message; maximum is one. eea Virtual bit address to receive control if an error occurs during processing of this message (rFO). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Beta( 1) ioc Input/output connector number of the file being closed. mcat File management category of the file being closed; stored in the file index table if the flag field is 2. The categories are: o Mass storage file. Scratch file. Output file. MODDROP file (formerly known as write-temporary file). User-created drop file. Batch file. 1 2 3 5 7 cf I A set of four control bits, as follows: cl 11 c2 11 c3 11 Bit cl 11 Description File type: o 1 Do not change the file type in the file index table. Change the type in the file index table to the value given in the type field. c2 Unused. c3 Drop file size: o 1 c4 c4 Do not change the drop file size. Change the drop file size in the file index table to that given in the length field. Drop file length: o 1 Do not remove the drop file length from the file index table. Remove the drop file length from the file index table. These flags can cause changes to be made in the file index table if the file ownership is private; pool, and the user is the pool boss; or public, and the user is privileged. This field must be all zeros for privileged closes (the ss field is A otherwise). Figure 5-5. 60459420 H CLOSE FILE (f=#0005) Message Format (Sheet 2 of 6) 5-33 Word Beta(1) Description Field type File type: o 1 2 bilb Bits used in last byte: o 1-7 flag Physical data file. Virtual data file. Virtual code file. All bits in last byte are used. From 1 to 7 bits in last byte are used. Flag for special action, as follows: f1 I f2 I f3 I f4 I f5 I f6 I f7 I fa I Description Bit fl-f3 Reserved. f4 bilb field: o 1 f5 dmp flag: o 1 f6 1 f8 Figure 5-5. 5-34 Do not change the nab fields in the file index table. Change the nab fields in the file index table according to the nab value supplied in Beta(2). mcat fields: o I Do not change the dmp bit in the file index table. Set the dmp bit in the file index table. nab fields: o f7 Do not set the bilb field in the file index table. Set the bilb field in the file index table to the value given in bilb in Beta(1). Do not change the mcat field in the file index table. Change the file index table's field management category to that given in the mcat Beta field. If mcat is changed to drop file and the caller is a production user number, the drop file is given production status and all write access permissions are removed from the file. Reserved. CLOSE FILE (f=#0005) Message Format (Sheet 3 of 6) 60459420 H Word Beta(l) Field Description opt Option field; for a privileged close only. If this field is 0, the file is not to be destroyed with this call; or, if it is 1, the file is to be destroyed with this call. ss Error response code. o 1 2 3 4 5 6 7 8 9 #A #B #C #E #F #10 1111 #12 #13 #14 #15 Beta(2) Normal completion. I/O connector was not for a mass storage file. I/O connector number was out of range. Attempt to alter a public file index table entry; the I/O connector is cleared, but no information is altered in the file index table (file is closed). File type, access right, or lockout specified by this request is illegal (file is closed). Close was requested for a file, one of whose pages is still locked in. A scratch or output file is open to another program of this user (file is closed to this problem program but not destroyed or given). Invalid name for a file with a management category of output (file is closed). Specified I/O connector was not open. Drop file map is full. Format error (privileged close only). Nonprivileged user (privileged close only). File was not found or not attached. Supplied nab value is inconsistent with the system-maintained value. (File is closed.) One file close per Alpha. Not all VSNs were returned in the VSN array; CLOSE completed. Label buffer too short; CLOSE completed. Not all entries are returned in the tapes table array; CLOSE completed. Illegal label in the buffer label. lun field in FILEI or IOC is invalid. db in tapes table does not match db of task. length Length of the drop file in blocks; set in the file index table if the c3 field is 1. nab Relative bit address, supplied by the caller, of the next byte to be written in the file. If the supplied value does not correspond to that maintained by the system at the block level, this value is ignored, the lbc/hbw field in the FILEI is set to indicate that the last block is full, and a warning error is returned. Figure 5-5. 60459420 H The values are: CLOSE FILE (f=#0005) Message Format (Sheet 4 of 6) 5-35 I For tape files: o 63 unused ioe Beta(1 ) ss 48 8 unused Beta(2) 8 ioer 48 16 dtt Beta(3) 64 Beta(4) dvsn 64 Beta(5) dulb 64 Beta(6) dlb 64 Word Beta(l ) Field Description ioc The files's input/output connector number. ss Error response field: o #F #10 #11 #12 #13 No errors. Only one file close per Alpha allowed. Not all VSNs were returned in the VSN array; CLOSE completed. Label buffer too short; CLOSE completed. Not all entries are returned in the tapes table array; CLOSE completed. Illegal label in buffer label. Beta(2) ioer Error number. The r field in Alpha is set to 3 if ioer is nonzero. Refer to appendix B for a complete description of the ioer error numbers. Beta(3) dtt Tapes table descriptor. returned by the system: Beta(4) dvsn Name 0-15 Itt 16-63 att Description Length of the tapes table buffer, in words. The buffer must be 12 words long. Virtual bit address of the tapes table buffer. The buffer must be on a word boundary. Descriptor for the VSN list. by the system: Figure 5-5. 5-36 Bit If nonzero, the tapes table entry is Bit Name 0-15 lvsn 16-63 avsn If nonzero, the VSN list is returned Description Length of the VSN list, in words (0 < lvsn 256). Virtual bit address of the VSN list. The buffer must be on a word boundary. < CLOSE FILE (f=#0005) Message Format (Sheet 5 of 6) 60459420 G Word Field Beta(5) Beta(6) dulb dlb Description Descriptor for the user trailer label buffer. If dulb is nonzero, the user trailer labels are supplied by the user. This field applies only when writing labels: E Name 0-15 16-63 lulb aulb Description Length of the user label buffer, in words. Virtual bit address of the user label buffer. The buffer must begin on a word boundary. Label buffer descriptor. If dlb is nonzero, the system returns the end-of-file labels here: Figure 5-5. 6045~420 Bit Bit Name 0-15 16-63 llb alb Description Length of the label buffer, in words. Virtual bit address of the label buffer. label buffer must be on a word boundary. The CLOSE FILE (f=#0005) Message Format (Sheet 6 of 6) 5-37 Mass Storage Files A program can issue the CLOSE FILE message to sever its connection to a file. After the file has been closed, the program no longer has access to the file through the severed connection, although other unsevered I/O connections might remain. Existence of the mass storage file is not affected by a close, but some file attributes in the file index table entry for the file are modified, and virtual address space associated with an implicit file is no longer defined. A file that has been privileged created or privileged opened can be closed only with a privileged close. The user must do a privileged close before doing a privileged destroy. I When a file is closed, the operating system gives the file to an output processor if the activity count (the count of programs accessing the file, that is, of I/O connectors for the file) is 0 and the management category is output. Other ways of outputting a file are to use the FILE DISPOSITION message (f=#OOOD) or the GIVE FILE message (f=#0008). When a file opened for implicit I/O and with write access is closed, modified pages of the file are rewritten in mass storage before the close function has completed. If the file does not have write access, modified pages are lost at the time the close function completes. All outstanding input/output requests are completed before any file index table changes are made. The file index table entry will exist in its new state only at the completion of CLOSE FILE message processing. Magnetic Tape Files The CLOSE FILE message can be issued only for a logical tape file that is open. There can be only one tape file specified in the Beta for each CLOSE message. After the successful completion of the CLOSE, the ioc is cleared and no input/output or positioning functions can be issued until a subsequent OPEN is issued. The CLOSE does not return the logical tape file. Files Connected to a Terminal The CLOSE FILE message is used to relinquish access to a file connected to a terminal. Existence or contents of the FILEI entry is not affected by a close. 5-38 60459420 F TERMINATE (f=#0006) A user program can issue a TERMINATE message to signal the operating system that it has completed execution. All lower level controllees are also terminated. The message consists of an Alpha portion only, as shown in figure 5-6. a 63 Alpha(1) 0000 unused 16 Alpha(2) rc unused 8 Word Al pha(1 ) 16 48 Description Indicates disposition of the drop file when the program is removed from main memory. The values are: 2 rc 0006 resume o Alpha(2 ) 16 8 Field c c 16 Drop file, scratch files, and output-type files are preserved (but not made permanent) so the program can be restarted. All modified pages belonging to write access files overwrite their current disk images and all other modified pages are written to the drop file. The resume address is stored in the drop file's minus page. Drop file and scratch files are destroyed. Give output-type files to the output processor. Same as option 0 except the terminate state is set to report an abort (#3D). Return code, set by the user. o 4 S The values are: Successful completion. Nonfatal error. Fatal error. This return code value is also referred to as the termination value. resume Virtual bit address at which the program is to be resumed when it is restarted. Figure 5-6. 60459420 F TERMINATE (f=#0006) Message Format 5-3q I LIST FILE INDEX TABLE (f=#0007) The LIST FILE INDEX TABLE system message can retrieve copies of one or more file index table entries. The message issuer can specify the file ownership category and file attributes of the entries to be returned. The file index entries are returned in the Beta portion of the message. The Beta length must be a multiple of the file index entry length (refer to figure 2-1). Qualifiers for the file index table search are specified only in the first entry length of the Beta. The file index table entry format is shown in figure 2-1. figure 5-7. The message format is shown in o 63 Alpha(1 ) r Alpha(2) n w 8 c 8 0007 16 eea 16 48 I bl ba 1 .......J L... _ _ _ _ _ 16 _ '--- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _481 Word Field r Description Response code returned by VSOS when message processing completes: o 1 2 3 4 5 6 7 8 9 #214 len Figure 5-7. 5-40 16 I Alpha(3) Alpha(l ) len 16 No errors. No files exist which match the options and qualifiers specified. More file entries exist than can fit in the Beta portion. At least one more file entry exists for the owner, but the file index entry has not been checked for matching qualifying fields. Caller is not a member of a pool or the pool is not attached. Illegal message option (c field). Incorrect file index entry length (w field). User table is full. FILEI is full. Incorrect user number. Invalid account number. Beta length error. Either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. Total Beta length. If len and virtual bit address of buffer is assumed to begin multiple of the file index is #FFFF, Alpha(3) contains the length the Beta buffer; otherwise, the Beta at Alpha(3). The length must be a entry length. LIST FILE INDEX TABLE (f=#0007) Message Format (Sheet 1 of 3) 60459420 E Description Field Word Alpha(1) w Current file index entry length (refer to figure 2-1). If an incorrect value is specified, a response code of 5 is returned and the system returns the correct value in this field. c Message option specifying the file index information to be returned: o 1 2 3 4 5 6 Alpha(2) Public file entries. Pool file entries. Private file entries. Entries for private files attached to this job. Entries found according to the file search hierarchy. The first search is for a private file attached to this job. If no file is found, the second search is for a pool file. If no file is found again, the third search is for a public file. File owner's access permissions, whether the file is attached or not. This option is the same as option 4, except that an additional word containing the third word of the file index entry is returned for each file. The format of the entries returned will parallel the actual format of the FILEI with the 3 word top entry returned first, followed by the 14 word bottom entry. n Maximum number of file index entries to return. If fewer than n qualifying file entries are found, this field is reset to the number of the file entries found. eea Error exit address; virtual bit address to receive control if an error occurs during message processing (r#O). If this field is 0 when an error occurs, the error ~s considered fatal. Alpha(3) bl, ba If the len value is #FFFF indicating the Alpha and Beta portions of the message are not contiguous, these fields give the length and virual bit address of the first full word of the Beta portion. Beta The Beta format is the same as the file index table format, except that the third word of the top is not returned (refer to figure 2-1). The Beta buffer length must be at least the file index table entry length multiplied by the number of entries to be returned (n). Values specified in the first entry of the Beta buffer are used as qualifiers in the file index table search. A pool name must be specified for option c=1; all other qualifiers are optional. Figure 5-7. 60459420 E LIST FILE INDEX TABLE (f=#0007) Message Format (Sheet 2 of 3) 5-41 The following qualifiers can be used with any option (c=O, 1, 2, 3, or 4). Refer to figure 2-1 for the field format. Qualifier Description name File name. qf Queue flag, indicating whether the file has been read by the IQM. mcat Management category. fidc Disposition code. fiic Internal format characteristics. fiec External format characteristics. fisid Source or destination processor mainframe identifier. fizip Destination processor zip number. mpn Master project number. acct Account number. The following qualifier can be used with options c=2 or 3. Qualifier user Description Owner's user number. When specified, the owner's file index entries are returned for files to which the caller has access. The oacs field in the file index table entry is set to the largest set of access permissions as determined from the general access permissions and the caller's individual access permissions. If within the Beta portion, a field in the first file index entry length is nonzero, the specified value is used as a qualifier. Zero cannot be used as a qualifier. Only those file index table entries with field values matching the specified qualifiers are returned. Figure 5-7. 5-42 LIST FILE INDEX TABLE (f=#0007) Message Format (Sheet 3 of 3) 60459420 E GIVE FILE (f=#0008) The GIVE FILE system message transfers file ownership. If the GIVE mode is 0 or 1, the file must be an attached permanent file, a local file, or an attached private pool file. (Only the pool boss can give pool file.) If the give mode is 2, the file must be a private, unattached permanent file. (Only privileged users can use GIVE mode 2.) A nonprivileged user can give a file to another user or to a pool. A privileged user can also give a file to the public file list. (The file must not have the same name as an existing public file.) The privileged system task can give a file to the IQM and the IQM can give a file to a user. Whenever a file is given to another user, the dmp flag in the file index table is cleared to indicate that the attribute of the file has been changed. The message format is shown in figure 5-8. More than one 2- to 4-word Beta portions can be specified. Only one Beta is processed for each Alpha. a 63 Alpha(1) len 16 Alpha(2) n 16 c 16 0008 eea 16 16 48 I I Alpha(3) IL-- _ _ _bl_ _ _ 16.....J'-- _ _ _ _ _ _ _ . _ _ _ ba _ _ _ _ _ _ _ _ _ 481 :J Beta(1 ) name Beta(2) ss acs 8 auser 8 48 I Beta(3) 64 I pname t~ pUbret~ 1:1 ~t~~:~-~_unured-~_2J-~jdn :~ Beta(4) I vri Beta(5) cuser/act 64 1 L _ _ _ _ _. __________________ 1 ~ Alpha( 1) Description Field Word r Response code returned by VSOS when message processing is complete: o 1 #211 #214 Figure 5-8. 60459420 H No errors. Error code returned as ss field of Beta(2). Number of files given was 0 or greater than 16. Beta buffer length error. Either the first word address of Beta plus its length is greater than the maximum virtual user address, or the Beta buffer is too small for the number of requests and length specified. GIVE FILE (f=#0008) Message Format (Sheet 1 of 4) 5-43 Word Alpha(l) Field len Description Total Beta length. If len is #FFFF, Alpha(3) contains the length and virtual bit address of Beta; otherwise, Beta is assumed to begin at Alpha(3). A Beta portion must be specified for each file to be given. The length of each portion depends on the give mode as follows: c=O c=1 c=2 c=3 I c Give mode: 0 1 2 I 3 Alpha(2) Two words to give a file to a user; four words to give a file to the public file list. Four words. Five words. Four words. The file is given to the private user number specified in Beta(2) or, if the specified user number is 0 and the issuer is privileged, the file is given to the public file list. The file is given to the pool specified in Beta(3). The file whose user number is cuser is given to the user number specified by auser. The caller must be a privileged user to use this mode. The local file that is the last group file of an output file family is given to the output queue and a JDN is associated with the last group file. n Number of files to be given; maximum is 16. eea Error exit address; virtual bit address to receive control if an error occurs during message processing (r~O). If this field is 0 when an error occurs, the task is aborted. Alpha(3) bl, ba If the len value is #FFFF (indicating the Alpha and Beta portions of the message are not contiguous) these fields give the length of Beta and the virtual bit address of its first full word. Beta(l) name File name (eight ASCII characters, left-justified, blank-filled). Beta(2) ss Error response code: o 1 3 4 5 6 7 8 9 #A #B #C #D Figure 5-8. 5-44 No errors; normal completion. File recipient already has a permanent file with this name. The specified file is not attached. The specified user number does not exist. Output file is incorrectly named. File to be given is still active. User is not privileged. Failure in modifying PFI. File recipient has a security classification less than that of the file. Either the specified pool does not exist, or the giver does not have access to the pool. cuser is not a valid user number. Not used. Permanent file space limit exceeded for new power. GIVE FILE (f=#0008) Message Format (Sheet 2 of 4) 60459420 H Word Beta(2) Field Description lIE IIF ss 1110 #11 #12 #13 #14 #16 1117 1118 1119 lilA IIlB II1C IIlD No space available in system tables FILEI or UDMINI. Issuer specified nonzero vri field, but the site does not use variable rate accounting. Issuer attempted to set a variable rate index (vri field) for a data file being given to the public file list. Only a code file can have a variable rate index set. Issuer attempted to give a file belonging to a pool for which she/he is not the pool boss. File is a magnetic tape file. File recipient already has the maximum number of files she/he can own. IQM user number specified. Unable to give ~ttached permanent file (if cuser is used). Cannot give connected file. Caller is not the owner of the file. File size exceeds limits for user. No JDNs available to assign to file (c=3 and jdn=O). Task is not privileged (c=3 and jdn=O). JDN specified is not caller's (c=3 and jdn .ne. 0). Destination user number is not an output spooler (c=3). File access permissions. This 8-bit field is treated as eight 1-bit fields, with each bit specifying the associated permission: acs Bit Hexadecimal Value 1-3 4 5 6 7 8 10 8 4 2 1 Description Unused. Execute access permitted. Modify access permitted. Append access permitted. Read access permitted. Write access permitted. auser User number (six ASCII characters, left-justified, blank-filled). For c=O or 1, auser is the user number of the file recipient. If the issuer is privileged and the auser and c fields are 0 and the len field is 4, the file is given to the public file list. When auser is nonzero, the len field must be 2 or 3. Beta(3) pname Pool name (eight ASCII characters, left-justified, blank-filled). This field specifies the pool to which the file is given when c=1. Beta(4) pubset Reserved for public file sets. vri Variable rate index set in the descriptor block (refer to Variable Rate Accounting in chapter 8). This field is only specified for virtual code files. Figure 5-8. 60459420 H I GIVE FILE (f=#0008) Message Format (Sheet 3 of 4) 5-45 I Word Beta(4) Field flag Description Other operations to be performed when giving the file to the public file list. This field is used only when the auser and c fields are both 0: 1 2 4 5 6 7 I Beta(5) Clear the originating user field in the file index table. Clear the originating user field in the file index table. The file is given to the specified pool; if c=l, this flag also causes the file to become privileged. Do both 1 and 4. The file is given to the specified pool; if c=l, this flag also causes the file to become privileged. Do both 1 and 4. jdn Job descriptor number (binary, 1 through 2047). cuser/acct The user number to which this file currently belongs. If c=2, indicates that a file is to be given to the user number specified by auser. Figure 5-8. Used only if c=3. GIVE FILE (f=#0008) Message Format (Sheet 4 of 4) The effect of the access parameter is determined by the current ownership and the resulting ownership of the file. If the current ownership is private and the resulting ownership is private, acs establishes the new owner's access permissions. If acs=O, the new owner's permissions will be the same as the previous owner had prior to the give. If the ownership goes from private to pool, acs establishes the access permissions that all pool members will have, including the pool boss. The default is the access permission the owner had prior to the give. If the ownership goes from private to public, acs establishes the access permissions all users will have to the public file. The default is read and execute access permissions. If the ownership goes from pool to private, acs establishes the access permissions the new owner will have. The default is the access permissions the pool boss had prior to the give. If the ownership goes from pool to pool, acs establishes the access permissions that all pool members of the receiving pool will have, including its pool boss. The default is that the new pool boss will have the access permissions the old pool boss had and the general access permissions are retained. If the ownership goes from pool to public, acs establishes the access permissions all users will have to the public file. The default is read and execute access permissions. 5-46 60459420 H LIST SYSTEM TABLE (f=#0009) With this message, a user can retrieve a formatted copy of part or all of certain system tables. For option 9, two word entries (one from the top and one from the bottom) are listed sequentially in the Beta area. The operating system moves entries from the disk status table to the Beta area until either the table or the Beta area is exhausted. The number of entries transferred is returned in the n field of the Alpha portion of the message. The Beta format for option #10 of this message is also used by the privileged options of the CREATE FILE and OPEN FILE messages. I For c field value of #10, the number of Beta words returned for each file entry is specified by the quantity len divided by n. For example, if 4 files (n=4) were to be listed and the len field is 16, only the first 4 Beta words of information for each file would be returned. To get all 16 words of information for each file would require that n=4 and the len field be at least 64. The format of the LIST SYSTEM TABLE message is shown in figure 5-9. (For some of the message options, the Beta portion of the message can consist of more than one of the multiword sets shown in the figure.) For a c field value of #10, the user can set up more than one Beta word group, and the operating system returns the same number of groups as the user set up. If the file was not found, the file name field of that group is zeroed. If the file name field of the first group is 0, the system returns all file index extension entries for those files which have ex tensions. o 63 Alpha(1 ) r len 16 Alpha(2) n 0009 c 16 16 16 eea 48 16 IL Alpha(3) Word Alpha( 1) bl _ _ _ _ _1~ ba ----- -------- Field r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 2 11214 Figure 5-9. 60459420 F I _ _ _ _ _4~ Illegal message option. Nonfatal; more files exists than fit in the Beta buffer. At least one more file exists for the owner but this file has not been checked for valid qualifiers (for option #10 only). Beta buffer length error. Either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. LIST SYSTEM TABLE (f=#0009) Message Format (Sheet 1 of 6) 5-47 I Word Alpha(l ) Description Field len If this field is #FFFF, Alpha (3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the total length in words of the Beta portion. For option #10, the len field should be at least 16n. For options 2 through 5 and option 9, this. field specifies the number of Beta words available for the requested system table (refer to the c field). c Message option field, specifying the system table information that the operating system is to return in the Beta portion. The values are: I 2 3 4 5 9 #F #10 Alpha(2 ) n Timecard buffer; a Beta length of at least 512 is required. Statistics buffer; a Beta length of at least 100 is required. Bank update table; a Beta length of at least 32 is required. Miscellaneous table; a Beta length of at least 104 is required. Disk status table; a Beta length of at least 32 is required. If more than the required number of words are specified to the bl field, the operating system resets the bl field to 32. (The system does not reset the bl field of option 2, 3, 4, or 5.) Job category table entries; a Beta length of 198 is required. File index table extension entries for all private files with extensions, or for individually specified private files. If the c field value is #10, n is the number of files to be listed; the quantity len divided by n specifies the number of words returned per file index table entry. For the other options, n is the size of the table to be listed (in words), and the Beta area should be at least n words long. The operating system moves words from the table into the Beta area until either the table or the Beta area is exhausted. The value of n must always be greater than O. For a c field value of #10, if the operating system finds fewer than n files to list, it resets n to the number of files found. I Al pha(3) eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first ~ull word of the Beta portion. For a c field value of 9, the operating system sets the bl field to the length of the table. Figure 5-9. 5-48 LIST SYSTEM TABLE (f=#0009) Message Format (Sheet 2 of 6) 60459420 F For message options 2, 3, 4, 5, and #F: o 63 tabwd 1 Beta( 1) 64 Beta(2) tabwd 2 64 I. Beta(n) tabwd n 64 Word Field Beta{1 ) through Beta(n) tabwd i Description One word of an n-word table; returned by the operating system when the c field is 2, 3, 4, 5, or #F. For message option #9: o 64 u o ~ 0 Beta( 1) P now 1 1 Beta(2) ~~ reserved zip1 pkno dsno 8 8 errs use 8 8 pu2 zip2 pu1 8 12 8 dau 8 dtype unused 8 16 dvno 8 8 4 label 12 repeat of Beta (1) for drive pack 2 Beta(3) 64 repeat of Beta (2) for drive pack 2 Beta( 4) ··· Beta(3 1) repeat of Beta (1) for drive pack 16 Beta(3 2) repeat of Beta (2) for drive pack 16 Figure 5-9. 60459420 E 7 LIST SYSTEM TABLE (f=#0009) Message Format (Sheet 3 of 6) 5-49 Word Beta(l ) Field up Description Status. The operating system sets this field to one of the following values: o Down. 1 I on Up. Usage. The operating system sets this field to one of the following val ues : o Off. IOn. drop Drop file. The operating system sets this field to one of the following values: o Drop files disallowed. 1 own Ownership. The operating system sets this field to one of the following values: o 1 Beta(2) System ownership. Private ownership. zipl Primary zip. pul Primary physical unit number. zip2 Secondary zip. pu2 Secondary physical unit number. dau Disk allocation unit. dvno Device number associated with this disc device. pkno Pack number written in pack label. dsno Device set number of which this pack is a member. use Percent of disk space in use (0-100). errs Fatal disk errors since autoload. dtype Device type of this pack. label Address of label of this pack. Figure 5-9. 5-50 Drop files allowed. LIST SYSTEM TABLE (f=#0009) Message Format (Sheet 4 of 6) 60459420 F For message option #10: o 63 Beta(1 ) 00 auser atjdn 12 8 44 Beta(2) name 64 Beta(3) ptrpfif unused 48 16 Beta(4) unused 64 a unused Beta(5) 20 r unused 42 2 Beta(6) unused 64 Beta(7) unused 64 Beta(8) extid unused 32 32 Beta(9) Beta(10) Beta(16) Word Beta(l) unuacs(1 ) used 4 8 unuacs(3) used 4 8 20 user(3} user(15) Field Figure 5-9. 60459420 H user(2) 20 user(4) 20 user(16) 20 Description I The job descriptor number (1 through 2047): =0 +0 auser 20 unuacs(16) used 8 4 user( 1) unuacs(15) used 4 8 atjdn 20 unuacs(2) used 8 4 unuacs(4) used 4 8 File is not attached. File is attached; atjdn contains the job descriptor to which the file is attached. The binary user number issuing the request; returned by the operating system. LIST SYSTEM TABLE (f=#0009) Message Format (Sheet 5 of 6) 5-51 Word Description Field Beta(2) name The name field of each Beta entry supplied can contain the ASCII name of a file for which information is to be returned. The operating system places a zero here if the name given is not found or does not have a file index extension entry. Beta(3) ptrpfil Pointer to the proper block of the PFI for this entry, relative to the first block of the PFI. Beta(5) apf Access permission flags: Bit 20=1 Bit 21=0 File index table extension. Used in file index table entry. Beta(8) extid Extension identifier used to match file index table entries when duplicate files occur. Beta(9) through Beta(16) uacs(i) Individual user access permission for the user specified in the user(i) field: user(l) Figure 5-9. 5-52 Bit Description 1-3 4 5 6 7 8 Reserved (ignored by the system). Execute access permitted. Modify access permitted. Append access permitted. Read access permitted. Write access permitted. Binary user number of a user whose access permission is defined by uacs(i). An entry of 0 indicates the end of the list. LIST SYSTEM TABLE (f=#0009) Message Format (Sheet 6 of 6) 60459420 E CHANGE FILE ATTRIBUTES (f=#OOOB) This message allows a user program to change various attributes of an existing local file, an attached permanent file, or a tape file. Nonprivileged users may change the file name, account, master project number, or retention period of their own files. Privileged users may also change the account number of another user's file, and they can change ostat, the output file status. The site security administrator user number can clear the drop file restart flag so that the drop file may be restarted. For tape files, only SIL file attributes may be changed. Whenever a change in file attributes occurs, the dump flag in the file index table is cleared to indicate the file has been modified. The format of the message is shown in figure 5-10. o 63 Alpha(1) len r cf 16 Alpha(2) 0008 c 16 8 unused 16 8 eea 48 16 Alpha(3) bl ba 16 48 Beta (1) cfile 64 Beta (2) nfile 64 Beta (3) usernum 64 Beta (4) unused mpn dflength 24 24 Beta (5) rp 10 6 csio 64 Beta (6) unused type 4 4 Beta (7) mcat 4 sfo bt 4 rmd rt 4 4 rlmin rpb It PIT 14 unused ic 4 4 3 ostat 5 ausize 24 unused 16 Beta (9) 8 rlmax 24 Beta (8) 8 8 ct reserved pc 16 mpru 32 account 64 Figure 5-10. 60459420 H CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 1 of 8) 5-53 I Word Field Alpha(l) r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 2 3 4 5 6 7 8 9 #A #C #D #E #F #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 #23 #24 #27 I #28 #29 #30 #31 #214 len Figure 5-10. 5-54 Current file name is still active. Current file name does not exist or is not attached. New file already exists. New account number is not valid. New file name is invalid. User is not privileged, although the len field is 3. Invalid c field value. Duplicate permanent file name. Not a level-1 task (a level-1 task is one with no controller). Caller is not owner of the file. Illegal type code. Unable to change characteristics of a connected file. For virtual code file only. Illegal management category. No match found in ioc for the file name given in cfile. Illegal class code. Illegal file organization code. Illegal blocking type code. Illegal record type code. Must have write access to cfile in order to change hba. Illegal attribute for a tape file. Invalid ct value. Invalid ic value. Illegal record type change for a direct access file. Illegal ostat field. Unable to change ostat field in the FILEI. Invalid account. Illegal master project number. Caller is not the site security administrator user number. File is not a drop file. No user table entry available or the FILEI is full. Undefined user number. Nonprivileged caller. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the message; otherwise, Beta is assumed to begin at Alpha(3), and len must be 9. CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 2 of 8) 60459420 H Word Field Alpha(l ) cf Description File attribute change options for mass storage files only. Control bits are represented as follows: cf8 cf7 un- cf5 cf4 cf3 cf2 cf1 used 1 1 1 1 1 1 1 1 Description Subfield cf8 Internal characteristics: o 1 cf7 Communication type: o cf5 1 1 1 1 1 60459420 E Do not change retention period~ Change the retention peroid. File type: o Figure 5-10. Do not change the drop file size. Change the drop file size in the file index table to the value given in the dflength field in Beta(4). Retention period: o cfl Do not change the mcat field in the file index table. Change the meat field in the file index table to the value given in the mcat field in Beta(5). Drop file size: o cf2 Do not reset hba. Reset hba to 1 in the file index table and to 0 in the ioc. Source file (ioc number 16) and drop file (ioc number 17) cannot be changed. Management category: o cf3 Do not change communication type. Change communication type. Byte address (hba): o cf4 Do not change internal characteristics. Change internal characteristics. Do not change the file type in the file index table. Change the type field in the file index table to the value given in the type field in Beta(5). CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 3 of 8) 5-55 Word Field Alpha(l) c Description Type of change. o 1 I I 2 The values are: Change mpn, account number, and/or file attributes. Only c=O is valid for tape files. Enable the restart of the drop file identified by cfile and usernum. This option is valid for the site security administrator user number only. (No other file attributes are changed.) Change the account number of this executing level-l task (such as a batch processor); cfile is the drop file name of the task. Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (rFO). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. There is only one Beta per Alpha. Beta(l) cfile For c=O, this field must contain the current file name in ASCII, left-justified with blank fill. If changing only the filename, the c field must be 0 and nfile must contain the new filename (refer to the following description of nfile). The cf and csio fields must also be O. To change file attributes (cf, csio) without changing the filename, the c field and the new filename field must both be O. The current filename (cfile) must also be given. File names must be in the format described in File Concepts. For c=2, this field must contain the task's drop file name. Beta(2) nfile When the c field is 0, this field must contain the new file name in ASCII, left-justified with blank fill. The file name cannot be changed for tape files. Beta(3) usernum Binary user number under which the new account is valid (a privileged user issued a call with the c field set to 0 or the site security administrator issued the call with c set to 1). Beta(4) dflength Length of the drop file in blocks when cf3 is set to 1. file may be no larger than #3FFFF due to drop file map limitations.) mpn Master project number in ASCII, left-justified with blank fill. To change the master project number, c must be set to O. The mpn cannot be changed for tape files. rp Retention period in days; in binary notation when cf2 is set to 1. Figure 5-10. 5-56 (The drop CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 4 of 8) 60459420 H Word Field Beta(5) Description csio SIO file attribute change options for local, permanent, or tape. Control bits are respresented as follows: o 63 cc cc cc cc cc ccc unused 55 5 5 55 5 5 55 555 12 11Q 98 76 54 3 2 1 unused 1~ 48 3 1111111111111 Subfield cs13 Description Output file status: o 1 cs12 Allocation unit o 1 cs11 1 1 o o o 60459420 E Do not change the records per block. Change the records per block to that specified in the rpb field. Record mark: 1 Figure 5-10. Do not change the label processing. Change the label processing to that specified in the lp field. Records per block: 1 cs7 Do not change the tape mode. Change the tape mode to that specified in the tm field. Label processing: 1 cs8 Do not change the maximum PRU size. Change the maximum PRU size to that specified in the mpru field. Tape mode: o cs9 Do not change allocation unit. Change allocation unit to that specified in the ausize field. Maximum PRU size: o cs10 Do not change output file status. Change the output file status to value specified in ostat field. Do not change the record mark. Change the record mark to that specified in the rmd field. CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 5 of 8) 5-57 Word Field Description Subfield Beta(5) csio cs6 Description Padding character: 0 1 cs5 Record type: 0 1 cs4 1 type 2 2 3 7 sfo 1 5-58 Mass storage file. Scratch file. Output file. MODDROP file (formerly known as write-temporary file). Batch file. File organization when csl is set to 1: 0 Figure 5-10. Physical data file. Virtual code file. File management category when cf4 is set to 1: 0 1 I Do not change the file organization. Change the file organization to that specified in the sfo field. File type code when cfl is set to 1: 0 mcat Do not change the blocking type. Change the blocking type to that specified in the bt field. File organization: 0 Beta(6) Do not change the minimum record length. Change the minimum record length to that specified in the rlmin field. Blocking type: 0 1 csl Do not change the maximum record length. Change the maximum record length to that specified in the rlmax field. Minimum record length: 0 1 cs2 Do not change the record type. Change the record type to that specified in the rt field. Maximum record length: 0 1 cs3 Do not change the padding character. Change the padding character to that specified in the pc field. Sequential. Direct. CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 6 of 8) 60459420 H Description Field Word Beta(6) bt Blocking type when cs2 is set to 1: o 1 2 4 rt Record type when cs5 is set to 1: o 1 2 4 5 7 Control word (W). ANSI fixed length (F). Record markeR). Lower CYBER controlword (L). System block (B). Undefined (U). rmd Record mark when cs7 is set to 1 (any 8-bit ASCII character). pc Padding character when cs6 is set to 1 (any 8-bit ASCII character). ct Communication type: o 1 2 ic 1 2 3 ostat Default; currently 1. Eight-bit ASCII. If dc=SC (refer to figure 5-9), file has free form carriage control. Binary notation. Eight-bit ASCII. If dc=SC (refer to figure 5-9), file has ANSI carriage control. Output file status: o 1 2 3 4 5 6 7 8-32 Figure 5-10. Reserved. Access station. Remote Host Facility. Internal characteristics, indicating the format of the file: o 60459420 E SIL assumes the file was created before SIL was added to the system; therefore it enters default values in the SIL fields of the file index entry. Internal blocking (I). Character type blocking (C). Exact records blocking (K). Normal status. Destination LID disabled. Destination not responding. Destination rejecting file. SIL error occurred during file transfer. DIVERTED. Hardware ~ath to LID not available. SYS error occured during file transfer. Reserved by CDC. CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 7 of 8) 5-59 Word Beta(7) Beta(8) Description Field rlmin Minimum record length when cs3 is set to 1 (24-bit, user-supplied length in number of bytes). rlmax Maximum record length when cs4 is set to 1 (24-bit, user-supplied length in number of bytes). ausize Allocation unit size in blocks when cf2 is set to 1. User specified guideline for operating system to follow when extending file. rpb Records per block (used only for bt=k) when cs8 is set to 1. lp Label processing when cs9 is set to 1: o 1 tm Tape mode when csl0 is set to 1: o 1 Beta(9) Binary. Coded. mpru Maximum PRU size (used only for V-format tapes) when csll is set to 1. account Account number, in ASCII, left-justified with blank fill. This field must be valid under the user number of the task issuing the message, or if the user is a privileged user, this field must be a valid account number under the user number specified in Beta(3). Figure 5-10. 5-60 Read and verify the existing labels. Write new labels. CHANGE FILE ATTRIBUTES (f=#OOOB) Message Format (Sheet 8 of 8) 60459420 E FILE DISPOSITION (f=#OOOD) A user program can issue this message to specify the disposition of a file, freeing the user from the burden of using naming conventions to accomplish disposition of a file. The file must be either a local mass storage file or an attached permanent file. The format of the FILE DISPOSITION message is shown in figure 5-11. (The Beta portion of this message can consist of more than one of the seven-word entries shown in the figure.) o 63 Alpha(1 ) r len unused 16 Alpha(2) 0000 16 n 16 16 eea 16 Alpha(3) 48 bl ba I L _ _ _ _ _1~L- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Beta ( 1) I ~8.J name 64 Beta(2) flags def 40 Beta(3) unused ie em Beta(5) nae 8 16 16 st unused ot 16 8 de 32 Beta(4) ss el 8 24 8 16 tid 8 56 Beta(6) fid 64 'Beta(7) unused 64 Word Alpha( 1) Field r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 #211 #214 Figure 5-11. 60459420 E Error code was returned in an ss field of Beta(2). Number of files routed by this message was illegal (the n field is 0). Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. FILE DISPOSITION (f=#OOOD) Message Format (Sheet 1 of 3) 5-61 Word Field Description Alpha(l) len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len in the length in words of the Beta portion (a multiple of 7). Alpha(2) n Number of files to be routed by this message. files. eea , Maximum is #FFFF Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Beta(l) name File name, in ASCII. File names must be in the format described in File Concepts, Chapter 3. Beta(2) flags Flag bits. Each bit must be set to 0 if the specified parameter is to be ignored, or set to 1 if the specified parameter is to be processed (the value is to be placed in the appropriate file index table entry field). Beta(2) bits and corresponding parameters in this field, from left to right starting from 0, are: o 1 2 3 4 5 dc cm st 6 7 8 ot Unused tid 9 10 11 fid Unused nac def If set to 1, indicates that file disposition is to be deferred. The operating system stores the information about the file into the file index table but does not dispose of the file. el Beta entry length; must be at least 2 and no more than 7. ss Error response field. 2 3 4 5 6 7 8 9 #B #C #D #E Figure 5-11. 5-62 Unused Unused ic The values are: Immediate release (def=O) of an active file. Immediate release (def=O) of a nonallocated file. Beta entry length (el) error. File must be attached before the route message is executed. Immediate release (def=O) with no disposition set. Could not write a PFI entry. Illegal disposition code. Illegal site identifier, or the mainframe site identifier is not logged in. Illegal file name. Attempt to route a magnetic tape file. RHF files may not be routed. Files connected to a terminal may not be routed. Caller is not the private file owner. FILE DISPOSITION (f=#OOOD) Message Format (Sheet 2 of 3) 60459420 E Word Beta(3) Beta(4) Field Description ic Internal characteristic, indicating the format of the file. to figure 5-9 for the possible values in this field. dc Disposition code, indicating how the file is to be disposed. Refer to figure 5-9 for the possible values in this field. cm Conversion mode, indicating the type of conversion to be performed on the file when it reaches the access station (st=AST): DI EC BI st Refer Display code (64-character set). Extended display code (128-character set). Binary. Site identifier, identifying the processor responsible for processing the file. If the disposition code is IN (input for batch processing), this field identifies the processor on which the file is to be executed. If the disposition code specifies an output queue, this field identifies the processor on which the file is output. For possible values for this field, contact a site analyst. ot Origin type of a file. B E I Beta(5) Beta(6) nac Access station area code. tid Terminal identifier. The central site is indicated by tid=O. (Not meaningful for files destined for the CYBER 205.) fid The first five characters of the file name that is to designate the file while it is in the output queue. Any combination of one to five letters and numbers can be specified, with the first character a letter. Two unique job sequence characters added by the system to the job name are used as the sixth and seventh characters of the file name. The eighth character (CYBER 200 only) is a blank. Figure 5-11. 60459420 E Local batch. Remote batch. Interactive. FILE DISPOSITION (f=#OOOD) Message Format (Sheet 3 of 3) 5-63 USER/ ACCOUNTING COMMUNICATION (f=#OOOE) A user program can issue the USER/ACCOUNTING COMMUNICATION message to retrieve accounting statistics from the cumulative accounting buffer. This call is used by the batch processor to communicate with the accounting system. Only the accounting statistics for the program issuing the message are available to the program; the statistics are available via this message only for the duration of the job. The format of this message is shown in figure 5-12. The Beta portion of the message is described under the c field definition. The value in each of the Beta words, except for the leftmost 16 bits of Beta(15), is a sum over all accounting periods for the job up until issuance of the USER/ACCOUNTING COMMUNICATION message. o 63 Alpha(l) r Alpha(2) OOOE c len 16 16 unused 16 eea 16 Alpha(3) I L Word Alpha(l ) ba Field 5 7 8 #214 Figure 5-12. - ---- 1 --- _ _ _ ._48 _1 Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 4 len ------ Description 2 3 5-64 48 bl _ _ _ _ _1~ r 16 Illegal message option. Nonprivileged task attempted to use a privileged option; or, option 1 or 2 was issued by a user other than a level-1 task. System time unit (STU)/system billing unit (SBU) value is less than O. Too many entries are written to the accounting file. Error in call to user validation routine. Account number is not valid. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. For message option 1, len must be 1; for option 3, len must be 22; for option 4, len must be 0; and for option 9, len must be 5. USER/ACCOUNTING COMMUNICATION (f=#OOOE) Message Format (Sheet 1 of 4) 60459420 E Word Alpha(1 ) Field c Description Message options: o 1 2 3 4 5 6 7 8 Y Reserved. Start of this batch job; can be issued only from a level-1 task. End of this batch job; can be issued only from a level-1 task. Retrieve accounting information for this task or for all level controllees executed since the start of this batch job. Dump accounting temporary storage to permanent storage and terminate the accounting file; can be issued only by a privileged task. No Beta portion is used for this option. Close out current system dayfile and start a new one; can be issued only by a privileged task. No Beta is used for this option. Allows operating system file transfer utilities to make accounting record entries. Beta(1) through Beta(6) will contain accounting record information. Adds accounting information pertinent for bill usage to the account file. Adds STUs/SBUs to user's accounting statistics. Adds project accounting information to the account file. Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Message options: For option 1, the Beta portion of the message consists of one word, a job name of up to eight ASCII characters starting with a letter, left-justified with blank fill. For option 2, Beta words 2 through 6 are optional; therefore, the Alpha length must be set accordingly (len is either 1 or 6). o 63 Beta (1) job name 64 job sbu/stu Beta (2) 64 Beta (3) project 64 project Beta (4) 64 Beta (5) project project 32 Beta (6) 32 project sbu/stu 64 Figure 5-12. 60459420 F USER/ACCOUNTING COMMUNICATION (f=#OOOE) Message Format (Sheet 2 of 4) 5-65 I Word I Field Description Beta(l ) jobname Job name in ASCII, left-justified with blank fill. Beta(2) job sbu/stu Total SBU/STU amount accumulated by the job. Beta(3) through Beta(5) project 1- to 20-character project number, in ASCII, left-justified with blank fill. Beta(6) project sbu/stu Total SBU/STU amount accumulated by the project number. For option 3, VSOS returns the following Beta words: Beta(l ) Beta(2) Beta(3) Beta(4) Beta(5) Beta(6) Beta(7) Beta(~) Beta(9) Beta(10) Beta(ll) Beta(12) Beta(13) Beta(l4) Beta(l5) Beta(l6) Beta(17) Beta(18) Beta(l9) Beta(20) Beta(2l) Beta(22) Figure 5-12. 5-66 User execution CPU time, in microseconds. Memory usage; at the end of each accounting period, (current working set size)*(user CPU time for current accounting period) is computed and added to a running total kept in this field. Number of 16-bit bytes transferred to or from tape files. Number of tape accesses (input/output requests issued) for reads and writes. Number of nonread and nonwrite tape functions, such as read hardware status. Virtual and resident CPU time, in microseconds, for user program execution. Number of disk accesses (input/output requests issued) for large page explicit reads and writes. Number of disk accesses (output requests issued) for large page implicit writes. Number of disk accesses (input/output requests issued) for small page explicit reads and writes. Number of disk accesses (output requests issued) for small page implicit writes. Number of disk sectors transferred for explicit reads and writes. Number of disk sectors transferred for implicit writes. Number of disk accesses (input requests issued) that resulted from large page faults (large page implicit reads). Number of disk accesses (input requests issued) that resulted from • small page faults (small page implicit reads). Current working set size (leftmost 16 bits), and the number of virtual system user calls made (rightmost 48 bits). STUs (cumulative TCHARGE calculations, integer). SBUs (cumulative MCHARGE calculations, real). Number of large pages lost. Number of small pages lost. Cumulative amount of CPU time for which this task's working set size limit appeared to be too small. Account block STU value (integer). Account block SBU value (real). USER/ACCOUNTING COMMUNICATION (f=#OOOE) Message Format (Sheet 3 of 4) 60459420 F For options 4 through 6, there is no Beta portion. For option 7, the Beta portion of the message is as follows, with up to 10 words of Beta: o 63 string of installation-defined data Beta (1) 64 ·· · 7 string of installation-defined data Beta (n) 64 Maximum length of 80 characters containing billing information. For option 8, the Beta portion of the message consists of one word, a positive floating-point STU/SBU amount. For option 9, the account set in Beta(l) is checked for validity and the accumulated account block SBUs or STUs are returned to the caller. o 63 Beta (1) account 64 Beta (2) project 64 project Beta (3) 64 Beta (4) project unused 32 32 project sbu/stu Beta (5) 64 Word Field Beta(l) account Account number in ASCII, left-justified with blank fill. Beta(2) through Beta(4) project 1 to 20 character project number in ASCII, left-justified with blank fill. Beta(5) project sbu/stu Total SBU/STU amount accumulated by the project number. Figure 5-12. 60459420 E Description USER/ACCOUNTING COMMUNICATION (f=#OOOE) Message Format (Sheet 4 of 4) 5-67 ATTACH PERMANENT FILE (f=#0010) A program issues this message to attach an existing permanent file. Only one Beta is processed for each Alpha used. The format of this message is shown in figure 5-13. o 63 Alpha (1) len r 16 Alpha (2) 0010 c 16 n 16 eea 16 48 bl Alpha (3) 16 ba 16 48 Beta (1) name 64 Beta (2) ss flag acs 8 8 unused 40 8 owner Beta (3) 64 Word Field Alpha( 1) r Description Response code returned by the operating system when this message has been processed. If no error occurs, the code is 0; otherwise: 1 2 3 4 5 6 #211 #214 Alpha(2) len If this field is #FFFF, Alpha(3) exists and contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to be located beginning at Alpha(3), and len is the length of the Beta portion of the message. c Control field. If this field is 0, attach files given in the Beta field. If this field is 1, attach all files (no Beta required). n Number of requests in this message (maximum is 16). c=1. Figure 5-13. 5-68 Refer to Beta field ss for the specific error. All Beta entries are processed. More than one of the following response codes 4, 5, and 6. Illegal option. Control field contains an illegal value (not 0 or 1). Access conflict with another job of this user. Filename is in use as a local file. Access conflict with another user. Number of files given was 0 or greater than 16. Beta buffer length error. Either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. Not used for ATTACH PERMANENT FILE (f=#0010) Message Format (Sheet 1 of 2) 60459420 E Word Field Description Alpha(2) eea Virtual bit address to receive control if an error occurs while this message is processed (r not equal to 0); if eea is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta portion of the message is not contiguous to the Alpha portion (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Beta(1) name Name of the file in ASCII; file names (left-justified with blank fill) must be in the format described in chapter 3. Drop file can also be attached. Beta(2) ss Error responses: o 1 2 3 4 5 6 7 8 9 IIA #B IIc liD acs Normal completion. Permanent file name not found. File already attached to this job. Access conflict with another of user's jobs. File already attached as a local file or attached permanent file. No user table entry available. Access violation; user does not have requested access permissions. Access conflict with another user. Specified user number does not exist. Not enough space in the FILEI system table. File spans a downed device. Read-only access required for partial attach. Attempted to attach a purge-only file. User attempted to attach a file with write, modify, or append access when the field is privileged open. I Desired file access. This field is treated as eight I-bit fields. Each bit set requests the associated access. Combinations are allowed. The values are: Bit 1-3 4 5 6 7 8 Hexadecimal Value 10 8 4 2 1 Description Unused. Execute access. Modify access. Append access. Read access. Write access. If acs is binary 0, the default is all access types permitted to the caller. flag A set of 8 bits (Fl through F8) indicating a special action. Values are: fl=O fl=1 fl=2-8 Beta(3) owner Figure 5-13. 60459420 H Do not attach file spanning a downed device. Attach file spanning a downed device. Reserved. ASCII user number of file owner (six ASCII characters, right-justified, zero-filled). If this field is 0, the caller's user number is used. ATTACH PERMANENT FILE (f=#0010) Message Format (Sheet 2 of 2) 5-69 I GET PACK LABEL AND PFI (f=#OOll) A privileged user or master user issues this message to retrieve the pack label and pack file index for a specified pack. The preferred option is to return unformatted entries (c=l) • If the user is a privileged user, all the PFI entries are returned for the specified pack. If the user is a master user, only those PFI entries (for which the user is a master user of the account) are returned for the specified pack. In the first call, the user initializes the Alpha words (n set to 0) and the packid field in Beta(l). The length of the Beta portion must be at least 528 (one block plus 16 words for the pack label). The pack label is returned in Beta(l) through Beta(ll) and the PFI entries are returned starting at Beta(l7). A count is returned to the n field indicating the number of entries plus one that have been returned in the current call (or series of calls, if more than one call is issued). If a 1 is returned in the r field of Alpha(l), more PFI entries exist and the call must be reissued to get the rest of the entries. In the second and any subsequent calls, the n field must contain the count returned in the previous call. PFI entries are then returned starting at Beta(I). The label format, as set by the system routine NAMEPACK, is shown in figure 5-14. The format of the entries is the same as for the LIST FILE INDEX OR SYSTEM TABLE message option 1 (shown in figure 5-9), except that the user/ref field is always ref and oacs always contains the oacs value. o Alpha(1) 63 len r 16 Alpha(2) 0011 c 16 16 16 eea n 48 16 Alpha(3) I bl L - . - - - _1f! - - Figure 5-14. 5-70 I ba ----- ---- ------ _4~ GET PACK LABEL AND PFI (f=/l0011) Message Format (Sheet 1 of 4) 60459420 E 63 Beta (1 ) volume 64 Beta (2) series packid 16 48 Beta (3) pfiloc label 40 24 Beta (4) pfie pkln pfil 16 32 16 Beta (5) creation 64 Beta (6) update 64 Beta (7) expiration 64 Beta (8 ) dau Beta (9 ) dfsloc dfsl 16 dtyp 16 32 bsmloc dvno 16 Beta (10 ) 16 32 devset 64 Beta (11 ) type 64 Beta (12 ) badspot 64 ~ Beta (13) timestamp 64 Beta (14 ) unused 64 unused Beta (15) 64 Beta (16 ) check _byte unused 16 Figure 5-14. 60459420 E 48 GET PACK LABEL AND PFI (f=#0011) Message Format (Sheet 2 of 4) 5-71 Word Description Field Alpha(1 ) r Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 2 3 4 5 6 I len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. This field must be multiple of 16 and a minimum of 528. c Message options: o 2 Alpha(2) Nonfatal error; more files exist than the Beta portion could hold; reissue the call to get the rest. User is not privileged or is not a master user. Disk I/O error. Pack identifier was not found. Illegal option. User directory not found. Return pack label (Beta is at least 16 words). Return PFI entries (Beta is a multiple of 16, at least 512 words). Return bad spot map (Beta is at least 512 words). n This field must be set to 0 by the user for the first call, causing the pack label alone to be returned. For a reissued call, this field must be set to the value that the operating system returned to the user in this field for the previous call. If C=1, n indicates the starting entry. eea Virtual bit address to receive control if an error occurs during processing of this message (r40). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3 ) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word 0'£ the Beta portion. Beta(1 ) volume When the call is issued, Beta(l) contains the pack number. Contains the characters VOL 3 to distinguish the label from the earlier versions that contained VOL 2. Beta(2) packid Pack identifier of the pack sought, in ASCII, left-justified with blank fill. For a first call (n=O), the pack identifier in Beta(1) is overwritten with the returned label. Sixteen words of the pack label are returned (last three words are not used); all 16 words of each used pack file index entry are returned. Pack identifiers are obtained using option 9 of the LIST SYSTEM TABLE (f=#0009) message. series Value of 2031, in hexadecimal notation. Figure 5-14. 5-72 GET PACK LABEL AND PFI (f=#OOll) Message Format (Sheet 3 of 4) 60459420 F Description Field Word label Disk block address of this label. pfiloc Disk block address of the first block of the Pack File Index (PFI). pfie Entry number of this entry within the PFI, counting from O. pfil Length of the PFI in blocks. pkln Pack length that is the number of sl2-word blocks that can be allocated on this disk pack. Beta(s) creation ASCII date, in the format mm.dd.yy, of the creation of this label. Beta(6) update ASCII date, in the format mm.dd.yy, of the last update of the disk. Beta( 7) expiration ASCII date, in the format mm.dd.yy, of the expiration of the disk. Beta(8) dau The disk allocation unit contains the binary number of sl2-word blocks in an allocation unit. It is the minimum allocation unit for this disk pack. dfsl Length of the directory of file segmentation (DFS). dfsloc Starting disk block address of the DFS. dtyp Device type indicator: Beta(3) Beta(4) Beta(9) 1 2 3 Reserved. 81912 disk pack (single density, 18 sector). 81922 disk pack (double density, 18 sector). dvno Device number associated with this disk pack. bsmloc Starting disk block address of the bad spot map (BSM). Beta(10) devset Device set name in the format DVSTxx, where xx is the device set number. The field is left-justified and blank-filled. Beta( 11) type Type of disk pack: 81912 or 81922 in hexadecimal notation; used by the operating system to determine the length of the disk pack. (Returned for release version 2.1.5 compatibility only.) Beta(12) badspot Name of pseudo file converting the bad spot map. release version 2.1.5 capability only.) Beta(13) timestamp Time of last autoload. Beta(l6) Figure 5-14. 60459420 E (Retained for Check sum of selected fields of the pack label. Words 1 through 4 and 8 through 12 are used to generate the check_byte. GET PACK LABEL AND PFI (f=#OOll) Message Format (Sheet 4 of 4) 5-73 LIST CONTROLLEE CHAIN (f=#0013) A user program can obtain a list of the controllee chain, including the program level and descriptor block number, the executable source file name, drop file name, and so forth, of each task in the chain, by using the LIST CONTROLLEE CHAIN message shown in figure 5-15. The issuing program can determine its own position in the chain by comparing fields j and b in Alpha(2) with fields sand t in Beta(l). A total of nine levels is the maximum; that is, eight controllees plus the level-1 batch processor or virtual system interactive processor. The descriptor block number is unique and is associated with the program until it terminates. Observe that level 1 will be listed for a batch job. Level 2 will be the highest level for which information is returned if the task is running interactively. o 63 Alpha(1) r len j Alpha(2) IL 16 8 8 b eea 48 8 8 Alpha(3) 16 0013 unused c 16 bl I ba ____ 16 -- ------ -- --- ----- _ _4~ o Beta( 1) 63 s t 8 Beta(2) ctlr 8 unused 40 8 k tl 56 8 Beta(3) source 64 Beta(4) drop 64 Word Field AlphaO) r Description Response code; returned has been processed. If and this field contains otherwise, the response 1 2 #214 Figure 5-15. 5-74 by the operating system when this message no error occurs, control proceeds normally the number of words returned in Beta; code is: The length specified for Beta is O. An illegal option was selected. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. LIST CONTROLLEE CHAIN (f=110013) Message Format (Sheet 1 of 2) 60459420 E Description Field Word Alpha(1) len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. For message option 0, len must be a multiple of 4, up to a limit of 36. For message options 1, 2, and 3, len must be 4. c Message options: o 1 2 3 Alpha(2) List all control lees in the chain; controllees are listed in ascending order, starting with the job control processor. List only the program that issued the message. List only the controller of the program that issued the message. List only the control lee of the program that issued the message. j Level in the control lee chain of the program that issued the message. Level numbers in this field range from 1 to 9. b Descriptor block number of the program that issued the message. eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(1 ) s The level in the controllee chain of the program whose name is in Beta(3). Level numbers in this field range from 1 to 9. t Descriptor block number of the program whose name is in Beta(3). ctlr Descriptor block number of the controller of the program whose name is in Beta(3): #FF Beta(2) Controller is interactive processor. k Descriptor block number of the control lee of the program whose name is in Beta(3). This field can be O. tl Time limit of the program whose name is in Beta(3). Beta(3) source Name of the executable source file, in ASCII. Beta(4) drop Name of the drop file, in ASCII. Figure 5-15. 60459420 E LIST CONTROLLEE CHAIN (f=#0013) Message Format (Sheet 2 of 2) 5-75 SEND A MESSAGE TO CONTROLLER (f=#0014) This message is used by a program to send a string of binary or ASCII data to a program controller or the job control processor (the batch processor or virtual system interactive processor). When this message is issued, the operating system copies the data string from the Beta portion of the message into a system buffer. When output requests are being sent to a virtual system interactive processor (for example, a user at a terminal) from a task (its controllee) and the wait or replace option (m=O) has been selected, the system message buffer can hold up to 5 data strings or 4096 character bytes, whichever limit is reached first. For a logged-out user, only one data string can be held in the buffer. The data is grouped in blocks of 151 character bytes and sent, 1 block at a time, from the virtual system interactive processor to the output device. If the last block is fewer than 151 character bytes, an end-of-message character is added after the last character byte. The issuer of the message is responsible for formatting any multiline strings to be sent to a terminal by inserting line feed and carriage return characters at the appropriate places in the string. If a data string from a controller has been sent but not requested by the controllee when the controllee issues this message, the data string from the controller to the controllee is lost. The control lee should check, therefore, to see if any data strings are waiting to be received before it issues this message. If the controller is the batch processor, the message is put in the job dayfile. The format of this message is shown in figure 5-16. The Beta portion contains the string of binary or ASCII data sent to the program controller or job control processor. The maximum length of the Beta portion, when present, is 4096 character bytes. When a data string is sent in this way to the virtual system interactive processor, the processor sends it to an output device (a terminal). o 63 Alpha(1) 16 16 Alpha(2) unused I L_ Word AlphaCl ) 48 ba bl --- _1§ --------- ______ I ~8...J Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 2 3 5-76 - - Description 1 Figure 5-16. 16 eea 8 Field r 8 8 b 8 Alpha(3) 0014 cf c len r Length of Beta in character bytes is either 0 or greater than 4096. Illegal option was selected for this message. No controllee matches the value of b=O, or this task is a level-1 task; therefore, sending this particular message was pointless. SEND A MESSAGE TO CONTROLLER (f=#0014) Message Format (Sheet 1 of 2) 60459420 E Word Field Alpha(1) Description r 4 6 7 #214 len If this field is #FFFF, Alpha(3) contains the length in character bytes and the virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in character bytes of the Beta portion. c Message options: o 2 cf 2 Alpha(3) The values are: Send the data string to the controller. If the controller is a virtual system interactive processor or batch processor, continue running this controllee program (the program issuing this message); otherwise, start running the controller and stop running this controllee program. Send the data string to the level-1 task. Continue running this controllee program. b Descriptor block number of the controller. If the data string is to be sent directly to a level-1 task (c=2), or if this program's controller is a level-1 task, this field is ignored. If this field is 0, the data string is sent to the next higher controller. eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these paralneters indicate the length in character bytes and virtual bit address of the first full word of the Beta portion. Figure 5-16. 60459420 E If the controller to whom the data string was sent is a logged-out user, replace any existing string waiting in the buffer with the new string. If the job control processor buffer is full, stop running this program until the buffer is free. If the data string cannot be sent to the controller, return control to the error exit address. If the data string cannot be sent to the controller, stop running this program until the message can be sent. Control field. o Alpha(2) If the notify option was selected (c=1), the controller designated was a job control processor for a logged-out user. If the notify option was selected, the system output buffer is full. Error in sending message to job dayfile. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. SEND A MESSAGE TO CONTROLLER (f=#0014) Message Format (Sheet 2 of 2) 5-77 SEND A MESSAGE TO CONTROLLEE (f=#OOlS) A program starts a controllee running by issuing a SEND A MESSAGE TO CONTROLLEE message. The optional Beta portion of this message contains a string of binary or ASCII data for the controllee to receive as soon as the controllee has been started running. If the Beta portion is present when the operating system processes the SEND A MESSAGE TO CONTROLLEE message, the operating system copies the data string from the Beta portion into a system buffer before it starts the controllee. The controllee will have to issue a GET MESSAGE FROM CONTROLLER OR OPERATOR message to retrieve the data string from the system buffer. A special situation arises if any controllee (except for the immediate controllee of a level-1 task) issues a GET MESSAGE FROM CONTROLLER OR OPERATOR message when no data string is waiting in the system buffer. In this case, the controllee stops running and waits until a message is sent to it, and the next higher controller in the controllee chain is started running. The format of this message is shown in figure 5-17. when present, is 4096 character bytes. The maximum length of the Beta portion, o 63 Alpha(1) r len 16 Alpha(2) unused b 8 Alpha(3) I Alpha(1) bl ba .... I _------- - - - - - - - - ....18.J Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 2 3 4 7 #214 5-78 16 48 1 Figure 5-17. 0015 8 eea Field r 8 8 L _ _ _ _ _1E! Word unused c 16 Length of Beta in character bytes is 0 or greater than 4096. Illegal option was selected for this message. No controllee matches the value of the b field (for b=O) • For b=O, no controllee exists. Error exit has been taken, since the control lee already has a text string from the controller. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. SEND A MESSAGE TO CONTROLLEE (f=#0015) Message Format (Sheet 1 of 2) 60459420 E Word Al pha(l) Description Field len If this field is #FFFF, Alpha(3) contains the length in character bytes and the virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in character bytes of the Beta portion. c Message options: o 2 Alpha(2) AlphaO) b Descriptor block number of the controllee; if 0, the data string is sent to the next lower control lee in the control lee chain. eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=IIFFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Figure 5-17. 60459420 F This message has a Beta portion containing a data string for the controllee. If the controllee already has a data string waiting from the controller, replace it with the new data string. This message has a Beta portion containing a data string for the controllee. If the controllee already has a data string waiting from the controller, return control to the error exit address. This message does not have a Beta portion. SEND A MESSAGE TO CONTROLLEE (f=1I0015) Message Format (Sheet 2 of 2) 5-79 I GET MESSAGE FROM CONTROLLER OR OPERATOR (f=#0016) A string of binary or ASCII data sent by a controller program or the operator and waiting in a system buffer can be retrieved by this controllee program using a GET MESSAGE FROM CONTROLLER OR OPERATOR message. Depending on the message option selected, the data string being retrieved might be copied into Beta, or it could be processed into a set of symbols before it is stored into Beta. In any case, the data string being retrieved must not exceed 512 words (4096 character bytes). Multiword symbols are permitted and processed without any special treatment. If the number of symbols exceeds the number requested, only the number requested are stored in Beta. If fewer symbols are returned than are requested, all symbols are stored in Beta. The operating system in this case never appends an end-of-message character. Delimiters are always returned right-justified with blank fill. Blanks are never treated as a special case (if a space is a delimiter, all occurrences of blank result in a delimiter being returned; if space is not a delimiter, spaces are processed the same as any other character). A special situation occurs if there is no data string waiting in the system buffer when a controllee (except for the immediate controllee of a level-1 task) issues this message. The controllee will stop running and wait for a data string from its controller. The next higher controller in the controllee chain will start running. The format of this message is shown in figure 5-18. c field description. The Beta portion is discussed under the o 63 Alpha(1 ) 16 j Alpha(2) IL Word Alpha(l ) __ 0016 16 8 48 ba bl - - _1§. 1.... ____ ,__ --.- --- I _ _ _ _ _4flJ Description Response code; returned by the operating system when this message has been processed. If no error occurs, control proceeds normally and this field contains the number of words (if an unprocessed dat~ string was obtained) or character bytes (if a data string processed into symbols was obtained) returned in Beta. If control returns to the error exit address, nothing was returned in Beta and the values are: 1 2 3 5 Figure 5-18. 5-80 3 8 Field r 5 eea b 8 Alpha(3) 16 cf c fj len r Count of bytes returned was either 0 or greater than 4096. Illegal option was specified for this message. No controller or operator message existed. $EOF received for file connected to a terminal. GET MESSAGE FROM CONTROLLER OR OPERATOR (f=#0016) Message Format (Sheet 1 of 3) 60459420 E Field Word Alpha(1) Description 7 8 7 r y 11214 len If this field is #FFFF, Alpha(3) contains the length in words (if the data string is to be translated into symbols) or character bytes (if an untranslated data string is to be obtained) and the virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length of the Beta portion in words or character bytes. Maximum is 512 words (4096 bytes). fj Fill and justification for the message. c=O, the values are: o 1 4 5 c For all options except Left-justification, blank fill to the right. Left-justification, zero fill to the right. Right-justification, blank fill to the left. Right-justification, zero fill to the left. Message options: o 2 3 Figure 5-18. 60459420 E $EOG received for file connected to a terminal. $EOR received for file connected to a terminal. More than 200 delimiters are defined by this program. This message was issued from a level-1 task. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. The data string is to be copied from the system buffer to Beta, beginning at Beta(1). If the number of words in the data string exceeds the number specified by the len field, only the first len words are copied to Beta. If there are fewer than the number requested, the last word of the data string is left-justified with binary zero fill. The data string is to be translated into symbols. Delimiters must be defined by the program issuing this message, and their number must not exceed 200. Symbols are stored in Beta, one symbol per word, starting with Beta(2). Beta(1) contains the number of delimiters (leftmost 16 bits), and the virtual bit address of the delimiter buffer (rightmost 48 bits). Delimiters are stored left to right, character byte by character byte, in the buffer. The data string is to be translated into symbols. Delimiters are blank, period, comma, slash, equals, plus, minus, and left and right parentheses. Symbols are stored in Beta starting with Beta(1). The data string is to be translat.ed into symbols. Delimiters are defined as installation parameter options. Symbols are stored in Beta starting with Beta(l) • GET MESSAGE FROM CONTROLLER OR OPERATOR (f=#0016) Message Format (Sheet 2 of 3) 5-81 Alpha(1) Description Field Word Control field: cf o 1 2 3 4 5 Alpha(2) Alpha(3) j Level of the controller that sent the data string being retrieved; . supplied by the operating system. If the data string came from the operator, this field is O. If no data string was found in the system buffer, the operating system returns in j the level of the task that issued this message. b Descriptor block number of the controller that sent the data string being retrieved; supplied by the operating system. (If the interactive processor was the conroller, b is FF.) If the control field is 4 or 5, this field is the descriptor block number of the operator. If no data string was found in the system buffer, the operating system returns in b the descriptor block number of the task that issued this message. eea Virtual bit address to receive control if an error occurs during processing of this message. If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), this parameter indicates the length in words (if an untranslated data string is to be obtained) or character bytes (if the data string is to be translated into symbols) and virtual bit address of the first full word of the Beta portion. Figure 5-18. 5-82 If no data string from this program's controller is waiting in the system buffer, stop running this program until a data string arrives. Process and return the data string to Beta, and release the system buffer space occupied by the data string. If no data string from this program's controller is waiting 1n the system buffer, return control to the error exit address. If there is a data string waiting, process and return it to Beta, and release the system buffer space occupied by the data string. If no data string from this program's controller is waiting in the system buffer, stop running this program until a data string arrives. Process and return the data string to Beta, but do not release the system buffer space occupied by the data string. If no data string from this program's controller is waiting in the system buffer, return control to the error exit address. Process and return the data string to Beta, but do not release the system buffer space occupied by the data string. If no data string from the operator is waiting in the system buffer, stop running the program until a data string arrives. Process and return the data string to Beta, and release the system buffer space occupied by the data string. If no data string from the operator is waiting in the system buffer, return control to the error exit address. Process and return the data string to Beta, and release the system buffer space occupied by the data string. GET MESSAGE FROM CONTROLLER OR OPERATOR (f=#0016) Message Format (Sheet 3 of 3) 60459420 E GET MESSAGE FROM CONTROLLEE (f=#0017) A string of binary or ASCII data sent by a control lee program and waiting in a system buffer can be retrieved by this controller program using a GET MESSAGE FROM CONTROLLEE message. Depending on the message option selected, the data string being retrieved might be simply copied into Beta, or it could be processed into a set of symbols before it is stored in Beta. In any case, the data string being retrieved must not exceed 512 words (4096 character bytes). Multiword symbols are permitted and processed without any special treatment. If the number of symbols exceeds the number requested, only the number requested are stored in Beta. If fewer symbols are returned than are requested, all symbols are stored in Beta. The operating system in this case never appends an end-of-message character. Delimiters are always returned right-justified with null fill. Blanks are never treated as a special case (if a space is a delimiter, all occurrences of blank result in a delimiter being returned; if space is not a delimiter, spaces are processed the same as any other character). The format of this message is shown in figure 5-19. c field description. The Beta portion is discussed under the o 63 Alpha(1) r Alpha(2) j I L Word Alpha( 1) 8 16 48 ba ---- 16 ' - - - -- Field I - - - - - - - - - - - - - - .3~ Description Response code; returned by the operating system when this message has been processed. If no error occurs, control proceeds normally and this field contains the number of character bytes (if a message was obtained) or words (if symbols were obtained) returned in Beta. If control returns to the error exit address, nothing is returned in Beta and the values are: 2 3 4 6 7 11214 Figure 5-19. 3 eea bl r 0017 cf c 5 8 1 60459420 E 16 b 8 Alpha(3) fj len 16 Count of bytes returned was 0 or greater than 4096. Illegal option was specified for this message. No controllee message existed. Message from the controller (not the controllee) was waiting. This program started because the controllee, whose level and descriptor number are stored in fields j and b, is waiting for a message from the controller. More than 200 delimiters are defined by this program. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. GET MESSAGE FROM CONTROLLEE (f=1I0017) Message Format (Sheet 1 of 3) 5-83 Word Alpha(l) Description Field len If this field is #FFFF, Alpha(3) contains the length in character bytes (if an untranslated data string is to be obtained) or words (if the data string is to be translated into symbols) and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length of the Beta portion in words or character bytes. Maximum is 512 words (4096 bytes). fj Fill and justification for the message. c=O, the values are: o 1 4 5 c 1 2 3 2 5-84 The data string is to be copied from the system buffer to Beta, beginning at Beta(I). If the number of words in the data string exceeds the number specified by the len field, only the first len words are copied to Beta. If there are fewer than the number requested, the last word of the data string is left-justified with binary zero fill. The data string is to be translated into symbols. Delimiters must be defined by the program issuing this message, and their number must not exceed 200. Symbols are stored in Beta, one symbol per word, starting with Beta(2). Beta(l) contains the number of delimiters (leftmost 16 bits), and the virtual bit address of the delimiter buffer (rightmost 48 bits). Delimiters are stored left to right, character byte by character byte, in the buffer. The data string is to be translated into symbols. Delimiters are blank, period, comma, slash, equals, plus, minus, and left and right parentheses. Symbols are stored in Beta starting with Beta(I). The data string is to be translated into symbols. Delimiters are defined as installation parameter options. Symbols are stored in Beta starting with Beta(I). Control field: o Figure 5-19. Left-justification, blank fill to the right. Left-justification, zero fill to the right. Right-justification, blank fill to the left. Right-justification, zero fill to the left. Message format options: o cf For all options except After data string has been retrieved, release system buffer space occupied by string. After data string has been retrieved, do not release system buffer space occupied by string. GET MESSAGE FROM CONTROLLEE (f=#0017) Message Format (Sheet 2 of 3) 60459420 E Word Alpha(2) Alpha(3) Field j Level of the controllee that sent the data string; supplied by the operating system. The value in this field has no meaning if the controllee that sent the data string being retrieved has been disconnected. b Descriptor block number of the controller that sent the data string; supplied by the operating system. The value in this field has no meaning if the controllee that sent the data string being retrieved has been disconnected. eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in words (if an untranslated data string is to be obtained) or character bytes (if the data string is to be translated into symbols) and virtual bit address of the first full word of the Beta portion. Figure 5-19. 60459420 E Description GET MESSAGE FROM CONTROLLEE (f=#0017) Message Format (Sheet 3 of 3) 5-85 REMOVE CONTROLLEE FROM MAIN MEMORY (f=#0019) A controller (the user program) can swap a controllee program or itself from main memory to mass storage. The controller program stops running until all control lee pages are written to mass st-orage. The format of this message is shown in figure 5-20. For option 0, the program issuing this message must have only one controllee. o 63 Alpha(1) r Alpha(2) n len 16 16 unused 16 0019 eea 48 16 I Alpha(3) L bl - 16 ba --- 16 _....J - - - - - - - - - - - - - - ___ I ~8..J Beta( 1) Word Alpha(l ) Field r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 3 #214 Alpha(2) len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. This field is 0 or 1. n Specifies the controllee to be removed. o 2 Figure 5-20. 5-86 No controllee exists with this descriptor block number. More than one controllee for an n field value of O. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the len field is 0 (n=l only). The values are: Remove the control lee program to mass storage; no Beta portion is required for this option. Remove the controllee specified in Beta(l) to mass storage. Remove this program to mass storage; no Beta portion is required for this option. REMOVE CONTROLLEE FROM MAIN MEMORY (f=#0019) Message Format (Sheet 1 of 2) 60459420 E Word Field Description Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(l) b Descriptor block number of the controllee to be removed to mass storage. Figure 5-20. 60459420 E REMOVE CONTROLLEE FROM MAIN MEMORY (f=#0019) Message Format (Sheet 2 of 2) 5-87 SEND A MESSAGE TO OPERATOR (f=#OOlA) A program uses this message to send a string of binary or ASCII data to the operator. The system copies the data string from the Beta portion of the system message to a system buffer. If the system buffer is full, the string cannot be sent. continues task execution at the error exit address. If the buffer is full, the system Because the operator of· a busy system could miss a string sent to him, the system provides a string save table. If the operator is logged in and n=2 or 3, the string is kept in the string save table. Only one string per task is kept. If the task sends another string, only the most recent string requiring a response is kept. The operator can access the string save table to see the most recent strings sent by executing tasks. The operator clears a string from the save table with the command CFO. (Strings are kept by descriptor block number.) The format of this message is shown in figure 5-21. The Beta portion contains the string being sent; maximum length of the string is 80 character bytes (10 words). o 63 Alpha(1) r len 16 Alpha(2) unused 16 001A 16 eea n 48 16 Alpha(3) L Word Alpha(1) bl I Field -- --- _ _ _ _4~ Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 2 #214 5-88 ----- Description 1 Figure 5-21. I ba 16 - - - - - -' - - - - r 16 Specified length of the Beta portion in character bytes was out of range (either 0 or greater than 80). String in Beta could not be sent to the operator because no system buffer was available; error processing is indicated by the value of the n field. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the len field is O. SEND A MESSAGE TO OPERATOR (f=#001A) Message Format (Sheet 1 of 2) 60459420 E Field Word Description Alpha(1 ) len If this field is IIFFFF, Alpha(3) contains the length in character bytes and the virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in character bytes of the Beta portioR. The len field should be greater than a and less than or equal to 80. Alpha(2) n Indicates action to be taken if the string cannot be sent; also indicates whether the string should be kept in the save table: 0,1 2,3 4 Alpha(3) eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is a when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=IIFFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Figure 5-21. 60459420 E If the system buffer is full, continue execution at the error exit address. Do not enter the string in the save table. If the operator is not logged in or the system buffer is full, continue execution at the error exit address. Enter the string in the save table. Send the message to the remote operator. Return r=2 if the remote operator is not logged in. SEND A MESSAGE TO OPERATOR (f=1I001A) Message Format (Sheet 2 of 2) 5-89 INITIALIZE OR DISCONNECT CONTROLLEE (f=#OOl B) A user program can make another program a controllee, and optionally start the controllee running, by using the INITIALIZE OR DISCONNECT CONTROLLEE message. It can also be used to disconnect a previously connected controllee. Up to eight levels of program controllees are permitted in a controllee chain, making a possible total of up to nine levels. The format of this message is shown in figure 5-22. o 63 Alpha(1) len r 16 Alpha(2) oo1B unused 16 16 eea m 48 16 Alpha(3) bl I 16 ba L ____ _1Ei ' - - - - - - - - - - - _._---- I _4§J r---------- I Beta( 1) t=b Junused J==_===== tl Beta(2) Word Alpha(l) filename Field r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 2 3 4 5 6 7 8 9 #A #B #C #D #E #F Figure 5-22. 5-90 Controllee program is already present. Illegal message option. Control lee program file was not found or not attached. Insufficient time to run the control lee program. Illegal priority. Error in creating the drop file. Controllee program file is not executable. Mass storage device error. Full system tables inhibit initialization of the controllee program at this time. Abnormality in the control lee program file or drop file I/O connector entry. Nine task levels are present already. No controllee is present (for disconnect only); if a controllee program is being disconnected, this response code indicates no controllee program is present. Controllee program drop file is too small. Unable to destroy the existing drop file. Unable to restart the controllee because the interrupt register table is full. INITIALIZE OR DISCONNECT CONTROLLEE (f=#OOlB) Message Format (Sheet 1 of 2) 60459420 E Word Alpha(l) Field Description 1110 r if11 1112 Itl3 1114 1115 1117 1118 1119 lilA II1B Illc IIlD /fIE IIIF tt21 1122 11214 Alpha(2) Drop file cannot be verified. C500 request error. Bad minus page in the controllee file. Undefined error in the drop file verification. Control lee program file is privileged open. No FST space. IOC for file not found. User does not have execute access. Execute file has wrong small page size. Drop file has wrong small page size. File is incomplete. Charge statement must be supplied. SHRLIB is not active. Control lee must be reloaded. Controllee using wrong libraries. Controllee is purge-only. Nonproduction program not permitted (production users only) • Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. len If this field is ifFFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. The length of the Beta portion is at least 2. m Message options: o 1 10 Initialize the control lee program and restart this program. Initialize the control lee program and immediately begin running it; stop running this program. Disconnect the control lee program (the Beta portion of the message is required for this option, but is not used). eea Virtual bit address to receive control if an error occurs during processing of this message (r+O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=/fFFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(l) filename Name of the control lee program (must be a virtual code file), left-justified with blank fill. Beta(2) b Controllee program's descriptor block number; returned by the operating system when the message is issued. If the controllee program is disconnected and reconnected, this number could change. tl Time limit for the controllee program, in microseconds. field is 0, the controller's time limit is used. Figure 5-22. 60459420 H When this INITIALIZE OR DISCONNECT CONTROLLEE (f=/f001B) Message Format (Sheet 2 of 2) 5-91 I PROGRAM INTERRUPT CONTROL (f=#OOlC) The operating system supports one level of software interrupt for any task. With the PROGRAM INTERRUPT CONTROL message, a user program can tell the operating system whether or not the task can be interrupted. If interrupts are enabled, an ASCII character string must be waiting at the interrupt address specified in Beta(l) of the PROGRAM INTERRUPT CONTROL message at the time control passes to the interrupt address. For control to return to the calling routine, the interrupt routine must issue a RETURN FROM INTERRUPT CONTROL message when it has finished performing its tasks. When a program is interrupted, the program's minus page is altered before control is passed to the virtual address specified by the user in a PROGRAM INTERRUPT CONTROL message. The minus page has space for the current invisible package (level 0). The interrupt register table has space for the interrupted routine invisible package (level 1). (These level designations are not to be confused with the level of a task in the controllee chain, nor with the security level of a task.) At the time of an interrupt, the level-l invisible package becomes the current execution invisible package (level 0), and the level-O invisible package is saved in the interrupt register table. The operating system saves the register file image for the old level 0, and places in register 3 a pointer to the Alpha portion of, and an index to the Beta portion of, the message that caused the interrupt. The operating system also puts into register IE the length and address of the data base to be used by the interrupt routine. Initializing the rest of the register file is the responsibility of the interrupt routine. When message option 1 is specified, any ASCII character string preceded by (sc)I that is received from a terminal interrupts the user program (the currently executing program). The symbol (sc) is a special character defined by the installation (refer to volume 1). When the string has been received, the (sc)I preceding the string is stripped and the string is realigned at the beginning of the word. An (sc)I interrupt causes any outstanding output message to be released to the output device. When (sc)I precedes a string, the message interrupts the highest level controller that issued a PROGRAM INTERRUPT CONTROL message with message option 1 (highest level refers to level in the controllee chain). The format of the PROGRAM INTERRUPT CONTROL message is shown in figure 5-23. o 63 r Alpha(1) Alpha(2) unused Alpha(3) I L_ Beta( 1) 16 16 48 8 bl - - - - - .... - - - - - - ---- ------ 5-92 _4~ ia unused dbl 48 dba 16 Figure 5-23. I ba 16 16 Beta(2) 16 eea b 8 001C unused len 16 48 PROGRAM INTERRUPT CONTROL (f=#OOIC) Message Format (Sheet 1 of 2) 60459420 E Field Word Alpha(l) r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0, otherwise: 1 2 #214 Alpha(2) Value of the interrupt address is greater than the upper limit of the virtual bit address range. Program selected an illegal interrupt option. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. b Interrupt options: o 1 2 This program can be interrupted by any program. This program can be interrupted by a terminal if the data at the interrupt address begins with the two characters (sc)I. This program must not be interrupted. ° When this message is issued for options or 1, the program issuing this message can be interrupted by all subsequent messages and interrupts coming from a terminal until this program either issues this message with option 2 or terminates. eea Virtual bit address to receive control if an error occurs during processing of this message (rIO). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Beta(l) ia Interrupt address, the virtual bit address of the word to which control transfers upon occurrence of an interrupt. Beta(2) dbl Length of the data base to be established if an interrupt occurs. dba Address of the data base to be established if an interrupt occurs. If this field is 0, the data base of the interrupted program (the program issuing this message) is used. Figure 5-23. 60459420 E PROGRAM INTERRUPT CONTROL (f=#OOlC) Message Format (Sheet 2 of 2) 5-93 INITIALIZE CONTROLLEE CHAIN (f=#OOl D) A user program can issue this message to make itself the controller of a chain of controllees. Up to nine levels of control lee programs are permitted in any controllee chain (for example, if the program issuing this message is the controllee of a level-l task, a maximum of seven controllees can be specified in this message). Control is always returned to the user program after the call has been processed; unlike the INITIALIZE OR DISCONNECT CONTROLLEE message (f=#OOlB), this message cannot be used to start a controllee running. Any error in the request causes the entire chain to be ignored, and none of the controllees are initialized. The format of this message is shown in figure 5-24. o 63 Alpha( 1) r len 16 Alpha(2) unused 001D 16 n 16 16 eea 16 48 I IL Alpha(3) bl Beta( 1) s t k - ------- -- ----unused db 8 Beta(2) 8 _ _4f!J unused ss 16 8 unused 8 I ba _ _ _ _ _1~ - 8 16 tl 8 48 Beta(3) source 64 Beta(4) drop 64 Word Alpha(l) Field r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 2 3 4 5 #214 Figure 5-24. 5-94 Controllee program is already present. Full system tables inhibit initialization of the controllee program at this time. Controllee chain levels exceed nine. Error in an attempt to initialize the controllee; refer to an ss field in Beta. Controllee file is privileged open. Beta buffer length error. Either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and lengths specified. INITIALIZE CONTROLLEE CHAIN (f=#OOlD) Message Format (Sheet 1 of 3) 60459420 E Field Word Description Alpha(l) len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion (a multiple of 4, and always less than or equal to 14). Alpha(2) n Number of tasks to be initialized in the chain; n is always less than or equal to 9. eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(l) s Controllee chain level (2 through 9) of the program named in Beta(3); returned by the operating system. Beta words appear in the order in which the control lees are to be initialized, highest to lowest in the chain. t Descriptor block number of the program named in Beta(3); returned by the operating system. db Descriptor block number of the controller of the program named in Beta(3); returned by the operating system. ss File initialization error. 2 3 4 6 7 8 9 #A #B #D #E #F #10 #11 #13 #14 #15 #16 #17 #18 #19 Figure 5-24. 60459420 H The values are: Full system tables inhibit initialization of the control lee program. Controllee program file was not found or was not attached. Insufficient time to run the controllee program. Error in creating the drop file. Controllee program file is not executable. Mass storage error. Abnormality in the controllee program file or drop file I/O connector entry. Controllee program file is privileged open. No FST space. IOC for file not found. Bad minus page. User does not have execute access for control lee program file. Drop file is too small. Unable to destroy existing drop file. Shared library needed. Controllee must be reloaded for new bound implicit map (BIM). Source file bad small page size. Drop file bad small page size. Drop file is too long. File is incomplete. File has purge-only status. INITIALIZE CONTROLLEE CHAIN (f=#OOID) Message Format (Sheet 2 of 3) 5-95 I Word Beta(l) I Field ss Description #IA #IC #30 #31 #32 Beta(2) Controllee using wrong libraries. Charge statement must be supplied. Operating system version mismatch. Nonproduction program not permitted (production users only). Drop file cannot be restarted (see site security administrator). k Descriptor block number of the controllee (in this chain) of the program named in Beta(3). This field is 0 if there is no controllee. tl Amount that remains, in microseconds, of the time allowed for running the controllee program. When the controllee has exhausted the time, this field is O. Beta(3) source ASCII name of the executable source file to be initialized if the drop field is O. The name is left-justified with blank fill. Returned by the operating system if the drop field is not O. Beta(4) drop ASCII name of the drop file, left-justified with blank fill. If the user provides a nonzero value in this field, the program is started from this drop file (the drop file contains the I/O connector containing the source file name associated with the drop file). Figure 5-24. 5-96 INITIALIZE CONTROLLEE CHAIN (f=#OOID) Message Format (Sheet 3 of 3) 60459420 H ENABLE/DISABLE ATC (f=#0020) The ENABLE/DISABLE ATC message allows the user to process what is normally a fatal error. The user does this by setting/zeroing the interrupt subroutine address and data base descriptor in the minus page. If abnormal termination control (ATC) is ready, the user may reissue this message to change the interrupt routine information. However, all of the fields must be supplied as if this message had not previously been issued. The format of the message is shown in figure 5-25. o 63 r Alpha (1) len 16 unused Alpha (2) 0020 unused 16 16 eea 16 IL _____ bl Alpha (3) 48 I__________________ ba ~ ito Beta (1) dbl 48 dba 48 16 Field Word Alpha(l) r Description Response code returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: #61 #62 #63 #214 Alpha(2) Entry point or data base address out of virtual address range for user program or hexadecimal bit address less than 8000. Interrupt type option is illegal. Data base length out of range. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. len If len=ftFFFF, Alpha( 3) contains the length( bl) and virtual bit address(ba) of the Beta portion. Otherwise, Beta is assumed to begin at Alpha(3) and len is the length of the Beta portion (two words). eea Virtual bit error exit address to receive control if an error occurs during message processing (r~O). If eea=O, the error is fatal. Figure 5-25. 60459420 E I ~ ira 16 Beta (2) 16 ENABLE/DISABLE ATC (f=#0020) Message Format (Sheet 1 of 2) 5-97 Word Alpha(3) Beta(1 ) Field Description bl Beta length, if len=#FFFF. ba Virtual bit address of the Beta portion's first full word, if len=IIFFFF. ito Interrupt type option: o 1 Beta(2) ira User interrupt subroutine address (virtual bit address) to be entered if predefined system errors occur. dbl Data base length (in words) of user's interrupt subroutine. dba Data base bit address of user's interrupt subroutine. Figure 5-25. 5-98 Enable ATC. Disable ATC. ENABLE/DISABLE ATC (f=1I0020) Message Format (Sheet 2 of 2) 60459420 E EXECUTE OPERATOR COMMAND (f=#0021) This message can be issued only by a privileged user and executes exactly one of the operator commands that are listed as possible values for the c field in Alpha(l). The user number of the issuer must be the primary, the remote operator, or the site security administrator user number. User numbers running the Q utility are allowed to use options 1110, 112c, and 1142 only. A nonprivileged user may execute option if2F only for the user number executing the system message. I The format of the Alpha portion of this message is shown in figure 5-26. The Beta word formats depend on the message option (c field) in Alpha(l), and are shown in figure 5-27. Each option is a correspondence between the Beta format and the operator command. (Refer to the VSOS 2 Operator's Guide.) o 63 Alpha(1 ) len r 16 Alpha(2) 16 * unused 7 c 0021 8 16 eea n 48 16 Alpha(3) bl I ba L _ _ _ _ _ 1~ Word Alpha( 1) 1..._-_ . . . . - - - - - - - - - - - - Field r Description Response code; returned by the operating system when this message has been processed: 0 1 2 3 4 5 IIF4 len I _4~ No errors. Illegal option (c field value is out of bounds, or there is a bad parameter). User is not privileged and is not running under the operator's user number. Error in a resident system call issued by the virtual system routine OPCOM. Error in a resident system call issued by the virtual system routine OPCOM. A user directory editor is already active. Retry later. Beta overflow in message option ifF. This field must always be IIFFFF, indicating that Alpha(3) contains the length and virtual bit address of the Beta portion of the message. Outstanding messages: 1 o Figure 5-26. 60459420 H There are outstanding messages awaiting operator response. There are no outstanding messages. EXECUTE OPERATOR COMMAND (f=1I0021) (Alpha) Message Format (Sheet 1 of 2) 5-99 I Word Alpha(l) Field Description Message options; each of the options has a different Beta format. The Beta formats are described following the Alpha field definitions: c 1 5 7 #A #B #D #E #F #10 #11 #12 #13 #16 #17 #18 #19 #lC #lD #IE #IF #21 #22 #24 #25 #26 #27 #28 #29 #2A #2C #2D #2F #31 #32 #38 I I ~2 Alpha(2) Alpha(3) n The number of words returned in the Beta portion of the message, the value of which depends on the message option (c field). (Refer to the specific c option description.) eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Figure 5-26. 5-100 Display user. Send a message to the users. Drop (terminate the task and log out the user). This is used only by system checkpoint. Return data from virtual system in Beta area for specified virtual address. Modify virtual system address with data specified in Beta parameters. Date. Time. Return copy of system configuration table. Return B or Q(E) display information. Display all tasks. Return information for S display. Return information for J display. Suspend or resume the task. List the account. Return the default project number. Turn output processing on or off. Checkpoint jdn. Turn on or off the no login flag. Turn off F RESTART bit in MISCTAB. Set job category priority. Test and set user directory editor serialization flag. Clear user directory editor serialization flag. Turn on or off job submission to the CPU scheduler. Set maximum large page limit for job category. Set maximum memory overcommitment percentage. Set maximum combined time limit for all executing jobs. Set maximum job time limit for job category. Set maximum working set size limit for job category. Set maximum executing jobs for job category. Retrieve Hand Q(I) display information. Retrieve V display information. Retrieve validated job categories for user number. Adjust SHRLIB working set. User drop support functions. Checkpoint functions. Return a set of file index entries for Hand Q(O) displays. EXECUTE OPERATOR COMMAND (f=#0021) (Alpha) Message Format (Sheet 2 of 2) 60459420 H Message option: c=1 Return the 16-word UAT entry for one user or the binary user number of all users who are currently on the system. The value of the n field in Alpha(2) is returned by the operating system. The value of n is #FFFF if m is 5, 18 if m is 16, and m otherwise. o 63 Beta( 1) usrno uatx 48 16 Beta(2) tab 1 64 7 7 Beta(n) tab m 64 Word Field Beta( 1) uatx Type of information in the tab field; returned by the operating system. If this field is 0, the information is from the user directory. If this field is nonzero, it is from the user activity table; the uatx field contains the user activity table index of the table entry. usrno Binary user number of the user table or user directory entry in the tab fields; or, the character string ALL, left-justified with blank fill, indicating that user numbers and teletypewriter (TTY) numbers of all logged-in users are to be placed in the tab field. Supplied by the user. Beta(2) through Beta(n) Figure 5-27. 60459420 H . tabi Description The tabl field contains binary zeros if no user identified by the usrno field was found. Otherwise tabl contains the first word of a 16-word copy of the user activity table entry (uatx=O) for an active user; a 5-word copy of the first part of the user directory entry (uatx=O) for an inactive user; or m words, one for each currently logged-on (active) user, each of which contains the binary user number in the rightmost 48 bits and a TTY number in the leftmost 16 bits. For an active user, the user activity table is followed by a list of all active accounts, with one account per word. EXECUTE OPERATOR COMMAND (f-#0021) (Beta) Message Format (Sheet 1 of 27) 5-101 I Message option: Transmit a specified character string to the output buffer or all interactive users (WARN command): c=5 Q 63 Beta(1 ) cnt unused 48 16 unused Beta(2) ss 60 Beta(3) message m 64 Field Description Beta(l) cnt Number of characters in the message. Beta(2) ss Error response field: o 1 Beta(3) through Beta(n) I 64 t, '-7 Beta(n) Word Figure 5-27. 5-102 4 messag e1 message No error. No users are logged on the system. A word of a message in ASCII. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 2 of 27) 60459420 H Message option: Terminate all tasks and log off the user(s) [interactive] or terminate the job(s) [batch]: c=7 o 63 sf Beta(1 ) ss usrno Description Field dbn DB number of task to terminate. sf Subfunction, set by the user to one of the following values: o 1 2 ss Error response field. The operating system sets this field to one of the following values: o 1 2 3 usrno Drop job, but allow BATCHPRO to clean up. Rerun job. Drop job and do not allow BATCHPRO to clean up. No error. No user table entry. Attempted to drop operator. Attempted to drop system user. Binary user number for the task to be terminated. If Beta(1) is #FFFFFFFFFFFF, terminate all interactive tasks and log off the interactive users. Figure 5-27. 60459420 H EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 3 of 27) 5-102.1/5-102.2 I Message option: c=IIA Return data from virtual system in Beta(2) through Beta(n) for the specified virtual address in Beta(1) word. o 63 ss Beta (1) mstart 16 48 Beta (2) data word 1 64 ··· data word n-1 Beta (n) 64 Word Beta(1) Field ss Description Error response field. The operating system sets this field to one of the following values: o 1 2 3 Beta(2) through Beta(n) Figure 5-27. 60459420 H No error. Beta length error from Alpha parameter n (n#2). Address specified is not in the virtual system. Address specified is not on a word boundary. mstart User-specified virtual system memory starting address on a word boundary. data word 1 through data word n-1 Word of data returned from the virtual system. EXECUTE OPERATOR COMMAND (£=#0021) (Beta) Message Format (Sheet 4 of 27) 5-103 I Message option: c=IIB Modify specified virtual system address with data from BETA parameter. o 63 Beta(l ) ss mstart 16 Beta(2) 48 data 64 Word Field Beta(l) ss Description Error response field. The operating system sets this field to one of the following values. o 1 2 3 Beta(2) No error. Beta length error from Alpha parameter n (n#2). Address specified is not in the virtual system. Address specified is not on a word boundary. mstart User specified virtual memory starting address on a word boundary. data Hexadecimal data to be entered at virtual bit address specified by mstart. Message option: c=IID Set or request the date (DATE command): o 63 date Beta(l) 64 unused flag Beta(2) 48 16 I Word Field Beta( 1) date ASCII date, in the format: mm/dd/yy (month/day/year); set by the user if the flag field is 1, or set by the operating system if the flag field is O. Beta(2) flag This field must be 0 for the data to be returned, or 1 to set the data. Figure 5-27. 5-104 Description EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 5 of 27) 60459420 H Message option: c=IIE Set or request the time (TIME command): o 63 time Beta(1 ) 64 unused flag Beta(2) 48 16 Word Field Beta( 1) time ASCII clock time, in the format hh.mm.ss (hour.minutes.seconds); set by the user if the flag field is 1, or set by the operating system if the flag field is O. Beta(2) flag This field must be 0 for the time to be returned, or 1 for the time to be set. Description Message option: c=#F Return a copy of the system configuration table (T SC). The length of the Beta area must be supplied by the caller in the Alpha field n. If the supplied length is less than the actual table length, the Beta is filled with as much data as will fit, and an error code of #F4 is returned in the Alpha field r. If the supplied length is greater than or equal to the actual table length, the Alpha field n is set to the table length by the system. o Beta(1 )Beta(n) Word Beta (1) through Beta(n) Figure 5-27. 60459420 H Field t sc Description The system configuration table (SCT). EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 6 of 27) 5-105 I Message option: c=1I10 Return job and task information for remote operator for the B display and user Q(E) display. A return Beta entry consists of six words each. The number of entries returned is indicated by n in Alpha(2): o Beta(l ) 63 unused Beta (2) pr pmt status 8 susflg 8 8 8 jdn tl 8 cbc .wset nt Ip 8 12 16 16 12 24 userno Beta(3) 64 job name Beta(4) 64 task name Beta(5) 64 Beta(6) jce Word Beta(l) priv 4 db 8 8 I Figure 5-27. 5-106 24 Description status Program state number. pmt Priority map table index (0 through 15). pr Subpriority (1 through 255). susflg If the task is in a suspended state, the operating system sets this field to one of the following values: 1 Beta(2) lid 20 Field o I . unused Task was suspended by the operator. Task was suspended by the operating system. tl Time left for this task, in seconds. jdn Job descriptor for this job or session (1 through 2047). wset Number of 512-word blocks in the task's working set. cbc Number of 512-word blocks currently assigned to the job. lp Number of large pages of memory assigned. nt Number of tape drives reserved for this job or session. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 7 of 27) 60459420 H Word Field Beta(3) userno ASCII user number; six characters, left-justified, blank-filled. Beta(4) job name Name of the batch job file, interactive session name, or SYSTEM. Beta(5) task name Name of the file currently executing. Beta(6) jce System job category table index. db Top DE index (BATCHPRO). priv Privileged flag. lid Logical identifier of the front-end system from which the job originated. Description If the user is not privileged, this option will return only Beta entries that have a userno equal to the user. Message option: c=lfl1 Return information words are returned in Alpha(2) to the checkpoint/restart about 'all active tasks in the system. Three Beta for each task; the operating system sets the n field number of tasks in the system. Used during SYSTEM only. o Beta( 1) 63 unused 8 Beta(2) lev 8 state 8 db 8 jdn unused 12 20 fname 64 Beta(3) userno 64 Word Beta(l) Field Description lev Level of the task in the controllee chain. state Program state of the task (refer to appendix F). db Descriptor block number for the task. jdn Job descriptor number for the task (1 through 2047). Beta(2) fname Source file name of the task, in ASCII. Beta(3) userno Binary user number under which the task is running. Figure 5-27. 60459420 H I EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 8 of 27) 5-107 I Message option: c=1I12 Return information for the S display. o I number of active users Beta (2) number of active tasks Beta (3) total system up time (seconds) Beta (4 ) total loads Beta (5) total cpu time (seconds) Beta (6) user page faults Beta (7) system page faults Beta (8) page faults per cpu second Beta (9) total kernel time (seconds) Beta (10 ) total pager time (seconds) Beta (11) total virtual time (seconds) Beta (12) total user time (seconds) Beta (13) total wait time (seconds) Beta (14) total idle time (seconds) Beta (15 ) percent kernel time Beta (16) percent pager time Beta (17) percent virtual time Beta (18) percent user time Beta (19 ) percent wait time Beta (20) percent idle time Beta (21 ) SHRLlB working set 64 Beta (22 ) SH R LI B unused pages 64 Figure 5-27. 5-108 63 Beta (1) 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 9 of 27) 60459420 H Message option: c=tt13 Return task EXECUTE OPERATOR COMMAND (f=#0021) information for J display. A six-word entry is returned for each descriptor block in every active task chain for the user. The first 6-word entry is empty. The first word of the Beta field contains the user for whom information is returned. o Beta(1 ) 63 unused pmt status 8 jdn Beta(2) 8 8 .wset 12 tl susflg pr 8 24 8 cbc nt Ip 8 12 16 16 userno Beta(3) 64 Beta(4) job name 64 task name Beta(5) 64 Beta(6) pplvl cdb 8 unused 24 Word Field Beta(1) status Program state number. pmt Priority map table index (0 through 15). pr Subpriority (1 through 255). susflg If the task is in a suspend state, the operating system sets this field to one of the following values: Description 0 1 Beta(2) Figure 5-27. 60459420 H I lid 24 8 Task was suspended by the operator. Task was suspended by the operating system. tl Time left for this task, in seconds. jdn Job descriptor for this job or session (1 through 2047). wset Number of 512-word blocks in the task's working set. cbc Number of 512-word blocks currently assigned to the job. I EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 10 of 27) 5-109 I Word Field Beta(2) lp Number of large pages of memory assigned. nt Number of tape drives reserved for this job or session. Beta(3) userno ASCII user number, six characters, left-justified, blank-filled. Beta(4) job name Name of the batch job file, interactive session name, or SYSTEM. Beta(5) task name Name of the file currently executing. Beta(6) pplvl Level of DB in chain. cdb Ordinal of current DB. Description If the user is not privileged, this option will return only Beta entries that have a userno equal to the user. I lid Logical identifier of the front-end mainframe from which the job originated. Message option: c=/116 Suspend or resume execution of the task specified. checkpoint/restart only. 63 0 Beta(1 ) ss 1 Word Field Beta( 1) ss 81 db 81 5-110 81 Error response field. 1 2 3 4 5 6 7 Figure 5-27. sf unused 401 Description o I Used during SYSTEM The values are: No error. Descriptor block is not assigned. Invalid descriptor block number. Descriptor block is not in a suspended state. Descriptor block is already suspended. Cannot suspend the operator task or system user. Descriptor block is in a terminate or initiating state. Not enough central memory (CM) space to resume task execution. db Descriptor block number of the task to be resumed or suspended. sf Subfunction. This field must be set to 0 to suspend execution, or 1 to resume execution. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 11 of 27) 60459420 H Message option: c=tl17 List all accounts for a user. The operating system returns the length of the Beta portion in the n field of Alpha(2): o 63 Beta( 1) unused 64 Beta(2) , unused 64 Beta(3) ss nacnts 8 unused 8 usrno 16 Beta(4) 32 acct1 -- - - - - - - - - - - - - - - - - - - - - - - 64I. I. - - - - Beta(n) - - - - - - - - - - - - - - - --- L ________ _ _ _ I --E~ Word Field Beta(3) nacnts This field is set to the number of accounts listed. ss Error response field. completed function. usrno User number for which the account is to be modified. Beta(4) through Beta(n) accti Account number of an account in the system; eight ASCII characters, left-justified with blank fill. Returned by the operating system. Figure 5-27. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 12 of 27) 60459420 H Description This field is set to 0 for a successfully 5-111 I Message option: Return the default project number for a user. c=/118 o Beta (1) 63 ss unused 8 user number 32 24 Beta (2) project number 64 Beta (3) project number 64 Beta (4) project number unused 32 32 Word Field Beta(l) ss Description Error response field: o 1 Beta(2) through Beta(4) No error. Default project number does not exist. user number Binary user number for which the default project number is to to be returned. project number 1- to 20-character default project number, in ASCII, left-justified with blank fill. Message option: c=/119 Turn output file processing on or off for all users (OUTP command). If output is turned off, no output files are transferred until output is turned on. The Beta portion consists of one word in which bits 1 through 56 are unused and bits 57 through 64 are the a field: a=O a=l a=2 a=3 Turn output on. Turn output off. Turn output off, save current state. Restore output to former state. Options 2 and 3 are used during checkpoint/restart only. I Figure 5-27. 5-112 EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 13 of 27) 60459420 H Message option: c=#IC Checkpoint option. Set the checkpointed jdn for all the files belonging to the batch job in the file index. Write file index entries for all local files belonging to user jobs. Switch batch input files to checkpointed input files. Switch output files to checkpointed output files and give back to originating user. Save pool names. c=#ID Turn terminal login processing on or off for all users except the operator (LOGO command). If terminal login processing is turned off, no login lines are accepted until terminal login processing is turned on: o 63 flag ~ Field Login Terminal Processing Flag flag o 1 I Description Turn on. Turn off. Message option: c=#IE Restart option. Turns off F RESTART flag and MIS CKPT in MISCTAB to indicate that system restart-is complete. No Beta is required. Used during system checkpoint/restart only. o Word Field Beta(l) ckptfn Figure 5-27. 60459420 H 63 Description System checkpoint file. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 14 of 27) 5-113 I Message option: Set a new maximum or default priority for the specified job category (CHPR operator command): c=1/1 F o Beta(1 ) 63 81 ss sf 81 Beta(2) Word jcat Field Beta(l) Description Error response code: ss o 1 2 No error. Job category not found in system table. Invalid parameter value. Subfunction code indicating the priority type to be set: sf o 1 Beta(2) ~:I prior unused Maximum priority. Default priority. prior Priority: 1 (lowest) through 15 (highest). jcat Job category (eight ASCII characters, left-justified, blank-f illed) • Message option: c=1121 Test and set the user directory editor serialization flag. If not already set, return r=O. If already set, return r=5. No Beta is required. c=1I22 Clear the user directory editor serialization flag. required. Figure 5-27. 5-114 No Beta is EXECUTE OPERATOR COMMAND (f=1I0021) (Beta) Message Format (Sheet 15 of 27) 60459420 H Message option: c=lt24 Turn on or off the submission of jobs for the specified job category (INPT operator command): 63 0 Beta(l ) Beta(2) 81 ss I Word jeat Field Beta(l) Description ss Error response code: o 1 2 sf No error. Job category does not exist. Invalid subfunction (sf field value). Subfunction code: o 1 Beta(2) 481 unused jcat Turn input on for the specified job category. Turn input off for the specified job category. Job category (eight ASCII characters, left-justified, blank-filled). If jcat is all blanks, the command applies to all job categories. Message option: Set the maximum large page limit for any job within the specified job category (MXLP operator command): c=lt25 63 0 Beta( 1) Beta(2) 5S I Word Beta( 1) unused 81 :1 Description Field S5 241 jeat n Error response code: o 1 2 No error. Job category does not exist. Invalid parameter value. n Maximum number of large pages allowed (0 through maximum large pages in machine, MAXWS/128). Beta(2) jcat Job category (eight ASCII characters, left-justified, blank-filled). Figure 5-27. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 16 of 27) 60459420 H 5-115 I Message option: Set the percentage of memory overcommitment allowed (MXMO operator command): c=If26 o Beta( 1) I Word 63 81 ss unused n Description Field Beta( 1) ss Error response code: o 1 No error. Invalid parameter value. Integer (0 through 10000) indicating allowed memory overcommitment. The integer is the percentage value. n Message option: Set the maximum combined time limit for all jobs currently executing in the system (MXRR operator command): c=If27 o 63 Beta(1 ) Word Beta(l) ss 81 unused Field ss Description Error response code: o 1 n I Figure 5-27. 5-116 n No error. Invalid parameter value. Number of system minutes (1 through 9999). EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 17 of 27) 60459420 H Message option: c=1128 Set the maximum time limit for any job within the specified job category (MXTL operator command): 63 0 Beta(1 ) Beta(2) I Word 81 ss unused n jcat Field Beta(1) Description Error response code: ss o 1 2 Beta(2) No error. Job category does not exist. Invalid parameter value. n Time limit in system seconds (1 through 599,940). jcat Job category (eight ASCII characters, left-justified, blank-filled). Message option: c=1/29 Set the maximum working set size for any job within the specified job category (MXWS operator command): 0 63 ss Beta(1 ) Beta(2) I Word Beta(1) 81 unused n jcat Field ss Description Error response code: o 1 2 No error. Job category does not exist. Invalid parameter value. n Working set size limit in 512-word blocks (0 through the maximum blocks in machine MAXWS). Beta(2) jcat Job category (eight ASCII characters, left-justified, blank-filled). Figure 5-27. EXECUTE OPERATOR COMMAND (£=#0021) (Beta) Message Format (Sheet 18 of 27) 60459420 H 5-117 I Message option: Set the maximum number of executing jobs for the specified job category (SJCT operator command): c=1I2A 63 0 Beta(1 ) Beta(2) I Word Beta( 1) ss unused 81 Field ss Error response code: 1 2 I Figure 5-27. 5-118 :~I Description o Beta(2) n 241 jcat No error. Job category does not exist. Invalid parameter value. n Maximum number of jobs that can concurrently execute (1 to 50). jcat Job category (eight ASCII characters, left-justified, blank-filled) • EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 19 of 27) 60459420 H Message option: c=t/2C Retrieve H,I or Q,I display information for all input queue entries (refer to the VSOS 2 Operator's Guide for a description of the H display). The message returns values in all Beta fields. For this option, the user must set the value of the bl field in Alpha(3). If the caller is not privileged, any entries belonging to the caller will be returned: o Beta(1 ) 63 ss ctrr ctmc Beta(2) mxrr mxmo maxws tphflg mxtp ctnt 8 16 24 24 16 Beta(3) fnum 24 16 8 unused 40 8 8 job name Beta (4) 64 userno Beta(5) 64 Beta(6) tl wslim 48 16 Beta(7) Ip 12 pr 4 nt spr 8 status 32 8 jcat Beta(8) r uprodn I Beta(9) 64 16 1 Word Beta(1) Error response code: 1 60459420 H 24 Description o Figure 5-27. 23 Field ss lid unused jdn No error. More input queue entries exist than can fit in the reserved Beta area. ctmc Current percentage of memory overcommitted. ctrr Current number of system minutes required to rerun all executing jobs. fnum Number of input queue entries returned. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 20 of 27) 5-119 I Word Field Beta(2) mxmo Maximum percentage of memory overcommitment allowed. mxrr Maximum rerun time (in system minutes) allowed for all executing jobs. maxws Maximum working set size. ctnt Number of tape drives not in use. mxtp Maximum number of tape units available. tphflg Tape holding flag. The operating system sets this field to one of the following values: Beta(3) Description o 1 Beta(4) job name Name of the batch job file. Beta(5) userno User number; six ASCII characters, left-justified, blank-filled. Beta(6) wslim Working set tl Time limit, in system seconds. lp Large pages required. pr Priority (1 through 15). spr Subpriority (0 through 255). nt Number of tape drives required by the job. status Input queue status (four ASCII characters, left-justified, blank-filled). Beta(8) jcat Job category (eight ASCII characters, left-justified, blank-filled). Beta(9) jdn Job descriptor number (1 through 2047). uprodn 1 is returned if user is a production user. user is not a production user. lid Logical identifier of the front-end mainframe from which the job originated. Beta(7) I Jobs requiring tape units are not held in the input queue. Jobs requiring tape units are held in the input queue. limit~ in blocks. 0 is returned if The words Beta(4) through Beta(9) are repeated for every input queue entry returned. I Figure 5-27. 5-120 EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 21 of 27) 60459420 H Message option: Retrieve V display information for all job categories (refer to the VSOS 2 Operator's Guide for a description of the V display). The message returns values in all Beta fields. c=lf2D For this option, the user sets the value of the bl field in Alpha(3). The system returns the information in the Beta: o Beta(l ). 63 SS 81 jnum unused 16 Beta(2) jinfo i Beta(n) Word Beta(1) Field ss Description Error response code: o 1 No error. More entries exist than can fit in the Beta. jnum Length of job category table returned in Beta. table is returned.) Beta(2) through Beta(n) j infoi Copy of the T JCAT system table (four words per job category). The format of-the T JCAT table is shown in figure 5-28. Figure 5-27. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 22 of 27) 60459420 H (The entire 5-121 Message option: c=1I2F Retrieves job categories for which the specified user number is validated. For this option, the user must set the bl field of the Alpha to the Beta length. The length must not be less than the number of valid job categories plus 1: o Beta(1 ) 63 ss 81 jnurn 81 161 32 jcat1 64 Beta(jnum+1) jcatjnurn 64 Beta(l) Field ss Description Error response code: o 1 2 Beta(2) through Beta(n) Figure 5-27. 5-122 userno Beta(2) Word I unused No errors. Beta length specified in the bl field of the Alpha portion is insufficient for return of all valid job categories. User number not found. jnum In this field, the system returns the number of job categories it returned. userno Binary user number whose valid job categories are returned. For a nonprivileged user executing this option, the userno must be the executing user number. Job category mnemonic (one to eight ASCII characters, left-justified, blank-filled). EXECUTE OPERATOR COMMAND (f=H0021) (Beta) Message Format (Sheet 23 of 27) 60459420 H Message option: Alters the working set for the system shared library. Virtual system routine OPCOM uses mis slmax to mis slmin for a legal range when adjusting the SHRLIB working set. c=1I31 o l_______ l_____________ Beta(1) _ 63 u_n_u_s_e_d_________________ 32 ~~I______m__ax_w__s______16~1 m_i_n_w_s____ 16 Description Word Field Beta(l) minws Minimum working set size for SHRLIB to be placed in mis slmin. maxws Maximum working set size for SHRLIB to be placed in mis slmax. Message option: c=1I32 Drops jobs for a user. specified in the Beta. Only one of the jdn or userno fields must be The format of the Beta is as follows: o 63 Beta(1 ) sf 55 16 Beta(2) jdn 16 userno 12 20 jobname 64 Word Beta(1) Description Field ss Error response field. following values: o 1 2 3 4 5 6 7 sf 60459420 H No error. Nonprivileged user cannot specify alternate user. No jobs found for specified user number. Cannot drop interactive task. Cannot drop task issuing request. Both jdn and jobname specified. Beta is not large enough. Beta length greater than 512 words. Subfunction (set by the user). If set, bits 0 through 15 (left to right) have the following meaning: 0 1-12 13 14 15 Figure 5-27. Set by the operating system to one of the Kill the job. Not used. Search the input queue. Search the execute queue. Search the output queue. EXECUTE OPERATOR COMMAND (f=1I0021) (Beta) Message Format (Sheet 24 of 27) 5-123 • Word Description Field jdn Job descriptor number (binary) of the job to drop (set by the user). If 0, then jdn is not used as a qualifier to search for jobs and jobname must be specified. userno User number (binary) of the job(s) that are to be dropped (set by the user). If userno is set to 0, then the user number of the task that issued the request is used. If the user is not privileged, then userno must be set to or set to the user number of the task that issued the request. ° Beta(2) jobname Job name (ASCII, left-justified, blank-filled) of the job(s) to be dropped (set by the user). If 0, then jobname is not used as a qualifier to search for jobs and jdn must be specified. If jobname is * (left-justified, blank-filled), all jobs belonging to userno are dropped. For each job that is dropped, a 2-word entry is returned in the Beta. The returned entries begin at word 3 of the Beta. The format of each entry is as follows: 63 0 Beta(3) Beta(4) jdn unused jobname I Description Field Word Beta(3) ° Queue flags. When set, bits through 3 (left to right) indicate in which queue the specified job was found: q °1 2 3 Beta(4) Not used. Input queue. Execute queue. Output queue. jdn Job descriptor number (binary) of the job that was dropped. jobname Job name (ASCII, left-justified, blank-filled) of the job that was dropped. Message option: Perform support functions for system checkpoint processing. c=1138 o Beta( 1) I ____________ I__________ I__________________________ I ~. Figure 5-27. • 5-124 63 SS 1_6~ sf ~1~6~ unused 3~2~ EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 25 of 27) 60459420 H Word Field Beta(l) Description ss Returned error: 1 2 3 #10 #20 sf Called when checkpoint not in progress. Caller is not operator. Invalid subfunction. I/O will not complete interactive task during subfunction #10 processing. Not all batch jobs were suspended during subfunction 1120 processing. Subfunction code indicating the type of support processing: #10 1120 #30 Remove interactive users from the system. Suspend all batch jobs that are in a running state. Drop ITFS if running. Message option: c=1142 Return a set of file index entries for a specified group of files. The value of the n field in Alpha(2) is set by the user. This option is used for the Ht H(O)t and H(P) displays. For the Q(O) display where sf2=l t only files created by a caller that is not privileged will be returned: o Beta(1 ) Beta(2) 63 ss unused 8 4 sf 4 fnum 16 usrno 32 finfo 1 64 64 Beta(n) finfo m 64 Figure 5-27. 60459420 H EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 26 of 27) 5-124.1 • Word Beta(l) Description Field ss Returned error: o 1 2 sf No error. User is inactive. Invalid subfunction. Set of flags for the file set desired. set: sf1 sf2 sf3 sf4 Description Flag sf1=1 sf2=1 sf3=1 sf4=1 Beta(2) through Beta(n) Public files. Print files. Punch files. Private files for the user specified in the usrno field. fnum Number of files in this file set. the operating system. usrno Binary user number if sf4=1. finfo i A 16-word copy of the file index table entry for each file in the set specified is returned: Public files Print files Punch files Private files I Figure 5-27. 5-124.2 Only one flag must be This number is returned by Return the files for user O. Search system processor table (SPT) for zip codes with disposition code=#20 (print). Return all mcat=output files for the associated user number. Files with names PYYxxxxx and Q5Lxxxxx are assumed to have a disposition code of #20. Search SPT for zip codes with disposition code=#10 (punch). Return all mcat=output files stored under the associated user numbers. Search FILEI for all files under the specified user number. EXECUTE OPERATOR COMMAND (f=#0021) (Beta) Message Format (Sheet 27 of 27) 60459420 H o 63 o jcat1 64 65 jcat66 64 66 mxws reserved mxtl 16 131 mxws reserved mxtl 16 132 mxlp mp mxlp dp 8 8 mjc ioo 8 dp mp 16 32 16 16 197 32 16 8 mjc ioo 8 cjc 8 8 cjc 8 198 class df+1 263 class df+1 Figure 5-28. 60459420 H unused 8 8 unused 8 8 T JCAT System Table Format (Sheet 1 of 2) 5-125 Word o- 65 66 - 131 132 - 197 Description Field jcat Job category mnemonic (ASCII left-justified, blank-filled). mxws Maximum working set size limit, in blocks. mxtl Maximum time limit, in system seconds. mxlp Maximum large page limit. mp Maximum priority. dp Default priority. ioo Input on or off status: o 1 198 - 263 mjc Maximum job count; the maximum number of jobs from this category that can execute concurrently. cjc Current job count. class Job category class mnemonic (four ASCII characters, leftjustified, blank-filled). df+l Default category time limit. Figure 5-28. 5-126 Input on. Input off. T JCAT System Table Format (Sheet 2 of 2) 60459420 H EXECUTE PROGRAM FOR USER NUMBER (f=#0022) The EXECUTE PROGRAM FOR USER NUMBER system message initiates execution of a file for a specified user number. Only a privileged user can issue this message. The initiated file can be local, attached permanent, attached pool, or public. The message format is shown in figure 5-29. o 63 Alpha(1) r Alpha(2) n Alpha(3) bl Beta(1 ) ss len 16 0022 ba 16 48 usrno 8\ unused Beta(4) jce 81 16 priority 8 sl .subpriority 8 56 64 mxws 16 mxlp tl 8 Beta(5) Field Alpha( 1) 64 Description Response code returned by VSOS when message processing is complete: r o 1 2 3 4 #214 No errors. User is not privileged. File request error [refer to the ss field in Beta(l)] • No table space available. Invalid message option (c field). Beta buffer length error. Either the first word address of Beta plus its length is greater than the maximum virtual user address, or the Beta buffer is too small for the number of requests and length specified. len Beta location. If this field is #FFFF, Alpha(3) contains the length and virtual address of Beta. If this field is not #FFFF, the Beta buffer immediately follows word Alpha (2) and contains one word. c Message option: 2 5-29~ 16 48 account Word 16 48 fname Beta(3) 60459420 H 16 eea 16 Beta(2) Figure c 16 Switch task to user number. option.) (This is the only EXECUTE PROGRAM FOR USER NUMBER (f=#0022) Message Format (Sheet 1 of 2) 5-126.1/5-126.2 I Word Alpha( 2) Field Description n Number of files put into execution with this message. eea Error exit address; virtual bit address to receive control if an error occurs during message processing (r~O). If this field is 0 when an error occurs, the task is aborted. Alpha(3) bl, ba If len=#FFFF, these fields contain the length in words and the virtual bit address of the first full word of the Beta portion. Beta(l) ss Error response code: o 2 3 4 5 6 7 8 9 IIA liB IIc liD tIE No errors. User directory is not on the disk. File was not found or not attached. Nonexecutable file. Invalid priority value. Invalid user number. Not authorized to run at priority level. Invalid security level specified. File access conflict with another user. FILEI (file index table) is full. Requested time limit exceeds time available to the user. User does not have execute access for the file. Nonproduction program not permitted (production users only). No JDNs available to assign to user program. usrno User number (six ASCII characters, left-justified, blank-filled). Beta(2) fname File name (eight ASCII characters, left-justified, blank-filled). Beta(3) priority Job priority 1 (lowest) through 15 (highest). subpriority Subpriority of the job (1 through 255). lDXWS Maximum working set limit in blocks (0 through the maximum blocks in machine, MAXWS in MISCTAB). mxlp Maximum large page limit (0 through the maximum large pages in machine, MAXWS/128). jce Job category entry number (0 through 65). sl Security level (1 through 8) to be given to the task. Default is an installation-defined parameter. tl Time limit in system seconds (0 through 599,940). The default (+1=0) is the maximum amount of time allocated for a user number. account Account number (eight ASCII characters, left-justified, blank-filled) • Beta(4) Beta(5) Figure 5-29. 60459420 H EXECUTE PROGRAM FOR USER NUMBER (f=#0022) Message Format (Sheet 2 of 2) 5-127 I UPDATE USER DIRECTORY (f=#0023) This message can be issued only by a privileged user and allows the user to create, delete, or modify a user directory. One purpose for which an installation can use this message is to create a utility for managing batch job accounting (refer to Accounting, chapter 8). A nonprivileged user may execute option #4 only for the user number executing the call. The format of the Alpha portion of this message is shown in figure 5-30. The Beta word formats depend on the message option (c field) in Alpha(l), and are shown in figure 5-31. Only one Beta will be processed per Alpha. o 63 1€ Alpha(2) 16 16 Word AlphaO) 48 I I bl ba L_________ W ________________________________ 3illI I Field r Description Response code returned by VSOS when message processing is complete: o #214 No errors. Beta buffer length error. Either the first word address of Beta plus its length is greater than the maximum virtual user address, or the Beta buffer is too small for the number of requests and length specified. 1 If this field is #FFFF, bl in Alpha(3) contains the length of the remote Beta buffer. ba contains the location of the remote Beta buffer. If this field is not #FFFF, the Beta buffer immediately follows word Alpha(2) and contains one word. c Message options, each of which has a different Beta format: 1 2 3 4 5 6 7 8 9 #A #B Figure 5-30. 5-128 16 eea unused 16 Alpha(3) 0023 c Alpha(1 ) Delete user from user directory. Replace password for user. Write (modify/create) user directory entry and encode password. Read user directory entry. Write (modify/create) user directory entry, do not encode password. Verify user directory permissions. Read user accounts. InitiaLize user directory (delete all but special users). Read user directory file into caller's buffer. Return default project number for a user. Return first eight words for user activity table entry. UPDATE USER DIRECTORY (f=#0023) (Alpha) Message Format (Sheet 1 of 2) 60459420 F Word Field Description Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message. If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (l=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Figure 5-30. UPDATE USER DIRECTORY (f=#0023) (Alpha) Message Format (Sheet 2 of 2) For message option 1: o 63 user Beta(1 ) 64 unused ss Beta(2) 56 8 Word Field Beta(l) user Binary user number. Beta(2) ss Error response code: Description o 1 2 3 4 Figure 5-31. 60459420 E No error. User is not privileged. Illegal c option. User is active (c=l, 3, 5). User directory is full (c=3, 5, crflg~O). UPDATE USER DIRECTORY (f=#0023) (Beta) Message Format (Sheet 1 of 5) 5-129 For message option 2: 0 63 user Beta(l ) 64 Beta(2) unused ss 56 8 oldpword Beta(3) 64 newpword Beta (4) 64 Description Field Word Beta(l) user Binary user number. Beta(2) ss Error response code: o 1 2 5 6 7 No error. User issuing the call is not privileged. Illegal c option. User does not exist. Invalid password. Passwords do not match. Beta(3) oldpword User's password in ASCII before the issuance of this call. Beta(4) newpword User's new password in ASCII after the successful completion of this call. This field is set to 0 on return. For message options 3, 4, 5, 9, and #B: o I 63 user Beta(l ) 64 crflg ss Beta(2) p f 8 Beta(3) 8 ~1 unused 48 bufaddr buflen 48 16 Word Beta(l) user Figure 5-31. 5-130 Description Field Binary user number. UPDATE USER DIRECTORY (f=#0023) (Beta) Message Format (Sheet 2 of 5) 60459420 H Word Field Beta(2) ss Description Error response code: o No error. User issuing the call is not privileged. Illegal c option. User is active (c=3, 5). User directory is full (c=3, 5, and crflg#O). User does not exist (c=4, #B; c=3, 5 and crflg=O). Invalid password (c=2). User already exists (c=3, 5, and crflg#O). User in Beta does not match the user in the buffer (c=3, 5). Buffer is not long e?ough to contain user directory (c=9). Caller is not site security administrator (only if production status is selected for the specified user). 1 2 3 4 5 6 8 9 liB fIE Beta(3) crflg If 0, this request is to modify an existing user's user directory entry. If set to 1I7F, this request is to create a new user directory entry. pflg If pflg=l, the production user flag is set in the user directory entry (c=3 or 5) •. buflen Length of the buffer specified at bufaddr. For c=3, 4, 5, and 7, buflen is in words. For c=#B, buflen should be set to 8. For c=7, buflen is returned to the caller and is the number of accounts read. For c=9, buflen is in blocks. bufaddr Virtual bit address of the buffer to or from which data is moved. I I For message option 6: o 63 Beta(l ) user r- prodtn Beta(2) 8 Beta(3) fl seclev ss 8 I 64 I unused 6 -1 43 account 64 Beta(4) password 64 Beta(5) jcat 64 Figure 5-31. 60459420 H UPDATE USER DIRECTORY (f=1I0023) (Beta) Message Format (Sheet 3 of 5) 5-131 Word Field Beta( 1) user Binary user number. Beta(2) ss Error response code: Description o 1 2 5 #A #C No error. User issuing the call is not privileged. Illegal c option. User does not exist. Parameter in Beta does not match parameter in user directory. Specified job category does not exist. seclev Security level to be verified. fl This field is comprised of six subfields: Bit 0 1 2 3 4 5 Subfield acflg pwflg slflg jcflg daflg tpflg Description If If If If If If set, set, set, set, set, set, verify verify verify verify return verify account identifier. password. security level. job category (jcat). default account. tape access. Account verification, if requested, occurs first. Password verification, if requested, precedes security level verification, which precedes job category verification, which precedes tape access verification. As a parameter is successfully verified, the associated flag in fl is cleared to O. On detection of an unsuccessful verification, all verification processing stops. The system returns an ss code of #A, and the flag (and all following flags) associated with the unsuccessful verification in fl is still set. If both actflg and daflg are set, the account in Beta(3) will be verified. If the account doesn't verify, then the default account will be returned in Beta(3). I prodtn Returned value = 1 if a production user. not a production user. Beta(3) account Account identifier to be verified, in ASCII. Beta(4) password Password to be verified, in ASCII. return. Beta(5) jcat Job category to be verified, in ASCII. Figure 5-31. 5-132 Returned value o if This field is set to 0 on UPDATE USER DIRECTORY (f=#0023) (Beta) Message Format (Sheet 4 of 5) 60459420 H For message option 8: o 63 Beta(1 ) unused 64 Beta(2) ss unused 8 Word 56 Field Beta(2) Description ss Error response code: o 1 2 No error. User issuing the call is not privileged. Illegal caption. For message option #A: o 63 Beta(1 ) user 64 Beta(2) ss unused 8 56 Beta(3) project number 64 Beta(4) project number 64 Beta (5) project number unused 32 Word Field Description Beta(l ) user Binary user number. Beta(2 ) ss Error response code: o 1 2 5 #D Beta(3), (4), (5) proj ect number Figure 5-31. 60459420 E 32 No error. User issuing the call is not privileged. Illegal caption. User does not exist. Default project number does not exist. A 1- to 20-character default project number in ASCII, left-justified with blan~ fill. UPDATE USER DIRECTORY (f=#0023) (Be ta) Message Format (Sheet 5 of 5) 5-133 MISCELLANEOUS (f=#0024) With this message, a user program can determine a variety of information concerning itself, its controller, and its control lees • Also, raw account ing statistics can be retrieved with option 9 (c field). The format of this message is shown in figure 5-32. The Beta portion of the format is discussed under the c field description. o 63 Alpha(1) len r 16 Alpha(2) c 16 unused 0024 16 16 eea 16 Alpha(3) Word Alpha(l ) IL 48 bl ____ ba _____________ "___ -...:!~"- Field r Description Response code; returned by the operating system when this message has been processed. If no error occurs the response code is 0; otherwise: 2 3 #214 len I Figure 5-32. 5-134 I ~~ No controllee, illegal information option, or the error response field for Beta(l) of option value C, 12, or 13 is set. Program not currently running in interrupt program state (c=#F or #11 only). Error in system call to read the user's account numbers. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length speci fied. If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion. For option 8, if this field is 3, Beta(4) and Beta(5) are not present. For option 1, if this field is 3, Beta(4) through Beta(9) are not present. MISCELLANEOUS (f=#0024) Message Format (Sheet 1 of 8) 60459420 F Word Alpha(l) Description Field c Message options (c=4, c=#B, and c=#14 are reserved). All information is returned by the operating system unless otherwise specified. The values are: 1 2 3 4 5 6 7 8 9 Get the user number, bank account, and maximum file length. Verify logged-in workstation user. Get the time limit. Reserved. Get the controllee's termination state. Get the controllee's name and place. Get the controller's name and place. Get this program's name and place. Get the raw page fault counts, CPU times, and memory usage. If the batch processor issues this option, the statistics returned include the cumulative statistics for the batch processor and all its controllees. The Beta portion of the format is as follows: Beta(l) Beta(2) Beta(3) Beta(4) #A #B #D HE #F #10 #11 #12 #13 #14 Small page fault count. Large page fault count. CPU time (microseconds). Memory usage. System CPU time. Get clock times as of message issuance. Reserved. Get the contents of minus pages. Get the version identifiers. Get the interrupt invisible package. Get the task CPU time. Get the interrupted register file. Destroy batch job's input file if system fails. Rerun batch jobs input file if system fails. Reserved for DEBUG. Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (r+O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Figure 5-32. 60459420 H MISCELLANEOUS (f=#0024) Message Format (Sheet 2 of 8) 5-135 I I Message option: c=l Get the user number, bank account, and maximum file length. If Beta(4) is set to an account number, validate the account and return additional parameters in Beta(5) through Beta(9). (The len field must be set to either 3 or 9.) o Beta (1) 63 unused user 48 16 unused Beta (2) bank 24 Beta (3) 40 unused mfl 32 32 Beta (4) acctno 64 Beta (5) acctflag privflag 8 unused muflag 8 Beta (6) 8 40 cacct 64 Beta (7) projno 64 Beta (8) projno 64 Beta (9) unused projno 32 Word Field 32 Description Beta(l ) user User number in ASCII, right-justified with blank fill. Beta( 2) bank Quantity of STU units in the user's bank account. Beta(3) mfl Maximum file length. Beta( 4) acctno Eight character account number to be verified. Figure 5-32. 5-136 MISCELLANEOUS (f=If0024) Message Format (Sheet 3 of 8) 60459420 F Word Field Beta(5) privflag Description User privileged flag: o 1 acctflag Account number valid flag: o 1 muflag Nonprivileged. Privileged. Invalid account. Valid account. Master user flag: o User is not the master user of the account. User is the master user of the account. Beta(6) cacct Current account number in execution (in ASCII t left-justified with blank fill). Beta(7) through Beta( 9) projno 1- to 20-character project number in execution (in ASCII t leftjustified with blank fill). Message option: c=2 Verify that a user program executing a workstation utility is permitted to communicate with the correct workstation zip code. If the user is making the call from a workstation t the zip and ttyno are returned in Beta(1) • o Beta(1) 63 ~I______________________u_n_us_e_d_____________________4~8~1___ 8~I~t_t_y_n_O~81 Z_iP___ Word Field Beta(1) zip Zip code of workstation. ttyno Terminal number of logged-on user. Figure 5-32. 60459420 H Description MISCELLANEOUS (f=#0024) Message Format (Sheet 4 of 8) 5-137 • Message option: c=3 Get the time limit. Beta(1) contains the existing time limit, tn microseconds, in the rightmost 48 bits; the leftmost 16 bits are unused. c=5 Get the controllee's termination state. Beta(l) contains the following: o 63 unused Controllee's return code. other values are: 4 8 cts cts 8 I Description Field rc rc rc=O means successful completion; Nonfatal error. Fatal error. Controllee's termination state. o 1 2 3 4 #39 113D #3E The values are: Still active. User terminal break to the EXIT control statement. Operator break to the EXIT control statement. Operator break to the end-of-job (6/7/9) card. Operator drop of the entire batch deck. Normal termination. Abort. Normal termination. The drop, scratch, and output files are saved for #3D and #3E. For #39, the drop and scratch files are destroyed, while the output file is given to an output processor according to the disposition code for the file. Figure 5-32. 5-138 MISCELLANEOUS (f=#0024) Message Format (Sheet 5 of 8) 60459420 F Message option: c=6 Get the controllee's name and place. Beta(l) contains the source file name for the controllee, and Beta(2) contains the drop file name for the controllee (see the following Beta format). c=7 Get the controller's name and place. Beta(l) contains the source file name for the controller, and Beta(2) contains the drop file name for the controller (see the following Beta format). c=8 Get this program's name and place. The Beta portion of the format is: o 63 Beta( 1) sfile 64 Beta(2) dfile 64 Beta(3) priv lev 8 Beta (4) unused 8 4 jdn site I unused 24 12 8 user 64 Beta(5) jobname 64 Word Field Description Beta(l) sfile Source file name for this program. Beta(2) dfile Drop file name for this program. Beta(3) priv Identifies the privileged task. This field must be set to 0 for a nonprivileged task, or nonzero for a privileged task. lev Level in the controllee chain; 1 jdn Job descriptor number (integer; 1 through 2047) of the calling job. site Origination site ID (ASCII). Beta(4) user User number in ASCII, right-justified with blank fill. Beta(5) jobname Job name of the calling task in ASCII, left-justified with blank fill. Figure 5-32. 60459420 H ~ lev ~ 9. MISCELLANEOUS (f=#0024) Message Format (Sheet 6 of 8) 5-139 I Message option: c=9 Get the raw page fault counts, CPU times, and memory usage. If the batch processor issues this option, the statistics returned include the cumulative statistics for the batch processor and all its controllees. The Beta portion of the format is: o 63 spflt Beta(1 ) Beta(2) Ipflt 32 32 ucpu unused 48 16 Beta(3) memu unused 48 16 Beta(4) unused 16 syscpu 48 Word Field Beta( 1) spflt Number of disk accesses (input requests issued) that resulted from small page faults (small page implicit reads) up until the issuance of the MISCELLANEOUS message. lpflt Number of disk accesses (input requests issued) that resulted from large page faults (large page implicit reads) up until the issuance of the MISCELLANEOUS message. Beta(2) ucpu User execution CPU time, in microseconds, up until the issuance of the MISCELLANEOUS message. Beta(3) memu Memory usage; the values (current working set size)*(user CPU time for the current accounting period) summed over all accounting periods for the task up until the issuance of the MISCELLANEOUS message. Beta(4) syscpu Virtual and resident system CPU time, in microseconds, for user execution up until the issuance of the MISCELLANEOUS message. Description Message option: c=IIA Get clock times as of message issuance. is as follows: Beta(l ) Beta(2) Figure 5-32. 5-140 The Beta portion of the format Master clock value, expressed as yymmddhhmmsspppp. is fraction of a second. ASCII clock value, expressed as hh.mm.ss (hour.minutes.seconds). pppp MISCELLANEOUS (f=110024) Message Format (Sheet 7 of 8) 60459420 F Beta(3) Beta(4) Beta(5) Beta(6) Calendar value, expressed as mm/dd/yy (month/day/year). Value of the millisecond clock (0 at midnight). Value of the microsecond central processor clock (0 at power on). Current date, in the rightmost 16 bits. The leftmost 7 bits of the 16 bits contain the last 2 digits of the year, in binary; the remaining 9 bits contain the number of days since the beginning of the year (1 to 366), in binary. The leftmost 48 bits of Beta(6) are unused. Message options: c=#B Reserved. c=#D Get the contents of the minus pages and return them in Beta(l) through Beta(1536). (The format of the minus pages is described in chapter 2.) If there is no second, minus page, Beta(513) is #FFFF. If there is no third minus page, BETA(1025) is #FFFF. If Beta length is 512, only the first minus page is returned. If Beta length is 1024, only the first and second minus pages are returned. c=#E Get the version identifiers. Beta(l) contains the resident system version identifier, and Beta(2) contains the virtual system version identifier. c=#F Get the interrupt invisible package. If the program is running in interrupt state, Beta(l) through Beta(40) contain the contents of the invisible package saved when a program interrupt occurred. (Refer to appendix E, which describes the invisible package.) If the program is not currently running in interrupt state, a response of 2 is returned. c=#10 Get the task CPU time. microseconds. c=#ll Get the interrupted register file. Beta(l) through Beta(256) contain the contents of registers 0 through 255, when a program interrupt occurred. If the program is not currently running in the interrupt program state, a response code of 2 is returned. c=#12 If the batch input file whose name is supplied by the user in Beta(l) fails to complete due to a system failure, destroy the batch job's input file. The name of the batch input file must be left-justified with blank fill. Beta(2) contains the return code; the value is 0 if the batch job's input file is successfully destroyed, or 1 if the batch file names does not exist. c=#13 If the batch input file whose name is supplied by the user in Beta(l) fails to complete due to a system failure, rerun the batch input file. The name of the batch input file must be left-justified with blank fill. Beta(2) contains the return code; the value is 0 if the batch input file is successfully rerun, or 1 if the batch file name does not exist. c=#14 Reserved for DEBUG. Figure 5-32. 60459420 G Beta(l) contains the task CPU time, in MISCELLANEOUS (f=#0024) Message Format (Sheet 8 of 8) 5-141 I RECALL (f=#0025) The RECALL message allows a program to suspend its own execution for not fewer than 30 seconds nor more than 30 minutes. At the end of suspension, the program is recalled to an active status. The format of this message is shown in figure 5-33. o 63 r Alpha(1 ) Alpha(2) unused len 16 unused 0025 16 16 eea 48 16 Alpha(3) IL bl ba _. _ _ _ _1~ ..... _ _ _ _. --.; _ _ _ _ _ _ . _ _ _ _ _ Beta(1 ) Word Alpha(l) unused Field r 16 I ~~ time Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 1 #214 This message is not allowed for this program. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion, that is, 1. Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (r+O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(l) time Period of suspension; specified as a hexadecimal integer number of microseconds. No fewer than 30 seconds and no more than 30 minutes must be specified by this field. Values outside this range are set to the nearest interval limit. Figure 5-33. 5-142 RECALL (f=#0025) Message Format 60459420 E POOL FILE MANAGER (f=#0026) This message offers a variety of options relating to pool file management, including attaching the user to a specified pool (thus giving the user access to the files in the pool) and detaching a pool (after which the files in the pool are no longer accessible to that user). A user who issues option 1 of this message to create a pool becomes that pool's pool boss. Only the pool boss can issue options 2, 3, 6, and 7. Only the pool boss or a user authorized by the pool boss can issue options 4 and 5. Any user can issue option 8. At the end of each batch job, when the batch processor issues the USER/ACCOUNTING COMMUNICATION message option 2 (end of job), any pools that were first attached by the job are detached. Pools that have been attached interactively remain attached until the user detaches them or until that JDN is no longer active [that is, has done a (sc)BYE]. The format of the POOL FILE MANAGER message is shown in figure 5-34. described under the c field definition. The Beta formats are o ~ Alpha(1 ) r Alpha(2) len 16 16 c 16 0026 eea unused 48 16 Alpha(3) IL _ _ _ bl I __ 1~ Word ba r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is O. A nonzero response code does not necessarily mean an error has occurred (refer to message options 7 and 8). Other values are: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 Figure 5-34. 60459420 F I _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ Field Alpha(1) 16 Pool name was already attached by this job. Pool name is undefined. Four pools already attached. Pool is not attached. Cannot attach to the pool; user has no access to the pool. Undefined user number. Duplicate pool name. Unable to destroy the pool. Pool access directory (PAD) is full. One or more pool files span a downed device. POOL FILE MANAGER (f=1I0026) Message Format (Sheet 1 of 4) 5-143 I Word Description Field Alpha(l) #IA #IB #IC #ID #IE r #IF #214 Pool list (PLIST) table is full. Invalid pool. Invalid pool name. Not a pool boss. PAD or PLIST file was not found (refer to the VSOS 2 Installation Handbook). File index table is full. Beta buffer or user list buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer or user list buffer is too small for the number of results and length specified. len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. If this field is 1 under message option 3, all users can access the pool. c Message options. The pool name field in Beta(l) contains up to eight letters and numbers and must start with a letter; it is left-justified with blank fill. Binary user numbers can range from 1 to 999999; they are right-justified with zero fill. The options are: Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Under option 3, all users can access the pool if the bl field is 1. 2 3 Figure 5-34. 5-144 Create a pool. Adds the pool name to the pool list and clears (zeros) the pool access directory (invalid when universal access is set) for that pool. The creator is the pool boss. Beta(l) contains the pool name. Destroy the pool. If no users are attached and no files are in the pool, the pool name is deleted from the pool list. Beta(l) contains the pool name. Grant access to the pool. Places the specified user numbers into the pool access directory. If either the len field or bl field is 1, all users can access the pool. Beta(l) contains the pool name. Beta(2) contains the length and address of the user number list buffer: POOL FILE MANAGER (f=#0026) Message Format (Sheet 2 of 4) 60459420 E o 63 Beta (1 ) Beta (2) poolnm . length address 16 Word 48 Field Description Beta(1) poolnm Name of this pool, in ASCII. Beta(2) length Length of user number list buffer, in words. address Bit address of user number list buffer. 4 5 6 7 8 Figure 5-34. 60459420 F Attach to the pool. Attaches the requesting job to the named file pool. Beta(l) contains the pool name. Detach the requestor from the pool. Beta(1) contains the pool name. Remove the access privilege. Specified user numbers are removed from the pool access directory. Beta(1) contains the pool name. Beta(2) contains the length and address of the user number list buffer. List the users having access to the pool. Beta(1) contains the pool name. Beta(2) contains the length and address of the user number list buffer. List the pools and the pool boss. All nonzero entries in the pool list file are copied into a variable number of Beta words; the number of words copied is returned in the response code field. Each pool list entry returned by the operating system has the format shown next. POOL FILE MANAGER (f=#0026) Message Format (Sheet 3 of 4) 5-145 I o 63 pcount Beta(1 ) pboss pfree pptr 16 16 12 poolnm Beta(2) 20 64 Word Field Beta(l ) pcount Count of users attached to this pool. pptr Pointer into the pool access directory that contains a list of user numbers which can attach to this pool (the value is used by the operating system only). pfree Currently unused. pboss User number of the boss of this pool. poolnm Name of this pool, in ASCII. Beta(2) Figure 5-34. 5-146 Description POOL FILE MANAGER (f=#0026) Message Format (Sheet 4 of 4) 60459420 E LINK (f=#0027) With this message, a privileged user can process a CYBER interactive output message. The Alpha portion of the LINK message is shown in figure 5-35. The Beta word formats depend on the message option (c field) in Alpha(l) and are shown in figure 5-36. o 63 Alpha(1 ) 16 Alpha(2) 0027 c len r 16 16 eea n 48 16 Alpha(3) ba bl 48 16 Word Al pha(l ) Field Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: r 1 2 #214 Alpha(3) If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length of the Beta portion. c Message option: The sys tem returns the identifiers of te rminal s that have outstanding output along with the output messages. n This field is the size of the Beta portion of the message, and the Beta area should be at least n words long. When the message has been processed, n is set equal to the word length of the information returned in the area 'pointed to by bva. eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=IIFFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Figure 5-35. 60459420 E Illegal option. The message is for privileged use only. Beta buffer length error; either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. len 1116 Alpha(2) 16 LINK (f=1I0027) (Alpha) Message Format 5-147 Message option: I c=tl16 Poll. The caller VSOS beginning in field of Alpha(2) returned in the n puts the terminal number of all terminals logged into Beta(2). The number of terminals is put in the n by the caller. The length of the output in words is field of Alpha(2) by the operating system: o 63 Beta(l ) I unused Beta(2) bva 16 48 ttyno hold 11 logout unused 16 Word Field Description Beta(l ) bva The system returns terminal output messages at this bit address. Beta(2) ttyno Terminal number. logout Set by VSOS if user is to be logged out. hold Set if caller cannot accept any output for this terminal at this time. The system does not return output (if any) for this terminal. Format for output messages: o Header 63 ttyno .16 unused 16 words 16 bytes 16 messagel 64 ••• message m 64 Word Field Header ttyno Terminal number. words Number of words, including header. bytes Number of bytes in the message. message Message text. (l)-(m) Description Figure 5-36. 5-148 LINK (f=#0027) (Beta) Message Format 6045Y420 F VARIABLE RATE ACCOUNTING (f=#0028) This message dynamically changes the variable rate during execution of a task. This call can be made only by a public controllee, a controllee which has the variable rate permit flag set in the user directory, or a nonpublic controllee with the proper password. Dynamic calls to change variable rates are made by applications programs rather than utilities. The rates to be indexed are in the Q5VRF file. If IP F VR is 0, the call is illegal (r=2). The change to the variable rate index is made in the descriptor block entry. At the time the change is made, BANKAC is called to compute the accumulated SBUs to be charged at the old rate and to decrement the available time remaining to complete the task. Figure 5-37 shows the format of the Alpha portion of the VARIABLE RATE ACCOUNTING message. o 63 Alpha(1) r len 16 Alpha(2) vri Alpha(3) a a 12 f unused 16 t 0028 16 16 eea 3 48 bl ba 48 16 Beta(1 ) password t Unused. Word Alpha(l ) Description Field r Response code returned by the operating system when this message has been processed: o 1 2 3 #214 Alpha(2) len Length of the Beta; if len=#FFFF, then Alpha(3) contains the starting address and length of the Beta. vri Index into variable rate table (set by user). Figure 5-37. 60459420 E Normal. File is not public or privileged. Call is not valid at this installation. Accounting access denied. This could be caused by three events: the call has not been verified as being issued by a legitimate task, the password does not match the password in the variable rate table, or the variable rate table contains a password to that variable rate index. Beta buffer length error. VARIABLE RATE ACCOUNTING (£=#0028) Message Format (Sheet 1 of 2) 5-149 Word Alpha(2) Field Description Accounting flag. If set, accounting statistics will not be accumulated to the minus page or to BACCTG: aaf =0 #0 Alpha(3) Beta( 1) eea Virtual bit address to receive control if an error occurs during message processing (if r is different from 0). If eea=O, the error is considered fatal. bl Beta length. ba Beta address. password Password (64-bit) to the variable rate table. Figure 5-37. 5-150 Not accounting (default). Accounting. VARIABLE RATE ACCOUNTING (f=#0028) Message Format (Sheet 2 of 2) 60459420 E SEND MESSAGE TO DAYFILE (f=#0029) This message allows the user to send a string of ASCII data to the program dayfile. The format of the message is shown in figure 5-38. o 63 r Alpha(1 ) 16 unused Alpha(2) c cf len 16 8 16 eea 48 16 bl Alpha(3) 0029 8 ba 48 16 Beta(1 ) string of ASCII data Beta(n) Word Alpha( 1) Field r Description Response code; returned by the operating system when the message has been processed. If no error occurs the error code is 0; otherwise: 1 2 3 4 5 6 7 8 #214 len Figure 5-38. 60459420 E Length of Beta in character bytes is greater than 4096. Illegal c field selected for this message. Dayfile is full. The message in dayfile will be DAYFILE FULL. Dayfile is not opened for implicit I/O. Invalid base virtual bit address for Q5DAYFILE. Unable to find Q5DAYFILE. The call is currently blocked waiting for access to dayfile (caller will not see a response code 7 when control is returned). User not authorized to make the call. Beta buffer length error. Either the first word address of Beta plus length is greater than the maximum user virtual address, or the Beta buffer is too small for the message; length is O. If len=#FFFF, Alpha(3) contains the length in character bytes and the virtual bit address of the Beta portion of the message. Otherwise, Beta is assumed to begin at Alpha(3), and len is the length in character bytes of the Beta portion. SEND MESSAGE TO DAYFILE (f=#0029) Message Format (Sheet 1 of 2) 5-151 Word Alpha(l ) Field Description cf Type of entry (used only when c=2): 1 2 3 4 USER; SYST; LABL; DIAG; job dayfile and terminal entries. messages to and from the operator. new system dayfile started. customer engineering diagnostics. Control field: c 1 2 I 3 Send message to the system and job dayfile. Send message to the system dayfile, for privileged/authorized users only (such as operator and privileged system tasks). Send message to the job dayfile. The message does not go into the system dayfile. Alpha(2) eea Virtual bit address to receive control if an error occurs during message processing (r'O). If eea is 0, the error is considered fatal. Alpha(3 ) bl, ba If the Beta portion of the message is not contiguous to the Alpha portion (len=#FFFF), these parameters indicate the length in character bytes and virtual bit address of the first full word of the Beta portion. Beta(l ) through string of Maximum length of 4096 characters. If there is no flIF at the ASCII data end·of the line, one will be added. Illegal characters #00 through #IE and #7F through #FF will be changed to blanks. The combination #ODOA will be changed to #20IF. ( n) Figure 5-38. 5-152 SEND MESSAGE TO DAYFILE (f=#0029) Message Format (Sheet 2 of 2) 60459420 F RHF_CALL (f=#002A) This message controls the RHF-related tables. The RHF applications issue this message. The Alpha format of the RHF_CALL system message is shown in figure 5-39. The Beta format is shown in figure 5-40. o 63 Alpha(1 ) r Alpha(2) c len 16 16 unused 002A 16 eea 48 16 Alpha(3) bl ba 48 16 Word Alpha(1) Field r Description Response code; returned by the operating system when this message has been processed. o 1 #214 No errors. Error code was returned in Beta(n). Beta buffer length error. len If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3) and len is the length of the Beta portion. All requests must provide at least 15 Beta words. c Function code: 1 2 3 4 5 6 7 8 9 IIA liB Ilc tiD #E Figure 5-39. 60459420 H 16 Return Remote Host Facility table (T RHFT) entry. Create new currently active table (T=CAT) entry for servicer RHF application. Set NETON flag in T CAT for servicer application. Status currently running table (T_CRT) for application name. NETOFF and clear T CAT entry. Create new entry in T_CAT for requested initiator application. Change maximum number of copies of an RHF application. Change default output LID. Save information about an error condition. Return currently active table (T CAT). Return RHF mainframe table (T RHMFT). Return application table (T_APPT). Return T CRT table. Enable/disable physical identifier/logical identifier (PID/LID). RHF CALL (f=#002A) (Alpha) Message Format (Sheet 1 of 2) 5-153 I Word Field Description Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (r~O). If this field is 0 when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Alpha and Beta portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in words of Beta and the virtual bit address of its first full word. Figure 5-39. RHF CALL (f=#002A) (Alpha) Message Format (Sheet 2 of 2) Function code: Return T RHFT entry: c=1 o 63 aname Beta( 1) unused 56 Beta(2) unused user 40 24 Beta(3) 8 unused status 48 16 level 5 parameters Beta(4) 64 Beta(5) level 6 connect message parameters Beta(8) Word Field Beta(l) aname Application name; used to search T RHFT. Beta(2) user User number of the application that issues the call. I Figure 5-40. 5-154 Description RHF CALL (f=#002A) (Beta) Message Format (Sheet 1 of 13) 60459420 H Word Field Beta(3) status Description Error message returned: #11 #12 #13 No matching application connect waiting. Invalid user for this application. No entry in T_CRT for this application. Beta(4) level 5 Level 5 connection parameters as received from the LCN parameters (returned by system). Beta(5) through Beta(8) level 6 Incoming application connection request as received from the LCN parameters (returned by system). Function code: c=2 Create new T CAT entry for requested servicer RHF application: o 63 Beta(1 ) aname subopt 8 56 Beta(2) user unused 24 Beta(3) 40 status unused 16 48 Beta(4) level 5 parameters 64 Beta(5) level 6 connect message parameters •• • 7 Beta(8) Beta(9) unused 8 Beta(10) n 8 minacn 12 maxacn 12 unused 24 ordinal unused 56 Figure 5-40. 60459420 H 8 I RHF CALL (f=#002A) (Beta) Message Format (Sheet 2 of 13) 5-155 Word Field Description Beta(l) aname Application name. subopt Determines if LIDs should be validated for multiple file transfers on a single operation. 0 1 Do not validate the LID. Validate the LID. Beta(2) user User number of the application that issues the call. Beta(3) status Error message returned: #21 #22 #23 #24 #25 #26 #27 #28 Local LID specified by level 6 parameters not found. Local LID specified by level 6 parameters disabled. Currently running limit exceeded for this application. Undefined RHF application name. Invalid user number specified for this application. Application not in currently running table (T CRT). No empty entries in connected application table (T_CAT) • No empty slot in connected application table (T_CAT). Beta(4) level 5 Level 5 connection parameters as received from the LCN. parameters Beta(5) through Beta(8) level 6 Incoming application connection request as received from the LCN parameters (provided by caller). Beta(9) n Number of outstanding connections for this application. minacn Minimum application connection number. maxacn Maximum application connection number. ordinal Index to entry in T CAT. Beta(10) I Figure 5-40. 5-156 RHF CALL (f=#002A) (Beta) Message Format (Sheet 3 of 13) 60459420 H Function code: c=3 Set NETON flag in T_CAT for servicer application: 0 I Beta( 1) status Word Field Beta(1) status unused I ordinal 81 Description Error message returned: #31 #32 ordinal c=4 40 63 Invalid T CAT ordinal. No entry for this ordinal. Index to entry in T CAT. length of T_CAT. Valid range of the ordinal is 3 to the Status CRT for application name: o 63 Beta( 1) aname unused 56 Beta(2) 8 unused 64 Beta(3) status cur maxall 16 8 unused Word Field Beta( 1) aname Application name. Beta(3) status Error message returned: Description o 1 2 #41 Currently running limit not exceeded. Currently running limit equals the maximum allowed. Currently running limit exceeds the maximum (occurs if operator reduces maximum to a number lower than what is currently running). Application name not found. maxall Maximum number of currently running applications allowed (returned by system). cur Number of applications currently running (returned by system). Figure 5-40. 60459420 H 32 8 I RHF CALL (f=#002A) (Beta) Message Format (Sheet 4 of 13) 5-157 Function code: NETOFF and clear T CAT entry: c=5 o Bma(1) l______________ 1~_ _____~_a_t_us_______16 Word Field Beta(l) status ordinal Figure 5-40. 5-158 ~I_____o_r_d_in_a_'____81 u_n_u_se_d________________40 Description Error message returned: #51 #52 I ~ Invalid T CAT ordinal. No entry for this ordinal. Index to entry in T CAT. RHF CALL (f=#002A) (Beta) Message Format (Sheet 5 of 13) 60459420 H Function code: c=6 Create new entry in T CAT for requested initiator application and return initial connection request packet. o 63 subopt aname Beta(1 ) 56 unused user Beta(2) " 8 40 24 Beta(3) remote pid remote lid status 24 24 16 level 5 parameters Beta(4) 64 Beta(5) ••• level 6 connect message parameters Beta(8) n zip Beta(9) 8 Beta(10) unused maxacn minacn 8 12 12 24 ordinal unused 56 Word Field Beta( 1) aname Application name. subopt Determines if LIDs should be validated for multiple file transfers on a single connection. Description o 1 Do not validate the LID. Validate the LID. Beta(2) user User number of the application that issues the call. Beta(3) status Error message returned: #61 #62 #63 #64 #65 #66 #67 #68 #69 #6A #6B #6C Figure 5-40. 60459420 H 8 LID not found. LID disabled. Currently running limit exceeded. Undefined RHF application name. Invalid user number. No CRT entry for this application. PID not found in Remote Host Facility mainframe table (T RHFMT). PID disabled. No empty slot for T_CAT ordinal in the application entry in T CRT. No empty entry in connected application table (T_CAT). RCD NAD is disabled. SHD NAD is disabled. RHF CALL (f=#002A) (Beta) Message Format (Sheet 6 of 13) 5-159 I Word Field Beta(3) remote lid Remote logical identifier. remote pid Remote physical identifier (returned by system). Description Beta(4) level 5 LevelS connection to be sent to the LCN (returned by system). parameters Beta(5) through Beta(8) level 6 Data from the NAD on the host incoming application request parameters (returned by system). Beta(9) zip Zip code of the NAD that received this connection (returned by system). n Number of outstanding connections for this connection application to be sent to the remote host (returned by system). minacn Minimum application connection number (returned by system). maxacn Maximum application connection number (returned by system). ordinal Index to entry in T CAT (returned by system). Beta(10) Function code: c=7 Change maximum number of copies of an RHF application: o 63 Beta{1 ) aname unused 56 Beta(2) maxall status Word Field Beta( 1) aname unused 40 8 16 8 Description Application name or ALL. The option ALL is used to set all the application limits to the same value on one command. Beta(2) status Error returned: #71 #72 maxall I Figure 5-40. 5-160 Application is not found. Maximum specified is too large. Maximum number of currently running applications allowed (0 to 8). RHF CALL (f=#002A) (Beta) Message Format (Sheet 7 of 13) 60459420 H Function code: Change the default output LID: c=8 0 63 Beta(1 ) status unused 1 Word Field Beta(l) status lid 241 161 241 Description Error code returned: o #81 #82 Successful completion, no error. The specified LID is not defined. The default output LID is already sent to the specified value. Logical identifier of a remote host (three ASCII alphanumeric characters). lid Function code: c=#A Return T CAT table: o 63 Beta(1 ) aname unused 8 56 Beta(2) status count 16 pid 16 unused 24 8 Beta(3) Beta (count +2) Word Description Field Beta(l) aname Application name. If aname is zero, then the entire connected Application Table is returned. Otherwi.se, the application name and pid are used as qualifiers for the entries returned. Beta(2) status Error message returned: #A1 #A2 Figure 5-40. 60459420 H Named application not found. Beta length is too small for qualified T CAT entries. RHF CALL (f=#002A) (Beta) Message Format (Sheet 8 of 13) 5-160.1 • Word Field Description Beta(2) count Number of words returned [excluding Beta(1) and Beta(2)]. pid Remote pid. If pid is zero, then aname is the only qualifier for returned entries. Otherwise, the corrected remote pid and application name are used as qualifiers for the entries returned. Function code: Save information about an error condition: c=1I9 o 63 Beta(1 ) interval status 16 Word Field Beta(l ) status 16 64 Description Error information returned: o 1191 No errors. The information from the Beta has been saved by the virtual system. The time interval since the last occurrence of the ec/msgno error condition has not elapsed. The information from the Beta was not saved. interval Time interval in minutes (binary). The time is compared with the last occurrence of ec/msgno and if the difference is greater than interval, the information in the Beta is saved. ec Error condition category: 1 2 RHF application internal error. RHF application SIL error. msgno Error message number associated with the error condition. time Time stamp of the occurrence of the error condition. The format used for the time stamp is the master clock time (refer to the 'MASTER=' parameter of Q5TIME). Figure 5-40. • 5-160.2 16 time (yymmddhhmnsspppp) Beta(2) Beta(2) msgno ec 16 RHF CALL (f=1I002A) (Beta) Message Format (Sheet 9 of 13) 60459420 H Function code: c=#B Return T RHMFT table: o ~ Beta( 1) lid pid 24 Beta(2) count status nad 24 unused 8 8 unused 16 16 32 Beta(3) returned entries Beta( cou nt+2) If Beta(l) is 0, the entire RHF mainframe table is returned. Otherwise, the nonzero field in Beta(l) is used to qualify the set of RHF mainframe table entries returned: Word Beta( 1) Beta(2) Field Description lid Logical identifier. pid Physical identifier. nad Network access device number. status Error message returned: #B1 #B2 #B3 #B4 count Figure 5-40. 60459420 H No matching No matching No matching Beta length LID NAD PID too found. found. found. short for qualified T_RHMFT entries. Number of words returned [excluding Beta(l) and Beta(2)]. I RHF CALL (f=#002A) (Beta) Message Format (Sheet 10 of 13) 5-161 Function code: c=#C Return T APPT table: o ~ Beta( 1) aname Beta(2) status 56 count pid 16 unused 8 unused 24 16 8 Beta(3) ••• returned entries 7 Beta(count+2) Word Field Beta(l) aname Application name. If aname is 0, the entire application table is returned. Otherwise, the application and pid are used as qualifiers for the entry returned. Beta(2) status Error message returned: Description #Cl #C2 I count Number of words returned [excluding Beta(l) and Beta(2)]. pid If pid is 0, then pid is not used as a qualifier for returned entries; otherwise, the 3-character pid names and application names are used as qualifiers for the entry returned. Figure 5-40. 5-162 Named application not found. Beta length too short for full application table. RHF CALL (f=#002A) (Beta) Message Format (Sheet 11 of 13) 60459420 H Function code: c=flD Return T CRT table: o 63 Beta(l ) aname unused 56 Beta(2) status count 16 8 unused 16 32 Beta(3) ••• returned entries 7 Beta(count+2) Word Field Beta(l) aname Application name. If aname is 0, the entire T CRT table is returned. Otherwise, the application is used as a qualifier for the entry returned. Beta(2) status Error message returned: Description tlDl flD2 count Figure 5-40. 60459420 H Named application not found. Beta length too short for qualified T CRT entries. Number of words returned [excluding Beta(l) and Beta(2)]. I RHF CALL (f=fl002A) (Beta) Message Format (Sheet 12 of 13) 5-163 Function code: Enable/disable PID/LID: c=IIE o 63 Beta( 1) lid pid nad 24 Beta(2) status 24 8 e unused ~ unused 16 Word Beta(l) 48 Description Field lid Logical identifier. pid Physical identifier. nad Network access device. e/d Enable/disable entry: o 1 Beta(2) status Figure 5-40. 5-164 Disable entry. Enable entry. Error message returned: liE 1 IIE2 IIE3 IIE4 IIE5 IIE6 I 7\..1 LID not found. PID not found. LID specified is for a PID that is currently disabled. No LIDs for the specified PID. LID, PID, or NAD already in requested state. NAD was not found, or none of lid, pid, or nad were specified. RHF CALL (f=1I002A) (Beta) Message Format (Sheet 13 of 13) 60459420 H ACCESS CONTROL (f=#0028) This message provides program level control of access permissions for private, public, and pool files. The format of this message is shown in figure 5-41. o 63 Alpha(1 ) len r Alpha(2) cf 16 16 c 8 n 002B 8 eea 16 Alpha(3) 16 48 bl ba 16 48 Beta( 1) name 64 ss Beta(2) acs 8 auser 8 48 poolname Beta(3) 0 Word AlphaO) ouser 16 Response code. otherwise: 1 2 3 4 11211 11214 len Figure 5-41. 60459420 H 48 Description Field r I 64 If no error occurs, the response code is 0; Error code is returned in the ss field of Beta. Illegal c or cf option. Caller not privileged. Caller is not site security administrator. Number of requests is illegal (the n field is 0 or greater than 16). Beta buffer length error. Either the first word is greater than the maximum user virtual address, or the Beta buffer is too small for the number of requests and length specified. If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message. Otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion. The value of len must be a multiple of 3. ACCESS CONTROL (f=#002B) Message Format (Sheet 1 of 3) 5-165 I Word Beta(2) Description Field cf Ownership option: o 1 2 c Private file. File resides in pool specified by poolname (caller must be the pool boss). Public file (caller must be privileged). Control field: o 1 2 Grant access to user. Grant production status to the file and remove all write permissions. Remove production status from the file. Caller must be the site security administrator user number. n Number of requests in this message; maximum is 16. eea Virtual bit address to receive control if an error occurs during the processing of this message (r#O). Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first word of the Beta portion. Beta(l) name File name, in ASCII, of the file whose access permission is to be changed. Beta(2) ss Error response field. Alpha(2) o 1 2 3 4 5 6 7 8 9 #A #B #C #D #E #F acs Normal completion. File not found. Pool not found. Illegal access permission. FILEI is full, no entry made. Access control list is full, no entry made. User not pool boss. MODPFI error. User number is invalid for specified file. Caller is not the file owner. User number is not defined. Illegal access for tape. Write access and there is no write ring. Write permissions are not valid for a production file. No user table entry is available (c=1 or 2). Write permissions are not valid for a drop file. File access permissions. This 8-bit field specifies the access permissions to be granted. Five bits are currently defined: Bit Hex. Value Description 10 8 Unused. Give execute access. Give modify access. 1-3 4 5 Figure 5-41. • 5-166 The values are: ACCESS CONTROL (f=#002B) Message Format (Sheet 2 of 3) 60459420 H Word Field acs Description Bit Hex. Value Description 6 7 8 4 2 1 Give append access. Give read access. Give write access. Users affected will have only those access permissions specified by these bits (a replacement operation). Beta(2) auser This parameter identifies whose access permission is to be modified. Its definition is dependent on the cf (ownership) option: File Beta(3) Private local auser must be binary 0. Only the owner's access permissions can be changed. Private permanent auser can have one of the following values: • The ASCII user number of the user whose access permissions are to be modified. • "GENRAL", which indicates that all access permissions are to be modified. • "*", left-justified, blank-filled, which indicates all access permissions are to be modified. • Binary 0, which indicates that the caller's (file owner's) access permission is to be changed. Public auser is ignored. The general access permissions are to be changed. Pool auser can have one of the following values: • "GENRAL", which indicates that all pool members' access permissions are to be modified. • "*", equivalent to "GENRAL". • Binary 0, which indicates that the caller's (pool boss') access permissions are to be changed. pool name Name of pool in which pool file resides. ouser File owner's ASCII user number (c=1 or 2). Figure 5-41. 60459420 H Description I ACCESS CONTROL (f=#002B) Message Format (Sheet 3 of 3) 5-167 TAPE MANAGEMENT (f=#002C) This message associates a logical file name with a magnetic tape unit. a local file. The logical file is Message option 1 allows the user to specify a list of VSNs to be associated with this local tape file. The VSN list is maintained by the system until the tape file is returned. If a user attempts to assign VSNs to an existing file, an error is returned but the file is not returned. Message option #2 checks user validations for interactive or batch tape access. If the user is not allowed tape access, an error will be returned. Message option 2 allows the user to specify density, conversion mode, tape format, noise size, and label type of the tape file. The user can also specify request processing options. Message option 2 causes the system to compare the VSN supplied by option 1 with the VSNs read from mounted tapes. If a match is found, the system automatically assigns the tape unit to the job. If the tape is not mounted, a request for assignment is displayed at the operator console and the job is suspended until the requested VSN is mounted. If the tape is unlabeled, the operator enters the VSN command that associates a VSN with a tape unit. The system can then assign the tape. Refer to the VSOS 2 Operator's Guide for more information. Message option 3 is a combination of the first two options. file (tape or disk) with the same file name already exists. An error is returned if a local Message option 4 is like option 3, but it also blank labels a new tape. The label buffer descriptor is used only for this option. Either the caller must be privileged or the installation option IP TPVOL must be set to 1. If the tape file is an ANSI standard labeled tape, the multifile set name is the same as the logical file name. This logical file is given an HDRI label with a file sequence number equal to 1. That means that, by default, it is the first file on the tape unless this HDR1 label is replaced by a subsequent LABEL call. The file attributes in Beta(8) through Beta(A) are assigned to the logical file and the multifile set. The format of the TAPE MANAGEMENT message is shown in figure 5-42. 5-168 6045~420 F o 63 Alpha(1 ) len r c 16 16 Alpha(2) 002C 16 16 eea unused 48 16 Alpha(3) bl ba 48 16 Beta(1 ) Ifn 64 Beta(2) dvsn 64 Beta(3) rpo acs ova 16 Beta(4) fmtp 8 8 32 reel vsn 16 48 Beta(5) dom 64 Beta(6) dlb 64 Beta(7) ccb 64 Beta(8) unused sfo 12 Beta(9) 4 bt rt 4 rmd pc 4 8 rlmin unused 8 24 rlmax 24 unused 24 16 c Beta(A) rpb unused 16 0 n 14 I, v mpru 32 I Iproc Figure 5-42. 60459420 E TAPE MANAGEMENT (f=#002C) Message Format (Sheet 1 of 9) 5-169 Word Alpha(l) Description Field r Response code returned by VSOS when message processing is complete: o 1 2 3 4 5 6 7 8 9 #A liB Ilc #D liE IIF 1110 #11 1112 1113 1114 1115 1116 1117 1118 1119 IlIA tllB Illc I IIID #25 1126 1127 len If this field is #FFFF, bl in Alpha(3) contains the length of the remote Beta buffer. ba contains the location of the remote Beta buffer. If this field is not #FFFF, Beta is assumed to begin at Alpha(3), and len is the length, in words, of the Beta portion. c Message options: 1 2 3 4 Figure 5-42. 5-170 No errors. File already exists. Cannot blank label a tape. Illegal c option field. Interactive tape access requested when the installation parameter allowing interactive access is not appropriately set. Nonstandard labeling is not allowed. Illegal original volume accessibility_ No room in the file index. Standby job cannot issue the call. Invalid logical file name. Requested read unconditional flag and the installation parameter allowing this option is not set. Conversion mode does not match the label. Mismatch of density. No VSN list (c=l, 3). More than 255 VSNs (c=l, 3). Illegal conversion mode. Illegal label type. Illegal error correction mode. Illegal tape format. Illegal density. Illegal access permission. Mismatch of ova. Illegal VSN (c=l, 3). Illegal equal number in the virtual bit address of VSN list (c=l, 3). Illegal label. Number of tapes exceeds the number requested on the resource card. Volume is not available. ioc is not available. Read-only access (c=4). User not allowed tape access. Illegal file organization. Illegal block type. Illegal record type. Assign V·SNs. Request a tape file. Assign VSNs and request a tape file. Write VOLl labels. Request a tape as in option 3. Beginning-of-volume labels (VOL1) in the label buffer are verified and written. TAPE MANAGEMENT (f=#002C) Message Format (Sheet 2 of 9) 60459420 F Word Description Field Alpha(2) eea Error exit address. Alpha(3) bl, ba If the Beta and Alpha portion are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(l ) lfn Logical file name. If the tape file is an ANSI standard labeled tape, lfn is also the multifile set name. Beta(2) dvsn Descriptor for the volume serial number list. The volume serial number is left-justified, with blank fill. This list contains the VSNs that are to be assigned to the file. This field is ignored for option 2: 0-15 lvsn 16-63 avsn Length of the VSN list in 64-bit words (0 Ivsn < 256). Virtual bit address of the VSN list. The list must begin on a word boundary: 0 63 1 u 41 Beta(3) equal rpo vsn 121 10 equal If 0, this VSN is to be processed in sequential order. If 1, the next n VSNs are scanned and the first available VSN is assigned. All equal entries should have equal=n set. vsn Volume serial number. The VSN is a left-adjusted alphanumeric name, one to six letters or digits in length. If VSN is fewer than six characters, this field must be blank-filled. This field is ignored for option 1 : Description Unused. try Error retry parameter. This field applies only when reading the tape: o 1 Figure 5-42. Unused. Name 0-9 321 u Request processing options. Bit 60459420 E < Standard error recovery processing takes place when a hardware read error occurs. Error inhibit; all hardware read errors are ignored and processing continues. TAPE MANAGEMENT (f=tI002C) Message Format (Sheet 3 of 9) 5-171 {>lord Beta(3) Description Field rpo Name Bit Description Unused. 11 12 ru Read unconditional processing option: o 1 13 iu Tape unload processing option (inhibit unload): o 1 14 ring o 1 Figure 5-42. 5-172 Ring is not needed. (Read permission only.) Ring is needed. (Write or read/write permission.) Access permission for the logical tape file or multifile set. A ring must be in the tape for acs=2 or 3. The tape must not have a ring for acs=l. If the write enable status of the tape being assigned does not correspond with what was requested by this option, the job is suspended and the operator is sent a message requesting the tape be mounted correctly: 1 2 3 ova When the tape is released (refer to the DESTROY FILE system message, option 0), the tape is rewound to the load point and unloaded from the drive. When the tape is released (refer to the DESTROY FILE message), the tape is rewound to the load point, but it is not unloaded from the drive. Unused. 15 acs The user is not allowed to read past the end of information or the end of tape. The user is allowed to read past the end of information or the end of tape. This could cause the tape to go off the reel. Write permission only. Read permission only. Read/write permission. Original volume accessibility character. the volume accessibility character in the nonblank. This field applies for message 4. Default is the installation parameter This field must match tape VOL1 label if options c=2, 3, and IP TPVA. TAPE MANAGEMENT (f=#002C) Message Format (Sheet 4 of 9) 60459420 E Word Beta(3) Description Field fmtp Format parameters. This field is ignored when c=1: Bit Name 32-63 NS Noise size in frames. This option applies only for V- or NV-formatted tape files when the tape is being read. Any PRU containing fewer than the specified number of frames is considered noise and is discarded by the system. A noise size of 0 causes the default noise size to be used. The default size is O. The maximum NS is 31 decimal frames. NS is ignored for I, SI, and LB tape formats. ECB Hardware error correction mode for tapes being written in GCR mode. This field is set by the system from the EC field: 37 Description o 1 38-44 45-47 Reserved. DENS Tape recording density. This parameter applies only to writing data on an unlabeled tape positioned at load point. Data is written on a labeled tape at the same density in which labels are written. Data is read from a tape at the same density at which it was written. The default density is an installation-defined option. The default for the released system is 6250 cpi. The density selected is returned in DENS by the system: o 1 2 48-49 EC 1 2 Figure 5-42. 60459420 E Default. 6250 cpi (GE). 1600 cpi (PE). Hardware error correction mode for GCR tapes. The mode selected is returned in ECB: o 50-51 Enabled; the system allows more single-track errors to be written than can be corrected when the tape is read. Disabled; a single-track error while writing a 6250-cpi tape results in standard error recovery processing. Installation default (IP_TPEC). Enabled. Disabled. Unused. TAPE MANAGEMENT (f=#002C) Message Format (Sheet 5 of 9) 5-173 Word Beta(3) Description Field fmtp Bit Name 52-55 CM Description Conversion mode character set for the file data. Specifies the character set that data is converted from when it is read from the tape. The default character set for a labeled tape is the character set in which the labels are written. For an unlabeled tape, the default is an installation-defined option. The default for the released system is ASCII: o 1 2 Default. ASCII. EBCDIC. Observe that the tape file must be requested in coded mode for the conversion to take place. Refer to the conv field in the CHANGE system message. 56-59 LT Label tape. Specifies the type of labels, if any, that are on the tape. The default label type is the type of labels on the tape being assigned. If LT=O, the label type selected is returned: o 1 2 3 60-63 TF Tape format. (Refer to appendix G for more detailed information.) The format of the data on the tape. The default is an installation-defined option. The TF selected will be returned if TF=O: o 1 2 3 4 C Figure 5-42. 5-174 Default. ANSI standard label. Unlabeled. Nonstandard; valid only if privileged caller or installation option IP_TPNSL=l. Default. Large block format (LB). SCOPE internal (SI). NOS internal (I). Variable length block (V). Variable length block with embedded tape marks (NV). TAPE MANAGEMENT (f=#002C) Message Format (Sheet 6 of 9) 60459420 E Word Description Field Beta(4) Beta(5) reel The position in the VSN list of the tape to be assigned. If ree1=0, it defaults to 1 or the first VSN. This field applies only when c=2 or 3. vsn Volume serial number. The system returns the VSN of the volume assigned in option c=2 and 3. dom Descriptor for operator message. If nonzero, this descriptor points to a message which is flashed on the a display after the MOUNT message. This field applies only for options c=2 and 3: 0-15 10m 16-63 aom Length of operator message text, in bytes (1 < 10m < 64). Virtual bit address of the operator message. This address must begin on a byte boundary. Beta(6) d1b Descriptor for the label buffer. This field is used for option c=4 only. The label buffer must contain a VaLl and a HDR1 label. Beta(7) ccb Change control bits: o 63 cc c cc cc ss ss ss s~ sss unused 1 1 98 76 54 32 1 5 1 11 11 1 11 1 11 unused 48 Bit csll Description Maximum PRU size: o 1 cs10 Tape mode: o 1 cs9 o 1 60459420 E Do not change the label processing. Change the label processing to that specified in the 1p field. Records per block: o Figure 5-42. Do not change the tape mode. Change the tape mode to that specified in the tm field. Label processing: 1 cs8 Do not change the maximum PRU size. Change the maximum PRU size to that specified in the mpru field. Do not change the records per block. Change the records per block to that specified in the rpb field. TAPE MANAGEMENT (f=#002C) Message Format (Sheet 7 of 9) 5-175 Word I Beta(7 ) Description Field ccb Description Bit cs7 Record mark: o 1 cs6 Padding character: o cs5 1 1 sfo 5-176 Do not change the file organization. Change the file organization to that specified in the sfo field. File organization: o Figure 5-42. Do not change the blocking type. Change the blocking type to that specified in the bt field. File organization: o Beta(8) Do not change the minimum record length. Change the minimum record length to that specified in the rIm in field. Blocking type: o cs1 Do not change the maximum record length. Change the maximum record length to that specified in the rlmax field. Minimum record length: o cs2 Do not change the record type. Change the record type to that specified in the rt field. Maximum record length: o cs3 Do not change the padding character. Change the padding character to that specified in the pc field. Record type: o cs4 Do not change the record mark. Change the record mark to that specified in the rmd field. Sequential. TAPE MANAGEMENT (f=#002C) Message Format (Sheet 8 of 9) 60459420 F Word Beta(8) Field bt Description Blocking type: o 1 2 4 rt Record type: o 1 2 4 5 7 Beta(9) Beta(A) Control word (W). ANSI fixed length (F). Record mark (R). Lower CYBER control word (L). System block (B). Undefined (U). rmd Record mark; 8-bit ASCII character (any character is valid). pc Padding character; 8-bit ASCII character (any character is valid). rlmin Minimum record length; 24-bit length in number of bytes. rlmax Maximum record length; 24-bit maximum length in number of bytes. rpb Records per block. lproc Label processing options. conv Data conversion option: o 1 mpru Figure 5-42. 60459420 E SIL assumes the file was created before SIL was added to the system; therefore t it enters default values in the SIL fields of the file index entry. Internal blocking (I). C-type blocking. Exact record count blocking (K). There is no data conversion. Convert data. Maximum length of the PRU. TAPE MANAGEMENT (f=#002C) Message Format (Sheet 9 of 9) 5-177 TAPE SWITCH VOLUME (f=#002D) This virtual system message causes the system to perform end-of-tape processing on the current volume and position to the beginning of volume on the next reel. The user is blocked until completion of the call. The logical tape file must be opened. This call will not position past a beginning-of-file or end-of-file label group. The TAPE SWITCH VOLUME message enables the user to perform his own end-of-tape processing. When an I/O operation encounters end-of-tape, control is returned to the user if the user selected the end-of-tape processing option on the OPEN FILE message. An ioer=40 is returned in the TAPE FUNCTION message that encountered end of tape. An ioer=31 is returned in any other TAPE FUNCTION message outstanding at the time end of tape was encountered. The TAPE SWITCH VOLUME message automatically clears any existing ioer condition. If the user wishes to perform any tape function call before the TAPE SWITCH VOLUME system message, the user must issue the TAPE FUNCTION message, system function #30, to clear the ioer. At the time the TAPE SWITCH VOLUME option is issued, the system performs end-of-tape processing on the current volume. If the last operation was a write, the system performs the following: Tape Format Unlabeled V Writes two tape marks Writes a tape mark, an EOV1, and two tape marks. If the user end-of-volume label buffer was supplied, the system may also write EOV2 through EOV9 and UTL labels. Writes a tape mark, an EOV1 label, and two tape marks Same as for labeled V tapes. I,SI,LB Labeled If the last operation was a read, the tape is labeled, a tape mark immediately follows, the user is supplied an end-of-volume label buffer, and all labels from this tape mark (beginning with EOVl) through the next tape mark are returned (as space permits). The current tape is unloaded and the system requests the operator to mount the next VSN. After the tape has been assigned and if it is labeled, the system reads or. writes beginning-of-volume labels, depending on whether the last operation was a read or write, respectively. The user may supply a beginning-of-volume label buffer. If the label is being read, any nonzero fields in the user HDR1 label supplied at LABEL time are compared with the HDR1 field on the tape. An error is returned if any nonzero field does not match. Then all labels from VOL1 through the first tape mark are returned to the user label buffer, as space permits. Verification of additional labels is the user's responsibility. If the label is being written, the system uses the previous VOL1 and HDR1 labels. The current VSN is placed in VOL1 and the chapter number is incremented by one in HDR1. UVL, HDR2 through HDR9, and UHL labels are written if present in the user buffer. The format of the TAPE SWITCH VOLUME message is shown in figure 5-43. 5-178 60459420 E o 63 Alpha(1 ) len r 16 Alpha(2) e 16 002D 16 16 eea unused 16 Alpha(3) 48 bl ba 16 Beta(1 ) ioe 48 unused ioer 8 40 Beta(2) 16 dtt 64 Beta(3) dvsn 64 Beta(4) duelb 64 Beta(5) delb 64 Beta(6) dublb 64 Beta(7) dblb 64 Word Description Field Alpha(1 ) r Response code returned by VSOS when message processing is complete: o 1 2 3 4 5 6 7 8 Figure 5-43. 60459420 E No errors. Illegal I/O connector. Tapes table descriptor is too short. Tape input/output error is returned. Label buffers are too short. Illegal labels. Not at end-of-volume. Volume not available. Label is unexpired and IP TPEXP=O. TAPE SWITCH VOLUME (f=#002D) Message Format (Sheet 1 of 3) 5-179 Field Word Alpha(l) Description len If this field is #FFFF, bl in Alpha(3) contains the length of the remote Beta buffer. ba contains the location of the remote Beta buffer. If this field is not #FFFF, Beta is assumed to begin at Alpha(3), and len is the length, in words, of the Beta portion. c Message options: a 1 If the last function was a write, switch the volume. If the last function was not a write, switch the volume if the tape is positioned at the trailer labels. If at least one write operation was issued for this file, write trailer labels at the current tape position and switch the volume. Be aware that data may be lost. If there was no write operation for this file, switch the volume if the tape is positioned at the trailer labels. Alpha(2) eea Error exit address. Alpha(3) bl,ba If the Beta and Alpha portion are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(l) ioc Input/output connector for this tape file. ioer Input/output error number. Refer to appendix B for more a detailed description of the ioer codes. dtt Tapes table descriptor. returned: Beta(2) Beta(3) Beta(4) dvsn duelb Figure 5-43. 0-15 Itt 16-63 att If nonzero, the tapes table is not Word length of the tapes table buffer. This buffer must be 12 words long. Bit address of the tapes table buffer. The buffer must begin on a word boundary. Descriptor for the VSN list. returned by the system: 0-15 lvsn 16-63 avsn If nonzero, the VSN list is Length of the VSN list, in words (0 < lvsn < 256). Virtual bit address of the VSN list. This field must be on a word boundary. Descriptor for user end-of-volume labels. If duelb is nonzero, then user end-of-volume labels are supplied by the user. This applies only when writing labels. TAPE SWITCH VOLUME (f=#002D) Message Format (Sheet 2 of 3) . 5-180 60459420 E I \ Word Field Beta(5) delb Beta(6) Beta(7 ) dublb dblb Figure 5-43. 60459420 E Description End-of-volume label buffer descriptor. If delb is nonzero, the system returns all the end-of-volume labels here: 0-15 lelb 16-63 aelb Length of end-of-volume label buffer, in words. Bit address of the end-of-volume label buffer. The buffer must begin on a word boundary. Descriptor for user beginning-of-volume labels. If dublb is nonzero, the user beginning-of-volume labels are supplied by the user. This field applies only when writing labels: 0-15 lublb 16-63 aublb Length of user beginning-of-volume label buffer, in words. Virtual bit address of user beginning-of-volume label buffer. The buffer must begin on a word boundary. Beginning-of-volume label buffer descriptor. If dblb is nonzero, the system returns all of the beginning-of-volume labels here: 0-15 lublb 16-63 aublb Length of beginning-of-volume label buffer, in words. Bit address of beginning-of-volume label buffer. The buffer must begin on a word boundary. TAPE SWITCH VOLUME (f=#002D) Message Format (Sheet 3 of 3) 5-181 LABEL (f=#002E) This message is issued to request a logical file which belongs to an existing multifile set. The logical file is a local file. One or more LABEL calls can be issued for the same multifile set. One or more LABEL calls can be issued for the same logical file within the multifile set as long as the logical file is closed: that is, the LABEL message cannot be issued for an open file. Label processing is performed at OPEN time. The file attributes of the multifile set are assigned to the logical file. control bits define which attributes are superceded by the LABEL message. The change The format of the LABEL message is shown in figure 5-44. o 63 Alpha(1 ) r len unused 16 Alpha(2) 16 002E 16 unused 16 eea 16 Alpha(3) 48 bl ba 16 48 Beta(1 ) Ifn 64 Beta(2) mfn 64 Beta(3) ofa acs unused 8 8 Beta(4) 48 lib alb 16 48 Beta(5) ccb 64 Beta(6) unused 12 Beta(7) sfo 4 rt bt 4 rmd 4 pc 8 rlmin 24 rlmax 24 Beta (8) unused 8 unused rpb 16 unused 24 16 mpru 14 I 32 Lconv ---I po r c Figure 5-44. 5-182 LABEL (f=#002E) Message Format (Sheet 1 of 5) 60459420 E Word Alpha(1) Description Field r Response code returned by VSOS when message processing is complete: o 1 2 4 5 6 7 8 9 #B #e #D #E No errors. Multifile set does not exist. Logical file already exists and it does not belong to this multifile set. Label buffer out of bounds. lfn is open; ioc exists. Illegal labels. Illegal access. Illegal original file accessibility character. Duplicate FSN specified. Tape requested is unlabeled or nonstandard. No unit assigned. No room in FILEI for entry. Illegal logical file name. len If this field is #FFFF, bl in Alpha(3) contains the length of the remote Beta buffer. ba contains the location of the remote Beta buffer. If this field is not #FFFF, Beta is assumed to begin at Alpha(3), and len is the length, in words, of the Beta portion. Alpha(2) eea Error exit address. Alpha(3) bl, ba If the Beta and Alpha portion are not contiguous (len=#FFFF), these parameters indicate the length in full words and virtual bit address of the first full word of the Beta portion. Beta(1) lfn Logical file name. If the tape file is an ANSI standard labeled tape, lfn is also the multifile set name. Beta(2) mfn Multifile set name. logical file name. Beta(3) ofa Original file accessibility character. This field must match the file accessibility character in the tape HDR1 label. This applies only when labels are being written. The default is the installation parameter IP_TPFA. acs Access permissions for the logical file. acs must be a subset of the access permissions supplied at the time of the request: 1 2 3 Beta(4) Write permission only. Read permission only. Read/write permission. llb Length of the label buffer, in words. alb Virtual bit address of the label buffer. on a word boundary. Figure 5-44. 60459420 G If this field is 0, mfn is the same as the The buffer must begin LABEL (f=#002E) Message Format (Sheet 2 of 5) 5-183 I Word Field Beta(5) ccb Description Change control bits: o 63 un- f'~ I~f s~ s~ sss used ~1" 198 11~ 154 321 unused 5 11 11 11 11 111 Bit csll Description Maximum PRU size: o 1 cs10 1 1 1 o 1 1 5-184 Do not change the padding character. Change the padding character to that specified in the pc field. Record type: o Figure 5-44. Do not change the record mark. Change the record mark to that specified in the rmd field. Padding character: o cs5 Do not change the records per block. Change the records per block to that specified in the rpb field. Record mark: 1 cs6 Do not change the label processing. Change the label processing to that specified in the lp field. Records per block: o cs7 Do not change the tape mode. Change the tape mode to that specified in the tm field. Label processing: o cs8 Do not change the maximum PRU size. Change the maximum PRU size to that specified in the mpru field. Tape mode: o cs9 48 Do not change the record type. Change the record type to that specified in the rt field. LABEL (f=#002E) Message Format (Sheet 3 of 5) 60459420 E Word Beta(5) Field Description ccb Bit cs4 Description Maximum record length: 0 1 cs3 Minimum record length: 0 1 cs2 1 1 sfo 1 2 4 SIL assumes the file was created before SIL was added to the system; therefore, it enters default values in the SIL fields of the file index entry. Internal blocking (I). C type blocking. Exact record count blocking (K). Record type: 0 1 2 4 5 7 Control word (W). ANSI fixed length (F). Record mark (R). Lower CYBER control word (L). System block (B). Undefined (U). rmd Record mark; 8-bit ASCII character (any character is valid). pc Padding character; 8-bit ASCII character (any character is valid). Figure 5-44. 60459420 E Sequential. Blocking type: 0 rt Do not change the file organization. Change the file organization to that specified in the sfo field. File organization: 0 bt Do not change the blocking type. Change the blocking type to that specified in the bt field. File organization: 0 Beta(6) Do not change the minimum record length. Change the minimum record length to that specified in the rlmin field. Blocking type: 0 csl Do not change the maximum record length. Change the maximum record length to that specified in the rlmax field. LABEL (f=#002E) Message Format (Sheet 4 of 5) 5-185 Word Field Beta(7) rlmin Minimum record length; 24-bit length in number of bytes. rlmax Maximum record length; 24-bit maximum length in number of bytes. rpb Records per block. lproc Label processing options: Beta(8) Description o 1 conv Data conversion option: o 1 mpru There is no data conversion. Convert data. Maximum length of the PRU. Figure 5-44. 5-186 Read and verify the existing labels. Write new labels. LABEL (f=#002E) Message Format (Sheet 5 of 5) 60459420 E USER REPRIEVE (f=#002F) The USER REPRIEVE system message allows the user to have control returned to a specified address for processing during termination processing. The aaf field is set when an application accounting routine makes this system message call. After the aaf flag is set, enable or disable of user reprieve is not allowed until an accounting routine with the ap.propriate password disables user reprieve. The format of the USER REPRIEVE system message is shown in figure 5-45. o 63 Alpha(1 ) r len 16 Alpha(2) aaf unused 8 Alpha(3) opt 16 002F 16 eea 8 bl 48 ba 16 Beta(1 ) aapw 48 rpa 16 Beta(2) dbl 48 dba 16 Figure 5-45. 60459420 E 16 48 USER REPRIEVE (f=#002F) Message Format (Sheet 1 of 2) 5-187 Word Alpha(1) Description Field r Response code: o 1 2 4 #214 len Length of the Beta. If len=#FFFF, then Alpha(3) contains the length and starting address of the Beta; otherwise, Beta(l) is assumed to start in Alpha(3). opt Option code: o 1 Alpha(2) aaf 1 Beta(l) Beta(2) Off. On. eea Error exit address. bl Beta length. ba Beta address. aapw Accounting password. rpa Reprieve address. dbl Data base length. dba Reprieve data base address. Figure 5-45. 5-188 Enable user reprieve. Disable user reprieve. Application accounting flag: o Alpha(3) No error. Routine or data base address error. Routine data base len~th error. Reprieve enable or disable not allowed. Beta buffer length error. USER REPRIEVE (f=#002F) Message Format (Sheet 2 of 2) 60459420 E EXECUTE IQM REQUEST (f=#0030) The EXECUTE IQM REQUEST system message processes IQM requests. Only privileged system tasks can issue this message. Only the IQM utility can issue c option 1. The format of the EXECUTE IQM REQUEST system message is shown in figure 5-46. o 63 Alpha(1 ) r Alpha(2) n Alpha(3) bl Word len 16 r 48 16 ba 48 Description Response code returned by VSOS when message processing is complete: 1 2 3 4 IH2 IH3 1114 1115 IH6 IH7 IH8 #19 IHA IHB IHc #211 11214 Figure 5-46. 60459420 F 16 16 o len 161 0030 eea Field Alpha( 1) 161 c No errors. Bad parameter; ss code contains the description. User number of message issuer is not that of the IQM. Job file was not added to the input queue because the queue is full. Invalid message option (c field value). Bad caller. Input queue is full; resubmit job. Bad c option. Batch input file is not found. Batch input file is open. Batch user is a privileged system task. IQM does not exist; consult an analyst. Error was made in giving batch input file to IQM; consult an analyst. Batch input file is of wrong type (tape of connected file). Device on which batch input file resides is logically down. Caller does not own batch input; cannot give it to IQM. Either 0 or too many Beta entries were specified. Beta buffer length error. Either the first word address of Beta plus its length is greater than the maximum virtual user address, or the Beta buffer is too small for the number of requests and length specified. If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3) and len is the length in words of the Beta portion. EXECUTE IQM REQUEST (f=#0030) Message Format (Sheet 1 of 3) 5-189 Word Field Alpha( 1) Description c Message options: 1 2 Alpha(2) Alpha(3) Remove an entry from the input queue. Add an entry to the 1nput queue. n Number of input queue entries to remove (also number of Beta entries; c=1 only). eea Error exit address; virtual bit address to receive control if an error occurs during message processing (r~O). If this field is o when an error occurs, the task is aborted. bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length in words of Beta and the virtual bit address of its first full word. Message option: c=1 Remove an entry from the input queue and reorder the subpriorities of the remaining entries as needed: o 63 Beta(1 ) I iqent Word Field Beta( 1) iqent Description Job descriptor number of entry to be deleted (0 through 2047). Message option: c=2 Add an entry to the input queue. This option changes file ownership from the caller to IQM. After the input queue entry is made, the job is scheduled as appropriate: o 63 jn Beta(1 ) 64 jcat Beta(2) 64 un Beta(3) I uprod-. 64 I Beta(4) 8 8 Beta(5) pr nt ss 16 Beta(6) 23 Iplim wslim jdn unused 8 1 sl 12 16 tl 32 4 account 64 Figure 5-46. 5-190 EXECUTE IQM REQUEST (f=#0030) Message Format (Sheet 2 of 3) 60459420 H Word Field Description Beta(l) jn Batch input file name (eight ASCII characters, blank-filled). IQM will modify jn, if necessary, to cause the batch name for this job to be unique on the system. The modified file name is returned in this field. If the call fails, jn is not modified. Beta(2) jcat Job category (eight ASCII characters, blank-filled or 0). Beta(3) un Binary user number of owner of the job. Beta(4) ss Error response code: o 1 2 3 4 5 6 7 8 9 15 Beta(5) Beta(6) I nt Number of tape drives required by the job. pr Priority (1 through 15). uprod o is jdn Job descriptor number assigned to the job. through 2047. wslim Working set limit. If 0, the job will be assigned a working set limit equal to the maximum for the job category. lplim Large page limit. sl Security level (1 through 8). tl Time limit in system seconds. account Account identifier under which the job will run. Figure 5-46. 60459420 H No error. Job category does not exist. Maximum working set limit is exceeded. Maximum large page limit is exceeded. Invalid time limit. Invalid priority. User is locked out of specified job category. Invalid user number. Number of jobs per user exceeded. No JDNs available to assign to input file. Large page limit exceeded. not a production user. 1 is a production user. Values for jdn are 1 EXECUTE IQM REQUEST (f=#0030) Message Format (Sheet 3 of 3) 5-191 I SEND MESSAGE TO JOB SESSION (f=#0033) This message allows the user to send a message to a batch job's dayfile or to an interactive user terminal. Only privileged tasks are allowed to use this system call. VSOS uses the job descriptor number, the user number, and the job name supplied in the Beta to locate the proper job session. If found, the message is queued up for delivery to the job session. If the job session is not found or other errors are encountered, an error response is returned in the Alpha. The format of the SEND MESSAGE TO JOB SESSION is shown in figure 5-47. o len r Alpha (1) 16 Alpha (2) 0033 unused 16 16 unused eea 16 48 bl Alpha (3) ba 48 16 Beta (1 ) ss jdn msglen 16 32 16 Beta (2) usernum 64 Beta (3) job name 64 Beta (4) message 1 64 Beta (n) message n 64 Word Alpha( 1) Field r Description Response code; returned by the operating system when the message has been processed. If no error occurs, the error code is 0; otherwise: 1 2 3 4 Figure 5-47. 5-192 Length of Beta in character bytes is either 0 or greater than 4120. Caller is not a privileged task. Job session is not active. System error (ss code in Bet~ is error code returned by system routine TOCON). SEND MESSAGE TO JOB SESSION (f=#0033) Message Format (Sheet 1 of 2) 60459420 E Word Field Description Alpha(l) len If len=#FFFF, Alpha(3) contains the length and virtual bit address of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length of the Beta portion. Alpha(2) eea Virtual bit address to receive control if an error occurs during message processing (if r is different from 0). If this field is zero when the error occurs, the error is considered fatal. Alpha(3) bl, ba If the Alpha and Beta portions are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. There is only one Beta per Alpha. Beta(l) ss Error return code (integer) for r=4. 1 2 3 4 5 6 7 8-13 14 15 Message length is greater than 4096 characters. Bad function code in Beta. Dayfile is full. Dayfile is not implicit. Invalid base virtual address for dayfile. Unable to find dayfile. Problem program blocked while waiting for dayfile. Unused. No terminal ID number for interactive user. Either teletype has been logged out or this message would overflow the MFline buffer. msglen Message length in characters (integer) jdn Job descriptor number (1 through 2047). Beta(2) usernum User number, in ASCII, left-justified, blank-filled. Beta(3) jobname Job name, in ASCII, left-justified, blank-filled. Beta(4) through Beta(n) message Message text, in ASCII. Figure 5-47. 60459420 H I SEND MESSAGE TO JOB SESSION (f=#0033) Message Format (Sheet 2 of 2) 5-193 RETURN FROM INTERRUPT (f=#0051) For control to return to the calling routine, an interrupt routine must issue this message when it has finished performing its tasks for either an input/output or program message interrupt. The message consists of an Alpha portion only, which is shown in figure 5-48. Because the interrupt routine (level 1) cannot be interrupted by any other software interrupts, it will run until it issues a RETURN FROM INTERRUPT message. The current interrupt is then released and its invisible package is lost. The level-O invisible package becomes current, and its register file image is restored by the operating system. All information from the level-1 register file is lost. An option in this message allows level 1 to become the new level 0 after all additional interrupts stacked for this and any other level-1 routines have been processed. In this case, the register file image for level 0 is lost at the time level 1 becomes level O. The new level 0 can have its own level-1 interrupt routines. When interrupts occur and the interrupt routine is already in control, the operating system stacks the interrupt information in the interrupt address stack in the program's minus page. When the interrupt routine issues a RETURN FROM INTERRUPT message, level 0 is not restarted. Instead, the next interrupt on the stack is taken. This process is repeated until the stack is empty. o 63 len r Alpha(1 ) 16 16 48 16 Alpha(3) Word AlphaO) bl I L ____ -.1~ ba I -----------------~ Description Field r Response code; returned by the operating system when this message has been processed. If no error occurs, the response code is 0; otherwise: 2 11214 len Figure 5-48. 5-1Y4 16 eea n Alpha(2) 0051 unused 16 Response code was issued by routine other than interrupt routine. Illegal Beta address (only for n=4). Beta buffer length error (only for n=4). If this field is #FFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3), and len is the length in words of the Beta portion (two words). Used only if n=4. RETURN FROM INTERRUPT (f=110051) Message Format (Sheet 1 of 2) 6045Y420 F Description Field Word Alpha(2) Message options. Release the current interrupt and take the next interrupt in the stack, if one exists. When all interrupts outstanding have been processed, or if no other interrupts existed, do one of the following: n o 1 2 3 4 Alpha(3) Return control to the interrupted program at the point of interruption. Return control to the point following this particular RETURN FROM INTERRUPT message; that is, make the interrupt routine that issued this message the new level-O routine. Return control to the interrupted program at the address in register 4. Abnormal termination control interrupt only. Abort at the point of original interrupt. Normal user dumps and trace-back information are produced for the original fatal error. Return control to the interrupted program at the address in Beta(l) using data base information in Beta(2). eea Virtual bit address to receive control if an error occurs during processing of this message (r#O). If this field is 0 when an error occurs, the error is considered fatal. bl, ba If Beta and Alpha portions of the message are not contiguous (len=#FFFF), these parameters indicate the length and virtual bit address of the first full word of the Beta portion. Message option: For n=4 only: o Beta.(1 ) 63 unused vba 48 16 dbl Beta(2) dba 16 48 Word Field Beta(1 ) vba Virtual bit address in the interrupted program to which control is returned. Beta(2) dbl Length of data base to be reloaded. dba Address of data base to be reloaded for return to interrupted program. Figure 5-48. 60459420 F Description I RETURN FROM INTERRUPT (f=#UU51) Message Format (Sheet 2 of 2) 5-1~5 SHRUB ALTER OR RESTORE (f=#0053) A user program can issue this message for altering or restoring the contents of the system shared library file. The operating system keeps a record of alterations for each user program. Alteration for shared library in one user program does not affect the other user program. If a user program does not restore the shared library before it terminates, the operating system automatically restores the shared library file when this user program terminates. The format of this message is shown in figure 5-49. o 63 Alpha (1) len r c 16 16 unused Alpha (2) 0053 16 eea 48 16 Alpha (3) ba bl 48 16 o Beta (1) 16 63 vadd unused 55 8 48 8 Beta (2) value 64 Word Alpha(l ) Field r Description Response code; returned by the operating system when this message has been processed. If no error occurs, the response is 0; otherwise: 1 11214 ss contains error code. Beta buffer error; either the first word address of Beta plus length is greater than the maximum user virtual address or the length of the Beta buffer is greater than 2. len If this field is IIFFFF, Alpha(3) contains the length and virtual bit address of the Beta portion of the message; otherwise, Beta is assumed to begin at Alpha(3) and len is the length in words of the Beta portion; len must be at least one word long. c Message option: Place v~lue at vadd; if location is currently altered, it will be altered again. 2 I Figure 5-49. 5-196 Restore original value at vadd. SHRLIB ALTER OR RESTORE (f=1I0053) Message Format (Sheet 1 of 2) 60459420 F Word Field Description Alpha(2) eea Virtual bit address to receive control if an error occurs during processing of this message (r not equal to 0). If this field is o when an error occurs, the error is considered fatal. Alpha(3) bl, ba If the Beta and Alpha portions of the message are not contiguous (len=#FFFF), the parameter indicates the length and virtual bit address of the first full word of the Beta portion. Beta(l) ss Return error code: o 1 2 3 4 5 6 7 Beta(2) vadd Bit address on a word boundary of the location that is to be altered/restored. value For C=I, this is the 64-bit value to be placed at vadd. For C=2, this is not used. Figure 5-49. 60459420 F No error. vadd is not in SHRLIB range. There is no room in the SHRALT tabie for another change to SHRLIB; C must equal 1. Each DB is allowed a maximum of 20 changes with a total of 127 for all DBs. The page containing vadd is not in memory; the shared library working set needs to be increased. vadd is not on a word boundary. Location being restored was never changed; C must equal 2. No value specified, len was 1; C must equal 1. Illegal option; C must equal 1 or 2. SHRLIB ALTER OR RESTORE (f=#0053) Message Format (Sheet 2 of 2) 5-197 • TAPE FUNCTION (f=#F406) The TAPE FUNCTION message is processed by the resident system. It is issued by user mode programs to initiate tape I/O and positioning function. The tape file must be open. This message does not read or position past a beginning-of-file or end-of-file label group. If a positioning function causes the tape to be positioned backwards and the last operation was a write, the system performs end-of-file processing. For V unlabeled tapes, it writes two tape marks. For I, SI, LB labeled or unlabeled tapes and V labeled tapes, it writes one tape mark and an EOFI label followed by two tape marks. This message allows the user to continue processing or give up the CPU until I/O completion. The resident give-up call (f=#FF02) is issued to check for I/O completion. The maximum number of TAPE FUNCTION messages outstanding at anyone time for a tape file is defined by the installation parameter IP TPNOR. If a program issues one more TAPE FUNCTION message for a tape file than IP_TPNOR, the caller is blocked until one of the caller's previous TAPE FUNCTION messages completes. The TAPE FUNCTION system message can be broken down into four different chapters. The first chapter consists of user-supplied information: I/O connector number and function code. For I/O function (sfnc < #10), the user must set the buffer address, buffer length, and the length of the logical record unit array. The buffer cannot span more than 48 small or large pages. Depending on the word offset (wo=O/l), the buffer address begins on any half/full-word boundary. Each logical record uni~ begins on the next 32/64-bit boundary in case the preceding LRU is not a multiple of 32/64 bits. For some of the positioning functions, a skip count must be supplied. For the read function, the buffer length must be at least large enough to hold the maximum PRU size supplied at open time. The system will not start tape motion to read the next PRU unless there is at least room in the buffer to hold mpru. Therefore, it is recommended that the user add mpru to the read buffer length. For the read skip function, mpru is ignored; however, the user can specify a maximum LRU that is to be returned. The buffer does not have to be as long as mlru. If the system has returned at least one LRU to the buffer, the system will not start tape motion to read the next LRU unless there is at least room in the buffer to hold mlru. If mlru=O, it is considered infinite and mlru=O results in single LRUs. The second chapter is filled in from system tables by the system. It consists of information supplied by the user at request, label, or open time: maximum PRU size and format parameters. It also contains the caller user number and job name. I I The third chapter consists of information returned by the system at the competion of the call or a tape I/O error. For I/O functions, the number of processed LRUs is returned. For some of the positioning functions, a skip count is returned. The updated tapes table, including block IDs and PRU counts, is also returned at the completion of the request. This information can be saved. The last chapter holds the LRU array. It is only used for I/O functions (sfnc < Iil0). Each entry holds the logical record size, tape, and record mark information. It is set by the caller for a write and returned by the system for a read. The format of the TAPE FUNCTION message is shown in figure 5-50. 5-1Y8 60459420 F o Alpha(1) 63 al etrl F406 reserved 16 Alpha(2) reserved 64 Alpha(3) len reserved 48 Beta(l ) reserved al ioe Beta(2) a~ -- - vhwa - - - - -vfwa -------- bfln sfne 32 Beta(3) al ~seNed al - 43100 -4~ 16 reserved mlru unuse~~M levno al Beta(5) ~ ske 32 32 Beta(4) 5 00 reserved 48 reserved 64 Beta(6) ioer 161~1 unused 231 rlru al rske 16 ttl Beta(7) 64 Beta(18) tt12 64 Beta(19) reserved 64 reserved Beta(20) 64 Beta(21 ) reserved 64 Iru(l ) Beta(22) 64 ~ Beta(n+22) L. Iru(n) 64 Figure 5-50. 60459420 F I TAPE FUNCTION (f=#F406) Message Format (Sheet 1 of 5) 5-199 Word Field Alpha(l) ctrl Description Control bits: o 7 I 111 5 I L reserved L- rsm '---- reserved '-----fre r Bit Description fre Cleared when the call is complete. set the fre bit. rsm Set to 1 if the caller wants to be resumed immediately. rsm=O if the caller wants to give up until the I/O completes. For backward positioning functions (#10 ~ sfnc ~ #IF), the system sets rsm=O. The caller must Response code returned by VSOS when message processing is complete: o 1 2 No error. Error occurred before the request was issued to the tape subsystem. Error occurred and request was issued to the tape subsystem. The error number is returned in ioer. Alpha(3) len Length of Beta, in words. For positioning functions (sfnc > #10), the user should set len=21. For I/O functions (sfnc #10), the user should set len=21 plus the number of words in the LRU array. Beta(1) ioc Input/output connector number of the tape, set by the caller. vhwa Virtual half-word address of the buffer, set by the caller. vhwa is used if wo=O. vfwa Virtual full-word address of the buffer, set by the caller. vfwa is used if wo=l. bfln Overall buffer length in 8-bit bytes, set by the caller. bfln must be a multiple of 4/8 bytes based on the word offset (wo=O or wo=I). On completion, bfln is set to the number of bytes left in the buffer. Beta(2) I Figure 5-50. 5-200 < TAPE FUNCTION (f-#F406) Message Format (Sheet 2 of 5) 6045<)420 F Word Beta(2) sfnc Figure 5-50. 6045Y420 F Description Field System function, set by the caller: 1 Read data. The read data reads data from the tape and places it into the user's buffer until the requested amount of data has been read. The read is stopped if the LRU array is full, the buffer does not contain sufficient space to hold mpru, a fatal error is encountered, or an end of group is encountered. If a PRU exceeds mpru, a DEVICE CAPACITY EXCEEDED I/O error is returned and the tape is positioned after the PRU. The EOR flag is only set in the last LRU entry if the read was stopped at the end of an LRU. 2 Read skip. The read skip reads data from the tape and places it into the user's buffer until the requested amount of data has been read. If a PRU exceeds mlru, only mlru bytes of data are returned to the buffer, the excess data flag is set, and the tape is positioned at the end of the LRU. The read skip is stopped if the LRU array is full, a fatal error is encountered, or an end of group is encountered. The EOR flag is always set in each LRU entry. 8 Write data. The write data writes data on tape from the user's buffer until the request has been completed. The write data is stopped if a fatal error is encountered. If the LRU size is not a multiple of the PRU size, an end of LRU is always written at the end of the LRU. If the LRU size is a multiple of the PRU size, an end of LRU is written if the EOR flag is set in the LRU array. #10 Skip backward PRUs. The skip backward PRUs backspaces physical records until the count in SC is completed or until end of LRU, end of group, or beginning of information is encountered. #11 Skip backward LRUs. The skip backward LRUs backspaces LRUs until the count in SC is completed or until an end of LRU with higher level, end of group, or beginning of information is encountered. 1112 Skip backward groups. The skip backward groups backspaces groups until the count of SC is completed or until a beginning of information is encountered. 1113 Rewind to beginning of information. The rewind to beginning of information rewinds the tape to the beginning of information. #14 Rewind volume. Rewinds the tape to the beginning of volume. The operation is stopped if a beginning of information is encountered on the current volume. TAPE FUNCTION (f=IIF406) Message Format (Sheet 3 of 5) 5-201 I Word Field Beta(2) sfnc skc Description fl20 Skip forward PRUs. The skip forward PRUs forward spaces physical records until the count in SC is completed or until an end of LRU, end of group, or end of information is encountered. #21 Skip forward LRUs. The skip forward LRUs forward spaces LRUs until the count in SC is completed or until an end of LRU with a higher level, an end of group, an end of file, or end of information is encountered. #22 Skip forward groups. The skip forward groups forward spaces groups until the count in SC is completed or until an end of information is encoun tered • #23 Skip forward to end of information. The skip forward to end of information forward spaces the tape to the end of information. #30 Reset fatal error or group mark condition. After an ioer is returned or the group mark flag is set in the LRU array with grpf set in the call, the tape subsystem will signal an error to all subsequent calls for that unit with an ioer=31 until this system function is issued. A subsequent close of any backward positioning function also clears this error. Skip count. The number of PRUs, LRUs, or logical files for sfnc. This field is ignored for all other options of sfnc. Beta( 3) mlru Maximum LRU size, in 8-bit bytes. For read skip only, if an LRU exceeds mlru, only mlru bytes of data are returned, the excess flag is set, and the tape is positioned at the end of the LRU • . If mlru=O, mlru is considered infinite. This field is set by the system to mpru for all data functions except read skip. Beta(4) grpf Group mark flag. If grpf=O, the tape subsystem will stop reading and terminate the message if a group mark is encountered. All subsequent calls for that unit will be returned with an ioer=#31. The user must issue sfnc=#30 to reset this condition. A subsequent CLOSE or backward positioning function on this unit will also clear this condition. If grpf=1, the tape subsystem will stop reading and terminate the call if a group mark is encountered. However, any subsequent calls for that unit will be issued. wo Word offset. If wo=O, the next LRU begins on a 32-bit boundary, if the last did not end on one. If wo=1, the next LRU begins on a 64-bit boundary, if the last did not end on one. levno Level number for the skip backward/forward LRU functions. This field applies only for I, SI, and LB tape formats (0 ~ levno ~ fiE) • I Figure 5-50. 5-202 TAPE FUNCTION (f=#F406) Message Format (Sheet 4 of 5) 60459420 F Description Word Field Beta(6) ioer Error number returned by the system. For request type errors 1 through 100, control is returned to the caller. For tape I/O errors 101 through 200, control is returned to the caller only if user error processing was selected in the OPEN FILE message. Refer to appendix B for a complete description of these errors. rs Reel swap, returned by the system: o 1 No reel swap. Reel swap occurred. rlru Number of words in the LRU array completed. returned by the system for I/O functions. rskc Returned skip count. skipped. Beta(7) through Beta(18) tt Tapes table entry, returned by the system. Refer to tapes table in job management tables for a complete description. Beta 22 through Beta(n+22) lru Logical record unit array entry, set by the caller for a WRITE function and returned by the system for a READ or READSKIP function: Bit 00-03 04-07 08-10 11 12 13 14 15 16-31 32-63 Figure 5-50. 60459420 F This field is The number of PRUs, LRUs, or groups Description Unused. Level number. This field applies only for I, SI, and LB tape formats (0 ~ lev ~ HE). Reserved. Excess data flag. This can occur only on a read skip. It indicates that data was skipped. Parity flag; set to 1 by the system when this LRU has an error. This applies only for read operations when no retry has been selected. The data is returned. End-of-LRU flag; set to 1 by the caller to write an end of LRU. Returned by the system when an end of LRU was detected for a read. End-of-group flag; set to 1 by the caller to write an end of group after this LRU. This is returned by the system when an end of group was detected for a read. This flag is set also if an end of information is encountered without encountering an end of group. End-of-information flag; returned by the system when an end of information was detected for a read. This flag is ignored for a write. Reserved. LRU size, in 8-bit bytes. This field is set on a write and returned on a read. I TAPE FUNCTION (f=HF406) Message Format (Sheet 5 of 5) 5-203 EXPLICIT flO (f=#FSOO) The EXPLICIT I/O message is processed by the resident system. It is issued by user mode programs to initiate transfer of data to and from mass storage files to and from buffers defined by the message. This message allows the user to continue processing and give up the CPU until I/O completion. The resident give-up call (f=#FF02) is issued to check for I/O completion. The program's minus page contains an I/O connector for each file the user program has opened; a file's I/O connector number is issued to designate the file on which input/output is being performed. To perform explicit I/O on a file, the program must first open the file. The Beta portion of the message contains the buffer definition. The user must set the buffer address and the buffer length. The buffer cannot scan more than 24 small or large pages. Therefore, to use the maximum buffer size, the buffer should be on a page boundary. The Alpha and Beta words must be contiguous and not cross a page boundary. They should not be modified until all input and output described by the call is completed. The free bit in Alpha(l) has been defined to help the user determine when input/output is done; the user sets the bit before the message is issued, and the operating system clears the bit when the Alpha and Beta words are no longer in use. The resident give-up message (f=#FF02) can also be used to check for I/O completion. When the central operating system detects an error before a request is sent to the peripheral operating system, the cerr field of the EXPLICIT I/O message is filled appropriately, control passes to the error exit address, and message processing terminates. A data transfer error detected by the peripheral operating system does not cause control to pass to the error exit address; however, the serr field of the EXPLICIT I/O message is filled appropriately. The format of the Alpha portion of the EXPLICIT I/O message is shown in figure 5-51. formats of the Beta portion are shown in figure 5-52. • 5-204 The 60459420 F Alpha(1 ) ctrl Alpha(2) 01 16 32 8 ca 00 8 Alpha(3) #F500 reserved r 8 48 8 eea #0015 48 16 Word Field Alpha(1) ctrl r Description Control bits: Bit Name Description 0 free Cleared when the call is completed. caller must set the free bit. 2 rsm Set to 1 if the caller wants to be resumed immediately. rsm=O if the caller wants to give up until the I/O completes. The Response code returned by VSOS when the message is complete: o 1 2 No error. Error occurred before the request was issued to the I/O device. The error number is returned in CERR. Request was issued to the I/O device and an error occurred. The error number is returned in SERR. Alpha(2) ca Address at which execution continues following successful completion of the call. If 0, execution continues at the address following the call. Alpha(3) eea Error exit address: virtual bit address to receive control if an error occurs during message processing (r#O). If this field is 0 when an error occurs, the task is aborted. Figure 5-51. 60459420 F EXPLICIT I/O (f=#F500) (Alpha) Message Format 5-205 • Beta(1 ) through Beta (13) • •• Beta(14) fc Beta(15) ioe Beta(16) fadd Beta(17) bien Beta( 18) badd Beta(19) cerr Beta(20) serr Beta(21 ) pkno Word Field Beta(l) through Beta(l3) Beta(l4) Description Used by the resident system to issue a C5lx call. fc Function code: 1 2 Beta(l5) ioc Input/output connector number for the file on which input and output are being performed. Beta(l6) fadd Logical block address of the file where data transmission is to begin. Beta(l7) bIen Length of the virtual range, in blocks, to be associated with this buffer. The maximum size is 24*n; n is the number of blocks in a page, large or small. If the maximum length is used, the buffer mus,t be on a page boundary. Beta(l8) badd Starting virtual block address of the buffer where data transfer requests will deposit or obtain information. Figure 5-52. • Read data from a disk file to a buffer. Write data from a buffer to a disk file. 5-206 EXPLICIT I/O (f=#F500) (Beta) Message Format (Sheet 1 of 2) 60459420 F Word Field Beta(19) cerr Description Errors detected by the central operating system before the request is sent to the I/O device. The values are: 1 2 3 4 5 7 8 9 #B #C #F #10 #12 #14 Beta(20) serr Errors detected by the I/O device. to right, 0 to 23. They are: 0-17 18 19 20 21 22 23 Beta(2l) pkno Figure 5-52. 60459420 F Nonexistent I/O connector. Buffer size is greater than 24 small pages, is 0, or is 24 pages and not on a page boundary. This file is not open for explicit I/O. Alpha/Beta crosses page boundary or is not contiguous. Illegal function code. No buffer address was given. File address is out of bounds. Illegal attempt to access a file. Buffer size is greater than 24 large pages, is 0, or is 24 pages and not on a page boundary for a large page buffer. Buffer lies on each large and small page. Buffer is already in use; previous I/O, which uses the same buffer, is not complete. Attempt to reuse Alpha before the previous call, which uses the same Alpha address, is complete. Attempt to read or write in an unassigned virtual space (buffer error). File is not at end of information in append mode. Bits are numbered from left No meaning. No more disk space is available when extending the file. Reached end of file. Indicates that the buffer extends past the end of the file. Error encountered when extending the file. Attempted to extend file beyond user's or pool's file limit. Fatal device error detected by I/O device. Illegal message detected by I/O device. Returned by operating system. Pack number of disk pack on which fatal device error was detected (SERR bit 22 set). EXPLICIT I/O (f=t/F500) (Beta) Message Format (Sheet 2 of 2) 5-207 • ADVISE (f=#FFOO) The ADVISE message is used by a program to inform the operating system of an anticipated change in the need for virtual space. The ADVISE message has two purposes: either to provide execution and input/output overlap to reduce the number of page faults for a job, or to release pages of memory no longer required by that job. The ADVISE message is intended for use in improving job execution speed. The ADVISE message indicates a virtual range (a range of virtual addresses). message can be used in one of these ways: • To page in a virtual range. • To page out a virtual range. • To replace one virtual range with another. The ADVISE The ADVISE in function is initiated without blocking the job from execution. Pages required to accommodate the ADVISE in request are obtained from the following categories in the specified order: I • Pages freed as the result of an accompanying ADVISE out function. • Unallocated pages. • Unmodified pages outside the working sets of connected tasks. • Unmodified pages belonging to disconnected tasks. • Modified pages belonging to the requestor but outside the requestor's working set. If insufficient memory is available to accommodate the ADVISE in function, as many pages as possible are ADVISEd in and the user is informed that only a partial function was performed. The maximum number of pages that are read into memory by PAGER for any single ADVISE in function is 16 small pages or 1 large page. If the requestor exceeds the limit, the maximum number of pages ADVISEd in will be the limit. The user is returned the highest virtual small page address plus one in the specified virtual range that is in memory after the ADVISE in function is complete. The user should be aware of the following points: I • Only a single Beta is allowed for an ADVISE in function in an ADVISE message. • If a requested page is already in memory, that page is ignored and the remaining pages are ADVISEd in. • If a page fault occurs for an ADVISE in page prior to its arrival in memory, the system blocks the job from further execution until the page fault is satisfied. • If a job has a machine-size working set, an ADVISE in function is accomplished by selecting the least recently used pages from within the job's working set as replacement pages. • A virtual bit address that is not defined in any virtual map is considered to be a definition of new free space. An appropriate entry is made in the drop file map, and memory space is allocated. I 5-208 6045Y420 F The ADVISE out function is used to remove a virtual range from memory and is initiated without the job being blocked from execution. All unlocked modified pages within the specified virtual range are written to mass storage. The pages are then deleted from the page table. The user should be aware of the following restrictions: • Only a single Beta is allowed for an ADVISE out function in an ADVISE message. • If a page within the specified virtual range is locked or not in memory, that page is ignored and the remainder of the request is processed. If a locked page is detected, the user is informed. • If a write access occurs for a page being written to disk as the result of an ADVISE out, the job is page blocked until the input/output is complete. An ADVISE replace function is the combination of an ADVISE in function and an ADVISE out function in a single ADVISE message. The function can replace in full, or in part, one virtual range with another. The system first performs the ADVISE out function and then initiates the ADVISE in function. At a minimum, the number of pages freed by the ADVISE out function are then available for the ADVISE in function. If fewer pages are specified in the ADVISE out function than in the ADVISE in function, additional pages are selected by the system and paged out to provide sufficient pages to satisfy the ADVISE in function. The additional pages can be obtained from the following categories in the specified order: • Unallocated pages. • Unmodified pages belonging to connected tasks but outside their working sets. • Unmodified pages belonging to disconnected tasks. • Modified pages .outside the requestor's working set. It should be observed that two Betas are specified for the ADVISE replace function: one for the ADVISE out specification, and one for the ADVISE in specification, in any order. The ADVISE message format shown in figure 5-53 is used when an ADVISE is issued directly to the system. o 63 Alpha(l) ctrl Alpha(2) num Alpha(3) 8 8 r 00 len Beta( 1) 8 8 16 111 Figure 5-53. 60459420 F I to 16 from 16 FFOO ca eea 16 48 48 vba I ADVISE (f=#FFOO) Message Format (Sheet 1 of 3) 5-209 Description Word Field AlphaO) ctrl Should be set to O. to the caller. r Response code returned by the operating system after the specified ADVISE function has been processed. If no error is detected and the full request is processed, r is set to 0; otherwise: 2 3 4 Alpha(2) I Should be set to O. to the caller. KERNEL will set this field to 0 on return from Should be set to O. to the caller. KERNEL will set this field to 0 on return num Number of Betas for this call: A single ADVISE in or a single ADVISE out message. ADVISE replace message (that is, an ADVISE in message and an ADVISE out message with the order being immaterial). ca Completion address for this call. len Number of full words for each parameter set. eea Virtual bit address to receive control if an error is detected during message processing (r~O). Figure 5-53. 5-210 The sts field in the parameter set provides further status. Illegal option specified for this message. Multiple ADVISE in or ADVISE out functions specified in a single message. Address vba is out of the virtual address range for a user program. Beta length error. Either the first word address of Beta plus length is out of the virtual address range for a user program or more than two parameter sets are specified. to 2 Alpha(3 ) KERNEL will set this field to 0 on return Should be set to 1. ADVISE (f=#FFOO) Message Format (Sheet 2 of 3) 60459420 F Word Beta(l) Field sts Description Status field, which is set to 0 unless r is set to 1. In this case, the ADVISE function was incomplete and the code in this field indicates the cause: 2 4 8 p~ Function requested: o 1 ADVISE in function requested. ADVISE out function requested. pct Page count, in blocks. PAGER determines what size page the requested virtual range is mapped into. If the request is for pages mapped into a large page, the entire large page is ADVISEd. If the request is for more than 16 small pages, PAGER will only ADVISE 16 pages and informs the requestor of this fact. vba Virtual bit address of the start of the virtual range specified in the ADVISE function. vba is updated to the last page address plus one processed by an ADVISE in function (unaltered by an ADVISE out function). Figure 5-53. 60459420 F ADVISE function is not complete due to more pages specified than a single ADVISE function can accommodate. The system ADVISEd 16 small pages or a single large page but did not satisfy the total request. ADVISE in Beta returned to the requestor contains the first small page address in the specified virtual range not processed. ADVISE out virtual range specification is unaltered. The status code 1 can be combined with any other status. For example, a status of 3 would indicate that more than 16 small pages or a single large page was specified in addition to a locked page within the specified virtual range being encountered while doing an ADVISE out function. Partial ADVISE out function performed due to pages within the specified virtual range being locked. Partial ADVISE in function performed due to insufficient memory resources to accommodate the request. Page within specified ADVISE in range was found to be already in core. I ADVISE (f=#FFOO) Message Format (Sheet 3 of 3) 5-211 PROCESS SYSTEM PARAMETER (f=#FF01) The PROCESS SYSTEM PARAMETER system message can change or retrieve the value of one or more of the following system parameters in the file descriptor block. Parameter Description C RFL Current working set size limit. C MLP Maximum large page limit. C RLP Current large page limit. If the current large page limit is set less than the number of large pages currently assigned to the task, large pages are purged until the limit is reached. I The message format is shown in figure 5-54. The Alpha and Beta portions must be contiguous. Multiple Betas can be specified. o ~ Alpha(1) ctrl Alpha(2) num 8 r Alpha(3) 8 0001 00 Beta(1 ) fc 8 to 161 from 8 ca 16 eea 16 opt 81 sts 161 FF01 16 48 48 val 81 32 Word Field Alpha(l) ctrl A value specified in this field is not used. field to 0 on return to the caller. r Response code returned by VSOS when message processing is complete: Description o 1 2 4 Alpha(2) I No errors. An error occurred (refer to the sts field in the Beta(l)] • Illegal function code or option specified in Beta(l). Beta buffer length error. Either the first word address of Beta plus its length is greater than the maximum virtual user address, or the Beta buffer is too small for the number of requests and length specified. to A value specified in this field is not used. field to 0 on return to the caller. KERNEL sets this from A value specified in this field is not used. field to 0 on return to the caller. KERNEL sets this num Number of parameter sets (Beta portions) for this call. Figure 5-54. 5-212 KERNEL sets this PROCESS SYSTEM PARAMETER (f=#FFOl) Message Format (Sheet 1 of 2) 6045Y420 F Word Field Description Alpha(2) ca Address at which execution continues following successful completion of the call. If 0, execution continues at the address following the call. If nonzero, execution continues at the specified address. Alpha(3) eea Error exit address; virtual bit address to receive control if an error occurs during message processing (r#O). If this field is o when an error occurs, the task is aborted. Beta(l) fc Function code indicating the DB field value to be set or returned: 1 2 3 o~ Message option: o sts Maximum large page limit. Current large page limit. Current working set size limit. Change the DB field value specified by fc to the value in the val field. Return the DB value specified by fc in the val field. I Beta status code: o 1 2 3 4 No errors. Requested current large page limit greater than maximum large page limit. Requested current working set limit greater than maximum working set size limit. Requested current working set limit too small to accommodate job's current large page limit. Illegal operation requested. New system parameter value if opt=O; field in which value is returned if opt=l. Figure 5-54. 60459420 F I PROCESS SYSTEM PARAMETER (f=#FF01) Message Format (Sheet 2 of 2) 5-213 GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME (f=#FF02) The GIVE UP call is issued by a user or th~ virtual system when the caller wants to suspend execution waiting on completion of a resident I/O call. Control is not transferred to the ca or eea of the I/O call. On completion of the I/O, control is returned to the ca address of the GIVE UP call or to the next location after the GIVE UP exchange if ca is O. If a time interval is specified and the call times out before I/O has completed, control is returned to the eea in the GIVE UP call and the r field is set to 1. The GIVE UP call may also be used when the caller wants to GIVE UP the CPU waiting on an elapsed time. At the end of a GIVE UP, control will be returned to the ca address or the address following the call. The message (Alpha/Beta) must not cross a page boundary. this occurs. , The system returns an error if The message format is shown in figure 5-55. o Alpha{l) 63 entrl r to 8 Alpha(2) 8 16 00 num 8 Alpha(3) from 16 FF02 16 ca 8 48 len eea 16 48 Beta(1) te 64 Beta(2) dt 64 Beta(3) 00 Ie 16 48 Word Field Alpha(1) cntrl Set to 0 or #80. caller. r Response code returned by VSOS when message processing is complete: Description No errors. Call has timed out. Parameter call error or message crossed a page boundary. 0 1 2 I to Set to o. from Set to o. Figure 5-55. 5-214 KERNEL sets this field to 0 on return to the GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME (f=#FF02) Message Format (Sheet 1 of 2) 6045Y420 F Word Field Alpha(2) Description num Number of parameter sets for this call is 1. ca Completion address for this call. len Number of words in Beta. eea Virtual bit address to receive control if time out is detected during message processing. If the address of the outstanding resident call is not located, it is assumed to have completed properly. Beta(1 ) tc Time GIVE UP was issued, returned by the system. Beta(2) dt Delay time in microseconds. Minimum value is 100,000 microseconds (0.1 second). Maximum value is 59,999,999 microseconds (1 minute). Alpha(3 ) This will normally be 0. This should be set to 3. For GIVE UP on I/O with dt=O, the caller is blocked until the I/O call completes. When dt#O and the I/O call does not complete in dt microseconds, control is returned to the eea with r=l. For GIVE UP on time with dt=O, control is immediately returned with no error. Beta( 3) lc Virtual bit address of the resident I/O call if GIVE UP is for I/O. If Ic=O, then GIVE UP CPU for dt microseconds. For a GIVE UP on time, the user may be disconnected from the alternator. If both dt and lc are 0, the call is ignored without warning. Figure 5-55. 60459420 F I GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME (f=#FF02) Message Format (Sheet 2 of 2) 5-215 VIRTUAL SYSTEM DEBUG TOOL 6 The virtual system debug tool provides a breakpoint capability to track the execution of the virtual portion of VSOS. This facility is designed as a tool for the systems programmer who wishes to stop execution of the operating system at desired virtual system locations. This debugging aid provides the systems programmer with the capability to temporarily stop execution of the virtual system by setting execute breakpoints, and then to reset those breakpoints and continue execution. VSDT is built as part of the virtual system of VSOS. While the operating system is running, a debug command can be entered into a reserved shared table (T VSD) by using the maintenance control unit (MCU) write command. This table is periodically checked by the resident portion of the operating system for commands. When a command is entered, control is passed to VSDT for handling. If an attempt is made to set a breakpoint at a paged-out address, that page will be paged-in by VSDT. All current breakpoint addresses can be found in the T VSD table. RESIDENT SYSTEM The resident system periodically checks the contents of the VSDT input buffer word of the T VSD table for a nonzero value. Upon detection of a nonzero value, control is passed to VSDT which examines the input buffer word. If it contains COMMAND, the debug command buffer is checked for a debug command. Any existing debug command-rs-then processed by VSDT. If the input buffer word contains CONTINUE (normally entered after a breakpoint has been hit and appropriate chapters of memory have been displayed), VSDT resumes execution of the virtual system. The status word of the T VSD table (containing STOP) will be cleared. If CONTINUE is entered without a breakpoint having been hit, the error message word in the T VSD table will contain the message ILL COMM (illegal command) and control will return to the resident system. VIRTUAL SYSTEM VSDT handles the setting and resetting of breakpoints, as well as the resumption of virtual system execution. When control is passed from the resident system to VSDT, VSDT checks the input buffer word in the T VSD table for either COMMAND, in which case it will process debug commands, or, CONTINUE, for resumption of virtual system execution after a breakpoint has been hit. ---If a breakpoint command has been entered, VSDT will put the breakpoint address into the T VSD table; save the instruction at the breakpoint address; set up the breakpoint jump instruction; and clear the word COMMAND from the input buffer word. If a command to reset the breakpoint has been entered, VSDT will restore the original instruction at the breakpoint address, as well as clear the breakpoint address in the T VSD table. 60459420 E 6-1 USER AND SYSTEM· INTERFACES The MCU is used as the input device for the VSDT. Debug commands are entered in ASCII format into the T VSD table by the MCU AS command. To stop the operating system after system autoload t the user can enter a breakpoint command into the T VSD debug command buffer. When the execution of the virtual-system is stopped t MCU memory commands are used for system examination. This discussion assumes that the user is familiar with the MCU and its commands. the VSOS 2 Operator's Guide. Refer to SHARED TABLE An additional table (T VSD) appears in the shared table list. The main function of this table is communication-between the user and the resident system. The structure of the T VSD table is given in table 6-1. Table 6-1. Name Structure of the T VSD Table (Sheet 1 of 2) Word o W VSDNAME Description Contains the name T VSD (left-justified with blank fill) identifying the table. System command input buffer. processed. W VSDINPUT Cleared to zeros after command is COMMAND. Process VSDT debug command which has been entered in the T VSD debug command input buffer. The word COMMAND is left-justified with blank fill. CONTINUE. Continue execution of the virtual system after a breakpoint has been hit. The word CONTINUE is left-justified with blank fill. W VSDBSTAT W VSDBADD t 2 Virtual system status word. Contains the word STOP*A or STOP*X (left-justified with blank fill) when breakpoint is hit. STOP*A indicates that an access breakpoint had occurred and STOP*X indicates that an execute breakpoint had occurred. The status word is cleared to zeros upon continuation of virtual system execution. 3 Contains the last breakpoint address (right-justified with zero fill) hit by virtual system. For an execute breakpoint, it will be the address of the instruction causing the breakpoint. For an access breakpoint t it will be the address of the last executed instruction which can be up to 35 instructions past the instruction causing the breakpoint. tThe upper 16 bits of W VSDBADD contain a value equal to the number of times the breakpoint has been hit. When the value reaches the count specified by the n option t the system will halt and the appropriate message will be placed in W_VSDBSTAT. 6-2 60459420 E Table 6-1. Name Structure of the T VSD Table (Sheet 2 of 2) Word Description W VSDERRMES 4 Error messages returned by VSDT, left-justified with blank fill. Cleared to zeros when next command is entered. W VSDCl 5 Start of debug command buffer. Commands are entered in ASCII mode (left-justified with blank fill). Cleared to zeros after a command is processed. If an error has occurred, the buffer is not cleared to zeros. The command can then be reentered in its entirety, or edited in place. In either event, if any extraneous characters remain after the corrected command has been placed in the command buffer, they must be blanked out by use of the MCU AS command. W VSDC2 6 Continuation of debug command buffer. W VSDC3 7 Continuation of debug command buffer. W VSDC4 8 Continuation of debug command buffer. W VSDCS 9 Continuation of debug command buffer. W VSDC6 A Continuation of debug command buffer. W VSDC7 B End of debug command buffer. W VSDABI t C Bits 16-63 contain the address of breakpoint which has been set in the virtual system. W VSDAB2 D Bits 16-63 contain the address of breakpoint which has been set in the virtual system. W VSDAB3 E Bits 16-63 contain the address of breakpoint which has been set in the virtual system. W VSDAB4 F Bits 16-63 contain the address of breakpoint which has been set in the virtual system. W VSDAB5 10 Bits 16-63 contain the address of breakpoint which has been set in the virtual system. W VSDAB6 11 Bits 16-63 contain the address of breakpoint which has been set in the virtual system. W VSDABA 12 Bits 16-63 contain the address of the read/write access breakpoint. W VSDREG 13 Bits 16-63 contain the address of the virtual system register file. tThe upper 16 bits of W VSDABI through W VSDAB6 and W VSDABA contain the value specified by the n option, which-is the number of-times a breakpoint is to be executed before the system is stopped. 60459420 E 6-3 COMMANDS Since all debug breakpoint commands are entered by MCU memory alteration commands, systems programmers are responsible for entering debug commands into the appropriate locations in the T VSD table. The commands supported by VSDT are shown in table 6-2. Table 6-2. Command VSDT Command Summary Description -BKPT t Set execute breakpoint. COMMAND - Process virtual system debug commands. CONTINUE - Continue execution from last user breakpoint. RBKP -- Remove all or selected breakpoints. PAGEIN - Bring page containing given virtual address into memory. t Underscored letters indicate the short form of the command. COMMAND FORMAT The following conventions must be observed when entering the breakpoint commands: • A blank must be used to separate the command and its first parameter. • Brackets are used to indicate an optional parameter. Defaults are assumed for omitted parameters and are defined in the command descriptions. Either no parameters or any single parameter can be selected. • Underscored letters of each command or keyword parameter indicate the minimum character string used to specify the command or parameter. Any number of characters, from the minimum string to the entire word, can be used. For example, BK, BKP, and BKPT will all result in execution of the BKPT command. • All address, count, and number parameters are specified in hexadecimal notation. • Commands are entered into T VSD starting with the leftmost byte in the command buffer. • Blanks are not used between subsequent parameters (with the exception of the blank used to separate the command and its first parameter). Commas are used to separate all subsequent parameters. The virtual address parameter for debug commands is assumed to have an offset bit address COOOOOOOOOOO in hexadecimal notation; that is, COOOOOOOOOOO will be added to the value entered by the systems programmer to derive the virtual system address. 6-4 60459420 E DEBUG COMMANDS Debug commands are entered into W_VSDCl through W_VSDC7. Up to six execute breakpoints are allowed in the virtual system at any time. These are software breakpoints and cause the virtual system to stop execution prior to executing the instruction at the specified virtual address. The user can specify the number of times a breakpoint is reached before execution of the virtual system is stopped. The format of the command to be entered at the MCU is: AS,(address of T VSD + 5),"command (excluding COMM/CONT) parameters" AS , (add res s 0 f T VSD + 1), "command (cOMMI CONT) " The command buffer and input word are cleared upon acceptance of the command. VSDT commands for setting and resetting breakpoints are shown in table 6-3. can be removed indiVidually or all together. Table 6-3. VSDT Commands for Setting and Resetting Breakpoints Command Parameters BKPT virtual address (,n) RBKP ALL -- 60459420 E The breakpoints Description ;I BKPT sets an execute breakpoint which causes the \ system to stop execution at the specified address. l; .0 six breakpoints can be set at one time. Default is n=l. ~ RBKP allows the user to remove all breakpoints that have been virtual address set (ALL) or to remove a single breakpoint set by virtual address. Default is ALL. 6-5 CONTROL COMMANDS Control commands are entered into W VSDINPUT which allow the user to input debug commands into VSDT, and continue execution after a breakpoint has been reached. Table 6-4 shows the command for accessing paged-out addresses. Debug commands are processed by VSDT by using the MCU command AS to write the word COMMAND into W VSDINPUT following entry of the debug command into the command buffer. The debug commands are entered initially into the T_VSD table or after a breakpoint has been hit. The CONTINUE command allows execution to continue after a breakpoint has been reached. Execution can be continued by using the MCU A command to write the word CONTINUE into W VSDINPUT in the T VSD table. ---The user can also obtain breakpoint status information. No specific command is needed. Since breakpoint addresses are stored in the T VSD table, the MCU D addr command can be used to check for breakpoints set. Table 6-4. VSDT Command for Accessing Paged-Out Addresses "~". Parameter Command PAGEIN virtual address Description PAGEIN causes the virtual system to access the specified virtual address causing, in some cases, a page fault. This command is used to bring a page containing the specified virtual address into memory. ERROR MESSAGES Error messages which are placed in W VSDERRMES of the T VSD table are shown in table 6-5. The user can input the proper command in its entirety after diagnosing the error message or edit it in place. W_VSDERRMES is cleared after the acceptance of subsequent commands. Table 6-5. VSDT Error Messages Error Message 6-6 Description ILL COMM Illegal command. ILL PARM Illegal parameter. ILL NUM Illegal number. TAB FULL Breakpoint table is full. ILL ADDR Illegal address specified in RBKP command. NO ADDR No address has been specified in a breakpoint instruction. 60459420 E ANALYZER ANALYZER is a tool for extracting information from a system dump. file containing the following information, in the order listed: 7 It generates an output • Time, date, version information, and system options. • A listing of TABST, VTABST, the system tables map, and the system dayfile buffer. • A hexadecimal dump with ASCII interpretation of resident tables and boat area. • Hexadecimal dumps with ASCII interpretation of performance data area, test mode buffers, and SPY buffers, if defined, and the last location of the resident operating system. • A hexadecimal dump with ASCII interpretation of shared tables. • A listing of PAGER internal information, page table dumps, and the lock table. listings of the page table are provided, sorted by: Four Page table bit address Physical page number Virtual address and key Key and virtual address • A dump of the history table with entries listed in chronological order. reported as an installation option. Time is • A dump of the resident operating system dynamic stack. • A dump of the virtual operating system minus page, register file, and dynamic stack. • A dump of the user's minus page, second minus page, third minus page, and dynamic stack, for any active user. • A hexadecimal dump of any core areas specified with the CORE parameter. • A hexadecimal dump with ASCII interpretation of virtual space for a given user as specified via the VRANGE parameter. • A hexadecimal dump with ASCII interpretation of the FILEI. • A hexadecimal dump with ASCII interpretation of selected virtual tables as specified via the VTABLE parameter. Input for the ANALYZER is constructed by the following steps: 1. A dump file the size of memory is created. 2. With the system stopped and the resident operating registers saved, the WCMF MCU command is used to dump memory to the existing file. 60459420 G 7-1 • ANALYZER can be used to examine the file after the system has been recovered or autoloaded. The format of the ANALYZER execute line is shown in figure 7-1. and order independent. ANALYZER All parameters are optional (INPUT=ifn,LIST=ofn, CORE=11,h1, ••• ,14,h4, VRANGE=db,vbitaddl,n1, ••• ,vbitadd32,n32, ~~~{Lilv~ablel, INPUT=ifn ... ,vtable32' ifn is the name of the input file containing a dump of memory. The default is INPUT=DUMPFILE. LIST=ofn ofn is the name of the file to contain ANALYZER output. The default is LIST=OUTPUT. Any existing file with the same name as the output file is destroyed, and a new file with that name is created. ~=11,hl, ••• ,14,h4 ..., vbitadd32,n32 VRANGE=db,vbitaddl,nl, Additional areas of memory can be dumped. As many as four li,hi pairs can be specified. Words Ii through hi are dumped as follows: Ii Low hexadecimal bit address of physical memory to be dumped. hi High hexadecimal bit address of physical memory to be dumped. Additional areas of virtual space to be dumped. 32 ranges of virtual space may be specified • db vbitaddl nl Figure 7-1. • 7-2 As many as Specifies the DB number associated with the virtual space to be dumped. Specifies the virtual bit address of the first word of a range to be dumped. Specifies the number of words to be dumped. ANALYZER Execute Line Format (Sheet 1 of 2) 60459420 G ~LE=vtable1, ••• , vtable32 Areas of the virtual operating system to be dumped. as 32 table names may be specified. vtablei As many Specifies the virtual system table by name to be dumped. It may be desirable to suppress certain portions of ANALYZER output. The default is LO=*. standard output. This condition generates all of the Specifying LO=S will suppress dumping of the user's registers and dynamic stack information. Specifying LO=V will cause only the information requested by the VRANGE and/or the VTABLE parameters to be dumped. The options *, S, and V are mutually exclusive. Figure 7-1. 60459420 G ANALYZER Execute Line Format (Sheet 2 of 2) 7-3 • ACCOUNTING 8 The accounting system is that part of the virtual system that gathers system resource usage statistics and records them at two locations: in a cumulative accounting buffer and in an active accounting file. The statistics recorded in the cumulative accounting buffer are a subset of those recorded in the active accounting file. Statistics recorded in the cumulative accounting buffer can be retrieved by a user or utility program only when the job for which the statistics are being gathered is running; statistics recorded in the active accounting file can be retrieved by an installation-defined user at any time after the file is no longer active. VSOS provides two units with which to measure resource usage, system time units and system billing units. As described later in this chapter, the system billing units (SBU) calculation uses a variable rate accounting factor and a service level index while the system time units (STU) calculation does not. The information recorded in the accounting file is designed to be accessed by an installation-defined accounting program. No VSOS utilities currently exist to use these statistics. CALCULAliON OF STUs A system routine called TCHARGE calculates the number of STUs consumed by a taSK. To calculate the STUs consumed, it first multiplies each system resource usage quantity by the weighting factor for that resource and then adds the products. The system resources and their units of measure are listed in table 8-4. The weighting factors are specified by installation parameters. A weighting factor of 0 eliminates the corresponding system resource from the STU calculation. A system second is 1 million STUs. STATISTICS ACCUMULATION Having gained access to the operating system, a user can then execute tasks and jobs. Statistics are gathered on an event basis and are accumulated over each task or batch job in both the cumulative accounting buffer and the active accounting file. The buffer statistics are also provided as information to the user via the USER/ACCOUNTING COMMUNICATION (f=#OOOE) and MISCELLANEOUS (f=#0024) messages. 60459420 E 8-1 CUMULA liVE ACCOUNTING BUFFER The cumulative accounting buffer is provided so that resource usage statistics for a task or job are available during the time that the task or job is actually running. The buffer contains one 16-word entry for each active task (each descriptor block). The fields in each entry are updated as the tasks use up vari,ous system resources. When a job has finished, the entries for that job no longer exist in the cumulative accounting buffer; the entries exist only for the duration of the job. A user is given access to the statistics in the cumulative accounting buffer for his or her running tasks alone via the USER/ACCOUNTING COMMUNICATION message. The virtual system returns the current accumulation of all statistics in the buffer to a user that issues this message with the c field set to 3. Based on these statistics, it might be possible to modify user programs to reduce system resource usage and perhaps reduce charges. This reduction would be dependent on the installation-defined charge algorithm. In addition to individual task statistics, total job statistics for all controllee tasks of a batch job are available from the cumulative accounting buffer. These cumulative job totals are stored in the batch processor's entry in the buffer. By issuing the USER/ACCOUNTING COMMUNICATION message with c=3, the batch processor can access the total raw statistics for the duration of a batch job. These unfactored values can be used as input to an installation-provided routine that computes the charges for the job. Any of these charges, raw statistics, or factored charges might then be printed on the job's dayfile. 8-2 60459420 E ACCOUNTING FILE The accounting file is a history file of the operating system resource usage, including tape and disk file usage, task and job execution times, terminal usage, and autoload and recovery events. Records are written into the file as resources are used. Accounting record types are listed in table 8-1. Table 8-1. Accounting Record Type and Subtype Codes Record Type Code Disk File 3 Magnetic Tape 4 Login Open Logout Close Subtype Task 1 Terminal 0 Begin task 1 End task 2 Field overflow 3 Task information notmsg/ notwds field overflow 4 Project information 2 Periodic System A Periodic Job - Periodic system Periodic job Output queue file Configuration Periodic system - Output data file Global channel usage data - - - - - - - - Job 6 Assignment Autoload Job start Input queue file Release Recovery Job end Job change 7 Create - New date entered Destroy - New time entered - Input data file - Extend - - - Teletype entry - Channel Usage Statistics Network Usage System 5 9 I I B 5 - - Reduce - - - Purge file - - - 6 - - Change user number - - - Interactive session - - - 7 - - Change file name - - - - - - - 8 - - Change account number - - - - - - - I More than one accounting file can exist; all such files are unattached permanent files belonging to the system user number; however, only one file, named Q5AF, can be active at anyone time. If during system initialization no active accounting file Q5AF exists, one is created at that time. A second file, Q5AF2, is also created. When the current active accounting file becomes full, it is renamed, file Q5AF2 becomes the active accounting file Q5AF, and a new Q5AF2 is created. The naming convention used when renaming the *AF file is: Ayydddnn (yyddd is the Julian date and nn is a number ranging from 00 to 99). File names will be used in sequence if they do not already exist. The next file name in sequence after Ayyddd99 is AyydddOO. 60459420 H 8-3 The processing sequence of accounting files is determined by information recorded in the accounting file headers. AyydddOO is normally the start of the sequence for a day and should be verified by checking that the accounting file header information for the previous file's name indicates the previous day's date. After 90 files are recorded for a given day, the system sends the operator a warning message indicating the accounting system is nearing the maximum number of accounting files. When 100 files exist for a given day, the system sends another warning message to the operator, indicating that no new accounting files will be written. Recording of accounting information then stops. The warning message that the information is being lost continues to be issued periodically. The size of all accounting files is determined by the system parameter AFSIZE. The accounting file can be used as follows: 8-4 • For each task, the accounting system writes a begin task accounting record to the accounting file. A unique task number is assigned to each task and is placed in all accounting records associated with the task. Each accounting period, the system writes a new task field overflow record for the task or updates an existing one. When the task completes, the system writes an end task accounting record. • To accumulate raw statistics for the duration of a task, the installation's program must locate on the accounting file all task field overflow records for a unique task number or job name, extract the desired statistics, and sum them for each overflow record for the task. . • At the start of each batch job, the batch processor issues an option of the USER/ACCOUNTING COMMUNICATION message (f=#OOOE), and a job start accounting record is written to the accounting file. The header of this record contains the user number and job descriptor number (JDN) under which the batch processor is running. Any controllee of this batch processor runs under this user number and JDN. The task record headers for these controllee tasks contain these identifiers also. At the end of a batch job, the batch processor issues another option of the USER/ACCOUNTING COMMUNICATION message, and a job end accounting record is written to the accounting file. • To accumulate raw statistics for the duration of a batch job, the installation's accounting program must locate the job start and job end records on the accounting file, and record the user number and JDN. A search can also be done using the job/ session name. Any task overflow records (between the job start and job end records) containing this user number and jdn are for tasks of this batch job. An additional task overflow record is generated for the batch processor clean-up (for example, close dayfile, change file ownership). This record may not be charged to the user job depending on the site's accounting program. Statistics can be extracted from each of these overflow records and summed to get the cumulative batch job statistics. These totals are equivalent to those extracted from the batch processor's entry in the cumulative accounting buffer. • At the option of the user site, the task information record allows information to be entered into the accounting file (such as billing type, or queueing time). This information is entered via message 7 for USER/ACCOUNTING COMMUNICATION (f=#OOOE). 60459420 E Active Accounting File Blocks Accounting records are accumulated in a 5I2-word memory buffer (this buffer is not the cumulative accounting buffer). The buffer is written to the accounting file when the buffer is full, or when an entry is made in the buffer after more than 5 minutes have elapsed since the previous buffer was written to the accounting file. The format of the buffer and, therefore, of the accounting file record blocks, is shown in table 8-2. Table 8-2. Active Accounting File Block Format Word Contents 0 Master clock time and date information at the time that the first entry is written to the buffer. 1 Microsecond central processor clock reading at the time that the first entry is written to the buffer. 2 Reserved for system use. 3 Master clock time and date information at the time that the last entry is written to the buffer. 4 Microsecond central processor clock reading at the time that the last entry is written to the buffer. 5 Cumulative system CPU overhead in microseconds. virtual system CPU times. 6 Cumulative USER CPU time in microseconds. 7 Cumulative WAIT time in microseconds. The CPU is available for user execution but all user tables are waiting for I/O completion. 8 Cumulative IDLE time in microseconds. The CPU is available for user execution but no user tasks are waiting for the CPU. 9-/11 FE Filled sequentially with accounting records. ilIFF This word is set to contain all hexadecimal 2's when the buffer is full. 60459420 E The sum of KERNEL, PAGER, and Unused words contain binary O. 8-5 I The master clock entries in words 0 and 3 of an active accounting file block are eight decimal numbers indicating the year, month, day, hour, minute, second, millisecond, and an installation-defined machine designator. The entries are represented as 16 digits in hexadecimal form within one word, as shown in figure 8-1. For example, the date November 6, 1985, the time 9:10:20.623, and the machine designator 1 would appear as shown in figure 8-2. o 63 hh 8 I Figure 8-1. Master Clock Format Figure 8-2. Master Clock Example I Table 8-3 lists the information kept in the first block of *AF, including the name to which the name *AF is to be changed when the file becomes full, and the address of the block in which space is currently available. Accounting records are written sequentially into *AF beginning with the second block. The record type and length are indicated by the first word of each record, as shown in figure 8-3. 8-6 60459420 F Table 8-3. Active Accounting File Format (First Block) Word Contents o Ayydddnn, the name to be given to this file when it is deactivated. yyddd is the year and day number computed when the file is activated; nn is a sequence number, modulo 100. I Name of the last accounting file, in the form Ayydddnn. At autoload, this field contains binary 0 if no *AF file exists at that time. 2 Name of the next accounting file, Ayydddnn. 3 Relative block address of the most recently created block in the file, where the header block is block O. 4 Reserved for system use. 5 Reserved for system use. 6 Microsecond central processor clock value when this file is deactivated. 7 ASCII date when this file is deactivated, in the form mm/dd/yy (month/day/year). 8 ASCII time when this file is deactivated, in the form hh:mm:ss (hours:minutes:seconds). 9-lFF Unused. o 1 63 type al sUbtyp eal,en9th al Description Field type Accounting record type: 1 2 3 4 5 6 7 9 #A #B Task record. Terminal record. Disk file management record. Tape record. System record. Job record. Network usage record. Channel usage statistics record. Periodic system record. Periodic job record. subtype Subtype code for the accounting record type indicated in the type field (refer to table 8-1). length Total word length of this record. Figure 8-3. 60459420 H Accounting Record Format (First Word) 8-7 Task Records Task accounting (type 1) records are written in the accounting file whenever a task is started or ended, or when task accounting information is available and no task field overflow record exists in the current accounting file block. A task record consists of a six-word header plus additional words, depending on the record subtype. The header format is shown in figure 8-4. When the subtype code is 0 (begin task), the additional record words are as shown in figure 8-5. When the subtype code is 1 (end task), only the record header is used. All task accounting information is accumulated in task field overflow records before an end task record is written. A task field overflow (subtype 2) record contains raw accounting statistics accumulated for the duration of a task. When the operating system calls the accounting system with task accounting information, the accounting system searches for a task field overflow record within the current 512 word buffer pertaining to th~ specified task. If such a record is found, its fields are updated with the new information. If no task field overflow record exists for the specified task, such a record is created and filled with the current information. The record words are shown in figure 8-6. Each task field overflow record field (except for the ferr and wssiz fields) is cumulative over the accounting periods for the task until potential overflow is detected. For cumulative values for an entire task, the appropriate field should be summed over all of the task's task field overflow records in the accounting file. The values for the ferr and wssiz fields for the entire task are in the last record for the task. 8-8 60459420 E ctrle 0 01 length S subtypesl S 2 -,r proj 63 III job .1 I unused Ivl 4 41 charge number 151 jdn 64 master clock 3 4 16 S t jce task number reserved 121jc 4 64 unused os_lev 7 S 24 user number 5 64 job/session name 6 t Reserved. Word Field 1 subtype Description Subtype code: o 1 2 3 4 Begin task. End task. Field overflow~ Task information. Project information. length Total word length of this record. job lvl Job level (1 through 15). ctrle Controllee level (1 through 9). proj Project accounting flag. jdn Job descriptor number. jc Job class: 1 2 3 4 5 Standby. Batch. Interactive. High priority. System. 2 charge number Account identifier from login line or job statement; identifies account to which the task is being charged. 3 master clock Value of the master clock when this record was created. Figure 8-4. 60459420 H Task Record Header Format (Sheet 1 of 2) 8-9 • I Description Word Field 4 task number Number assigned when the begin task record is written. All subsequent accounting records pertaining to this task contain this number. (The accounting system assigns task numbers sequentially.) jce Job category entry number (0 through 65). os lev Operating system version level. o through 7, where o 1 2 3-7 I 2.0 or earlier. 2.1, 2.1.5, or 2.1.6. 2.2 or later. Undefined. 5 user number Binary user number. 6 job/ session name Job or interactive session name associated with this task. Figure 8-4. o 78 Task Record 'Header Format (Sheet 2 of 2) 63 19 20 poolname 64 --------------busernum 7 44 fname 64 Word Description Field 6 poolname, ajdn busernum Name of the pool in ASCII, if this file is a pool file member. Job description number of user which has private file attached. Binary user number of the task file owner, if this is a private or public file. 7 fname Name of the task file in ASCII, left-justified with blank fill. Figure 8-5. 8-10 Task Record Format, Subtype 0 60459420 H o 63 ucpu vscall 6 syscpu ferr 7 32 32 48 16 8 wssiz memu 48 16 9 Ipaccx 10 spaccx Ipacci 32 32 spacci 32 32 spseci spsecx 11 32 32 12 Ipflt spflt 32 32 13 tpacc tpwds 32 32 tpfn 14 32 15 sbu 16 II pc sli vri 16 16 64 Ispc 17 64 18 ws2sml ·32 unused ufsbu 19 20 19~'~ chan(1 ) chan(n-1 ) 32 64 32 chan(2) 32 64 32 chan(n) 32 Word Field 6 vscall Number of virtual system user calls made. ucpu User execution CPU time, in microseconds. ferr Error number of the fatal error condition, transferred from word 139 of the user's minus page. This field is 0 if there is no error. 7 Description Figure 8-6. 60459420 E Task Record Format, Subtype 2 (Sheet 1 of 2) 8-11 Word 7 syscpu Virtual CPU time, in microseconds, for user program execution. 8 wssiz Average working set size, in small pages. memu Memory usage [at the end of each accounting period, (current working set size)]*[user CPU time for current accounting period is computed.] Ipaccx Number of disk accesses (I/O requests issued) for large page explicit reads and writes. lpacci Number of disk accesses (output requests issued) for large page implicit writes. spaccx Number of disk accesses (I/O requests issued) for small page explicit reads and writes. spacci Number of disk accesses (output requests issued) for small page implicit writes. spsecx Number of disk sectors transferred for explicit reads and writes. spseci Number of disk sectors transferred for implicit writes. lpflt Number of disk accesses (input requests issued) that resulted from large page faults (large page implicit reads). spflt Number of disk accesses (input requests issued) that resulted from small page faults (small page implicit reads). tpwds Number of 16-bit bytes transferred to or from tape files. tpacc Number of tape accesses (I/O requests issued) for reads and writes. tpfn Number of nonread and nonwrite tape functions, such as read hardware status. sli Service level multiplying index used for variable rate accounting. vri Variable rate index used for variable rate accounting. 15 shu Floating point summation of task's system billing units (summation of MVAL's returned from MCHARGE), or floating point summation of task's system time units (summation of TVALs returned from TCHARGE). 16 llpc Number of large pages lost to other tasks. 17 lspc Number of small pages lost to other tasks. 18 ws2sml CPU time, in microseconds, that the task's working set size appeared to be too small. 19 ufsbu Number of nonfactored standard billing units or system time units. 20 chan(i) Task channel usage for channel i. 9 10 11 12 13 14 I I Description Field Figure 8-6. 8-12 Task Record Format, Subtype 2 (Sheet 2 of 2) 60459420 F The number of disk sectors transferred for large page implicit reads can be readily computed from the value of the lpflt field. A task information field (subtype 3) allows a task t privileged or nonprivileged t to send records to the account file that contains billing information. A project information record (subtype 4) allows a project number to be written to the account file. There are three formats for the project information record. The first format is for an interactive job (figure 8-7). The other two formats are for batch jobs. The first of the two batch formats occurs when the CHARGE statement is the first CHARGE executed in the job stream. The SBU/STU amount accumulated since the beginning of the job is put in word 10. If the CHARGE statement is the first executable statement in the job stream t the SBU/STU amount will be zero (figure 8-8). The second of the two batch formats occur~ when the CHARGE statement is the second through the last CHARGE statement executed in the job stream (figure 8-9). o 63 project number 7 64 project number 8 64 unused project number 9 32 32 Word Field 7-9 proj ect number Description I-to 20-character project number t in ASCII t left-justified with blank fill. Figure 8-7. Task Record Format t Subtype 4 Interactive Job o ~ 7 project number 64 project number 8 64 unused project number 9 32 32 sbu/stu 10 64 old account 11 64 Word Field Description 7-9 project number I-to 20-character project number t in ASCII t left-justified with blank fill. 10 sbu/stu SBU/STU amount accumulated since the beginning of the job. This field is set to zero if the CHARGE statement is the first executable statement. Figure 8-8. Task Record Format t Subtype 4 Batch Job With First CHARGE Statement (Sheet 1 of 2) 60459420 E 8-13 . Word -- Field 11 old account Description I-to 8-character old account identifier, left-justified with blank fill. Figure 8-8. Task Record Format, Subtype 4 Batch Job With First CHARGE Statement (Sheet 2 of 2) o 63 new project number 7 64 8 new project number 64 new project number 9 unused 32 32 sbu/stu 10 64 11 old account number 64 12 old project number 64 13 old project number 64 old project number 14 unused 32 32 Word Field Description 7-9 new project number I-to 20-character new project number, in ASCII, left-justified with blank fill. 10 sbu/stu SBU/STU amount generated by the old project number/old account combination (real). 11 old account number I-to 8-character old account identifier, left-justified with blank fill. 12-14 old project number I-to 20-character old project number in ASCII, left-justified with blank fill. Figure 8-9. Task Record Format, Subtype 4 Batch Job With Second Through Last CHARGE Statement 8-14 60459420 E Terminal Records Terminal accounting (type 2) records are entered into the accounting file whenever a user logs on or off a terminal, or when the notmsg or notwds fields in the user table are about to overflow. A terminal record consists of a six-word header plus one additional word. The format of the header is the same as for the task record header, except that the type field is 2, the subtype field can be 0 (login), 1 (logout), or 3 (notmsg or notwds field overflow), and the controllee level, jdn, job category, job descriptor number, and task number fields are unused. When the subtype code in the record header is 0 (login), the sixth word in the record is as shown in figure 8-10. When the subtype codes are 1 (logout) and 3 (notmsg/notwds field overflow), the sixth word in the record is as shown in figure 8-11. 0 I 6 Word binary 0 tterm Field 6 8 I 63 ternum Description tterm Reserved for operating system use. ternum Reserved for operating system use. Figure 8-10. Terminal Record Format, Subtype 0 o 6 63 notmsg notwds 8 Word 6 ttime 12 Field ternum tterm 20 8 16 Description notmsg Number of messages to or from the terminal since login or since a previous overflow record. notwds Number of words transferred to or from the terminal since login or since a previous overflow record. ttime Time the terminal has been in use, in seconds, since login or since a previous overflow record. tterm Reserved for operating system use. ternum Reserved for operating system use. Figure 8-11. 60459420 F Terminal Record Format, Subtypes 1 and 3 8-15 I Disk File Management Records Disk file accounting (type 3) records are issued whenever there is nondata transfer activity for a file. Disk file records consist of a six-word header plus additional words, depending on the record subtype. The format of the header is the same as for the task record header (figure 8-4), except that the type field is 3, and the subtype field can be 0 (open), 1 (close), 2 (create), 3 (destroy), 4 (extend), 5 (reduce), 6 (change user number), 7 (change file name), or 8 (change account number). The format of the additional words (words 6 and 7) when the subtype codes are 0 (open), 1 (close), and 2 (create) is the same as the format of a task record of subtype 0 (figure 8-5), except that the file named can be a data file as well as a code (executable) file. Three additional words are required (words 6,7, and 8) when the subtype codes are 3 (destroy), 4 (extend), and 5 (reduce). The first two words are the same as words 6 and 7 for subtypes 0, 1, and 2. The third word consists of two 32-bit fields. The leftmost field gives the number of 512-word blocks in the file at the time that the destroy, extend, or reduce record is written. The rightmost field gives the number of seconds that this file existed under the user number, file name, account number, and size specified. The format of the additional words when the subtype codes are 6 (change user number), 7 (change file name), and 8 (change file account number), is the same as words 6,7, and 8 for subtypes 3, 4, and 5. Word 9 contains the new binary user number for subtype 6, the new file name for subtype 7, and the new account number for subtype 8. 8-16 60459420 E Tape Records Tape accounting (type 4) records are entered into the accounting file whenever a tape is assigned to, or released from, a task. Tape records consist of a six-word header, plus additional words depending on the record subtype. The format of the header is the same as for the task record header (figure 8-4), except that the type field is 4, and the subtype field can be 0 (assignment), or 1 (release). When the subtype code is 0 (assignment records), the record word is shown in figure 8-12. When the subtype code is 1 (release records), the record words are shown in figure 8-13. 63 0 I 6 Word vsn device Field 6 Description device Device number of the tape unit. vsn Volume serial number. Figure 8-12. Tape Record Format, Subtype 0 o 63 device vsn 16 rre wre 7 48 dtce stce 16 16 16 8 16 time 64 Word Field device Device number of the tape unit. vsn Volume serial number. wre Total accumulation of write recoverable errors. rre Total accumulation of read recoverable errors. stce Total accumulation of single-track, hardware-corrected errors. dtce Total accumulation of double-track, hardware-corrected errors. time Tape hook-up time, in seconds. 6 7 Description 8 Figure 8-13. 60459420 E Tape Record Format, Subtype 1 8-17 System Records System accounting (type 5) records are entered into the accounting file when the system is autoloaded or recovered, or when new date or time information is entered. A system record consists of a six-word header, plus additional words depending on the record subtype. The header consists of: • The first is as shown in figure 8-3, where the rightmost 40 bits are unused, and the subtype codes are 0 (autoload), 1 (recovery), 2 (new date entered), and 3 (new time entered). • The second word is unused. • The third word is the value of the master clock at the time this record was created. • The fourth, fifth, and sixth words are unused. When the subtype code is 0 (autoload records), four additional words are used: • The seventh word contains the current date, eight ASCII characters in the format mm/dd/yy, where mm, dd, and yy are decimal numbers signifying the month, day, and year. • The eighth word contains the current time, eight ASCII characters in the format hh:mm:ss, where hh, mm, and ss are decimal numbers signifying the hour, minute, and second. • The ninth word contains the current central processor clock time in microseconds. • The tenth word contains the number of small pages currently available for subtypes 1, 2, or 3, and is unused for subtype 0. Job Records Job accounting (type 6) records are entered of jobs. Job records consist of a six-word and two to six additional words for subtype as for the task record header (figure 8-4), field can be (job start), 1 (job end), or ° 8-18 into the accounting file for the start and end header plus two additional words for subtype 0, 1 and 2. The format of the header is the same except that the type field is 6, and the subtype 2 (change job). 60459420 H The format of the job records is shown in figures 8-14, 8-15, and 8-15.1. The last word for subtype 0 (job start) will be zeroes for any jobs not generated by BATCHPRO. If there is no project number active for the job, the last four words of the subtype 1 (job end) record will not be present. o I 63 7 64 8 do~ 48 16 Word Field 7 job name Job or interactive session name associated with this job (in ASCII, left-justified with blank fill). 8 dorg Date when the job entered the input queue. Description yy ddd torg The last two digits of the year (left 7 bits). The number of days since the beginning of the year (right 9 bits). Time when the job entered the input queue. Format is an integer representing system clock, in seconds, since midnight. Figure 8-14. 60459420 H Format is yyddd: Job Record Format, Subtype 0 8-19 I o 63 7 job name 64 job sbu/stu 8 64 9 project number 64 project number 10 64 11 project number unused 32 32 project sbu/stu 12 64 Description Word Field 7 job name Job or interactive session name associated with this job (in ASCII, left-justified with blank fill). 8 job sbu/ stu SBU/STU amount accumulated for the total job. 9-11 project number 1- to 20-character project number active for this job, left-justified with blank fill. These three words will not be present if a project number is not active for this job. 12 project sbu/stu SBU/STU amount accumulated for the listed project number. This word word will not be present if a project number is not active for this job. Figure 8-15. Job Record Format, Subtype 1 o ~ 7 newjdn 8 jobname 64 Word Field Description 7 newjdn The changed new value of jdn for the job. 8 jobname Job name (ASCII, left-justified). Figure 8-15.1. 8-20 64 Job Record Format, Subtype 2 60459420 H Network Usage Records Network usage (type 7) records are recorded in the system accounting file whenever RHF receives or sends a file. The format is shown in figure 8-16. o o 63 07 length subtype 8 8 nbs unused dd 4 20 16 8 account number 64 master clock 2 64 unused nblks st 3 16 24 24 4 user number 5 job/session name 64 64 6 fiic netblks nchars 24 36 4 file name 7 64 cpu unused 8 32 32 Word Field o subtype Description File: o 1 2 3 4 length Number of words in the record. dd Data declaration type: C6 C8 US UU nbs File character set < 64. ASCII file and ASCII separators (file character set> 64). Structured binary. Unstructured binary. Network block size indicator: o 1 2 3 Figure 8-16. 60459420 F Input queue file. Output queue file. Output data file. Input data file. Purge file. Null 2880 3840 4064 transfer. bytes. bytes. bytes. Network Usage Record Format (Sheet 1 of 2) 8-20.1/8-20.2 I Word Description Field account number Account to be charged. For input files, the account is from the job; for output files, the account from the file. 2 master clock Value of the master clock at the time the record was created. 3 st Logical ID which identifies the CYBER front-end. nblks Number of 512-word blocks transferred to and from disk. 4 user number Binary user number. 5 job/ session name Job or interactive session name associated with this task. 6 nchars Number of characters transferred on the network. netblks Number of network blocks transferred (number of C700/C701/C702 messages). fiic Internal format, subtype=l: o 1 ASCII carriage control. ANSI carriage control. 7 file name Name of file on the CYBER 200 (name of job if QTFS). 8 cpu CPU time, in microseconds. Figure 8-16. 60459420 E Network Usage Record Format (Sheet 2 of 2) 8-21 Channel Usage Statistics Records Configuration (type 9, subtype 1) records are written to the account file at system initialization time and whenever a new account file is started. The format is shown in figure 8-17. Global channel usage data (type 9, subtype 2) records are recorded at a periodic rate which is set at system autoload time. The format is shown in figure 8-18. IOLOG turns on and off the writing of these statistics to the accounting file. LOGINT sets the time interval of collection. Refer to the VSOS 2 Operator's Guide for more information about these parameters. o o 63 01 09 length 8 8 reef 8 nzips unused 4 28 8 master clock 64 I 3 pu devid 2 12 ponad 5, 8 pu type 16 chan port 4 3 sonad • pu devid 12 ponad 0 1 chan port 4 sonad 8 Word 3 reserved 5 unused sinad 8 8 reserved 16 8 8 pzip 8 16 Field pinad szip 8 type status bits 8 8 unused 8 sinad 8 8 reserved 8 16 Description length Total word length of this record. recf Multiple record flag. record follows. nzips Number of zip codes. master clock Value of the master clock at the time the record was created. Figure 8-17. 8-22 pinad 8 • 6 7 16 • • I 8 reserved szip type 16 8 sinad 8 8 8 status bits 8 unused pzip 8 pinad 8 8 reserved 5 szip 8 status bits 12 ponad pzip reserved 5 8 devid 4 3 sonad 8 I chan port 4 If this field is set to 1, a continuation Channel Usage Statistics Record Format, Subtype 1 (Sheet 1 of 3) 6045~420 F Word 2, 4, 6 Description Field devid Unique three-digit device number (hexadecimal): oOI-lIoFF 1I100-1I1FF 11300-113FF 11500 RHF. Maintenance control unit (MCU). pu Physical unit number. chan Channel number: o This field is used for disk only. I If no SCEX. If on SCEX. 1-4 3, 5, Disk. Tape. port Port number for pzip (1 to #IU). channel Channel number. pzip Primary zip code for this device. szip Secondary zip code for this device. pinad Primary inboard (C2UU) network access device (NAD) number. sinad Secondary inboard (C200) NAD number. ponad Primary outboard (device) NAD number. sonad Secondary outboard (device) NAn number. status bits Bits from SCTFILE describing the device status such as up/down or on/off. This field is used by disk and tape only. 7 Disk status bits: Description Hit 16-19 Type installed on disk drive: o 1 2 3 2U Indicate whether disk drive is up or down (specified by the operator) for use by the system: o 1 21 1 60459420 F Disk drive is down. Disk drive is up. Indicates whether or not disk contains a track fault map: o Figure 8-17. System pack. Private pack. System/drop pack. Private/drop pack. Disk does not have a track fault map. Disk has a track fault map. Channel Usage Statistics Record Format, Subtype 1 (Sheet 2 of 3) 8-23 Word 3, 5, 7 Description Field status bits Tape status bits: Bit Description 16 17 18 19 22 Primary NAD down bit. Backup NAD down bit. TAD1 down bit. TAD2 down bit. Single-access bit; set to 1 if TAD2 does not exist. Unit assigned to the user. Unit is read only. Status down bit. Use off bit. 28 29 30 31 Bits 16 through 19 are normally set to 0, unless the respective TAD NAD is configured through the USE,NUM,NO command. If all TCD or TAD NADs are down, the unit should be down and off. type NAD type: 1 2 3 4 8 9 A H-F Figure 8-17. 8-24 MCU interface NAD (MID). Disk I/O channel NAD (DCD). Tape I/O channel NAD (TCD). RHF I/O channel NAD (RCD). Disk controller NAD (DAD). Tape controller NAD (TAD). RHF remote system NAD (SHD). Reserved. Channel Usage Statistics Record Format, Subtype 1 (Sheet 3 of 3) 60459420 E o o 63 02 09 8 length 8 reserved reef 8 36 4 master clock 64 2 number of boats 64 • • • number of boats 2n 3 unused devid 12 4 64 sumio 4 48 read/write requests data units transferred 32 5 32 function requests data patterns 32 6 devid 7 unused 12 4 32 sumio 48 read/write requests data units transferred 32 8 32 function requests data patterns 32 32 • •• 9 unused devid 12 10 sumio 48 4 read/write requests data units transferred 32 11 function requests 32 data patterns 32 32 • •• Figure 8-18. 60459420 F Channel Usage Statistics Record Format, Subtype 2 (Sheet 1 of 2) 8-25 • Word Field Description length Variable length is dependent on the number of devid entries containing data. recf Multiple record flag. record follows. 1 master clock Value of the master clock at the time the record was created. 2-2n number of boats Number of boats on the corresponding positional zip code. 3, 6, 9 devid Unique three-digit device number (hexadecimal): 0 IIOOI-IIOFF 11100-1/1 FF 11300-113FF 11500 4, 7 , 10 If this field is set to 1, a continuation Disk. Tape. RHF. MCU. sumio Summation of I/O requests to completion times, in microseconds, for this device. read/write requests Number of read/write requests on this device. data units Number of data units transferred for this device unit. transferred 32 768 bits for 819 disk. 32 bits for tape. 32 bits for RHF. 16 bits for MCU. 5, 8, 11 function requests Number of nonread/nonwrite requests for this device. data patterns Number of data pattern written (819 disk only). Figure 8-18. 8-26 Channel Usage Statistics Record Format, Subtype 2 (Sheet 2 of 2) 60459420 E Periodic System Records Periodic system (type A) records are recorded at a periodic rate that is set at system autoload time. This is done at the same periodic rate as that of channel usage records. The time and counters in the periodic system record are accumulative since the last autoload. The format is shown in figure 8-1Y. o 63 0 A 8 unused len 8 40 8 2 hhmmss 3 kernel 64 64 pager 4 64 5 vscpu 64 user 6 64 7 wait 8 idle 64 64 9 uspf ulpf 32 A 32 sspf slpf 32 Word Field 32 Description 1 len Length of the periodic system record (which is a mlnlmum of 10, plus the number of disk drives divided by two, plus the number of tapes that are currently configured). 2 hhmmss Value of the master clock at the time the record was created. 3 kernel KERNEL time, in microseconds. 4 pager PAGER time, in microsecond,s. Figure 8-1Y. 6045Y420 F Periodic System Record Format (Sheet 1 of 2) ~-27 Word Field Description 5 vscpu Virtual system time, in microseconds. 6 user User time, in microseconds. 7 wait I/O wait time, in microseconds. 8 idle Idle time, in microseconds. 9 uspf User small page faults. ulpf User large page faults. sspf System small page faults. slpf System large page faults. A Figure 8-19. • 8-28 Periodic System Record Format (Sheet 2 of 2) 60459420 F Periodic Job Records Periodic job (type B) records are recorded at a periodic rate which is set at system autoload time. This is done at the same periodic rate as that of channel usage records. This record is not written to the accounting file if there are no jobs currently in the system. The format is shown in figure 8-20. o 63 len 0 B 8 8 unused 8 nopage 16 8 2 maxws 16 jobname 64 tcpu 3 mws cws cbc 4 clp 16 16 ws2sm 5 16 task 16 16 level 32 Word mlp 16 32 Field userno 24 8 Description This value is 1 + 4 * len Total word length of this record. jobs currently in the system). nopage Count of committed memory blocks. maxws Maximum allowable working set. 2 jobname Job name. 3 tcpu User execution CPU timet in microseconds. mws Maximum working set. mlp Maximum large page. cbc Current block count. cws Current working set. clp Current large page count. task Task number. ws2sm CPU time the task was confined to its maximum working set limit. level Level of task. userno User number. 4 5 If level=lt this task entry is the batch processor. Figure 8-20. 60459420 E (number of Periodic Job Record Format 8-29 STANDARDIZED ACCOUNTING ENHANCEMENTS This chapter describes the set of standardized accounting enhancements (SAE) for use on VSOS. It includes the algorithm for computing SBUs and also describes the variable rate accounting (VRA) feature. Accounting calculations are a part of the virtual system. At the end of each accounting period on VSOS, the SBUs used for a task are computed and entered into accounting records. CALCULA YION OF SBUs The formula for calculating SBUs is based on usage, system resource variable rate factor (VRF), and service level factor. The algorithm used in standardized accounting enhancements is shown in figure 8-21. (W(I),I=I,19) is the set of weighting factors associated with the set of system resources (SR(I),I=I,19). A set of installation parameters representing these factors is maintained by the system. SBU=PF(SL)*(VRF(VRI)*W(I)*SR(I)+SUM(W(I)*SR(I), 1=2,19» PF Weighting factor for priority or service level. SL Service level index. VRF Variable rate factor. VRI Variable rate index. Figure 8-21. Algorithm for SBU Calculation System resources are described as shown in table 8-4. The value for each system resource is determined by the system, dependent on the user task activity in the current accounting period. 8-30 60459420 E Table 8-4. System Resources SR(I) I Description 1 UCPU User CPU execution time (microseconds) used during this accounting period. 2 SCPU System CPU time (microseconds) used during this accounting period. 3 MEMU Memory usage during this accounting period: time. 4 LPACCX Number of disk accesses (I/O requests issued) for large page explicit reads and writes during this accounting period. 5 LPACCI Number of disk accesses (I/O requests issued) for large page implicit writes during this accounting period. 6 SPACCX Number of disk accesses (I/O requests issued) for small page explicit reads and writes during this·accounting period. 7 SPACCI Number of disk accesses (I/O requests issued) for small page implicit writes during this accounting period. 8 SPSECX Number of disk sectors transferred for explicit reads and writes during this accounting period. 9 SPSECI Number of disk sectors transferred for implicit writes during this accounting period. 10 LPGFLT Number of large page faults (accesses, during this accounting period. 11 SPGFLT Number of small page faults (accesses for faults) during this accounting period. 12 TAPWDS Number of 16-bit bytes transferred to or from tape during this accounting period. 13 TAPACC Number of tape accesses, one for each read or write during this accounting period. 14 TAPFNT Number of tape functions (other than read or write) during this accounting period. 15 AVWSS Average working set size during this accounting period. 16 VSCALLS Number of virtual system user calls made during this accounting period. 17 LLPC Number of large pages lost. 18 LSPC Number of small pages lost. 19 WS2SML CPU time (microseconds) that task's working set size limit appeared to be too small. 60459420 E i/o working set size * CPU requests issued) for faults 8-31 VARIABLE RATE ACCOUNTING Private control lee files running on the system have a standard rate at which the SBUs they consume during execution are charged. Certain other controllees, such as public utilities or applications packages, can be charged at a different rate whose relation to the standard rate is determined by the variable rate f?ctor and service level factor. The set of defined VRFs is maintained in a virtual system table known as the variable rate table, T VRF. The set of service level factors, which control job cost dependent on job class (high priority, priority, interactive, batch, or standby), are located in the virtual system table T PF. SAE makes provisions for the maintenance and use of these two tables. Variable Rate/Service Level Tables The variable rate table (T VRF) is the image of the variable rate chapter of the Q5VRF file as it existed at autoload time. Similarly, the service level table T PF is the image of the service level chapter of the Q5VRF file at autoload time. The variable rate index assigned to an executing controllee (refer to EDITPUB and Dynamic Variable Rate Accounting Call in Chapter 4, Volume 1 of the VSOS Reference Manual) provides an offset into T VRF. The user CPU component of SBUs for this controllee is directly proportional to the variable rate factor pointed to by the VRI. A variable rate factor of 1.0 represents a rate equal to the standard installation charge. It is suggested that the installation enter some default value (such as 1.0) in the first entry of the variable rate chapter of Q5VRF, because all system files will be initially created with a default VRI setting of O. The service level or priority of a job provides an offset into T PF. The SBU calculation for this job is directly proportional to the service level factor pointed to by the SL. Variable Rate File The variable rate file is partitioned into two chapters, a set of variable rate entries and a set of service level entries. The format of the file is shown in figure 8-22. A variable rate entry consists of two fields, a variable rate factor and a password. The variable rate factor is one word containing a 6'4-bit, floating-point number. The password is one word containing eight ASCII characters, left-justified and blank-filled. If no password is desired for this entry, the field may be set to binary O. A service level entry is one word containing a service level factor. floating-point number. 8-32 This is a 64-bit, 60459420 E o 0 63 variable rate factor (0) 64 1 password (0) 64 2 variable rate factor (1) 64 3 password (1) 64 ••• 403 0 I variable rate factor (2015) 64 403 1 password (2015) 64 403 2 service level factor (1) 64 I •• • 409 5 service level factor (64) 64 Figure 8-22. 60459420 F Q5VRF File Format 8-33 Virtual System Table Definition If an installation allows variable rate processing (determined by installation parameter IP F VR), the following steps are taken at autoload time. If the installation parameter IP F VR is set to 0, meaning that variable rates are not valid at this installation, the vari~ble rate table is never allocated, and no variable rate processing is done. Also, the service level table is not allocated, and no service level factoring of SBUs will be done. AUTOCON locates the PFI entry for the mass storage file which contains the set of entries for the variable rate table and the service level table. The file name Q5VRF and the system user number are used as defaults by AUTOCON. Refer to the configuration table display for AUTOCON in the VSOS 2 Operator's Guide for more information. An alternate file can be specified by entering the line: VR = file name, user number at AUTOCON execution time. If the file is not found, AUTOCON displays the message: VARIABLE RATE FILE NOT FOUND and allows the operator to either correct the file name or continue without retrying. File Maintenance Q5VRF is maintained as a private file under the system user number 999998. The LOOK utility can modify or display the contents of Q5VRF. If the file entries are changed, an autoload must be done to load the new values into the virtual system variable rate table. 8-34 60459420 E SYSTEM DAYFILE The system dayfile is a record of all significant system events, including job dayfile entries. (A job dayfile records the processing of a single batch job.) The following paragraphs describe the general dayfile entry format and the specific formats of each entry type. The system dayfile is a printable file, owned by the system user number, that contains the following types of entries: • Dayfile entries • System entries • Label entries • Diagnostic entries Dayfile entries include user dayfile entries, all interactive commands, errors from the batch processor, privileged system task errors, and errors from the terminal input processor. System entries include all operator commands, all messages sent to the operator, and all illegal terminal 10gins. A label entry is written when the file is created. It includes the name of the current system dayfile, the name of the previous system dayfile, and the name of the next system dayfile. Diagnostic entries are written by customer engineering diagnostics. The current active dayfile has the name specified by installation parameter IP_SDF_¢NAME. The value used at system release is Q5SDF. If no active dayfile exists during system initialization, the system creates one. The system also creates a second file named according to installation parameter IP_SDF2_¢NAME. The resulting release value is Q5SDF. When the current active dayfile becomes full, the system performs the following steps. 1. Changes the name of the current primary file to Q5Ddddnn, where ddd is the day number computed when the file was activated and nn is a sequence number, modulo 100. The system detaches the file. 2. Changes the name of the current secondary file to the primary file name (determined by installation parameter IP_SDF_¢NAME). 3. Creates a new secondary file. (The size of this file is determined by the installation parameter IP_SDFSIZE.) All users can make system dayfile entries. Only privileged/authorized users can do so without also putting the message into the job dayfile. All users are able to make job dayfile entries without putting the message into the system dayfile. 60459420 F 8-35 I GENERAL FORMAT OF SYSTEM DAYFILE ENTRY The general format of the system dayfile entry is as follows: hh.mm.ss xxxx text or text * hh.mm.ss Master clock at the time the entry was made. column 2 and is preceded by a space. This field starts in xxxx Entry type. This field starts in column 11, is preceded by a space, and is four characters long. This field can have one of the following values: USER SYST LABL DIAG text String of characters as defined for the entry type (refer to the entry type format description). This field starts in column 16, is preceded by a space, and is up to 2020 characters long. * An asterisk in column 6 indicates that this line is a continuation of the previous line. The dayfile is an SIL R format file where each entry line is terminated by a #IF character code. The last entry line is terminated by character codes #IF and #le. All fields in the text are separated by one or more blanks. 8-36 60459420 E USER ENTRIES A USER type system dayfile entry is written as a result of the following system events: • The system writes an entry in a job dayfile. • The user enters a control statement at a terminal. • The terminal input processor returns an error to a terminal. • The batch processor returns an error to a job dayfile. • A privileged system task returns an error to the user. • A task calls QSSNDMDF with either BOTH or SDFUSER specified. I The format of the system dayfile entry resulting from a job dayfile entry is as follows: hh.mm.ss USER un jdn jn message or message * un User number for this entry (six decimal digits). jdn Job descriptor number of the job (four decimal digits). jn Batch job file name. message First 2000 characters of the job dayfile entry, starting in column 34. I The format of the system dayfile entry when the user enters a control statement from the terminal is as follows: hh.mm.ss USER un jdn message or message * un User number for this entry. jdn Job descriptor number of the job (four decimal digits). message First 2000 characters of control statement, starting in column 34. I The format of the system dayfile entry for privileged system task errors, errors from the terminal input processor, and errors from the batch processor is as follows: hh.mm.ss USER un jdn message or message * un User number for this entry. jdn Job descriptor number of the job (four decimal digits). message First 2000 characters of error message, starting in column 34. 60459420 H I 8-37 SYSTEM ENTRIES A SYST type system dayfile entry is written as a result of the follwing three events: • The operator enters a command. • The user task sends a message to the operator. • The user enters an illegal login. The format of the system dayfile entry when the operator enters a command: hh.mm.ss SYST message or message * message First 2000 characters of the operator command, starting in column 34. A system dayfile entry is written when a user task sends a message to the operator. It is not written when the message to the operator is a system error condition and the dayfile has been turned off (refer to the TMSF operator command description in the VSOS 2 Operator's Guide). The format of this type of system dayfile entry is: hh.mm.ss SYST un jdn tn message or message * un Task user number for this entry. jdn Job descriptor number. tn Task name. message First 2000 characters of the message being sent to the operator. message starts in column 34. The The. format of the system dayfile entry when a user enters an illegal login command is as follows: hh.mm.ss SYST message or message * message 8-38 First 2000 characters of the illegal login command, starting in column 34. 6045Y420 E LABEL ENTRIES The header label is written when a new system dayfile is started. The format is: I hh.mm.ss LABL fn If nf dd/mm/yy rs vs sysid mid ps fn Name of this file will be given when it is deactivated; eight characters in the format Q5Ddddnn. If Name of last file; eight characters in the format Q5Ddddnn. blank if there was no previous file. nf Name of the next file to be started; eight characters in the format Q5Ddddnn. dd/mm/yy rs vs sysid mid ps This is Current date. Resident system version; eight characters in the format RSxxxxxx. Virtual system version; eight characters in the format VSxxxxxx. System ID/pool; eight characters. Machine ID; one character. Page size; two characters. DIAGNOSTIC ENTRIES The format of diagnostic entries written by customer engineering diagnostics is: hh.mm.ss DIAG message or message * message 60459420 F First 2000 characters of the diagnostics message, starting in column 34. 8-39 9 COMMON EXECUTE LINE SUPPORTING ROUTINES This chapter contains information for a system programmer who is interested in developing an application or utility. CONVENTIONS A control lee execute line is entered for processing by VSOS either as a batch processor control statement or as an interactive terminal type-in. An execute line can occur as one or more physical records representing card images or terminal lines. From the point of view of the common execute line supporting routines, an exact correspondence exists between batch commands and terminal commands, including continuation of the command text to more than one card or terminal line. (From the point of view of the user, however, this correspondence does not exist.) Standard processing is done on five types of linguistic expressions called tokens. tokens are: • Alphanumeric identifiers. • Decimal numeric constants. • Hexadecimal numeric constants prefixed by the character • Character or string constants delimited by the character ". • The special characters, which are / II II & • ) The H character is referred to in text as a hash mark. , The H. = and blank. The & character is an ampersand. Execute line options are defined by means of positional or keyword-identified values. Standard diagnostics are issued if abnormal syntax or conditions are encountered. A set of four system library routines are to be used to guarantee adherence to the conventions previously stated. The routines are: Routine Description Q7ENVIRN Determines the program environment. Q7KEYWRD Processes the text of an execute line. Q7MODE Determines if the task's controller is a terminal. Q7PROMPT Provides interaction with the controller; collects parts from several input records, and builds the complete character string for processing by Q7KEYWRD. 60459420 H 9-1 When a controllee execute line requires more than one terminal line, an ampersand must be used to designate continuation to the subsequent line. Card image continuation is performed automatically during batch processing if a terminator character has not been encountered. The ampersand signals a logical end of record and can be followed by comments. The text of the execute line consists of two or more tokens: the first is alphanumeric and identifies the task name, while the last is a special character called a terminator. The terminator characters are a period and right parenthesis. An implicit terminator occurs at the end of a terminal line that does not contain an ampersand. Comments can be placed immediately following a terminator character or an ampersand. The following execute lines are equivalent: SAMPLE ,A. optional comments SAMPLE&,A. optional comments SAMPLE A A parameter list can follow the task name but must precede the terminator character. Order-dependent parameters must be in the order specified; key-dependent parameters can appear in any order. Parameter formats depend on the control statement specified, but they always follow the same general guidelines. Consecutive parameter list items are separated by level-l separator characters comma and blank. In addition, the left parenthesis acts as a level-l separator between the task name and the parameter list. A parameter list item can be defined by a list of user numbers or file names. These values are also separated by the level-l parameter separators. A file name can be followed by attributes of disposition code or length, with attributes separated from each other by the level-2 separator character slash. Blank is a special character and only performs a separator function when not used with other separators or terminators. Any level of separator can be preceded or followed by blanks, which serve only to highlight the separator; in a similar fashion, the terminator characters can be preceded by highlighting blanks. System utilities or tasks provide default settings for all on/off options. In addition, the input, output, and binary file options have the default names INPUT, OUTPUT, and BINARY. Where tasks create files for the user, the task can determine the necessary file size or the user is allowed to submit an estimate of an adequate size. Tasks that create files also determine the disposition of the file upon task completion. The user has the opportunity to specify file disposition. The task name is constructed of one to eight letters and digits. Except where reference is made to a drop file, the first character must be a letter. The task name is bound on the left by the start of the command and on the right by a level-l separator or a terminator. 9-2 60459420 E Order-dependent parameters are strings of nonseparator, nonterminator characters. Their interpretation is strictly a function of the particular product. An order-dependent parameter list is ended by a terminator or by the occurrence of a key-dependent parameter. The following are examples of execute lines using order-dependent parameter lists: COPY(FILEA,FILEB) PURGE,FILE1,FILE2,FILE3. A key-dependent parameter has the general structure shown in figure an example of an execute line using a key-dependent parameter list: 9~1. The following is FTN(I=COMPILE,L=OUTPUT,B=BINARY/PU/#240) key=defns key A string of letters and numbers, 1 to 255 characters, delimited to the left by a level-1 separator and on the right by an = character, a separator, or a terminator. defns Strings of nonseparator, nonterminator characters whose interpretation is strictly a function of the particular product and the key identifier. Figure 9-1. Key-Dependent Parameter Format Examples of the use of both parameter forms are: WXYZ(FILE1,FILE2,OU=MAPFILE) To ensure that ambiguities do not arise, the programmer calling the keyword word processors must not allow the following: • A parameter resembling a file name to follow a file name list unless that parameter has a key. • A parameter resembling a user number to follow a user number list unless that parameter has a key. • A parameter resembling a text string to follow a text string unless that parameter has a key. 60459420 E 9-3 Parameter values can be strings of letters and digits, decimal digit strings, hexadecimal digit strings, and character strings delimited by quotation marks. In some cases, the alphanumeric string can occur as two decimal digits followed by one to six letters and numbers. This exception is provided to accommodate drop file names. Decimal digit strings are normally interpreted as decimal constants; a hexadecimal constant is normally preceded by a hash mark. Values that must be virtual bit addresses are always hexadecimal values even if the hash mark is not present. In some cases, such as the GROS option of the loader, a hash mark is required to distinguish the address from identifier data in the same list. Some examples are: WXYZ(EN="! FILE!" ,OU=MAP/f/lO) WXYZ(FILE,OU=MAP/16,LI=SYSLIB,MYLIB) PURGE,12DROP,JUNK. COPY,42DROP,SAVEDROP. Lists of values are as order-flexible as the values permit; the user is normally given maximum flexibility consistent with the task requirements. The following equivalent parameter strings illustrate this flexibility: B=FILE/IO/PR B=FILE/PR/IO All key-dependent parameters have on and off settings where appropriate, and can be turned on and off. Turning on keys can be accomplished by means of a key=l parameter, or by use of the key name only; these keys can also be turned off by means of a key=O parameter. File identification keys should be turned off with key=O. Where the option is normally off, a parameter of the form key=filename turns the option on for a specific file, while use of .the key name only turns the option on for a default file. The following execute lines are equivalent, and illustrate the on/off ability: IMPL,X. IMPL,I,X=l. IMPL,X,I=INPUT,B=BINARY/#40. 9-4 60459420 E SUPPORTING ROUTINES Common execute line standards are supported by four subroutines from the system library. The subroutines, which are callable from FORTRAN, META, and IMPL, are: Subroutine Description Q7ENVIRN Determines the program environment of the calling task. The task may be in one of three environments: batch, interactive, or no level-1 controller. Q7MODE Determines whether the parent controller of the calling task is a terminal or another task. A batch job falls into the latter category. Q7PROMPT Inputs parameters to be passed to Q7KEYWRD for syntax checking. It prompts terminal users for input if no parameters are specified in the execute line. It also strips the trailing period or matching outside parenthesis characters from the parameter text before calling Q7KEYWRD. Q7KEYWRD Examines a character string, checks its syntax, and converts data to internal format. In the case of a detected error, it prints error messages and requests; in interactive mode, it permits error correction by accepting reinput of an execute line parameter. Also, in interactive mode, Q7KEYWRD can be set to request and input each parametric keyword through the use of an appropriate prompting message. Assembly language routines call any of these subroutines by using the FORTRAN or IMPL type of calling sequence, while FORTRAN and IMPL programs access the routines using CALL statements. If the main program is coded in FORTRAN, the original execute line is processed by FORTRAN initialization for run-time file substitution. In interactive mode, the program may subsequently call Q7PROMPT or Q7KEYWRD for other lines. Q7ENVIRN The function of this subroutine is to determine a task's program environment and to return the information in a full word whose variable name is supplied as the only parameter to the Q7ENVIRN routine. A full word is defined as a 64-bit word that is aligned on a word boundary. The call statement format of Q7ENVIRN is shown in figure 9-1.1. Q7ENVIRN (environ) environ A full-word variable in which one of the following values is returned: 0 The task is executing from within a batch job. 1 The task is executing from within an interactive session. 2 The task does not have a level-1 controller (for example, QTF, PTFS, or QTFS). Figure 9-1.1. 60459420 H Q7ENVIRN Call Statement Format 9-5 • Q7MODE I The function of this subroutine is to determine if a task's controller is a terminal and to return the information in a full word whose variable name is supplied as the only parameter to the Q7MODE routine. A full word is defined as a 64-bit word that is aligned on a word boundary. The call statement format of Q7MODE is shown in figure 9-2. CALL Q7MODE (mode) mode A full-word variable in which one of the following values is returned: o Controller is not a terminal. 1 Controller is a terminal. Figure 9-2. 9-6 Q7MODE Call Statement Format 60459420 H Q7PROMPT This routine serves as an interface between a calling routine and the Q7KEYWRD subroutine. It inputs user parameters into an input buffer, then passes the text to Q7KEYWRD for syntax checking. If no text is specified on the execute line, Q7PROMPT can prompt the interactive user for parameters, using the message PLEASE SPECIFY PARAMETERS or a message provided by the calling routine; otherwise, if no text is specified on the execute line, it can proceed with a call to Q7KEYWRD, optionally setting bit 60 in the options parameter, which causes Q7KEYWRD to prompt for individual keywords. An input buffer can either be supplied by the calling routine or allocated by Q7PROMPT. Delineator characters, such as matching outside parentheses or a trailing period, are deleted from the input text prior to the call to Q7KEYWRD. Input text can be continued on succeeding lines in interactive mode, provided that an ampersand (continuation character) is appended to each line. The call statement format of Q7PROMPT is shown in figure 9-3. The opt, r, rbuf, rlen, and ti parameters are not used by Q7PROMPT, but are passed to Q7KEYWRD for use in syntax checking. If a text string is not specified in the controllee execute line and the p parameter is not negative, Q7PROMPT prompts for parameters and saves them in a buffer with the name specified as the buf parameter. CALL Q7PROMPT (txt,p,opt,r,buf,blen,rbuf,rl~n,t1, ••• ,tn)t txt Text string to be passed to Q7KEYWRD. carriage control characters. p Indicates whether prompting is desired: )0 0 The string must contain any desired Number of character bytes in txt. Use txt to prompt for parameters. Use the text string PLEASE SPECIFY PARAMETERS to prompt for parameters. -1 Do not prompt for parameters. The value of the variable bIen is O. -2 Do not prompt for parameters. Options bit 60 should be O. -3 Do not prompt for parameters. Wait for message. buf Name of buffer file into which the parameters are to be read. If the bIen field is 0, the buf field is the name given to a buffer provided by Q7PROMPT. bIen Name of a full-word variable whose nonzero value indicates the number of character bytes in buf. If the value of bIen is 0, no buffer is provided by the caller; in this case, Q7PROMPT allocates a 4096-character buffer named buf. A count of the number of characters actually read is returned by the system into the bIen field. tThe opt, r, rbuf, rlen, and ti fields are described under the Q7KEYWRD call statement. Figure 9-3. 60459420 H Q7PROMPT Call Statement Format 9-6.1/9-6.2 I Q7KEYWRD The keyword subroutine scans a line of text, checks syntax, and converts data to internal formats. It prints error messages and inputs replacement expressions as required. Q7KEYWRD processes text containing both positional and keyword type parameters. The calling routine provides Q7KEYWRD with syntax tables that completely describe the general format of the input parameters. Q7KEYWRD uses the tables to interpret the specific parameters in the execute line test. These input parameters, called keyword expressions, are written as follows: keYl keY2 keY3 • • • Each keYi is separated from other keyword expressions by one or more blanks or by commas, and has one of the following formats: lhs = rhs lhs rhs The syntax expression cases, lhs Each keYi, tables for each keYi keyword relate the valid left-hand sides (lhs) of the to valid right-hand sides (rhs). This includes specifying whether the degenerate and rhs, are to be treated as having no left-hand side or no right-hand side. then, can be anyone of the following possibilities: lhs(l ) rhs( 1 ,1) lhs(l) Ihs(2) rhs(l,n1) rhs(2,l) Ihs(m) = rhs(m,nm) m is the number of possible left-hand sides for the expression, left-hand side k having nk possible right-hand sides. 60459420 E 9-7 The syntax tables also specify positional relationships among the keyword expressions. A given expression, keYi, can be flagged as positional, meaning that it must appear after expressions keY1, • • • , keY(i-1) but before the expressions keY(i+1) • • • If an expression (keYi) is not flagged as positional, it can appear in any order with preceding or succeeding nonpositional expressions; so, if keYi, keY(i+1), and keY(i+2) are nonpositional, any of the following are v~lid: key(i), key(i+1), key(i+2) key(i), key(i+2), key(i+1) key(i+1), key(i), key(i+2) key(i+1), key(i+2), key(i) key(i+2), key(i), key(i+1) key(i+2), key(i+1), key(i) The syntax tables also indicate which keYi parameters are required in the execute line text. If a parameter flagged as required is not encountered in its required location, an error message is issued. Left-hand sides for an expression include: • None (the degenerate case, lhs). • A literal character string, 1 to 255 characters long. Right-hand sides for an expression include: • None (the degenerate case, rhs). • A literal character string, 1 to 255 characters long. • An arbitrary character string, 1 to 255 characters long. • Any remaining unscanned text, up to 255 characters maximum. • A number in the range 0 to 247-1 (table setting indicates whether the number can be decimal, hexadecimal with a leading # character, or an address in hexadecimal with no leading # sign required; table settings can also indicate the range of the number if the default range is not sufficiently restrictive). • A user number. • A file name (table settings indicate whether a drop file name can be specified and whether the length, print, and punch attributes can be specified). Lists of numbers, user numbers, and file names separated by slashes, blanks, or commas can be allowed as right-hand sides. A field in the syntax tables indicates that lists are to be allowed and specifies the maximum number of elements permissible. 9-8 60459420 E The entry point Q7KEYWRD is used for both FORTRAN and IMPL calling sequences. The call statement format of Q7KEYWRD is shown in figure 9-4. The lhs table pointers are illustrated in figure 9-5. Each entry in an lhs table points to an rhs table (also full-word-aligned) that describes valid right-hand sides for the given left-hand side and specifies the format in which information is returned in the return buffer to the calling routine. CALL Q7KEYWRD(opt,r,buf,blen,rbuf,rlen,ti, ••• ,t n ) opt Name of a full-word variable, the rightmost 5 bits of whose value indicate the following options: Bit r Description 59 If 0, send error message to the terminal. message to the caller. 60 If 0, scan the input for keyword expressions. If set to 1, prompt for each keyword listed in the tables ti, ••• ,t n • 61 If 0, or if user enters "cancel" in response to interactive prompt, abort on syntax error. If set to 1, return to caller on either condition. 62 If 0, prompt for replacement on syntax error. prompt for replacement. 63 If 0, send error messages to program controller for output. to 1, do not output error messages. Name of full-word variable to contain return codes. ° 1 2 3 4 5 6 7 8 If set to 1, return error If set to 1, do not If set Return codes are: Text scanned successfully. Internal error; or parameters processed did not match any left-hand side or right-hand side tables; or user entered "cancelli in response to interactive prompt. Return buffer too small. Incorrect number of parameters in Q7 PROMPT/Q7 KEYWORD call line. Invalid type field in lhs table entry. Invalid type field in rhs table entry. Invalid flags field in rhs table entry. Words field for return buffer entry exceeds 255. Options field bit 60 is 1, and prompt message length or address in lhs table header is 0. Code 1 is returned only if bit 61 of opt field is 1. Figure 9-4. 60459420 E Q7KEYWRD Call Statement Format (Sheet 1 of 2) 9-9 buf Virtual bit address of string to be scanned for keyword expressions. field is not used if prompting is requested (options bit 60 is 1). bIen Name of full-word variable whose value specifies the number of characters in the string indicated by buf~ This field is not used if options bit 60 is 1. rbuf Virtual bit address of the full-word-aligned buffer (the return buffer) in which reformatted keyword information is to be returned. rlen Name of full-word variable whose value specifies the number of characters in the return buffer. ti Virtual bit address of full-word-aligned lhs table (figure 9-5) that describes acceptable syntax constructs and specifies formats for the returned information. The number of addresses varies with the syntax of the line being scanned. Figure 9-4. This Q7KEYWRD Call Statement Format (Sheet 2 of 2) Ihs tablej •• • - L rhs tablej1 rhs tablej2 • • • rhs tablejn Figure 9-5. 9-10 lhs Table Pointer Configuration 60459420 E Ihs Table An lhs table consists of contiguous, variable-length, full-word-aligned valid keyword expressions. The entries describe the left-hand sides of turn, point to tables whose entries describe valid right-hand sides. A positional and existence requirements of ,the keywords described by this entries describing expressions and, in header relates table. The lhs table format is shown in figure 9-6. The table header contains two words in the format shown in figure 9-7. Each lhs entry has the format shown in figure 9-8. table header Ihs entry Ihs entry 1. i.., 7 o entry Figure 9-6. 60459420 E type=O entry marking the end of the table lhs Table Format 9-11 63 o o flags 8 count prompt_len Word Field o flags 8 table 8 unused prompt 16 40 48 Description Bits that are set to describe keywords: Bit Description 6 If 0, entries describe a keyword that is not positional (that is, the keyword described can appear in any order with preceding or succeeding nonpositional keywords); if set to 1, entries describe a positional keyword. 7 If 0, entries describe an optional keyword; if set to 1, entries describe a required keyword (if no match is found, an error message is issued). count A value that specifies the maximum number of times this table can be used to effect a keyword match. table A value set by the caller and returned in a return buffer entry on a successful lhs and rhs match. (The return buffer is described later in this chapter.) prompt_len A value that specifies the number of characters in a message whose address is given in the prompt field; valid only when the options bit 60 is set to 1. prompt Address of the text to be output as a prompt to request keywords associated with this table; valid only when the options bit 60 is set to 1. Any ASCII carriage control characters desired must be embedded in the text of the prompting message. Figure 9-7. 9-12 lhs Table Header Format 60459420 E o o 63 type pointer left 8 min 48 8 keyword chars 8 8 1., 1., (0 to 7 blanks for alignment on word boundary) Word o Field type Description Entry type. o 1 2 The values are: End of the table. There are no left-hand sides. The keyword expression contains a left-hand side. I I NOTE I Where both a literal character string and an arbitrary character string may be used as parameters, the arbitrary character string must follow the literal character string for the parameters to be interpreted correctly. 1 left A value set by the caller and returned in the return buffer entry upon a successful left-hand side and right-hand side match. pointer Address of the table describing right-hand sides that are valid with this particular left-hand side. min Minimum number of characters needed in the left-hand side before attempting a substring match against the keyword (type=2). chars The number of characters in the keyword if the type field is 2; must be 0 if the type is 1. keyword Text to be used in validating the left-hand side of the expression (type=2). Figure 9-8. 60459420 G lhs Table Entry Format 9-13 rhs Table The rhs table contains contiguous, variable-length, full-word-aligned entries that describe valid right-hand side expressions. The table format is shown in figure 9-9. The first word of each rhs entry has the format shown in figure 9-10. When the type field is 0, the rhs table entry is one word having the format shown in figure 9-10, but with the right, flags, and count fields unused. When the type field is 1, the rhs table entry is one word having the format shown in figure 9-10, but with the flags and count fields unused. When the type field is 2, the format of the rhs table entry is as shown in figure 9-11. When the type field is 3, the format of the rhs table entry is as shown in figure 9-12. rhs entry rhs entry i.., 1. o entry Figure 9-9. 9-14 7 } Type=O entry marking the end of the table rhs Table Format 60459420 E 16 0 type 1 81 flags right 63 23 81 81 count unused 81 Field type 321 Description Entry type number. The format of each entry and the meaning of its flags and count fields vary according to the entry type. The types are: o 1 2 3 4 5 6 7 8 9 End of the table. No right-hand side in the expression. Literal; the right-hand side of the expression must match the initial substring of the literal. Element list. Arbitrary character string is returned in the return buffer. All remaining text (255 characters maximum) is returned in the return buffer. Numbers in the range of -2 47 -1 to 247-1 are returned in the return buffer. File names are returned in the return buffer. User number. Ignore the keyword. I NOTE I Where both a literal character string and an arbitrary character string may be used as parameters, the arbitrary character string must follow the literal character string for the parameters to be interpreted correctly. right A value set by the caller and returned in the return buffer entry on a successful left-hand side and right-hand side match. flags Flag bits, which are set to describe valid right-hand sides of expressions. Bit meanings depend on entry type. count Maximum number of elements in the right-hand side for those entry types that allow lists. Figure 9-10. 60459420 G rhs Table Entry Format (First Word) 9-15 o 63 o 48 8 8 min literal chars 8 J. unused right 2 8 7 7 (0 to 7 blanks for alignment on word boundary) Word Field Description o right A value set by the caller and returned in the return buffer entry on a successful left-hand side and right-hand side match. 1 min Minimum number of characters needed in the right-hand side before attempting a substring match against the literal. chars Number of characters in the literal. literal Text to be used in validating the right-hand side of the expression. Figure 9-11. rhs Table Entry Format, Type 2 o 63 3 right 8 I flags 81 Field count 81 unused Description right Value set by the caller and returned in the return buffer entry on a successful left- and right-hand side match. flags Maximum length of a list element. the range of one to eight bytes. count Maximum number of elements in the list. Figure 9-12. 9-16 The length of the this field is in rhs Table Entry Format, Type 3 60459420 F When the type field is 4, the format of the rhs table entry is as shown in figure 9-13, except that the flags field is not used. The right-hand side of the expression contains or more literal character strings (255 characters maximum per literal string are returned in the return buffer). Quotes may be embedded within the literal string by using the double quotation mark character to indicate the presence of a quote. During processing, the string will be appropriately edited. Enclosing quotes are required only if special characters defined in table 9-1 are part of the text. o o 16 4/6 right flags 8 63 23 32 8 minimum unused 48 16 2 I unused count 8 8 maximum unused 48 16 Word Field o right A value set by the caller and returned in the return buffer entry on a successful left-hand side and right-hand side match. flags Flag bits. If bit 20 is 0, the second and third words are not present. When set to 1, bits 20 through 23 select the following options: Description 20 21 22 23 Range check is desired; the number specified must be greater than or equal to minimum and less than or equal to maximum. Hexadecimal number valid with a leading hash mark. Address valid (hexadecimal number without a leading hash mark) • Decimal number valid. Two or more of bits 21, 22, and 23 can be set at one time; however, a potential identification problem exists if bits 22 and 23 are both set: if the field contains digits U to ~ only, the number is treated as decimal; otherwise, it is assumed to be hexadecimal. count Maximum number of values that can appear in the right-hand side. 1 minimum Lower boundary for a valid number (integer). 2 maximum Upper boundary for a valid number (integer). Figure 9-13. I rhs Table Entry Format, Type 4/6 When the type field is 5, the format of the rhs table entry is as shown in figure 9-10, except that the flags and count fields are not used. When the type field is 6, the format of the rhs table entry is as shown in figure ~-13. 60459420 G 9-17 When the type field is 7, the format of the rhs table entry is as shown in figure 9-10. Four of the individual bits in the flags field can be set to 1, in which case they have the following meanings: Bit Description 20 Punch attribute (PU) is valid. 21 Print attribute (PR) is valid. 22 Length attribute can be specified. 23 Drop file name can be specified. Two or more of the bits can be set at one time. The count field contains the number of file names that appear in the associated return buffer entry. When the type field is 8, the format of the rhs table entry is as shown in figure 9-10. of the individual bits in the flags field can be set to 1, in which case they have the following meanings: Bit Two Description 22 Return an ASCII value. 23 Return a binary value. One or both of the bits can be set at one time. When the type field is 9, the format of the rhs table entry is as shown in figure 9-10, except that the right, flags, and count fields are not used. For this type, no entry is made in the return buffer and processing continues with the next keyword expression. 9-18 60459420 E Return Buffer This buffer is used to contain reformatted keyword information that is returned. The end of the returned information is indicated by a fu~l-word binary O. The return buffer format is shown in figure 9-14. returned entry retu rned entry i. 7 I., ~ Full word 0 marking, } end of buffer binary 0 Figure 9-14. Return Buffer Format The format and length of each return buffer entry depends on the type field of the right-hand side table entry that successfully matched the right-hand side of the keyword expression. Common to all entries is the first full word t whose format is shown in figure 9-15. o 63 table left 8 right 8 Field chars 8 count 8 unused 8 16 Description table Value from the header of the lhs table (ti) that provided the leftand right-hand side entries affecting the keyword match. left, right Values from the left field of the particular lhs table entry and the right field of the rhs table entry affecting the left and right-hand side matches. words Total number of words in this particular entry. chars The meaning of this field varies with the type of the right-hand side. It is the length of the returned information or the length of an element of a returned list t such as a list of file names. count Number of returned elements if returned data consists of a list of items. Figure 9-15. 60459420 E words 8 Return Buffer Entry Format (First Word) 9-19 When the rhs table entry types are 1 and 2, the format of the return buffer entry is as shown in figure 9-16. The words field is always 1. ° 1 I table left ~ . 8 I right Figure 9-16. 8 I I 1 unused Return Buffer Entry Format, Types 1 and 2 When the rhs table entry type is 3, the flags field is used to specify the maximum allowable length of a list element. The allowable range of values is 1 through 8. The format of the return buffer is shown in figure 9-17. o 63' table right left 8 8 words 8 chars 8 count 8 unused 8 16 textstring 1 64 textstri ng 2 64 64 textstring n 64 Description Field table Value from the header of the lhs table (ti) that provided the leftand right-hand side entries affecting the keyword match. left, right Values from the left field of the particular lhs table entry and the right field of the rhs table entry affecting the left and right-hand side matches. words Total number of words in this particular entry. chars The meaning of this field varies with the type of the right-hand side. It is the length of the returned information or the length of an element of a returned list, such as list of file names. count Number of elements returned. text string i Returned elements, ASCII left-justified and blank-filled. Figure 9-17. 9-20 Return Buffer Entry Format, Type 3 60459420 E When the rhs table entry type is 4, the format of the return buffer entry is shown in figure 9-18. Since the multiple literal strings will likely be variable in length, the format of the return buffer returned for type 4 differs from the format of all other return buffers. A header word will precede each literal string returned. o 63 right left table char words 8 8 8 unused 8 8 24 textstring 1 7 (0 to 7 blanks for alignment on word boundary) right left table words 8 8 8 char unused 8 8 24 textstring 2 (0 to 7 blanks for alignment on word bou ndary) •• • left table 8 right 8 unused char words 8 8 8 24 textstri ng n (0 to 7 blanks for alignment on word boundary) Description Field char Number of characters returned in text. text string The right-hand side of the expression. Figure 9-18. 60459420 E 24 Return Buffer Entry Format, Type 4 9-21 When the rhs table entry is 5, the format of the return buffer is as shown in figure 9-19. o 63 table left 8 right chars words 8 8 unused 8 8 24 text J. F . J., (0 to 7 blanks for alignment on word boundary) Description Field chars Number of characters returned in text. text The remaining text (type=5). Figure 9-19. Return Buffer Entry Format, Type 5 When the rhs table entry type is 6, the format of the return buffer entry is as shown in figure 9-20. The chars field is always 8. o 63 table right left 8 8 0 8 words 8 unused count 8 8 8 number1 48 16 J. 7 1. 7 number n _1 0 48 16 Field Description count The number of digits returned. numberi Binary form of the number specified. Figure 9-20. 9-22 16 Return Buffer Entry Format, Type 6 60459420 E When the rhs table entry type is 7 with flag bits 20, 21, and 22 all set to 0, the format of the return buffer entry is as shown in figure 9-21. The chars field is always 8. o 63 table left 8 right 8 words 8 8 8 count unused 8 8 16 filename1 64 J. 7 7 filename n _1 Field 64 Description count Number of files listed, equal to n-l. filenamei Logical file name, in ASCII. Figure 9-21. I Return Buffer Entry Format, Type 7 with Zeroed Flags When the rhs table entry type is 7 with flag bits 20, 21, or 22 set to 1, the format of the return buffer entry is as shown in figure 9-22. The chars field is always 16. o 63 table left 8 right 8 words 8 16 8 count 8 unused 8 filename1 length 1 attribute1 16 64 unused 16 32 i. 7 1.'7 filename p length p Figure 9-22. 60459420 G 16 16 attributep 64 unused 16 32 Return Buffer Entry Format, Type 7 with Set Flags (Sheet 1 of 2) 9-23 Description Field count Number of files listed; has the value (n-l)/2. filenamei Name of the file specified, left-justified with blank fill. length i Length of the file in small pages. returned. attributei File attribute: ASCII punch (PU) or print (PR). specified, blanks are returned. Figure 9-22. If not specified, binary 0 is If not Return Buffer Entry Format, Type 7 with Set Flags (Sheet 2 of 2) When the rhs table entry type is 8 with only one of flag bi~s 22 and 23 set, the format of the return buffer entry is as shown in figure 9-23. The chars field is always 8. o 63 table left 8 right 8 0 words 8 8 8 count 8 unused 8 user number 1 16 48 1. 7 1. 7 0 user number n-1 16 Field 48 Description count Number of user numbers listed. user number ASCII or binary user number, depending on the flags set. Figure 9-23. 9-24 16 Return Buffer Entry Format, Type 8 with One Set Flag 60459420 E When the rhs table entry type is 8 with both flag bits 22 and 23 set, the format of the return buffer entry is as shown in figure 9-24. The chars field is always 16. o 63 table right left 8 8 words 8 0 16 8 count 8 unused 8 16 user1 16 0 4R usernum1 48 16 J. ~7 0 7 userp 16 0 16 Field 48 usernum p 48 Description count Number of user numbers returned, equal to (n-1)/2. Binary user number. usernumi User number of the user; interpreted as ASCII characters. Figure 9-24. 60459420 E Return Buffer Entry Format, Type 8 with Two Set Flags 9-25 Special Characters The Q7KEYWRD subroutine scans for special characters in the execute line text to extract keyword expressions. These characters and their meanings (under given conditions) are described in table 9-1. Table 9-1. Character Execute Line Special Characters Description " Delimits a literal character string on the right-hand side of the expression. An embedded quote within a literal character string must be represented by the double quotation mark character; for example, "AB""C""DE" would be the representation of the literal string AB"C"DE. Each string of the right-hand side must be enclosed in quotes if it includes a special character of table 9-1. Q7KEYWRD will not perform concatenation of a literal in quotes and other character strings. blank Delimits a keyword expression unless it occurs within a literal character string. Delimits a keyword expression unless it occurs within a literal character string. Separates the left- and right-hand sides of keyword expressions unless they occur within a literal character string. 9-26 60459420 E 10 LOADER CONVENTIONS This chapter contains formats for the following loader tables: Module header table Code block table Code relocation table External/entry table Interpretive data initialization table Interpretive relocation initialization table Transfer symbol table Debug symbol table Symbol definition table Pseudoaddress vector table The following loader tables are used by the system during error processing: Module header table Code block table External/entry table Debug symbol table Symbol definition table Pseudoaddress vector table Error processing information is provided for every object module loaded to produce a controllee file. This includes object modules of user-specified files and required object modules for system library files. The loader initializes the following registers in the 0 (zero) page of the controllee: Register Description 1105 SHRLIH version. 1106 Entry address (origin+8000). 1107 USERLIB owner. 1108 Origin (for C runtime). 1I0y Length of error processing information. IIOA Version (from VR parameter). IIOB Date. II0c Time. IIOD Address of the error processing information. IIOE Contains SHRLIB if controllee requires the system shared library; otherwise, /tOE = O. IloF 60459420 F dorg and torg (from PFI) for SHRLIB. 10-1 Description Register I 1110 The rightmost 48 bits contain the bit address of the system shared library if the control lee requires the system shared library; otherwise, 1110 = O. 1111 ULIB name. 1112 dorg and torg for ULIB. 1/13 Origin of ULIB. 1114 Constant 1120. 1115 Constant IlIA. 1116 Constant 1. 1I1B Dynamic stack address. IIIC Current register save area descriptor (length=6, address=dynamic stack address - 11180). tilE Length and address of main data base. II1F Entry address. Other registers are initialized to 0, but can be initialized to other values, as necessary. GENERAL TABLE STRUCTURE The loader works with files that are composed of one or more object modules. Each object module consists of a number of standard tables; each table begins with a standard two-word header. The format of the table header is shown in figure 10-1. o 63 o tabname length 64 address 16 Word Field o tabname 48 Description Name of the table, in ASCII. ~MODULE~ REL ~CODE EXT ~ENTR INT ~RELO XFER ~SYM SYMB ~TAB SYMB ~DEF INT~DATA ~~PAV~~ ~~CODE~~ 1 length Length of the table, in fU'11 words. For the debug symbol table, this field includes the length of the symbol definition table. address Bit difference between the first word of the respective table and word 1 of the module header table; that is, back pointer (bits) + address of the first word of the respective table (bits) = address of word 1 of the header table (bits). Figure 10-1. 10-2 The table names are: Loader Table Header Format 60459420 F MODULE TABLES The module tables described here are the header, code block, code relocation, and external/entry tables. MODULE HEADER TABLE The module header table contains general information concerning the object module and provides a linkage to all the other tables in the module. The format of the module header table is shown in figure 10-2. Words 7 through n of the module header each contain a table type and an address pointer to a table of that type. The pointer contains a bit address relative to the first word address of the header. By convention, the first table described is the code block table and the second is the external/entry table. Table types are listed in table 10-1. Only types 1, 2, 6, and 301 appear in the error processing information area of an object module. o 63 o ~MODULE~ 64 length 0 16 48 modname 64 tdcreate 3 4 tlen 5 clen 6 type1 16 64 proc 48 dblen 16 16 48 point1 48 ~ n type(n-5) 16 Figure 10-2. 60459420 E point(n_5) 48 Module Header Table Format (Sheet 1 of 2) 10-3 Description Word Field 1 length Length of the table, in full words. 2 mod name Name of the module, in ASCII; eight characters, left-justified with blank fill. 3 tdcreate Date and time the module was created; 15 digits (in hexadecimal form) and a positive sign. The format is +yymmddhhttssccc, where yy expresses the year, mm the month dd the day, hh the hour, tt the minute, ss the second, and ccc the millisecond. 4 tlen Word length of tables, excluding the code. proc ASCII name of the processor that created the module. clen Length of the code, in words. dblen Length of the data base area, in bits. typei Table type (refer to table 10-1). pointi Address pointer to a table of the type indicated in the type field. If the hexadecimal type is 4, the pointer contains the bit address of the next module header table. 5 6 to n Figure 10-2. Module Header Table Format (Sheet 2 of 2) Table 10-1. Type t Module Header Table Types Module Name Description 1 t:..t:..CODE~t:.. 2 EXT t:..ENTR External/entry table. 3 REL t:..CODE Code relocation table. 5 XFERt:..SYM Transfer symbol table. 6 SYMBt:.. TAB Debug symbol table. 101 INT t:.. DATA Interpretive data initialization table. 201 INTt:..RELO Interpretive relocation initialization table. 301 ~t:..PAVt:..t:..t:.. - Code block table. Pseudoaddress vector table. t These types appear in the error processing information area of an object module. CODE BLOCK TABLE The code block table contains the executable code. The table consists of the two-word loader table header (figure 10-1), followed immediately by one or more words of executable code. The table name is CODE. When the code block table is loaded in the controllee, the code block table has a pointer in the error processing information area. In this capacity, the table contains the program name (in ASCII) in word 1 rather than the character string t:..t:..CODE t:..b.. 10-4 60459420 E \ CODE RELOCATION TABLE This table describes relocation in the code. The format of the code relocation table is shown in figure 10-3. When this table is processed, the bit base address of the code is added to the 4S-bit fields pointed to by the indexes in the bit string. If this table has a type of S003; it means that SLGEN has preprocessed this table by adding the addresses at which this library is to be placed in the 4S-bit field. o 63 o RE~CODE length 2 nbi address 16 ni 16 3 base 4 indexes1 J. 64 48 48 64 1., T n indexes(n-4) Word Field 1 length Length of the table, in full words. address Bit difference between the first word of the respective table and word 1 of the module header table. nbi Number of bits per index in the bit strings that start in word 5. ni Number of indexes in the string. base Current bit address to which this module is relocated. indexesi Bit string of indexes, each nbi bits long. Each index references a half-word of code to be relocated relative to the base address of the code. 2 3 4 to n Description Figure 10-3. 60459420 E Code Relocation Table Format 10-5 EXTERNAL/ENTRY TABLE The external/entry table contains definitions for all entry points, external symbols, and common blocks. These definitions consist of lists of entry point names, external names, entry point descriptors, and external descriptors. The format of the table is shown in figure 10-4. In words 3+n and 3+2n, the quantity n-m is the number of external names in the table. Each descriptor in the external/entry table has the form shown in figure 10-5. 10-6 60459420 E o 63 o EXTb.ENTR 64 address length 48 '6 n m 2 48 '6 3 entry point name, 4 entry point name2 64 -i. 7 64 J.,. 3+m entry point name m 4+m external name, 64 64 external name2 5+m 64 1. 7 1.,. external name(n_m) 3+n 64 entry point descri ptor, 4+n 64 entry point descriptor2 5+n 64 1. 7 1., entry point descriptor m 3+m+n 64 external descriptor, 4+m+n 64 external descriptor2 5+m+n 64 J. "7 7 external descriptor(n_m) 3+2n 64 Figure 10-4. 60459420 E External/Entry Table Format (Sheet 1 of 2) 10-7 Word Field 1 length Length of the table, in full words. address Bit difference between the first word of the respective table and word 1 of the module header table. m Number of entry point names in the table. n Total number of names in the table. 2 Description Figure 10-4. External/Entry Table Format (Sheet 2 of 2) o type value Field type I Description Symbol type: 1 2 3 1114 filS fl16 value Depends on the type field. If type is 14 or 15, value is 0; otherwise, if type is 1 to 2, value is the entry point's relative bit address in the code or data block; if type is 3, value is a 48-bit constant; and if type is 16, value is the bit length of the common block. Figure 10-5. 10-8 Entry point in code. Entry point in data. Constant entry point. External procedure. External data. Common block. Descriptor Format for Externals and Entry Points 60459420 G The symbol types are defined as follows: Entry point A named value defined in the procedure; it is to be referenced as an external by an external procedure. It can be an address in the code block, an address in the data base, or a constant value. Common block A named alterable space referenced by one or more procedures. A common block can be initialized with relocatable data. A blank common is a common block with a name of eight blanks. External procedure An external that is referenced in a call. Having a symbol doubly defined as a common block and external procedure is specifically allowed. All external procedure names are eight characters, left-justified with blank fill. External data An external that is referenced by a method other than a procedure call. INTERPRETIVE OAT A INITIALIZATION TABLE When the loader processes information in the interpretive data initialization table, areas of static space are initialized. The table consists of the two-word loader table header (figure 10-1), followed immediately by one or more variable-length entries. The table name is INT A DATA. Each entry contains a one-word descriptor and a two-, three-, four-, or six-word data item. Data item and item descriptor pairs in the interpretive data initialization table are formatted as shown in figures 10-6 through 10-9. The first word in each figure is the data item descriptor. The remainder of each figure describes the data item proper, which is stored in the formats shown. o o 63 ord 1 . type ord 2 16 1£> length mode 8 chain 8 16 rba 48 16 2 value 64 Figure 10-6. 60459420 F Data Item Format 1 (Sheet 1 of 2) 10-9 Word Description Field o Pseudoaddress vector table ordinal of static space to be initialized. ord2 Pseudoaddress vector table ordinal of space relative to which relocation is to be performed (relocation base). type Type of data item that follows: 1 2 3 4 Full-word Half-word Full-word Half-word broadcast. broadcast (not defined if the mode field is 1). vector transmit. vector transmit (not defined if the mode field is 9 A Byte string. Bit string. 1) • mode Mode flag: o 1 2 When the mode flag is 0, the values in the item are stored directly into the destination field (specified by the ord 1 field), and the ord2 field is ignored. When the mode flag is 1, the relocation base is added to the values before they are stored in the destination field; for this case, the result is always on a word boundary. When the mode flag is 2, the relocation base is added to the destination field; in this case, the value field is absent in the data item. I I Value to destination. Value plus relocation base to destination. Destination plus relocation base to destination. 1 2 chain Full-word count to the next data item descriptor in the table (same as a count of the number of full words in the data item). length The length of the vector in words for data item types 1, 2, 3, and 4; the number of bytes of information in the value field, for data item type 9; and the number of bits of information in the value field, for data item type A. rba Relative bit address. value A string or a vector value, depending on the data item type, as follows: • • • • • • A full word to be stored in consecutive full words, starting at the relative bit address in the rba field (type 1). A left-justified half-word to be stored in consecutive half-word locations, starting at the relative bit address in the rba field (type 2). A full-word vector to be transmitted to the relative bit address in the rba field (type 3). A half-word vector to be transmitted to the relative bit address in the rba field (type 4). A left-justified byte string to be stored at the address in the rba field (type 9). A left-justified bit string to be stored at the address in the rba field (type A). Figure 10-6. 10-10 Data Item Format 1 (Sheet 2 of 2) 60459420 G o 63 o ord 1 ord2 16 type mode 16 8 length1 chain 8 16 rba 16 48 2 value 64 3 length2 string 16 Word Field o 48 Description Pseudoaddress vector table ordinal of static space to be initialized. ordZ Pseudoaddress vector table ordinal of space relative to which relocation is to be performed (relocation base). type Type of data item that follows: 5 6 mode Full-word sparse vector. Half-word sparse vector (not defined if the mode field is 1). Mode flag: o 1 2 Value to destination. Value plus relocation base to destination. Destination plus relocation base to destination. The meaning of this field is the same as that of the mode field in figure 10-6. chain Full-word count to the next data item descriptor in the table (same as a count of the number of full words in the data item). length1 Number of I-bits in the order vector specified in the string field. rba Relative bit address of the location to which the sparse vector is to be transmitted. 2 value Value part of the vector to be transmitted; contains a full-word of values (type 5), or a left-justified, half-word of values (type 6). 3 length2 Length of the control vector specified in the string field. string A left-justified bit control vector (an order vector). Figure 10-7. 60459420 F Data Item Format 2 10-11 o o 63 ord 1 ord 2 16 type mode 8 16 length chain 8 rba 16 2 16 48' value 64 3 nbi ni 16 48 string 4 64 Word o Description Field ordl Pseudoaddress vector table ordinal of static space to be initialized. ord2 Pseudoaddress vector table ordinal of space relative to which relocation is to be performed (relocation base). type Type of data item that follows: 7 8 mode Full-word index list. Half-word index list (not defined if the mode field is 1). Mode flag: o 1 2 Value to destination. Value plus relocation base to destination. Destination plus relocation base to destination. The meaning of this field is the same as that of the mode field in figure 10-6. chain Full-word count to the next data item descriptor in the table. length Number of values in the item. rba Relative bit address of the location to which the indexed elements of the vector are to be transmitted. 2 value A vector; contains a full-word of values (type 7), or a left-justified, half-word of values (type 8). 3 nbi Number of bits per index. ni Number of indexes. string A bit string of ni indexes. Each index is nbi bits long and contains a full-word count (for type 7), or a half-word count (for type 8). 1 4 Figure 10-8. 10-12 Data Item Format 3 60459420 F o 63 o ord 1 ord 2 16 8 length1 chain1 mode type1 16 16 8 rba 48 16 2 niter ni2 3 16 chain2 init unused ni 1 4 48 16 16 length2 8 24 unused 48 16 5 value 64 6 chain3 ni3 48 16 Word Field o Description Pseudoaddress vector table ordinal relative to the data area to be initialized. Pseudoaddress vector table ordinal of space relative to which relocation is to be performed (relocation base). D (nested list). mode Mode flag: o 1 2 ~alue to destination. Value plus relocation base to destination. Destination plus relocation base to destination. The meaning of this field is the same as that of the mode field in figure 10-6. 1 chain1 Full-word count to the next data item in the nested list. length1 Number of nested item types that follow. rba Relative bit address of the vector. 2 Nested iteration start item. niter Number of times the data item and items associated with this iteration start item are to be repeated. Figure 10-9. 60459420 F Data Item Format D (Sheet 1 of 2) 10-13 Word Field 3 Description Nested data item identifier. init Any initialization data type. If there is more than one data item in an iteration, types cannot be mixed. chain2 Length of the data item in number of words. 4 length2 Half-word vector length. 5 value A left-justified half-word to be stored in consecutive half-word locations, starting at the relative bit address in the rba field. 6 Nested iteration end item. chain3 Nested item designator: o 1 No nested item types follow. More nested item types follow. Figure 10-9. 10-14 Data Item Format D (Sheet 2 of 2) 60459420 E INTERPRETIVE RELOCATION INITIALIZATION TABLE The interpretive relocation initialization table consists of the two-word loader table header (figure 10-1), followed immediately by one or more relocation items, one word per item. Item formats are similar to data initialization table formats but do not contain values. The name of the table is INTARELO. TRANSFER SYMBOL TABLE The transfer symbol table consists of the two-word loader table header (figure 10-1), followed immediately by one word containing the transfer symbol. The table name is XFER SYM. The transfer symbol is the symbolic name of the entry point to which control is to be transferred at the start of execution; the name is left-justified with blank fill. DEBUG SYMBOL TABLE The debug symbol table, which contains the ASCII representation of symbols that appear in a program, allows a symbol to be referenced by name rather than by address. This table appears in the error processing information area if the compiler or assembler used is capable of generating the table, and if the appropriate option.is selected and used during compilation or assembly. The format of the table is shown in figure 10-10. The length field in word 1 is the total length of the debug symbol table and the symbol definition table. 60459420 G 10-15 I o 63 o SYMBb.TAB 64 length address 16 2 48 nsym 0 16 48 3 symbol 1 64 symbol 2 64 ~7 ~7 n Word 2 3 symbol n Field nsym Description Number of symbols in this table. A symbol, which can be any of the following: • • • Variable or array name, in ASCII; must be left-justified with blank fill. Statement line number, in ASCII; must be a hexadecimal value, right-justified with binary zero fill. Statement label, in ASCII. Labels that are symbolic names are stored left-justified with blank fill; labels that are statement numbers are stored right-justified with ASCII zero fill. A statement line number of #FFFF is used to indicate code moved out of logical position by extended basic block optimization (EBBO). Figure 10-10. 10-16 64 Debug Symbol Table Format 60459420 E SYMBOL DEFINITION TABLE The symbol definition table is an extension to the debug symbol table. It provides further definition to the debugging symbols, including the type of symbol, address, and mode. The table consists of the two-word loader table header (figure 10-1), followed immediately by one or more two-word entries in the format shown in figure 10-11. The table name is SYMB6DEF. o 63 o type location 48 16 0 mode ordinal 32 16 Word o Field type Description Symbol type: Unknown. Half-word register variable name. Variable or array name. Variable or array name. Line number. Label. type=O type=l type=2 type=3 type=4 type=5 location Location field for the symbol type: 1 2 3 4 5 1 mode Half-word address within the register file; because half-word values can be stored in full-word registers, the location can range up to hexadecimal 1FF. Full-word register number. Bit address relative to the start of the data base. Bit address relative to the start of the code base. Bit address relative to the start of the code base. Symbol mode, consisting of three parts as shown below; in the case of a descriptor, p and dtype describe the contents of the reference vector: desc 1PII dtype 31 Subfield p Figure 10-11. 121 Description Precision base indicator: 0 1 60459420 G 16 Precision base is 32-bit or irrelevant. Precision base is 64-bit. Symbol Definition Table Entry Format (Sheet 1 of 2) 10-17 I Word 1 Description Field mode Description Subfield desc Descriptor indicator: o 1 2 4 S dtype Type of the referenced vector: o 1 2 3 4 S 6 10 I I ordinal Unknown. Logical. Integer. Real. Double precision. Complex. Character. Bit. Ordinal of the pseudoaddress vector table of the data base or common block (described under Pseudoaddress Vector Table, next). Figure 10-11. 10-18 Not a descriptor. Vect~ descriptor. Vector descriptor array. Sparse vector descriptor. Sparse vector descriptor array. Symbol Definition Table Entry Format (Sheet 2 of 2) 60459420 G PSEUDOADDRESS VECTOR TABLE The table pointed to by the ordinal in the symbol definition table is the pseudoaddress vector table of the data base or common block. The table consists of the two-word loader table header (figure 10-1), followed immediately by two words giving a code address and data base address, and one or more two word entries in any of the formats shown in figure 10-12. The table name isD.D. PAVD./).D.. For common: o 63 0 16 0 16 address 48 bit length 48 For an external symbol, referencing the entry point in code: o 63 0 entry address in code 16 data base length 48 data base 16 48 For an external symbol, referencing the entry point in data: o 63 0 entry in data base 16 data base length 48 data base 48 16 For an external symbol, referencing a constant entry point: o ~ 0 constant entry value 16 data base length data base 16 Figure 10-12. 60459420 E 48 . 48 Pseudoaddress Vector Table Entry Formats 10-19 CHARACTER SET A The ASCII character set is shown in table A-I. Aids for hexadecimal-to-octal and hexadecimal-to-decimal conversion are given in tables A-2 and A-3. 60459420 E A-I :r Table A-I. ASCII Character Set with Punched Card Codes and EBCDIC Translation N 0 0 b8 b7 btl 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 ~ 0 1 NUL 12-0-9-8-1 NUL 00 OLE 12-11-9-8-1 OLE 10 SP SOH 12-9-1 SOH 01 DCl 11-9-1 DCl 02 OC2 11-9-2 OC2 03 DC3 11-9-3 TM 37 DC4 9-8-4 DC4 5 ENO 0-9-8-5 ENQ 2D NAK 9-8-5 NAK 6 ACK 0-9-8-6 ACK 2E SYN 9-2 SYN ETB 0-9-6 ETB 16 CAN 11-9-8 CAN 05 EM 11-9-8-1 EM 19 0 1 2 STX 12-9-2 STX 3 ETX 12-9-3 ETX 4 EOT 9-7 EOT 1 1 1 7 1 0 0 0 8 BS 11-9-6 BS 9 HT 12-9-5 HT 0 1 1 2 11 12 no-punch 0 0 SP 40 0 ! 12-8-7 I 4F 1 . .8-7 7F # 8-3 7B 3 4 3C % 0-8-4 % 6C 5 5 5 & 6 3D & 8-5 26 7D ( 18 8 ) 9 11-8-5 50 ) 25 VT 12-9-8-3 VT OB ESC 0-9-7 ESC 12 (C) FF 12-9-8-4 FF OC FS 11-9-8-4 IFS lC 13 (D) CR 12-9-8-5 CR 00 GS 11-9-8-5 IGS 10 14 (E) SO 12-9-8-6 OE SO RS 11-9-8-6 IE IRS 12-8-3 4B 15 IF) SI 12-9-8-7 OF SI US 11-9-8-7 1F IUS / 0-1 / 1 1 1 LEGEND 0 1 12-11-7 97 11-0-9-8-1 20 DS 12-11-0-9-8-1 30 12-0-9-1 41 12-11-9-8 p 0-9-1 SOS 9-1 12-0-9-2 42 11-8-1 31 11-{)-9-2 lA 12-0-9-3 43 12-0-9-4 44 11-0-9-3 33 12-0-9-5 45 11-0-9-4 34 11-0-9-5 R 11-9 R D9 b 12-0-2 82 b r F2 B 12-2 B C2 S 0-2 S E2 c s F3 C 12-3 C C3 c 12-0-3 83 s T 0-3 T E3 d 12-0-4 84 d t F4 0 12-4 o C4 U 0-4 U E4 e 12-0-5 e 85 u F5 E 12-5 E C5 V 0-5 V E5 f v F6 F 12-6 F C6 F7 G 12-7 G C7 W 0-6 W E6 9 12-0-7 87 9 X 0-7 X E7 h F8 H 12-8 H C8 F9 I 12-9 I C9 12-8-2 Ii 4A ASC II Character 8 9 9 . 79 12-0-1 81 a 12-9-6 LC 9-6 UC 36 12-0-9-7 47 11-0-9-6 06 11-0-6 w A6 11-9-7 IL 08 12-0-9-8 48 11-0-9-7 17 12-9-8 GE 12-0-8 h 88 x 11-0-7 x A7 0-9-8 12-8-1 11-{)-9-8 Y 0-8 Y E8 I Y i y Z j z 0-9 Z E9 12-11-1 j 91 11-0-9 z A9 0-9-8-2 SM 2A 9-8-2 [ I k 12-11-2 :12-0 k 92 \ CO 0-9-8-3 CU2 2B 9-8-3 CU3 0-9-8-4 2C 12-0-9 89 0-8-2 \ EO = M 11-4 MD4 I m 7E 11-8-2 ! 5A > 0-8-6 > 6E N 11-5 11-8-7 N D5 ..., 5F ? 0 11-6 OD6 0 0-8-7 ? 6F 0-8-5 6D - t 11-0-4 u A4 v w 11-0-8 A8 If-II 6A 12-11-5 95 n 12-11-6 96 0 - 11-0-1 Al - DEL 12-9-7 DEL 07 64-Character ASCII Subset -.......... ~ 96-Character ASCII Subset Q'I o +l'VI EBCDIC Character ~ +l'N o tz:j ".L~" .....;-~ EBCDIC Code (Hexadecimal) 58 (0) 15 (F) 12-11-0-9-6 76 12-11-8-7 9F 12-11-0-8 B8 12-11-9-8-4 DC 12-11-0-9-7 77 11-0-8-1 59 AO 12-11-{)-9 B9 12-11-9-8-5 DD 62 12- ~ 1-0-9-8 .11-0-8-2 78 AA 12-11-{)-8-2 BA 12-11-9-8-6 DE 12-0-8-1 AB 12-11-{)-8-3 BB 12-11-9-8-7 DF 12-11-{)-8-4 BC 11..Q-9-8-2 AC 11-0-9-8-3 AD 12-11-{)-8-5 BD 12-11-0-8-6 BE 11-0-9-8-4 AE 11-0-9-8-5 8D AF 12-11-{)-8-7 BF 9-8 12-{)-9-8-2 CA 11-{)-9-8-6 8E 12-11-{)-8-1 BO 28 12-11-0-1 11-{)-8-5 12-0-8-3 8B 12-0-8-4 11-0-8-6 66 8C 11-0-8-7 12-0-8-5 67 12-{)-8-6 68 12-11-9-1 51 0-8-1 39 12-11-0 3A 12-11-9-2 52 3B 12-11-9-3 53 "12-9-4 PF 04 12-11-9-4 54 12-9-8-1 RLF 09 11-9-4 RES 14 12-9-8-2 SMM OA 9-8-6 3E 9-8-1 8A 65 49 29 11-{)-8-4 12-0-8-2 64 38 0-9-8-1 11-{)-8-3 80 12-{)-8-7 EA EB rl EC ED EE Bl 12-{)-9-8-3 CB 11-0-9-8-7 8F 70 90 12-11-0-2 B2 12-0-9-8-4 CC J' 12-11-0-9-8-2 FA I(LVM) 12-11-0-9-1 71 12-11-8-2 9A 12-11-{)-3 B3 12-{)-9-8-5 CD 12-11-0-9-8-3 FB 12-11-0-9-2 72 12-11-8-3 9B 12-11-0-4 B4 12-{)-9-8-6 CE Y 12-11-0-9-8-4 FC 12-11-9-5 55 12-11-0-9-3 73 12-11-8-4 9C 12-11-0-5 B5 12-{)-9-8-7 CF 12-11-0-9-8-5 FD 12-11-9-6 56 12-11-0-9-4 74 12-11-8-5 9D 12-11-0-6 B6 12-11-9-8-2 DA 12-11-0-9-8-6 FE 12-11-9-8-3 DB EO 12-11-0-9-8-7 FF 69 12-11-8-1 EF I I 12-11-4 }11-0 94 } DO m n A --------------61 0-9-4 BYP 11-0-5 A5 12-0-6 86 f < 12-8-4 < 4C = (e) 1 14 (E) 63 35 0-8-3 8-6 9-3 23 15 I 12-11-3 I 93 60 0-9-3 12-0-9-6 46 \ 11 11-0-3 A3 22 11-9-8-2 CC 9-5 RS L 11-3 L 03 - 11-0-2 A2 0-9-2 FS 11-9-5 NL K 11-2 K 02 - 13 1 i , 12-11-9 r 99 9-4 PN 7A 6B 21 24 11-8-6 5E + 27 8-1 12-8-6 4E + 8-2 1 12 1 1 1 0 p J 11-1 J 01 11-8-4 5C 11 (B) 1 1 1 0 0 q 12-11-8 q 98 Fl 8 11 (B) 3F 7 7 12-8-5 4D I 1 1 6 1 10 (A) 6 1 1 0 1 9 a 7 1 1 1 0 1 1 0 1 0 8 Q 11-8 o D8 6 50 0 1 4 4 12 32 1 1 1 0 0 7 A 12-1 ACI 3 # 10 (A) 0 2 $ 11-8-3 $ 5B 0 1 1 FO 1 1 13 1 1 0 P 11-7 P 07 3 0 0 1 1 0 0 1 @ 8-4 @7C 2 1 0 0 1 0 1 1 0 5 2 SUB 9-8-7 SUB 1 1 1 4 3 LF 0-9-5 LF 1 0 0 0 1 0 1 ROW 0 0 0 0 1 0 1 BEL 0-9-8-7 2F BEL 1 0 0 0 0 b5 b4 b3 b2 b1 0 0 0 0 ~ 11-9-8-3 CUI lB 11-0-9-1 El 12-11-9-7 57 12-11-0-9-5 75 12-11-8-6 9E 12-11-0-7 B7 Table A-2. ~ Second Hexadecimal-to-Octal Conversion Aids First Hexadecimal Digit 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 000 020 040 060 100 120 140 160 200 220 240 260 300 320 340 360 1 001 021 041 061 101 121 141 161 201 221 241 261 301 321 341 361 2 002 022 042 062 102 122 142 162 202 222 242 262 302 322 342 362 3 003 023 043 063 103 123 143 163 203 223 243 263 303 323 343 363 4 004 024 044 064 104 124 144 164 204 224 244 264 304 324 344 364 5 005 025 045 065 105 125 145 165 205 225 245 265 305 325 345 365 6 006 026 046 066 106 126 146 166 206 226 246 266 306 326 346 366 7 007 027 047 067 107 127 147 167 207 227 247 267 307 327 347 367 8 010 030 050 070 110 130 150 170 210 230 250 270 310 330 350 370 9 011 031 051 071 111 131 151 171 211 231 251 271 311 331 351 371 A 012 032 052 072 112 132 152 172 212 232 252 272 312 332 352 372 B 013 033 053 073 113 133 153 173 213 233 253 273 313 333 353 373 C 014 034 054 074 114 134 154 174 214 234 254 274 314 334 354 374 D 015 035 055 075 115 135 155 175 215 235 255 275 315 335 355 375 E 016 036 056 076 116 136 156 176 216 236 256 276 316 336 356 376 F 017 037 057 077 117 137 157 177 217 237 257 277 317 337 357 377 Hexadecimal Digit Octal 040 - 000 037 60459420 E 077 137 240 - 200 - 140 - 100 - 177 237 340 - 300277 337 377 A-3 Table A-3. Hexadecimal-to-Decimal Conversion Aids Exponent for Base 16 5 Hexadecimal Number -f- 4 3 2 1 0 0 0 0 0 0 0 0 1 1048576 65536 4096 256 16 1 2 2097152 131072 8192 512 32 2 3 3145728 196608 12288 768 48 3 4 4194304 262144 16384 1024 64 4 5 5242880 327680 20480 1280 80 5 6 6291456 393216 24576 1536 96 6 7 7340032 458752 28672 1792 112 7 8 8388608 524288 32768 2048 128 8 9 9437184 589824 36864 2304 144 9 A 10485760 655360 40960 2560 160 10 B 11534336 720896 45056 2816 176 11 C 12582912 786432 49152 3072 192 12 D 13631488 851968 53248 3328 208 13 E 14680064 917504 57344 3584 224 14 F 15728640 983040 61440 3840 240 15 j16 x 16 i = ml0 To find E16 x 16 3 ; look at row E, column 3 and find 57344 A-4 60459420 E B DIAGNOSTICS This appendix describes the meanings of the system error codes and tape error codes. Privileged system task error codes are documented in the VSOS 2 Operator's Guide. System dead codes and NAD disaster codes are now documented in the VSOS Troubleshooting Guide. RHF connect reject codes are documented in the RHF Application-to-Application Interface Specification. SYSTEM ERROR CODES The error codes listed in table B-1 are returned in word #8B of the minus page. The errors signified by the codes terminate the task that generated the error. The KERNEL, RESTART, and RECOVERY tasks are part of the resident operating system; the AOK and SCAT tasks are part of the virtual system. Table B-1. System Error Codes (Sheet 1 of 2) Hexadecimal Code Significance Issued By 5 Illegal instruction; the instruction is not in the CYBER 200 instruction set. KERNEL 6 The exit force instruction does not have a pointer to a system message to be executed. KERNEL 7 Illegal request. KERNEL 8 Parity error in data transfer between the CPU and central memory. RESTART A A CSOx request did not contain a file segment table ordinal. Resident system B Illegal C504 request. Resident system 22 Disk I/O error occurred for read/write of a drop file. PAGER 24 Large page limit exceeded. PAGER 25 Page size conflict in drop file. PAGER 26 Virtual address duplicate direct fault. PAGER 27 Write violation in system call. PAGER 60459420 F B-1 • Table B-1. System Error Codes (Sheet 2 of 2) Hexadecimal Code • B-2 Significance Issued By 28 Write violation occurred while the system was swapping in a page referenced by the job. PAGER 29 The job referenced a page within the virtual system address range. PAGER 2A The drop file map is full; the job can define no more vitual regions. PAGER 2B This job class is not allowed large pages. Virtual system 2C The job referenced a page in the shared library reserved area. PAGER 2D Drop file space overflow; no more virtual space can be mapped into the drop file. PAGER 2E Page was not mapped because the drop file map is full. PAGER 2F Drop file overflow was caused by a call to the virtual system. PAGER 30 No time available for this task. PAGER 31 The paging routine received an I/O error. PAGER 40 Bound implicit map anomaly. Virtual system 51 File segment table is full. GETSEG 209 No source file exists. AOK 210 No drop file exists. AOK 212 The pointer to the system.message Alpha does not exist. SCAT 213 The pointer to the system message Alpha was out of bounds. SCAT 215 No error exit address exists. SCAT Bxx File is already extended to maximum. number. Cxx Attempted to read past the end of file on a file. connector number. Dxx No segment space in FILEI left for extension. connector number. Exx No space left on the disk for extension. number • xx is an I/O connector xx is an I/O GETSEG REXTEND xx is an I/O GETSEG xx is an I/O connector GETSEG 60459420 F TAPE ERROR CODES The system returns a tape error to the caller in the ioer field of the call. The errors that range from 1 to 100 return control to the caller when one of these errors is detected. The errors that range from 101 to 200 are tape I/O errors. These errors can be fatal or require operator action unless the caller selected user error processing in the OPEN system message. The codes listed in table B-2 are in decimal notation. Table B-2. Tape Error Codes (Sheet 1 of 4) Tape Errors Code Significance 001 Call not in user range. 002 Illegal subfunction code (sfnc). 003 Nonexistent I/O connector (ioc). 004 Buffer size greater than 48 pages. 005 Tried to write zero-length logical tape record (V tape format). 007 PRU read is longer than MPRU. 008 LRU is greater than MPRU. 009 WRITE attempted a zero-length PRU. 010 User WRITE buffer went minus. 011 HDR1 label not in label buffer. 012 Non-numeric file sequence number. 013 Section 1 is not in VSN list. 014 Cannot swap backwards, no previous VSN. 016 File accessibility characters do not match. 017 Position not found in multifile set. 019 Next VSN was not given. 020 Tape file does not have proper access. 021 Read or skip forward after write (illogical sequence). 030 Attempt to reuse call before previous, call is complete. 031 Previous call for this unit had a fatal error. 032 Call crosses page boundary. 033 IOC is not for a tape file. 034 Tape not assigned to this user. 037 For write operation, sum of LRU sizes is greater than buffer length. 60459420 F Device capacity exceeded. B-3 • Table B-2. Tape Error Codes (Sheet 2 of 4) Tape Errors Code Significance 039 Forward motion attempted when end of information has been detected on this file. 040 End of tape encountered. (This number is returned to the user only if the user selected end-of-tape processing in the Q50PEN call.) 041 Load point encountered on tape from backward motion. 042 Tape format mismatch. 043 EOI encountered while positioning to HDR1. 044 Illegal user labels in label buffer. 045 Small and large pages exist in the buffer. 046 System tables full, try again. 047 I/O request currently outstanding for this buffer. 048 Length of LRU array less than or greater than 255. 049 Attempted to write over unexpired label. 050 Buffer size smaller than MPRU for read data function. 051 Tried to write two consecutive tape marks. 052 Data in LRU array after end of group. 053 Buffer length is less than MPRU. 054 Tape unit not assigned to any user. 055 All hardware paths to tape unit are down. Tape I/O Errors Code • B-4 Significance 101 Tape that is unlabeled should be labeled. 102 Tape that is labeled should be unlabeled. 105 Write parity error irrecoverable. 106 Unrecognizable label group. 107 Header label fields do not match. 108 Record fragment encountered. 109 ATS software error. 110 Unexpected load point detected. 111 Read parity error unrecoverable • 60459420 F Table B-2. Tape Error Codes (Sheet 3 of 4) Tape I/O Errors Code Significance 112 Unrecognizable trailer label. 113 Cannot read label group. 115 ATS hardware error, see hardware status. 116 Position uncertain, ready dropped. 117 Unrecoverable erase parity error. 118 Unrecoverable tape mark parity error. 120 Unit reserved by other controller. 122 Tape mark write verify failure. 123 Blank tape encountered during read. 125 Tape repositioning error; block ID mismatch. 126 Tape repositioning error; invalid block ID. 128 Channel malfunction I/O suspended by driver. 129 Multifile position uncertain. 131 Dev ID burst fault. 132 Dev tape cleaner fault. 135 Tape unit switched offline. 136 No write enable ring in reel. 137 Controller not capable of requested density. 138 Unexpected error returned by ATS controller. 139 Software interface error between NADs. 140 TAD hardware error. 141 Write verify error. 142 Unit remained busy after rewind. 143 Unit dropped ready during rewind. 145 Illegal user level number. 60459420 E Remount on any unit. Remount on any unit. B-5 Table B-2. Tape Error Codes (Sheet 4 of 4) Tape I/O Errors Code B-6 Significance 146 Label reposition error. 147 Unit reset status active, position uncertain. 148 Tape label not multiple of 80 characters. 149 Unit is not ready at reserve time. 150 No file mark after EOF1. 151 Missed file mark. 152 No label block after file mark. 153 VOL1 not detected after load point. 160 Encountered two tape marks in reverse. 170 No current block count given for fund position. 171 No file mark or load point on latest block ID. 172 No label found on labeled tape. 173 Can~ot 174 Tape mark encountered, position found. 175 Compare count is over block ID count. find position in find position. 60459420 E c GLOSSARY Access Batch Processor A system utility that initiates and controls batch jobs. Control statements that are file names cause the files named to be executed as controllees of the batch processor. Other control statements result in actions taken by the batch processor alone. A parameter that specifies the read, write, append, modify, and/or execute access desired for a file at the time the file is opened or created. The system grants access only if the appropriate field of the file index table allows such access. Account Block Block The amount of system resources accumulated per charge number. A contiguous 512-word quantity starting on an even 512-word boundary. The block is the unit used for expressing file and memory lengths. Account Identifier One to eight characters indicating who is to be charged for system resource usage attributable to a user number. Bound Implicit Map Abnormal termination control. Byte Part of the minus page of an executing file that relates virtual addresses with physical mass storage addresses. ATC ATS A sequence of ~ bits that is a subdivision of a word and represents a single character. Advanced tape system. Batch Dayfile A file produced by the batch processor for a batch job that gives a history of the job. Information on the file includes the time various control statements began execution and any error or status information produced by system utilities. The dayfile is printed as the last part of job output. CAT Currently active table (T CAT) used by RHF processing. This is virtual system table. a Central Processing Unit (CPU) The computational facility of VSOS. Charge Number Batch Job A series of tasks that is executed as controllees of the batch processor. 60459420 F Combination of the account identifier and project number that is to be charged for system resources. C-l Checkpoint A system feature that captures a task and any of its controllees at some point in execution so that the task can be restarted from that point. In a FORTRAN program, checkpoint is called by the file name CHKPNT. DB Descriptor block table. Data Base The constants and variables used by a routine, not including entities declared to be in common. Controllee Default Project Number A task called into execution by a controller. Controllee Chain A linked series of tasks that results when one task brings another task into execution. That task can, in turn, initiate another task. As many as nine levels of tasks can be involved. The highest level is level 1; the lowest is level 9. A project number that is assigned to a user number as default. Whenever a user executes a job or interactive session, the system resources accumulated will be charged to the default project number if in existence, unless the user supplies a charge number within the job or interactive session. Descriptor Block Number The tasks in the chain are not run concurrently_ When a controller starts a controllee, the controller is suspended until the controllee returns control to it. Controllee File Refer to Virtual Code File. Controller A task that produces another task. A relative term that indicates that a member of a controllee chain that has a controllee task attached. A controller might be a control lee of another task. The batch processor is one controller that has no controller (that is, a level-1 task). A unique number associated with the program until it terminates or is disconnected. This number is the key link between the operating system and an executing program. DFBM Data flag branch manager. Drop File A file created by the system for modified pages of an executing task, free space, and write-temporary files. Drop file names are formed by the system shifting the controllee file name right one character and prefixing it with a digit that identifies the level (1 through 9) in a control lee chain. CPU Drop File Map See Central Processing Unit. CRT Currently running table (T CRT) used by RHF processing. This is a-virtual system table. C-2 Part of the minus page of an executing file that relates virtual addresses with physical mass storage addresses. An entry is made in the drop file map every time a free-space reference is made by the executing code. 60459420 G Dynamic Stack File Type A category that defines file structure from a system standpoint. File types are physical, virtual data, and virtual code. The stack that resides in free space. All registers are saved on subroutine calls in the dynamic stack. EBCDIC Free Space Extended binary coded decimal interchange code. Space in memory available for use that gets paged to and from the drop file. The range for free space is #4000 up to #7FFFFFFFFFFF. EOF End of file. FST EOG File segment table. I End of group. Implicit Input/Output EOI A means of accessing a mass storage file in which the system brings a page of the file into main memory in response to a reference on that page. Contrast with Explicit Input/Output. End of information. Epilogue I A set of instructions executed at the exit of a subroutine that restores registers and resets conditions. Input/Output Connector (IOC) An entry in a minus page that links a file with a task for input/output purposes. ERS Efficient run size. Invisible Package Explicit Input/Output A means of accessing a mass storage or tape file in which data is buffered under program control. Contrast with Implicit Input/Output. A hardware feature that contains the current address and control information for a task. IOC I See Input/Output Connector. F~E File access directory entries. IQM File Input queue manager. A collection of data that can be accessed by file name. In the absence of an adjective such as terminal or tape, all references to files in this manual imply mass storage files. JDN Job descriptor number. JDT File Index Table A system table that holds all information relating to active user's files and their characteristics. 60459420 F Job descriptor table. Job Refer to Batch Job. C-3 Job Block Local File A private file that is destroyed by the system after termination of the batch job or interactive terminal session that creates it. The amount of resources accumulated for the duration of the job. Labeled Tape A magnetic tape with labels conforming LRU to American National Standard X3.27-1978, Magnetic Tape Labels for Information Interchange. Logical record unit. Main Memory Large Page Memory associated with the central processing unit from which instructions can be executed. Also called MCS. 128 small pages; 65,536 contiguous words of 64 bits. Last-Group-File Map Refer to Bound Implicit Map or Drop File Map in chapter 2; also MAP system message (chapter 5). Identifies the member of an output-file-family which contains disposition information for QTF. Mass Storage File LCN A file management category that indicates Loosely coupled network. no special processing after task termination. In a general sense, mass storage indicates disk-resident files, as opposed to magnetic tape or terminal files. Level Depending on context, can refer to the security level of a file, the level of a file in the controllee chain, the level of a routine involved in an interrrupt, or the level of protocal in RHF. For the first and second meanings, refer to Security Level and Controllee Chain. Master Project Number With respect to interrupt processing, level 0 refers to the normally executing routine. Level 1 refers to the interrupt routine when it is in execution. Master User One to three characters (the first three nonspecial characters of a project number) to be assigned to a mass storage file. A user who has been designated to be able to audit any user files with a specific account identifier. Library A file of modules, in a format produced I MCS by the system utility OLE, that can be used to satisfy external references during loading. See Main Memory. MCU LID I C-4 Maintenance control unit. Logical identifier. The name specified by a user to designate a remote host to be accessed through the Remote Host Facility. MDI Marginal drive indicator. 60459420 F Message Output-File-Family Refer to System Message. A set of files residing on User-6 that was generated as the output of a batch job or as the output of an MFQUEUE. Minus Page The first page of a virtual file used by the system to hold items such as the invisible package, input/output connector information, and maps of defined virtual space. Drop files can also have a second minus page containing overflow input/ output connector and map information. Ownership The term for the type of permanent file catalog to which a file belongs. Ownership indicates whether a file belongs to a private user, a pool, or the system (public). MODDROP Pack File Index (PFI) A management category for implicitly opened files that indicates a file is read-only on mass storage. Modifications to the file are retained in the drop file (write-temporary) and do not alter the file image. I A table entries control on that of 16-word file index table which exists on each pack to and describe the files located pack. PAD NAD Pool access directory. Network access device. Page Nonprivileged User number which does not have the privileged attribute. Refer to Privilege. The unit by which main memory is managed; a block of contiguous 512 64-bit words. Can be a large page of 128 blocks or a small page of 1, 4, or 16 blocks. Object Code File Page Fault A file generated by compilation or assembly of a source language program that can be used by the loader to produce an executable file. Contrast with Virtual Code File. OLE Reference by virtual address to a page not currently in main memory, causing a program interrupt and paging in. Paging In System utility that creates and modifies a file in library format or modmerge file format. Operation to move a page from auxiliary memory to main memory. Paging Out Output File A file management category that indicates a file is destined for print or punch equipment. Also, a generic term for a file being written, as opposed to an input file being read. 60459420 F Operation to move a page from main memory to auxiliary memory. Permanent File A private file that remains in the system after termination of the batch or interactive session that creates it. C-5 I Prologue Physical Data File A set of instructions executed at the entry to a subroutine that swaps registers and sets initial conditions. A file type that indicates a file containing nonexecutable data only. Physical Memory Address PRU Address of a page in main memory. called physical address. Also PID Physical record unit. Public Files Physical identifier. The unique name used by the Remote Host Facility to designate an individual host system. I I Files considered to be system owned. They belong to user number 000000. Public files are accessible to all users. Pool Register File Block One mechanism for file sharing on VSOS. A pool is a file set created and maintained by a pool boss. More than one user number can access a pool as determined by the PACCESS request for the pool. The second block of a virtual code file which contains register contents when a task is not executing in the cPU. RHF Pool File An ownership category that indicates a file can be accessed by any privileged task and, after PATTACH, by any task running under a user number the pool boss authorizes by using PACCESS. Remote Host Facility. RHFMT Remote Host Facility mainframe table (T_RHFMT) • RHFT PP Remote Host Facility table (T_RHFT). Peripheral processor. SAE Private File Standardized accounting enhancements. An ownership category that indicates a file can be accessed either by a task running under the user number under which the file is stored, by a privileged user, or by another user who has been given permission by the owner. Privilege (User) An attribute granted a user number which allows access to all permanent files in the system and to some operating system functions. Scratch File A management category that indicates a file is to be destroyed upon termination of the task that created it. Security Level Attribute of a file, task, job, or user number used to prevent unauthorized data access. The eight security levels are numbered 1 through 8, from least to greatest security. Project Number SHRLIB 1 to 20 alphanumeric characters (including the special characters * and -) indicating to which project, within the account identifier, the system resources are to be charged. C-6 The area of point F virtual memory reserved for shared library routines (virtual bit address #800000000000 IIBFFFFFFFFFFF) • 60459420 F I SIT System Message The means by which the operating system and user tasks communicate with each other. System messages are calls to the virtual and resident systems. System intialization table. Small Page One, four, or sixteen blocks, where a block is 512 contiguous 64-bit words. Source File A generic term for a file containing information used by a utility or other task whose specific meaning depends on the context of its use: the control lee file associated with a drop file, for instance, is termed the source file. In an UPDATE utility context, a file produced by UPDATE that would allow recreation of a new program library on a subsequent creation run. In the FORTRAN context, the input program text ~s called the source. System Time Unit (STU) An installation-defined unit used for allocating system resources. The unit might incorporate tape use/access, number of tape functions, number of disk accesses, number of pages transferred to or from disk, and CPU usage in microseconds. An example of STU is time in microseconds of CPU use. Refer to System Billing Unit. Task An executable program. TTY Teletypewriter terminal unit. SPT System processor table. virtual system table. This is a UAT User activity table. System Billing Unit (SBU) An installation-defined unit used for charging of system resource usage. The unit may incorporate tape use access, number of tape functions, number of disk accesses, number of pages transferred to or from disk, and CPU usage in microseconds, depending on installation parameter settings. An example of SBU is the time in microseconds of CPU use. Refer to System Time Unit. System Dayfile I A file of all significant events in the system, including user dayfile entries, interactive commands, batch processor errors, privileged system task errors, and login errors. System Interface Language (SIL) Set of subroutines callable by user programmers. Each subroutine formats and issues one or more system messages. 60459420 F UEP User error processing. User Number Six digits that identify a file owner or user of system resources. One task can be in execution for a given user number for each suffix at one time. User Project Control A user attribute, if set for a user number, the charge number must be specified for the executing job or the user must have a default project number assigned. Virtual Address Address that refers to virtual memory and is translated, through the page table, into a physical address. C-7 I Virtual Address Space VSDT Virtual system debug tool. The set of virtual addresses that belong to a specific active task. VSN Virtual Code File Volume serial number. A file type that indicates an executable file having a minus page as its first page and a page 0 as its second page. The file must be created by the loader. A virtual code file is also called a controllee file. Contrast with Object Code File. Virtual Memory A concept by which memory can be addressed as if it were as large as needed. The system manages correspondence between the user memory addresses and physical main memory. Virtual Range Range of virtual addresses. Virtual Address Space. VAA Variable rate accounting. Same as VSOS Virtual Storage Operating System. Word A 64-bit division of main memory or mass storage. Bits are numbered 0 through 63, from left to right (most significant to least significant). Working Set Basis for managing the amount of physical memory available to a task. It is the portion of a task's virtual addresa space that is referenced most frequently during a window of the execution of the task. Working Set Size Number of 512-word blocks in the working set. V~ Variable rate factor. VRI Write-Temporary Variable rate index. C-8 Refer to MODDROP. 60459420 F I REGISTER FILE CONVENTIONS D The VSOS assumes some conventions regarding the handling of the register file, an area containing 256 registers numbered from #0 to #FF. Some of the registers are used by the operating system for specific purposes, and others are available solely for the purposes of the user. One register file area of particular importance is the register save area, which is saved and restored each time an external procedure call is made. REGISTERS The register file is subdivided into five major areas, as shown in figure D-l. The environment register area and the working register area are jointly referred to as the register save area, registers that are saved on calls to external procedures. MACHINE REGISTERS These registers include registers #0, #1, and #2. Register #0 contains machine zero (machine zero is described in the CYBER 200 Computer System Hardware Reference Manual). Registers #1 and #2 are used by Data Flag Branch Manager. When a data flag branch occurs, the hardware sets register #1 to contain the address of the next instruction that would have executed had the data flag branch not occurred. The data flag branch causes transfer of control to the address contained in register #2. This address is set by the user (most likely, a software product such as DEBUG or FORTRAN runtime). TEMPORARY REGISTERS A user program can utilize two areas for temporary storage, addresses, or data. The two areas are from register #3 to #13, and from #20 to the end of the register save area. The lower area (#3 to #13) is large enough for execution of short subroutines that do not call other subroutines (such as SIN and COS) completely within the temporary space, eliminating the need for saving and restoring the register save area when short modules are needed by a program. The upper area (#20 to an upper limit specified by the caller), which is large enough to hold a variety of user procedures, cannot be modified by the callee. If the callee needs to use registers in the range of #20-#FF, it must save and restore the caller's copies of those registers. 60459420 E D-l GLOBAL REGISTERS The contents of the global registers are universal to all programs including VSOS. contents can be assumed by all modules. The The global registers contents are as follows: Contents Register 1114 The constant #20. 1115 The constant #lA. 1116 The constant 111. 1117 The parameter descriptor. The number of parameters being passed during a call is contained in the leftmost 16 bits; the virtual bit address of the parameter list is stored in the rightmost 48 bits. Figure D-2 illustrates how parameters are passed to routines. The parameters are passed by address. f118, 1119 Function results obtained from a called function. For example, the result of a trigonometric or exponential function would be placed in register 1118. Register 1119 could be used when a result has two components (for example, the imaginary part of a complex number whose real part is returned to register 1118). Registers 1114 and #15 are used to swap the register file in/out at prologue/epilogue time. D-2 60459420 E o 63 \ o machine 0 64 Machine Registers data flag branch exit address 64 2 data flag branch entry address 64 3 .1. Temporary Registers I., 7 13 . 14 20 16 64 15 1A 16 64 16 1 64 number of parameters 17 16 18 pointer to list of parameter addresses (parameter descriptor) Global Registers 48 function result register 1 64 19 function result register 2 64 1A return address 64 1B undefined 1C register count 1~ register count 1D 1E 16 16 undefined 16 1F address of top of stack (dynamic stack pointer) address of current program's register save area (current stack pointer) address of caller's register save area (previous stack pointer) address of first word of callee's data base (link register) 4R 48 Environment Registers 48 48 data flag table pointer for DFBM 64 20 i. 7 J. 7 Working Registers FF Figure D-l. 60459420 E Register File D-3 o 63 number of parameters Register #17 16 ~ pointer to list of parameter addresses (parameter descriptor) ./ --- length (in words/bytes) 16 address of parameter 1 48 length 2 address of parameter 2 48 16 3 length address of parameter 3 48 16 7 n 48 : length address of parameter n 48 16 Figure D-2. List of Parameter Addresses I NOTE I Only descriptors or type character parameters have meaningful values in the length field in the parameter list. If the parameter is an address, then this address is in the parameter list; for example, an array. D-4 60459420 E ENVIRONMENT REGISTERS The environment registers consist of the minimum set needed to support the sharing of code in a virtual system and the general requirements of recursive, reentrant execution. These registers, along with a number of working registers, are the register save area. Each time a caller releases control to a callee, a new environment register/working area is established for the callee. A stack structure is used for this. The environment registers include: Register Description lilA Return register. Contains the virtual bit address of the location in the caller's program to which the callee's program normally returns. 1IlB Dynamic stack pointer. Contains the relative bit address of the next available free location in the dynamic stack. It is the caller's responsibility to leave the address of the dynamic stack pointer on a double-word boundary. The dynamic stack pointer is always advanced prior to storing data into that region or before addresses pointing to that region are calculated. If IC Current stack pointer. Contains the length and relative bit base address of the region (the stack frame) in the dynamic stack where a caller wants its registers to be saved. The length of that region is the number of environment registers (6) plus the number of work registers (possibly none) needed for dynamic working storage for the program. Before making an external call, the caller must set the length portion of the current stack pointer to the number of registers to be saved by the callee. The current stack pointer is set by the caller, but it is the callee that establishes the new stack frame. A minimum of six registers must be saved (the number of environment registers). If I D Previous stack pointer. Contains the number of registers and the relative bit base address in the register file where the caller's register save area has been saved. The callee's previous stack pointer is an exact copy of the caller's current stack pointer. If IE Link register. At subroutine entry contains the virtual bit address of the data base allocated to the module by the loader. The caller passes to the callee the address of the callee's data base in the link register. If IF Pointer to the data flag table for the data flag branch manager (DFBM), for further information refer to the FORTRAN reference manual. The environment registers are used and modified by program prologues and epilogues. An assembly language programmer must write an appropriate prologue/epilogue. Compilers will automatically generate the necessary prologue/epilogue. Compilers will automatically generate the necessary prologue/epilogue to ensure that the caller's register save area is saved when an external routine is called. 60459420 G I D-5 REGISTER SAVE AREA The register save area is only those register resident variables that are saved/restored. Many permanent variables/addresses are not register resident, but are memory resident. Nothing must be done to preserve these. When an executing program has called an external program, the instructions of the conventional prologue of the called program save the caller's register save area. (See discussion below about prologues.) The register save area is stored and saved as an element of a conventional chained stack in the register file. A stack element, called a stack frame, is diagrammed in figure D-3. I environment registers working registers temporary/dynamic work space } } } Figure D-3. register #1 d - previous stack frame - current stack frame - next stack frame (available dynamic space) register #1 c register #1 b Stack Frame The initial size of a frame, defined by the difference of the values of the current stack pointer (the stack frame base) and the dynamic stack pointer, does not include temporary work space. Any time temporary work space is needed, the program can increment the dynamic stack pointer and in this way obtain space. Dynamic space use increases (frames are pushed onto the stack) until the lowest level called program has been executed; then, as the returns are encountered, the space is made available again in reverse order to the calls (frames are popped from the stack). D-6 60459420 E EXTERNAL PROCEDURE CALL SEQUENCE The standard sequence of an external procedure call is one of the following: RTOR BSAVE ZZ, filE filA, YY Load data base address. Jump to subroutine. LOD IS LOD BSAVE [XX,JJ] ,YY JJ, 1 [XX,JJ] ,filE filA, YY Load subroutine address. Enter length Load database address. Jump to subroutine. LOD BSAVE STO [XX,JJ] ,filE filA, YY [XX,QQ] ,YY Load subroutine address. Jump to subroutine. Store address of subroutine. LOD ELEN BSAVE STO [XX,JJ] ,filE fllC,pp filA, YY [XX,QQ] ,YY Load database address. Enter length. Jump to subroutine. Store address of subroutine. Where the register number for YY is one less than the register number for ZZ. YY is the external subroutine address register, ZZ is the external subroutine data base register, and XX is a register containing an address within a data base or common block. PROLOGUE SEQUENCE There are basically at least three types of prologues: 1) The traditional prologue approaches the one shown earlier in this chapter in figure D-3 in that it does swap out/in the register file. However, only one swap is used. 2) A zero swap sequence (the FORTRAN compiler may generate such a prologue if optimization is selected) can be used if no registers in the range UIA to UFF are to be used by the callee. 3) An in between sequence whereby stores are used to save a few registers and loads to initialize them for the callee. This is a special case of 1), but may be used for performance reasons instead of using the SWAP instruction. 60459420 G D-7 I The prologue of the called procedure includes the following instructions: (type 1) Instruc tion Description 2AIEOOxx Set the number of registers to be loaded in register HIE. 78IBOOIO Save callers dynamic stack pointer. 78IFOOI2 Save callers data flag table pointer. 781COOll Save callers current stack pointer. 7DIE15IC Swap: saving caller's registers, loading callee's registers. 3EIBxxxx Set new dynamic space required. 7811001D Move callers current stackpointer to callee's previous stackpointer. 7810001C Move callers dynamic stackpointer to callee's current stackpointer. 63IBIOIB Update dynamic stack pointer. 78I200IF Restore contents of data flag pointer. 2AICOOxx Set number of registers to be saved on subroutine call. Another example of a prologue follows: Instruction D-8 Description 781A0005 Save return address. 78IB0006 Save dynamic stack pointer. 781C0007 Save current stack pointer. 781E0008 Save address of callee's data base. 3E09XXXX Number of words (xxxx) to be reserved. 6309IEOA Reserved xxxx words to callee's data base. 2AOAOOYY Set number of registers to be saved (yy). 781FOOOB Save data flag table pointer. 7DOAI5IC Swap restored yy registers from the callee's current stack starting with register IIA. 780500IA Update the return address. 3E0500YY Set number of registers saved (yy). 7B0506IC Update current stack pointer yy in the length field dynamic stack; pointer's address becomes current stack pointer's address. 30050605 Change words (yy) to bits. 60459420 F Instruction Description 6305061B Reserved (yy) bits to dynamic stack pointer. 7808001E Update callee's data base. 78070010 Put current stack pointer to previous stack pointer. 7BOOOB1F Update data flag table pointer. 781B0024 Save dynamic stack pOinter (temporary register). 78170021 Save parameter descriptor address. Some programs can perform their subroutines entirely within the temporary registers, and do not make external calls. Such routines need not contain a prologue and can be assembled or compiled to omit it. EPilOGUE SEQUENCE The epilogue of the called procedure should be as follows; however, instructions 7E1F0005 through 3B060000 are required only when using the DFBM: Instruction Description 70101500 Using the length and address of the previous stack pointer, restore the register file from the callee's current stack, starting with register #lA (the environment registers). 7E1F0005 Load word 0 from the data flag table to which register #1F points (ON_UNIT). BE03180100000800 Enter the data flag register constant with the SFT, JIT, BKP, and enable bits set. 3B030004 Load and store the data flag branch register. BE03180100000FEO Enter the data flag register constant for an AND operation, which ensures that previously set free and monitor flags remain set. 20030406 Perform a logical conjunction (AND) of the current data flag register with the constant for free flags and monitor flags. 2E060506 Perform a logical disjunction (Inclusive OR) of the current data flag register plus any free or monitor flags with word o from the data flag table containing the data flag settings for the caller. 3B060000 Load the data flag register with the setting. 3340001A Jump to the return address specified in register #lA. 60459420 F D-9 I E CYBER 205 INVISI8LE PACKAGE The invisible package is a hardware convention that contains the address and control information required to begin a new job or to continue a job that was interrupted during execution. Each job is associated with an invisible package. When the CPU switches from monitor mode to job mode, the invisible package for the corresponding job is automatically loaded from main memory, beginning at the addre$s assigned by the monitor. The invisible package data is loaded into the appropriate registers in the CPU. When the CPU switches from the job mode back to the monitor mode, as in the case of an interrupt, the contents of the corresponding registers are automatically stored in main memory as the invisible package for that job. The contents of the invisible package are shown in figure E-l. For a description of fields not described in figure E-l, refer to the CYBER 200 Model 205 Computer System Hardware Reference Manual. Because the fixed portion of the absolute word address is divided within the hexadecimal character, bits 52 through 55 are shown as their binary equivalents. o 63 o t t program address t Op IWRP breakpoint 43 16 2 S~ RI p key 0 sP .... WRI I\J~ RI key 1 12 O~ RI key 2 12 VEX microcode 3 5 43 16 4 key 3 12 12 t 40 2 VFJ1 t 10 2 VFJ2 10 data flag register 64 JFL 1 5 64 6 F G 8 t vector program address 43 8 5 JFL2 7 64 8 job interval timer job/vector instruct status 32 32 JFL3 9 64 current instruction A 64 JFL4 B 64 tUndefined (must be set to 0). Figur-e E-l. 60459420 H Invisible Package Contents (Sheet 1 of 4) E-l , 0 63 string partial data or function codes C link instruction 32 32 JFL5 D 64 access interrupt cause E access interrupt address 16 48 JFL6 F 64 TFOO 10 TF10 16 11 48 TF01 TF11 16 12 48 TF02 TF12 16 13 48 TF03 TF13 48 16 14 TF04 TF14 16 15 48 TF05 TF15 16 16 48 TF06 TF16 16 17 48 TF07 TF17 16 48 18 partial sum or ninth IC 64 19 partial sums 1A pipes function control for link instruction 18 partial sums J. 7 27 partial sums Figure E-l. E-2 Invisible Package Contents (Sheet 2 of 4) 60459420 E Word 1 Description Breakpoint usage bits: o W R 2 Not used and must be O. Check for breakpoint compare on write operands. Check for breakpoint compare on read operands. Usage lockout bits for each key: SP Bits 0 and 16 together define a small page size for all small pages; bits 32 and 48 are not used and are set to 0: Bit 0 Bit 16 0 0 0 1 0 1 1 1 W R I 3 All small pages are 512 words. Undefined. All small pages are 2048 words. All small pages are 8192 words. Lockout CPU write operations. Lockout CPU read operations. Lockout CPU instruction references. Vector execution microcode conditions: 0-31 32 33 34 35 36 37 38 39 Figure E-1. 60459420 E De,scription Not used and must be set to O. Interrupt FF (signal to pipes). Link instruction in execution. Link instruction R bit 3. Link instruction R bit 4. CC instruction in execution. Not used and must be set to O. Vector block scalar use of load/store registers. Flag 1. Invisible Package Contents (Sheet 3 of 4) E-3 Word 8 Description Job/vector instruct status bits: o 1 2-11 12 13 14 15 16 17 18-19 20 21 22-25 26 27 28 29 30,31 C Link instruction codes: 0-15 16-31 E , Link (56) instruction F and R codes. Link Fl instruction F and G codes. Access interrupt cause bits: 0-11 12 13 14 15 18 Vector restart. Not parallel operation. Undefined and must be set to O. Stall bit (set for no data processed). D8 or D9 execution started. Undefined and must be set to O. EBCDIC when set, ASCII when clear. SCR code bit 3 (exit at vector instruction termination). Select force of extension field length. Vector instruction register file update disable bits. D8 and D9 multiple match flag. String restart bit (old data flag). Undefined and must be set to O. R-record FF. DA-DC toggle code bit O. DA-DC toggle code bit 1. DA-DC toggle code bit 2. Undefined and must be set to O. Not used and must be set to O. Associative work not in page table. Write operand violation attempted. Read operand violation attempted. Read instruction violation attempted. Partial sum or ninth IC:t 0-63 0-15 16-63 Partial sum for DX instruction or special broadcast quantity for link or CC instruction. Output item count for AX or C8 to CB instruction. C base address for AX instructions. tThese bits are undefined in all other applications. Figure E-1. E-4 Invisible Package Contents (Sheet 4 of 4) 60459420 E PROGRAM S1 A1ES F The current disposition of a program is indicated by a number that is carried in the descriptor block for the program. This code can be gained by the privileged EXECUTE OPERATOR COMMAND message (f=#0021). Codes having specific definitions are shown in table F-l. have these general descriptions: Codes not defined in the table Description Code III 119 Task is in the alternator. IIA IIF Task is not in the alternator, but is partially in memory. 1110 IIlF Task is not processing a message and is waiting. 1120 112F Task is processing a message and is waiting. 1130 - 113F System is performing functions for a program. 1140 - 1/4F Miscellaneous. IIB9 - IIBF State is indicated by subtracting #80. Tasks in a terminal or nonterminal dump state have 1180 added to their original state when they are being dumped to disk; for example, 113D + 1180 = #BD. Table F-l. Program State Codes (Sheet 1 of 2) Code Description 1 Task put in an alternator slot from the descriptor block load queue. 5 Task alternator unblocked after new slot time. 7 Outstanding explicit I/O requests and interrupts have completed. 11 Waiting for an alternator slot. 13 Waiting for entry in the explicit I/O buffer. 14 Waiting for the mainframe. 16 Waiting for nine-track tape assignment. 17 Waiting for system call completion. 60459420 E F-l Table F-l. Program State Codes (Sheet 2 6f 2) Code F-2 Description 18 Waiting for I/O completion. IE Waiting for the controllee to get on disk. IF Waiting for the controllee to get on disk. 20 l-laiting for a message from the controller. 21 Waiting for a message from the controllee. 22 Reserved for installation use. 23 Waiting for a message from the operator. 24 Waiting for an operator type in. 26 Waiting to send a message to the controllee. 27 Waiting to send a message to the controllee. 28 Reserved for installation use. 29 Waiting to send a message to the operator. 2A Waiting to send a message to the teletypewriter. 30 Execute line in, descriptor block and keys assigned; message sent to load file management. 38 Waiting for termination of controllees at lower chain levels. 39 Terminate and kill all pages. 3A Nonterminal dump. Suspend in state = #41 after completion. 3B Program dump, accounting finished; cleanup done; code + 80 16 accounting done; dump I/O. 3C Dump finished, clean up to go. 3D Terminal dump error. 3E Terminal dump scheduled, no error. 3F Nonterminal dump scheduled. 40 Suspend for a time period. 41 Suspended by the operator or the system. 60459420 E TAPE FORMATS G The online tape subsystem supports NOS and NOS/BE internal tape formats I and SI, respectively. It supports V, a variable PRU tape format, and NV, which is equivalent to lower CYBER S or L. In addition, a new tape format, large block format LB, is supported. For tape formats I, SI, and LB, a physical structure is superimposed over the user-declared SIL logical file structure (RT) by the operating system. When the user issues a write, the user supplies a logical record unit array. Each entry in the array specifies the length of the logical tape record (LRU) and whether an end of file should also be written. After a read operation, the system returns information to the logical record unit array: number of bytes read, logical tape record status, end-of-group status, and end-of-information status. Observe that end of LRU, end of group, and end of information may have different meanings, based on the different tape formats. The characteristics of each of the tape formats follow. I (INTERNAL) FORMAT Figure G-l shows the characteristics of the I tape format. Characteristic Description Header Labeled or unlabeled. PRU size Actual data block size that can range from 8 to 3840 bytes. All PRUs except those containing labels include a 48-bit PRU terminator formatted as follows: o I 63 byte cau nt 121 In PRU number Description Field byte count Total number of bytes in the PRU, including the PRU terminator. PRU number Number of PRUs since the last HDRI label. In Leve 1 numbe r: o F End of LRU. End of group. User-specified maximum PRU size (MPRU) has no meaning. Figure G-l. 60459420 E I Tape Format (Sheet 1 of 2) G-l Description Characteristic Beginning of Information For labeled tapes, a tape mark preceded by a beginning-of-volume or beginning-of-file label group is considered the beginning of information. For unlabeled tapes, load point is considered the beginning of information. End of LRU Any PRU with fewer than 512 CYBER 170 central memory words of data is considered an end of LRU. During a write operation, the level number field of the PRU terminator contains the level number obtained from the logical unit array; during read operations, the system returns an end-of-LRU status and the contents of the PRU terminator level number field. If the level number is 17 (octal), the system also returns an end-of-file status. Some PRUs may consist only of a PRU terminator. End of group Any PRU consisting of a PRU terminator only, with a level number of 17 (octal) is considered an end of group. The system ensures that an end of LRU always precedes an end of group by writing, if necessary, a PRU terminator with a level number of 0 prior to the end of group. End of information A tape mark followed by an EOFI label is considered the end of information. This trailer sequence is generated by the system on labeled and unlabeled I, SI, and LB format tapes. The system issues a label content error if it encounters a tape mark without a valid label following it. End of reel If, during a write operation, the system senses the end of tape, it writes a trailer sequence following the PRU on which the EOT was sensed. This trailer sequence consists of a tape mark followed by an EOVI label followed by three tape marks. The next PRU is written on the next reel. During a read operation, the EOT is observed and the system transfers to the user the PRU on which the EOT was sensed plus all following PRUs until a trailer sequence is recognized. Reading resumes on the next reel. Noise Not applicable. Figure G-l. G-2 I Tape Format (Sheet 2 of 2) 60459420 E SI (SYSTEM INTERNAL) FORMAT Figure G-2 shows the characteristics of the SI tape format. Description Characteristic Header Labeled or unlabeled. PRU size The PRU size can range from 8 to 3840 bytes. Any PRU smaller than the maximum size except those containing labels contain a 48-bit special terminator. This terminator has the following format: 552335522754 (octal) Field In Description Level number: O-E F End of LRU. End of group. Beginning of information For labeled tapes, a tape mark preceded by a beginning-of-volume or beginning-of-file label group is considered the beginning of information. For unlabeled tapes, load point is considered the beginning of information. End of LRU Any PRU containing fewer than 512 CYBER 170 central memory words represents an end of LRU. If an LRU consists of an exact multiple of 512 central memory words, the PRU that denotes the end of LRU consists solely of a special terminator. During write operations, the level number field of the special terminator contains the level number obtained from the logical record unit array; during read operations, the system returns an end-of-LRU status and the contents of the special terminator level number field. If the level number is 17 (octal), the system returns an end-of-file status. End of group Any PRU consisting of only a PRU terminator with a level number of 17 (octal) is considered an end of group. The system ensures that an end of LRU always precedes an end of group by writing, if necessary, a PRU terminator with a level number of 0 prior to the end of group. Figure G-2. 60459420 E SI Tape Format (Sheet 1 of 2) G-3 Characteristic Description End of information A tape mark followed by an EOFI label is considered the end of information. This trailer sequence is generated by the system on labeled and unlabeled I, SI, and LB format tapes. The system issues a label content error if it encounters a tape mark without a valid label following it. End of reel If, during a write operation, the system senses the end of tape, the system writes a trailer sequence following the PRU on which the EOT was sensed. This trailer sequence consists of a tape mark followed by an EOVI label followed by three tape marks. The next PRU is written on the next reel. During a read operation, the EOT is observed and the system transfers to the user the PRU on which the EOT was sensed plus all following PRUs until a trailer sequence is recognized. Reading resumes on the next reel. Noise Not applicable. Figure G-2. G-4 SI Tape Format (Sheet 2 of 2) 60459420 E LB (LARGE BLOCK) FORMAT Figure G-3 shows the characteristics of the LB tape format. Characteristic Description Header Labeled or unlabeled. PRU size Actual data PRU size that can range from 0 to 32768 bytes. All PRUs except those containing labels include a 48-bit PRU terminator formatted exactly like the 1 tape format terminator. User-specified maximum PRU size has no meaning. Beginning ot information For labeled tapes, a tape mark preceded by a beginning-of-volume or beginning-of-file label group is considered the beginning of information. For unlabeled tapes, load point is considered the beginning of information. End of LRU Any PRU with fewer than 4096 central memory words of data is considered an end of LRU. During a write operation, the level number field of the PRU terminator contains the level number obtained from the logical record unit array; during read operation, the system returns end-of-LRU status and the contents of the PRU terminator level number field. If the level number is 17 (octal), the system also returns end-of-file status. Some PRUs may consist only of a PRU terminator. End of group Any PRU consisting of only a PRU terminator with a level number of 17 (octal) is considered an end of group. The system ensures that an end of LRU always precedes an end of group by writing, if necessary, a PRU terminator with a level number of 0 prior to the end of group. End of information A tape mark followed by an EOFI label is considered the end of information. This trailer sequence is generated by the system on labeled and unlabeled I, SI, and LB format tapes. The system issues a label content error if it encounters a tape mark without a valid label following it. End of reel If, during a write operation, the system senses the end of tape, the system writes a trailer sequence following the PRU on which the EOT was sensed. This trailer sequence consists of a tape mark followed by an EOVI label followed by three tape marks. The next PRU is written on the next reel. During a read operation, the EOT is observed and the system transfers to the user the PRU on which the EOT was sensed plus all following PRUs until a trailer sequence is recognized. Reading resumes on the next reel. Noise Not applicable. Figure G-3. 60459420 E LB Tape Format G-5 V AND NV (VARIABLE) FORMAT Figure G-4 shows the characteristics of the V and NV tape formats. Characteristic Description Header Labeled or unlabeled. PRU size No explicit multiple of frames is required. The maximum PRU size may be specified in the MPRU field of the CHANGE FILE system message. If no PRU size is specified in the MPRU fleld t it is assumed to be 32 768 bytes. The maximum PRU size for V format is 48 pages. Beginning of information For labeled tapes t a tape mark preceded by a beginning-of-volume or beginning-of-file label group is considered the beginning of information. For unlabeled tapes t load point is considered the beginning of information. End of LRU On a READ or READSKIP request t each PRU is considered an end of LRU. End of group Tape mark. Observe that this is valid only for the NV format since it is non-ANSI. End of information If the tape is unlabeled t double tape marks located before the end-of-tape reflective marker denote end of information. If the tape is labeled t the end of information is a tape mark followed by an EOFI label. End of reel 1ft during a write operation t the system senses the end of tape t the system writes a trailer sequence following the PRU on which the EOT was sensed. This trailer sequence consists of a tape mark followed by an EOVI label for labeled tapes and tape marks for unlabeled tapes. The next PRU is written on the next reel. During a read operation t the EOT is observed and the system transfers to the user the PRU on which the EOT was sensed plus all following PRUs until a trailer sequence is recognized. Reading resumes on the next reel. Noise Any PRU containing fewer than the specified number of noise size frames is considered noise and is therefore ignored. Figure G-4. G-6 V and NV Tape Formats 60459420 E INDEX Abnormal termination control (ATC) 2-17; 5-97; C-1 Access C-1 ACCESS CONTROL system message 5-165 Access permissions 5-46 Account block C-1 Account identifier C-1 Accounting 8-1 File 8-3 Record format 8-7 Record type and subtype codes 8-3 System messages 5-4 Accumulating statistics 8-2 Active accounting file Blocks 8-5 Format 8-5,7 ADVISE system message 1-7; 5-1,208 Alpha word conventions 5-2 Alternator table 1-2 ANALYZER 7-1 Execute line format 7-2 ANSI labels 4-2 ATC (see Abnormal termination control) ATTACH PERMANENT FILE system message 5-68 *AF file 8-3 Batch Dayfile C-1 Job C-1 Processor C-1 Beta word conventions 5-2 Block C-1 Bound explicit map Directory 2-25 Entry format 2-26 Bound implicit map Directory 2-25 Entry format 2-27 Calculating SBUs (system billing units) 8-30 STUs (system time units) 8-1 Call sequence external procedure D-7 CFO command 5-88 CHANGE FILE ATTRIBUTES system message 1-7; 3-1; 5-53; G-6 60459420 F Changing Accounting rate 5-149 File characteristics 5-53; 6-6 Channel usage statistics records format 8-22 Character set A-I Charge number C-1 Checkpoint C-2 CLOSE FILE system message 1-7; 2-30; 3-3,4; 5~32,38 Closing files 5-32 Code Block table 10-4 Relocation table 10-5 Continuation lines C;I-1,2 Control commands 6-6 Controllee C-2 Chain C-2 Processing system messages 5-3 Execute line 9-1 File C-3 Controller C-2 Conventions for applications 9-1 Core dump 7-1 CPUQ (CPU scheduling queue) 1-3 CREATE FILE system message 1-5,7; 5-8 CRT (see Currently running table) C-2 Cumulative accounting buffer 8-2 Currently running table (CRT) C-2 C5xx calls 1-5 Data flag branch manager (see DFBM) Data item formats 10-9,11,12,13 Debug commands 6-5 Debug symbol table 10-15 Format 10-16 Defining parameters for files 5-8 Descriptor block 1-2 Number C-2 Descriptor format for externals and entry points 10-8 DESTROY FILE system message 1-7; 3-1; 5-14 DFBM (data flag branch manager) C-2; D-1,8 Pointer D-5 Diagnostic entries 8-39 Diagnostics B-1 Diagnostics entries 8-39 Disabling ATC 5-97 Index-1 Disconnecting controllees 5-90 Discontinuous virtual address ranges Disk file accounting records 8-16 Drop files 3-4 Map 2-28; C-2 Entry formats 2-28,29 Dump analysis 7-1 Dynamic stack C-2 Dynamic stack pointer D-5 I 2-27 EDITUD 1-4,5 ENABLE/DISABLE ATC system message 5-97 End-of-file labels 4-15 End-of-volume labels 4-16 Environment registers D-5 EOFI 4-9 Format 4-10 EOVI 4-12 Format 4-13 Epilogue C-3; D-9 Sequence D-9 Error codes B-1 EXECUTE IQM REQUEST system message 1-7; 5-189 Execute line 9-2 Special characters 9-26 Supporting routines 9-1 EXECUTE OPERATOR COMMAND system message 1-4,7; 5-99; F-l EXECUTE PROGRAM FOR USER NUMBER system message 1-7; 5-126.1 Exit force instruction 1-1; 5-1 Explicit input/output 1-5; 2-18; 3-5; 5-26,7; C-3 EXPLICIT I/O system message 1-5,7; 3-5; 5-1,204 10-6 External/entry table Format 10-7 D-7 External procedure call sequence 2-1 FADE File Access 3-2 Characteristics specifications 2-15 Concepts 3-1 Disposition specifications 2-1,14 Extendability 1-5 Management Categories 3-3 System messages 5-3 Map 2-25 Names 3-2 Ownership 3-1 Space allocation 5-4 Index-2 FILE DISPOSITION system message 5-38,61 File header labels 4-15 File I/O 3-5 File index table (FILEI) 1-5; 2-1; 3-1,2; C-3 Entry 1-4 Fields that affect file ownership 3-2 Formats 2-2,9 File segment table (FST) 1-5 File type C-3 Files connected to a terminal 3-4; 5-27,38 First end-of-file label 4-9 First end-of-volume label 4-12 First file header label 4-6 Free space 1-2; C-3 Attachments 2-28 FST (see File segment table) GCR tapes 4-1 GET MESSAGE FROM CONTROLLEE system message 5-83 GET MESSAGE FROM CONTROLLER OR OPERATOR system message 5-27,78,80 GET PACK LABEL AND PFI system message 5-70 GIVE FILE system message 1-7; 3-1; 5-38,43 GIVE UP CPU ON OUTSTANDING RESIDENT I/O OR TIME system message 1-7; 5-1,214 Global registers D-2 1-1 Hardware modes HDRI 4-2,6; 5-168,178 Format 4-7 Hexadecimal conversion tables A-I I (internal) tape format G-l I/O connector (IOC) (see Input/output connector) 2-19; 5-27,204 I/O operation system messages 5-3 Implicit input/output 1-5; 3-5; 5-26; C-3 Information retrieval system messages 5-4 INITIALIZE CONTROLLEE CHAIN system message 5-94 INITIALIZE OR DISCONNECT CONTROLLEE system message 5-90,94 Input/output connector (IOC) 2-19; 5-27,204; C-3 Format For mass storage files opened for 2-19,21 For tape files 2-23 Input/output operation system messages 5-3 60459420 H IQM 1-1,3,4,7; 5-42; C-3 Input Queue Manager (see IQM) Interpretive data initialization table Interpretive relocation initialization table 10-15 Interrupt System messages 5-3 Interrupting programs 5-92 Invisible package 2-16; C-3 Format E-1 IOC (refer to Input/output connector) Job I 10-9 C-3 Accounting records 8-18 Block C-3 Descriptor number (JDN) 5-51; 8-4; C-3 Management tables 2-1 Mode 1-1 Records 8-18 Formats 8-19,20 KERNEL 1-1,2,5; 5-214 Key-dependent parameter format 9-3 5-182· LABEL system message Labeled tape C-4 Labels 4-2 Optional 4-15 Reading 4-2 User 4-16 Writing 4-2 Large page 3-5; C-4 LB (large block) tape format G-5 Left-hand side table (refer to Ihs table) Level C-4 Ihs table 9-11 Formats 9-11,12,13 Pointer configuration 9-10 Library C-4 LINK system message 5-147 LIST CONTROLLEE CHAIN system message 5-74 LIST SYSTEM TABLE system message 5-8,12, 22,26,47,70,72 LIST FILE INDEX TABLE system message 5-22, 40,70 Loader Convention 10-1 Table header format 10-2 Local file C-4 LRU G-1 60459420 H Machine registers D-1 Magnetic tape files (refer to Tape files) Main memory C-4 Map C-4 Map directories 2-25 MAP system message 2-26; 5-28 Mapping in a file 5-28 Mapping out a file 5-28 Mass storage files 2-1; 3-3; 5-26,38; C-4 Master Clock entries 8-6 Project number C-4 User C-4 Maximum working size 1-3 MCU 6-2 Memory Access interrupts 1-2 Allocation 1-2 Dump analysis 7-1 Overcommitment 1-3 Message Communication 1-1 Communication system messages 5-4 Function codes 5-5 Messages 5-5; C-3 Minus page 1-2; 2-16; C-5 File maps 2-26,27 Format 2-17 MISCELLANEOUS system message 5-134; 8-1 MODDROP C-5 Files 3-3,4 Modifying system table 1-2 Module header table Format 10-3 Types 10-4 Module tables 10-3 Monitor mode 1-1 NAD (see Network access device) Network access device (NAD) 1-1 Network usage records 8-20.1 Nonprivileged C-5 Users 3-1,2 Nonstandard labels 4-2 Object code file C-5 Object module 10-3 OPEN FILE system message 1-5,7; 2-30; 3-2; 4-2; 5-17,26,27,178 Opening files 5-17 Operator command execution 5-99 OPERATOR system routine 1-4 Index-3 9-2,3 Order-dependent parameter format 9-4 Order-independent parameter format Output files 3-4; C-5 Ownership C-5 I 2-10; C-5 Pack file index (PFI) Page C-5 Fault C-5 Swapping 1-1 PAGER 1-1,2,3 Paging in C-5 Paging out C-5 D-4 Parameter addresses 9-3 Parameter formats Periodic job records 8-29 8-27 Periodic system records Periodic table 1-2 Periodic virtual system tasks 1-2 Peripheral operating system 1-1 Permanent file C-5 PFI (see Pack file index) Physical data file C-5 Physical files 3-5 Physical identifier (PID) C-6 Physical memory address C-5 PID (see Physical Identifier) Pool C-6 Pool boss 3-2 Pool file 3-1,2; C-6 POOL FILE MANAGER system message 3-1; 5-143 Private file C-6 Privilege flag 1-5 Privilege (user) C-6 Privileged Resident system calls 1-1,5 Status 1-5 System tasks 1-1,2,4 User numbers 1-4 Users 3-1,2 Virtual system calls 1-7 PROCESS SYSTEM PARAMETER system message 1-7; 5-1,212 Processing execute line 9-1 Production files 3-2 Program execution system messages 5-3 PROGRAM INTERRUPT CONTROL system message 5-92 Program states F-l Project number C-6 Prologue C-6; D-5 Sequence D-7 Pseudoaddress vector table 10-19 Entry formats 10-19 Public files 3-1; C-6 Index-4 Queuing 1-2 Q5VRF file 8-33 Q7ENVIRN routine 9-1,5 Format 9-5 Q7KEYWRD routine 9-1,5,7,26 Format 9-9 Q7MODE routine 9-1,5 Format 9-6 Q7PROMPT routine 9-1,5 Format 9-6.1 Read-only file access 3-4 RECALL system message 5-142 Recovery 4-1 PRU 4-1 User error 4-1 Register file Conventions D-l Format D-3 Register file block C-6 Register save area D-6 1-4,6 Remote Host Facility (RHF) REMOVE CONTROLLEE FROM MAIN MEMORY system message 5-86 Required labels 4-2 Resetting breakpoints 6-5 Resident system 1-1 Calls 1-5 Resource usage statistics 8-1 Retrieving Accounting statistics 5-64,134 File index table entry 5-40 Formatted system table copy 5-47 Pack label and file index 5-70 Return buffer 9-19 Formats 9-19,20,21,22,23,24,25 RETURN FROM INTERRUPT system messge 5-92, 153,194 RHF (see Remote Host Facility) RHF CALL system message 1-7; 5-153 RHFMT (Remote Host Faciliy mainframe table) 5-153 RHFT (Remote Host Facility table) 5-153 rhs table 9-14 Formats 9-14,15,16,17 Right-hand side table (refer to rhs table) SAE (standardized accounting enhancements) 8-30 Save table 5-88 SBUs (system billing units) 8-30 Scanning text lines 9-7 Scheduler 1-3,4 60459420 H I I Scratch files 3-3; C-6 Security level C-6 SEND A MESSAGE TO CONTROLLEE system message 5-78 SEND A MESSAGE TO CONTROLLER system message 5-27,76 SEND A MESSAGE TO OPERATOR system message 5-88 SEND MESSAGE TO DAYFILE system message 5-151 SEND MESSAGE TO JOB SESSION system message 5-192 Service level factors 8-30 Setting breakpoints 6-5 Shared table 6-2 SHRLIB ALTER OR RESTORE system message 5-196; 6-5 SI (system internal) tape format G-3 SIL (see System interface language) Small page 3-5; C-7 Source file C-7 5-4 Special functions system messages Stack frame D-6 Standard processing 9-1 Standardized accounting enhancements (refer to SAE) Starting and ending program execution system messages 5-3 Statistics accumulation 8-1 STU (system time unit) 8-1; C-7 Swapping controllee to mass storage 5-86 Symbol definition table 10-17 Entry format 10-17 System Accounting records 8-17 Dayfile 8-35; C-7 Entries 8-36 Error codes B-1 Library routines 9-1 Records 8-18 Table modification 1-1,2 System billing units (refer to SBUs) Dayfile 8-35; C-7 System interface language (SIL) 5-1; C-7 Subroutines 5-1 System label processing 4-2 System messages 1-1; 5-1; C-7 Execution 5-1 Function codes 5-2 System resources 8-31 System time unit (refer to STU) Tape Tape Tape Tape assignment 4-1 error codes B-3 files 3-4; 5-27,38 formats G-l 60459420 F 1-7; 2-30; TAPE FUNCTION system message 3-5; 5-1,178,198 Tape label Format 4-3 Tape management 4-1 TAPE MANAGEMENT beta 4-4 5-168 TAPE MANAGEMENT system message 5-3 Tape management system messages Tape records 8-17 Formats 8-17 2-30; TAPE SWITCH VOLUME system message 5-178 2-30 Tapes table 2-30 Format Task C-7 Accounting records 8-8 Name 9-2 Records 8-8 8-9,10,11,13,14 Formats TCHARGE routine 8-1 Temporary registers D-1 Terminal accounting records 8-15 Terminal records 8-15 Format 8-15 TERMINATE system message 3-3,4; 5-39 Terminating execution 5-39 Time-slicing 1-1,2 T JCAT system table format 5-125 Transfer symbol table 10-15 Transferring file ownership 5-43 T VRF table 8-32 T-VSD table 6-2 Structure 6-2 udtrust field 1-5 UEP (user error processing) 4-1 UPDATE USER DIRECTORY system message USER/ACCOUNTING COMMUNICATION system message 1-7; 5-64,143; 8-1,2,4 User and system interfaces 6-2 User error recovery 4-1 User number 3-1; C-5 000000 3-1 User project control C-7 USER REPRIEVE system message 5-187 V and NV Variable VARIABLE 5-149 Variable Variable Variable 5-128 (variable) tape format G-6 rate accounting (refer to VRA) RATE ACCOUNTING system message rate index (see VRI) rate factor (refer to VRF) rate/service level tables 8-32 Index-5 Virtual address C-7 C-7 Space Virtual code file C-8 Virtual files 2-26; 3-5 Virtual memory C-8 Virtual paging 1-1 Virtual range C-8 Virtual system 1-2; 6-1 Calls 1-7; 5-1 Tasks 1-1,2,3,4 Debug tool (refer to VSDT) Table definition 8-34 Volume header label (VOL1) 4-4 Format 4-5 VOL1 (see Volume header label) I Index-6 VRA (variable rate accounting) 2-8; 8-30,32 VRF (variable rate factor) 8-30,32 VRI (variable rate index) 2-8; 8-30 VSDT (virtual system debug tool) 6-1 Commands 6-4 Error messages 6-6 2-12; 4-1; 5-168 VSN (volume serial number) Wait queue 1-3 Word C-8 Working set C-8 Working set size C-8 Write-temporary 3-4; C-8 60459420 F COMMENT SHEET MANUAL TITLE: PUBLICATION NO.: CDC VSOS Version 2 Reference Manual, Volume 2 of 2 REVISION: 60459420 H NAME: ________________________________________________________________________ COMPANY: _____________________________________________________________________ STREET ADDRESS: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ CITY: _ _ _ _ _ _ _ _ _ _ _ _ _ _ STATE: _ _ _ _ _ _ _ ZIP CODE: _ _ _ _ _ _ __ This form is not intended to be used as an order blank. Control Data Corporation welcomes your evaluation of this manual. Please indicate any errors, suggested additions or deletions, or general comments below (please include page number references). o ptease Reply [J No Reply Necessary w z ::;, NO POSTAGE STAMP NECESSARY IF MAILED IN U.S.A. FOLD ON DOTTED LINES AND TAPE FOLD LD NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 8241 MINNEAPOLIS. MN UJ Z ::::; POSTAGE WILL BE PAID BY ADDRESSEEu CORPORATE HEADQUARTERS P.O. BOX 0 MINNEAPOLIS. MINNESOTA 55440 ~~ CONT"OL DATA
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2014:07:02 09:44:50-08:00 Modify Date : 2014:07:02 09:48:22-07:00 Metadata Date : 2014:07:02 09:48:22-07:00 Producer : Adobe Acrobat 9.55 Paper Capture Plug-in Format : application/pdf Document ID : uuid:f1fdc2fe-d744-4a41-8de1-fc163a77d682 Instance ID : uuid:a00f0dce-87f6-7d43-823d-0d2ecbd3186c Page Layout : SinglePage Page Mode : UseNone Page Count : 456EXIF Metadata provided by EXIF.tools