CP-V LISTINGS REV D00B (SEP 1975)

-----------------------
FILE:           ALLYCAT
-----------------------
NAME:           ALLYCAT

PURPOSE:        ALLYCAT TRANSFERS INFORMATION BETWEEN
                RESIDENT AND NON-RESIDENT PUBLIC ALLOCATION DATA.


-----------------------
FILE:           ALTCP
-----------------------
NAME:           ALTCP

PURPOSE:        TO PROCESS CAL1,3 TO CAL1,9 REQUESTS
                TRANSFERRING CONTROL TO THE APPROPRIATE SERVICE
                MODULE
            
                TO PROCESS TRAPS X'40'-X'46', ILLEGAL CAL
                TRAPS X'49'-X'4B' AND UNDEFINED CAL1 TRAPS

DESCRIPTION:    THERE ARE TWO LOGICALLY DISTINCT FUNCTIONS CONTAINED
                WHITHIN THIS MODULE
                1) THE ALTERNATE CAL1 PROCESSING ENTERED AT CALCK
                   WHICH PROCESSES THE CAL1,3 TO CAL1,9 REQUESTS
                   AND DISPATCHES THEM TO THE APPROPRIATE MODULE
                2) THE HANDLING OF TRAPS OF WHICH THERE ARE TWO MAIN
                   ENTRIES: 40TRAP FOR HANDLING TRAPS X'40'-X'46'
                   AND CALBAD FOR HANDLING ILLEGAL CALS X'49'-X'4B'
                   AND UNDEFINED CAL1
                
                THIS MODULE ALSO CONTAINS A NUMBER OF ROUTINES THAT
                ARE CALLED FROM MULTIPLE PLACES IN THE MONITOR.
                SUCH ROUTINES INCLUDE THE SETTING OF CAL EXIT ROUTINES
                THAT EFFECT THE SETTING OF CONDITION CODES UPON RETURN
                TO THE USER AT THE CAL+1. OTHER ROUTINES ARE
                TMPTOSTK TO MOVE THE USER'S TEMP STACK TO THE TSTACK
                AND CKLIMIT TO RETURN THE MAXIMUM PROTECTION ON
                A RANGE OF MEMORY.

REFERENCE:
                SEE REPORTS F AND D

-----------------------
FIIE:           CALPROC
-----------------------
NAME:           CALPROC

PURPOSE:        TO PERFORM THE INITIAL DECODING OF THE CAL1,1
                AND CAL1,2 (I/O RELATED) CALS AND TRANSFER
                TO THE APPROPRIATE SERVICE MODULE
                THIS MODULE ALSO CONTAINS A COMMON EXIT POINT
                FOR I/O CALS, IOSPRTN, WHICH ASCERTAINS
                IF AN ABNORMAL OR ERROR CONDITION OCCURED DURING
                THE CAL PROCESSING AND TAKES APPROPRIATE ACTION

DESCRIPTION:    THERE ARE THREE MAJOR ROUTINES WITHIN THIS MODULE

                CAL1P11 - FOR STANDARD CAL1 PROCSSING
                IN THIS ROUTINE THE INITIAL DECODING OF THE CAL
                IS PERFORMED ENDING IN A SWITCH BEING EXECUTED ON THE
                R.FIELD OF THE CAL. IF IT IS NOT A CAL1,1 OR CAL1,2
                THEN CONTROL IMMEDIATEELY GOES TO ALTCP FOR
                FURTHER PROCESSING.
                IF IT IS CAL1,2 THEN CONTROL PASSES INTO THE FAST
                CAL PROCESSING PATH
                
                CAL11N3 AND CAL11NB - FOR FAST CAL1,1 PROCESSING
                THIS ROUTINE VALIDATES THE DCB ADDRESS (INSURING THAT
                THE DCB IS EITHER IN THE DCB TABLE OR IS M:UC OR M:XX
                OR THE CAL IS A MIPROMPT) AND ALSO
                IF THE DCB IS ASSIGNED TO A DISK FILE OR LABELLED TAPE
                THEN THE THE CORRECT PHYSICAL PAGE IS PUT INTO CMAP
                IN THE WINDOW SLOTS (BUFF1 AND BUFF2) AND THE
                MAP FOR THOSE PAGES IS RELOADED
                THE ROUTINE THEN DECODES THE SPECIFIC FPT
                FUNCTION CODE AND TRANSFERS CONTROL TO THE
                APPROPRIATE SERVICE MODULE

NAME:           IOSPRTN
ENTRY:          IOSPRTNM
REGISTERS:      ALL VOLATILE
CALL:           BRANCH
INTERFACE:      TRAPEXIT, T:ACCTOV

INPUT:          TOP 19 WORDS OF TSTACK CONTAIN USER CAL ENVIR
                SR1 = ZERO IF NO ERROR, OTHERWISE THE USER
                      ADDRESS TO RETURN TO.
                SR3 = VALUE TO BE PUT INTO USER SR3 (ONLY IF
                      SR1 NON-ZERO).
                J:BASE POINTS TO USER'S R0 (ISPTRTNM ONLY).

OUTPUT:         NONE IF SR1,0. OTHERWISE, SR1 AND SR3 ARE
                PLACED IN USER SR1 AND SR3, AND USER PSD
                ADDRESS IS CHANGED TO LOW ORDER 17 BITS OF SR
                
                IF SR1 = 0 (NO ERROR), GO TO TRAPEXIT WHICH
                RETURNS TO CAL+1. IF ERROR, CHANGE USER SR1
                SR3 AND USER PSD, & RETURN TO USER VIA T:ACCT
                
                IOSPTRNM IS RETURN FROM M:MERC CAL. SR1 IS
                FORCED TO BE THE USER'S SR1, WHICH IS THE ADD
                TO RETURN TO.

DESCRIPTION:    FINAL EXIT FROM ALL CAL1'S.

-----------------------
FILE:           CLOCK4
-----------------------
DESCRIPTION:    FOLLOWING FUNCTIONS:
                 1. UPDATE TIME AND DATE
                 2. DECREMENT MRT EVERY MINUTE
                 3. INCREMENT CEXT EVERY 1/100 MINUTE.
                CLOCK RESOLUTION = 4 KILOCYCLES
                
-----------------------
FILE:           EDIT
-----------------------
NAME:           EDIT

PURPOSE:        THE EDIT PROCESSOR IS A FILE MANIPULATION
                UTILITY AVAILABLE TO ON-LINE CP-V USERS.
                ITS CAPABILITES INCLUDE THE BUILDING, DELETING
                COPYING AND MERGING OF ENTIRE FILES AND EDITING
                RECORDS WITHIN FILES AS WELL AS EDITING OF DATA
                WITHIN RECORDS.

REFERENCE:      EDIT SUBSYSTEM TECHNICAL MANUAL. THIS 105
                PAGE DOCUMENT CONTAINS DETAILED FLOWCHARTS, TABLES
                AND SUBROUTINE DESCRIPTIONS, AND JUST ABOUT
                EVERYTHING A SYSTEMS PROGRAMMER NEEDS
                TO GET INTO EDIT FOR MODIFICATIONS OR DEBUGGING.

REFERENCE:      CP-V EDIT REFERENCE CARD (COMMAND STRUCTURE)
                THIS CARD CONTAINS THE COMMAND STRUCTURES FOR
                ALL THE EDIT FUNCTIONS AND IS VERY
                HANDY TO KEEP BY THE USERS TERMINAL.

REFERENCE:      CP-V TIME SHARING REFERENCE MANUAL.
                THIS MANUAL HAS AN EDIT SECTION WHICH SHOWS
                IN GREAT DETAIL ALL THE EDIT COMMANDS ALONG
                WITH EXAMPLES OF USAGE. IT WOULD BE THE USERS
                BEST INITAL INTRODUCTION TO EDIT.

REFERENCE:      CP-V TIME-SHARING USER'S GUIDE.
                THIS MANUAL CONTAINS A SECTION ON EDIT
                SIMILAR TO THE TIME-SHARING REFERENCE MANUAL.

DESCRIPTION:    EDIT IS ORGANIZED IN A HIGHLY MODULAR FASHON.
                UPON ENTRY, 'BEGINEDITOR' PERFORMS INITIALIZATION
                AFTER WHICH 'MASTERPARSER' CONTROLS INPUT COMMAND
                SCAN OF A LINE OF USER COMMANDS. FROM A LINE OF
                INPUT COMMAND(S) THE COMMAND DESCRIPTION TABLE (CDT)
                IS BUILT. ERROR CHECKS ARE MADE AND WARNINGS GIVEN
                TO THE USER IF NECESSARY. 'MASTERPARSER' USES A
                NUMBER OF SUBROUTINES TO BUILD THE CDT: 'GETNAME'
                AND 'GETNEXTPARAM' TO BREAK DOWN TEXT STRINGS;
                'PARSE:I:CMD$ING' TO PROCESS INTEGER STRINGS;
                'PARSE:I:CMD$STRG' TO PROCESS APHABETIC STRINGS
                IN SLASHES; AND ROUTINES OF THE FORM 'PARSE:CMND'
                FOR COMMAND PROCESSING.
                
                ON ENCOUNTERING A CARRIAGE RETURN CHARACTER,
                CONTROL IS PASSED TO THE 'MASTEREXECUTIVE' ROUTINE
                TO PERFORM THE COMMANDS WHICH THEN RESIDE IN THE CDT.
                'MASTEREXECUTIVE' SERVES AS A DRIVER FOR COMMAND
                PROCESSING USING 'F:' ROUTINES AND 'I:' ROUTINES
                FOR INTRA-RECORD COMMAND PROCESSING.
                
                MODE = 1 FOR BTM VERSION
                     = 2 FOR UTS VERSION

-----------------------
FILE:           GHOST1D
-----------------------

NAME:           GHOST1D

PURPOSE:        INITIATE THE GHOST1 PROCESSOR

DESCRIPTION:    GHOST1D EXITS IMMIDIATELY IF THE SYSTEM
                IS UP AND RUNNING. OTHERWISE, GHOST1D DETERMINES
                HOW IT WAS ENTERED, I.E., BY RECOVERY, BOOT
                UNDER THE FILES, COLD TAPE BOOT, OR FROM
                RAD/DISC BOOT. GHOST1D THEN ENTERS SYSMAK TO
                INITIALIZE THE PROCESSORS, COC INITIALIZATION,
                BATCH SCHEDULER INITALIZATION, & REAL-TIME USER
                INITIALIZATION ARE THEN PERFOMED UNLESS
                RECOVERY HAS ABORTED, THEN NO INITIALIZATION
                IS DONE. GHOST1D THEN DISPLAYS, IF REQUESTED,
                THE PARTIONING INFO IDENTIFYING WHAT
                DEVICES &/OR CONTROLLERS ARE PARTIONED.
                GHOST1D ENTERS A SYSTEM START-UP ERROR LOG
                MESAGE & THEN STARTS THE SYMBIONT GHOST.
                OTHER GHOSTS STARTED INCLUDE:
                 ANLZ (ONY AFTER RECOVERY)
                 RVGHOST (IF DUMP FILE EXISTS)
                 ERR:FIL
                 FIX
                 MOOSE (IF SLAVE OVER-RIDE IS SET
                        FOR MULTI-PROCESSING SYSTEM)
                GHOST1D THEN CHANGES GHOST1'S ENTRY FOR GHOST
                START-UP TO FILL. GHOST1D TEHN EXITS TO FILL.

-----------------------
FILE:           INITIAL
-----------------------

NAME:           INITIAL

PURPOSE:        INITALIZATION ROUTINE FOR RESIDENT MONITOR

DESCRIPTION:    (1) SETS UP TRAP AND INTERRUPT LOCATIONS
                (2) BALS TO BOOTSUBR FOR FURTHER INITIALIZATION
                    AND/OR TAPE BOOT PROCESS
                (3) SETS UP THE HARDWARE WRITE LOCKS AND MAP
                (4) BUILDS MONITOR JIT
                (5) INITATES ALLOCAT AND GHOST1
                (6) STARTS UP SYSTEM BY EXITING TO SCHEDULER


-----------------------
FILE:           INITRCVR
-----------------------

NAME:           INITRCVR

DESCRIPTION:    RECIEVER FOR RCVPSD. READ RECOVER INTO CORE.

                SCREECH: HALT ALL I/O.
                         DUMP CORE X'4000'-X'7FFF' TO SWAPPER.
                         READ RECOVER AT X'4000'.
                         BRANCH TO RECOVERY ENTRY POINT.
                SUA:     CHECK ALL SUA CONDITIONS, IF NOT SATISFIED, GO TO SCREECH.
                         HALT I/O ON SWAPPER CHANNEL AND DUMPFILE DEVICE CHANNEL
                          IN SUCH A WAY THAT I/O CAN BE RESTARTED.
                         DUMP CORE AT X'4000'-X'7FFF'.
                         READ RECOVER INTO CORE AT X'4000'.
                         BRANCH TO SUA ENTRY POINT IN RECOVER.
                         READ MONITOR BACK INTO CORE AT X'4000'.
                         RESTART I/O ON SWAPPER CHANNEL AND DUMPFILE DEVICE CHANNEL.
                         START GHOST JOB RVGHOST.
                         GO TO TIABORTM MAPPED.
                DUMP:    CHECK FOR DUMPFILE BUSY, IF BUSY RETURN TO CALLER AT XPSD+2.
                         EXECUTE SUA TO TAKE CORE DUMP.
                         RETURN TO CALLER AT XPSD+2.

-----------------------
FILE:           IOQ
-----------------------

NAME:           IOQ - I/O QUEUEING MANAGER FOR CP-V SYSTEMS

DESCRIPTION:    THE FOLLOWING ROUTINES MAY BE FOUND IN THIS MODULE

                ROUTINE        FUNCTION
                -------------  -------------------------------------------
                CHKDA          ENTRY TO CHECK DISC ADDRS AND SAVE 4 THRU 6
                CHKDAC         ENTRY TO CHECK DISC ADDRS - NO REGISTER SAVE
                CTRIG          PUSH ENTRY INTO CONTROL TASK QUEUE STACK
                DRIVEIO        ENTRY TO CHECK DEVICES WAITING FOR CLEANUP/TIMEOUT, ETC.
                ENBSR4         ENTRY TO ENABLE B *R11
                FORCEIO        ALTERNATE ENTRY TO DRIVEIO
                INTSIM         ENTRY YTO SET CLEANUP PENDING-RSET BUSY... ETC
                IOINT          I/O INTERRUPT RECEIVER
                IOSCU          RETURN FROM HANDLERS POST-PROCESSING
                IOSST          RETURN FROM COMLIST FOR I/O STARTUP
                MSGOUT         SEND MSG TO OPERATOR'S CONSOLE
                MSG2           'ERROR' MESSAGE
                MSG3           'TIMED OUT' MESSAGE
                MSG4           'NOT OPERATIONAL' MESSAGE
                MSG5           'WRITE PROTECTED' MESSAGE
                MSG7           'CODE DISC ERR' MESSAGE
                MSG9           'REQ RETRY' MSG
                MSG9A          'INCONSISTENT STATUS' MSG
                NEWQ           MONITOR TYPE I/O ENTRY
                NEWQNW         ENTRY TO NEWQ FOR NO-WAIT I/O
                NEWQNWM        ENTRY TO NEWQ (MAPPED) FOR NO-WAIT I/O
                BCINT          OPERATOR CONSOLE INTERRUPT RECEIVER
                BCQUEUE        QUE MSG FOR OPERATOR'S CONSOLE
                PL5BSR4        PLM INTO R5 AND B *R11
                PVCHKDA        CHECK PRIVATE PACK DISC ADDRS
                QUEUE          ENTRY FOR I/O WITH DCB AND NO END ACTION
                QUEUE1         ENTRY FOR I/O WITH DCB AND END ACTION
                Q15A           RETURN FROM RBQCK TO FINISH ENQUEUE OF I/O
                Q51            RETURN FROM RBQCK TO THROW AWAY I/O REQUEST
                RC20           ENTRY INTO REQUEST COMPLETE (REQCOM)
                RC21           ENTRY INTO REQUEST COMPLETE (REQCOM)
                RESCHED        RE-SCHEDULE I/O ENTRY
                RTRET1         REAL-TIME USER RETURN POINT
                RTRET2         REAL-TIME USER RETURN POINT

-----------------------
FILE:           KEYN
-----------------------

NAME:           KEYN

PURPOSE:        TO PROVIDE A DRIVER FOR ALL OPERATOR KEYINS.

DESCRIPTION:    THE KEYIN LOAD MODULE (OF WHICH KEYN IS THE MAIN
                MODULE) EXISTS AS A MONITOR OVERLAY ALTHOUGH IT
                EXECUTES AS A GHOST JOB (USER #1). DEPRESSING THE
                OPERATOR'S CONSOLE INTERRUPT GENERATES A X'5D'
                INTERRUPT, CONTROL PASSES TO OCINT (IN IOQ) WHERE A
                WRITE REQUEST IS QUEUED FOR THE OPERATOR'S CONSOLE
                CONSISTING OF TWO CHARACTERS: 'N/L',' '. THIS IS
                FOLLOWED BY A READ REQUEST OF 72 CHARACTERS INTO
                KEYINBUF WITH END.ACTION, AN I/O INTERRUPT IS 
                GENERATED WHEN THE OPERATOR TERMINATES HIS INPUT WITH
                A 'N/L' CHARACTER. THE END.ACTION ROUTINE THEN CALLS
                T:GJOBSTRT FOR KEYIN ON ALL OPERATOR KEYINS EXCEPT
                THOS OF THE FORM: YYNDD,X (THESE ARE HANDLED DIRECL
                LY BY IOQ).
                
                KEYIN ALSO HANDLES TAPE AND PACK AVR'ING. THIS IS
                INDICATED BY IOQ PUTTING THE DCT INDEX OF THE INTERRU
                DRIVE IN AVRDCT (IN TABLES).
                
                THE KEYIN GHOST JOB BEGINS EXECUTION (MASTER/MAPPED)
                AT T:BV WITH A REQUEST TO ASSOCIATE THE KEYIN OVERLAY
                AS THE RESULT OF SPECIAL PROCESSING IN THE SWAPPER
                WHICH SETS UP KEYIN'S INITAL TSTACK ENVIRONMENT.
                
                ALL KEYINS ARE HANDLED IN THE KEYN MODULE EXCEPT THE
                FOLLOWING:
                  DELETE  HANDLED BY DELPRI
                  PRIO    HANDLED BY DELPRI
                  FORM    HANDLED BY DELPRI
                  DISPLAY HANDLED BY DISPLAY

-----------------------
FILE:           LITERALS
-----------------------

NAME:           LITERALS

PURPOSE:        THIS MODULE CONTAINS THE POOL OF FIXED CONSTANTS
                FOR THE CP-V MONITOR

DESCRIPTION:    THIS MODULE IS LOADED AS THE FIRST MODULE
                OF THE MONTIOR ROOT IN ORDER TO BE LOACTED IN
                VIRTUAL PAGE X'00' AND HENCE VISIBLE TO USERS
                OF NORMAL PRIVILEGE LEVEL. SOME USEFUL VARIABLES
                DATA SUCH AS TIME, DATE ETC. HAVE ALSO BEEN INCLUDED
                IN THIS MODULE FOR THE SAME REASON.

-----------------------
FILE:           LOGON
-----------------------

NAME:           LOGON

PURPOSE:        TO RECEIVE A TERMINAL USER'S REQUEST FOR SERVICE, AND TO
                DETERMINE IF HE IS AUTHORIZED TO USE THE CPV SYSTEM AND
                ALSO TO LOG BOTH BATCH AND TERMINAL USERS OFF THE SYSTEM

DESCRIPTION:    WHEN LOGGING TERMINAL USERS ON, USER AUTHORIZATION
                IS VERIFIED BY COMPARING THE TERMINAL USER'S NAME,
                ACCOUNT, AND PASSWORD WITH THOSE SPECIFED IN THE
                :USERS FILE. UPON DETERMINING USER VALIDITY,
                INFORMATION FROM THE USER'S LOGON RECORD IS STORED
                IN HIS JIT AND AN ASSIGN.MERGE RECORD CREATED. IF A
                :USERS FILE DOESN'T EXIST AND A USER LOGS ON IN :SYS
                LBE, THE FILE IS CREATED WITH A RECORD FOR THAT ACCOUNT.
                LOGON EXITS TO TEL UNLESS AN AUTO-CALL PROCESSOR IS
                PASSED TO AN INSTALLATION'S JOB INITIATION ROUTINE
                IF ADDITIONAL POLICING OF USERS IS DESIRED.
                IF THE X'2' BIT OF CONTROL CELL S:COUP IS SET, A RECORD
                KEYED BY SYSID IS WRITTEN FOR THE USER IN THE FILE
                :LOGD.:SYS CONTAINING NAME, ACCOUNT, TIME ON, AND EITHER
                THE COC LINE NUMBER OR THE TEXT 'RA' TO DENOTE A REMOTE
                ASSIST USER. THIS FILE IS USED IN CONJUCTION WITH THE
                TEL 'WHERE' COMMAND.
                
                WHEN LOGGING USERS OFF, THE :RATE FILE IS READ AND THE
                ACCTSUM SUBROUTINE CALLED TO COMPUTE RAND LOG THE
                ACCOUNTING INFORMATION. COOPERATIVE FILES ARE CLOSED
                THE :LOGD RECORD FOR THE USER IS RE-WRITTEN, IF THE
                FEATURE IS ENABLED, TO INDICATE THE TIME OF LOG OFF.
                AND LOGOFF IS EXITED

REFERENCE:      TIME SHARING REFERENCE MANUAL

-----------------------
FILE:           LYNX
-----------------------

NAME:           LYNX

DESCRIPTION:    A SCANNER WHICH ACCEPTS LINK-STYLE SYNTAX, BUILDS LOCCT,
                ROM, AND TREF TABLES, AND CALLS THE OVERLAY LOADER.
                MAY BE USED BOTH ONLINE AND BATCH


-----------------------
FILE:           MAILBX
-----------------------

NAME:           MAILBX

PURPOSE:        INFORM USERS OF SYSTEM ACTION TAKEN WITH REGARD TO
                FILE MAINTENANCE. THE MESSAGE GENERALLY CONSISTS OF
                THE REASON A SYSTEM BACKUP FAILED OR A COMPLETION
                MESSAGE CONCERNING SOMETHING THE USER HAS REQUESTED.

DESCRIPTION:    THE MAILBX ROUTINE FORMATS A MESSAGE CONTAINING
                THE CURRENT DATE AND TIME AND THE ACCOUNT NAME WHICH
                IS REQUESTING THE MAILBOX BE BUILT; THE REST OF THE
                MESSAGE IS PART OF THE INPUT. THE MESSAGE IS WRITTEN
                INTO THE SPECIFIED ACCOUNT BY ADDING A RECORD TO AN
                EXISTING 'MAILBOX' FILE IN THE ACCOUNT OR INTO A NEW
                ONE IF NONE CURRENTLY EXISTS. THE MESSAGE IS ALSO
                OPTIONALLY PRINTED ON THE LINE PRINTER.

-----------------------
FILE:           MBS
-----------------------

NAME:           MBS - MULTI-BATCH RESOURCE SCHEDULER

PURPOSE:        SCHEDULES BATCH JOBS FOR EXECUTION BASED ON THEIR
                RESOURCE REQUIREMENTS
                
DESCRIPTION:    THE MBS MODULE, PART OF THE RBBAT GHOST, CONTAINS TWO
                MAIN ROUTINES, MBSOP (REPART) AND MBS. THE FIRST OF
                THESE, CALLED AS MBSOP BY RBBAT TO OPERATE ON NEWLY
                SUBMITTED JOBS AND AS REPART BY MBS TO ACT ON ALL JOBS
                WHEN THE PARTITION ATTRIBUTES HAVE BEEN CHANGED, IS
                RESPONSIBLE FOR SETTING THE BITS IN BH:PART THAT TELL
                WHETHER A GIVEN JOBS IS ABLE TO RUN IN A GIVEN
                PARTITION BASED ON THE MATCH OF RESOURCES. THE MAIN
                ROUTINE, OF COURSE IS MBS. IT IS CALLED BY RBBATM
                EITHER AS A RESULT OF A GHOST FUNCTION CODE IN A COMBU
                REQUESTING AN MBS FROM THE MONITOR, OR WHEN A NEW
                BATCH JOB HAS BEEN ADDED TO RBBAT'S TABLES. RBBATR
                ALSO CALLS MBS TO START UP BATCH JOBS AFTER A CRASH.
                MBS PERFORMS THE FOLLOWING TASKS:
                
                1) PL:LK - THE PARTITION ATTRIBUTE LOCK IS TESTED.
                IF IT IS NON ZERO CONTROL IS CHANGING PARTITION
                ATTRIBUTES AND MBS EXITS. IF IT IS ZERO MBS SETS IT
                TO PREVENT ATTRIBUTE CHANGES WHILE MBS IS RUNNING.
                
                2) PL:CHG - THE PARTITION ATTRIBUTE CHANGE FLAG IS
                TESTED. IF IT IS ZERO MBS CONTINUES. IF IT IS NON-
                ZERO, IT CONTAINS SET BITS FOR EACH PARTITION WHOSE
                ATTRIBUTES HAVE BEEN CHANGED, AND MBS CALLS REPART TO
                UPDATE THE LEGAL PARTITION BITS (BH:PART) FOR ALL
                BATCH JOBS.
                
                3) MBS DETERMINES WHETER A BATCH JOBS COULD POSSIBLY
                BE RUN NOW THIS IS DONE WITH TWO CHECKS:
                
                 A) IF ((S:BUAIS)=(S:BUIS))*(S:BFIS) <=0
                 EITHER NO MORE BATCH USERS ARE ALLOWED OR THERE
                 ARE NONE TO RUN
                 
                 B) IF GI:FRE = 0 THERE ARE NO GETI TABLE SLOTS
                 AVAILABLE TO MOVE RESOURCE INFORMATION INTO CORE.
                
                IF EITHER OF THESE CHECKS FAILS MBS EXITS
                
                4) MBS NOW STEALS A USER SLOT FROM THE SNULL STATE.
                IF A JOB IS SCHEDULED IT WILL USE THIS USER NUMBER,
                AND IF NOT IT WILL BE RETURNED. THE SLOT MUST BE
                STOLEN AT THIS TIME TO BE SURE ONE IS AVAILABLE TO
                RUN THE JOB. IF THERE ARE NONE AVAILABLE, MBS EXITS
                
                5) A BIT MASK IS BUILT WITH A BIT ON FOR EACH PARTITION
                WHICH IS NEITHER RUNNING NOR LOCKED AND WHOSE MINIMUM
                RESOURCES ARE AVAILABLE.
                
                6) THE HIGHEST PRIORITY JOBS IS SELECTED AS THE CANDIDATE
                JOB (CJ). WHENEVER A CANDIDATE JOBS CANNOT BE RUN, MBS
                UPS HIS PRIORITY BY THE PRIORITY INCREMENT, AND SELECTS
                THE NEXT HIGHEST PRIORITY JOBS AS THE NEW CJ, AN EXCEPTION
                TO THIS IS WHEN THE CJ AS 'F' PRIORITY, IN WHICH
                CASE IF THE CJ COULD EVER BE RUN MBS EXITS WITHOUT
                ATTEMPTING TO SCHEDULE OTHER JOBS. IF THE BATCH QUEUE
                IS EXAUSTED WITHOUT SELECTING ANY JOBS TO RUN, MBS
                EXITS.
                
                7) THE CS'S BH:PART IS ANDED WITHT EMASK BUILT
                IN FIVE ABOVE, AND IF THE RESULT IS ZERO, A NEW CJ IS
                SELECTED
                
                8) THE ACCOUNT OF THE CJ IS CHECKED AGAINST THOSE OF
                ALL RUNNING JOBS TO SEE IF EITHER THE CJ OR A RUNNING
                JOB SPECIFED ACCOUNT. IF THIS IS TRUE A NEW CJ
                IS SELECTED.
                
                9) IF THE CJ SPECIFED ORDER ALL RUNNING JOBS AND
                THOSE IN THE QUEUE ARE CHECKED AND IF ANY WITH THE
                SAME ACCOUNT HAVE A LOWER SYSID, A NEW CJ IS SELECTED
                
                10) THE RESOURCES REQUESTED BY THE CJ ARE CHECKED
                AGAINST THOSE AVAILABLE IN THE SYSTEM AND IF ANY ARE
                UNAVAILABLE A NEW CJ IS SELECTED.
                
                11) IF THE CJ SPECIFED SERIAL NUMBERS FOR DISCS ON
                HIS LIMIT CARD THE FOLLOWING CHECKS ARE MADE:
                
                 A) ANY SERIAL NUMBER THE CJ REQUESTED EXLCUSIVE
                 MUST NOT BE IN USE OR REQUESTED EITHER SHARED OR
                 EXCLUSIVE BY ANY OTHER RUNNING USER.
                 
                 B) ANY SERIAL NUMBER THE CJ REQUESTED SHARED MUST
                 NOT BE IN USE OR REQUESTED BY ANY RUNNING JOB AS
                 EXCLUSIVE.
                 
                 C) THERE MUST BE FREE SPINDLES (BEYOND THOSE RE-
                 QUESTED BY THE CJ) TO MOUNT ANY REQUESTED SHARED
                 SPINDLES NOT ALREADY MOUNTED.
                 
                 D) THERE MUST BE ROOM IN THE IN-CORE SERIAL
                 NUMBER TABLES TO HOLD THE CJ'S SERIAL NUMBERS.
                
                IF ANY OF THESE TESTS FAIL A NEW CJ IS SELECTED
                
                12) THE CJ HAS NOW BEEN SELECTED TO RUN
                
                13) A GETI TABLE SLOT IS REMOVED FROM THE FREE CHAIN
                AND THE JOBS RESOURCE INFORMATION (AND OTHER INFO) IS
                MOVED FROM THE RBBAT BATCH TABLES INTO IT.
                
                14) AVRNOU IS INCREMENTED FOR ALL MOUNTED SHARED
                SPINDLES THE JOBS HAS REQUESTED AND THE DEVICE OWNERSHIP
                BIT (ASPIN) IS SET FOR THESE SPINDLES. THESE BITS
                ARE TRANFERED TO GI:ASPN AND EVENTUALLY TO J:ASPIN.
                
                15) THE RESOURCES THAT THE JOB REQUESTED ARE ADDED
                TO THE BATCH CURRENT TOTALS
                
                16) THE JOB'S SERIAL NUMBERS ARE MOVED TO THE CORE
                SERIAL NUMBER TABLES
                
                17) THE JOBS IS MOVED FROM ITS PRIORITY CHAIN TO RBBAT
                RUNNING CHAIN
                
                18) THE BATCH BIT IS SET IN THE JOB'S UW:FLG2 AND
                MBS CALLS ADD1 TO START UP THE USER
                
                19) FINALLY MBS RETURNS TO THREE ABOVE TO TRY TO START
                ANOTHER JOB.

REFERENCE:      MBS IS PART OF THE TBBAT GHOST WHICH ALSO CONTAINS
                RBBATM AND RBBATR. THE TABLES MBS USED (MATCH, GET1,
                RESOURCE, AVR, PARTITION, ETC.) ARE DESCRIBED IN THE
                DATA BASE TECH. MANUAL.

-----------------------
FILE:           MM
-----------------------

NAME:           MM

PURPOSE:        TO PERFORM ALLOCATION OF VIRTUAL AND
                PHYSICAL MEMORY AND SWAP STORAGE. THIS
                INCLUDES SETTING UP THE USERS VIRTUAL MEMORY MAP
                AND ACCESS PROTECTION TABLE IN THE JIT
                AND LOADING THEIR RESPECTIVE HARDWARE REGISTERS.

DESCRIPTION:    WHEN A VIRTUAL PAGE IS TO BE ALLOCATED
                A PHYSICAL PAGE AND SWAP GRANULE ARE OBTAINED
                AND AN I/O COMMAND ENTRY BUILT IN THE USER
                SWAP COMMAND LIST IN JIT/AJIT.
                ALLOCATED VIRTUAL PAGES ARE LINKED IN JB:LMAP
                IN THE SAME ORDER AS THEIR COMMAND LIST
                ENTRIES. THE PHYSICAL PAGE NUMBER ASSIGNED TO
                THE VIRTUAL PAGE IS PLACED IN JX:CMAP.
                
                SWAP GRANULES ARE ALLOCATED IN GROUPS OF
                FOUR, ON RAD SWAPPING SYSTEMS, AND THE SEEK
                ADDRESS OF THE FIRST SECTOR OF THE
                GROUP IS PLACED IN THE DISC ADDRESS
                TABLE JH:DA. A SEEK COMMAND, ADDRESSING THE
                DISC ADDRESS TABLE ENTRY, IS BUILT
                IN THE COMMAND LIST PRECEDING EACH GROUP
                OF FOUR I/O COMMANDS.
                
                UNALLOCATED VIRTUAL PAGES ARE MAPPED INTO
                A MONITOR PAGE (KNOWN AS THE FPMC PAGE),
                WHICH IS WRITE LOCKED AND HAS AN ACCESS
                PROTECTION CODE OF 11. ALLOCATED PAGES
                HAVE THEIR ACCESS PROTECTION CODES STORED IN
                J:JAC BASED ON THEIR TYPE OF USAGE.
                
                OTHER JIT TABLES DESCRIBE VIRTUAL MEMORY
                BOUNDARIES FOR EACH TYPE OF MEMORY, (DATA
                DCB, PROCEDURE, ETC.) AND THE NUMBER OF PAGES
                ALLOCTED FOR EACH TYPE

                        |-------------------------------------|
                 J:JIT  |                                     |
                        |          USERS TEMP STACK           |
                        |                 :                   |
                        |-------------------------------------|
                        |                                     |
                        |             BATCH JIT               |
                        |                 :                   |
                        |-------------------------------------|
                        |               J:BUP                 |
                        |               J:EUP                 |
                        |-------------------------------------|
                        |               J:PLL                 |
                        |               J:PUL                 |
                        |               J:DLL                 |
                        |               J:DUL                 |
                        |               J:DDLL                |
                        |               J:DDUL                |
                        |               J:CLL                 |
                        |               J:CUL                 |
                        |-------------------------------------|
                        | JB:PCP | JB:PCD | JB:JCDD | JB:PCC  |
                        |-------------------------------------|
                        | JB:TDP | JB:BCP | JB:MNPA | JB:NASP |
                        |-------------------------------------|
                        
                        |-------------------------------------|
                        | JB:PPH |                            |
                        |-------------------------------------|
                        | JB:PPT |                            |
                        |-------------------------------------|
                        | JB:PPC |                            |
                        |-------------------------------------|
                        | JB:VLH |                            |
                        |-------------------------------------|
                        | JB:VLT |                            |
                        |-------------------------------------|
                        |               J:VLCB                |
                        |-------------------------------------|
                        |               J:AJ                  |
                        |-------------------------------------|
                        |               J:CLPA                |
                        |-------------------------------------|
                        |               J:CLE                 |
                        |-------------------------------------|
                        |               J:CLP                 |
                        |-------------------------------------|
                        |               J:CLS                 |
                        |-------------------------------------|
                        | J:JAC   | | | | | | | | | | | | | | |
                        |                 :                   |
                        | | | | | | | | | | | | | | | | | | | |
                        |-------------------------------------|
                        
                        |-------------------------------------|
                        | J:DAC   | | | | | | | | | | | | | | |
                        |                 :                   |
                        | | | | | | | | | | | | | | | | | | | |
                        |-------------------------------------|
                        | JB:LMAP |       |         |         |
                        |                 :                   |
                        |                 :                   |
                        |         |       |         |         |
                        |-------------------------------------|
                        | JX:CMAP |       |         |         |
                        |                 :                   |
                        |                 :                   |
                        |         |       |         |         |
                        |-------------------------------------|
                        |        JHIDA    |                   |
                        |                 :                   |
                        |                 :                   |
                        |                 |                   |
                        |-------------------------------------|
                        
                        |-------------------------------------|
                        |                J:CL                 |
                        |                                     |
                        |                                     |
                        |-------------------------------------|
                        |                                     |
                        |                                     |
                        |-------------------------------------|
                        |                 :                   |
                        |                 :                   |
                        |-------------------------------------|
                        |                                     |
                        |                                     |
                        |-------------------------------------|

-----------------------
FILE:           PCL
-----------------------

NAME:           PCL

PURPOSE:        PCL PROVIDES FOR PROCESSING OF USER COMMANDS WHICH
                DIRECT INFORMATION MOVEMENT BETWEEN INPUT AND OUTPUT
                DEVICES. THE EXECUTIVE ROUTINE IS THE MAIN DRIVING
                ROUTINE FOR THE PCL SUBSYSTEM
                

-----------------------
FILE:           RBBATM
-----------------------

NAME:           RBBATM

PURPOSE:        MAINTAINS AND MANAGES SYMBIONT FILE TABLES

                CONTROLS REMOTE PROCESSING INCLUDING
                LOGON - LOGOFF OF RP TERMINALS AND PROCESSING
                REMOTE CONTROL COMMANDS
                
                MAIN MODULE OF THE RBBAT GHOST WHICH ALSO
                CONTAINS THE MULTI-BRANCH RESOURCE SCHEDULER (MBS)
                AND THE RBBAT RECOVERY ROUTINES (RBBATR)

DESCRIPTION:    RBBAT IS AWAKENED BY A CALL TO THE ROUTINE
                SOCQ IN THE MONITOR ROOT. THIS CALL IN MADE
                SPECIFYING A GHOST FUNCTION CODE (GFC) AND
                PARAMETERS USED BY RBBAT TO EXECUTE THE
                REQUESTED FUNCTION. THE GFC'S, ROUTINES CALLED,
                AND FUNCTIONS PERFORMED ARE LISTED BELOW:
                
                GFC      ROUTINE       FUNCTION
                NOPGFC   CTR1          RELEASE BUFFER ONLY - NO ACTION
                AIF      AIF           ADD CONTROL INPUT FILE (FROM SYMBIONT)
                AIFJE    AIFJE         ADD CONTROL INPUT FILE (FROM JOBENT)
                AIFNC    AIFNC         ADD NON-CONTROL INPUT FILE
                AOFL     AOFL          ADD LAST OUTPUT FILE FROM BATCH JOB
                AOF      AOF           ADD BATCH OUTPUT FILE
                AOFNB    AOFNB         ADD OUTPUT FILE FROM ONLINE, GHOST, OR JOBENT
                AOFP     AOFP          ADD PARTIAL OUTPUT FILE FROM SYMBIONT
                GOF      GOF           GET OUTPUT FILE
                GIFNC    GIFNC         GET NON-CONTROL INPUT FILE (FOR OPNLO)
                MBSGFC   MBSCALL       CALL MBS TO MULTI-BRANCH SCHEDULE
                PRIOGFC  KPRIO         EXECUTE PRIO KEYIN
                KDELGFC  KDEL          EXECUTE DELETE KEYIN
                KFRMGFC  KFORM         EXECUTE SYNDD,F'XXXX' KEYIN
                KDISPGFC KDISP         EXECUTE DISP, DISP OC, DISP SYMB, DISP
                                       OUTPUT, DISP NORUN AND SISP 4SYSD5 KEYINS
                JESTAT   JESTAT        PROCESS JOBENT STATUS REQUEST
                JEDEL    JEDEL         PROCESS JOBENT DELETE (CANCEL) REQUEST
                SWITGFC  KSWIT         EXECUTE RBSWITCH KEYIN
                KCOMGFC  KCOM          EXECUTE RBCOM KEYIN
                SNDGFC   KSEND         EXECUTE RBSEND KEYIN
                BCSTGFC  KBCST         EXECUTE TBBDCST KEYIN
                DUP      RB$DU         PROCESS NEW REMOTE TERMINAL CONNECTION
                LORR     RB$LRR        PROCESS REMOTE LOGON RECORD - LOG THE
                                       STATION ON
                HUP      RB$HU         PROCESS RP LINE DISCONNECT
                OCMGFC   RB$OCM        PROCESS IRBT CONSOLE INPUT MESSAGE
                RCVRGFC  RCVRY         CALL RBBATR TO PERFORM RBBAT RECOVERY
                RCVRGFC1 RCVRY1        MARKS POINT OF RECOVERY IN COMBUFS IN
                                       RBBAT RECOVERY FILE
                KFCGFC   KFFRM         EXECUTE FORM 4SYSID5 KEYIN
                
REFERENCE:      THE PARAMETERS PASSED WITH THE RBBAT CALLS
                ARE DOCUMENTED IN THE DATA BASE TECH MANUAL
                
                
-----------------------
FILE:           RTROOT
-----------------------

NAME:           RTROOT

PURPOSE:        TO PROVIDE THE RESIDENT INTERFACE FOR ALL CAL1,5'S
                (EXCEPT M:EXU, M:MASTER & M:SLAVE WHICH ARE HANDLED
                IN ALTCP.
                
                TO PROVIDE THE INTERRUPT HANDLERS FOR REAL AND PSEUDO
                INTERRUPTS.
                
                TO PROVIDE THE IOQ SUBROUTINES WHICH ARE REQUIRED ONLY
                AS THE RESULT OF M:IOEX (REAL-TIME) CAL1,5'S.

DESCRIPTION:    ALL CAL1,5'S (EXCEPT AS NOTED ABOVE) PASS
                THROUGH RTROOT. CONTROL IS PASSED TO THE RTNR MODULE
                IN THE RTOV OVERLAY FOR THE FOLLOWING CAL1,5'S:
                 RESOF MEMORY (FPT CODE - .1B)
                 M:STOPIO                 .1C
                 M:STARTIO                .1D
                 M:GJOBCON                .20
                 M:CONNECT                .21
                 M:DISCONNECT             .22
                 M:CLOCK                  .26
                 
                ALL OTHERS ARE HANDLED IN RTROOT:
                 M:IOEX (SIO) (FPT CODE - .1E)
                 M:IOEX (TIO/TDV/HIO)     .1F
                 M:INTCON/M:INHIBIT       .23
                 M:QFI                    .24
                 M:HOLD                   .25
                 M:INTSTAT                .27
                
                REAL-TIME INTERRUPT-RECEIVING ROUTINES ALSO RESIDE
                IN RTROOT (THEY INTERFACE TO THE SCHEDULER)

-----------------------
FILE:           SWAPPER
-----------------------

NAME:           SWAPPER

PURPOSE:        THE SWAPPER IS CALLED BY THE SWAP SCHEDULER
                WITH SPECIFICATIONS FOR INSWAP USER, INSWAP
                PROCESSORS AND OUTSWAP USERS. IT ASSIGNS
                PHYSICAL PAGES FOR INSWAP USER AND PROCESSORS
                AND BUILDS COMMAND LISTS FOR IN AND OUTSWAPS.
                IT CALLS TSIO/DPSIO TO PERFORM THE I/O.

DESCRIPTION:    IF THERE ARE ANY OUTSWAP USERS THE
                SWAPPER BUILDS COMMAND LISTS TO OUTPUT THEIR
                JITS AND AJITS. THESE COMMAND LISTS ARE
                COMMAND CHAINED TO THE COMMAND LIST IN THE USERS
                JIT/AJIT AND ALL USERS ON THE SAME SWAP
                DEVICE ARE COMMAND CHAINED TOGETHER. THE
                I/O IS DONE BY TSIO/DPSIO FOR EACH DEVICE.
                WHEN ALL OUTSWAPS ARE COMPLETED PAGES REQUIRED
                FOR INSWAPPING ARE ADDED TO THE SWAP
                PAGE CHAIN AND THE REMAINDER ARE RETURNED TO THE
                MONITOR FREE PAGE POOL. THE NEXT STEP IS TO
                BRING ANY PROCESSORS THAT ARE NEEDED. TO
                DO THIS THE SWAPPER BUILDS COMMAND LISTS IN
                THE SHELL COMMAND LIST IN THE RESIDENT ROOT
                AND ALSO BUILDS A COMMAND LIST TO READ THE
                INSWAP USERS JIT/AJIT. THE PROCESSOR AND JIT/AJIT
                ARE THEN READ INTO MEMORY.
                NEXT THE SWAPPER INITIALIZES THE USERS JIT COMMAND
                LIST AND JX:CMAP TABLE. THE USER IS THEN READ.
                PROCESSORS ASSOCIATED WITH THE INSWAP USER
                HAVE THEIR PHYSICAL PAGES PLACED IN HIS
                JX:CMAP TABLE AND WE ARE NOW READY TO RUN.
                
                IN SOME CASES THE USER MAY ALREADY BE IN CORE
                AND THE PURPOSE OF THE INSWAP IS TO ALLOCATE
                PHYSICAL PAGES, (THERE MAY NOT HAVE BEEN ANY
                WHEN THE USER NEEDED THEM AND HE WAS BLOCKED)
                OR TO BRING IN A PROCESSOR.


-----------------------
FILE:           TABLES
-----------------------

NAME:           TABLES

PURPOSE:        TO CONTAIN MISCELLANEOUS MONITOR VARIABLE DATA
                AND CONSTANTS


-----------------------
FILE:           TEL
-----------------------

NAME:           TEL

PURPOSE:        TEL IS THE DEFAULT COMMAND PROCESSOR FOR TIME-
                SHARING AND THUS SERVES AS THE TERMINAL USER'S
                INTERFACE TO CP-V'S SERVICES. IT IS FUNCTIONALLY
                EQUIVALENT TO 'CCI' IN BATCH MODE. SOME OF THE
                MAJOR FUNCTIONS PERFORMED BY TEL ARE:
                1. CALL USER PROGRAM AND SYSTEM PROCESSORS
                2. ASSOCIATE DELTA, OR OTHER DEBUGGERS
                3. MANIPULATE THE ASSIGN/MERGE RECORD (VIA THE
                   SET COMMAND) TO ESTABLISH DEVICE & FILE
                   ASSIGNMENTS
                4. PERFORM PARTIAL CHECKPOINT/TESTORE (SAVE/GET)
                5. CHANGE TERMINAL DEFAULTS, SUCH AS TIMING
                   ALGORITHMS AND PAGINATION
                6. 'SUPERCLOSE' SYMBIONT FILES (PRINT COMMAND)
                7. DISPLAY SYSTEM PARAMETERS & BATCH JOB STATUS
                8. SEND MESSAGES TO THE CP-V OPERATOR'S CONSOLE

DESCRIPTION:    TEL LIVES IN THE SPECIAL SHARED PROCESSOR
                AREA (ABOVE X'1C000') AND MAY REMAIN
                ASSOCIATED WITH THE USER ALONG WITH HIS PROBLEM
                PROGRAM. TEL IS INVOKED INITALLY BY AN
                INTERPRETIVE EXIT FROM THE LOGON PROCESSOR.
                THEREAFTER, TEL REGAINS CONTROL WHEN A PROBLEM
                PROGRAM OR SYSTEM PROCESSOR ABORTS OR EXITS, AND
                WHEN THE TERMINAL USER TYPES 'CONTROL-Y' OR
                'ESC-ESC'. ALL EXITS ARE INTERPRETIVE EXCEPT ABORT
                CASES, WHICH CAUSE THE USER AREA TO BE CLEANED
                UP BY STEP, FOLLOWED BY RE-ASSOCIATION OF TEL.
                FINAL EXIT FROM TEL IS MADE TO LOGON, WHERE THE
                ACCOUNTING RECORD IS WRITTEN AND THE USER IS LOGGED
                OFF.
                
                TEL IS LOADED WITH MBNSTK AND COPIES OF THE
                PASS2-GENERATED DEVICE AND OPLABEL TABLES (USED BY
                SET COMMAND). IT MUST ALSO HAVE SPECIAL JIT
                ACCESS AND THE MAXIMUM MEMORY FLAGS SET.

REFERENCE:      TEL IS DESCRIBED IN THE CP-V TIME-SHARING
                REFERENCE MANUAL, 900907.
                

-----------------------
FILE:           TELLUSR
-----------------------

NAME:           TELLUSR

PURPOSE:        TO PUT OUT ERROR MESSAGES TO USERS WHOSE JOB STEPS
                ARE ABNORMALLY TERMINATED FOR ANY REASON.

DESCRIPTION:    TELLUSR WRITES A MESSAGE THRU M:XX (ASSIGNING IT
                TO THE 'DO' DEVICE) GIVING THE REASON FOR A
                JOBSTEP ABORT:
                 ERRORED/ABORTED BY OPERATOR
                 ERRORED/ABORTED BY THE PROGRAM ITSELF
                 LIMIT EXCEEDED (WHICH-LIMIT MSG FROM ERRMSG FILE)
                 I/O ERROR (WHICH-ERROR MSG FROM ERRMSG FILE)
                           (ALSO TELLS ON WHICH DCB)
                 OTHER ABORT (ABORTCODE MSG FROM ERRMSG FILE)
                IT ALSO PRINTS THE PROGRAM LOCATION WHERE THE
                ABORT OCCURED

