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