IDENT 0AU,UPFX TITLE 0AU - UPDATE PROJECT PROFILE FILE. PERIPH J BASE MIXED SST *COMMENT 0AU - UPDATE PROJECT PROFILE FILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 *** 0AU - UPDATE PROJECT PROFILE FILE. * S. L. KSANDER. 76/04/20. SPACE 4,10 *** 0AU IS A LOCATION-FREE ROUTINE WHICH DOES THE FOLLOWING * * 1. UPDATES THE APPROPRIATE LEVEL-3 BLOCK PROJECT ENTRY OF * THE PROJECT PROFILE FILE. * 2. CLEARS CONTROL POINT AREA ACCUMULATOR OVERFLOW FLAGS * AND ISSUES THE APPROPRIATE ACCOUNT DAYFILE MESSAGE. * * 0AU IS CALLED WHENEVER OVERFLOW OF AN ACCUMULATOR IS * DETECTED OR AT END OF ACCOUNT BLOCK. SPACE 4,15 *** ENTRY CONDITIONS. * * ((LA)-5) = AABB * AA = OVERFLOW FLAG BITS FROM *SRUW*. * BB = FUNCTION CODE. * 0 = END OF ACCOUNT BLOCK CALL. * 1 = ACCUMULATOR OVERFLOW CALL. * ((LA)-4) = PP ADDRESS OF TWO CM WORD JSN/SRU BLOCK. * WORD 1 = 24/JSN,24/,6/SC,6/ * WORD 2 = 18/,42/SRU ACCUMULATOR. * JSN = JOB SEQUENCE NUMBER. * SC = SERVICE CLASS. * ((LA)-3) = FNT ORDINAL OF PROFILE FILE. * ((LA)-2) = TRACK OF LEVEL 3 BLOCK ON PROFILE FILE. * = 0, IF NO PROFILE FILE PRESENT. * ((LA)-1) = SECTOR OF LEVEL 3 BLOCK ON PROFILE FILE. SPACE 4,20 *** EXIT CONDITIONS. * * (A) = 0, IF SUCCESSFUL CALL. ONE OF THE FOLLOWING OCCURRED * 1. END OF ACCOUNT BLOCK CALL - PROFILE FILE UPDATE * PERFORMED IF PROFILE FILE PRESENT. * 2. OVERFLOW CALL - NO OVERFLOW DETECTED, OR OVERFLOW * FLAG CLEARED (IN ADDITION, IF SRU ACCUMULATOR, * PROFILE FILE UPDATE PERFORMED AS IN 1.). * ((LA)-1) = CONTROL POINT AREA ACCUMULATOR OVERFLOW * FLAGS BEFORE CLEARING. * THE FOLLOWING INDICATE PROFILE FILE NOT UPDATED- * (A) = 1, IF SYSTEM ERROR. ONE OF THE FOLLOWING HAS OCCURED * 1. *ORET* ERROR FLAG SET IN CP. * 2. READ ERROR ON LEVEL-3 BLOCK. * 3. VALIDATION ERROR IN LEVEL-3 BLOCK. * 4. WRITE ERROR ON LEVEL-3 BLOCK. * = 2, IF PROFILE FILE INTERLOCKED BY *PROFILE*. * (ANY OVERFLOW FLAGS REMAIN SET). * * (A) .LT. 0 IF PROFILE FILE DEVICE INACCESSIBLE. * (T5) = EST ORDINAL OF PROFILE FILE DEVICE. SPACE 4,15 *** ACCOUNT DAYFILE MESSAGES. * * THE FOLLOWING ERROR MESSAGES ARE ISSUED WHEN * THE CORRESPONDING ACCUMULATOR HAS OVERFLOWED. * (XXXXXX.XXX IS THE ACCUMULATOR,S OVERFLOW VALUE) * * *UCAD, XXXXXX.XXXKUNS.* = ADDER ACCUMULATOR. * * *UCPF, XXXXXX.XXXKUNS.* = PERMANENT FILE ACCUMULATOR. * * *UCMT, XXXXXX.XXXKUNS.* = MAGNETIC TAPE ACCUMULATOR. * * *UCMS, XXXXXX.XXXKUNS.* = MASS STORAGE ACCUMULATOR. * * *UCOD, XXXXXX.XXXKUNS.* = OPTICAL DISK ACCUMULATOR. * * *ACSO, XXXXXX.XXXUNTS.* = SRU ACCUMULATOR. * * *UCMP, XXXXXX.XXXKUNS.* = MAP ACCUMULATOR. * * *UCAC, XXXXXX.XXXUNTS.* = AUC ACCUMULATOR. SPACE 4,10 *** OPERATOR MESSAGES. * * NONE. SPACE 4,5 *** ROUTINES USED. * * CALLS DFM, RDS, WDS. SPACE 4,10 *CALL COMPMAC *CALL COMSCPS *CALL COMSMSP *CALL COMSPFM *CALL COMSPRO *CALL COMSZOL *CALL COMPREL SPACE 4,10 **** DIRECT CELL ASSIGNMENTS. FA EQU 16 PROFILE FILE FNT ORDINAL BA EQU 17 BUFFER ADDRESS **** SPACE 4,10 **** ASSEMBLE CONSTANTS. EAFC EQU 0 END OF ACCOUNT BLOCK FUNCTION AOFC EQU 1 ACCUMULATOR OVERFLOW FUNCTION MEPO EQU 3 MASS STORAGE ERROR PROCESSING OPTION PFDL EQU 4000D DELAY CYCLES WAITING FOR PROFILE FILE **** TITLE MAIN PROGRAM. UPF SPACE 4,10 ** UPF - MAIN PROGRAM. ORG 5 UPF SUBR ENTRY/EXIT RJM PRS PRESET * CHECK FOR ACCUMULATOR OVERFLOW. LDN RLCO CLEAR OVERFLOW FLAGS STD CM+1 MONITOR RLMM RJM IOM ISSUE OVERFLOW MESSAGES * READ LEVEL-3 BLOCK. UPF2 LDD T6 CHECK PROFILE FILE PRESENT ZJN UPFX IF PROFILE FILE NOT PRESENT LDN 2 PRESET LEVEL-3 BLOCK PROJECT ENTRY INDEX STD T3 LDM -5 CHECK SECTOR POSITION SHN 21-12 PJN UPF3 IF FIRST ENTRY LDC 5*PMWE SET SECOND ENTRY OFFSET RAD T3 UPF3 LDD BA SET BUFFER ADDRESS RAD T3 RAM UPFF STM UPFG RAM UPFH LDD BA READ SECTOR RJM. RDS PJN UPF7 IF NO READ ERROR * COMPLETION PROCESSING. UPF4 ENDMS LDN RFAS RETURN PROFILE FILE RJM ARF UPF6 LDN 1 SET SYSTEM ERROR STATUS UPFC EQU *-1 * LDN 0 (NORMAL COMPLETION) LJM UPFX * UPDATE MASTER USER AND INSTALLATION SRU ACCUMULATORS. UPF7 LDN ZERL CLEAR SRU ACCUMULATOR VALUE CRD CM LDN 40 INCREMENT ACCUMULATOR FOR OVERFLOW STD CM+1 UPFD LDN 0 CHECK FUNCTION CODE * LDN (FC)&AOFC ZJN UPF8 IF OVERFLOW FUNCTION CODE LDD MA SET CURRENT SRU ACCUMULATOR CWM. *,TR UPFE EQU *-1 SBN 2 CRD CM UPF8 LDD MA SET MASTER/INSTALLATION ACCUMULATOR CWM. 5*PMSW,TR UPFF EQU *-1 CWD CM SET INCREMENT VALUE SBN 2 CWD CM LDN 2 SET OPERATION COUNT STD CM+4 LDN ABIF STD CM+1 MONITOR ACTM LDD MA SET INCREMENTED VALUES CRM. 5*PMSW,TR UPFG EQU *-1 LDN PDTL SET LAST UPDATE DATE AND TIME CRM. 5*PUDW-5*PMSW,ON UPFH EQU *-1 * RE-WRITE LEVEL-3 BLOCK. LDD BA WRITE SECTOR LMK WLSF SET WRITE LAST SECTOR RJM. WDS MJN UPF9 IF WRITE ERROR SOM UPFC SET NORMAL COMPLETION UPF9 LJM UPF4 RETURN FILE AND SET STATUS ERRNZ PISW-PMSW-2 SETUP ERROR FOR *ACTM* FUNCTION ERRNZ PUDW-PMSW-1 TITLE SUBROUTINES. ARF SPACE 4,10 ** ARF - ATTACH/RETURN FAST ATTACH FILE. * * ENTRY (A) = SUBFUNCTION CODE FOR ATTACH/RETURN. * (FA) = PROFILE FILE FNT ORDINAL. * (T5) = PROFILE FILE EST ORDINAL. * * EXIT (A) = FUNCTION RESPONSE CODE. * (CM+4) = BYTE 4 OF RESPONSE IF REJECT. * * USES CM - CM+4. * * MACROS MONITOR. ARF SUBR ENTRY/EXIT STD CM+3 LDC 4000+PTUP SET NON-ROLLABLE UPDATE MODE STD CM+2 ARFA LDN 0 ZJN ARF1 IF NOT GLOBAL FAST ATTACH FILE LDD T5 SET GLOBAL FAST ATTACH EST ORDINAL ARFB ADD TH IMMEDIATE RETURN IF INACCESSIBLE DEVICE * PSN (AFTER FILE IS ATTACHED) ARF1 STD CM+1 LDD FA SET FNT ORDINAL STD CM+4 MONITOR AFAM LDD CM+1 SET EXIT CONDITION UJP ARFX RETURN BUF SPACE 4,10 ** BUF - MASS STORAGE BUFFER BUF EQU * TITLE OVERLAID SUBROUTINES. IDM SPACE 4,10 ** IDM - ISSUE DAYFILE MESSAGE. * * ENTRY MESSAGE PRESET IN BUFFER. * * CALLS DFM. IDM SUBR ENTRY/EXIT LDC AJNN+IDMA ISSUE ACCOUNT FILE MESSAGE ADD LA RJM. DFM LDC CDON+IDMA+5 ISSUE USER DAYFILE MESSAGE ADD LA RJM. DFM UJN IDMX IDMA VFD 24/4HJSNN,24/4H ,12/** DATA C*UCXX, 1048.576KUNS.* IOM SPACE 4,15 ** IOM - ISSUE OVERFLOW MESSAGES. * * ENTRY (CM+4) = CONTROL POINT AREA OVERFLOW FLAGS (RIGHT * JUSTIFIED) BEFORE CLEARED. * * EXIT ((LA)-1) = CONTROL POINT AREA OVERFLOW FLAGS * (RIGHT JUSTIFIED) BEFORE CLEARED. * APPROPRIATE OVERFLOW MESSAGES ISSUED. * * CALLS IDM. IOM2 LDM -1 CHECK OPTICAL DISK OVERFLOW SHN 21-10 PJN IOM2.1 IF NO OVERFLOW LDC 2ROD STM IDMA+6 RJM IDM IOM2.1 LDM -1 CHECK AUC OVERFLOW SHN 21-7 PJN IOM4 IF NO OVERFLOW LDN 11 MOVE DAYFILE MESSAGE STD T1 LDD LA RAM IOMF IOM3 LDM. IOMH,T1 IOMF EQU *-1 STM. IDMA+5-IDMA,T1 IOMG EQU *-1 SOD T1 PJN IOM3 IF MESSAGE MOVE NOT COMPLETE RJM IDM ISSUE DAYFILE MESSAGE IOM4 LDD T3 CHECK SRU ACCUMULATOR OVERFLOW SHN 21-5 PJN IOMX IF NO OVERFLOW LDN 11 MOVE DAYFILE MESSAGE STD T1 LDD LA RAM IOMA IOM5 LDM. IOMC,T1 IOMA EQU *-1 STM. IDMA+5-IDMA,T1 IOMB EQU *-1 SOD T1 PJN IOM5 IF MESSAGE MOVE NOT COMPLETE RJM IDM ISSUE DAYFILE MESSAGE IOM SUBR ENTRY/EXIT LDD CM+4 SET OVERFLOW FLAGS STM -1 STD T3 LDN 7-2 SET INITIAL SHIFT COUNT STD T4 IOM1 SOD T4 DECREMENT SHIFT COUNT MJP IOM2 IF ALL SHIFTS COMPLETE LDD T3 CHECK OVERFLOW FLAG RAD T3 SHN 21-7 PJN IOM1 IF OVERFLOW FLAG NOT SET LDM. IOMD-IDMA-5,T4 SET MESSAGE PREFIX IOME EQU *-1 STM IDMA+6 RJM IDM UJN IOM1 PROCESS REMAINING OVERFLOW FLAGS IOMC DATA L*ACSO, 219902.325UNTS* IOMH DATA L*UCAC, 536872.911UNTS.* IOMD BSS 0 MESSAGE PREFIX TABLE CON 2RAD CON 2RPF CON 2RMT CON 2RMS CON 2RMP TITLE PRESET. PRS SPACE 4,25 ** PRS - PRESET. * * ENTRY ((LA)-5 - (LA)-1) = INITIAL CALLING SEQUENCE. * * EXIT (T5) = PROFILE FILE DEVICE EST ORDINAL. * (T6) = LEVEL-3 BLOCK TRACK. * (T7) = LEVEL-3 BLOCK SECTOR. * (FA) = FNT ORDINAL OF PROFILE FILE. * (BA) = SECTOR BUFFER ADDRESS. * (UPFA) = (UPFD) = *LDN (FC)&AOFC* * (UPFE) = PARAMETER BLOCK ADDRESS. * (UPFB) = SET IF PROFILE FILE PRESENT. * (IOMB) = (IOMG) = RELOCATED ADDRESS OF *IDMA+5*. * (IDMA - IDMA+1) = JOB SEQUENCE NUMBER. * (SFAA) = BASE FNT ADDRESS / 10. * (ARFB) = *PSN* IF *PROFILE* ATTACHED OR NOT NEEDED. * PROFILE FILE ATTACHED IF PRESENT. * DRIVER SET IF NEEDED. * TO *UPFX* IF *ORET* ERROR FLAG SET OR FILE BUSY. * * USES BA, FA, T1, T2, CM - CM+4, T5 - T5+4. * * CALLS ARF. * * MACROS PAUSE, SETMS, SFA. PRS SUBR ENTRY/EXIT LDN 1 SET JSN FOR DAYFILE MESSAGE STD T1 LDD LA RAM PRSB RAM IOMB STM IOMG RAM IOME LDM -4 SET JSN/SRU PARAMETER ADDRESS STM UPFE STM PRSA ADN 4 STD T2 PRS1 LDM. *,T1 MOVE JSN TO DAYFILE MESSAGE PRSA EQU *-1 STM. IDMA,T1 PRSB EQU *-1 SOD T1 PJN PRS1 LDI T2 SET SERVICE CLASS SHN -6 STM IDMA+4 * SET PROFILE FILE POINTERS FROM PARAMETER PASS. LDC BUF SET BUFFER ADDRESS ADD LA STD BA LDM -3 SET PROFILE FILE FNT ORDINAL STD FA SFA FNT READ FNT ENTRY CRD CM ADN FSTG SET PROFILE FILE DEVICE EST ORDINAL CRD T5 LDD CM+3 SET GLOBAL FILE STATUS LPN 77 RAM ARFA LDM -1 SET LEVEL-3 BLOCK SECTOR STD T7 LDM -5 EXTRACT FUNCTION CODE LPN 77 LMN AOFC STD T1 RAM UPFD LDD CP FETCH CONTROL POINT AREA OVERFLOW FLAGS ADN SRUW CRD CM LDD CM+1 CHECK SRU ACCUMULATOR OVERFLOW LPN 40 ADD T1 ZJN PRS2 IF NO NEED TO ACCESS PROFILE FILE LDM -2 PRS2 STD T6 NJN PRS4 IF PROFILE FILE PRESENT PRS3 STM ARFB LJM PRSX RETURN PRS4 SETMS IO,RW LDM. MSD SHN 21-6 MJN PRS6 IF PROFILE FILE DEVICE INACCESSIBLE * ATTACH PROFILE FILE FOR UPDATE. PRS5 LDN AFAS ATTACH PROFILE FILE RJM ARF ZJN PRS3 IF ATTACH COMPLETED SHN 21-11 MJN PRS6 IF DEVICE INACCESSIBLE LDD CM+4 LPN 2 CHECK REJECT LMN 2 NJN PRS6 IF ATTACHED IN MODIFY MODE BY *PROFILE* * WAIT FOR OTHER *0AU* TO RELEASE PROFILE FILE. LDC PFDL/2 SBN 1 NJN *-1 PAUSE LDD CM+1 CHECK ERROR FLAG LMN ORET NJN PRS5 IF NOT OPERATOR OVERRIDE LDN 1 PRS6 LJM UPFX EXIT SPACE 4,10 ** COMMON DECKS. FNT$ EQU 1 ASSEMBLE SYSTEM FNT ACCESS *CALL COMPGFP SPACE 4,10 OVERFLOW 5,ZAUL ERRNG ZAUL-BUF-503 BUFFER OVERFLOWS CALLING PROGRAM END