#4001
DATE=Sept 20, 1977
PERSON=Engle
NAME=TIME
NBR=360/1
DESCR=When subroutine is used on a 360 and the print option is  
DESCR=specified, "SPRINT CALL USES ILLEGAL PARAMETERS" results.
OLDUPDATE=%AFTER TIME0620
OLDUPDATE=         SR    R15,R15
NEWUPDATE=/BEGIN C4001
NEWUPDATE=/COPY "TOFSOVLY"
NEWUPDATE=/COPY COUNT=3
NEWUPDATE=         SR    R15,R15
NEWUPDATE=/END
COMMENTS=Corrects incorrect value for modifiers address in SPRINT 
COMMENTS=parameter list when run on a 360.
COMMENTS=    
COMMENTS=Note: Object for TIME on the restore tape has been changed.
COMMENTS=      Source, updated as per above, is in MTS:TIME on the
COMMENTS=      restore-tape pack. 
#4002
DATE=Sept 22, 1977
PERSON=Alexander
NAME=MTS
NBR=42/1
DESCR=Local time limit expiring just when user program was entering
DESCR=CMD subroutine was not handled properly.
OLDUPDATE=%AFTER MTS00742
OLDUPDATE=         MVI   CLSCMDID+1,MTSFLG    for local time limit
OLDUPDATE=*                                   at entry to CMD
NEWUPDATE=/BEGIN C4002
NEWUPDATE=/COPY "NXTSEG"
NEWUPDATE=/COPY COUNT=4
NEWUPDATE=         MVI   CLSCMDID+1,MTSFLG    for local time limit
NEWUPDATE=*                                   at entry to CMD
NEWUPDATE=/END
COMMENTS=REP cards for this are in the *IPL... files on the 
COMMENTS=restore-tape pack. 
#4003
DATE=Sept 22, 1977
PERSON=Helffrich
NAME=TABLES(DECKGEN)
NBR=004/5
DESCR=Corrects bug in generation of the CHANNELS table for selector
DESCR=sub-channels. 
NEWUPDATE=/BEGIN C4003
NEWUPDATE=/COPY "TABSEL"
NEWUPDATE=/COPY COUNT=3
NEWUPDATE=TABSE5   DS    0H
NEWUPDATE=/COPY "TABSE4"
NEWUPDATE=/EDIT "TABSE1" = "TABSE5"
NEWUPDATE=/END 
COMMENTS=This correction is in the restore-tape pack files 
COMMENTS=MTS:DCKPCHR.S and MTS:DCKPCHR.O, and the ipl files *IPL...
#4004
DATE=Sept 22, 1977
PERSON=Helffrich
NAME=TABLES(DECKGEN)
NBR=004/5
DESCR=Corrects generation of BLKMPX table, for both 360s and 370s.
NEWUPDATE=/BEGIN C4004
NEWUPDATE=/COPY "TABSIO1"
NEWUPDATE=/COPY BLANKS "ESDEF BLKMPX,R2"
NEWUPDATE=/SKIP COUNT=2
NEWUPDATE=/COPY "TABBLK1"
NEWUPDATE=/DELETE BLANKS "TM    3(RA),1"
NEWUPDATE=         TM    3(RA),8            SEL SUB?
NEWUPDATE=/DELETE BLANKS "BZ    TABBLK2"
NEWUPDATE=         BO    TABBLK2            YES
NEWUPDATE=/END
COMMENTS=This correction is in the restore-tape pack files 
COMMENTS=MTS:DCKPCHR.S and MTS:DCKPCHR.O, and the ipl files *IPL...
#4005
DATE=Sept 22, 1977
PERSON=Helffrich
NAME=TABLES(DECKGEN)
NBR=004/5
DESCR=Fixes bug in allocation of TERMBFRS. 
NEWUPDATE=/BEGIN C4005
NEWUPDATE=/COPY "TABGNJT"
NEWUPDATE=/COPY BLANKS "ESDEF TERMBFRS,R2"
NEWUPDATE=/DELETE BLANKS "LA    R1,2(R2,R2)"
NEWUPDATE=         LA    R1,0(R8,R8)        PAST 'BUFUSE'
NEWUPDATE=/DELETE BLANKS "BCTR  R0,0"
NEWUPDATE=/SKIP COUNT=1
NEWUPDATE=/END
COMMENTS=This correction is in the restore-tape pack files 
COMMENTS=MTS:DCKPCHR.S and MTS:DCKPCHR.O, and the ipl files *IPL...
********** Sent with Distribution 4.0 **********
#4006
DATE=Oct 5, 1977
PERSON=Tiffany
NAME=*APC(NEW_EXPLAIN)
NBR=496/5
DESCR=If the user attempts "EXPLAIN COMPARE", he gets
DESCR=more than just the description of the COMPARE
DESCR=command. 
EDIT=EDIT ETC:APCEXP
EDIT=SCAN 'COMPARE'
EDIT=CHANGE '6M'6'
EDIT=STOP
COMMENTS=The offensive letter "M" after a line number
COMMENTS=for the description of the COMPARE command is
COMMENTS=removed. 
#4007
DATE=Oct 07, 1977
PERSON=Lift
NAME=PLOT SYSTEM(PALPHA)
NBR=615/7
DESCR=Corrects bug in PALPHA which prevented loading of alphabets
DESCR=from user files.
NEWUPDATE=/BEGIN C4007
NEWUPDATE=/COPY BEFORE "PALIB7"
NEWUPDATE=PALIB7   L     3,0(,1)            SAVE CONTROL BLOCK ADDRESS
NEWUPDATE=/EDIT "PALIB7" = "      "
NEWUPDATE=/DELETE      "         L     3,CPACON"
NEWUPDATE=/END
#4008
DATE=Oct 07, 1977
PERSON=Lift
NAME=PLOT SYSTEM(PALPHA)
NBR=615/7
DESCR=Corrects bug in PSMLEN which prevented it from working for
DESCR=characters sets with grid size > 16.
NEWUPDATE=/BEGIN C4008
NEWUPDATE=/COPY BEFORE "         LA    7,PLCHARC"
NEWUPDATE=/SKIP C=4 
NEWUPDATE=/COPY BEFORE "PLCHARA"
NEWUPDATE=/COPY C=2
NEWUPDATE=/SKIP C=1
NEWUPDATE=/COPY BEFORE "PLCHARD"
NEWUPDATE=/SKIP C=3
NEWUPDATE=/END
#4009
DATE=Oct 07, 1977
PERSON=Alexander
NAME=MTS
NBR=42/1
DESCR=The changes specified in Change Form 4002 were incorrect 
DESCR=in that they not only fixed the problem described, they
DESCR=also "fixed" a great many other things too.  REMOVE THE 
DESCR=CHANGES SPECIFIED BY 4002 and then apply the change here.
OLDUPDATE=%AFTER MTS04618
OLDUPDATE=         MVI   CLSCMDID+1,MTSFLG 
NEWUPDATE=/BEGIN C4009
NEWUPDATE=/COPY 'OKEDONE '
NEWUPDATE=         MVI   CLSCMDID+1,MTSFLG 
NEWUPDATE=/END
COMMENTS=Don't forget to REMOVE THE INSERTION SPECIFIED in 4002.
#4010
DATE=Oct 10, 1977
PERSON=Sherry
NAME=UMLOAD
NBR=001/1
DESCR=Corrects bug discovered by RPI to round length on END
DESCR=card to nearest doubleword.
OLDUPDATE=%DELETE UMLD1827
OLDUPDATE=ENDCF3   LA    R2,7(,R2)          ROUND UP LENGTH TO
OLDUPDATE=         N     R2,=X'FFFFFFF8'     NEAREST DOUBLEWORD.
OLDUPDATE=         ST    R2,ESDLEN          CSECT FINALLY HAS A LENGTH
NEWUPDATE=/BEGIN C4010
NEWUPDATE=/DELETE "ENDCF3   ST    R2,ESDLEN"
NEWUPDATE=ENDCF3   LA    R2,7(,R2)          ROUND UP LENGTH TO
NEWUPDATE=         N     R2,=X'FFFFFFF8'     NEAREST DOUBLEWORD.
NEWUPDATE=         ST    R2,ESDLEN          CSECT FINALLY HAS A LENGTH
NEWUPDATE=/END
COMMENTS=This bug caused some TXT cards (in OS-generated modules)
COMMENTS=to be rejected with the message "ILLEGAL TXT CARD LENGTH
COMMENTS=DETECTED"
********** Sent October 11, 1977      **********
#4011
DATE=Oct 11, 1977
PERSON=Lift
NAME=PLOT SYSTEM(CBDSECT)
NBR=615/8
DESCR=Changes alphabet names from 8c to 16c.
NEWUPDATE=/BEGIN C4011
NEWUPDATE=/DELETE   "CBNAME"
NEWUPDATE=CBNAME   DS    CL16               ALPHABET NAME
NEWUPDATE=/END
COMMENTS=This correction is to the dsect, so PSYM (615/6) and
COMMENTS=PALPHA (615/7) must be reassembled.
#4012
DATE=Oct 12, 1977
PERSON=Lift
NAME=PLOT SYSTEM(PALPHA)
NBR=615/7
DESCR=Changes (with #4011) alphabet names from 8c to 16c.
NEWUPDATE=/BEGIN C4012
NEWUPDATE=/COPY "PALPHA1" 
NEWUPDATE=/DELETE BLANKS "CLC   0(8,2)" 
NEWUPDATE=         CLC   0(9,2),=C'STANDARD ' IS IT DEFAULT ONE? 
NEWUPDATE=/COPY BEFORE "         L     15,=V(PSYMSW1)" 
NEWUPDATE=/COPY COUNT=3 
NEWUPDATE=/EDIT "9" = "17" 
NEWUPDATE=/COPY BEFORE "PALIB1" 
NEWUPDATE=/COPY COUNT=4 
NEWUPDATE=/DELETE BLANKS "MVC   DWORD(8)" 
NEWUPDATE=         MVC   DWORD(16),=CL16' ' PAD CALLER'S NAME TO 16C
NEWUPDATE=/COPY "PALIB8" 
NEWUPDATE=/DELETE BLANKS "L     1,4(,2)"
NEWUPDATE=/SKIP COUNT=1
NEWUPDATE=/EDIT "CPA" = "CDI"
NEWUPDATE=/EDIT "READ" = "READBFR"
NEWUPDATE=/DELETE BLANKS "L     3,4(,2)"
NEWUPDATE=         L     3,CDIREAD
NEWUPDATE=/DELETE BLANKS "LA    4,12" 
NEWUPDATE=         LA    4,20               ENTRY: 16C NAME, F LINE#
NEWUPDATE=/COPY BEFORE "PALIB4" 
NEWUPDATE=/EDIT "0(8,3),DWORD " = "0(16,3),DWORD" 
NEWUPDATE=/COPY BEFORE "PALIB6" 
NEWUPDATE=/EDIT "1,8(,3) " = "1,16(,3)" 
NEWUPDATE=/COPY "CPAREAD"
NEWUPDATE=CDIREAD  DC    A(0,LPABUF,MODF,LNUM,PAFDUB)  FOR READBFR
NEWUPDATE=/DELETE "DWORD" 
NEWUPDATE=DWORD    DS    2D 
NEWUPDATE=/COPY "DEFALPHA" 
NEWUPDATE=/COPY COUNT=3 
NEWUPDATE=         DC    C'        ' 
NEWUPDATE=/END 
COMMENTS=Note #4011 should be applied before this one.
#4013
DATE=Oct 11, 1977
PERSON=Alexander
NAME=TABLES(DECKGEN)
NBR=004/5
DESCR=Fixes generation of reverse pathfinding tables in cases
DESCR=where the first control unit on a channel has a high
DESCR=address. Formerly clobbered the tables generated.
NEWUPDATE=/BEGIN C4013
NEWUPDATE=/COPY 'TABGL11 '
NEWUPDATE=/DELETE NEXT 'SR' NEXT 'R9,R9'
NEWUPDATE=         LA    R9,16                  USE MINIMUM VALUE
NEWUPDATE=/END
#4014
DATE=OCT 12, 1977
PERSON=Salisbury
NAME=SDS(EDITOR)
NBR=600/010
DESCR=Corrects bug in adding PL/I external variables
DESCR=to symbol table.
NEWUPDATE=/BEGIN C4014 
NEWUPDATE=/COPY "DATADVS"
NEWUPDATE=/COPY COUNT=1 
NEWUPDATE=/SKIP COUNT=2 
NEWUPDATE=/END 
COMMENTS=Deletes test for external entry in SDS editor
#4015 
DATE=OCT 12, 1977 
PERSON=Salisbury
NAME=SDS(IOC) 
NBR=600/006 
DESCR=Corrects bug in handling variables@T=I on 360/67
NEWUPDATE=/BEGIN C4015 
NEWUPDATE=/COPY "SUEX"
NEWUPDATE=/DELETE BLANKS "L     GR4,0(REALADD)"
NEWUPDATE=         LOAD  GR4,0(REALADD),4    GET OPCODE AND MASK
NEWUPDATE=/END 
COMMENTS=Changes load instr to LOAD macro call.
#4016 
DATE=OCT 12, 1977
PERSON=Salisbury
NAME=SDS(IOC) 
NBR=600/006
DESCR=Scans for blank or comma ending binary input data
NEWUPDATE=/BEGIN C4016
NEWUPDATE=/COPY "BINCONV1"
NEWUPDATE=/COPY COUNT=2 
NEWUPDATE=         CLI   0(WA),C' ' 
NEWUPDATE=         BE    BINEXIT 
NEWUPDATE=         CLI   0(WA),C',' 
NEWUPDATE=         BE    BINEXIT 
NEWUPDATE=/END 
#4017 
DATE=OCT 12, 1977 
PERSON=Salisbury
NAME=SDS(CLSSOU) 
NBR=600/001 
DESCR=Allows multiple A-type and B-type constants within 
DESCR=a single input item
NEWUPDATE=/BEGIN C4017
NEWUPDATE=/COPY BEFORE "INAIP" 
NEWUPDATE=INAIP    CLI   0(WA),C'''' 
NEWUPDATE=         BNE   INACHK2 
NEWUPDATE=INACHK1  LA    WA,1(WA)
NEWUPDATE=         B     INACHK3 
NEWUPDATE=INACHK2  CLI   0(WA),C','
NEWUPDATE=         BE    INACHK1 
NEWUPDATE=INACHK3  CLI   0(WA),C' ' 
NEWUPDATE=         BNE   INACHK4
NEWUPDATE=         LA    WA,1(WA) 
NEWUPDATE=         B     INACHK3 
NEWUPDATE=/EDIT "INAIP  " = "INACHK4"
NEWUPDATE=/DELETE BLANKS "LA    WA,1(WA)"
NEWUPDATE=/DELETE BLANKS "SR    GR15,GR15"
NEWUPDATE=/EDIT "INPUFOC" = "INFTFC3"
NEWUPDATE=/COPY BEFORE "INBIP" 
NEWUPDATE=INBIP    CLI   0(WA),C'''' 
NEWUPDATE=         BNE   INBCHK2 
NEWUPDATE=INBCHK1  LA    WA,1(WA)
NEWUPDATE=         B     INBCHK3 
NEWUPDATE=INBCHK2  CLI   0(WA),C','
NEWUPDATE=         BE    INBCHK1 
NEWUPDATE=INBCHK3  CLI   0(WA),C' ' 
NEWUPDATE=         BNE   INBCHK4
NEWUPDATE=         LA    WA,1(WA) 
NEWUPDATE=         B     INBCHK3 
NEWUPDATE=INBCHK4  BCTR  WA,0 
NEWUPDATE=/EDIT "INBIP" = "     "
NEWUPDATE=/COPY COUNT=2
NEWUPDATE=/EDIT "INPUFOC" = "INFTFC3"
NEWUPDATE=/END 
#4018
DATE=Oct 22, 1977
PERSON=Lift
NAME=PLOT SYSTEM(ETC:PLOTALPHA)
NBR=615/9
DESCR=Changes alphabet names to 16C and introduces aliases for 
DESCR=some names.
EDIT=ED ETC:PLOTALPHA
EDIT=DE 1.001 1.999 OK
EDIT=A 1 #TN#TN        # 
EDIT=A 2 
EDIT=A 1 #HELVETIC#HELVETIC        # 
EDIT=A 3
EDIT=A 1 #GOTHICEN#GOTHICEN        # 
EDIT=A 4
EDIT=A 1 #ROMANTX#ROMANTX        # 
EDIT=A 5
EDIT=A 1 #ITALICTX#ITALICTX        # 
EDIT=A 6
EDIT=A 1 #GREEKCS#GREEKCS        # 
EDIT=A 7
EDIT=A 1 #ITALICCS#ITALICCS        # 
EDIT=A 8
EDIT=A 1 #ROMANCS#ROMANCS        # 
EDIT=A 9
EDIT=A 1 #ROMANDX#ROMANDX        # 
EDIT=A 10
EDIT=A 1 #GREEKSX#GREEKSX        # 
EDIT=A 11
EDIT=A 1 #ROMANSX#ROMANSX        # 
EDIT=A 12
EDIT=A 1 #SCRIPTSX#SCRIPTSX        # 
EDIT=A 13
EDIT=A 1 #GOTHICGE#GOTHICGE        # 
EDIT=A 14
EDIT=A 1 #GOTHICIT#GOTHICIT        # 
EDIT=A 15
EDIT=A 1 #SCRIPTCX#SCRIPTCX        # 
EDIT=A 16
EDIT=A 1 #ROMANCX#ROMANCX        # 
EDIT=A 17
EDIT=A 1 #ITALICCX#ITALICCX        # 
EDIT=A 18
EDIT=A 1 #GREEKCX#GREEKCX        # 
EDIT=A 19
EDIT=A 1 #CYRILLCX#CYRILLCX        # 
EDIT=A 20
EDIT=A 1 #ROMANCAR#ROMANCAR        # 
EDIT=A 21
EDIT=A 1 #GREEKCAR#GREEKCAR        # 
EDIT=A 22
EDIT=A 1 #HIRAGANA#HIRAGANA        # 
EDIT=A 23
EDIT=A 1 #KATAKANA#KATAKANA        # 
EDIT=A 24
EDIT=A 1 #KANJI1#KANJI1        # 
EDIT=A 25
EDIT=A 1 #KANJI2#KANJI2        # 
EDIT=A 26
EDIT=A 1 #KANJI3#KANJI3        # 
EDIT=A 27
EDIT=A 1 #KANJI4#KANJI4        # 
EDIT=A 28
EDIT=A 1 #KANJI5#KANJI5        # 
EDIT=A 29
EDIT=COPY 1 TO 100
EDIT=CONC 100 LEN=20
EDIT=DE 100
EDIT=DE 121 127 OK
EDIT=A 101 #HELVETIC   #HELVETICA.1#
EDIT=A 102 #GOTHICEN      #GOTHIC.ENGLISH#
EDIT=A 103 #ROMANTX#ROMAN.3#
EDIT=A 104 #ITALICTX#ITALIC.3#
EDIT=A 105 #GREEKCS #GREEK.2A#
EDIT=A 106 #ITALICCS #ITALIC.2A#
EDIT=A 107 #ROMANCS #ROMAN.2A#
EDIT=A 108 #ROMANDX   #SANSERIF.2#
EDIT=A 109 #GREEKSX#GREEK.1#
EDIT=A 110 #ROMANSX   #SANSERIF.1#
EDIT=A 111 #SCRIPTSX#SCRIPT.1#
EDIT=A 112 #GOTHICGE      #GOTHIC.FRAKTUR#
EDIT=A 113 #GOTHICIT      #GOTHIC.ITALIAN#
EDIT=A 114 #SCRIPTCX#SCRIPT.2#
EDIT=A 115 #ROMANCX#ROMAN.2#
EDIT=A 116 #ITALICCX#ITALIC.2#
EDIT=A 117 #GREEKCX#GREEK.2#
EDIT=A 118 #CYRILLCX  #CYRILLIC.2#
EDIT=A 119 #ROMANCAR     #SANSERIF.CART#
EDIT=A 120 #GREEKCAR  #GREEK.CART#
EDIT=CONC 100 120
EDIT=MOVE 100 120 TO 1.001
EDIT=CONC 1 1.999
EDIT=DE 100 *L OK
EDIT=DE 1.001 1.999 OK
EDIT=STOP
********** Sent October 18, 1977      **********
#4019
DATE=Oct 18,1977
PERSON=FRONCZAK
NAME=CALC(CLS)
NBR=585/001
DESCR=Corrects the bug of not properly (re)initializing ATTNTRP
DESCR=upon (re)entry to the CALC CLS.
OLDUPDATE=%AFTER CALC0230
OLDUPDATE=         MVI   INTSAVE,0          DAMNED RESET!!!
NEWUPDATE=/BEGIN C4019
NEWUPDATE=/COPY '*   SOME INIT'
NEWUPDATE=/COPY C=2
NEWUPDATE=         MVI   INTSAVE,0          DAMNED RESET!!!
NEWUPDATE=/END
********** Sent November 1, 1977      **********
#4020
DATE=November 1, 1977
PERSON=Salisbury
NAME=SDS(SDSCLSSOU)
NBR=600/001
DESCR=Corrects bug in the processing of call tracing when the
DESCR=call is from a low-core address.
NEWUPDATE=/BEGIN C4020
NEWUPDATE=/COPY BEFORE "IBPTCHK2"
NEWUPDATE=IBPTERR6 SET   TRCNORET,18       SET NO RETURN FLAG
NEWUPDATE=         B     IBPTERR 
NEWUPDATE=IBPTCHK2 CLI   BREAKTYP,BRKRET   RETURN BREAKPOINT?
NEWUPDATE=         BE    IBPTERR6          DON'T SET
NEWUPDATE=/EDIT "IBPTCHK2" = "        "
NEWUPDATE=/COPY "IBPTSIM"
NEWUPDATE=/COPY COUNT=1
NEWUPDATE=         CLI   BREAKTYP,BRKRET   RETURN BREAKPOINT?
NEWUPDATE=         BE    IBPTERR6          DON'T SET 
NEWUPDATE=/COPY "OPERCALL" 
NEWUPDATE=/COPY COUNT=7 
NEWUPDATE=         RESET TRCNORET,18       RESET NO RETURN FLAG
NEWUPDATE=/COPY BEFORE "OPERCAL4" 
NEWUPDATE=OPERCAL4 TOF   TRCNORET,OPERCAL5,18  NO RETURN FLAG? 
NEWUPDATE=         BRT   ' (NO TRACING OF RETURN)' 
NEWUPDATE=/EDIT "OPERCAL4" = "OPERCAL5" 
NEWUPDATE=/END 
#4021 
DATE=November 1, 1977 
PERSON=Salisbury 
NAME=SDS(SDSCLISOU) 
NBR=600/004
DESCR=Part of correction described in #4020 
NEWUPDATE=/BEGIN C4021
NEWUPDATE=/COPY BEFORE "CSNODO"
NEWUPDATE=/EDIT "SMODE10" = "SMODE10+SPRED"
NEWUPDATE=/END
#4022 
DATE=November 1, 1977 
PERSON=Salisbury 
NAME=SDS(SDSPSECT) 
NBR=600/013
DESCR=Part of correction described in #4020 
NEWUPDATE=/BEGIN C4022
NEWUPDATE=/COPY "TRCCALL"
NEWUPDATE=TRCNORET EQU   X'08'     1 -> NO TRACE OF RETURN
NEWUPDATE=/END
#4023
DATE=November 3, 1977
PERSON=Engle
NAME=ACCOUNTING(GETFILE)
NBR=104/88
DESCR=If a call on GDINFO3 produces a wait to open and that wait is
DESCR=interrupted, GDINFO3 does not open the file but still returns
DESCR=with a return code of zero.  This change locks the file around
DESCR=the call on GDINFO3 and thus, by eliminating the possibility
DESCR=of a wait to open, insures that the file will be opened.
NEWUPDATE=/B  C4023
NEWUPDATE=/D LEN(72) "GTFL0046"
NEWUPDATE=         ST    R0,FDUB
NEWUPDATE=         LA    R1,=A(FDUB,F1,FM1)
NEWUPDATE=LOCK     L     R15,=V(LOCK)
NEWUPDATE=         BASR  R14,R15            LOCK FILE TO AVOID WAIT TO OPEN
NEWUPDATE=         C     R15,=F'20'
NEWUPDATE=         BE    LOCK               WAIT TO LOCK INTERRUPTED
NEWUPDATE=         LTR   R1,R15
NEWUPDATE=         BNZ   RETURN             ERROR
NEWUPDATE=/COP LEN(72) "GTFL0055"
NEWUPDATE=         LA    R1,=A(FDUB)
NEWUPDATE=         L     R15,=V(UNLK)
NEWUPDATE=         BASR  R14,R15            UNLOCK FILE
NEWUPDATE=         LTR   R15,R15
NEWUPDATE=         BNZ   RETURN             ERROR
NEWUPDATE=/COP LEN(72) "GTFL0069"
NEWUPDATE=FDUB     DS    A
NEWUPDATE=FM1      DC    F'-1'
NEWUPDATE=F1       DC    F'1'
NEWUPDATE=/EN
COMMENTS=This error allowed the user to interrupt the wait to open
COMMENTS=produced by GDINFO3 for *ACCOUNTINGn.  The file,
COMMENTS=consequently, was not opened; and when READ attempted to do
COMMENTS=an implicit open, an attention interrupt would cause the
COMMENTS=wait to open to be interrupted with a sideways exit,
COMMENTS=leaving *ACCOUNTING locked.
#4024
DATE=Nov 11,1977
PERSON=Helffrich
NAME=GATE
NBR=4000/1
DESCR=Corrects bug causing MODECHG bit to be on if user supplies
DESCR=bad GR13 value for gated routine.
NEWUPDATE=/BEGIN C4024
NEWUPDATE=/COPY "BADGR13 "
NEWUPDATE=         NI    SWSP1,OFF-MODECHG  didn't get around to changing
NEWUPDATE=/END C4024
#4025
DATE=Nov 11,1977
PERSON=Helffrich
NAME=GATE
NBR=4000/1
DESCR=Fixes GUINFUPD entry in GATE.
NEWUPDATE=/BEGIN C4025
NEWUPDATE=/DELETE "GUINFUPD "
NEWUPDATE=GUINFUPD PORT  SAVE,CLASS=3
NEWUPDATE=/END C4025
********** Sent November 15, 1977      **********
#4026 
DATE=November 16, 1977 
PERSON=Salisbury 
NAME=SDS(SDSCLISOU) 
NBR=600/004
DESCR=Change MODIFY command such that users may not modify 
DESCR=system storage by specifying operands in the form (GRx)+yyy
NEWUPDATE=/BEGIN C4026
NEWUPDATE=/COPY BEFORE "MODBLOC8"
NEWUPDATE=MODBLOC8 BAL   LINK,PREDFCHK    CHECK PREDEFINED SYMBOL
NEWUPDATE=/EDIT "MODBLOC8" = "        "
NEWUPDATE=/COPY BEFORE "MODEXIT"
NEWUPDATE=MODERR12 COMMENT 'INVALID DISPLACEMENT FOR PREDEFINED SYMBOL.'
NEWUPDATE=         B      NNEWCARD
NEWUPDATE=MODERR13 COMMENT 'INVALID LENGTH FOR PREDEFINED SYMBOL.'
NEWUPDATE=         B      NNEWCARD
NEWUPDATE=/COPY "UNDOMOV"
NEWUPDATE=*
NEWUPDATE=*     CHECK PREDEFINED SYMBOL FOR REASONABLE MODIFICATION
NEWUPDATE=*
NEWUPDATE=PREDFCHK TOF    SPRED,0(LINK),3   PREDEFINED SYMBOL?
NEWUPDATE=         ST     GR0,CLILINK2      SAVE REGISTER
NEWUPDATE=         CLC    SSYMBOL(2),=C'GR' GENERAL REGISTER?
NEWUPDATE=         BE     PREDF2
NEWUPDATE=         LA     GR0,8             SET PSW OR FR LENGTH
NEWUPDATE=PREDF1   S      GR0,CDISP 
NEWUPDATE=         BNH    MODERR12          DISPLACEMENT TOO BIG
NEWUPDATE=         BCTR   GR0,0
NEWUPDATE=         CR     WC,GR0 
NEWUPDATE=         BH     MODERR13          LENGTH TOO BIG
NEWUPDATE=         L      GR0,CLILINK2      RESTORE REGISTER
NEWUPDATE=         BR     LINK
NEWUPDATE=PREDF2   LA     GR0,4             SET GR LENGTH
NEWUPDATE=         B      PREDF1
NEWUPDATE=/END
#4027 
DATE=November 18, 1977 
PERSON=MTA
NAME=PDP
NBR=044/1
DESCR=The PDP gets an ILDN error when it retries after a fatal
DESCR=I/O error on a paging disk (rather than a drum).
NEWUPDATE=/BEGIN C4027
NEWUPDATE=/COPY 'UCRETRY2'
NEWUPDATE=/COPY C=2
NEWUPDATE=         L     0,DRUMLDN            GET JUST THE LDN
NEWUPDATE=/END
#4028
DATE=November 23, 1977
PERSON=Engle
NAME=*INDEX
NBR=580/1
DESCR=If an entry attribute begins with a double colon, designating
DESCR=a text colon instead of a sub-heading, and no sub-heading
DESCR=(single) colons appear in the entry attribute, the result is
DESCR=as though the entry attribute began with a triple colon.
NEWUPDATE=/B C4028
NEWUPDATE=/D LEN(72) "INDX0402"
NEWUPDATE=         IF SUBSTR(NAME,N+1,1)=':' THEN DO;
NEWUPDATE=/COP LEN(72) "INDX0406"
NEWUPDATE=/S LEN(72) "INDX0408"
NEWUPDATE=         ELSE DO;
NEWUPDATE=/EN
#4029
DATE=November 23, 1977
PERSON=Engle
NAME=*INDEX
NBR=580/1
DESCR=If 4 or more consecutive colons appear in an entry attribute
DESCR=to designate 2 or more consecutive text colons, the multiple
DESCR=text colons are condensed to a single colon.
NEWUPDATE=/B C4029
NEWUPDATE=/D LEN(72) "INDX0167"
NEWUPDATE=      FF = INDEX(SUBSTR(WORDD,NN+LENGTH(SUB)),CHAR);
NEWUPDATE=      IF FF=0 THEN NN=0;
NEWUPDATE=      ELSE NN=NN+FF+LENGTH(SUB)-1;
NEWUPDATE=/COP LEN(72) "INDX0472"
NEWUPDATE=/S LEN(72) "INDX0479"
NEWUPDATE=         CALL SUBS(LINE, '/', '/Z');
NEWUPDATE=/EN
COMMENTS=The change at INDX0473-INDX0479 does not correct an error,
COMMENTS=but was made possible by the error correction at INDX0167.
#4030
DATE=November 28, 1977
PERSON=Engle
NAME=*INDEX
NBR=580/1
DESCR=If a level N subheading is given and the headings for the N-1
DESCR=and N-2 levels are not given separately with location
DESCR=attributes, only the N and N-1 level headings are printed.
DESCR=E.g., if "1 A" and "2 A:B:C:D" are entered and entries for A:B
DESCR=and A:B:C are not given, the headings A, C, and D will print,
DESCR=but the heading B will not print.
NEWUPDATE=/B C4030
NEWUPDATE=/D LEN(72) "INDX0400"
NEWUPDATE=HEAD: N=INDEX(NAME,':');
NEWUPDATE=/D LEN(72) "INDX0412"
NEWUPDATE=            F=LENGTH(PRESENT)-1;
NEWUPDATE=            IF SUBSTR(PRESENT, 1, F)=SUBSTR(FORMER, 1, F) THEN N=
NEWUPDATE=            INDEX(NAME, ':');
NEWUPDATE=            ELSE N=0;
NEWUPDATE=/COP LEN(72) "INDX0414"
NEWUPDATE=/S LEN(72) "INDX0416"
NEWUPDATE=      F=LENGTH(PRESENT)-1;
NEWUPDATE=      IF SUBSTR(PRESENT,1,F) Â= SUBSTR(FORMER,1,F) THEN
NEWUPDATE=/D LEN(72) "INDX0418"
NEWUPDATE=         FORMER=SUBSTR(PRESENT,1,F);
NEWUPDATE=/D LEN(72) "INDX0441"
NEWUPDATE=      CALL SUBS(NAME, '::', ':');
NEWUPDATE=/COP LEN(72) "INDX0523"
NEWUPDATE=/S LEN(72) "INDX0525"
NEWUPDATE=         GO TO HEAD;
NEWUPDATE=/EN
#4031
DATE=Nov 28, 1977
PERSON=Lift
NAME=PLOT SYSTEM(PLTBGN)
NBR=615/3
DESCR=Corrects PLTBGN bug occuring when PLTSIZ used or incorrect
DESCR=argument given to PLTBGN
NEWUPDATE=/BEGIN
NEWUPDATE=/COPY BEFORE BLANKS "BO    PBGN1"
NEWUPDATE=/EDIT "PBGN1" = "PBGN7"
NEWUPDATE=/COPY BEFORE BLANKS "LA    10,PBGN5"
NEWUPDATE=/EDIT "     " = "PBGN7"
NEWUPDATE=/DELETE BLANKS "L     2,YWIDTH"
NEWUPDATE=         LE    0,YWIDTH
NEWUPDATE=         DE    0,USCALE
NEWUPDATE=         STE   0,PACKING
NEWUPDATE=         L     2,PACKING
NEWUPDATE=/END
********** Sent November 28, 1977      **********
#4032
DATE=Dec 2, 1977
PERSON=Lift
NAME=PLOT SYSTEM(PSYM)
NBR=615/6
DESCR=Corrects bug in doing carriage returns while using 
DESCR=relative coordinates
NEWUPDATE=/BEGIN
NEWUPDATE=/COPY BEFORE BLANKS "ST    4,XMARGIN"
NEWUPDATE=/BUFFER MARGINS
NEWUPDATE=/EDIT "       " = "PSINIT3"
NEWUPDATE=/COPY COUNT=1
NEWUPDATE=/BUFFER END
NEWUPDATE=/COPY BEFORE BLANKS "BZ    PSINIT2"
NEWUPDATE=/EDIT "PSINIT2" = "PSINIT3"
NEWUPDATE=/COPY ".CCP5"
NEWUPDATE=/INCLUDE MARGINS
NEWUPDATE=/END
#4033
DATE=Dec 12, 1977
PERSON=Lift
NAME=PLOT SYSTEM(PALPHA)
NBR=615/7
DESCR=Allows a little more space after "1" in the standard alphabet.
NEWUPDATE=/BEGIN
NEWUPDATE=/COPY "DEFCHAR"
NEWUPDATE=/COPY BEFORE "         DC    X'06636F4D080B3D5F9FBDBA3433B30E0B'"
NEWUPDATE=/EDIT "06" = "07"
NEWUPDATE=/END
#4034
DATE=Dec 12, 1977
PERSON=Lift
NAME=PLOT SYSTEM(CCASM)
NBR=615/4
DESCR=Establishes synonyms PWIND for PRSTER, PONWIN for PONRST,
DESCR=and POFWIN for POFRST.  Next V11 will use the new names
DESCR=in place of the old.
NEWUPDATE=/BEGIN
NEWUPDATE=/COPY "#PRASTR  CSECT"
NEWUPDATE=/COPY BEFORE BLANKS "ENTRY PRSTER"
NEWUPDATE=/EDIT "PRSTER      " = "PWIND,PRSTER"
NEWUPDATE=/COPY BEFORE "PRSTER" 
NEWUPDATE=/EDIT "PRSTER" = "PWIND "
NEWUPDATE=PRSTER   EQU   PWIND
NEWUPDATE=/COPY BEFORE BLANKS "ENTRY POFRST"
NEWUPDATE=/EDIT "POFRST       " = "POFWIN,POFRST"
NEWUPDATE=/COPY BEFORE "POFRST"
NEWUPDATE=/EDIT "POFRST" = "POFWIN"
NEWUPDATE=POFRST   EQU   POFWIN
NEWUPDATE=/COPY BEFORE BLANKS "ENTRY PONRST"
NEWUPDATE=/EDIT "PONRST" = "PONWIN,PONRST"
NEWUPDATE=/COPY BEFORE "PONRST"
NEWUPDATE=/EDIT "PONRST" = "PONWIN"
NEWUPDATE=PONRST   EQU   PONWIN
NEWUPDATE=/END
#4035
DATE=Dec 13, 1977
PERSON=Helffrich 
NAME=MTS
NBR=42/1
DESCR=Change of the job number encoding in internal scratch file names.
DESCR=If job number goes over 9999, the first digit goes to A, B, C,
DESCR=etc.  Base 33, sort of.
NEWUPDATE=/BEGIN SFWRAP
NEWUPDATE=/.     SFWRAP -- Fix up scratch file numbering scheme so won't wrap
NEWUPDATE=/.               after job # 10000
NEWUPDATE=/COPY NEXT "CVD" NEXT "SCA,SCRATCH2" NEXT "SAVE JOB NUMBER"
NEWUPDATE=/COPY C=1
NEWUPDATE=         SRDA  SCA,32
NEWUPDATE=         D     SCA,=F'1000'      IF JOB # > 1000, MAKE FIRST
NEWUPDATE=         IC    SCA,BASE36(SCB)      DIGIT DO A, B, C, ...
NEWUPDATE=         STC   SCA,SCRFNAME+4       STUNT
NEWUPDATE=/COPY "STPARS "
NEWUPDATE=BASE36   DC    C'0123456789ABCDEFGHIJKLMNOPQRSTUVWQQSV'
NEWUPDATE=/DELETE NEXT "USING" NEXT "*,GR10"
NEWUPDATE=         USING INLOOPX,GR10       This section is self-addressable
NEWUPDATE=/COPY END
NEWUPDATE=/END SFWRAP
#4036
DATE=Dec 13, 1977
PERSON=Helffrich 
NAME=MTS
NBR=42/1
DESCR=Make allocation/deallocation of FDUBs less subject to error
DESCR=if SYGNOF branched to by GETSPACE/FREESPAC.  Makes system less
DESCR=suceptible to LOADT usecounts going negative.
DESCR=NOTE: This change requires change #4037 to be applied at the 
DESCR=same time. 
NEWUPDATE=/BEGIN ROBUST1
NEWUPDATE=/.     ROBUST1 -- Make fdub allocation/decallocation more robust
NEWUPDATE=/.                on a busy system with lots of people hanging up
NEWUPDATE=/.                in the middle of the signoff procedure.
NEWUPDATE=/COPY "CFDCHAIN "
NEWUPDATE=/COPY C=5
NEWUPDATE=/INCLUDE CFDMOVE
NEWUPDATE=/COPY "CFDNON "
NEWUPDATE=/BUFFER CFDMOVE
NEWUPDATE=/COPY C=4
NEWUPDATE=         LR    SCA,GR1
NEWUPDATE=/COPY C=3
NEWUPDATE=         LR    GR1,SCA
NEWUPDATE=/EDIT "SCA" = "GR1"
NEWUPDATE=/COPY C=2
NEWUPDATE=/BUFFER END
NEWUPDATE=/COPY END
NEWUPDATE=/END ROBUST1
COMMENTS=This is part 1 of a two-change-form change. See also #4037.
#4037
DATE=Dec 13, 1977
PERSON=Helffrich 
NAME=FSUB
NBR=635/1
DESCR=Make allocation/deallocation of FDUBs less subject to error
DESCR=if SYGNOF branched to by GETSPACE/FREESPAC.  Makes system less
DESCR=suceptible to LOADT usecounts going negative.
DESCR=NOTE: This change requires change #4036 to be applied at the
DESCR=same time. 
NEWUPDATE=/BEGIN ROBUST1
NEWUPDATE=/.     ROBUST1:: To make GIVEBACK a bit more fail-safe in the 
NEWUPDATE=/.               giving back of FDUBs.
NEWUPDATE=/COPY BEFORE "*" BLANKS "FDGET"
NEWUPDATE=/EDIT "." = ","
NEWUPDATE=*                          IN MTS (IF YOU ARE NOT ONE OF THE HAPPY
NEWUPDATE=*                          FEW WHO ALREADY KNOWS THIS.)
NEWUPDATE=/COPY TAB(72) "FSUB0498"
NEWUPDATE=/EDIT "BER" = "BZR"
NEWUPDATE=/COPY "GVBULNE"
NEWUPDATE=/COPY COUNT=1
NEWUPDATE=         LTR   SCA,SCA            FCB still there? (Could happen if
NEWUPDATE=         BZ    GVBFDB             jumped out of middle of SYGNOF)
NEWUPDATE=/DELETE BLANKS "BNP   GVBGRFF"
NEWUPDATE=         BP    GVBFDB             -> somebody still using FCB
NEWUPDATE=         XC    FDUBLN,FDUBLN      not any more for this FDUB
NEWUPDATE=         B     GVBGRFF
NEWUPDATE=/COPY "GVBFDB "
NEWUPDATE=/SKIP COUNT=17
NEWUPDATE=*
NEWUPDATE=         L     SCB,FDUBNAM        get backpointer to pointer
NEWUPDATE=         LTR   SCB,SCB
NEWUPDATE=         BZ    *+16               -> none
NEWUPDATE=         XC    0(4,SCB),0(SCB)    pointer
NEWUPDATE=         XC    FDUBNAM,FDUBNAM    and backpointer
NEWUPDATE=*
NEWUPDATE=         BAL   GR14,UNCHFDUB      unchain FDUB
NEWUPDATE=*
NEWUPDATE=         L     GR1,FDUBNAME       release name if any
NEWUPDATE=         LTR   GR1,GR1
NEWUPDATE=         BZ    *+14
NEWUPDATE=         XC    FDUBNAME,FDUBNAME
NEWUPDATE=         BAL   GR14,HIABYMH
NEWUPDATE=*
NEWUPDATE=         L     GR1,FDUBERM        release error message if any
NEWUPDATE=         LTR   GR1,GR1
NEWUPDATE=         BZ    *+14
NEWUPDATE=         XC    FDUBERM,FDUBERM
NEWUPDATE=         BAL   GR14,HIABYMH
NEWUPDATE=*
NEWUPDATE=         L     GR1,FDUBERXS       release I/O error suspension
NEWUPDATE=         LTR   GR1,GR1            block, if any
NEWUPDATE=         BZ    *+14
NEWUPDATE=         XC    FDUBERXS,FDUBERXS
NEWUPDATE=         BAL   GR14,HIABYMH
NEWUPDATE=*
NEWUPDATE=/COPY "GVBGRFCB"
NEWUPDATE=/COPY BLANKS "L     GR1,FCBMXLBA"
NEWUPDATE=         XC    FCBMXLBA,FCBMXLBA  make sure it gets lost
NEWUPDATE=/END ROBUST1
COMMENTS=This is the second of a two-changeform change.  See also #4036.
#4038
DATE=Dec 13, 1977
PERSON=Ogden
NAME=CMDS
NBR=636/1
DESCR=Rewrite of SIGNONM job program.
NEWUPDATE=/BEGIN SMNEW
NEWUPDATE=/.     SMNEW -- New SIGNONM
NEWUPDATE=/COPY BEFORE "SIGNONM "
NEWUPDATE=/DELETE "SIGNONM "
NEWUPDATE=/SKIP COUNT=8
NEWUPDATE=         EJECT
NEWUPDATE=*        SIGNONM  --  Job program to read a line from the console
NEWUPDATE=*                     which becomes a message printed out at 
NEWUPDATE=*                     signon for MTS users.
NEWUPDATE=         SPACE 3
NEWUPDATE=SIGNONM  DC    A(*+8,0)
NEWUPDATE=         USING *,15
NEWUPDATE=         LA    1,SIGONMS+2
NEWUPDATE=         SVC   READ
NEWUPDATE=         BZ    *-2                BACK AGAIN IF CANCELLED
NEWUPDATE=*
NEWUPDATE=         AR    1,0                end of message+1
NEWUPDATE=         AH    0,=H'1'            include CC character in length
NEWUPDATE=SIGNONM1 BCTR  1,0                trim off blanks
NEWUPDATE=         CLI   0(1),C' '
NEWUPDATE=         BNE   *+8
NEWUPDATE=         BCT   0,SIGNONM1         -> loop de loop
NEWUPDATE=*
NEWUPDATE=         STC   0,SIGONMS          resultant length, maybe zero
NEWUPDATE=         SVC   EXIT               -> back to the womb
NEWUPDATE=SIGONMS  DC    AL1(0),101C' '     length, text
NEWUPDATE=/COPY END
NEWUPDATE=/END SMNEW
#4039
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=CMDS
NBR=636/1
DESCR=Fix bug in D4.0 causing explicit concatenation of files to 
DESCR=be opened with the program key *MTS.RUN rather than *MTS.ETC.RUN
NEWUPDATE=/BEGIN RUNPKEY
NEWUPDATE=/.     RUNPKEY  --  Fixes bug causing program key to not be set
NEWUPDATE=/.                  to *MTS.ETC.RUN when FDName concatenation is
NEWUPDATE=/.                  run
NEWUPDATE=/COPY "STDNEWF2 "
NEWUPDATE=/COPY COUNT=3
NEWUPDATE=         NI    SWS17,255-DFPID    don't default program key
NEWUPDATE=*
NEWUPDATE=         TM    SWS2,DBGCMSW 
NEWUPDATE=         BO    STDDFPID           -> $DEBUGging today
NEWUPDATE=         L     SCA,FDUBCH
NEWUPDATE=         LTR   SCA,SCA
NEWUPDATE=         BNZ   STDETCPK           -> exp.concatenation, set to .ETC.
NEWUPDATE=         TM    FDUBSWS2,FDUBBLN+FDUBELN+FDUBMOD
NEWUPDATE=         BNZ   STDETCPK           -> beginning #, ending # or mods 
NEWUPDATE=         TM    FDUBS,FDUBINC
NEWUPDATE=         BO    STDETCPK           -> explicit increment
NEWUPDATE=         TM    SWS4,NOUNLD
NEWUPDATE=         BO    STDETCPK           -> UNLOAD=OFF
NEWUPDATE=         CLI   SHFSEP,C':'
NEWUPDATE=         BE    STDOPEN            -> no changed SHFSEP
NEWUPDATE=         SPACE
NEWUPDATE=STDETCPK L     SCA,CLSPTR+MTSFLG*4
NEWUPDATE=         MVC   CLSPID-CLSAREA(12,SCA),=CL12'*MTS.ETC.RUN'
NEWUPDATE=STDDFPID OI    SWS17,DFPID        flag something weird happened
NEWUPDATE=/COPY C=1
NEWUPDATE=/ED "       " = "STDOPEN"
NEWUPDATE=/COPY "STHOPEOK "
NEWUPDATE=/COPY COUNT=10
NEWUPDATE=         TM    SWS17,DFPID 
NEWUPDATE=         BO    STH04               -> see if PROT status needs change
NEWUPDATE=/SKIP COUNT=14
NEWUPDATE=/DELETE "STH04 "
NEWUPDATE=/SKIP C=4
NEWUPDATE=STH04    DS    0H
NEWUPDATE=/COPY BEFORE "STEXP21 "
NEWUPDATE=/ED "STEXP21" = "       "
NEWUPDATE=/END RUNPKEY
#4040
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=CMDS
NBR=636/1
DESCR=Fixes MTS SNARKing if user signs on with a  ridiculously low
DESCR=global time limit.
NEWUPDATE=/BEGIN T=.001
NEWUPDATE=/.     T=.001 -- Fixes snark if user says '$SIG xxxx T=.001'
NEWUPDATE=/.            -- by setting lowest time limit to .003, naturally
NEWUPDATE=/COPY BEFORE "SIGPAST "
NEWUPDATE=         L     GR15,GLOBCPUT       check time limit, if given
NEWUPDATE=         C     GR15,=A(100*768/10)   must be > .1
NEWUPDATE=         BNL   SIGPAST
NEWUPDATE=         BXLE  GR15,GR15,SIGPAST   and nonzero
NEWUPDATE=         MVC   GLOBCPUT,=A(100*768/10)
NEWUPDATE=/END T=.001
#4041
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=CMDS
NBR=636/1
DESCR=Fix bug causing EXEC cls to not return to cls which invoked
DESCR=it, but rather always the MTS cls.
NEWUPDATE=/BEGIN EXECRET
NEWUPDATE=/.     EXECRET -- Fix so that any CLS which calls the EXEC CLS
NEWUPDATE=/.                gets returned to when the EXEC CLS returns.
NEWUPDATE=/COPY "SYSLAB2 "
NEWUPDATE=/COPY C=5
NEWUPDATE=/EDIT "       " = "SYSLAB3"
NEWUPDATE=/COPY "RETLAB "
NEWUPDATE=/COPY BEFORE NEXT "B" NEXT "SYSLAB2"
NEWUPDATE=/EDIT "SYSLAB2" = "SYSLAB3"
NEWUPDATE=/DELETE NEXT "B" NEXT "CKDUMP"
NEWUPDATE=/INCLUDE CKDUMP
NEWUPDATE=/COPY BEFORE "MTSCLAB2 "
NEWUPDATE=MTSCLAB2 OI   SWS19,RUNTOFDA      disable RUNTOF setting CLSCMDID cuz  *
NEWUPDATE=                                  we already did it (==KLUDGE)
NEWUPDATE=/EDIT "MTSCLAB2" = "        "
NEWUPDATE=/COPY "MTSCMVC "
NEWUPDATE=/SKIP C=1
NEWUPDATE=/BUFFER CKDUMP
NEWUPDATE=/EDIT "CKDUMP" = "      "
NEWUPDATE=/COPY C=5
NEWUPDATE=/BUFFER END
NEWUPDATE=/COPY "RUNTOF "
NEWUPDATE=/COPY C=3
NEWUPDATE=         TM    SWS19,RUNTOFDA 
NEWUPDATE=         BO    RUNTOF1            -> this means don't touch CLSCMDID
NEWUPDATE=         CLI   CLSCURB,EXECFLG
NEWUPDATE=         BNE   RUNTOF1            -> EXEC wasn't previous, CLSCMDID    *
NEWUPDATE=                                     already set
NEWUPDATE=         L     SCA,CLSPTR+EXECFLG*4
NEWUPDATE=         LTR   SCA,SCA
NEWUPDATE=         BZ    RUNTOF1            -> no EXEC CLS
NEWUPDATE=         MVC   CLSCMDID,CLSCRID-CLSAREA(SCA)   set up EXEC CLS invoker
NEWUPDATE=RUNTOF1  NI    SWS19,255-RUNTOFDA reset -- only a one-shot deal
NEWUPDATE=/END EXECRET
#4042
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=CMDS
NBR=636/1
DESCR=Fix bug causing scratch files not to be destroyed if SCRFCHAR=*
NEWUPDATE=/BEGIN SFCBUG
NEWUPDATE=/.     SFCBUG -- Fix bug causing scratch files not being destroyed
NEWUPDATE=/.               if SCRFCHAR=*
NEWUPDATE=/COPY "GROD "
NEWUPDATE=/COPY BEFORE NEXT "LA" NEXT "GR1,DSFDL"
NEWUPDATE=         MVI   FNIASF,C'-'        a nice, safe scratch file char
NEWUPDATE=/END SFCBUG
#4043
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=DSRS
NBR=637/1
DESCR=Fix bug in PEEL when @MAXLEN@PEEL modifier combination used.
NEWUPDATE=/BEGIN PEELBUG
NEWUPDATE=/.     PEELBUG -- Fix bug in PEEL causing unexpected movement of 
NEWUPDATE=/.                stuff in segment 5 if high order byte of address
NEWUPDATE=/.                has garbage in it.
NEWUPDATE=/COPY "PEEL "
NEWUPDATE=/COPY C=8
NEWUPDATE=         LA    SCC,0(,SCC)
NEWUPDATE=/COPY END
NEWUPDATE=/END PEELBUG
#4044
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=DSRS
NBR=637/1
DESCR=Fix another @MAXLEN@PEEL combination bug.
NEWUPDATE=/BEGIN PEELBUG2
NEWUPDATE=/.     PEELBUG2 -- Fix another bug in peel if empty file read from
NEWUPDATE=/.                 with @PEEL@MAXLEN set.  Caused a reference to 
NEWUPDATE=/.                 page 0 in PEEL.
NEWUPDATE=/COPY "PEEL "
NEWUPDATE=/EDIT "BE" = "BZ"
NEWUPDATE=/COPY NEXT "LA" NEXT "GR2,0(GR1,SCC)"
NEWUPDATE=         LR    GR3,SCC             save location of line
NEWUPDATE=         LTR   GR2,GR2
NEWUPDATE=         BZ    PEEL1               -> no input buffer
NEWUPDATE=/COPY C=3
NEWUPDATE=/SKIP C=1
NEWUPDATE=/COPY C=3
NEWUPDATE=/EDIT "     " = "PEEL1"
NEWUPDATE=/END PEELBUG2
#4045
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=DSRI
NBR=639/1
DESCR=Make sure user input area is blanked following implicit 
DESCR=concatenation to another file.  Wipes out fragment of 
DESCR=$CONTINUE WITH xxxx left in input buffer.
NEWUPDATE=/BEGIN AREABLNK
NEWUPDATE=/.     AREABLNK :: to make sure user's input area is blanked from
NEWUPDATE=/.                 end of text to end of area if explicit concat.
NEWUPDATE=/.                 or $ENDFILE read resulted in end-of-file.
NEWUPDATE=/.                 Previously, this condition resulted in $ENDFILE
NEWUPDATE=/.                 or the tail end of the $CONTINUE WITH ... to be
NEWUPDATE=/.                 left in the buffer.
NEWUPDATE=/COPY MAXCOUNT=1200 "GIOSIQU"
NEWUPDATE=/DELETE BLANKS "BE    PSFXFE"
NEWUPDATE=         BE    ISENDFIL           -> give EOF
NEWUPDATE=/DELETE BLANKS "BE    PSFXFE"
NEWUPDATE=/SKIP COUNT=1
NEWUPDATE=         BNE   GIOSIQC
NEWUPDATE=ISENDFIL BAL   GR14,BLANKIT       blank rest of input region
NEWUPDATE=         B     PSFXFE
NEWUPDATE=*
NEWUPDATE=/COPY "GIOSIQV"
NEWUPDATE=/COPY COUNT=1
NEWUPDATE=/SKIP BLANKS "EX" NEXT "SCB,GIOSMVC"
NEWUPDATE=/COPY BLANKS "LR    GR3,SCA"
NEWUPDATE=         BAL   GR14,BLANKIT       blank rest of input region
NEWUPDATE=/COPY "GIOSIQBB"
NEWUPDATE=/SKIP COUNT=4
NEWUPDATE=/EDIT "0(SCA),FDUBNOEC " = "FDUBMTB,FDUBNOEC"
NEWUPDATE=/COPY TAB(72) "DSRI1343"
NEWUPDATE=         EJECT
NEWUPDATE=*        BLANKIT  --  Subroutine to blank out what we read for
NEWUPDATE=*                     possible implicit concatenation or endfile.
NEWUPDATE=*
NEWUPDATE=*            Clobbers SCRATCH.
NEWUPDATE=*            Assumes GR13 points to original savearea at call
NEWUPDATE=         SPACE 3
NEWUPDATE=BLANKIT  STM   SCA,SCD,SCRATCH
NEWUPDATE=         L     SCA,24(,GR13)      get original GR1
NEWUPDATE=         LM    SCA,SCB,0(SCA)     A(reg,len)
NEWUPDATE=         LH    SCB,0(,SCB)        get length
NEWUPDATE=         LA    SCC,0(SCA,SCB)     end of input region
NEWUPDATE=*
NEWUPDATE=         XR    SCD,SCD            select either X'00' or C' ' to 
NEWUPDATE=         CLI   0(SCC),0           wipe out buffer with
NEWUPDATE=         BPI   OPND,*+8           -> edge of world, use x'00'
NEWUPDATE=         BE    *+8
NEWUPDATE=         LA    SCD,C' '
NEWUPDATE=*
NEWUPDATE=         AIF   (&S370).MVCL
NEWUPDATE=         STC   SCD,0(,SCA)        propagate this
NEWUPDATE=         S     SCB,=F'2'
NEWUPDATE=         BM    BLANKRET           -> nothing much to do
NEWUPDATE=BLANKNXT S     SCB,=F'256'
NEWUPDATE=         BM    BLANKLST
NEWUPDATE=         MVC   1(256,SCA),0(SCA)  propagate fill character
NEWUPDATE=         LA    SCA,256(,SCA)
NEWUPDATE=         B     BLANKNXT
NEWUPDATE=BLANKMVC MVC   1(0,SCA),0(SCA)
NEWUPDATE=BLANKLST EX    SCB,BLANKMVC       fill last portion
NEWUPDATE=         AGO   .NOMVCL
NEWUPDATE=.MVCL    SLL    SCD,24            fill character
NEWUPDATE=         MVCL   SCA,SCC           zap the easy way
NEWUPDATE=.NOMVCL  ANOP
NEWUPDATE=BLANKRET LM     SCA,SCD,SCRATCH
NEWUPDATE=         BR     GR14
NEWUPDATE=/COPY END
NEWUPDATE=/END AREABLNK
#4046
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=DSRI
NBR=639/1
DESCR=Fix bug in D4.0 MTS causing PGNT if SETIOERR subroutine returns
DESCR=and original parameter list of output subroutine did not have
DESCR=a line number parameter.
NEWUPDATE=/BEGIN IOERSFL
NEWUPDATE=/.            :: Fix to save FAKELIST across I/O error subroutine
NEWUPDATE=/.               calls.
NEWUPDATE=/COPY "EXNOGATE"
NEWUPDATE=/SKIP   COUNT=1
NEWUPDATE=         XR    GR14,GR14          assume not using fakelist; identifed
NEWUPDATE=         ST    GR14,4+DSRISFL     by zero address of length HW
NEWUPDATE=         LA    GR14,FAKELIST
NEWUPDATE=         CR    GR14,SCB 
NEWUPDATE=         BNE   UIOENOFL           -> not using fakelist
NEWUPDATE=         MVC   DSRISFL(7*4),FAKELIST save fakelist here
NEWUPDATE=/EDIT "        " = "UIOENOFL"
NEWUPDATE=/COPY BEFORE "UIOEB1"
NEWUPDATE=/SKIP COUNT=4
NEWUPDATE=*
NEWUPDATE=UIOEB1   L     GR2,24(,GR13)      assume using user's parameters
NEWUPDATE=         L     GR14,4+DSRISFL     but check if fakelist was really
NEWUPDATE=         LTR   GR14,GR14          used
NEWUPDATE=         BZ    UIOEB2             -> no, user's parameters
NEWUPDATE=         MVC   FAKELIST(7*4),DSRISFL
NEWUPDATE=         LA    GR2,FAKELIST
NEWUPDATE=UIOEB2   XC    FDUBERXS,FDUBERXS  free DIRISUSP
NEWUPDATE=         BAL   GR14,HIABYMH       after covering tracks
NEWUPDATE=         LR    GR1,GR2            restore parameter list pointer
NEWUPDATE=/END IOERSFL
#4046
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=TIMT
NBR=539/1
DESCR=Just a cleanup of some things.
NEWUPDATE=/BEGIN CLEANUP1
NEWUPDATE=/.     CLEANUP1:: Just a few diddlie things
NEWUPDATE=/COPY "SWSNOLD"
NEWUPDATE=/COPY COUNT=3
NEWUPDATE=/SKIP COUNT=2
NEWUPDATE=         JOBTBL N=1,R=GR12
NEWUPDATE=/COPY "NOTCAND"
NEWUPDATE=/SKIP COUNT=2
NEWUPDATE=         JOBTBL N=1,R=GR4
NEWUPDATE=/END CLEANUP1
#4047
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=GATE
NBR=4000/1
DESCR=Remove TRANTB from gate
NEWUPDATE=/BEGIN REMTTB
NEWUPDATE=/.     REMTTB -- Remove "TRANTB" from GATE
NEWUPDATE=/DELETE "TRANTB" NEXT "PORT"
NEWUPDATE=/COPY END
NEWUPDATE=/END REMTTB
#4048
DATE=Dec 13, 1977
PERSON=Helffrich
NAME=USUB
NBR=638/1
DESCR=Fix bug causing subversion of LSS-imposed time limit if 
DESCR=SETLCL called to reset timer interrupt.
NEWUPDATE=/BEGIN LCLTBUG
NEWUPDATE=/.     LCLTBUG -- Fixes bug which lets users subvert LSS if their
NEWUPDATE=/.                program sets a small local time limit.
NEWUPDATE=/COPY BEFORE "SETLRS "
NEWUPDATE=SETLRS   TM    SWS8,LSSBIT       LSS=on for this user?
NEWUPDATE=         BO    SETLRC4           -> yes, then can't cancel LSS limit
NEWUPDATE=/EDIT "SETLRS" = "      "
NEWUPDATE=/COPY END
NEWUPDATE=/END LCLTBUG
#4049
DATE=Dec 16, 1977
PERSON=Sherry
NAME=*WATFIV(INOUT) -- UPDATE
NBR=483/001
DESCR=Fix bug in INOUT to properly diagnose syntax errors in
DESCR=I/O statements with NAMELIST specified.
EDIT=EDIT WAT5.SGEN
EDIT=COMMENT -- Edit update to INOUT assembly --
EDIT=INSERT 58033
EDIT=%AFTER '08610000'  ; INOUT BUGFIX
EDIT=         IF    (IOBJBIT,ON,X'08'),IERSXA No list for NAMELIST
EDIT=$ENDFILE
EDIT=STOP
COMMENTS=I/O statements of the form:
COMMENTS=      READ(5,DATA) X,Y,Z
COMMENTS=were not flagged as syntax errors if DATA was a NAMELIST
COMMENTS=variable (no list is allowed).
#4050
DATE=Dec 16, 1977
PERSON=Sherry
NAME=*WATFIV(STARTB) -- UPDATE
NBR=483/001
DESCR=Fix bug in STARTB to detect illegal subscript for variable
DESCR=dimension of dummy array in subroutines.
EDIT=EDIT WAT5.SGEN
EDIT=COMMENT -- Edit update to STARTB assembly --
EDIT=COMMENT -- (near sequence id '10180000') --
EDIT=INSERT 77077
EDIT=         LA    R6,0(,R6)   Clear top byte of address
EDIT=$ENDFILE
EDIT=STOP
COMMENTS=This corrects a bug n the following situations:
COMMENTS=      SUBROUTINE X( A, N)
COMMENTS=      DIMENSION A(N)
COMMENTS=      A(20) = 0.
COMMENTS=If N=20 and A is dimensioned as A(10) in the calling
COMMENTS=program, the reference to A(20) will now be flagged as
COMMENTS=an error.
#4051
DATE=December 16, 1977
PERSON=Engle
NAME=GRJLDT/GRJLTM SUBRS (GRJLDT)
NBR=519/1
DESCR=Check for and produce a return code of 4 if "digits" in the
DESCR=argument would produce a data exception.
NEWUPDATE=/B C4051
NEWUPDATE=/S LEN(72) "GJDT0002"
NEWUPDATE=GJDT     TITLE 'S-TYPE CALLING INTERFACE FOR GRGJULDT--C. F. ENGLE--16 1
NEWUPDATE=               DEC 77'
NEWUPDATE=/COP LEN(72) "GJDT0005"
NEWUPDATE=         PACK  DOUBLE(2),0(2,1)   CHECK FOR POTENTIAL DATA EXCEPTIONS
NEWUPDATE=         PACK  DOUBLE+2(2),3(2,1)
NEWUPDATE=         PACK  DOUBLE+4(2),6(2,1)
NEWUPDATE=         LA    15,4
NEWUPDATE=         CP    DOUBLE(2),DOUBLE+2(2)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=         CP    DOUBLE(2),DOUBLE+4(2)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=/D LEN(72) "GJDT0009"
NEWUPDATE=         SR    15,15
NEWUPDATE=EXIT     L     13,SAVE+4
NEWUPDATE=/D LEN(72) "GJDT0011"
NEWUPDATE=/EN
#4052
DATE=December 16, 1977
PERSON=Engle
NAME=GRJLDT/GRJLTM SUBRS (GRJLTM)
NBR=519/3
DESCR=Check for and produce a return code of 4 if "digits" in the
DESCR=argument would produce a data exception.
NEWUPDATE=/B C4052
NEWUPDATE=/D LEN(72) "GJTM0002"
NEWUPDATE=               DEC 77'
NEWUPDATE=/COP LEN(72) "GJTM0005"
NEWUPDATE=         PACK  QUAD(2),0(2,1)     CHECK FOR POTENTIAL DATA EXCEPTIONS
NEWUPDATE=         PACK  QUAD+2(2),3(2,1)
NEWUPDATE=         PACK  QUAD+4(2),6(2,1)
NEWUPDATE=         PACK  QUAD+6(2),8(2,1)
NEWUPDATE=         PACK  QUAD+8(2),11(2,1)
NEWUPDATE=         PACK  QUAD+10(2),14(2,1)
NEWUPDATE=         LA    15,4
NEWUPDATE=         CP    QUAD(2),QUAD+2(2)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=         CP    QUAD+4(2),QUAD+6(2)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=         CP    QUAD+8(2),QUAD+10(2)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=/D LEN(72) "GJTM0009"
NEWUPDATE=         SR    15,15
NEWUPDATE=EXIT     L     13,SAVE+4
NEWUPDATE=/D LEN(72) "GJTM0011"
NEWUPDATE=/EN
#4053
DATE=December 16, 1977
PERSON=Engle
NAME=GROSDT
NBR=520/1
DESCR=Check for and produce a return code of 4 if "digits" in the
DESCR=first argument would produce a data exception.
NEWUPDATE=/B C4053
NEWUPDATE=/D LEN(72) "GODT0001"
NEWUPDATE=GODT     TITLE 'GREGORIAN TO OS DATE CONVERSION--C. F. ENGLE--16 DEC 771
NEWUPDATE=/COP LEN(72) "GODT0008"
NEWUPDATE=         PACK  DOUBLE(2),0(2,1)   CHECK FOR POTENTIAL DATA EXCEPTIONS
NEWUPDATE=         PACK  DOUBLE+2(2),3(2,1)
NEWUPDATE=         PACK  DOUBLE+4(2),6(2,1)
NEWUPDATE=         LA    15,4
NEWUPDATE=         CP    DOUBLE(2),DOUBLE+2(2)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=         CP    DOUBLE(2),DOUBLE+4(2)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=/D LEN(72) "GODT0025"
NEWUPDATE=         SR    15,15
NEWUPDATE=EXIT     L     13,SAVE+4
NEWUPDATE=/D LEN(72) "GODT0027"
NEWUPDATE=/EN
#4054
DATE=20 December, 1977
PERSON=Lift
NAME=PLOT SYSTEM(ASM)
NBR=615/4
DESCR=Fixes a bug which occurred when both optional arguments were
DESCR=omitted.
NEWUPDATE=/BEGIN C4054
NEWUPDATE=/COPY "PNUMBR"
NEWUPDATE=/COPY "         LA    8,=F'0'"
NEWUPDATE=         SR    9,9
NEWUPDATE=/DELETE "         SR    9,9"
NEWUPDATE=/END
#4055
DATE=Dec 22, 1977     
PERSON=Boettner
NAME=FILESTATUS      
NBR=529/1
DESCR=The SUMMARY option failed to print summary items for several
DESCR=things, including the number of files, last-changed date, 
DESCR=and file information items if a catalog scan was the last 
DESCR=thing done.  Also if a catalog scan was followed by a single
DESCR=file and file information was requested (as in:
DESCR=     $FILESTATUS (AARD?,VARK) SIZE       for example)
DESCR=then file information printed for the single file was really
DESCR=the information for the last file in the catalog scan. 
NEWUPDATE=/BEGIN C4055
NEWUPDATE=/COPY BEFORE BLANKS 'XC    SCATINFO'
NEWUPDATE=/EDIT '10' = '12'
NEWUPDATE=/COPY  BLANKS 'XC    SFILINFO'
NEWUPDATE=         MVC   SCATINFO+CIONID-CIDSECT(4),=CL32' '    ZAP THESE,
NEWUPDATE=         MVC   SCATINFO+CIVOL-CIDSECT(8),=CL32' '     HAVING NO MEANING
NEWUPDATE=         MVC   SCATINFO+CIPKEY-CIDSECT(12),=CL32' '   FOR SUMMARIZATION
NEWUPDATE=/COPY 'FILOOPE'
NEWUPDATE=/DELETE BLANKS 'BE    BX'
NEWUPDATE=         BE    BXCAT
NEWUPDATE=/COPY BEFORE 'BX'
NEWUPDATE=BXCAT    MVC   FILINFO,SAVFILI   RESTORE THIS, DONE WITH SCAN
NEWUPDATE=/DELETE  BLANKS 'MVC   CATINFO'
NEWUPDATE=         MVC   CATINFO+8(12*4),SCATINFO+8
NEWUPDATE=/COPY 'NAMES2'
NEWUPDATE=/COPY BLANKS 'MVI'
NEWUPDATE=         CVD   GR6,DBLWD
NEWUPDATE=         ED    0(4,GR1),DBLWD+6
NEWUPDATE=         A     GR1,CBWID 
NEWUPDATE=         XR    GR15,GR15
NEWUPDATE=         BR    GR14
NEWUPDATE=/END
OLDUPDATE=%DELETE FSTA0241
OLDUPDATE=         XC    SCATINFO(12*4),SCATINFO
OLDUPDATE=%AFTER FSTA0242 
OLDUPDATE=         MVC   SCATINFO+CIONID-CIDSECT(4),=CL32' '    ZAP THESE,
OLDUPDATE=         MVC   SCATINFO+CIVOL-CIDSECT(8),=CL32' '     HAVING NO MEANING
OLDUPDATE=         MVC   SCATINFO+CIPKEY-CIDSECT(12),=CL32' '   FOR SUMMARIZATION
OLDUPDATE=%DELETE FSTA0781
OLDUPDATE=         BE    BXCAT
OLDUPDATE=%AFTER FSTA0790
OLDUPDATE=BXCAT    MVC   FILINFO,SAVFILI   RESTORE THIS, DONE WITH SCAN
OLDUPDATE=%DELETE  FSTA0798
OLDUPDATE=         MVC   CATINFO+8(12*4),SCATINFO+8
OLDUPDATE=%AFTER FSTA1584 
OLDUPDATE=         CVD   GR6,DBLWD
OLDUPDATE=         ED    0(4,GR1),DBLWD+6
OLDUPDATE=         A     GR1,CBWID 
OLDUPDATE=         XR    GR15,GR15
OLDUPDATE=         BR    GR14
#4056
DATE=January 6, 1978
PERSON=Engle
NAME=BILLING (BILLING)
NBR=500/4
DESCR=If a checkpoint is written after all records with type numbers
DESCR=greater than or equal to 1 have been processed, i.e., at most,
DESCR=only project records (type 0) remain in the input stream after
DESCR=the checkpoint is written, a VB record with null data (record
DESCR=length including record descriptor length equals 4) is written
DESCR=to file REPORT.  This null data record causes an error when
DESCR=processed by BILPRNT (500/7) for ALL, RUN, or CHARGE.
NEWUPDATE=/B C4056
NEWUPDATE=/D LEN(72) 'BILL0593'
NEWUPDATE=                 PUT FILE(REPORT) EDIT(TVCODE, '-') (COL(1), 2 A);
NEWUPDATE=/EN
#4057
DATE=January 6, 1978
PERSON=Engle
NAME=ACCOUNTING CLS (ACCMXMAT)
NBR=631/6
DESCR=Last line printed by STATUS PROJECT produced high order
DESCR=truncation when the number of signon ID's in the project was
DESCR=greater than 999.
NEWUPDATE=/B C4057
NEWUPDATE=/COP LEN(72) 'AMXM0802'
NEWUPDATE=/S LEN(72) 'AMXM0804'
NEWUPDATE=         MVC   CNTMSG+16(6),=X'402020202120'
NEWUPDATE=         ED    CNTMSG+16(6),DOUBLE+5
NEWUPDATE=/COP LEN(72) 'AMXM0808'
NEWUPDATE=/S LEN(72) 'AMXM0810'
NEWUPDATE=         MVC   CNTMSG+34(6),=X'402020202120'
NEWUPDATE=         ED    CNTMSG+34(6),DOUBLE+5
NEWUPDATE=/COP LEN(72) 'AMXM0812'
NEWUPDATE=/S LEN(72) 'AMXM0814'
NEWUPDATE=         MVC   CNTMSG+47(6),=X'402020202120'
NEWUPDATE=         ED    CNTMSG+47(6),DOUBLE+5
NEWUPDATE=/COP LEN(72) 'AMXM2207'
NEWUPDATE=/S LEN(72) 'AMXM2209'
NEWUPDATE=CNTMSG   DC    C' NOCHANGE ON FOR       AND OFF FOR       OF THE       1
NEWUPDATE=               PROJECT ID''S'
NEWUPDATE=/EN
********** Sent January 12, 1978      **********
#4058
DATE=Jan 19, 1978
PERSON=Tiffany
NAME=UNLINKER
NBR=562/001
DESCR=Prevents generation of junk RLD from an overlay module.
DESCR=Occurs only when OS linkage editor doesn't reset bit 7
DESCR=of flag field in last RLD data for ENTAB.
NEWUPDATE=/BEGIN C4058
NEWUPDATE=/SKIP COUNT=1
NEWUPDATE=UNLK     TITLE 'ROUTINE TO PUNCH OS LOAD MODULES FOR MTS (AN198)'
NEWUPDATE=/COPY "RLDP    "
NEWUPDATE=/COPY COUNT=1
NEWUPDATE=         MVI   RLDSW,0            RESET RLDSW.
NEWUPDATE=/COPY SPAN(" ") "END" SPAN(" ") "UNLK"
NEWUPDATE=/SKIP SPAN(" ") "EJECT"
NEWUPDATE=/END
COMMENTS=The switch is reset at start.
COMMENTS=Extra source records at end are also removed.
#4059
DATE=January 20, 1978
PERSON=Engle
NAME=GRJLDT/GRJLTM SUBRS (GRJLDT)
NBR=519/1
DESCR=Return a value of zero if the return code is nonzero.
NEWUPDATE=/B C4059
NEWUPDATE=/S BEFORE LEN(72) 'GJDT0003'
NEWUPDATE=GJDT     TITLE 'S-TYPE CALLING INTERFACE FOR GRGJULDT--C. F. ENGLE--19 1
NEWUPDATE=               JAN 78'
NEWUPDATE=/COP LEN(72) 'GJDT0005'
NEWUPDATE=/COP C=3
NEWUPDATE=         SR    0,0
NEWUPDATE=/EN
COMMENTS=Assumes that change number 4051 has been applied.
#4060
DATE=January 20, 1978
PERSON=Engle
NAME=GRJLDT/GRJLTM SUBRS (GRJLTM)
NBR=519/3
DESCR=Return a value of zero if the return code is nonzero.
NEWUPDATE=/B C4060
NEWUPDATE=/S BEFORE LEN(72) 'GJTM0003'
NEWUPDATE=GJTM     TITLE 'S-TYPE CALLING INTERFACE FOR GRGJULTM--C. F. ENGLE--19 1
NEWUPDATE=               JAN 78'
NEWUPDATE=/COP LEN(72) 'GJTM0005'
NEWUPDATE=/COP C=6
NEWUPDATE=         SR    0,0
NEWUPDATE=/COP LEN(72) 'GJTM0008'
NEWUPDATE=/COP C=1
NEWUPDATE=         LR    0,1
NEWUPDATE=/D LEN(72) 'GJTM0012'
NEWUPDATE=/EN
COMMENTS=Assumes that change number 4052 has been applied.
#4061
DATE=January 20, 1978
PERSON=Engle
NAME=GROSDT
NBR=520/1
DESCR=Return values consisting of all blanks if the return code is
DESCR=nonzero.
NEWUPDATE=/B C4061
NEWUPDATE=/S BEFORE LEN(72) 'GODT0002'
NEWUPDATE=GODT     TITLE 'GREGORIAN TO OS DATE CONVERSION--C. F. ENGLE--19 JAN 781
NEWUPDATE=/COP LEN(72) 'GODT0006'
NEWUPDATE=/S LEN(72) 'GODT0008'
NEWUPDATE=         MVC   0(8,3),=CL8' '     BLANKS
NEWUPDATE=/COP BEFORE LEN(72) 'GODT0009'
NEWUPDATE=         MVC   3(2,3),6(1)        YEAR
NEWUPDATE=/D LEN(72) 'GODT0023'
NEWUPDATE=         SR    15,15
NEWUPDATE=EXIT     MVC   DOUBLE,0(3)
NEWUPDATE=/COP LEN(72) 'GODT0024'
NEWUPDATE=/S C=2
NEWUPDATE=         L     13,SAVE+4
NEWUPDATE=/EN
COMMENTS=Assumes that change number 4053 has been applied.
#4062
DATE=January 20, 1978
PERSON=Engle
NAME=OSGRDT
NBR=523/1
DESCR=Check for and produce a return code of 4 and values consisting
DESCR=of all blanks if "digits" in the first argument would produce
DESCR=a data exception.
NEWUPDATE=/B C4062
NEWUPDATE=/D LEN(72) 'OGDT0001'
NEWUPDATE=OGDT     TITLE 'OS TO GREGORIAN DATE CONVERSION--C. F. ENGLE--19 JAN 781
NEWUPDATE=/D LEN(72) 'OGDT0007'
NEWUPDATE=         PACK  0(2,3),3(2,1)      CHECK FOR POTENTIAL DATA EXCEPTIONS
NEWUPDATE=         PACK  2(2,3),5(3,1)
NEWUPDATE=         MVC   DOUBLE,=CL8' '
NEWUPDATE=         LA    15,4
NEWUPDATE=         CP    0(2,3),2(2,3)
NEWUPDATE=         BPI   OPND,EXIT
NEWUPDATE=         ZAP   DOUBLE,2(2,3)      GET DAYS
NEWUPDATE=/D LEN(72) 'OGDT0020'
NEWUPDATE=         SR    15,15
NEWUPDATE=EXIT     MVC   0(8,3),DOUBLE
NEWUPDATE=/D LEN(72) 'OGDT0024'
NEWUPDATE=/EN
#4063
DATE=Jan 23, 1978
PERSON=Tiffany
NAME=APC
NBR=0496/003
DESCR=If the synchronization mode is on, the printout
DESCR=ignores the PRCOL option.
NEWUPDATE=/BEGIN C4063
NEWUPDATE=/COPY "PRNTBOTH"
NEWUPDATE=/COPY SPAN(" ") "IF" SPAN(" ") "R3,NZ"
NEWUPDATE=           S     R2,=F'12'        MAKE ROOM FOR LINE NUMBER
NEWUPDATE=           A     R2,PRCOL         ACCOUNT FOR PRCOL
NEWUPDATE=           S     R3,PRCOL         SET LENGTH=LENGTH-PRCOL+1
NEWUPDATE=           A     R3,=F'1'
NEWUPDATE=           IF    NEG              IF NEGATIVE, ZERO LENGTH
NEWUPDATE=             SR    R3,R3
NEWUPDATE=             S     R2,PRCOL
NEWUPDATE=             A     R2,=F'1'
NEWUPDATE=           ENDIF
NEWUPDATE=/DELETE SPAN(" ") "S" SPAN(" ") "R2,=F'11'"
NEWUPDATE=/COPY SPAN(" ") "IF" SPAN(" ") "R5,NZ"
NEWUPDATE=           S     R4,=F'12'        MAKE ROOM FOR LINE NUMBER
NEWUPDATE=           A     R4,PRCOL         ACCOUNT FOR PRCOL
NEWUPDATE=           S     R5,PRCOL         SET LENGTH=LENGTH-PRCOL+1
NEWUPDATE=           A     R5,=F'1'
NEWUPDATE=           IF    NEG              IF NEGATIVE, ZERO LENGTH
NEWUPDATE=             SR    R5,R5
NEWUPDATE=             S     R4,PRCOL
NEWUPDATE=             A     R4,=F'1'
NEWUPDATE=           ENDIF
NEWUPDATE=/DELETE SPAN(" ") "S" SPAN(" ") "R4,=F'11'"
NEWUPDATE=/END
#4064
DATE=Jan 23,1978
PERSON=MTA
NAME=RAMROD(SERVICE MODULE)
NBR=1019/1
DESCR=Any system with a record longer than 256 bytes (for example a 
DESCR=CSI record) won't load properly.
NEWUPDATE=/BEGIN C4064
NEWUPDATE=/COPY 'TMLOOP '
NEWUPDATE=/COPY NEXT 'A '
NEWUPDATE=         A     R7,=F'256'         UPDATE TO ADDRESS ALSO
NEWUPDATE=/END
#4065
DATE=Jan 23, 1978
PERSON=MTA
NAME=*FAKEOS(UPDATES)
NBR=545/5
DESCR=OPEN blows up if the number of buffers requested is not odd (i.e 
DESCR=if it is a multiple of 2).
OLDUPDATE=%DELETE FAKB4096
OLDUPDATE=%DELETE FAKB4102
OLDUPDATE=*NUMBER OF BUFFERS WANTED IN GR0 AND LENGTH OF EACH IN GR1
OLDUPDATE=%DELETE FAKB4108
OLDUPDATE=         MH    R1,DOUBLE          TOTAL LENGTH OF ALL BUFFERS
COMMENTS=These updates should be merged into 545/5 in the appropriate place.
#4066
DATE=Jan 23, 1978
PERSON=MTA
NAME=*FAKEOS(BDAM SIMULATOR)
NBR=545/7
DESCR=Every BDAM I/O operation allocates X'90' bytes for an IOB which
DESCR=is never released or reused.
NEWUPDATE=/BEGIN C4066
NEWUPDATE=/COPY 'DAWAIT '
NEWUPDATE=/COPY NEXT 'STC '
NEWUPDATE=/BUFFER CHAIN
NEWUPDATE=/SKIP '* CAM '
NEWUPDATE=/COPY BEFORE NEXT 'SR ' NEXT 'RF,RF '
NEWUPDATE=/SKIP C=1
NEWUPDATE=/BUFFER END
NEWUPDATE=/COPY 'DACHKSYN '
NEWUPDATE=/COPY C=1
NEWUPDATE=         MVI   IOBDAVLI,0         RELEASE IOB
NEWUPDATE=/COPY BEFORE 'DACLRIOB '
NEWUPDATE=/EDIT F=1 REM =
NEWUPDATE=/COPY NEXT 'ST ' NEXT 'R4,'
NEWUPDATE=/INCLUDE CHAIN
NEWUPDATE=         MVI   IOBDAVLI,255       MARK IT IN USE
NEWUPDATE=/EDIT F=1 = 'DACLRIOB'
NEWUPDATE=/END
#4067
DATE=Jan 24, 1978
PERSON=Sherry
NAME=UMLOAD
NBR=001/1
DESCR=Fix the relocation factor of CM with non-zero origin (as produced
DESCR=by the OS Linkage Editor) - it's not the same as the value.
NEWUPDATE=/BEGIN C4067
NEWUPDATE=/COPY "ESDDEF92 TM"
NEWUPDATE=/COPY COUNT=1
NEWUPDATE=         TM    SETESD+ESDST1D,COMBT  IF ESD ITEM = CM, COMPUTE NEW
NEWUPDATE=         BO    ESDDEF8                 RELFAC IN CASE NONZERO ORIGIN
NEWUPDATE=/END
COMMENTS=This bug caused A-type adcons referencing non-zero origin CMs
COMMENTS=to be improperly relocated (inter-module references).
#4068
DATE=Jan 24, 1978
PERSON=Sherry
NAME=UMLOAD
NBR=001/1
DESCR=Fix to properly relocate V-con reference to CM with non-zero
DESCR=origin from csect defined within same module as csect declaring
DESCR=CM as produced by the OS linkage editor (intra-module reference).
NEWUPDATE=/BEGIN C4068
NEWUPDATE=/COPY "RLDSA3   OI"
NEWUPDATE=/COPY COUNT=6
NEWUPDATE=         TM    RBFLGS+3,X'10'     A V-CON REFERENCE?
NEWUPDATE=         BO    RLDSA4             NO NEED TO RELOCATE NOW
NEWUPDATE=/END
#4069
DATE=Jan 24, 1978
PERSON=Sherry
NAME=LLXU
NBR=354/1
DESCR=Fix bug to free input fdub when loading empty file with the
DESCR=noprompt and return on error bits set.
NEWUPDATE=/BEGIN C4069
NEWUPDATE=/COPY "XRUNIT   L"
NEWUPDATE=/COPY BEFORE BLANKS "BO    XLERRET"
NEWUPDATE=/EDIT "XLERRET" = "XLERROR"
NEWUPDATE=/END
COMMENTS=This caused the file to be locked so other users could not
COMMENTS=access it while the calling program was still loaded.
#4070
DATE=Jan 30, 1978
PERSON=Tiffany
NAME=APC
NBR=0496/003
DESCR=To correct line number for sequential files when scanning
DESCR=backwards.
NEWUPDATE=/BEGIN C4070
NEWUPDATE=/DELETE "NOSCAN0 "
NEWUPDATE=NOSCAN0  IF    IOMOD+1,O,X'20',TM BACKWARDS?
NEWUPDATE=           NI    IOMOD+1,NOT-X'20'
NEWUPDATE=           NI    IOSWS,NOT-EOFSW
NEWUPDATE=         ENDIF
NEWUPDATE=/COPY SPAN(" ") "BM" SPAN(" ") "READBSR "
NEWUPDATE=         IF    IOSWS,O,EOFSW,TM   ENDFILE?
NEWUPDATE=           TM    IOMOD+1,X'20'    BACKWARDS?
NEWUPDATE=           BZ    READSEQ3         NO, QUICK RETURN
NEWUPDATE=           NI    IOSWS,NOT-EOFSW  RESET SWITCH
NEWUPDATE=         ENDIF
NEWUPDATE=/SKIP COUNT=2
NEWUPDATE=/COPY BEFORE SPAN(" ") "BE" SPAN(" ") "READSEQ2"
NEWUPDATE=/EDIT "SEQ2" = "SEQ6"
NEWUPDATE=/COPY BEFORE SPAN(" ") "L" SPAN(" ") "R1,RDSAVE"
NEWUPDATE=           L     R1,=F'1000'      SET INCREMENT
NEWUPDATE=           TM    IOMOD+1,X'20'    IF BACKWARDS,
NEWUPDATE=           BZ    *+6              NEGATE IT.
NEWUPDATE=           LNR   R1,R1
NEWUPDATE=           A     R1,RDSAVE        UPDATE LINE NUMBER
NEWUPDATE=/SKIP COUNT=2
NEWUPDATE=/COPY BEFORE "READSEQ2"
NEWUPDATE=READSEQ6 IF    IOMOD+1,O,X'20',TM IF BACKWARDS
NEWUPDATE=           XC    IOLNR,IOLNR      SET LNR=0.0
NEWUPDATE=         ELSE
NEWUPDATE=/COPY BEFORE "READSEQ5"
NEWUPDATE=         ENDIF
NEWUPDATE=/END
#4071
DATE=Feb 3, 1978
PERSON=Boettner
NAME=FILESTATUS COMMAND
NBR=0529/001
DESCR=To correct one of the corrections in Change Form 4055.  The
DESCR=MVC instruction with label BXCAT that was inserted just   
DESCR=before the line with label BX should be executed only if 
DESCR=SPCBIT is on, since otherwise SAVFILI does not have a valid
DESCR=value.  This caused various strange behaviors, including 
DESCR=pgnts.  The following change assumes that Change 4055 
DESCR=has already been applied. 
NEWUPDATE=/BEGIN C4071
NEWUPDATE=/COPY BEFORE 'BXCAT'
NEWUPDATE=BXCAT    TM    SWS3,SPCBIT
NEWUPDATE=         BZ    BX
NEWUPDATE=/EDIT 'BXCAT' = '     '
NEWUPDATE=/END
#4072
DATE=February 6, 1978
PERSON=Engle
NAME=ACCOUNTING (STATUS)
NBR=104/11
DESCR=Exceeding a global time limit in conversational mode or a
DESCR=local time limit in batch or conversational mode while the
DESCR=accounting file is locked will leave the file locked until the
DESCR=program is unloaded.  This change causes the program to
DESCR=terminate without locking the file if either of these limits
DESCR=leaves too little remaining time.
NEWUPDATE=/B C4072
NEWUPDATE=/D LEN(72) 'STAT0001'
NEWUPDATE=STAT     TITLE 'ACCOUNTING STATUS FOR MTS USER--C. F. ENGLE--6 FEB 78' 
NEWUPDATE=/COP LEN(72) 'STAT0133'
NEWUPDATE=         MACRO 
NEWUPDATE=&NAME    GUINFO    &ITEM,&LOC 
NEWUPDATE=.********************************************************************** 
NEWUPDATE=.*                                                                    * 
NEWUPDATE=.*       ITEM  THE LOCATION SPECIFYING THE GUINFO ITEM TO BE OBTAINED.* 
NEWUPDATE=.*       LOC   THE LOCATION INTO WHICH THE GUINFO ITEM WILL BE PLACED.* 
NEWUPDATE=.*                                                                    * 
NEWUPDATE=.********************************************************************** 
NEWUPDATE=&NAME    LA    R1,=A(&ITEM,&LOC) 
NEWUPDATE=         L     R15,=V(GUINFO) 
NEWUPDATE=         BALR  R14,R15 
NEWUPDATE=         LTR   R15,R15 
NEWUPDATE=         BNZ   GUINFERR 
NEWUPDATE=         MEND 
NEWUPDATE=         SPACE 5 
NEWUPDATE=/COP LEN(72) 'STAT0158'
NEWUPDATE=GETELT   EQU   38                 SVC DEFINITION 
NEWUPDATE=         SPACE 5 
NEWUPDATE=/D LEN(72) 'STAT0168'
NEWUPDATE=/S LEN(72) 'STAT0173'
NEWUPDATE=         GUINFO    SIGNONID,ID    GET USER SIGNON ID 
NEWUPDATE=/D LEN(72) 'STAT0182'
NEWUPDATE=         GUINFO    LOCCPUT,DOUBLE 
NEWUPDATE=         GUINFO BATCHMD,DOUBLE+4 
NEWUPDATE=         C     R6,DOUBLE+4 
NEWUPDATE=         BNE   CKLCLTM            BATCH, NO GLOBAL TIME LIMIT PROBLEM 
NEWUPDATE=         GUINFO    GLOBCPUT,DOUBLE+4 
NEWUPDATE=         L     R2,DOUBLE+4 
NEWUPDATE=         LTR   R2,R2 
NEWUPDATE=         BZ    CKLCLTM            NO GLOBAL TIME LIMIT 
NEWUPDATE=         GUINFO    GLOBTTN,DOUBLE+4    GLOBAL TIME LIMIT BASE 
NEWUPDATE=         A     R2,DOUBLE+4 
NEWUPDATE=         C     R6,DOUBLE 
NEWUPDATE=         BNE   LCLBASE            LOCAL TIME LIMIT 
NEWUPDATE=         B     GETREQTM 
NEWUPDATE=         SPACE 5 
NEWUPDATE=CKLCLTM  C     R6,DOUBLE 
NEWUPDATE=         BE    GETACC             NO LOCAL TIME LIMIT 
NEWUPDATE=         L     R2,=X'7FFFFFFF'    MAXIMUM FOR GLOBAL TIME LIMIT 
NEWUPDATE=LCLBASE  GUINFO    LOCTTN,DOUBLE+4     LOCAL TIME LIMIT BASE 
NEWUPDATE=         L     R3,DOUBLE 
NEWUPDATE=         A     R3,DOUBLE+4 
NEWUPDATE=         CR    R2,R3 
NEWUPDATE=         BNH   GETREQTM           GLOBAL LIMIT BEFORE LOCAL LIMIT 
NEWUPDATE=         LR    R2,R3              USE LOCAL TIME LIMIT 
NEWUPDATE=GETREQTM L     R3,=F'-7680'       -0.1 CPU SEC NEEDED TO READ ACC REC 
NEWUPDATE=         L     R15,=V(CNFGINFO) 
NEWUPDATE=         USING CNFGINFD,R15 
NEWUPDATE=         CLC   CIMODEL,=X'0470' 
NEWUPDATE=         BE    CKREMTM            470V/6 
NEWUPDATE=         SLA   R3,1               MINUS CPU TIME NEEDED FOR 370/168 
NEWUPDATE=         CLC   CIMODEL,=X'0168' 
NEWUPDATE=         BE    CKREMTM            370/168 
NEWUPDATE=         DROP  R15 
NEWUPDATE=         MH    R3,=H'6'           MINUS CPU TIME NEEDED FOR 360/67 
NEWUPDATE=CKREMTM  AR    R3,R2 
NEWUPDATE=         SVC   GETELT             CURRENT CPU TIME 
NEWUPDATE=         SR    R3,R0 
NEWUPDATE=         SR    R3,R1              REMAINING CPU TIME MINUS TIME NEEDED 
NEWUPDATE=         BM    NOTIME             INSUFFICIENT CPU TIME TO READ ACC REC 
NEWUPDATE=GETACC   L     R0,SAVE+4 
NEWUPDATE=/D LEN(72) 'STAT0255'
NEWUPDATE=/S LEN(72) 'STAT0258'
NEWUPDATE=         GUINFO    BATCHMD,DOUBLE 
NEWUPDATE=         C     R6,DOUBLE 
NEWUPDATE=         BE    NOFULL             NOT BATCH, ABBREVIATED OUTPUT 
NEWUPDATE=/COP LEN(72) 'STAT0267'
NEWUPDATE=GUINFERR LA    R1,=A(GUINFMSG,H13,0)   GUINFO ERROR 
NEWUPDATE=         B     READERR 
NEWUPDATE=         SPACE 5 
NEWUPDATE=/COP LEN(72) 'STAT0275'
NEWUPDATE=NOTIME   LA    R1,=A(NOTIMMSG,H44,0)   INSUFFICIENT CPU TIME 
NEWUPDATE=         B     READERR 
NEWUPDATE=         SPACE 5 
NEWUPDATE=/COP LEN(72) 'STAT0692'
NEWUPDATE=BATCHMD  DC    F'10' 
NEWUPDATE=/COP LEN(72) 'STAT0695'
NEWUPDATE=GLOBCPUT DC    F'78' 
NEWUPDATE=GLOBTTN  DC    F'94' 
NEWUPDATE=/COP LEN(72) 'STAT0701'
NEWUPDATE=LOCCPUT  DC    F'86' 
NEWUPDATE=LOCTTN   DC    F'96' 
NEWUPDATE=/COP LEN(72) 'STAT0703'
NEWUPDATE=SIGNONID DC    F'2' 
NEWUPDATE=/COP LEN(72) 'STAT0710'
NEWUPDATE=H44      DC    H'44' 
NEWUPDATE=/COP LEN(72) 'STAT0720'
NEWUPDATE=GUINFMSG DC    C' GUINFO ERROR' 
NEWUPDATE=/COP LEN(72) 'STAT0723'
NEWUPDATE=NOTIMMSG DC    C' THE LOCAL OR GLOBAL TIME LIMIT IS TOO SMALL' 
NEWUPDATE=/COP LEN(72) 'STAT0740'
NEWUPDATE=*********************************************************************** 
NEWUPDATE=*                                                                     * 
NEWUPDATE=*        MACHINE CONFIGURATION TABLE                                  * 
NEWUPDATE=*                                                                     * 
NEWUPDATE=*********************************************************************** 
NEWUPDATE=         SPACE 5 
NEWUPDATE=         COPY  *CNFGINFODSECT 
NEWUPDATE=         EJECT 
NEWUPDATE=/EN
#4073
DATE=FEBRUARY 7, 1978
PERSON=MTA
NAME=MSG ROUTINE
NBR=1023/1
DESCR=A CALL item after a false IF test causes an infinite loop.
NEWUPDATE=/BEGIN C4073
NEWUPDATE=/COPY 'L1SKP '
NEWUPDATE=/COPY C=4
NEWUPDATE=         CLI   0(MSGLOC),CALL@     CALL THIS TO GET LENGTH
NEWUPDATE=         BE    L1B
NEWUPDATE=/COPY BEFORE 'CALLC '
NEWUPDATE=CALLC    TM    SWX,@SKIP          ARE WE SKIPPING?
NEWUPDATE=         BO    CALLSKP            YES
NEWUPDATE=/EDIT FIELD=1 'CALLC' =
NEWUPDATE=/COPY 'CALLQ '
NEWUPDATE=/COPY NEXT 'B '
NEWUPDATE=CALLSKP  LA    MSGLOC,4(0,R6)     SET RESUME POINT
NEWUPDATE=         B     LOOP               AND CONTINUE
NEWUPDATE=/END
********** Sent February 8, 1978      **********
#4074
DATE=FEB 15, 1978
PERSON=Sherry
NAME=*WATFIV(ACCT) -- UPDATE
NBR=483/001
DESCR=Change the /COMPILE card scanner to recognize abbreviations
DESCR=for some job options and also to allow commas or blanks as
DESCR=delimiters.
EDIT=EDIT WAT5.SGEN
EDIT=COMMENT -- Edit update to ACCT assembly --
EDIT=INSERT 2090
EDIT=%DELETE '01250000' '01270000' 
EDIT=         LR    R2,R1              SAVE CURRENT POINTER
EDIT=BLOOP    IF        (ZR1,EQ,C';'),BANALDON        END OF PARAMETERS 
EDIT=         CLI   ZR1,C' ' 
EDIT=         BNE   *+12 
EDIT=         LA    R1,ZR1+1           SKIP THE BLANK 
EDIT=         B     BLOOP              CONTINUE 
EDIT=         CLI   ZR1,C','           SKIP ALL COMMAS 
EDIT=         BNE   BCHKDEL
EDIT=BLOOP3   LA        R1,ZR1+1            R1=R1+1; 
EDIT=         B     BLOOP              TRY SOME MORE 
EDIT=BCHKDEL  CR    R1,R2              ANY DELIMITERS?
EDIT=         BE    BANALERR           NO, SO IT'S AN ERROR
EDIT=$ENDFILE
EDIT=INSERT 2092
EDIT=%BEFORE  '01840000' 
EDIT=         BE    *+22 
EDIT=         CLC   =C'T=',ZR1              "T="? 
EDIT=%BEFORE  '01850000' 
EDIT=         LA    R1,ZR1+1                SKIP THE "T" 
EDIT=         B     *+8 
EDIT=$ENDFILE
EDIT=INSERT 2116
EDIT=%BEFORE  '02030000' 
EDIT=         BE    *+22 
EDIT=         CLC   =C'P=',ZR1              "P="? 
EDIT=%BEFORE  '02040000' 
EDIT=         LA    R1,ZR1+1                SKIP THE "P" 
EDIT=         B     *+8 
EDIT=%BEFORE  '02360000' 
EDIT=         BE    *+22 
EDIT=         CLC   =C'L=',ZR1              "L="? 
EDIT=%BEFORE  '02370000' 
EDIT=         LA    R1,ZR1+1                SKIP THE "L" 
EDIT=         B     *+8 
EDIT=$ENDFILE
EDIT=INSERT 2128
EDIT=         BE    *+20 
EDIT=         CLI   ZR1,C'S'                "S"? 
EDIT=$ENDFILE
EDIT=INSERT 2129
EDIT=         LA    R1,ZR1+1                SKIP THE "S" 
EDIT=         B     *+8 
EDIT=$ENDFILE
COMMENTS=Allowable abbreviations are T for TIME, P for PAGES,
COMMENTS=L for LINES and S for SOURCE.
#4075
DATE=FEB 15, 1978
PERSON=Sherry
NAME=*WATFIV(SCAN) -- UPDATE
NBR=483/001
DESCR=Change the control card scanner to detect illegal control cards
DESCR=and print a warning message.
EDIT=EDIT WAT5.SGEN
EDIT=COMMENT -- Edit update to SCAN assembly --
EDIT=INSERT 71014
EDIT=%AFTER '02014000'
EDIT=         SPRIN XCARD1,90          PRINT OFFENDING CARD
EDIT=         MVI   XCARD2,0           SO ERROR WON'T PRINT LAST BUFFER
EDIT=         ERROR (WARN,JB,2),DONE   "UNRECOGNIZED CONTROL CARD"
EDIT=$ENDFILE
EDIT=COMMENT -- Edit update to ERRTEXTS assembly to add new message 
EDIT=INSERT 44001
EDIT=%AFTER '02790000'
EDIT=         EMESSAGE   JB,2,'UNRECOGNIZABLE CONTROL CARD.'
EDIT=$ENDFILE
EDIT=COMMENT -- Edit update to STARTA section to add new switch.
EDIT=INSERT 76052
EDIT=%AFTER '09351500'
EDIT=XJOBSW   DC    X'00'              ON IF $JOB CARD READ
EDIT=$ENDFILE
EDIT=COMMENT -- Edit update to MAIN assembly --
EDIT=INSERT 61042
EDIT=%DELETE '02690000'
EDIT=         BE    MAIN15             YES, START THE JOB 
EDIT=         CLI   XJOBSW,0           READ A $JOB CARD YET? 
EDIT=         BE    MAIN10C            NO, SO COMPLAIN 
EDIT=         EX    R0,COPENTRY        AN $ENTRY CARD? 
EDIT=         BNE   MAIN10             NO, IGNORE IT 
EDIT=         MVI   XJOBSW,0           NO $JOB CARD YET 
EDIT=         B     MAIN10 
EDIT=MAIN10C  CLI   XSRCPTR,0          BATCH? 
EDIT=         BNE   MAIN10P            YES, PRINT THE CARD 
EDIT=         CLI   XITZFILE,0         SCARDS A FILE? 
EDIT=         BE    MAIN10             NO, SO IGNORE IT 
EDIT=MAIN10P  SPRIN XCARD1,90          ECHO CONTROL CARD 
EDIT=         SERCOM 'YOU MUST ENTER A "&CONTROL&NEWJOB" CARD FIRST'
EDIT=         B     MAIN10             TRY AGAIN 
EDIT=$ENDFILE
EDIT=INSERT 61044
EDIT=         MVI   XJOBSW,B'10000000' REMEMBER A $JOB CARD WAS READ
EDIT=$ENDFILE
EDIT=COMMENT -- Edit ERRTABLE macro to add new message type -- 
EDIT=INSERT 43000
EDIT=%INPUT *S* 43    ;43              ERRTABLE
EDIT=%OUTPUT WAT5.FUNMAC(1000)
EDIT=%AFTER '03090000'
EDIT=         ERRDEFN JB2
EDIT=%AFTER FILEMARK
EDIT=%CLOSE *S*
EDIT=%CLOSE WAT5.FUNMAC(1000)
EDIT=$CONTINUE WITH *DUMMY*
EDIT=$ENDFILE
COMMENTS=The macro ERRTABLE must be regenerated and placed in the 
COMMENTS=appropriate macro library (WAT5.FUNMAC); the copy sections
COMMENTS=ERRTEXTS and STARTA must be regenerated; and the modules
COMMENTS=ERROR, SCAN and MAIN must be regenerated and assembled to 
COMMENTS=effect this change.
#4076
DATE=FEB 15, 1978
PERSON=Sherry
NAME=*WATFIV(INOUT) -- UPDATE
NBR=483/001
DESCR=Fix the error message issued when more than 256 constants 
DESCR=appear in a DATA statement (WATFIV restriction).
EDIT=EDIT WAT5.SGEN
EDIT=COMMENT -- Edit update to INOUT assembly --
EDIT=%AFTER '06020000'  ; BUGFIX
EDIT=          MVI   IOBJBIT,X'00'     INITIALIZE SWITCH
EDIT=%AFTER '07830000' ;  BUGFIX
EDIT=          C     R4,=F'255'        MORE THAN 255 CONSTANTS?
EDIT=          BNH   ISETLEN           NO, OK
EDIT=          MVI   ZR3+1,255         SET MAX COUNT
EDIT=          ERROR (NOAC,DA,A),ITUFF  "MORE THAN 255 CONSTANTS"
EDIT=ISETLEN   DS    0H
EDIT=$ENDFILE
EDIT=COMMENT -- Edit update to ERRTEXTS copy section --
EDIT=INSERT 44001
EDIT=%AFTER '00980000'
EDIT=         EMESSAGE   DA,A,'MORE THAN 255 CONSTANTS IN DATA STATEMENT'
EDIT=$ENDFILE
EDIT=COMMENT -- Edit ERRTABLE macro to add new message type -- 
EDIT=INSERT 43003
EDIT=%BEFORE '03140000'
EDIT=         ERRDEFN DAA
EDIT=$ENDFILE
COMMENTS=Previously the message "MORE VARIABLES THAN CONSTANTS" was
COMMENTS=printed because only one byte is used to save the number of
COMMENTS=constants in the object code. This change requires that the
COMMENTS=macro ERRTABLE, the copy section ERRTEXTS, the module ERROR,
COMMENTS=and the module INOUT be regenerated.
#4077
DATE=Feb 20, 1978
PERSON=Sherry
NAME=LLXU
NBR=354/1
DESCR=Fix bug to not unload run-only program when it loads a null
DESCR=program with noprompt and return on error bits set.
NEWUPDATE=/BEGIN C4077
NEWUPDATE=/COPY "XLERROR  L"
NEWUPDATE=/COPY BEFORE BLANKS "BAL   GR2,XLCLEAN"
NEWUPDATE=/EDIT "       " = "XLERRCL"
NEWUPDATE=/COPY "XRUNIT   L"
NEWUPDATE=/COPY BEFORE BLANKS "BO    XLERROR"
NEWUPDATE=/EDIT "XLERROR" = "XLERRCL"
NEWUPDATE=/END
COMMENTS=Note: this bug was introduced by the bugfix of change #4069.
COMMENTS=The "B XLERROR" should have been "B XLERROR+8".
#4078
DATE=Mar 25, 1978
PERSON=OGDEN
NAME=OPERATOR JOB
NBR=634/1
DESCR=Provides support for the 3286 log printer, which is just
DESCR=treated like a 3284.
NEWUPDATE=/BEGIN C4078
NEWUPDATE=/COPY "GETNUP "
NEWUPDATE=/COPY COUNT=9
NEWUPDATE=         CLC   =C'3286',RDLNAM(R2)
NEWUPDATE=         BE    IS3284              WELL ALMOST ANYWAY
NEWUPDATE=/END
#4079
DATE=Mar 25, 1978
PERSON=OGDEN
NAME=OPERATOR JOB
NBR=634/1
DESCR=Fixes several bugs in the log printer Unit Check routines.
NEWUPDATE=/BEGIN C4079
NEWUPDATE=/COPY BEFORE "SVCSKIP "
NEWUPDATE=/EDIT "31" = "13"
NEWUPDATE=/COPY "TRYNUDVS "
NEWUPDATE=/COPY COUNT=16
NEWUPDATE=/EDIT "SWS" = "SWS2"
NEWUPDATE=/COPY "SAMPTR "
NEWUPDATE=/COPY COUNT=6
NEWUPDATE=/EDIT "SWS" = "SWS2"
NEWUPDATE=/COPY "UCPTR "
NEWUPDATE=/COPY COUNT=11
NEWUPDATE=/EDIT "+OC" = ""
NEWUPDATE=/COPY "WAITRTN "
NEWUPDATE=/COPY COUNT=12
NEWUPDATE=/EDIT "SWS" = "SWS2"
NEWUPDATE=/END
COMMENTS=The D4.1 version will contain a "cleaner" fix for
COMMENTS=the 1403 support.
COMMENTS=I'm sorry it took me so long to get these
COMMENTS=written up on a change form.
#4080
DATE=Mar 25, 1978
PERSON=OGDEN
NAME=OPERATOR JOB
NBR=634/1
DESCR=Fix the register setup so the SVC TIMERCNCL will work.
NEWUPDATE=/BEGIN C4080
NEWUPDATE=/COPY "WRITNOW "
NEWUPDATE=/COPY COUNT=3
NEWUPDATE=/EDIT "R3" = "R0"
NEWUPDATE=/END
COMMENTS=My thanks to the folks from UBC for finding this.
#4081
DATE=Mar 25, 1978
PERSON=OGDEN
NAME=OPERATOR JOB
NBR=634/1
DESCR=A fix so both digits of the month (mm-dd-yy) will print 
DESCR=on the console log.
NEWUPDATE=/BEGIN C4081
NEWUPDATE=/COPY "DLTIME "
NEWUPDATE=/SKIP COUNT=1
NEWUPDATE=          DC    X'21000800',AL1(0,0,0,0,0)
NEWUPDATE=/END
#4082
DATE=MARCH 31, 1978
PERSON=Sherry
NAME=*WATFIV(FORMCONV) -- UPDATE
NBR=483/001
DESCR=Fix E and D-type output format conversion for zero valued variables.
EDIT=EDIT WAT5.SGEN
EDIT=COMMENT -- Edit update to FORMCONV assembly --
EDIT=INSERT 50110
EDIT=%AFTER '13070000'
EDIT=         BAL   R8,SPZERO          CHECK IF VARIABLE IS ZERO
EDIT=%AFTER '13100000'     ; ADD NEW SUBROUTINE
EDIT=         SPACE
EDIT=SPZERO   L     R1,STR1            POINT TO VARIABLE
EDIT=         LE    0,0(,R1)           NOW IN FR0
EDIT=         LTER  0,0                IS IT ZERO?
EDIT=         BNZR  R8                 NO, JUST RETURN
EDIT=         B     ISZERO             YES
EDIT=DPZERO   L     R1,STR1            POINTER TO VARIABLE
EDIT=         LD    0,0(,R1)           PICK UP REAL*8 VARIABLE
EDIT=         LTDR  0,0                IS IT ZERO?
EDIT=         BNZR  R8                 NO, RETURN
EDIT=ISZERO   LR    R3,R4              BUFFER POINTER TO EXPONENT
EDIT=         SR    R3,R7              - POINTER TO DECIMAL POINT
EDIT=         SH    R3,=H'3'           = NUMBER OF 0'S TO BLANK
EDIT=         BM    ISZEROR            NEGATIVE -> RETURN
EDIT=         MVI   2(R7),C' '         BLANK OUT FRACTION
EDIT=         BZ    ISZEROR            ONLY ONE EXTRA 0
EDIT=         BCTR  R3,0               IBM LENGTH
EDIT=         EX    R3,BLKFRAC         BLANK OUT EXTRA ZEROS IN FRACTION
EDIT=ISZEROR  LA    R4,4(,R4)          UPDATE BUFFER POINTER
EDIT=         B     SUPCLEAN           RETURN
EDIT=BLKFRAC  MVC   3(0,R7),2(R7)
EDIT=%AFTER  '13250000'
EDIT=         BAL   R8,DPZERO          CHECK FOR VAR = 0.0
EDIT=$ENDFILE
COMMENTS=Previously FORMCONV would print zero valued variables with
COMMENTS=formats like E13.5 as "0.00000E-01", now just "0.0" will
COMMENTS=be printed for all E and D-type formats as FTN does.
#4083
DATE=April 12, 1978
PERSON=Helffrich
NAME=OPEN
NBR=428/14
DESCR=When the RENAMEIT subroutine was called to rename a file from
DESCR=one catalog to another, and the LASTCHG and CREDATE stuff was
DESCR=supplied, the LASTCHG and CREDATE were exchanged.
OLDUPDATE=%BEFORE  'OPEN1587' 
OLDUPDATE=*           16+CRECAT,80+CREFD,12+SDMLIKE,12+SDWRITE,12+FDWRITE 
OLDUPDATE=%DELETE  'OPEN1587' 
OLDUPDATE=%BEFORE  'OPEN2093' 
OLDUPDATE=         MVC   CFDPAR+56+4(22-4,RD),4(R2) RE-FORMAT PARAMETERS 
OLDUPDATE=         MVC   CFDPAR+56(2,RD),2(R2)      SO THAT CREFD GETS THEM 
OLDUPDATE=         MVC   CFDPAR+56+2(2,RD),0(R2)    RIGHT 
OLDUPDATE=         LA    R2,CFDPAR+56(,RD)          POINT TO NEW ONES 
OLDUPDATE=%BEFORE  'OPEN2111' 
OLDUPDATE=         LA    RD,CFDPAR+56+24(,RD) 
OLDUPDATE=%DELETE  'OPEN2111' 
#4084
DATE=April 12, 1978
PERSON=Helffrich
NAME=OPEN
NBR=428/14
DESCR=This decreases the number of references to the catalog to 
DESCR=update the LASTCHG date and the FSAVEIT bit in the catalog
DESCR=when a file is changed.
OLDUPDATE=%BEFORE  'OPEN0285' 
OLDUPDATE=         TM    FDFODT(R5),FSAVEIT 
OLDUPDATE=         BZ    *+8                -> FSAVEIT bit not on 
OLDUPDATE=         OI    FCBFLG(R2),FDCHNG  will, remember this then 
OLDUPDATE=%BEFORE  'OPEN0286' 
OLDUPDATE=         MVC   FCBOLCD(2,R2),FDLCHNG(R5) last change date at open 
OLDUPDATE=%BEFORE  'OPEN0287' 
OLDUPDATE=         MVC   FCBFDLOC(6,R2),BCBPA(R8)  SAVE FDLOC FOR CLOSE 
OLDUPDATE=%DELETE  'OPEN0287' 
OLDUPDATE=%BEFORE  'OPEN0574' 
OLDUPDATE=         MVC   R1NAB(4,R7),FCBLNAB(R8)  #AVAIL ENTRIES 
OLDUPDATE=%DELETE  'OPEN0574' 
OLDUPDATE=%BEFORE  'OPEN0614' 
OLDUPDATE=         BZ    CLOSD3X            -> no, check if additional refs 
OLDUPDATE=         TM    FCBFLG(R8),FDCHNG  FSAVEIT in FD set yet? 
OLDUPDATE=         BZ    CLOSR1             -> no, do it right away 
OLDUPDATE=* 
OLDUPDATE=         SVC   TIME               see if last change date needs 
OLDUPDATE=         D     R0,=F'60000000'    updating from value at open 
OLDUPDATE=         XR    R0,R0 
OLDUPDATE=         D     R0,=A(24*60)       mumbo jumbo 
OLDUPDATE=         LA    R0,1(,R1) 
OLDUPDATE=         L     R1,R1LOC(,RD)      restore this 
OLDUPDATE=         CH    R0,FCBOLCD(,R8)    see if has changed 
OLDUPDATE=         BH    CLOSR1             -> yup, have to update 
OLDUPDATE=* 
OLDUPDATE=CLOSD3X  LH    R9,FCBREFC(,R8)    any new refrences to FCB besides 
OLDUPDATE=         BXLE  R9,R9,CLOSR20      this open?  -> no 
OLDUPDATE=         SPACE 2 
OLDUPDATE=*        Going to read and maybe write file descriptor, now 
OLDUPDATE=         SPACE 
OLDUPDATE=CLOSR1   LR    R6,R8              KEEP FCB LOC AROUND 
OLDUPDATE=         SR    R7,R7              THIS MARKS A ÂKEEPIT & INUSE BUFFER 
OLDUPDATE=%DELETE  'OPEN0614' 'OPEN0619' 
OLDUPDATE=%BEFORE  'OPEN0624' 
OLDUPDATE=         BO    *+6                DONT EVEN THINK ABOUT USING THIS ONE 
OLDUPDATE=%DELETE  'OPEN0624' 
OLDUPDATE=%BEFORE  'OPEN0666' 
OLDUPDATE=* 
OLDUPDATE=         LH    R4,FCBREFC(,R6)    FIRST CHECK ADDITIONAL REFERENCES 
OLDUPDATE=         LTR   R4,R4 
OLDUPDATE=         BNZ   CLOSR5             -> FOUND SOME FLEAS 
OLDUPDATE=* 
OLDUPDATE=         CH    R2,FDLCHNG(,R5)    IF LAST CHANGE DATE ISN'T LATER, WE 
OLDUPDATE=         BH    CLOSR6             CAN SKIP WRITE ENTIRELY 
OLDUPDATE=         TM    FCBFLG(R6),FDCHNG    UNLESS 
OLDUPDATE=         BZ    CLOSR6                 FSAVEIT IN FD NOT SET 
OLDUPDATE=* 
OLDUPDATE=         LA    R0,LDN             SKIP  WRITE  JUST FREE DRIVE 
OLDUPDATE=%DELETE  'OPEN0666' 'OPEN0675' 
OLDUPDATE=%BEFORE  'OPEN0689' 
OLDUPDATE=         OI    FCBFLG(R6),FDCHNG      AND DON'T DO IT AGAIN 
OLDUPDATE=CLOSR7   MVC   FCBOLCD(2,R6),FDLCHNG(R5)  ANYWAY, UPDATE WHILE HERE 
OLDUPDATE=         LA    R8,0(,R8) 
OLDUPDATE=%DELETE  'OPEN0689' 
OLDUPDATE=%AFTER    FILEMARK 
#4085
DATE=April 12, 1978
PERSON=Helffrich
NAME=RWSEQ
NBR=428/17
DESCR=Fix bug in D4.0 READS causing write pointer in sequential file
DESCR=to not be updated properly on a backwards read.
OLDUPDATE=%BEFORE  'RWSE0349' 
OLDUPDATE=         CLC   0(4,R2),FCBSRPW(RE)  check write pointer < read 
OLDUPDATE=         BH    RSSKIPCK           -> yes 
OLDUPDATE=%DELETE  'RWSE0349' 'RWSE0350' 
********** Sent April 13, 1978      **********
#4086
DATE=May 5, 1978
PERSON=Engle
NAME=RCALL/ADROF SUBRS
NBR=357/1
DESCR=Updates the source to agree with the object (357/2) in D4.0 by
DESCR=including the entry point IADROF and zeroing the high order
DESCR=byte of the value returned by ADROF (IADROF).
NEWUPDATE=/B C4086
NEWUPDATE=/D LEN(72) 'RCAL0072'
NEWUPDATE=         ENTRY IADROF
NEWUPDATE=IADROF   EQU   *
NEWUPDATE=         L     1,0(0,1)           PICK UP THE ADDRESS FROM THE P LIST
NEWUPDATE=         LA    0,0(0,1)           ZERO THE HIGH ORDER BYTE
NEWUPDATE=/EN
COMMENTS=The same source appears to have been distributed starting
COMMENTS=with D2.0; the object changed sometime between D2.0 and
COMMENTS=D3.0.
