IDENT 1TA,ITA PERIPH BASE MIXED SST QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS EOR$ EQU 1 DEFINE POSITION AFTER EOR *COMMENT 1TA - IAF AUXILIARY FUNCTION PROCESSOR. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE 1TA - TIMESHARING AUXILIARY PROCESSOR. SPACE 4,10 ***** 1TA - TIMESHARING AUXILIARY PROCESSOR. * * K. E. ZINNEL. 70/03/09. * R. E. TATE. 71/01/25. * P. D. FARRELL. 75/02/07. * A. D. FORET. 76/04/26. * P. D. FARRELL 77/03/17. * M. J. CARIDDI, L. K. TUTTLE 81/07/02. SPACE 4,10 *** 1TA PROCESSES FUNCTIONS FOR *IAF* WHICH REQUIRE * PP ACTION. SPACE 4,10,25 *** CALLS. * * * GROUP REQUEST. *T 18/ *1TA*,6/ CP,6/ ,18/ RETURN ADDRESS,12/ PP * * CP CONTROL POINT. * PP POT POINTER TO REQUEST QUEUE POT(S). * * SINGLE REQUEST. *T 18/ *1TA*,6/ CP,12/ 40FC,12/ TN,12/ ARG * * REQUEST QUEUE FORMAT. *T 24/ ,12/ FC,12/ TN,12/ ARG * * FC FUNCTION CODE. * TN TERMINAL NUMBER. * ARG POT POINTER OR REQUEST TYPE. * * VROT STATUS BITS USED. * BIT 0 - COMPLETION STATUS BIT. * BIT 11- ERROR RETURN. SPACE 4,10,10 *** ACCOUNT FILE MESSAGES. * * * CHARACTER ACCUMULATOR OVERFLOW - * *UCCO, 000000.000KCHS.* = CHARACTERS OUT. * *UCCI, 000000.000KCHS.* = CHARACTERS IN. * *ABLQ, JSNN, YY/MM/DD, HH.MM.SS* INPUT FILE QUEUED SPACE 4,10,10 ** ROUTINES USED. * * * 0AV - VERIFY USER NAME. * 0QM - ISSUE QUEUE FILE ACCOUNTING MESSAGE. SPACE 4,10 * COMMON DECKS. *CALL COMPMAC *CALL COMSACC *CALL COMSCPS *CALL COMSEJT *CALL COMSEVT *CALL COMSJIO *CALL COMSJRO *CALL COMSMSC *CALL COMSMSP *CALL COMSPFM *CALL COMSPIM *CALL COMSPRD *CALL COMSREM *CALL COMSSRU *CALL COMSSSE *CALL COMSTCM *CALL COMSWEI *CALL COMSZOL TITLE PROGRAM EQUIVALENCES. **** DIRECT LOCATION ASSIGNMENTS. QF EQU 25 QFT ORDINAL PW EQU 26 POT WORD COUNT FP EQU 27 FIRST POT CN EQU 30 - 34 VROT STATUS WORD BUFFER (5 LOCATIONS) PA EQU 35 - 36 POT ADDRESS (2 LOCATIONS) PP EQU 37 POT POINTER DF EQU 40 - 44 DESIGNATED FILE NAME (5 LOCATIONS) WC EQU 45 WORD COUNT TT EQU 46 - 47 TERMINAL TABLE ADDRESS (2 LOCATIONS) TN EQU IR+3 TERMINAL NUMBER FN EQU 60 - 64 FILE NAME (5 LOCATIONS) OT EQU 65 ORIGIN TYPE NC EQU 66 NUMBER OF CONTROL POINTS MF EQU 67 MESSAGE FLAG SPACE 4,10 ** MICRO DEFINITIONS. TE OCTMIC TTEQ,2 TTY PSEUDO-EQUIPMENT MICRO SPACE 4,10 **** PROGRAM EQUIVALENCES. SYSN EQU 0 SYSTEM SECTOR NUMBER CPSN EQU 1 C.P. AREA SECTOR NUMBER NSVR EQU 6 NUMBER OF SERVICE CLASS VALIDATION RETRIES EJTT EQU EJTR*2 EJT THRESHOLD BUFFER SPACE 4,10,10 **** BUFFER DEFINITIONS. FBUF EQU BFMS-502-LENF*5+1*5 NFL/INPUT/EOI BUFFER CBUF EQU FBUF-504 CONTROL POINT AREA SECTOR BUFFER ERRNG EPFW-CBUF-ZAVL CHECK *0AV* OVERFLOW ERRNG BFMS-CBUF-ZQML CHECK *0QM* OVERFLOW TITLE OVERLAY COMMUNICATION MACROS. OVERLAY SPACE 4,10 ** OVERLAY - GENERATE OVERLAY CONSTANTS. * * QUAL OVERLAY (TEXT),ADDR * * QUAL OVERLAY QUALIFIER NAME * TEXT TEXT OF SUBTITLE. * ADDR OPTIONAL LOAD ADDRESS, IF TO BE OTHER THAN *OVL*. NOREF .M PURGMAC OVERLAY .M SET 0 MACRO OVERLAY,Q,T,A LOCAL LADDR QUAL .M SET .M+1 USE LITERALS .1 MICRO .M,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ .3 MICRO 1,3, 3T".1" Q_O EQU 1R".1" Q MICRO 1,4, O_Q TITLE ".3" - T IDENT ".3","Q" - T *COMMENT 1TA - T COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. ORG A OVL "Q" LJM * UJN *-2 QUAL Q OVERLAY ENDM ENTRY SPACE 4,10,10 ** ENTRY - DEFINE OVERLAY ENTRY POINT. * * ENTRY NAME * * ENTRY *NAME* = NAME OF ENTRY ADDRESS. PURGMAC ENTRY ENTRY MACRO NAME QUAL NAME EQU *+1R".1"*10000 QUAL * ENTRY ENDM FCN SPACE 4,10,10 ** FCN - DEFINE FUNCTION PROCESSOR. * * FCN NAME * * ENTRY *NAME* = NAME OF FUNCTION PROCESSOR. NOREF .I .I SET 0 MACRO FCN,L,A LOC .I/2+1 L CON A/10000,A-A/10000*10000 .I SET .I+2 ENDM SCLASS SPACE 4,15 ** SCLASS - DEFINE SERVICE CLASS TABLE. * * SCLASS NM,MN,DF,ST,TX * * ENTRY *NM* = SERVICE CLASS NAME. * *MN* = TWO CHARACTER MNEMONIC. * *DF* = DAYFILE MESSAGE CHARACTER. * *ST* = SHORT TEXT FOR *QFTLIST*. * *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. * * NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF * THIS MACRO. PURGMAC SCLASS SCLASS MACRO NM,MN,DF,ST,TX .A IFC NE,$NM$SSSC$ .SCL RMT INDEX NM,1R_DF TX .SCL RMT .SCLVSP RMT INDEX NM,MN_MK TX .SCLVSP RMT .A ENDIF SCLASS ENDM SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S *CALL COMSSCD TITLE MAIN PROGRAM. 1TA SPACE 4,10 ** 1TA - MAIN PROGRAM. * * LOADS AND EXECUTES THE VARIOUS FUNCTION PROCESSOR * OVERLAYS. * * CALLS CHG, EXR, PPR, SPA, STA, UPP. ORG PPFW ITA LJM INI INITIALIZE * ENTRY FROM FUNCTION PROCESSOR. ITAX AOM ITAC INCREMENT TO NEXT ENTRY * LJM DPP (IF SINGLE FUNCTION) LMN VCPC NJN ITA1 IF NOT THE END OF A POT STM ITAC LDC * READ UP NEXT POT ITAA EQU *-1 STD PP RJM UPP GET NEXT POT ZJN ITA2 IF LAST POT PROCESSED STM ITAA RJM SPA SET POT ADDRESS STM ITAB+1 SHN -14 ADC LDCI STM ITAB * MULTIPLE FUNCTION RETURN FROM *INI*. ITA1 LDC * READ UP ENTRY ITAB EQU *-2 ADC 0 ITAC EQU *-1 CRD IR LDD TN NJN ITA4 IF STILL MORE ENTRIES TO PROCESS ITA2 LDD IA SET COMPLETION CRD IR LDN ZERL CRD IR-3 ITAD LDC * CWD IR * ENTRY TO DROP PPU. DPP MONITOR DPPM DROP PPU LJM PPR RETURN TO PP RESIDENT * SINGLE FUNCTION RETURN FROM *INI*. ITA4 RJM STA SET TERMINAL TABLE ADDRESS LDD IR+2 GENERATE FUNCTION CODE INDEX SHN 1 STD T7 SBN TFCNL+1 MJN ITA6 IF LEGAL FUNCTION CODE ITA5 LDN 0 SET NO ERROR FLAG RJM CHG CONDITIONALLY HANG PP UJP DPP DROP PP ** *1TA* FUNCTION LOAD. * * ENTRY (T7) = FUNCTION CODE INDEX. ITA6 LDM TFCN-1,T7 SET PROCESSOR ADDRESS ZJN ITA5 IF UNDEFINED FUNCTION STM ITAE LDM TFCN-2,T7 SET OVERLAY NAME ZJN ITA7 IF NO OVERLAY REQUIRED SHN 6 LMM OVL-4 SCN 77 ZJN ITA7 IF OVERLAY ALREADY LOADED LDM TFCN-2,T7 LOAD OVERLAY LMC 2L3T RJM EXR LOAD OVERLAY ITA7 LJM * PROCESS REQUEST ITAE EQU *-1 TFCN SPACE 4,10 ** TFCN - TABLE OF FUNCTION CODE PROCESSORS. * * ENTRY - TWO WORDS. * WORD 1 = FUNCTION PROCESSOR OVERLAY NAME. * WORD 2 = FUNCTION PROCESSOR ADDRESS. TFCN BSS 0 FCN TFL ADJUST TIMESHARING EXECUTIVE FIELD LENGTH FCN CIQ CREATE INPUT QUEUE ENTRY FCN IAM ISSUE ACCOUNTING MESSAGES FCN IRL INCREMENT RESOURCE LIMIT FCN RJS RETURN JOB STATUS LOC *O TFCNL EQU *-TFCN LENGTH OF FUNCTION TABLE TITLE GENERAL SUBROUTINES. CCA SPACE 4,10 ** CCA - COMPUTE CPA/PCPA ADDRESS. * * ENTRY (A) = CP/PCP NUMBER. * (NC) = NUMBER OF CONTROL POINTS. * * EXIT (A) = CPA/PCPA ADDRESS. CCA1 ADD NC SHN 7 CCA SUBR ENTRY/EXIT SBD NC MJN CCA1 IF CONTROL POINT ZJN CCA1 IF SYSTEM CONTROL POINT SHN 7 CCAA ADC ** (PCP AREAS BASE ADDRESS) UJN CCAX RETURN CFN SPACE 4,10 ** CFN - CHECK FILE NAME. * * ENTRY (A) = ADDRESS OF FILE NAME 1. * (DF - DF+3) = FILE NAME 2. * * EXIT (A) = ZERO IF FILE NAMES MATCH. * * USES T3. CFN SUBR ENTRY/EXIT STD T3 SAVE ADDRESS OF FILE NAME LDI T3 COMPARE FIRST TWO CHARACTERS LMD DF NJN CFNX IF NO MATCH LDM 1,T3 COMPARE NEXT CHARACTERS LMD DF+1 NJN CFNX IF NO MATCH LDM 2,T3 COMPARE NEXT CHARACTERS LMD DF+2 NJN CFNX IF NO MATCH LDM 3,T3 COMPARE LAST CHARACTER LMD DF+3 SCN 77 UJN CFNX RETURN CHG SPACE 4,10 ** CHG - CONDITIONALLY HANG PP. * * ENTRY (A) = ERROR FLAG. * * EXIT (A) = ZERO. * * USES CM - CM+4. * * MACROS MONITOR. CHG SUBR ENTRY/EXIT STD CM+2 SET ERROR FLAG LDM CHG GET ADDRESS WHERE ERROR DETECTED STD CM+1 MONITOR CHGM CONDITIONALLY HANG PP UJN CHGX RETURN DPT SPACE 4,10 ** DPT - DROP POTS. * * ENTRY (PP) = FIRST POT CHAIN TO BE DROPPED. * (TN) = TERMINAL NUMBER. * * EXIT MONITOR FUNCTION TO DROP POT(S) COMPLETE. * * USES T1, CM - CM+4. * * CALLS ITF. DPT SUBR ENTRY/EXIT LDN ZERL CLEAR REQUEST WORD CRD CM LDC VDPO DROP POTS STD CM LDD PP STD CM+3 RJM ITF ISSUE *TSEM* FUNCTION UJN DPTX RETURN ERX SPACE 4,10,10 ** ERX - ERROR EXIT. * * EXIT COMPLETION BIT AND ERROR BIT SET IN VROT. * * USES CM+4. * * USES CN - CN+4. * * NOTE *ERX* IS ENTERED BY A RETURN JUMP TO ALLOW * SAVING THE ADDRESS AT WHICH THE ERROR OCCURRED. ERX CON 0 ENTRY / RETURN ADDRESS SAVED RJM STT GET TERMINAL TABLE ADDRESS ADK VROT CRD CN LDD CN+4 INSURE ERROR AND COMPLETION BIT SET LPC 3776 LMC 4001 STD CN+4 RJM STT SET TERMINAL TABLE ADDRESS ADK VROT CWD CN LJM ITAX DROP PP ITF SPACE 4,10 ** ITF - ISSUE *TSEM* FUNCTION. * * ENTRY (CM - CM+4) = *TSEM* REQUEST. * * USES T1, CM - CM+4. * * MACROS DELAY, MONITOR, PAUSE. ITF SUBR ENTRY/EXIT LDD TN STD CM+4 LDD MA CWD CM ITF1 LDK ZERL CRD CM MONITOR TSEM LDD CM+1 ZJN ITFX IF *IAF* INACCESSIBLE OR ERROR LMC 7777 NJN ITFX IF REQUEST COMPLETE PAUSE ST LDC 3600 *TSEM* QUEUE FULL - DELAY AND RETRY STD T1 ITF2 DELAY SOD T1 ZJN ITF1 IF TIME TO REISSUE REQUEST UJN ITF2 CONTINUE TO DELAY MSR SPACE 4,10 ** MSR - MASS STORAGE READ ERROR PROCESSOR. * * EXIT TO RRF1 TO SET UP ERROR EXIT CONDITIONS. MSR SUBR ENTRY/EXIT UJN RRF1 SET EXIT RRF SPACE 4,20 ** RRF - READ ROLLOUT FILE. * * ENTRY (A) = 0, READ SYSTEM SECTOR AND CPA SECTOR. * (A) = CPSN, READ CPA SECTOR ONLY. * (CN - CN+1) = ROLLOUT FILE ADDRESS. * * EXIT (A) = 0, IF NO ROLLOUT FILE OR IF READ ERROR * ENCOUNTERED. * (A) .NE. 0, IF ROLLOUT FILE READ WITHOUT ERROR. * SYSTEM SECTOR READ INTO *BFMS*, IF REQUESTED. * FIRST SECTOR OF CPA READ INTO *CBUF*. * * USES T5, T6, T7. * * CALLS RNS, RSS. * * MACROS ENDMS, SETMS. RRF SUBR ENTRY/EXIT STD T7 SET FIRST SECTOR TO READ LDD CN+1 SET TRACK STD T6 ZJN RRFX IF EMPTY ROLLOUT FILE LDD CN STD T5 SET EQUIPMENT SETMS IO LDD T7 NJN RRF2 IF NOT STARTING WITH SYSTEM SECTOR * READ SYSTEM SECTOR. RJM RSS READ SYSTEM SECTOR NJN RRF1 IF ERROR IN SYSTEM SECTOR LDM FNSS+4 SHN -6 LMN ROFT ZJN RRF2 IF ROLLOUT FILE TYPE ENDMS RRF1 LDN 0 UJN RRFX RETURN, ROLLOUT FILE BAD * READ CONTROL POINT AREA SECTOR. RRF2 LDC CBUF READ FIRST SECTOR OF CPA RJM RNS READ NEXT SECTOR ENDMS LDN 1 INDICATE GOOD ROLLOUT FILE LJM RRFX RETURN STT SPACE 4,10,10 ** STT - SET TERMINAL TABLE ADDRESS. * * ENTRY (TT - TT+1) = TERMINAL TABLE ADDRESS. * * EXIT (A) = TERMINAL TABLE ADDRESS STT SUBR ENTRY/EXIT LDD TT SHN 14 LMD TT+1 UJN STTX SPACE 4,10 * COMMON DECKS. *CALL COMPC2D IFP$ SET 1 ASSEMBLE REMOTE INITIALIZATION QFT$ SET 1 ASSEMBLE QFT ADDRESSING EJT$ SET 1 ASSEMBLE EJT ADDRESSING *CALL COMPGFP MSR$ EQU 0 DEFINE PROGRAM PROCESSED DISK ERRORS *CALL COMPRNS *CALL COMPRSS *CALL COMPSPA *CALL COMPSTA *CALL COMPUPP USE OVERLAY OVL EQU *+10 SPACE 4,10 IFP HERE INI TITLE INITIALIZATION. ** INI - INITIALIZE *1TA*. INI BSS 0 RJM IFP INITIALIZE *COMPGFP* LDK NCPL GET NUMBER OF CONTROL POINTS CRD CM AOD CM+1 SET NUMBER OF CONTROL POINTS STD NC LDK PCPP SET FWA OF PCPA-S CRD CM LDD CM+3 SHN 14 LMD CM+4 SBK 200B STM CCAA+1 SHN -14 LMC ADCI STM CCAA LDD IR+2 SET COMPLETION ADDRESS SHN 6 ADD RA SHN 6 ADD IR+3 STM ITAD+1 SHN -14 RAM ITAD ERRNG *-OVL-4 *OVL* OVERLAYS PRESET CODE LDN 0 CLEAR OVERLAY LOAD INDICATOR STM OVL-4 LDD IR+2 SET POT POINTER FOR REQUEST QUEUE SHN 6 MJN INI1 IF ONLY 1 FUNCTION * PROCESS MULTIPLE FUNCTION CALL. LDD IR+4 STD PP STM ITAA RJM SPA SET POT ADDRESS OF FIRST POT STM ITAB+1 SHN -14 RAM ITAB LJM ITA1 PROCESS MULTIPLE FUNCTION CALL * PROCESS SINGLE FUNCTION CALL. INI1 LDC -4000 CLEAR FUNCTION FLAG RAD IR+2 LDC LJMI SET TO DROP PP STM ITAX LDC DPP STM ITAX+1 LJM ITA4 PROCESS SINGLE FUNCTION CALL. SPACE 4,10 ** TEST FOR OVERFLOW. OVERFLOW PPFW,EPFW OVERFLOW INTO DISK ERROR PROCESSOR USE OVERFLOW ERRNG CBUF-* OVERFLOW INTO *CBUF* TFL OVERLAY (ADJUST TIMESHARING EXECUTIVE FIELD LENGTH.) TFL SPACE 4,10,10 **** TFL - ADJUST TIMESHARING EXECUTIVE FIELD LENGTH. * *T, IR 24/ ,12/ 1,6/ ,18/ FL * * FL FIELD LENGTH REQUESTED. TFL SPACE 4,10,10 ** TFL - ADJUST TIMESHARING EXECUTIVE FIELD LENGTH. * * USES WC, CM - CM+4, IR - IR+4, T2 - T7. * * CALLS RSI. ENTRY TFL LDD IR+3 SHN 14 ADD IR+4 ADN 77 SHN -6 RJM RSI REQUEST STORAGE INCREASE/DECREASE NJN TFL2 IF STORAGE INCREASE NOT AVAILABLE LDN ZERL CRD CM LDD RA RESET TOTAL POTS AVAILABLE AND CLEAR FLAG SHN 6 ADN VCPL CRD T2 ADN VPAL-VCPL CWD T2 SBN VPAL-VCPL CWD CM INDICATE FL CHANGE COMPLETE LDD CP READ FIELD LENGTH CONTROL WORD ADN FLCW CRD CM LDD FL SET CURRENT FL AS RFL STD CM+1 LDD CP ADN FLCW CWD CM UJN TFL3 EXIT TFL2 LDD IA SET PP RECALL CRD IR LDN ZERL CRD CM LDD MA CWD IR ADN 1 CWD CM LDC 4000 SET TO NOT DROP PP STD CM+1 MONITOR RECM TFL3 LJM ITAX EXIT SPACE 4,10 * COMMON DECKS. *CALL COMPRSI SPACE 4,10 ** TEST FOR OVERFLOW. OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR CIQ OVERLAY (CREATE INPUT QUEUE ENTRY.) CIQ SPACE 4,20 ** CIQ - CREATE INPUT QUEUE ENTRY. * *T, IR 24/ ,12/ FC,12/ TN,12/ PP * * FC = FUNCTION CODE. * TN = TERMINAL NUMBER. * PP = POT POINTER LOGIN PARAMETERS. * * *1TA* WILL CREATE AN INPUT FILE AND A *QFT* * ENTRY FOR A LOGIN. THE INPUT FILE WILL CONTAIN * PRELIMINARY CONTROL CARDS FOR LOGIN. PARAMETERS * ON THE CARDS ARE TAKEN FROM *VALIDUZ* FILE AND ARE * USED FOR DEFAULT VALUES. * * IF NO INPUT QUEUE ENTRY CAN BE CREATED BECAUSE THE * INFORMATION COULD NOT BE WRITTEN TO DISK (DUE TO A * MASS STORAGE ERROR), AN ERROR CODE IS RETURNED TO *IAF*. ENTRY CIQ ENTRY LDC CSS0.1 INITIALIZE INSTRUCTION MODIFICATIONS STM CSSG LDC LDNI+2 STM CIQB RJM PLI PRE LOG IN USER LDN 0 CLEAR QFT ORDINAL STD QF LDC 101 CLEAR SECTOR STD T1 LDC BFMS RJM CBU CLEAR BUFFER RJM CEF CHECK EJT FULL CIQ0 RJM CSS CREATE SYSTEM SECTOR RJM CIS CREATE INPUT SECTOR * QUEUE FILE - WRITE QFT ENTRY. LDN QFTE*5-1 SAVE QFT ENTRY STD T4 CIQ1 LDM IOSS,T4 STM CIQA,T4 SOD T4 PJN CIQ1 IF MORE TO MOVE RJM WDI WRITE DISK INFORMATION PJN CIQ2 IF NO MASS STORAGE ERROR ENCOUNTERED * MASS STORAGE ERROR ENCOUNTERED - RELEASE TRACKS AND RETRY. LDN ZERL DROP TRACKS CRD CM LDD T5 EST ORDINAL TO DROP STD CM+1 LDD T6 TRACK TO DROP STD CM+2 MONITOR DTKM SOM CIQB CIQB LDN 2 * LDN 1 (AFTER FIRST TRY FAILED) * LDN 0 (AFTER SECOND TRY FAILED) NJP CIQ0 IF RETRY ATTEMPT NEEDED * RETURN QFT ENTRY TO POOL. RETURN MASS STORAGE ERROR CODE * CODE TO *IAFEX*. LDD QF QFT ORDINAL STD CM+1 LDN PQFT ENTRY IS IN QFT STD CM+2 MONITOR MTRM LDN 20 MASS STORAGE ERROR ENCOUNTERED STD CN+4 RJM SPA ADN VUTA CWD CN RJM ERX ERROR EXIT (EXIT TO *ITAX*) CIQ2 LDN QFTE STD T4 SFA QFT,QF CWM CIQA,T4 WRITE QFT ENTRY * ISSUE *ABLQ* ACCOUNTING MESSAGE. LDC 2RAB STM CBUF-2 LDC 2RLQ STM CBUF-1 EXECUTE 0QM,CBUF ISSUE ACCOUNT MESSAGE * REQUEST SCHEDULER. LDN ZERL CLEAR PARAMETERS CRD CM AOD CM+2 SET QFT SCHEDULING OPTION MONITOR RSJM LJM ITAX TERMINATE CIQA BSS QFTE*5 QFT ENTRY BUFFER CBU SPACE 4,10 ** CBU - CLEAR BUFFER. * * ENTRY (A) = FWA OF AREA TO CLEAR. * (T1) = NUMBER OF CM WORDS TO CLEAR. * * EXIT BUFFER CLEARED. * * USES T1, T2. CBU SUBR ENTRY/EXIT STM CBUA SAVE ADDRESS TO START CLEARING LDN 7 STD T2 LDD OA CLEAR OUTPUT REGISTER AND MESSAGE BUFFER CWM CBUB,T2 CBU1 LCN 7 RAD T1 PJN CBU2 IF SEVEN OR MORE WORDS LEFT TO CLEAR RAD T2 ADJUST WORD COUNT CBU2 LDD OA CRM *,T2 CBUA EQU *-1 LDN 7*5 ADVANCE BUFFER ADDRESS RAM CBUA LDD T1 ZJN CBUX IF COMPLETE SHN 21-13 PJN CBU1 IF NOT COMPLETE UJN CBUX RETURN CBUB BSSZ 7*5 CEF SPACE 4,10 ** CEF - CHECK EJT FULL. * * EXIT TO *SEC* IF NUMBER OF AVAILABLE ENTRIES IN THE EJT * ARE .LT. *EJTT*. * * USES CM - CM+4. CEF SUBR ENTRY/EXIT LDK EJTP CRD CM LDD CM+3 SBN EJTT EJT THRESHOLD VALUE PJN CEFX IF ENOUGH ENTRIES IN TABLE LDN 40 *SYSTEM FULL* RJM SEC SET ERROR CODE (NO RETURN) CIS SPACE 4,10 ** CIS - CREATE INPUT SECTOR. * * ENTRY SYSTEM SECTOR IN BFMS. * * EXIT INPUT CARDS CREATED IN FBUF. * (WC) = CM WORD COUNT IN SECTOR * * USES T1, T3, WC. * * CALLS ACS, ANS, CBF, DV5, SEL. CIS SUBR ENTRY/EXIT LDC 101 CLEAR SECTOR STD T1 LDC FBUF RJM CBU CLEAR BUFFER LDC FBUF+2 SET BUFFER ADDRESS STD T1 LDC JNSS SET UJN HASH RJM ACS LDC CISG SET PERIOD RJM ACS RJM SEL SET EOL LDC CISH SET USER CARD RJM ACS LDC CISB SET USERNAME RJM ACS LDC CISF SET COMMA RJM ACS LDC CISF SET COMMA RJM ACS LDC CISD SET FAMILY NAME RJM ACS LDC CISG SET PERIOD RJM ACS RJM SEL SET EOL STM CISA STORE PLACE TO CONTINUE ASSEMBLY LDN CISEL RJM DV5 WORD COUNT TO TRANSFER STD T2 LDD MA CWM CISE,T2 SBD T2 CRM *,T2 CISA EQU *-1 LDD T1 ADN CISEL ADC -FBUF+2 RJM DV5 DIVIDE BY 5 STD WC LJM CISX RETURN CISB BSS 5 USERNAME CISC BSS 5 PASSWORD CISD BSS 5 FAMILY NAME CISE VFD 60/10L$RECOVER,O VFD 60/4LP=T. CISEL EQU *-CISE CISF CON 1L, COMMA CISG CON 1L. PERIOD CISH VFD 36/5LUSER, CSS SPACE 4,30 ** CSS - CREATE SYSTEM SECTOR. * * CREATE SYSTEM SECTOR FOR INPUT FILE. * CREATE AN *QFT* ENTRY FOR THE NEW FILE. * * ENTRY (CISB) = CREATION USER NUMBER. * (CISD) = CREATE FAMILY NAME. * (ABUF = ABUF+15) = VALIDATION ACCOUNT BLOCK. * (IR+3) = TERMINAL NUMBER. * (CSSC) = LOWER ACCESS LEVEL LIMIT FOR JOB. * (CSSD) = UPPER ACCESS LEVEL LIMIT FOR JOB. * (CSSE) = SERVICE CLASS. * (QF) = 0, IF INITIAL *CSS* CALL (NO QFT ENTRY * ASSIGNED). * = QFT ORDINAL OF ASSIGNED ENTRY, IF INITIAL * CALL TO *CSS* RESERVED AN ENTRY BUT THE * SYSTEM SECTOR COULD NOT BE WRITTEN DUE TO * AN I/O ERROR. * * EXIT (T5) = EQUIPMENT. * (T6) = TRACK. * (T7) = SECTOR. * (QF) = QFT ORDINAL OF ASSIGNED ENTRY. * *QFT* ENTRY IN IOSS. * SYSTEM SECTOR CREATED IN BFMS. * CORRECT EOI SET IN TRT. * * USES CM - CM+4, FN - FN+4, QF, T1, T2, T5, T6. * * CALLS CTE, GNB, RFI, RJC, SEC, STT, TLI. * * MACROS MONITOR. CSS SUBR ENTRY/EXIT LDN ZERL CLEAR PARAMETERS CRD CM LDN INPS SELECT INPUT DEVICE STD CM+2 LDM CSSC SELECT ON LOWER ACCESS LEVEL OF JOB ADN 40 SHN 6 STD CM+3 LDN 3 SET NUMBER OF SECTORS STD CM+4 MONITOR RTCM ASSIGN MASS STORAGE SPACE LDD CM+1 SET EQUIPMENT STD T5 LDD CM+4 SET TRACK STD T6 NJN CSS0 IF TRACK ASSIGNED LDD QF QFT ORDINAL ZJN CSS1 IF NO QFT ENTRY RESERVED STD CM+1 LDN PQFT ENTRY IS IN QFT STD CM+2 MONITOR MTRM RETURN QFT ENTRY TO POOL * LDN 0 UJN CSS1 SET ERROR STATUS CSS0 LJM CSS0.1 REQUEST QFT ENTRY * LJM CSS2.1 (QFT ENTRY PREVIOUSLY REQUESTED/ASSIGNED) CSSG EQU *-1 * REQUEST *QFT* ENTRY. CSS0.1 LDN ZERL CLEAR FIRST WORD VALUE CRD CM+3 LDN 7 STD CM+7 SET INTERLOCK BIT LDN PQFT GET QFT ENTRY WITH JSN RJM CTE CREATE TABLE ENTRY NJN CSS2 IF QFT NOT FULL LDN ZERL CLEAR PARAMETERS CRD CM LDD T5 SET EQUIPMENT AND TRACK TO DROP STD CM+1 LDD T6 STD CM+2 MONITOR DTKM DROP TRACKS LDN 40 FLAG *SYSTEM FULL* ERROR CSS1 RJM SEC SET ERROR CODE (NO RETURN) * FORMAT SYSTEM SECTOR AND *QFT* ENTRY. CSS2 CRM IOSS,ON READ INTO SYSTEM SECTOR QFT SBN 1 CRM OJSS,ON LDC CSS2.1 BYPASS FORMATTING ON SUBSEQUENT CALLS STM CSSG LDD CM+1 SAVE QFT ORDINAL STD QF STM GQSS LDD CP SET CREATING JOB JSN ADK TFSW CRD CM SFA EJT,CM ADK JSNE CRM CJSS,ON LDN 0 STM CJSS+2 STM PRSS RJM STT GET TERMINAL TABLE ADDRESS ADK VFST CRD CM LDM IOSS ADD JSN TO *VFST* STD CM LDM IOSS+1 STD CM+1 RJM STT ADK VFST CWD CM CSS2.1 LDK RTCL SET ENTRY TIME CRD CM LDD CM STM IOSS+ENTQ*5+3 LDD CM+1 STM IOSS+ENTQ*5+4 LDD T6 SET TRACK STM IOSS+ENTQ*5+1 LDD T5 SET EQUIPMENT STM IOSS+ENTQ*5 LDC NOQF*100 SET QUEUE FILE TYPE STM IOSS+JSNQ*5+4 LDC ** CSSE EQU *-1 (SERVICE CLASS TO ASSIGN) SHN 6 ADN IAOT SET ORIGIN TYPE STM IOSS+SCLQ*5 LDN PDTL SET PACKED DATE AND TIME CRD CM LDD CM+2 STM CDSS+2 LDD CM+3 STM CDSS+3 LDD CM+4 STM CDSS+4 LDN IPRL SET DEFAULT KEYPUNCH MODE CRD CM LDD CM+2 SHN -13 STM JFSS LDN 3 SET FLAGS - FILE IN ACTIVE QUEUE STM FGSS LDC 2RIN SET DISPOSITION CODE STM DCSS LDC MMFL SET MACHINE ID CRD CM LDD CM STM RMSS STM CMSS LDN 3 SET FILE LENGTH IN SECTORS STM FLSS+1 LDC FLSS GET ADDRESS OF SYSTEM SECTOR FILE LENGTH RJM RFI SET FILE SIZE INDEX IN QFT ENTRY LDD MA SET CREATION USER NUMBER CWM ABUF+ACCN*5,ON CWM CISD,ON SET CREATION FAMILY SBN 2 CRM ACSS,ON CRM FMSS,ON SBN 2 CRM OASS,ON CRM FOSS,ON LDN 0 CLEAR CONTROL POINT AND SLID STM CPSS STM SLSS+1 LDM SLSS SCN 77 STM SLSS LDD PA GET TERMINAL NAME FROM POT SHN 14 ADD PA+1 ADN VTRY CRM TNSS,ON LDD IR+3 SET TERMINAL NUMBER STM TRSS LDM ABUF+ATIS*5+1 SET INITIAL INTERACTIVE SUBSYSTEM SHN -6 LPN 37 LMM ISSS LPN 77 LMM ISSS STM ISSS LDM ABUF+APXI*5+3 SET INTERACTIVE PW EXPIRATION DATE LPN 77 STM PESS LDM ABUF+APXI*5+4 STM PESS+1 * MOVE FIRST HALF OF VALIDATION ACCOUNT BLOCK TO SYSTEM SECTOR. LDN 0 STD T1 CSS3 LDM ABUF,T1 STM VASS,T1 AOD T1 LMC ABSS*5 NJN CSS3 IF NOT LAST BYTE * SET USER INDEX/FAMILY ORDINAL/ACCESS LEVEL LIMITS INTO QFT. LDM ABUF+AUIN*5+3 GET USER INDEX LPN 77 STM IOSS+JSNQ*5+2 STD T1 FOR BANNER NAME LDM ABUF+AUIN*5+4 STM IOSS+JSNQ*5+3 STD T2 FOR BANNER NAME LDC * SAVE FO CSSA EQU *-1 FAMILY ORDINAL - SET BY *PLI* SHN 6 POSITION FO RAM IOSS+JSNQ*5+2 LDM IOSS+INSQ*5+3 SET ACCESS LEVEL LIMITS SHN -11 SHN 3 LMC * CSSF EQU *-1 (LOWER ACCESS LEVEL LIMIT) SHN 3 LMC * CSSC EQU *-1 (INITIAL JOB ACCESS LEVEL) SHN 3 LMC * CSSD EQU *-1 (UPPER ACCESS LEVEL LIMIT) STM IOSS+INSQ*5+3 * GENERATE UJN FOR JOB. RJM GBN GENERATE BANNER NAME LDN ZERL CRD CM LDD T1 STD CM LDD T2 STD CM+1 LDD MA CWD CM CRM JNSS,ON * SET TIME LIMIT AND CM AND EM SERVICE LIMITS. LCN 0 PRESET LIMITS STM JCSS STM JESS LDM CSSE GET JCB ADDRESS RJM RJC ZJN CSS4 IF JCB NOT DEFINED ADN MCMT GET CM LIMIT CRD CM ADN MECT-MCMT GET EM LIMIT CRD FN LDD CM+2 SET LIMITS IN SYSTEM SECTOR STM JCSS LDD FN+2 STM JESS CSS4 LDM VASS+AHTL*5+2 GET TIME LIMIT RJM TLI COMPUTE TL/10B SHN 3 STM JTSS+1 SHN -14 STM JTSS * SET LOCAL FNT WORD. LDD MA CWM CSSB,ON SBN 1 CRM FNSS,ON LJM CSSX RETURN CSSB VFD 42/0LINPUT,6/0,6/INFT,6/0 PLI SPACE 4,25 ** PLI - PRE LOG IN USER. * * VALIDATES USER NUMBER AND PASSWORD. * * ENTRY (IR+4) = POT POINTER TO POT WITH * LOGIN INFORMATION. * * EXIT IF VALID, USER INDEX AND ACCOUNT INFORMATION * RETURNED TO TERMINAL TABLE AND USER VALIDATION FIELDS * PRESET IN CONTROL POINT AREA. * (CSSC) = LOWER ACCESS LEVEL LIMIT FOR JOB. * (CSSD) = UPPER ACCESS LEVEL LIMIT FOR JOB. * (CSSE) = SERVICE CLASS TO BE ASSIGNED. * IF NOT VALID OR IF *0AV* ENCOUNTERED AN INACCESSIBLE * DEVICE OR A MASS STORAGE ERROR, AN ERROR CODE IS * RETURNED. * * USES OT, PP, T1, T2, T3, T5, T7, CM - CM+4, CN - CN+4, * DF - DF+4, FN - FN+4. * * CALLS ERX, GFM, GFO, ITF, SPA, VPW, VSP, *0AV*. * * MACROS EXECUTE, MONITOR. PLI SUBR ENTRY/EXIT LDD IR+4 POT POINTER WITH LOGIN INFORMATION STD PP RJM SPA SET POT ADDRESS ADN VFNA SET FAMILY NAME FOR 0AV CRD CN CRM CISD,ON ADK VUNA-VFNA-1 GET USER NAME CRD DF CRM CISB,ON LDD CN NJN PLI2 IF FAMILY NAME SUPPLIED LDD CN+4 NJN PLI1 IF FAMILY ORDINAL SUPPLIED LDN 1 SET DEFAULT FAMILY ORDINAL PLI1 RJM GFM GET FAMILY NAME LDD FN+3 SCN 77 STD FN+3 LDN 0 STD FN+4 LDD MA CWD FN CRD CN CRM CISD,ON PLI2 LDD DF+3 CLEAR UI FIELD SCN 77 STD DF+3 STM CISB+3 LDN 0 STD DF+4 STD CN+4 STM CISB+4 EXECUTE 0AV,CBUF PJN PLI3 IF NO MASS STORAGE ERROR ENCOUNTERED LDN 20 FLAG MASS STORAGE ERROR LJM PLI19 SET ERROR CODE PLI3 LDD T4 SAVE (T4) STD T5 * CHECK FOR ACCOUNT FOUND. LDN 0 SET INDEX STD T7 LDD T1 CHECK USER INDEX ADD T2 NJN PLI4 IF ACCOUNT FOUND LJM PLI16 SET ERROR * MOVE USER ACCOUNT BLOCK. PLI4 LDI T3 STM ABUF,T7 AOD T3 AOD T7 LMC ARBS*5 NJN PLI4 IF NOT LAST BYTE STD T2 INITIALIZE TABLE INDEX * SET SERVICE CLASS. LDM ABUF+ASC1*5+1 GET USER DEFAULT FOR INTERACTIVE ORIGIN LPN 77 STD T1 PLI5 LDM TVSC,T2 SEARCH FOR VALID SERVICE CLASS LMD T1 ZJN PLI6 IF MATCH FOUND AOD T2 INCREMENT TABLE INDEX LDN MXSC SBD T2 MJN PLI8 IF END OF TABLE UJN PLI5 CHECK NEXT ENTRY PLI6 STD T3 CHECK IF SERVICE CLASS IS VALID FOR USER LDN IAOT SET ORIGIN TYPE STD OT LDD T2 SET SERVICE CLASS STM CSSE PLI7 LDD MA GET VALIDATION MASK CWM ABUF+ASCV*5,ON SBN 1 CRD CN LDM CSSE RJM VSP VALIDATE SERVICE CLASS ZJN PLI12 IF NO ERROR LMN 3 PLI8 NJN PLI10 IF NOT SERVICE CLASS FULL LDN NSVR NUMBER OF SERVICE CLASS VALIDATION RETRIES PLIA EQU *-1 ZJN PLI11 IF NO MORE RETRIES POSSIBLE SOM PLIA DECREMENT RETRY COUNT LDC 3600 DELAY PRIOR TO RETRY STD T1 PLI9 DELAY SOD T1 NJN PLI9 IF NOT DONE DELAYING UJN PLI7 RETRY SERVICE CLASS VALIDATION PLI10 LDN 2&4 SET INVALID SERVICE CLASS ERROR PLI11 LMN 4 STD CN+4 LJM PLI19 PROCESS ERROR * GET FAMILY ORDINAL. PLI12 LDD MA SET FAMILY NAME CWM CISD,ON SBN 1 CRD FN LDN 1 DO NOT ADD FAMILY NAME TO FOT RJM GFO GET FAMILY ORDINAL ZJN PLI13 IF NO ERROR OCCURRED LJM PLI16 SET ERROR PLI13 RJM STT ADK VUIT CRD CM LDD FN+4 INSERT FAMILY ORDINAL IN TERMINAL TABLE STM CSSA ADK VUFO LDD CM+3 SCN 77 LMD FN+4 STD CM+3 RJM STT ADK VUIT CWD CM * CHECK FOR VALID USER. LDD RA CHECK TERMINAL TYPE SHN 6 ADN VNTP CRD DF LDD DF+2 ZJN PLI14 IF NO NETWORK TERMINALS SBD TN SBN 1 MJN PLI17 IF NETWORK TERMINAL PLI14 LDD T5 CHECK UI FLAG FROM *0AV* NJN PLI16 IF UI EXCEEDS AUIMX RJM VPW VALIDATE PASSWORD NJN PLI16 IF INVALID PASSWORD LDD T6 NJN PLI18 IF SECURITY COUNT NOT EXHAUSTED LDN 1 FLAG *SECURITY COUNT EXHAUSTED* ERROR PLI15 LJM PLI19 SET ERROR CODE PLI16 LDN 0 FLAG *INVALID USER* ERROR UJN PLI15 SET ERROR CODE PLI17 LDD PA READ PASSWORD SHN 14 LMD PA+1 ADN VPWA CRD CM LDD CM ZJN PLI18 IF PASSWORD IS ZERO, BYPASS VALIDATION RJM VPW VALIDATE PASSWORD MJN PLI16 IF PASSWORD IS NOT VALID, ERROR EXIT LDD PA CLEAR PASSWORD FIELD IN PARAMETER POT SHN 14 LMD PA+1 ADN VPWA CRD CM LDN 0 STD CM LDD PA SHN 14 LMD PA+1 ADN VPWA CWD CM * DETERMINE VALID ACCESS LEVELS AND CATEGORIES FOR JOB. PLI18 LDD PA GET LINE ACCESS LEVEL LIMIT SHN 14 LMD PA+1 ADN VLAL CRD CM LDD CM+4 SET UPPER ACCESS LEVEL LIMIT TO LINE LIMIT LPN 7 STD CM+3 LDN 0 SET LOWER ACCESS LEVEL LIMIT STD CM+4 LDN IAOT STD CM+2 LDN VJCS VALIDATE JOB CREATION PARAMETERS STD CM+1 LDD MA CWM ABUF+ASVW*5,ON SET SECURITY VALIDATION WORD MONITOR VSAM LDD MA CRM ABUF+ASVW*5,ON READ UPDATED SECURITY VALIDATIONS LDD CM+4 SAVE RESTRICTED ACCESS LEVEL LIMITS STM CSSF LDD CM+3 STM CSSD LDD CM+2 SAVE INITIAL JOB ACCESS LEVEL STM CSSC LDD CM+1 ZJN PLI20 IF NO REJECT LDN 10 FLAG *SECURITY VIOLATION* ERROR PLI19 RJM SEC SET ERROR CODE (NO RETURN) * USER SUCCESSFULLY VALIDATED. * PUT VALIDATION IN POT AND TERMINAL TABLE. PLI20 LDD PA SHN 14 ADD PA+1 ADN VUTA CWM ABUF+AAWC*5,ON ADK VUTD-VUTA-1 CWM ABUF+ATPA*5,ON LDM ABUF+ATPA*5+1 SHN 21-13 PJN PLI21 IF NORMAL MODE LDN ZERL CLEAR REQUEST WORD CRD CM LDC VSCS SET CHARACTER SET MODE STD CM LDN 11 STD CM+2 RJM ITF ISSUE *TSEM* FUNCTION PLI21 LJM PLIX RETURN TSVC SPACE 4,10 ** TSVC - TABLE OF VALID USER DEFAULT SERVICE CLASSES. * *T 12/ SUFFIX * SUFFIX = ONE CHARACTER SUFFIX, RIGHT JUSTIFIED, FOR SERVICE * CLASS. TVSC INDEX LIST D .SCL HERE LIST * INDEX MXSC SEC SPACE 4,10 ** SEC - SET ERROR CODE. * * ENTRY (A) = ERROR CODE. * * EXIT TO *ERX*. * ERROR CODE SET IN BYTE 4, WORD *VUTA* OF LOGIN POT. * * USES CN - CN+4. * * CALLS SPA, ERX. SEC SUBR ENTRY STD CN+4 RJM SPA ADN VUTA CWD CN RJM ERX ERROR EXIT (NO RETURN) SEL SPACE 4,10 ** SEL - SET END OF LINE. * * ENTRY (T1) = LAST BYTE ASSEMBLED IN FBUF. * * EXIT (T1) = NEXT BYTE TO ASSEMBLE INTO IN FBUF. * * USES T1, T2. * * CALLS DV5. SEL SUBR LDI T1 ZJN SEL1 IF ZERO BYTE AOD T1 SEL1 LDD T1 ADC -FBUF-2+5 ROUND UP RJM DV5 STD T2 SHN 2 * 4 ADD T2 * 5 ADC FBUF+2-1 STD T1 POSSIBLE EOL LDI T1 ZJN SEL2 IF EOL IN PLACE LDN 5 RAD T1 SEL2 AOD T1 SET NEXT BYTE TO ASSEMBLE INTO UJN SELX EXIT VPW SPACE 4,10 ** VPW - VALIDATE PASSWORD. * * ENTRY (PA - PA+1) = ADDRESS OF LOGIN POT. * (ABUF) = VALIDATION FILE ENTRY. * * EXIT (A) = 0 IF PASSWORD VALID. * * USES CM - CM+4, DF - DF+4. * * CALLS CFN. * * MACROS MONITOR. VPW SUBR ENTRY/EXIT LDM ABUF+APWI*5+3 CHECK PASSWORD EXPIRATION DATE LPN 77 STD CM+3 SHN 14 LMM ABUF+APWI*5+4 ZJN VPW1 IF NONEXPIRING PASSWORD STD CM+4 LDN VEDS VALIDATE EXPIRATION DATE STD CM+1 MONITOR VSAM LDD CM+1 NJN VPWX IF PASSWORD EXPIRED VPW1 LDD PA READ PASSWORD SHN 14 LMD PA+1 ADN VPWA CRD CM LDD MA ENCRYPT PASSWORD CWD CM LDN REPS STD CM+1 MONITOR RDCM LDD MA CRD DF LDC ABUF+APWI*5 RJM CFN COMPARE PASSWORDS UJP VPWX RETURN WDI SPACE 4,20 ** WDI - WRITE DISK INFORMATION. * * ENTRY (T5) = EQUIPMENT. * (T6) = TRACK. * (T7) = SECTOR. * (BFMS) = SYSTEM SECTOR. * (FBUF) = INPUT SECTOR. * (WC) = WORD COUNT IN SECTOR. * * EXIT (A) = 0, IF NO ERRORS. THE SYSTEM SECTOR, THE INPUT * SECTOR, AND THE EOI SECTOR ARE WRITTEN. * .LT. 0, IF WRITE ERRORS ENCOUNTERED. * * USES FA, T1, T4, T7, KWC. * * CALLS CBU, WDS, WEI, WSS. * * MACROS SETMS, SFA. WDI SUBR ENTRY/EXIT * WRITE SECTORS. SETMS IO,,BFMS RJM WSS WRITE SYSTEM SECTOR MJN WDIX IF MASS STORAGE ERROR LDD T7 SET SECTOR LINKAGE ADN 1 STM FBUF LDD WC SET WORD COUNT STM FBUF+1 LDC FBUF+WCSF RJM WDS WRITE SECTOR MJN WDIX IF MASS STORAGE ERROR LDM FBUF SET NEXT SECTOR STD T7 LDD T6 SET FIRST TRACK IN EOI SECTOR STM FBUF+FTEI LDD MA TRANSFER FNT/FST/DATE TO *FBUF* CWM BFMS+2,TR SBN 3 CRM FBUF+2,TR LDN 75 CLEAR REMAINDER OF EOI STD T1 LDC FBUF+2+3*5 RJM CBU CLEAR BUFFER LDC FBUF RJM WEI WRITE EOI SECTOR MJN WDI1 IF MASS STORAGE ERROR ENDMS * LDN 0 INDICATE NO ERROR WDI1 LJM WDIX RETURN SPACE 4,10 * COMMON DECKS. *CALL COMPACS *CALL COMPANS *CALL COMPCTE TLI$ SET 1 *CALL COMPCVI *CALL COMPDV5 *CALL COMPGBN *CALL COMPRFI *CALL COMPRJC IF DEF,FA,1 ERR CHECK *COMPWSS* AND *COMPWEI* *CALL COMPSFI *CALL COMPSSE GFM$ SET 1 GFO$ SET 1 *CALL COMPUFT CJL$ EQU 1 CHECK IF SERVICE CLASS AT JOB LIMIT CUV$ EQU 1 CHECK IF USER VALIDATED FOR SERVICE CLASS *CALL COMPVSP WEI$ EQU 1 USE ALTERNATE EOI BUFFER *CALL COMPWEI WCS$ SET 1 USE WRITE CONTINOUS SECTORS IN *COMPWSS* *CALL COMPWSS USE OVERLAY ABUF EQU * USER ACCOUNT BLOCK SPACE 4,10 ** TEST FOR OVERFLOW. OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR USE OVERFLOW ERRNG CBUF-* OVERFLOW INTO *CBUF* IAM OVERLAY (ISSUE ACCOUNTING MESSAGES.) IAM SPACE 4,25 *** IAM - ISSUE ACCOUNTING MESSAGES. * *T, IR 24/ ,12/ FC,12/ APTN,12/ 400B * * FC = FUNCTION CODE. * APTN = ACCOUNTING PSEUDO TERMINAL NUMBER. * * REQUEST QUEUE FORMAT. *T, IR 36/ ,12/ TN,10/ ,1/O,1/R * * TN = TERMINAL NUMBER. * O = COMBINED INPUT/OUTPUT OVERFLOW FLAG. * R = RESOURCE TYPE. * = 0 IF OUTPUT. * = 1 IF INPUT. * * EXIT ACCOUNTING MESSAGES ISSUED. * TERMINAL TABLE SET TO COMPLETION STATUS. * * USES FP, PP, TN, WC, IR - IR+4, CM - CM+4, CN - CN+4, * DF - DF+4. * * CALLS DFM, DPT, SJN, SPA, STA, TWD, UPP. ENTRY IAM RJM STT SET TERMINAL TABLE ADDRESS ADK VROT CRD CN LDD CN+3 SET FIRST POT STD FP STD PP LDN 0 STD WC * PROCESS REQUEST POT. IAM1 RJM SPA READ REQUEST WORD ADD WC CRD IR LDD TN CHECK TERMINAL NUMBER NJN IAM2 IF NOT TERMINATOR LJM IAM4 COMPLETE PROCESSING IAM2 RJM STA SET TERMINAL TABLE ADDRESS ADK VUIT CRD DF ADK VFST-VUIT CRD CM LDD CM TRANSFER JSN STM MSFA LDD CM+1 STM MSFA+1 SFA EJT,DF+4 ADN SCLE CRD CM LDD CM SHN -6 STM MSFA+4 SET SERVICE CLASS LDD IR+4 SET RESOURCE TYPE LPN 1 STD T1 LDM TRST,T1 STM MSFB+1 LDD MA SET OVERFLOW QUANTITY CWM IAMA,ON SBN 1 CRM MSFC,ON LDC MSFA+AJNN ISSUE DAYFILE MESSAGE RJM DFM LDD IR+4 SHN 21-1 PJN IAM2.1 IF NO COMBINED OVERFLOW LDC 2RCT SET COMBINED OVERFLOW STM MSFB+1 LDD MA SET COMBINED OVERFLOW QUANTITY CWM IAMB,ON SBN 1 CRM MSFC,ON LDC MSFA+AJNN ISSUE DAYFILE MESSAGE RJM DFM IAM2.1 AOD WC INCREMENT POT ADDRESS LMN VCPC NJN IAM3 IF NOT AT END OF POT STD WC RESET TO FWA OF POT RJM UPP UPDATE POT POINTER ZJN IAM4 IF POT NOT LINKED IAM3 LJM IAM1 CONTINUE PROCESSING IAM4 STD CN+3 CLEAR POT POINTER LDD FP DROP POTS STD PP RJM DPT LDN ACPT RESET TERMINAL NUMBER STD TN AOD CN+4 SET COMPLETE RJM STA ADK VROT CWD CN LJM ITAX EXIT IAMA DATA 10H 4.096 INPUT OR OUTPUT OVERFLOW QUANTITY IAMB DATA 10H 16777.216 COMBINED INPUT/OUTPUT OVERFLOW QUANTITY TRST SPACE 4,10 ** TRST - TABLE OF RESOURCE TYPES. TRST BSS 0 DATA 2HCO CHARACTERS OUT DATA 2HCI CHARACTERS IN MSF SPACE 4,10 ** MSF - MESSAGE FORMAT FOR ACCOUNTING MESSAGES. MSFA DATA 10HJSNA SC JOB NAME MSFB DATA 6HUCXX, RESOURCE TYPE MSFC DATA 10H Q.QQQ QUANTITY DATA 6HKCHS. UNITS CON 0 TERMINATOR SPACE 4,10 ** TEST FOR OVERFLOW. OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR IRL OVERLAY (INCREMENT RESOURCE LIMIT.) IRL SPACE 4,20 *** IRL - INCREMENT RESOURCE LIMIT. * *T,IR 24/ ,12/ FC,12/ TN,12/ PP. * * FC = FUNCTION CODE. * TN = TERMINAL NUMBER. * PP = REQUEST POT POINTER. * * REQUEST POT FORMAT - *T, 36/ 0, 6/ FC, 18/ SR. * FC = *1RI* FUNCTION CODE. * SR = RESOURCE INCREMENT. * * INCREMENT SRU LIMIT. * * THE REQUESTED SRU INCREMENT IS PLACED IN THE ROLLOUT * FILE SYSTEM SECTOR FOR PROCESSING BY *1RI*, IF NO ERROR * ENCOUNTERED FROM READING/UPDATING THE ROLLOUT FILE. * IF A MASS STORAGE ERROR WAS ENCOUNTERED, AN ERROR CODE * IS RETURNED TO *IAF*. ENTRY IRL ENTRY RJM STT SET TERMINAL TABLE ADDRESS ADK VUIT CRD CN SFA EJT,CN+4 SET EJT ENTRY ADDRESS ADN SCHE CRD CN LDN SYSN SET TO READ SYSTEM SECTOR AND CPA RJM RRF READ ROLLOUT FILE NJN IRL1 IF NO ERROR ON READ LJM IRL6 RETURN ERROR CODE AND EXIT IRL1 LDD IR+4 SET REQUEST POT POINTER STD PP RJM SPA READ REQUEST POT CRD CM LDD CM+4 SET REQUEST IN SYSTEM SECTOR STM SRSS+4 LDD CM+3 STM SRSS+3 SHN -6 LMN RLIT NJN IRL3 IF NOT TIME LIMIT REQUEST LDM CBUF+2+SRUW*5 CHECK FOR VALIDATION LIMIT LPC 5777 CLEAR TIME LIMIT EXCEEDED FLAG STM CBUF+2+SRUW*5 SHN 6 PJN IRL3 IF NOT VALIDATION LIMIT IRL2 RJM ERX ERROR EXIT IRL3 LDM CBUF+2+SRUW*5 CHECK FOR SRU VALIDATION LIMIT LPC 7377 CLEAR SRU LIMIT FLAG STM CBUF+2+SRUW*5 SHN 10 MJN IRL2 IF VALIDATION LIMIT SET SETMS IO,(RW),BFMS LDN 0 SET SECTOR STD T7 LDC BFMS+WCSF REWRITE SYSTEM SECTOR STM WDSE RJM WDS MJN IRL6 IF MASS STORAGE ERROR ENCOUNTERED LDM CBUF REWRITE CONTROL POINT AREA SBN 1 STD T7 LDC CBUF+WLSF WRITE CONTROL POINT AREA SECTOR RJM WDS IRL5 MJN IRL6 IF MASS STORAGE ERROR ENCOUNTERED ENDMS RJM STT SET TERMINAL TABLE COMPLETE ADK VROT CRD CN AOD CN+4 RJM STT ADK VROT CWD CN LJM ITAX EXIT IRL6 LDN 20 INDICATE MASS STORAGE ERROR ENCOUNTERED STD CN+4 RJM SPA ADN VUTA CWD CN RJM ERX EXIT (TO *ITAX*) SPACE 4,10,10 ** COMMON DECKS. TLI$ SET 1 SELECT TIME LIMIT CONVERSION *CALL COMPCVI SPACE 4,10 ** TEST FOR OVERFLOW. OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR ERRMI CBUF-* OVERFLOW INTO BUFFER AREA SPACE 4,10,10 RJS OVERLAY (RETURN JOB STATUS.) RJS SPACE 4,25 *** RJS - RETURN JOB STATUS. * *T,IR 24/ ,12/ FC,12/ TN,12/ PP. * * FC = FUNCTION CODE. * TN = TERMINAL NUMBER. * PP = POT POINTER. * * RETURN JOB STATUS. * * CALLED TO RETURN THE CURRENT JOB STATUS FOR * THE *ENQUIRE* COMMAND. * * IF POSSIBLE THE CONTENTS OF THE CONTROL * POINT MESSAGE BUFFER (MS1W) IS RETURNED. IF MS2W * IS AVAILABLE, IT IS RETURNED INSTEAD OF MS1W. * * IF THE MESSAGE CANNOT BE READ BECAUSE THE * FNT INTERLOCK IS SET AN ERROR STATUS IS * RETURNED. * * *VROT* COMPLETION BIT NOT USED. * * ENTRY (CN - CN+4) = TERMINAL TABLE WORD VROT. ENTRY RJS LDN 0 CLEAR MESSAGE FLAG STD MF LDD IR+4 STD PP LDN MS2W-MS1W+IN0W-MS2W SET *MS1W* + *MS2W* LENGTH STD PW RJM STT SET TERMINAL TABLE ADDRESS ADK VUIT CRD CN SFA EJT,CN+4 STM RJSD+1 STD CM+4 SHN -14 STD CM+3 ADK LDCI STM RJSD LDN 0 SET INTERLOCK ON EJT STD CM+1 STD CM+2 MONITOR UTEM LDD CM+1 ZJN RJS1 IF INTERLOCKED LDN 0 STD CM+1 LJM RJS10 RETURN ERROR STATUS RJS1 LDM RJSD LPN 77 SHN 14 ADM RJSD+1 ADK JSNE CRD CM READ EJT ENTRY ADN SCHE-JSNE CRD CN LDD CM+4 LPN 76 LMN EXJS*2 NJN RJS1.2 IF NOT AT A CONTROL POINT LDD CN+3 CP NUMBER SHN 7 SET CP ADDRESS RJS1.1 ADN MS1W READ *MS1W* AND *MS2W* CRM CBUF+2+MS1W*5,PW ADN SRUW-IN0W READ *SRUW* CRM CBUF+2+SRUW*5,ON LJM RJS3 SET MESSAGE IN POT RJS1.2 LMN PCJS*2&EXJS*2 NJN RJS2 IF NOT AT A PSEUDO CONTROL POINT LDD CN+1 SET PCP ADDRESS RJM CCA UJN RJS1.1 READ PCPA FIELDS RJS2 LMN SWJS*2&PCJS*2 NJN RJS2.1 IF NOT SERVICE WAIT STATUS STM RJSG RJS2.1 LDC CPSN READ CP AREA RJM RRF READ ROLLOUT FILE NJN RJS3 IF NO ERROR LDC CBUF+2+MS2W*5 RETURN ERROR MESSAGE IN *MS2W* STM RJSC LDN IN0W-MS2W+1 SET *MS2W* MESSAGE LENGTH STD PW LDD MA CWM RJSF,PW SBD PW CRM CBUF+2+MS2W*5,PW *WAITING - DEVICE INACCESSIBLE.* LDN ZERL CLEAR *SRUW* WORD CRM CBUF+2+SRUW*5,ON LDN VCPC-1 *SRUW* OFFSET SBD PW STD T7 LJM RJS9 PUT MESSAGE IN *MS2W* AND RETURN RJS3 LDC * RJSG EQU *-1 NJN RJS3.1 IF NOT SERVICE WAIT STATUS LDN IN0W-MS2W+1 SET *MS2W* MESSAGE LENGTH STD PW LDD MA CWM RJSH,PW SBD PW CRM CBUF+2+MS2W*5,PW *WAITING - SERVICE LIMIT.* UJN RJS3.2 CONTINUE RJS3.1 LDM CBUF+2+MS2W*5 ZJN RJS4 IF NO *MS2W* MESSAGE RJS3.2 LDC CBUF+2+MS2W*5 USE *MS2W* MESSAGE STM RJSC SBN 1 STM RJSA LDC CBUF+2+IN0W*5-1 STM RJSB ADN 1 STM RJSE LDN IN0W-MS2W+1 UJN RJS5 SET *MS2W* MESSAGE LENGTH RJS4 LDK MS2W-MS1W+1 SET *MS1W* MESSAGE LENGTH RJS5 STD PW LDN VCPC-1 SBD PW STD T7 LDK ZERL ASSURE EOL IN AREA TO WRITE TO POT CRM CBUF+2+MS2W*5,ON RJSE EQU *-1 * CRM CBUF+2+IN0W*5,ON LDC CBUF+2+MS1W*5-1 SET MESSAGE POINTER RJSA EQU *-1 * LDC CBUF+2+MS2W*5-1 STD CM RJS6 AOD CM RJS7 LDC CBUF+2+MS2W*5-1 RJSB EQU *-1 * LDC CBUF+2+IN0W*5-1 SBD CM ZJN RJS8 IF END OF MESSAGE LDI CM NJN RJS6 IF NOT TERMINATOR AOD CM LDN 0 STI CM CLEAR MESSAGE BUFFER UJN RJS7 LOOP RJS8 STM CBUF+2+SRUW*5 CLEAR NON-ACCUMULATOR BITS LDM CBUF+2+SRUW*5+1 LPN 77 STM CBUF+2+SRUW*5+1 RJS9 RJM SPA SET POT ADDRESS CWM CBUF+2+MS1W*5,PW WRITE MESSAGE TO POT RJSC EQU *-1 * CWM CBUF+2+MS2W*5,PW ADD T7 WRITE SRU-S TO POT CWM CBUF+2+SRUW*5,ON AOD MF SET MESSAGE FLAG LDN ZERL CRD CM LDC * CLEAR EJT INTERLOCK RJSD EQU *-2 (EJT ENTRY ADDRESS) STD CM+4 SHN -14 STD CM+3 LDN 60 STD CM+1 MONITOR UTEM LDD CM+1 ZJN RJS10 IF INTERLOCK CLEARED LDN 0 SET NO ERROR FLAG RJM CHG CONDITIONALLY HANG PP RJS10 LDC VSJS STD CM LDD MF SET MESSAGE FLAG STD CM+2 LDD PP SET POT POINTER STD CM+3 LDD TN SET TERMINAL NUMBER STD CM+4 LDD MA CWD CM RJS11 LDK ZERL CRD CM MONITOR TSEM LDD CM+1 ZJN RJS13 IF *IAF* INACCESSIBLE OR ERROR LMC 7777 NJN RJS13 IF REQUEST COMPLETE PAUSE ST LDC 3600 *TSEM* QUEUE FULL - DELAY AND RETRY STD T1 RJS12 DELAY SOD T1 ZJN RJS11 IF TIME TO REISSUE REQUEST UJN RJS12 CONTINUE TO DELAY RJS13 LJM ITAX EXIT RJSF DATA C*WAITING - INACCESSIBLE DEVICE.* CON 0,0,0,0 TERMINATING EOL BYTE RJSH DATA C*WAITING - SERVICE LIMIT. * CON 0,0,0,0 TERMINATING EOL BYTE SPACE 4 ** TEST FOR OVERFLOW. OVERFLOW OVL,EPFW OVERFLOW INTO DISK ERROR PROCESSOR END 1TA TIMESHARING AUXILIARY PROCESSOR.