#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.1 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. #4087 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (ACCPRINT) NBR=104/5 DESCR=Remove the external symbol LINCOUNT from this module so that DESCR=it can be placed in an independent module, and include the DESCR=provision that a new page is generated if LINCOUNT contains DESCR=zero. NEWUPDATE=/B C4087 NEWUPDATE=/S LEN(72) 'APRT0002' NEWUPDATE=APRT TITLE 'MTS ACCOUNTING RECORD PRINT PROGRAM--C. F. ENGLE--15 MA1' NEWUPDATE= Y 78' NEWUPDATE=/D LEN(72) 'APRT0193' NEWUPDATE=/D LEN(72) 'APRT0245' NEWUPDATE=CKINIT L R4,=V(LINCOUNT) GET LINE COUNT NEWUPDATE= L R4,0(,R4) NEWUPDATE= LTR R4,R4 NEWUPDATE= BZ INIT LINE COUNT IS ZERO NEWUPDATE= CLI INITIAL,0 NEWUPDATE=/D LEN(72) 'APRT0247' NEWUPDATE=INIT SR R4,R4 INITIALIZE GR4 FOR LINE COUNT NEWUPDATE=/D LEN(72) 'APRT0334' NEWUPDATE= L R2,=V(LINCOUNT) NEWUPDATE= ST R4,0(,R2) SAVE LINE COUNT NEWUPDATE=/D LEN(72) 'APRT0340' NEWUPDATE=/S LEN(72) 'APRT0341' NEWUPDATE=CONTINUE CH R4,=H'50' NEWUPDATE=/D LEN(72) 'APRT0376' NEWUPDATE=/EN COMMENTS=Changes 4087, 4088, and 4090 through 4094 should be COMMENTS=implemented simultaneously. #4088 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (ACCLSTPR) NBR=104/72 DESCR=Remove the external symbol LINCOUNT from this module so that DESCR=it can be placed in an independent module, and include the DESCR=provision that a new page is generated if LINCOUNT contains DESCR=zero. NEWUPDATE=/B C4088 NEWUPDATE=/D LEN(72) 'ALPR0002' NEWUPDATE= 15 MAY 78' NEWUPDATE=/D LEN(72) 'ALPR0195' NEWUPDATE=/D LEN(72) 'ALPR0243' NEWUPDATE=CKINIT L R4,=V(LINCOUNT) GET LINE COUNT NEWUPDATE= L R4,0(,R4) NEWUPDATE= LTR R4,R4 NEWUPDATE= BZ INIT LINE COUNT IS ZERO NEWUPDATE= CLI INITIAL,0 NEWUPDATE=/D LEN(72) 'ALPR0245' NEWUPDATE=INIT MVI INITIAL,X'FF' NEWUPDATE=/D LEN(72) 'ALPR0297' NEWUPDATE= L R2,=V(LINCOUNT) NEWUPDATE= ST R4,0(,R2) SAVE LINE COUNT NEWUPDATE=/D LEN(72) 'ALPR0302' NEWUPDATE=/S LEN(72) 'ALPR0303' NEWUPDATE=CONTINUE CH R4,=H'57' NEWUPDATE=/D LEN(72) 'ALPR0320' NEWUPDATE=/EN COMMENTS=Changes 4087, 4088, and 4090 through 4094 should be COMMENTS=implemented simultaneously. #4089 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (ACPRJPRT) NBR=104/32 DESCR=Reverse the printing of the no high priority flags so that the DESCR=indication is printed when the flag is off rather than on. NEWUPDATE=/B C4089 NEWUPDATE=/D LEN(72) 'APPR0001' NEWUPDATE=/S LEN(72) 'APPR0002' NEWUPDATE=APPR TITLE 'MTS PROJECT RECORD PRINT PROGRAM--C. F. ENGLE--15 MAY 71 NEWUPDATE= 8' NEWUPDATE=/D LEN(72) 'APPR0262' NEWUPDATE= MAXFLAGS+2,40,NONRMT,MAXFLAGS+2,-20,HITRM 3 NEWUPDATE=/D LEN(72) 'APPR0264' NEWUPDATE= MAXFLAGS+2,-4,HIBAT NEWUPDATE=/D LEN(72) 'APPR0288' NEWUPDATE= MAXFLAGS+2,40,NONRMT,MAXFLAGS+2,-20,HITRM, 3 NEWUPDATE=/D LEN(72) 'APPR0290' NEWUPDATE= MAXFLAGS+2,-4,HIBAT NEWUPDATE=/EN #4090 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (ACPRJPRT) NBR=104/32 DESCR=Remove the external symbol LINCOUNT from this module so that DESCR=it can be placed in an independent module, and include the DESCR=provision that a new page is generated if LINCOUNT contains DESCR=zero. NEWUPDATE=/B C4090 NEWUPDATE=/D LEN(72) 'APPR0195' NEWUPDATE=/COP LEN(72) 'APPR0224' NEWUPDATE= L R4,=V(LINCOUNT) GET LINE COUNT NEWUPDATE= L R4,0(,R4) NEWUPDATE= LTR R4,R4 NEWUPDATE= BZ INIT LINE COUNT IS ZERO NEWUPDATE=/D LEN(72) 'APPR0227' NEWUPDATE=INIT SR R4,R4 INITIALIZE GR4 FOR LINE COUNT NEWUPDATE=/D LEN(72) 'APPR0298' NEWUPDATE= L R2,=V(LINCOUNT) NEWUPDATE= ST R4,0(,R2) SAVE LINE COUNT NEWUPDATE=/D LEN(72) 'APPR0304' NEWUPDATE=/S LEN(72) 'APPR0305' NEWUPDATE=CONTINUE CH R4,=H'55' NEWUPDATE=/D LEN(72) 'APPR0332' NEWUPDATE=/EN COMMENTS=Changes 4087, 4088, and 4090 through 4094 should be COMMENTS=implemented simultaneously. #4091 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (LINCOUNT) NBR=104 BASE=no previous DESCR=Place the external symbol LINCOUNT in an independent module. NEWUPDATE=/B C4091 NEWUPDATE=LCNT TITLE 'STORAGE FOR THE EXTERNAL SYMBOL LINCOUNT--C. F. ENGLE--1 NEWUPDATE= 15 MAY 78' NEWUPDATE=LINCOUNT START NEWUPDATE= DS F NEWUPDATE= END NEWUPDATE=/EN COMMENTS=The object module should be placed in ACC:ACCLIB (104/31). COMMENTS=Since the symbol LINCOUNT is no longer a duplicate symbol COMMENTS=in the library nor loaded by reference to another symbol in COMMENTS=the same module, the previous practice of removing it from COMMENTS=the library directory when ACCLIB is generated must be COMMENTS=abandoned. COMMENTS= COMMENTS=Changes 4087, 4088, and 4090 through 4094 should be COMMENTS=implemented simultaneously. #4092 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (ACCMAINT) NBR=104/15 DESCR=Change instructions referencing the data in LINCOUNT from DESCR=halfword operations to fullword operations. NEWUPDATE=/B C4092 NEWUPDATE=/COP LEN(72) 'AMAT0745' NEWUPDATE=/E 'LH'='L ' NEWUPDATE=/COP LEN(72) 'AMAT0747' NEWUPDATE=/E 'STH'='ST ' NEWUPDATE=/COP LEN(72) 'AMAT0852' NEWUPDATE=/E 'LH'='L ' NEWUPDATE=/COP LEN(72) 'AMAT0854' NEWUPDATE=/E 'STH'='ST ' NEWUPDATE=/COP LEN(72) 'AMAT0946' NEWUPDATE=/E 'LH'='L ' NEWUPDATE=/COP LEN(72) 'AMAT0948' NEWUPDATE=/E 'STH'='ST ' NEWUPDATE=/EN COMMENTS=Changes 4087, 4088, and 4090 through 4094 should be COMMENTS=implemented simultaneously. #4093 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (ACCPRJMT) NBR=104/29 DESCR=Change instructions referencing the data in LINCOUNT from DESCR=halfword operations to fullword operations. NEWUPDATE=/B C4093 NEWUPDATE=/COP LEN(72) 'APMT0417' NEWUPDATE=/E 'LH'='L ' NEWUPDATE=/COP LEN(72) 'APMT0419' NEWUPDATE=/E 'STH'='ST ' NEWUPDATE=/COP LEN(72) 'APMT0492' NEWUPDATE=/E 'LH'='L ' NEWUPDATE=/COP LEN(72) 'APMT0494' NEWUPDATE=/E 'STH'='ST ' NEWUPDATE=/EN COMMENTS=Changes 4087, 4088, and 4090 through 4094 should be COMMENTS=implemented simultaneously. #4094 DATE=May 16, 1978 PERSON=Engle NAME=ACCOUNTING (ACONSIST) NBR=104/40 DESCR=Change instructions referencing the data in LINCOUNT from DESCR=halfword operations to fullword operations. NEWUPDATE=/B C4094 NEWUPDATE=/COP LEN(72) 'ACNS0013' NEWUPDATE=/E 'LH'='L ' NEWUPDATE=/COP LEN(72) 'ACNS0015' NEWUPDATE=/E 'STH'='ST ' NEWUPDATE=/EN COMMENTS=Changes 4087, 4088, and 4090 through 4094 should be COMMENTS=implemented simultaneously. #4095 DATE=May 25, 1978 PERSON=Engle NAME=SORT (*SORT) NBR=303/1 BASE=D4.0 and D4.1 DESCR=An addressing exception occurs at ISPAC14(10), IMOD2, or DESCR=possibly other locations with certain rare, and difficult to DESCR=describe, combinations of maximum record length, maximum block DESCR=length, record format, and estimated number of records. NEWUPDATE=/B C4095 NEWUPDATE=/COP 'ISPAC8' NEWUPDATE=/D LEN(9) 'LA R0,0(R8,R3)' TAB(34) '+BUFFER REQ' NEWUPDATE= LR R0,R3 R0 <- L(RSA+TREE+4) NEWUPDATE= AR R0,R8 L(BUFFER REQ+RSA+TREE+4) NEWUPDATE=/EN COMMENTS=Two manifestations of the error which this corrects can be COMMENTS=produced by: COMMENTS= COMMENTS= $RUN *SORT PAR=I=,,360 R=91000 COMMENTS= COMMENTS=and COMMENTS= COMMENTS= $RUN *SORT PAR=I=,,360 R=91500 COMMENTS= COMMENTS=To determine the location of the interrupt, include the DPI COMMENTS=parameter, e.g., COMMENTS= COMMENTS= $RUN *SORT PAR=I=,,360 R=91000,DP #4096 DATE=May 26, 1978 PERSON=Tiffany NAME=*MACUTIL NBR=738/1 BASE=D4.1 DESCR=The PUNCH command is ignored by *MACUTIL if the modifiers DESCR=are specified. The following update fixes this bug. NEWUPDATE=/BEGIN C4096 NEWUPDATE=/COPY 'RENULHTE' NEWUPDATE=/COPY BEFORE BLANKS "KWSET" NEWUPDATE=/EDIT "LCLRHT" = "PUNRHT" NEWUPDATE=/END COMMENTS=The KWSET macro before "PUNLHT" should specify COMMENTS=RHTABLE=PUNRHT instead of RHTABLE=LCLRHT. COMMENTS=Otherwise, KWSCAN will give a bad return code, COMMENTS=forcing *MACUTIL to ignore PUNCH command completely. #4097 DATE=30 May, 1978 PERSON=Lift NAME=PLOT SYSTEM NBR=615/7 BASE=D4.1 DESCR=PSMLEN was treating sub- and super-script characters DESCR=x'09' and x'38' as regular characters. This fixes DESCR=that bug. NEWUPDATE=/BEGIN NEWUPDATE=/COPY "PSMLEN" NEWUPDATE=/COPY BEFORE "PLCHAR" NEWUPDATE=/EDIT "2F" = "38" NEWUPDATE=/COPY COUNT=1 NEWUPDATE= BZ PLCHARF NEWUPDATE= CLI 0(3),X'2F' NEWUPDATE=/EDIT "L " = "NZ" NEWUPDATE=/COPY COUNT=1 NEWUPDATE=/EDIT " " = "PLCHARF" NEWUPDATE=/COPY "PLCHAR4" NEWUPDATE= BZ PLCHARD JUST SOME CHARACTER NEWUPDATE=/SKIP COUNT=1 NEWUPDATE= CLI 0(3),X'09' NEWUPDATE= BNZ PLCHAR1 NEWUPDATE=/COPY COUNT=1 NEWUPDATE=/EDIT " " = "PLCHARD" NEWUPDATE=/END #4098 DATE=June 1, 1978 PERSON=Engle NAME=ACCOUNTING (DIRECTRY) NBR=104/44 DESCR=If DIRCLOSE is called before the directory is opened, an error DESCR=in unlocking the file is mistakenly detected. NEWUPDATE=/B C4098 NEWUPDATE=/D LEN(72) 'DIR00003' NEWUPDATE=DIR TITLE 'DIRECTORY ASSISTANCE PROGRAMS--C. F. ENGLE--1 JUN 78' NEWUPDATE=/COP LEN(72) 'DIR00488' NEWUPDATE= L R15,FDUBPTR NEWUPDATE= LTR R15,R15 NEWUPDATE= BZ CLSEXIT DIRECTORY IS NOT OPEN NEWUPDATE=/EN COMMENTS=This error occurred when the first command given to COMMENTS=ACCMAINT was DPN and there was no directory record, and COMMENTS=hence no ID's, for the project. #4099 DATE=June 28, 1978 PERSON=Tiffany NAME=*TEXT360 (PPR1) NBR=138/6 DESCR=Page numbers were left out in the table of contents if the DESCR=margin is nonzero, as specified by the last +MARGIN+ in DESCR=the TEXT360 input. NEWUPDATE=/BEGIN C4099 NEWUPDATE=/COPY BLANKS "LASTPAG:" NEWUPDATE=/COPY BEFORE BLANKS "BETA" NEWUPDATE=/EDIT "+" = "-" NEWUPDATE=/END COMMENTS=This sign change fixes the IBM bug that has been COMMENTS=there for years!! #4100 DATE=AUG 14, 1978 PERSON=OGDEN NAME=CONSIO NBR=634/003 DESCR=The version of CONSIO sent out with D4.1 was the same as DESCR=sent out with D4.0, but it shouldn't have been. The DESCR=following changes will bring the D4.0 or D4.1 source DESCR=up to the present. NEWUPDATE=/BEGIN D4.1-CONSIO NEWUPDATE=CONSIO TITLE 'SUBROUTINE TO DO STAND-ALONE I/O TO 1052 OR 3066' NEWUPDATE=* NEWUPDATE=* REQUIRES 2=COPY:SETPARM AND 3=COPY:MISC.MACROS NEWUPDATE=* NEWUPDATE=* LAST CHANGED DEC. '77 BY JCO NEWUPDATE=* TO USE CONSDSCT MACRO FROM COPY:MISC.MACROS NEWUPDATE=* AND AGAIN IN APRIL '78 BY MTA NEWUPDATE=* SO IT WILL WORK WHEN THERE IS NO 1052, 3215 OR 3066 CONSOLE NEWUPDATE=* AND TO ALLOW THE RETURN OF NULL LINES NEWUPDATE= SPACE 2 NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=3 NEWUPDATE= AIF (&S370).NO360 NEWUPDATE= INSTSET S370=NO,M67=YES NEWUPDATE=.NO360 ANOP NEWUPDATE= SPACE 3 NEWUPDATE=/COPY COUNT=100 NEWUPDATE= NI CONSFLG,ALL-CONSLINT-CONSNOSQ RESET LOST INT FLAG NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=15 NEWUPDATE= TM CONSFLG,CONSBKUP HAVE WE BEEN USING 1052 NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=2 NEWUPDATE= CLC =H'-1',0(R2) IS THERE A BACK UP CONSOLE NEWUPDATE= BE *+12 NO - DON'T TRY TO USE ONE THEN NEWUPDATE=/COPY COUNT=2 NEWUPDATE= OI CONSFLG,CONSCALL SIGNAL FOR OPERATOR JOB NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=31 NEWUPDATE= CH R1,=H'-1' IS THERE A BACK UP CONSOLE? NEWUPDATE= BE NOBAKUP NOPE NEWUPDATE=/COPY COUNT=3 NEWUPDATE= LH R1,CONSPATH DEVICE ADDRESS NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=28 NEWUPDATE=CONSEXIT TM CONSFLG,CONSLINT ANY LOST INTERRUPTS? NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=24 NEWUPDATE= LH R1,CONSPATH DEVICE ADDRESS NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=12 NEWUPDATE= L R1,CSW CHECK FOR A NULL LINE NEWUPDATE= LA R1,0(0,R1) ADDR OF LAST CCW + 8 NEWUPDATE= LA R2,CONSRCCW+8 POINT TO SECOND CCW NEWUPDATE= CR R1,R2 DID WE GET TO IT NEWUPDATE= BH *+8 YES NEWUPDATE= LH R0,6(0,R3) NO - SET RESID CNT TO INIT CNT NEWUPDATE=/COPY COUNT=33 NEWUPDATE=USE1052 OI CONSFLG,CONSBKUP TEMPORARILY USING OLD STUFF NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=56 NEWUPDATE=ATTNWAIT OI CONSFLG,CONSNOSQ DON'T Q INTS FOR THIS DEV NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=11 NEWUPDATE= CH R1,CONSPATH MIGHT WE HAVE TO HDV NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=32 NEWUPDATE=CONSGO OI CONSFLG,CONSNOSQ DON'T QUEUE STATUS FOR THIS DEV NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=33 NEWUPDATE=RING TM CONSFLG,CONSBKUP ARE WE USING THE 3270? NEWUPDATE= BNZ RING2 NO, FORCE OUR WAY THROUGH NEWUPDATE= CH R1,CONSPATH IS IT THE 1052 CAUSING TROUBLE? NEWUPDATE=/SKIP COUNT=3 NEWUPDATE=/COPY COUNT=25 NEWUPDATE=QUECHK TM CONSFLG,CONSNOSQ Q STATUS FOR ALL DEV? NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=10 NEWUPDATE= OI CONSFLG,CONSLINT REMEMBER NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=32 NEWUPDATE=EXTINT TM CONSFLG,CONSBKUP ALREADY USING BACKUP? NEWUPDATE=/SKIP COUNT=1 NEWUPDATE=/COPY COUNT=8 NEWUPDATE=CONSCOMM DS 0F NEWUPDATE=.NOOJ2 ANOP NEWUPDATE= CONSDSCT TYPE=CSECT NEWUPDATE=* SPACE NEWUPDATE=/SKIP COUNT=17 NEWUPDATE=/COPY COUNT=60 NEWUPDATE=/END COMMENTS=The above update lines produce three changes: COMMENTS=1) Allow null lines to be returned. COMMENTS=2) Allow CONSIO to work even where where isn't a COMMENTS= a "backup" console. COMMENTS=3) Move the DSECT CONSDSCT into the macro library COMMENTS= COPY:MISC.MACROS, changing a few symbol names COMMENTS= along the way. #4101 DATE=Aug 22, 1978 PERSON=MTA NAME=ASMH Macro Update NBR=737/20 DESCR=Several mistakes in the update for the ASMH macro library resulted DESCR=from trying to simultaneously update both the macro library and its DESCR=update. The fixes are as follows BASE=Dist 4.1 EDIT=MOVE 103.3 103.6 112 EDIT=MOVE 1 TO 1 EDIT=INSERT 1 '/OPTIONS CHANGE_CODE=(73-80,REPLACE)' EDIT=CHANGE 4035 'SYSCCID'SYSLINE' EDIT=INSERT 2011.7 '/SKIP C=1' #4102 DATE=August 31, 1978 PERSON=Engle NAME=*INDEX NBR=580/1 DESCR=If a location attribute (page number) contains a number which DESCR=is followed by a period, and the period is not followed by a DESCR=numeric digit, an infinite loop results. For example, any of DESCR=the following will produce a loop: DESCR= 24. Term DESCR= 24.X Term DESCR= 24..8 Term BASE=D4.1 NEWUPDATE=/B C4102 NEWUPDATE=/COP LEN(72) 'INDX0322' NEWUPDATE= ELSE DO; NEWUPDATE= FNLPG=FNLPG||'.'; NEWUPDATE= ATTRT=ATTRT||'.'; NEWUPDATE= PAGEE=SUBSTR(PAGEE, 2); NEWUPDATE= END; NEWUPDATE=/EN #4103 DATE=September 5, 1978 PERSON=Alexander NAME=CONFIG NBR=046/2 DESCR=When calculating the length of the preloaded part of shared VM, CONFIG DESCR=fails to take account of the 8 bytes occupied by the ENDSEG2 CSECT. This DESCR=means that if ENDSEG2 falls on a page boundary, it is effectively DESCR=discarded by CONFIG. BASE=D4.1 NEWUPDATE=/BEGIN C4103 NEWUPDATE=/COPY '.SX10 ' NEWUPDATE=/COPY NEXT 'L ' NEWUPDATE= LA GR4,8(0,GR4) PLUS 8 FOR ENDSEG2 ITSELF NEWUPDATE=/END #4104 DATE=September 27, 1978 PERSON=Engle NAME=ACCOUNTING (ACCFLATN) NBR=104/103 DESCR=This subroutine was inadvertently left out of D4.1. This DESCR=updates it to the D4.1 level. NEWUPDATE=/B NEWUPDATE=/C Change C4104 - Change codes cannot be added to GOM programs NEWUPDATE=/COP C=2 NEWUPDATE=/S C=3 NEWUPDATE= P'N ACTSW, ATTNSV(17), ATTNSW, EXPTM, STAFSW NEWUPDATE= B'N ACTSW, ATTNSW, STAFSW NEWUPDATE=/EN #4105 DATE=September 27, 1978 PERSON=Engle NAME=ACCOUNTING (ACCFLATN) NBR=104/103 DESCR=If an attention interrupt is entered twice, the second one DESCR=will produce a program interrupt at a location which is twice DESCR=the address of ATTN. NEWUPDATE=/B NEWUPDATE=/C Change C4105 - Change codes cannot be added to GOM programs NEWUPDATE=/D TAB(16) 'ATTNTRP' NEWUPDATE= ATTNTRP.(R0=ATTN, R1=.LOC. ATTNSV) NEWUPDATE=/EN COMMENTS=The current version of GOM produces two RLD items when a COMMENTS=function contains a function name constant referring to the COMMENTS=function itself. The solution to this is to refer to the COMMENTS=function with a function name variable having the name of COMMENTS=the function instead of with a function name constant. #4106 DATE=September 27, 1978 PERSON=Engle NAME=ACCOUNTING (FILUPDAT) NBR=104/58 BASE=D4.1 DESCR=Eliminate updating of the accounting record fields if the last DESCR=time the cumulative sums were updated is greater than or equal DESCR=to the time to which the file charges are being updated. NEWUPDATE=/B C4106 NEWUPDATE=/D TAB(72) 'FLUP0002' NEWUPDATE= NGLE--11 JUL 78' NEWUPDATE=/COP TAB(72) 'FLUP0184' NEWUPDATE= CL 5,ACCTAF NEWUPDATE= BNH NEXT NEWUPDATE=/EN #4107 DATE=September 27, 1978 PERSON=Sherry NAME=*SYMBOLS NBR=0096/001 BASE=D4.1 DESCR=This fix is required because *LIBRARY was changed from a DESCR=sequential file to a line file. Consequently, *SYMBOLS DESCR=must now process DIR records in line files. NEWUPDATE=/BEGIN C4107 NEWUPDATE=/COPY "SCANDIR " NEWUPDATE= MVC DIRTYPEF,LBA+9 SAVE FILE TYPE FLAG NEWUPDATE=/COPY BLANKS "CALL FREESPAC" NEWUPDATE=/COPY COUNT=1 NEWUPDATE= TM DIRTYPEF,X'01' IS THE LIBRARY A LINE FILE? NEWUPDATE= BO LINELIB YES, DON'T POINT (IT'S IMPOLITE) NEWUPDATE=/COPY BLANKS "B LBREAD" NEWUPDATE=LINELIB L R1,PDIRPTR LINE NUMBER OF ENDJUNK NEWUPDATE= BCTR R1,0 POINT BEFORE NEWUPDATE= ST R1,LBN THIS IS THE LINE TO READ NEWUPDATE= MVC LBM,=X'10060002' @ÂEC,@ÂIC,@SP,@I NEWUPDATE= CALL READ,LBREADP THIS DOES THE "POINT" NEWUPDATE= XC LBM,LBM RESET MODIFIERS NEWUPDATE= B LBREAD CONTINUE NEWUPDATE=/COPY "LBL " NEWUPDATE=DIRTYPEF DS XL1 NEWUPDATE=/END #4108 DATE=October 9, 1978 PERSON=Engle NAME=SORT (SORT PGM, SORT PGM PH 1, SORT PGM PH 2) NBR=303/1,24,28 BASE=D4.1 and RDIST15 DESCR=If the sequence (SE) collating type is used, if more than one DESCR=output data set is specified in the control statement and SORT DESCR=changes to a new output data set, and if no intermediate files DESCR=are needed by SORT, then SORT terminates with a program DESCR=interrupt. NEWUPDATE=/B C4108 NEWUPDATE=/D TAB(72) 'SORT1441' NEWUPDATE= CLI CURINP+1,1 REAL EOF? NEWUPDATE=/D TAB(72) 'SORT1460' NEWUPDATE= MVI CURINP+1,1 MARK REAL SEQUENCE EOF NEWUPDATE=/D TAB(72) 'SORT1468' NEWUPDATE= CLI CURINP+1,1 REAL EOF? NEWUPDATE=/EN COMMENTS=This condition may be produced as follows: COMMENTS= COMMENTS= $RUN *SORT PAR=S=CH,A,1,7,SE I=*SOURCE* O=-1(,2),,,,-2 R=10 COMMENTS= LINE A COMMENTS= LINE B COMMENTS= LINE C COMMENTS= LINE D COMMENTS= LINE E COMMENTS= $ENDFILE #4109 DATE=October 9, 1978 PERSON=Engle NAME=SORT (SORT PGM, SORT PGM PH 1, SORT PGM PH 2) NBR=303/1,24,28 BASE=D4.1 and RDIST15 DESCR=If the delete (DEL) parameter and more than one output data DESCR=set are specified in the control statement, and if SORT DESCR=changes to a new output data set, then the first record after DESCR=the change will be treated as not equal to the following DESCR=record regardless of its actual relationship. NEWUPDATE=/B C4109 NEWUPDATE=/COP TAB(72) 'SORT1596' NEWUPDATE= L R1,AREC A(NEXT OUTPUT REC) FOR DELETE OPTION NEWUPDATE=/EN COMMENTS=This condition may be produced as follows: COMMENTS= COMMENTS= $R *SORT PAR=S=CH,A,2,4,SE I=*SOURCE* O=-1(,2),,,,-2 DEL=LAST COMMENTS= LINE A COMMENTS= LINE B COMMENTS= LINE C COMMENTS= LINE D COMMENTS= LINE E COMMENTS= $ENDFILE COMMENTS= COMMENTS=" LINE C" will be erroneously deleted. #4110 DATE=October 12, 1978 PERSON=MTA NAME=*REDUCE2 NBR=556/3 BASE=RDIST15 DESCR=One line in the RDIST15 version of REDUCE2 is longer than 72 DESCR=characters. Unfortunately it is a comment line and the semi-colon DESCR=is lost causing the next line to be ignored. This has disastrous DESCR=results (e.g., i**2 is 0). NEWUPDATE=/BEGIN C4110 NEWUPDATE=/. FIX A LINE THAT GOT TOO LONG SOMEHOW IN SUBS2F* NEWUPDATE=/COPY 'SYMBOLIC PROCEDURE SUBS2F!* U;' NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT HOLD 'SUBSTITUTION' = 'SUBST' NEWUPDATE=/EDIT 'OCCUR' = 'OCCURS;' NEWUPDATE=/END ********** Sent with RD15 (10-17-78) ********** #4111 DATE=October 27, 1978 PERSON=Tiffany NAME=*UNLINKER NBR=562/2 BASE=D4.0 DESCR=This fixes a program interrupt in routine BLKRTN of *UNLINKER DESCR=when the user is trying to input an IEHMOVE data set with DESCR=parameter LIST,DUMP. NEWUPDATE=/BEGIN C4111 NEWUPDATE=/. Get rid of a bad branch in the BXLE instruction. NEWUPDATE=/COPY 'XDUMP1 ' NEWUPDATE=/COPY BEFORE NEXT 'BXLE' NEWUPDATE=/EDIT 'DUMP2 ' = 'XDUMP2' NEWUPDATE=/END COMMENTS= This affects also the program *IEHMOVE (component #291). #4112 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FIXLNR - Fix things so MTS line numbers bigger than 999999.999 NEWUPDATE=/. or smaller than -99999.999 print as eight hex digits NEWUPDATE=/. with primes on either side, like the editor does. NEWUPDATE=/. I don't like this fix much, but it is better than NEWUPDATE=/. just printing as much of the number as will fit and NEWUPDATE=/. we don't really want to change the format of the NEWUPDATE=/. output produced by the $LIST command. NEWUPDATE=/BEGIN FIXLNR NEWUPDATE=/COPY 'WHAF ' NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT 'PUTDEC' = 'PUTLNR' NEWUPDATE=/COPY 'AFREDINC ' NEWUPDATE=/COPY NEXT 'B' NEXT 'CONFIRM' NEWUPDATE= B PUTLNR NEWUPDATE=/COPY 'POUT ' NEWUPDATE=/COPY NEXT 'EJECT' NEWUPDATE=* PUTLNR -- SUBROUTINE TO PUT OUT DECIMAL LINE NEWUPDATE=* NUMBER IN LINE IMAGE READY TO PRINT. NEWUPDATE=* IF THE NUMBER IS TOO BIG TO FIT IN NEWUPDATE=* 10 COLUMNS THEN IT IS PRINTED IN HEX. NEWUPDATE=* NEWUPDATE=* ENTRY - SDC CONTAINS THE FW VALUE NEWUPDATE=* SCC CONTAINS LOCN OF WHERE NEWUPDATE=* THE 12 CHAR. RESULT IS TO GO NEWUPDATE=* NEWUPDATE=* RESULT HAS THE FORM BDDDDDD.DDDB IF NEWUPDATE=* THE VALUE IS BIGGER THAN 999999.999 OR NEWUPDATE=* LESS THAN -99999.999, OTHERWISE NEWUPDATE=* IT HAS THE FORM B'HHHHHHHH'B NEWUPDATE=* NEWUPDATE=* CLOBBERS GR1 NEWUPDATE= SPACE 3 NEWUPDATE=PUTLNR C SCD,=F'999999999' TOO BIG? NEWUPDATE= BH PUTBIG NEWUPDATE= C SCD,=F'-99999999' TOO SMALL? NEWUPDATE= BNL PUTDEC NEWUPDATE=* TOO BIG OR TOO SMALL SO PUT IT OUT IN HEX NEWUPDATE=PUTBIG LA SCC,2(,SCC) WHERE TO PUT HEX. NBR. NEWUPDATE= LR GR1,GR14 SAVE THIS NEWUPDATE= BAL GR14,PUTHEX NEWUPDATE= S SCC,=F'2' BACK THE WAY IT WAS NEWUPDATE= MVC 0(2,SCC),=C' ''' NEWUPDATE= MVC 10(2,SCC),=C''' ' NEWUPDATE= LR GR14,GR1 RESORE THIS NEWUPDATE= BR GR14 RETURN NEWUPDATE= EJECT NEWUPDATE=/END FIXLNR #4113 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FIXDEC - Fit PUTDEC so that attempts to convert number bigger NEWUPDATE=/. than 999999.999 or smaller than -99999.999 cause a NEWUPDATE=/. string of asterisks to be output instead NEWUPDATE=/BEGIN FIXDEC NEWUPDATE=/COPY BEFORE 'PUTDEC ' NEWUPDATE=PUTDEC C SCD,=F'999999999' TOO BIG? NEWUPDATE= BH PUTSTARS NEWUPDATE= C SCD,=F'-99999999' TOO SMALL? NEWUPDATE= BL PUTSTARS NEWUPDATE=/EDIT 'PUTDEC' = ' ' NEWUPDATE=/COPY BEFORE '* ' NEWUPDATE= SPACE NEWUPDATE=PUTSTARS MVC 0(12,SCC),=C' ********** ' OH WELL NEWUPDATE= BR GR14 NEWUPDATE=/END FIXDEC #4114 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. TRIMNOW - In theory it is on longer necessary to write NEWUPDATE=/. @-TRIM @PEEL from OUT. This change tests that NEWUPDATE=/. theory. It was necessary to WRITE @TRIM @PEEL NEWUPDATE=/. before to keep FAKELIST from being reused, but NEWUPDATE=/. now that DSRI doesn't use FAKELIST anymore .... NEWUPDATE=/BEGIN TRIMNOW NEWUPDATE=/COPY 'OUT ' NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE= SR SCC,SCC START WITH MODS ALL DEFAULT NEWUPDATE=/COPY 'OUTMATN ' NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE= SR SCC,SCC MODS ARE ZERO TO START NEWUPDATE=/COPY 'OUTM ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT '48' = '00' NEWUPDATE=/COPY 'OUTBNATN ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT '48' = '00' NEWUPDATE=/COPY 'OUTB ' NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE= SR SCC,SCC ZERO MODS NEWUPDATE=/COPY 'OUTMC ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT '68' = '20' NEWUPDATE=/END TRIMNOW #4115 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS NBR=42/1 DESCR=This eliminates the message, "THERE IS NO ACTIVE FILE TO PUT DESCR=THAT IN" if the hapless user types a line number on the front DESCR=of his input line. NEWUPDATE=/. ================================================================= NEWUPDATE=/. KILLAFD - Push the use of *AFD* in to the back ground a NEWUPDATE=/. little more and someday it may die a natural death. NEWUPDATE=/BEGIN KILLAFD NEWUPDATE=/COPY BEFORE 'NWHAF2 ' NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=2 NEWUPDATE= B INLOOP NEWUPDATE=/SKIP C=2 NEWUPDATE=/COPY 'INC89 ' NEWUPDATE=/COPY C=5 NEWUPDATE= BZ INC8 IF NOT THEN DON'T PEEL NEWUPDATE=/SKIP BEFORE 'INC88 ' NEWUPDATE=/EDIT 'INC88' = ' ' NEWUPDATE=/END KILLAFD #4116 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. LFRRAX - KILL OFF THE SET LFR OPTION NEWUPDATE=/BEGIN LFRAX NEWUPDATE=/COPY 'INLP45 ' NEWUPDATE=/COPY C=3 NEWUPDATE=/SKIP C=8 NEWUPDATE=/END LFRAX #4117 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. FIXHADDD - GET ZHADDDA TO USE THE STACK NEWUPDATE=/BEGIN FIXHADDD NEWUPDATE=/COPY 'MTS ' NEWUPDATE=/COPY BEFORE NEXT 'ENTRY' NEXT 'ATTNNGCK,ZHADDDA,CHKSPEL' NEWUPDATE=/EDIT ',ZHADDDA' = '' NEWUPDATE=/COPY 'OUTMA ' NEWUPDATE=/SKIP C=1 NEWUPDATE= RSECT(NULLRCT),LINKAGE-TYPE(MTS) NEWUPDATE=/COPY 'HIABYMHA ' NEWUPDATE=/COPY C=1 NEWUPDATE=ZHADDDA ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(2,0)) NEWUPDATE=CFDUBA ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,1)), @ NEWUPDATE= RSECT(NULLRCT) ***ADAPTOR*** NEWUPDATE=/COPY 'ZTRCHL ' NEWUPDATE=/COPY C=3 NEWUPDATE=/SKIP C=3 NEWUPDATE= RICALL ZHADDDA(A(1),(SCD)) NEWUPDATE=/COPY 'HIABYMHA ' NEWUPDATE=/COPY C=2 NEWUPDATE= SPACE 5 NEWUPDATE=CFDUBA RAENTER , CFDUB ADAPTOR NEWUPDATE= BAL GR14,CFDUB NEWUPDATE= REXIT VALUE() FDUB IN GR0 ALREADY NEWUPDATE=/COPY 'OPERAN3 ' NEWUPDATE=/COPY '* ' NEWUPDATE=/COPY C=3 NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY C=2 NEWUPDATE=* GR1 = FDUB TO BE HELD NEWUPDATE=/SKIP C=5 NEWUPDATE= SPACE 2 NEWUPDATE=ZHARCT RSECT NEWUPDATE=ZHAMSG DS CL19 FOR "*...* NNNNNN RELEASED" MSG NEWUPDATE= REND NEWUPDATE= SPACE 3 NEWUPDATE=ZHADDDA RENTER , ZILCH TO HOLD *...* NEWUPDATE=/COPY C=1 NEWUPDATE= LR SCD,GR1 NEWUPDATE=/COPY NEXT 'LPR' NEXT 'GR0,SCD' NEWUPDATE=/SKIP C=3 NEWUPDATE= RCALL CFDUBA(,A(5),(SCD)) COPY FDUB ONTO CHAIN 5 NEWUPDATE=/COPY C=6 NEWUPDATE=/EDIT 'SCSSVA' = 'ZHAMSG' NEWUPDATE=/EDIT 'SCSSVA' = 'ZHAMSG' NEWUPDATE=/EDIT 'SCSSVA' = 'ZHAMSG' NEWUPDATE=/SKIP C=6 NEWUPDATE= RCALL OUTMA(A(19),A(ZHAMSG)) NEWUPDATE= DROP SCC,SCD NEWUPDATE=ZHADRET REXIT NEWUPDATE=/END FIXHADDD #4118 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 DESCR=This implements the suggestion by UQV to make SIGMCD macro DESCR=expand its buffer size dependent on RATELEN. NEWUPDATE=/. ================================================================= NEWUPDATE=/. SIGMCD - If that macro is going to reference RATELEN then NEWUPDATE=/. this better become part of "THEDSECT" NEWUPDATE=/BEGIN SIGMCD NEWUPDATE=/COPY 'FTV ' NEWUPDATE=/COPY BEFORE NEXT 'COPY' NEXT 'COPY:RATEVEC' NEWUPDATE=/SKIP C=2 NEWUPDATE=/END SIGMCD #4119 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 DESCR=This is a "temporary" UM change to set a mousetrap for some DESCR=dumps which have shown this up recently. NEWUPDATE=/. ================================================================= NEWUPDATE=/. FREEDSCT - DON'T LET THE MTS DSECT GET AWAY NEWUPDATE=/BEGIN FREEDSCT NEWUPDATE=/COPY 'HIABYMH ' NEWUPDATE= LA GR2,0(GR1) DON'T GIVE AWAY THE MTS DSECT! NEWUPDATE= CR GR2,GR4 NEWUPDATE= BL HIABWIOK NEWUPDATE= LA GR0,LASTDSCT-DSCT(,GR4) NEWUPDATE= CR GR2,GR0 NEWUPDATE= BNL HIABWIOK NEWUPDATE= BAL GR2,GMABPDIE OOPS NEWUPDATE=HIABWIOK DS 0H HERE IS A BUFFER WHICH IS OK TO FREE NEWUPDATE=/END FREEDSCT #4120 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. ARLCHK - Accounting record length check to prevent unexpectedly NEWUPDATE=/. long accounting records from clobbering the DSECT, or NEWUPDATE=/. prevent long records from being written out. NEWUPDATE=/BEGIN ARLCHK NEWUPDATE=/COPY 'GETACR4 ' NEWUPDATE=/COPY C=6 NEWUPDATE= CH GR1,=Y(LACCR-11) TOO LONG? NEWUPDATE= BH GARERR YES - ERROR NEWUPDATE=/COPY BEFORE 'GETACR7 ' NEWUPDATE=GETACR7 CH GR1,=Y(LACCR) TOO LONG? NEWUPDATE= BH GARERR YES - ERROR NEWUPDATE=/EDIT 'GETACR7' = ' ' NEWUPDATE=/COPY 'RWFXIT2 ' NEWUPDATE=/COPY C=5 NEWUPDATE= SPACE NEWUPDATE=GARERR LA GR0,LGAREMSG WARN OPERATOR NEWUPDATE= LA GR1,GAREMSG NEWUPDATE= SVC WRITE NEWUPDATE= B OOPS GO SNARK NEWUPDATE= SPACE NEWUPDATE=GAREMSG DC C'ACCOUNTING RECORD TOO LONG IN GETACCR' NEWUPDATE=LGAREMSG EQU *-GAREMSG NEWUPDATE=/COPY 'PUTACRL ' NEWUPDATE=/COPY C=2 NEWUPDATE= BPI OPND,PARERR MISSING OR CLOBERED TERMINATOR NEWUPDATE=/COPY C=4 NEWUPDATE= CH SCB,=Y(LACCR) TOO BIG? NEWUPDATE= BH PARERR OH WELL NEWUPDATE=/COPY C=2 NEWUPDATE= SPACE NEWUPDATE=PARERR LA GR0,LPAREMSG WARN OPERATOR NEWUPDATE= LA GR1,PAREMSG NEWUPDATE= SVC WRITE NEWUPDATE= B OOPS GO SNARK NEWUPDATE= SPACE NEWUPDATE=PAREMSG DC C'ACCOUNTING RECORD TOO LONG IN PUTACCR' NEWUPDATE=LPAREMSG EQU *-PAREMSG NEWUPDATE=/END ARLCHK #4121 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. REPLINN -- Replace LINNBRN subroutine with NEWMTS routine, NEWUPDATE=/. LINENBR, which always returns. NEWUPDATE=/BEGIN REPLINN NEWUPDATE=/COPY NEXT "ENTRY" NEXT "WTPLG" NEWUPDATE= ENTRY MINLIN,MAXLIN MIN/MAX INTERNAL FILE LINE NUMBERS NEWUPDATE=/COPY C=1 NEWUPDATE=* NEWMTS ROUTINE DECLARATIONS NEWUPDATE= SPACE NEWUPDATE=/COPY C=1 NEWUPDATE=LINENBR ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,3)) NEWUPDATE= SPACE 2 NEWUPDATE=/COPY "CFDUBA " NEWUPDATE=/COPY C=1 NEWUPDATE=GIVEBACA ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(1,0)), * NEWUPDATE= RSECT(NULLRCT) ***ADAPTOR*** NEWUPDATE=PABOSFTA ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(2,2)), * NEWUPDATE= RSECT(NULLRCT) ***ADAPTOR*** NEWUPDATE=/COPY "INLOOP " NEWUPDATE=/DELETE NEXT "B" NEXT "LINNBR" NEWUPDATE= BAL GR2,OOPS ***A DISABLING BLOW TO LINNBR CALLS*** NEWUPDATE=/DELETE NEXT "B" NEXT "LINNBRN" NEWUPDATE= BAL GR2,OOPS ***A DISABLING BLOW TO LINNBRN CALLS*** NEWUPDATE=/DELETE "LINNBRN " NEWUPDATE=/SKIP NEXT "EJECT" NEWUPDATE=LINNBR STM GR1,GR2,LNRSA SAVE REGS HERE FOR THE NONCE NEWUPDATE= LA GR1,0(,SCC) COPY OVER POINTER NEWUPDATE= LR SCC,GR14 SAVE RETURN NEWUPDATE= LR GR2,SCD COPY FDUB NEWUPDATE= TM SWS10,GETLNRSW NEWUPDATE= BO *+8 -> SEZ FDUB IS IN SCD NEWUPDATE= L GR2,AFD OTHERWISE, USE AFD NEWUPDATE= OI SWS8,NONUM NO NUMBER NEWUPDATE= RICALL LINENBR(A(4095),,) CALL THE GOOD GUYS NEWUPDATE= LR GR0,GR2 COPY LINE NUMBER RETURNED NEWUPDATE= LR GR14,SCC RE-PLANT RETURN POINT NEWUPDATE= LR SCC,GR1 AND SCAN POINTER NEWUPDATE= B *+4(GR15) TEST RC NEWUPDATE= B *+12 -> LOOKS GOOD NEWUPDATE= B LINNRC0 -> NOTHING THERE, RC=0 VALUE=0 NEWUPDATE= B LINNMSG -> DID SOMETHING BAD NEWUPDATE=* NEWUPDATE= NI SWS8,255-NONUM GOT A NUMBER NEWUPDATE= CLC LNS,0(SCC) TERMINATED BY LNS? NEWUPDATE= BNE LINNRC0 -> NO NEWUPDATE= LA SCC,1(,SCC) EAT IT UP NEWUPDATE= SPACE NEWUPDATE=LINNRC0 XR GR15,GR15 GIVE RC=0 NEWUPDATE=LINNRET LM GR1,GR2,LNRSA LOAD UP FOR BLAST OFF NEWUPDATE= BR GR14 NEWUPDATE= SPACE NEWUPDATE=LINNRC4 LA GR15,4 GIVE RC=4 NEWUPDATE= B LINNRET NEWUPDATE= SPACE NEWUPDATE=LINNMSG BCT GR0,LINNMSG2 -> MUST HAVE BEEN CODE 2 NEWUPDATE=LINNMSG1 FMSG 116,NXTSEG TOO MANY DIGITS TO LEFT OF DEC. NEWUPDATE=LINNMSG2 FMSG 115,NXTSEG TOO MANY DIGITS TO RIGHT OF DEC. NEWUPDATE= EJECT NEWUPDATE=/COPY "FMSGGAL " NEWUPDATE=/SKIP C=2 NEWUPDATE= RICALL LINENBR(A(33*4-2),A(SCSSVA+2),(SCA)) NEWUPDATE= LTR GR15,GR15 NEWUPDATE= BNZ FMSGOUCH -> SOMEBODY BLEW SOMETHING NEWUPDATE=/EDIT F=3 "0" = "GR2" NEWUPDATE=/DELETE "LNRMF " NEWUPDATE=/COPY "CFDUBA " NEWUPDATE=/COPY NEXT "REXIT" NEWUPDATE= SPACE 5 NEWUPDATE=GIVEBACA RAENTER , GIVEBACK ADAPTOR NEWUPDATE= GIVEBACK , MACRO DOES DIRTY WORK NEWUPDATE= REXIT , NEWUPDATE= SPACE 5 NEWUPDATE=PABOSFTA RAENTER , PABOSFTC ADAPTOR NEWUPDATE= BAL GR14,PABOSFTC NEWUPDATE= REXIT VALUE(,) VALUES SET UP ALREADY NEWUPDATE=/COPY "DSRDISPV " NEWUPDATE=/COPY BEFORE "DTBLOFFS " NEWUPDATE= DC V(LINENBRE) DSR ENTRY TO LINENBR NEWUPDATE=/END REPLINN #4122 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. NEWPW -- Implement new password setting changes. Here, only NEWUPDATE=/. thing that is done is to set password changed bit NEWUPDATE=/. in accounting record when record is written out. NEWUPDATE=/BEGIN NEWPW NEWUPDATE=/COPY "TSA " NEWUPDATE=/DELETE NEXT "BH" NEXT "*+10" NEWUPDATE= BH *+14 NEWUPDATE= NI ACCSWS2,255-ACCPWCC PW NO LONGER SET BY COMP. CNTR. NEWUPDATE=/END NEWPW #4123 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FMSGCMSG -- Define NEWMTS type routines FMSG and CMSG which NEWUPDATE=/. called when FMSG and CMSG macros are expanded in NEWUPDATE=/. a NEWMTS type routine. NEWUPDATE=/BEGIN FMSGCMSG NEWUPDATE=/COPY "DEQIT " NEWUPDATE=FMSGSUB ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(2,0)), * NEWUPDATE= RSECT(NULLRCT) NEWUPDATE=CMSGSUB ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,0)), * NEWUPDATE= RSECT(NULLRCT) NEWUPDATE=/DELETE NEXT "EJECT" NEWUPDATE=/COPY BEFORE "*" NEXT "CHKSPEL" NEWUPDATE=* FMSGSUB -- FMSG CALLER INVOKED BY USAGE OF FMSG MACRO IN NEWUPDATE=* NEWMTS ENVIRONMENT. NEWUPDATE=* NEWUPDATE=* NEWMTS R(2,0) CALLING SEQUENCE NEWUPDATE=* GR0 - OPTIONS BITS: NEWUPDATE=* BIT 31 1 - TRANSFER TO INLOOP WHEN DONE NEWUPDATE=* 0 - RETURN WHEN DONE NEWUPDATE=* BIT 30 1 - WRITE ON SINK NEWUPDATE=* 0 - NO WRITE ON SINK NEWUPDATE=* BIT 29 1 - WRITE ON MSINK NEWUPDATE=* 0 - NO WRITE ON MSINK NEWUPDATE=* GR1 - ERROR MESSAGE NUMBER NEWUPDATE=* RC=0 ALWAYS NEWUPDATE= SPACE 2 NEWUPDATE=FMSGSUB RAENTER , ADAPTOR ROUTINE FOR NOW NEWUPDATE= LA 2,OUTB ASSUME BOTH SINK/MSINK NEWUPDATE= TM NULR0+3,X'06' NEWUPDATE= BO FMSGCALL -> RIGHT NEWUPDATE= LA 2,OUTM ASSUME MSINK ONLY NEWUPDATE= TM NULR0+3,X'04' NEWUPDATE= BO FMSGCALL -> RIGHT NEWUPDATE= LA 2,OUT MUST BE JUST SINK NEWUPDATE=FMSGCALL LA 1,NULR1+2 POINT AT MESSAGE NUMBER NEWUPDATE= BAL 0,FMSG DO DIRTY WORK NEWUPDATE= TM NULR0+3,X'01' NEWUPDATE= BO INLOOP -> SIDEWAYS BRANCH REQUESTED NEWUPDATE= REXIT , RETURN PROPERLY NEWUPDATE= SPACE 5 NEWUPDATE=* CMSGSUB -- CMSG CALLER INVOKED BY USAGE OF CMSG MACRO IN NEWUPDATE=* NEWMTS ENVIRONMENT. NEWUPDATE=* NEWUPDATE=* NEWMTS R(3,0) CALLING SEQUENCE NEWUPDATE=* GR0 - OPTIONS BITS: NEWUPDATE=* BIT 31 1 - TRANSFER TO INLOOP WHEN DONE NEWUPDATE=* 0 - RETURN WHEN DONE NEWUPDATE=* BIT 30 1 - WRITE ON SINK NEWUPDATE=* 0 - NO WRITE ON SINK NEWUPDATE=* BIT 29 1 - WRITE ON MSINK NEWUPDATE=* 0 - NO WRITE ON MSINK NEWUPDATE=* GR1 - ERROR MESSAGE LENGTH NEWUPDATE=* GR2 - ERROR MESSAGE TEXT POINTER NEWUPDATE=* RC=0 ALWAYS NEWUPDATE= SPACE 2 NEWUPDATE=CMSGSUB RAENTER , ADAPTOR ROUTINE FOR NOW NEWUPDATE= LR 0,GR1 COPY LENGTH NEWUPDATE= LR 1,GR2 COPY TEXT ADDRESS NEWUPDATE= LA 2,OUTB ASSUME OUT ON BOTH NEWUPDATE= TM NULR0+3,X'06' NEWUPDATE= BO CMSGCALL -> RIGHT NEWUPDATE= LA 2,OUTM ASSUME OUT ON JUST MSINK NEWUPDATE= TM NULR0+3,X'04' NEWUPDATE= BO CMSGCALL -> RIGHT NEWUPDATE= LA 2,OUT JUST OUT ON SINK NEWUPDATE=CMSGCALL BALR 2,2 CALL ROUTINE NEWUPDATE= TM NULR0+3,X'01' NEWUPDATE= BO INLOOP -> REQUESTED SIDEWAYS BRANCH NEWUPDATE= REXIT , THAT'S ALL NEWUPDATE= EJECT NEWUPDATE=/END FMSGCMSG #4124 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. GIGO -- Add GETOUTTC and change GETINTC to simplify NEWUPDATE=/. temporary dynamic loading of components. NEWUPDATE=/BEGIN GIGO NEWUPDATE=/DELETE "INLP44 " NEWUPDATE=/SKIP "INLP45 " NEWUPDATE= BAL GR14,GETOUTTC GET RID OF LFTC COMPONENTS NEWUPDATE=/COPY NEXT "B " NEXT "PUTLNR" NEWUPDATE= B GETOUTTC NEWUPDATE=/COPY BEFORE "GETINTC " NEWUPDATE=GETINTC LR GR1,GR0 GETINTC CONDITIONAL -- DOES NOT NEWUPDATE= BCTR GR1,0 INCREMENT USECOUNT IF ALREADY NEWUPDATE= MH GR1,=Y(LDTSIZE) LOADED NEWUPDATE= A GR1,LDTLOCN NEWUPDATE= L GR15,LDTLOC-LOADTDCT(,GR1) NEWUPDATE= LTR GR15,GR15 NEWUPDATE= BNZR GR14 -> ALREADY LOADED, RETURN NEWUPDATE=/EDIT "GETINTC" = " " NEWUPDATE=/COPY BEFORE "GETOUT " NEWUPDATE=GETOUTTC LH GR1,LFTCC GETOUT FOR LFTC COMPONENTS NEWUPDATE= SH GR1,=H'1' ANY LEFT? NEWUPDATE= BMR GR14 -> NO, RETURN NEWUPDATE= STH GR1,LFTCC NEW COUNT NEWUPDATE= XR GR0,GR0 NEWUPDATE= IC GR0,LFTC(GR1) GET GETIN INDEX NEWUPDATE= LR GR15,GR14 SAVE RETURN NEWUPDATE= BAL GR14,GETOUT RID OURSELVES OF IT NEWUPDATE= LR GR14,GR15 RESET RETURN NEWUPDATE= B GETOUTTC -> PERFORM TILL ALL UNLOADED NEWUPDATE= SPACE 2 NEWUPDATE=/COPY BEFORE NEXT "LA" NEXT "GR1,18*4" NEWUPDATE=/EDIT F=3 "18*4" = "18*4+4" NEWUPDATE=/COPY C=2 NEWUPDATE= ST GR15,18*4(,GR13) SAVE GR15 NEWUPDATE=/COPY NEXT "CALL" NEXT "STORSCAN" NEWUPDATE= L GR15,18*4(,GR13) RESTORE GR15 NEWUPDATE=/END GIGO #4125 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. CFDUB -- Fix problem in CFDUB which left instruction window NEWUPDATE=/. during which branch to DSROFF could have caused use NEWUPDATE=/. counts, etc., to be left inconsistent when fdub freed. NEWUPDATE=/. This bug is responsible for the balance of the NEWUPDATE=/. LOADT usecount negative snarks. NEWUPDATE=/BEGIN CFDUB NEWUPDATE=/COPY "CFDUB " NEWUPDATE=/COPY NEXT "BAL" NEXT "GR14,GMABP" NEWUPDATE=/EDIT F=3 "4" = "FDUBAL" NEWUPDATE=/DELETE "CFDCHAIN " NEWUPDATE=/SKIP C=4 NEWUPDATE=CFDCHAIN DS 0H NOW COPY OVER ALL NON-CRITICAL FDUB * NEWUPDATE= FIELDS, AND UPDATE CRITICAL ONES IN AN NEWUPDATE= ORDER WHICH WILL ENSURE CONSISTENCY * NEWUPDATE= IF INTERRUPTED. NEWUPDATE= MVC 4+FDUBS-FDBDCT(FDUBLN-FDUBS,GR1),FDUBS-FDBDCT(SCD) NEWUPDATE=* SKIP FDUBLN NEWUPDATE= MVC 4+FDUBBL-FDBDCT(FDUBSBR-FDUBBL,GR1),FDUBBL-FDBDCT(SCD) NEWUPDATE=* SKIP FDUBSBR NEWUPDATE= MVC 4+FDUBSCR-FDBDCT(FDUBNAM-FDUBSCR,GR1),FDUBSCR-FDBDCT(SCDX NEWUPDATE= ) NEWUPDATE=* SKIP FDUBNAM NEWUPDATE= MVC 4+FDUBDS-FDBDCT(FDUBCH-FDUBDS,GR1),FDUBDS-FDBDCT(SCD) NEWUPDATE=* SKIP FDUBCH NEWUPDATE= MVC 4+FDUBTYPE-FDBDCT(FDUBIX-FDUBTYPE,GR1),FDUBTYPE-FDBDCT(SX NEWUPDATE= CD) NEWUPDATE=* SKIP FDUBIX NEWUPDATE= MVC 4+FDUBSWS-FDBDCT(FDUBNAME-FDUBSWS,GR1),FDUBSWS-FDBDCT(SCX NEWUPDATE= D) NEWUPDATE=* SKIP FDUBNAME, FDUBERM NEWUPDATE= MVC 4+FDUBSWS2-FDBDCT(FDUBERXS-FDUBSWS2,GR1),FDUBSWS2-FDBDCTX NEWUPDATE= (SCD) NEWUPDATE=* SKIP FDUBERXS NEWUPDATE= MVC 4+FDUBSWS3-FDBDCT(FDUBL-(FDUBSWS3-FDBDCT),GR1),FDUBSWS3-X NEWUPDATE= FDBDCT(SCD) NEWUPDATE=/COPY NEXT "LR" NEXT "GR1,SCA" NEWUPDATE= MVC 4+FDUBIX-FDBDCT(1,GR1),FDUBIX-FDBDCT(SCD) NEWUPDATE=/COPY "CFDNOSBR " NEWUPDATE=/EDIT F=3 "+4(1)" = "(SCD)" NEWUPDATE=/EDIT F=3 "4(GR1)" = "FDUBS-FDBDCT(SCD)" NEWUPDATE=/COPY NEXT "USING" NEWUPDATE= OI 4+FDUBS-FDBDCT(GR1),FDUBNO NEWUPDATE=/COPY NEXT "STH" NEWUPDATE= LA SCB,FCBDSCT-FCBHDR(,SCA) BACK TO REAL FCB NEWUPDATE= ST SCB,4+FDUBLN-FDBDCT(,GR1) NOW STUFF FCB POINTER NEWUPDATE=/EDIT F=3 "+4(GR1)" = "(SCD)" NEWUPDATE=/COPY NEXT "STH" NEWUPDATE= NI 4+FDUBS-FDBDCT(GR1),255-FDUBNO NEWUPDATE=/COPY BEFORE NEXT "XC" NEXT "0(4,GR1),0(GR1)" NEWUPDATE=/EDIT F=3 "4" = "FDUBAL" NEWUPDATE=/COPY "CFDWD " NEWUPDATE= LA SCB,1 NEWUPDATE=/EDIT F=2 "L" = "AH" NEWUPDATE=/SKIP C=1 NEWUPDATE= STH SCB,DEVTBLU(SCA) UPDATE USE COUNT NEWUPDATE= MVC 4+FDUBLN-FDBDCT(4,GR1),FDUBLN-FDBDCT(SCD) PLANT LDN NEWUPDATE= OI 4+FDUBS-FDBDCT(GR1),FDUBNO NEWUPDATE=/EDIT F=3 "+4(GR1)" = "(SCD)" NEWUPDATE=/SKIP BEFORE NEXT "B " NEXT "CFDCPY" NEWUPDATE= BO CFDCPY -> NO, SKIP REMAINDER NEWUPDATE= LA SCB,1 INCREMENT OPEN COUNT NEWUPDATE= AH SCB,2+DEVTBLU(SCA) NEWUPDATE= STH SCB,2+DEVTBLU(SCA) NEWUPDATE= NI 4+FDUBS-FDBDCT(GR1),255-FDUBNO NEWUPDATE=/END CFDUB #4126 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. MERITBUG -- Fix bug in TSA which skips generation of STOP NEWUPDATE=/. command to Merit batch if user didn't get signed NEWUPDATE=/. on. NEWUPDATE=/BEGIN MERITBUG NEWUPDATE=/COPY "TSANSO " NEWUPDATE=/COPY NEXT "L" NEXT "GR15,=V(HASP3B)" NEWUPDATE= BALR GR14,GR15 NEWUPDATE=/END MERITBUG #4127 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. DSRDISPV -- Remove vestigial entries in DSRDISPV formerly used NEWUPDATE=/. only by CMDSTAT when it was non-MTS component. NEWUPDATE=/BEGIN DSRDISPV NEWUPDATE=/COPY "DSRDISPV " NEWUPDATE=/DELETE NEXT "DC" NEXT "F'-1'" NEWUPDATE=/DELETE NEXT "DC" NEXT "A(CLSCURR-DSCT)" NEWUPDATE=/END DSRDISPV #4128 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. INCONT -- Fix bug in IN which does not properly handle case NEWUPDATE=/. when null continuation line is entered. NEWUPDATE=/BEGIN INCONT NEWUPDATE=/COPY "IN " NEWUPDATE=/COPY "INC9 " NEWUPDATE=/DELETE NEXT "C" NEXT "GR0,=F'1'" NEWUPDATE=/SKIP C=1 NEWUPDATE= N GR0,=F'1' SEE IF NOTIFICATION GIVEN NEWUPDATE= BNZ INSWITCH -> NOPE NEWUPDATE=/COPY C=2 NEWUPDATE=/INCLUDE INCLC NEWUPDATE=/DELETE NEXT "LTR" NEXT "SCB,SCB" NEWUPDATE=/SKIP C=1 NEWUPDATE=/BUFFER INCLC NEWUPDATE=/COPY C=2 NEWUPDATE=/BUFFER END NEWUPDATE=/COPY MAXCOUNT=5 NEXT "A" NEXT "SCB,INREGL" NEWUPDATE= C SCB,INREGL NEWUPDATE= BE INCONT -> NULL LINE, DONE WITH CONTINUATION NEWUPDATE=/END INCONT #4129 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. LSSGOOF - FIX THINGS SO THAT MTS CHECKS THE RIGHT BYTE IN THE NEWUPDATE=/. COMMAND TABLE ENTRY WHEN IT CHECKS TO SEE IF THE NEWUPDATE=/. COMMAND SHOULD BE ALLOWED DURING LSS EVEN IF IT IS NEWUPDATE=/. NORMALLY PROHIBITED. NEWUPDATE=/BEGIN LSSGOOF NEWUPDATE=/COPY BEFORE 'INLPCDT ' NEWUPDATE=/EDIT '10(GR15)' = 'CMDFLAGS' NEWUPDATE=/END LSSGOOF #4130 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS NBR=42/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. NOPW -- Implement mechanism whereby DSR may request that a NEWUPDATE=/. signon not require a PW. NEWUPDATE=/BEGIN NOPW NEWUPDATE=/COPY NEXT "ENTRY MINLIN" NEWUPDATE= EXTRN WFOPER,WFDISK NEWUPDATE=/COPY "INITNPW " NEWUPDATE=/EDIT " " = "INITNPW2" NEWUPDATE=/COPY "INITOPER " NEWUPDATE=/EDIT F=3 "INITNPW" = "INITNPW2" NEWUPDATE=/COPY BEFORE "OPERTV " NEWUPDATE=/EDIT "OPERANSU,SCSBF2" = "OPERANSU,WFOPER" NEWUPDATE=/COPY BEFORE "DISKTV " NEWUPDATE=/EDIT "SCSBF2,GVBGRF" = "WFDISK,GVBGRF" NEWUPDATE=/COPY "INC9 " NEWUPDATE=/DELETE NEXT "N " NEWUPDATE=/SKIP C=1 NEWUPDATE= STC GR0,SCRATCH2+4 EASIER TO TEST BITS IN MEMORY NEWUPDATE= TM SCRATCH2+4,X'04' NEWUPDATE= BZ *+8 NEWUPDATE= OI SWS7,NOPWN2 DSR SAID NO PW NEEDED NEWUPDATE= TM SCRATCH2+4,X'01' NEWUPDATE= BO INSWITCH -> SOURCE CHANGED NEWUPDATE=/END NOPW #4131 DATE=Oct 31, 1978 PERSON=Helffrich NAME=FSUB NBR=635/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. GVBFUNNY - THIS FIX SHOULD HELP THOSE CASES WHERE GIVEBACK NEWUPDATE=/. TAKES AN UNEXPECTED SIDEWAYS EXIT AND THEN LATER NEWUPDATE=/. COMES BACK AND TRIES TO RERELEASE THE SPACE IT NEWUPDATE=/. HAS ALREADY FREED. NEWUPDATE=/BEGIN GVBFUNNY NEWUPDATE=/COPY 'GVBNOSUB ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GVBGRD4' = ' ' NEWUPDATE=/COPY C=3 NEWUPDATE= ST SCC,DEVTBLC(SCA) NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GVBGRD4' = 'GVBNOSUB' NEWUPDATE=/END GVBFUNNY #4132 DATE=Oct 31, 1978 PERSON=Helffrich NAME=FSUB NBR=635/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FMSGCMSG -- Define NEWMTS type routines FMSG and CMSG for NEWUPDATE=/. use by FMSG and CMSG macros when being expanded NEWUPDATE=/. in NEWMTS type routine. NEWUPDATE=/BEGIN FMSGCMSG NEWUPDATE=/COPY "DEQIT " NEWUPDATE=FMSGSUB ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(2,0)) NEWUPDATE=CMSGSUB ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,0)) NEWUPDATE=/END FMSGCMSG #4133 DATE=Oct 31, 1978 PERSON=Helffrich NAME=FSUB NBR=635/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. REPLINN -- Replace usage of LINNBRN in the system with new NEWUPDATE=/. subroutine LINENBR which always returns. NEWUPDATE=/. Also: Rewrite SFFPL so is NEWMTS type routine, NEWUPDATE=/. and fix bug causing lower case modifiers NEWUPDATE=/. not to be recognized; NEWUPDATE=/. Rewrite GETLNR so that it is type NEWMTS NEWUPDATE=/. routine and dosen't use LINNBRN; NEWUPDATE=/. Make adaptor routine for HOPENIT called NEWUPDATE=/. OPENIT; NEWUPDATE=/. Add external entry for DSRs to use to call NEWUPDATE=/. LINENBR, LINENBRE. NEWUPDATE=/BEGIN REPLINN NEWUPDATE=/COPY BEFORE NEXT "ENTRY" NEXT "FDGET2," NEWUPDATE=/EDIT F=3 "GETLNR," = "" NEWUPDATE=/COPY BEFORE "DEQIT " NEWUPDATE= ENTRY LINENBRE LINENBR FOR DSRS TO CALL NEWUPDATE=OPENIT ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(2,0)), * NEWUPDATE= RSECT(NULLRCT) NEWUPDATE=LINENBR ROUTINE ENTRY,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,3)) NEWUPDATE=/COPY "HIABYMHA " NEWUPDATE=PABOSFTA ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(2,2)) NEWUPDATE=GIVEBACA ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(1,0)) NEWUPDATE=CFDUBA ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,1)) NEWUPDATE= SPACE 5 NEWUPDATE=* INTERNAL ROUTINE DECLARATIONS NEWUPDATE= SPACE NEWUPDATE=SFFPL ROUTINE INTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,2)) NEWUPDATE=GETFLLNR ROUTINE INTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,3)) NEWUPDATE=/DELETE "MFDU44A " NEWUPDATE=/SKIP NEXT "LR" NEXT "SCA,SCC" NEWUPDATE=MFDU44A XR GR0,GR0 FIGURE WHETHER TO HAVE SFFPL NEWUPDATE= TM SWS3,GTFDBIT GENERATE MESSAGES OR NOT NEWUPDATE= BO *+8 NEWUPDATE= LA GR0,1 OK, GENERATE MESSAGES NEWUPDATE= RICALL SFFPL(,FDGNXCHR,(SCC)) FILE PARAMETERS AND LIMITS NEWUPDATE=* NEWUPDATE= LR GR15,SCD IMPLANT GETFD/FDGET RETURN CODE NEWUPDATE=* NEWUPDATE= LR GR0,GR1 NOW FIND END OF FDNAME TEXT NEWUPDATE= XR GR14,GR14 PARENTHESIS LEVEL COUNTER NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "GR1,GR1" = "GR14,GR14" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "GR1,1(,GR1" = "GR14,1(,GR14" NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "GR1" = "GR14" NEWUPDATE=/EDIT F=3 "GR1,GR1" = "GR14,GR14" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "GR1,GR1" = "GR14,GR14" NEWUPDATE=/EDIT "SCC,1(,SCC" = "GR1,1(,GR1" NEWUPDATE=/DELETE MAXCOUNT=10 "FDGEND " NEWUPDATE=FDGEND ST GR1,FDGNXCHR SAVE POSITION FOR RAINY DAY NEWUPDATE= CR GR0,GR1 NEWUPDATE=/DELETE MAXCOUNT=20 "FDGOK " NEWUPDATE= DROP SCC NEWUPDATE=* NEWUPDATE= USING FDBDCT,SCD NEWUPDATE=FDGOK LR SCD,SCC NOW CONSTRUCT FDUBNAME FIELD NEWUPDATE= L SCC,FDGNXCHR BAD WEATHER ALREADY NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY "*" NEXT "SFFPL" NEXT "--" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP NEXT "USING FDBDCT,SCD" NEWUPDATE=* NEWMTS R(3,2) CALLING SEQUENCE: NEWUPDATE=* GR0 - SWITCHES: BIT 31 = 0 NO ERROR MESSAGES NEWUPDATE=* = 1 PRINT ERROR MESSAGES NEWUPDATE=* GR1 - POINTER TO AREA TO SCAN FOR PARAMETERS AND NEWUPDATE=* LIMITS, UPDATED TO POINT TO FIRST UNSCANNED NEWUPDATE=* CHARACTER ON RETURN NEWUPDATE=* GR2 - FDUB NEWUPDATE= SPACE 2 NEWUPDATE=SFFRCT RSECT NEWUPDATE=SFFREG DS 8A UC CONVERSION REGION AND SCRATCH NEWUPDATE=SFFSWS DS X SWITCHES: NEWUPDATE=SFFMSG EQU X'01' 1 = GENERATE ERROR MESSAGES NEWUPDATE=SFFNOT EQU X'02' 1 = NEGATE SENSE OF MODIFIER NEWUPDATE= REND NEWUPDATE= SPACE 2 NEWUPDATE=SFFPL RENTER , SCAN FOR FILE PARAMETERS AND LIMITS NEWUPDATE= LR SCD,GR2 COPY OVER FDUB NEWUPDATE= STC GR0,SFFSWS INITIALIZE SWITCHES NEWUPDATE= NI SFFSWS,SFFMSG JUST THIS BIT, PLEASE NEWUPDATE= SPACE NEWUPDATE= USING FDBDCT,SCD NEWUPDATE=SFFLOOP DS 0H LOOK FOR SOMETHING STARTING WITH * NEWUPDATE= "(" OR "@" NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/EDIT F=3 "0(GR14)" = "SFFPLRET" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/SKIP C=2 NEWUPDATE= BNE SFFPLRET -> TH-TH-THAT'S ALL, FOLKS NEWUPDATE= SPACE 2 NEWUPDATE=* PARSE OFF A PARAMETER NEWUPDATE= SPACE NEWUPDATE=/EDIT F=3 "SCC,1(0,SCC)" = "GR1,1(,GR1)" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE= LR SCC,GR1 SAVE FIRST CHAR NEWUPDATE=/COPY "SFFEND " NEWUPDATE=/EDIT F=3 "SWS9" = "SFFSWS" NEWUPDATE=/COPY C=5 NEWUPDATE=/EDIT F=3 "SWS9" = "SFFSWS" NEWUPDATE=/COPY C=2 NEWUPDATE= CH 1,*+10 TRUNCATE AT 32 CHARS NEWUPDATE= BNH *+8 NEWUPDATE= LA 1,31 NEWUPDATE= EX 1,SFFMVC MVC SFFREG(0),0(SCC) NEWUPDATE=/COPY BEFORE NEXT "TM" NEXT "SWS9" NEWUPDATE=/EDIT F=3 "SWS9" = "SFFSWS" NEWUPDATE=/DELETE NEXT "B" NEXT "SFFSFDG" NEWUPDATE= LR GR1,SCC MOVE OVER SCAN POINTER NEWUPDATE= B SFFLOOP -> LOOK FOR MORE STUFF NEWUPDATE=/COPY BEFORE NEXT "LA" NEXT "SCC" NEWUPDATE=/EDIT F=3 "SCC" = "GR1" NEWUPDATE=/DELETE NEXT "TM" NEXT "SWS3" NEWUPDATE=/SKIP C=1 NEWUPDATE= TM SFFSWS,SFFMSG NEWUPDATE= BZ SFFLOOP -> DON'T GENERATE MESSAGES NEWUPDATE=/EDIT F=3 "SFFSFDG" = "SFFLOOP" NEWUPDATE=/COPY BEFORE "SFFCLC " NEWUPDATE=/EDIT F=3 "0(0,SCC)" = "SFFREG(0)" NEWUPDATE=SFFMVC MVC SFFREG(0),0(SCC) NEWUPDATE=/SKIP C=4 NEWUPDATE=/SKIP C=5 NEWUPDATE= SPACE 2 NEWUPDATE=* PARSE OFF A LIMIT, THAT IS A LINE NUMBER RANGE NEWUPDATE= SPACE 1 NEWUPDATE=SFFIFL DS 0H NEWUPDATE=/DELETE NEXT "L" NEXT "SCA,MAXLIN" NEWUPDATE= L SCA,=V(MAXLIN) NEWUPDATE= L SCA,0(,SCA) NEWUPDATE=/DELETE NEXT "LA" NEXT "SCC,1(SCC)" NEWUPDATE= LA GR1,1(,GR1) NEWUPDATE=/SKIP C=2 NEWUPDATE= BAL GR2,SFGLN GET STARTING LINE NUMBER NEWUPDATE=/COPY C=1 NEWUPDATE= B *+8 -> GOT IT, IN GR0 NEWUPDATE= B SFFLOOP -> THAT'S IT, NO MORE LINE NUMBERS NEWUPDATE=/COPY BEFORE "SFFISP " NEWUPDATE=/EDIT "SCA" = "GR2" NEWUPDATE=/EDIT F=3 "12" = "20" NEWUPDATE= B *+8 -> GOT LAST, IN GR0 NEWUPDATE= B SFFLOOP -> NO MORE LINE NUMBERS NEWUPDATE=/COPY BEFORE NEXT "BAL" NEXT "SCA" NEWUPDATE=/EDIT "SCA" = "GR2" NEWUPDATE=/EDIT "12" = "20" NEWUPDATE= B *+8 -> GOT INCREMENT, IN GR0 NEWUPDATE= B SFFLOOP -> NO MORE LINE NUMBERS NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/SKIP C=2 NEWUPDATE= BE SFFRBNC -> OK, AT END, END OF LINE NUMBERS NEWUPDATE= OI FDUBS,FDUBBAD MARK BAD NEWUPDATE= CLI 0(GR1),C',' NEWUPDATE= BNE SFFLOOP -> IF NOT A COMMA, ASSUME SFGLN PARKED NEWUPDATE= GR1 AT A GOOD CHAR TO RESTART NEWUPDATE= TM SFFSWS,SFFMSG NEWUPDATE= BZ SFFLEAT -> NO MESSAGE NEWUPDATE= CMSG 'TOO MANY NUMBERS GIVEN FOR LINE NUMBER RANGE.',* NEWUPDATE=SFFLEAT BAL GR2,SFFADV LOOK FOR END OF RANGE NEWUPDATE= B SFFLOOP -> FOUND END OF FDNAME NEWUPDATE= CLI 0(GR1),C')' END? NEWUPDATE= BE SFFRBNC -> YES, ADVANCE PAST NEWUPDATE= LA GR1,1(,GR1) NEWUPDATE= B SFFLEAT -> NO, CONTINUE UNTIL SOMETHING FOUND NEWUPDATE=/SKIP "SFGLN " NEWUPDATE= SPACE 2 NEWUPDATE=* SFGLN -- GET A LINE NUMBER. NEWUPDATE=* NEWUPDATE=* CALLED VIA BAL GR2,SFGLN WITH: NEWUPDATE=* GR1 - CHARACTER POINTER, ADVANCED TO FIRST UNSCANNED NEWUPDATE=* CHARACTER ON RETURN. NEWUPDATE=* SCD - FDUB POINTER NEWUPDATE=* NEWUPDATE=* RETURNS TO 0(GR2) IF NULL SPECIFICATION (DEFAULT) NEWUPDATE=* 4(GR2) IF NUMBER FOUND, NUMBER IN GR0 NEWUPDATE=* 8(GR2) IF END OF LIMIT SPECIFICATION NEWUPDATE=* NEWUPDATE=* CLOBBERS GR0,GR1,GR14,GR15 NEWUPDATE= SPACE NEWUPDATE=SFGLN LA GR0,8 ASSUME END RETURN NEWUPDATE= CLI 0(GR1),C')' ARE WE AT END NEWUPDATE= BE SFGLN2 -> YES NEWUPDATE=/SKIP C=1 NEWUPDATE= XR GR0,GR0 ASSUME NULL RETURN NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE= BE SFGLN2 -> NULL SPECIFICATION IT IS NEWUPDATE=/SKIP C=4 NEWUPDATE= STM GR1,GR2,SFFREG SAVE POINTER, RETURN HERE A MINIT NEWUPDATE= RCALL LINENBR(A(255),,(SCD)),EXIT=(,SFGLNER) GET NUMBER NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/EDIT F=3 "SFDLER" = "SFGLNER" NEWUPDATE=/EDIT "SCC,1(0,SCC)" = "GR1,1(,GR1)" NEWUPDATE=/SKIP C=2 NEWUPDATE=SFGLNC LR GR0,GR2 COPY RETURNED LINE NUMBER OR ZERO NEWUPDATE= L GR2,SFFREG+4 OUR RETURN POINT NEWUPDATE=/SKIP C=1 NEWUPDATE= L GR15,=V(MAXLIN) NEWUPDATE= C GR0,0(,GR15) CHECK LINE NUMBER AGAINST LIMITS NEWUPDATE=/EDIT F=3 "SFFRBAD" = "SFGLNER" NEWUPDATE=/SKIP C=1 NEWUPDATE= L GR15,=V(MINLIN) NEWUPDATE= C GR0,0(,GR15) NEWUPDATE=/EDIT F=3 "SFFRBAD" = "SFGLNER" NEWUPDATE=/DELETE NEXT "B" NEXT "4(" NEWUPDATE= B 4(,GR2) RETURN A LINE NUMBER NEWUPDATE=* NEWUPDATE=SFGLNER OI FDUBS,FDUBBAD DON'T USE FDUB NEWUPDATE= L GR1,SFFREG RESTORE POINTER TO INPUT NEWUPDATE=SFGLNER1 BAL GR2,SFFADV LOOK FOR INTERESTING CHARACTER NEWUPDATE= B SFFMSG1 -> OFF END OF FDNAME, GIVE MESSAGE NEWUPDATE= CLI 0(GR1),C'+' NEWUPDATE= BNE SFFMSG2 -> OK, INTERESTING ENOUGH NEWUPDATE= LA GR1,1(,GR1) NEWUPDATE= B SFGLNER1 -> ASSUME + IS ARITHMETIC HERE NEWUPDATE=SFFMSG2 L GR2,SFFREG+4 RESTORE RETURN POINT NEWUPDATE= CLI 0(GR1),C',' NEWUPDATE= BNE *+8 -> DON'T MOVE PAST NON-COMMA NEWUPDATE= LA GR1,1(,GR1) NEWUPDATE= TM SFFSWS,SFFMSG NEWUPDATE= BZR GR2 -> NO MESSAGE, NULL RETURN NEWUPDATE= CMSG 'INVALID LINE NUMBER.',0(,GR2) NEWUPDATE=SFFMSG1 L GR2,SFFREG+4 RESTORE RETURN NEWUPDATE= TM SFFSWS,SFFMSG NEWUPDATE= BZ 8(,GR2) -> NO MESSAGE, END RETURN NEWUPDATE= CMSG 'INVALID LINE NUMBER OR LINE NUMBER DELIMITER.',8(,GR2) NEWUPDATE=/SKIP "SFGLN2 " NEWUPDATE=/SKIP C=1 NEWUPDATE=SFGLN2 LA GR1,1(,GR1) SKIP COMMA NEWUPDATE=SFGLN3 ALR GR2,GR0 ADJUST RETURN POINT NEWUPDATE= BR GR2 -> RETURN NEWUPDATE= SPACE 2 NEWUPDATE=* SFFADV -- ADVANCE TO NEXT INTERESTING CHARACTER IN NEWUPDATE=* FILE LIMIT SPECIFICATION. NEWUPDATE=* NEWUPDATE=* CALLED VIA BAL GR2,SFFADV WITH NEWUPDATE=* GR1 -- TEXT POINTER, UPDATED NEWUPDATE=* NEWUPDATE=* RETURNS TO 0(GR2) IF PGNT, BLANK, OR X'FF' FOUND NEWUPDATE=* 4(GR2) IF ZERO LEVEL COMMA, PLUS, OR RIGHT PAREN NEWUPDATE=* NEWUPDATE=* CLOBBERS GR0 NEWUPDATE= SPACE NEWUPDATE=SFFADV XR GR0,GR0 NESTING LEVEL COUNTR NEWUPDATE=SFFADVLP CLI 0(GR1),C' ' CHECK FOR END NEWUPDATE= BPI OPND,0(GR2) -> UNLESS RUDELY INTERRUPTED NEWUPDATE= BER GR2 -> FOUND END NEWUPDATE= CLI 0(GR1),X'FF' NEWUPDATE= BER GR2 -> FOUND END NEWUPDATE= LTR GR0,GR0 NEWUPDATE= BNZ SFFADVIP -> SKIP + , TEST IF INSIDE (...) NEWUPDATE= CLI 0(GR1),C'+' NEWUPDATE= BE 4(,GR2) -> GOT + NEWUPDATE= CLI 0(GR1),C',' NEWUPDATE= BE 4(,GR2) -> GOT , NEWUPDATE=SFFADVIP CLI 0(GR1),C'(' NEWUPDATE= BNE *+8 NEWUPDATE= AH GR0,=H'1' UP ONE LEVEL NEWUPDATE= CLI 0(GR1),C')' NEWUPDATE= BNE *+12 NEWUPDATE= SH GR0,=H'1' DOWN A LEVEL NEWUPDATE= BM 4(,GR2) -> THIS IS OF INTEREST AT ZERO LEVEL NEWUPDATE= LA GR1,1(,GR1) NEWUPDATE= B SFFADVLP -> NEXT CHARACTER OF INTEREST NEWUPDATE= SPACE 2 NEWUPDATE=SFFRBNC LA GR1,1(,GR1) ADVANCE TO NEXT CHARACTER NEWUPDATE= B SFFLOOP -> AND BACK TO TOP NEWUPDATE= SPACE 2 NEWUPDATE=SFFPLRET RRETURN VALUE(,) REGS SET UP FOR RETURN NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "GR10," = "" NEWUPDATE= REND NEWUPDATE= EJECT NEWUPDATE=* LINENBR -- PARSE A LINE NUMBER FROM AN INPUT STRING. NEWUPDATE=* NEWUPDATE=* NEWMTS R(3,3) TYPE CALLING SEQUENCE NEWUPDATE=* GR0 - LENGTH OF INPUT STRING, UPDATED ON RETURN NEWUPDATE=* GR1 - INPUT STRING, UPDATED ON RETURN NEWUPDATE=* GR2 - FDUB (FOR EVALUATION OF *F ETC) OR ZERO, NEWUPDATE=* LINE NUMBER VALUE ON RETURN NEWUPDATE=* NEWUPDATE=* RC=0 LINE NUMBER FOUND, GR0 & GR1 UPDATED, GR2 IS NEWUPDATE=* VALUE NEWUPDATE=* RC=4 LINE NUMBER NOT FOUND, GR2 IS ZERO NEWUPDATE=* RC=8 SYNTAX ERROR, GR0 HAS ERROR CODE AND GR1 NEWUPDATE=* ERROR MESSAGE IN FORM HALFWORD LENGTH FOLLOWED NEWUPDATE=* BY ERROR MESSAGE TEXT. NEWUPDATE=* ERROR CODES: 1 = TOO MANY DIGITS BEFORE DECIMAL NEWUPDATE=* 2 = TOO MANY DIGITS AFTER DECIMAL NEWUPDATE= SPACE 2 NEWUPDATE=* LINENBRE IS OS-R TYPE CALLABLE VERSION FOR DSRS TO USE. NEWUPDATE=* PARAMETERS/RETURNS IDENTICAL TO LINENBR. NEWUPDATE= SPACE 2 NEWUPDATE=LINRCT RSECT NEWUPDATE=LINFL DS F VALUE RETURNED BY GETFLLNR NEWUPDATE=LINSWS DS X SWITCHES: NEWUPDATE=LINSIGN EQU X'80' - SIGN FOUND NEWUPDATE=LINPER EQU X'40' . FOUND NEWUPDATE=LINDIGIT EQU X'20' DIGIT FOUND NEWUPDATE=LINGFL EQU X'10' GETFLLNR FOUND SOMETHING NEWUPDATE= REND NEWUPDATE= SPACE 2 NEWUPDATE=LINENBRE BEGIN 1,N=2 EXTERNAL ENTRY TO THIS NEWUPDATE= RICALL LINENBR(,,) CALL REAL MCCOY NEWUPDATE= EXIT *,RESTORE=3 RETURN WITH RC FROM LINENBR NEWUPDATE= SPACE 2 NEWUPDATE=LINENBR RENTER , FLASHY NEW ROUTINE CODED HERE NEWUPDATE= LR GR5,GR1 COPY INPUT ADDRESS NEWUPDATE= LR GR9,GR2 COPY FDUB NEWUPDATE= LTR GR0,GR0 NEWUPDATE= BNP LINRET4 -> NO INPUT TEXT NEWUPDATE= LTR GR1,GR1 NEWUPDATE= BZ LINRET4 -> NO INPUT TEXT NEWUPDATE=* NEWUPDATE= NI LINSWS,255-LINSIGN-LINPER-LINDIGIT-LINGFL NEWUPDATE= RCALL GETFLLNR(,,) TRY FOR *F OR ITS ILK NEWUPDATE= ST GR2,LINFL SAVE VALUE NEWUPDATE= CR GR1,GR5 TAKE ANYTHING? NEWUPDATE= BE *+4+4+2 -> NO NEWUPDATE= OI LINSWS,LINGFL REMEMBER NEWUPDATE= LR GR5,GR1 REMEMBER POINTER, TOO NEWUPDATE=* NEWUPDATE= XR GR6,GR6 NOW GO AFTER SIGN/NUMBER NEWUPDATE= XR GR2,GR2 NUMBER BUILT IN GR2 NEWUPDATE= LA GR3,7 MAX 6 INTEGRAL DIGITS NEWUPDATE= CLI 0(GR1),C'-' NEWUPDATE= BE LINMINUS -> EAT 'EM UP NEWUPDATE= CLI 0(GR1),C'+' NEWUPDATE= BE LINLOOP -> EAT THIS TOO NEWUPDATE= TM LINSWS,LINGFL NEWUPDATE= BO LINRET -> GOT *F OR SOMETHING, SKIP REST NEWUPDATE= B LINLOOP1 -> JUMP INTO LOOP NEWUPDATE=* NEWUPDATE=* NEWUPDATE=LINMINUS OI LINSWS,LINSIGN REMEMBER NEWUPDATE=LINLOOP LA GR1,1(,GR1) ADVANCE SCAN POINTER NEWUPDATE= BCT GR0,*+8 NEWUPDATE= B LINRET -> COUNT EXHAUSTED NEWUPDATE=LINLOOP1 TM LINSWS,LINPER NEWUPDATE= BO LINNOPER -> ALREADY GOT DOT, NOT AGAIN NEWUPDATE= CLI 0(GR1),C'.' NEWUPDATE= BNE LINNOPER NEWUPDATE= LA GR3,4 MAX 3 FRACTIONAL DIGITS NEWUPDATE= OI LINSWS,LINPER NEWUPDATE= B LINLOOP NEWUPDATE=LINNOPER CLI 0(GR1),C'0' NEWUPDATE= BL LINRET NEWUPDATE= CLI 0(GR1),C'9' NEWUPDATE= BH LINRET NEWUPDATE= OI LINSWS,LINDIGIT REMEMBER A DIGIT NEWUPDATE= IC GR6,0(,GR1) DECODE DIGIT NEWUPDATE= N GR6,=X'0000000F' NEWUPDATE= MH GR2,=H'10' SHIFT NUMBER NEWUPDATE= AR GR2,GR6 ADD IN DIGIT NEWUPDATE= BCT GR3,LINLOOP -> WILL BRANCH IF NOT TOO MANY DIGITS NEWUPDATE=* NEWUPDATE= TM LINSWS,LINPER NEWUPDATE= BO LINDRDP -> TOO MANY DIGITS TO RIGHT NEWUPDATE= LA GR1,L'ECM1 NEWUPDATE= LA GR2,ECM1 NEWUPDATE= LA GR3,1 NEWUPDATE= B LINERR -> GENERATE MESSAGE & RETURN NEWUPDATE=LINDRDP LA GR1,L'ECM2 NEWUPDATE= LA GR2,ECM2 NEWUPDATE= LA GR3,2 NEWUPDATE= B LINERR NEWUPDATE= SPACE NEWUPDATE=LINRET TM LINSWS,LINGFL+LINDIGIT NEWUPDATE= BZ LINRET4 -> RC4 IF NO *F OR DIGITS NEWUPDATE= TM LINSWS,LINDIGIT NEWUPDATE= BO *+4+2 NO NUMERIC PORTION, POINT BACK AT NEWUPDATE= LR GR1,GR5 WHAT GETFLLNR ATE UP THROUGH NEWUPDATE= TM LINSWS,LINPER NEWUPDATE= BO *+4+4 -> GOT A FRACTIONAL PART NEWUPDATE= LA GR3,4 NO FRACTION, PRIME COUNT NEWUPDATE= BCTR GR3,0 NOW 3-(NUMBER FRACTIONAL DIGITS) NEWUPDATE= SLL GR3,1 *2 NEWUPDATE= MH GR2,=H'1,10,100,1000'(GR3) SHIFT PROPER AMOUNT NEWUPDATE= TM LINSWS,LINSIGN NEWUPDATE= BZ *+4+2 NEWUPDATE= LCR GR2,GR2 NEGATE NEWUPDATE= A GR2,LINFL ADD IN CONTRIBUTION BY GETFLLNR NEWUPDATE= L GR0,LINR1 COMPUTE LENGTH USED NEWUPDATE= SR GR0,GR1 (GR0 COUNT UNRELIABLE IF E.G. "*F+") NEWUPDATE= A GR0,LINR0 NEWUPDATE= RRETURN VALUE(,,),RC(0) NEWUPDATE= SPACE NEWUPDATE=LINERR LR GR5,GR1 GENERATE ERROR MESSAGE AND GIVE NEWUPDATE= LA GR1,2(,GR1) RC=8 NEWUPDATE= RCALL PABOSFTA(,) GET STORAGE FOR ERROR MESSAGE NEWUPDATE= BCTR GR5,0 NEWUPDATE= EX GR5,LINERRMV MVC 2(0,GR1),0(GR2) NEWUPDATE= LA GR5,3(,GR5) NEWUPDATE= STH GR5,0(,GR1) NEWUPDATE= RRETURN VALUE((GR3),,),RC(8) NEWUPDATE=LINERRMV MVC 2(0,GR1),0(GR2) NEWUPDATE= SPACE NEWUPDATE=LINRET4 RRETURN VALUE(LINR0,LINR1,A(0)),RC(4) NEWUPDATE= SPACE 2 NEWUPDATE=ECM1 DC C'NUMBER HAS TOO MANY DIGITS BEFORE DECIMAL POINT.' NEWUPDATE=ECM2 DC C'NUMBER HAS TOO MANY DIGITS AFTER DECIMAL POINT.' NEWUPDATE= SPACE NEWUPDATE= REND NEWUPDATE= EJECT NEWUPDATE=/SKIP NEXT "USING FDBDCT,SCD" NEWUPDATE=* GETFLLNR -- GET FIRST OR LAST LINE NUMBER. EVALUATE NEWUPDATE=* "*F", "*L", "FIRST", "LAST", "MIN", OR "MAX" NEWUPDATE=* AS A LINE NUMBER. NEWUPDATE=* NEWUPDATE=* NEWMTS R(3,3) CALLING SEQUENCE: NEWUPDATE=* GR0 - LENGTH OF INPUT STRING, UPDATED ON RETURN NEWUPDATE=* GR1 - ADDRESS OF INPUT STRING, UPDATED ON RETURN NEWUPDATE=* GR2 - FDUB OR ZERO, VALUE ON RETURN OR ZERO IF NO NEWUPDATE=* VALUE OR CAN'T BE EVALUATED (ZERO FDUB, NO NEWUPDATE=* ACCESS TO FILE TO READ FIRST/LAST LINE #, ETC.) NEWUPDATE=* NEWUPDATE=* RC=0 IF FOUND SOMETHING INTERESTING NEWUPDATE=* =4 IF NOTHING FOUND OF INTEREST NEWUPDATE= SPACE 2 NEWUPDATE=GETRCT RSECT SA=NO NEWUPDATE=GETFLSCR DS XL(READLSS) SCRATCH FOR READF/READL CALL NEWUPDATE=GETSA RSA , SAVEAREA NEWUPDATE=GETFLPAR DS 2A READF/READL PARAMETERS NEWUPDATE= REND NEWUPDATE= SPACE 2 NEWUPDATE=GETFLLNR RENTER , GET FIRST/LAST LINE NUMBER NEWUPDATE= CH GR0,=H'2' CHECK FOR TOO SHORT NEWUPDATE= BL GETRC4 -> NO NUMBER NEWUPDATE= LR GR3,GR0 MOVE MAX 5, MIN NUMBER GIVEN NEWUPDATE= CH GR3,*+10 CHARACTERS INTO SCRATCH AREA NEWUPDATE= BNH *+8 NEWUPDATE= LA GR3,5 NEWUPDATE= BCTR GR3,0 NEWUPDATE= EX GR3,GETFLMVC MVC GETFLSCR(0),0(GR1) NEWUPDATE= L GR15,=V(CASECONV) NEWUPDATE= TR GETFLSCR(5),0(GR15) NEWUPDATE= LR GR9,GR2 COPY FDUB NEWUPDATE= MVI GETFLPAR,0 FLAG READF CALL NEWUPDATE= CH GR0,=H'2' NEWUPDATE= BE GET2CHAR -> 2 CHARACTERS ONLY NEWUPDATE= CH GR0,=H'4' NEWUPDATE= BL GET3CHAR -> 3 CHARACTERS NEWUPDATE= BE GET4CHAR -> 4 CHARACTERS NEWUPDATE= LA GR3,5 MUST BE 5 OR MORE NEWUPDATE= CLC =C'FIRST',GETFLSCR NEWUPDATE= BE GETFLOPE -> EVALUATE 'FIRST' NEWUPDATE=GET4CHAR LA GR3,4 TRYING FOR 4 CHARACTER MATCH NOW NEWUPDATE= CLC =C'LAST',GETFLSCR NEWUPDATE= BNE GET3CHAR -> NO, TRY 3 NEWUPDATE= MVI GETFLPAR,4 FLAG READL CALL NEWUPDATE= B GETFLOPE -> EVALUATE 'LAST' NEWUPDATE=GET3CHAR LA GR3,3 TRYING FOR 3 CHARACTER MATCH NOW NEWUPDATE= L GR2,=V(MINLIN) NEWUPDATE= L GR2,0(,GR2) NEWUPDATE= CLC =C'MIN',GETFLSCR NEWUPDATE= BE GETFLRC0 -> GOT 'MIN' NEWUPDATE= L GR2,=V(MAXLIN) NEWUPDATE= L GR2,0(,GR2) NEWUPDATE= CLC =C'MAX',GETFLSCR NEWUPDATE= BE GETFLRC0 -> GOT 'MAX' NEWUPDATE=GET2CHAR LA GR3,2 TRYING FOR 2 CHARACTER MATCH NOW NEWUPDATE= CLC =C'*F',GETFLSCR NEWUPDATE= BE GETFLOPE -> EVALUATE '*F' NEWUPDATE= CLC =C'*L',GETFLSCR NEWUPDATE= BNE GETRC4 -> DIDN'T FIND ANYTING NEWUPDATE= MVI GETFLPAR,4 FLAG READL CALL NEWUPDATE= SPACE NEWUPDATE= USING FDBDCT,GR9 OK, GOING TO USE FDUB NEWUPDATE=GETFLOPE XR GR2,GR2 ZERO VALUE FOR NOW NEWUPDATE= LTR GR9,GR9 NEWUPDATE= BZ GETFLNF -> NO FDUB NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "GETLNR5" = "GETFLNF" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT F=3 "GETLNR5" = "GETFLNF" NEWUPDATE=/SKIP BEFORE NEXT "NI" NEXT "FDUBSWS" NEWUPDATE= LR GR5,GR0 PROTECT ACROSS CFDUBA CALL NEWUPDATE= LR GR6,GR1 NEWUPDATE= RCALL CFDUBA(A(1),A(3),(GR9)) COPY FDUB ONTO CHAIN 3 NEWUPDATE= LR GR9,GR0 LODGE NEW FDUB NEWUPDATE=/EDIT F=3 "-FDBDCT(SCD)" = "" NEWUPDATE=/EDIT F=3 "-FDBDCT(SCD)" = "" NEWUPDATE=/SKIP C=5 NEWUPDATE= RCALL OPENIT(A(0),(GR9)) OPEN FDUB IN NORMAL FASHION NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "GETLNRER" = "GETFLGVB" NEWUPDATE= IC GR15,GETFLPAR NEWUPDATE= L GR15,=V(READF,READL)(GR15) ROUTINE TO CALL NEWUPDATE=/EDIT F=3 "-FDBDCT(,GR1)" = "" NEWUPDATE=/SKIP C=1 NEWUPDATE=/EDIT F=3 "GR1" = "GR2" NEWUPDATE=/SKIP C=6 NEWUPDATE= STM GR1,GR2,GETFLPAR PARAMETERS TO READF/READL NEWUPDATE= LA GR1,GETFLPAR NEWUPDATE= XR GR2,GR2 NEWUPDATE=/COPY C=2 NEWUPDATE=/SKIP NEXT "B" NEXT "GETLNR5A" NEWUPDATE= BNZ *+4+2 NEWUPDATE= LR GR2,GR1 COPY OVER RETURNED LINE # NEWUPDATE=GETFLGVB RCALL GIVEBACA((GR9)) GIVE BACK COPIED FDUB NEWUPDATE= LR GR0,GR5 COPY BACK COUNT NEWUPDATE= LR GR1,GR6 AND POINTER NEWUPDATE= SPACE NEWUPDATE=GETFLNF DS 0H NEWUPDATE=GETFLRC0 AR GR1,GR3 ECHE POINTER NEWUPDATE= SR GR0,GR3 BACK DOWN COUNT NEWUPDATE= RRETURN VALUE(,,),RC(0) NEWUPDATE=GETFLMVC MVC GETFLSCR(0),0(GR1) NEWUPDATE= SPACE NEWUPDATE=GETRC4 RRETURN VALUE(GETR0,GETR1,A(0)),RC(4) NEWUPDATE= SPACE NEWUPDATE= DROP GR9 NEWUPDATE=LASTJBA2 DC V(LASTJOB) NEWUPDATE= REND NEWUPDATE=/SKIP MAXCOUNT=20 NEXT "DS" NEXT "0H" NEWUPDATE=/SKIP C=1 NEWUPDATE= EJECT NEWUPDATE=* OPENIT -- OPEN A FDUB ACCORDING TO SPECIFIED OPTIONS. NEWUPDATE=* NEWUPDATE=* NEWMTS R(2,0) CALLING SEQUENCE NEWUPDATE=* GR0 - OPTIONS SWITCHES: NEWUPDATE=* BIT 31 - 1=DON'T ALTER LOCKING STATUS NEWUPDATE=* 0=OK TO ALTER NEWUPDATE=* BIT 30 - 1=MAKE SEQUENTIAL (IN THIRD SENSE) NEWUPDATE=* 0=DON'T FORCE SEQUENTIAL NEWUPDATE=* BIT 29 - 1=OPEN EVEN IF NO ACCESS************ NEWUPDATE=* 0=DON'T OPEN IF IMPROPER ACCESS***** NEWUPDATE=* *******NOT YET IMPLEMENTED********** NEWUPDATE=* GR1 - FDUB NEWUPDATE=* RC=0 - FILE HAS BEEN OPENED IF NECESSARY NEWUPDATE=* =4 - FILE DOES NOT EXIST NEWUPDATE=* =8 - ERROR IN OPEN OR ILLEGAL DEVICE TYPE NEWUPDATE=* =12- NO ACCESS NEWUPDATE=* =16- CAN'T WAIT: DEADLOCK NEWUPDATE=* =20- WAIT TO OPEN INTERRUPTED NEWUPDATE= SPACE 2 NEWUPDATE=OPENIT RAENTER , ADAPTOR ROUTINE FOR NOW NEWUPDATE= LR SCD,GR1 FDUB FOR HOPENIT NEWUPDATE= L GR15,=A(HOPENIT) NEWUPDATE= LTR GR0,GR0 NEWUPDATE= BZ OPENIT1 -> NORMAL FLAVOR NEWUPDATE= L GR15,=A(HOPENLK) NEWUPDATE= SRA GR0,1 NEWUPDATE= BZ OPENIT1 -> DON'T ALTER LOCKING NEWUPDATE= L GR15,=A(SEQFILE) MAKE SEQUENTIAL THEN NEWUPDATE=OPENIT1 BALR GR14,GR15 NEWUPDATE= RRETURN RC() NEWUPDATE= REND NEWUPDATE= EJECT NEWUPDATE=/COPY "WRITEBUF " NEWUPDATE=/DELETE "*" NEXT "USES" NEXT "GR2," NEWUPDATE=* USES GR0,GR2,SCA,SCB,SCC,SCD NEWUPDATE=/COPY "RENUMP " NEWUPDATE=/DELETE NEXT "OI" NEXT "SWS10" NEWUPDATE=/DELETE NEXT "LR" NEXT "SCD,GR0" NEWUPDATE=/COPY NEXT "ST" NEXT "SCC,9*4(,GR1)" NEWUPDATE= LR SCD,GR1 NEWUPDATE=/EDIT "GR2,GR2" = "SCC,SCC" NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE= LR GR0,SCB NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=2 NEWUPDATE= RICALL LINENBR(,,5*4(,SCD)) PROCESS FIRST OR NEW * NEWUPDATE= FIRST LINE NUMBER NEWUPDATE=/COPY C=2 NEWUPDATE=/SKIP C=4 NEWUPDATE= ST GR2,6*4(SCC,SCD) PLANT EITHER FIRST OR NEW FIRST NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE= LR SCA,GR1 COPY OVER FOR NEXPAR CALL NEWUPDATE= LR SCB,GR0 NEWUPDATE=/COPY C=1 NEWUPDATE= LR GR0,SCB COPY REMAINING COUNT NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY MAXCOUNT=10 BEFORE "RNBP6 " NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCA,1(,SCA)" = "GR1,1(,GR1)" NEWUPDATE=/EDIT "SCB" = "GR0" NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE= LR SCA,GR1 COPY FOR NEXPAR CALL NEWUPDATE= LR SCB,GR0 NEWUPDATE=/COPY C=1 NEWUPDATE= LR GR0,SCB NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/DELETE "RNBP5 " NEWUPDATE=/SKIP C=1 NEWUPDATE=RNBP5 RICALL LINENBR(,,5*4(,SCD)) NEWUPDATE=/COPY C=2 NEWUPDATE=/SKIP NEXT "LR" NEXT "SCA,SCC" NEWUPDATE= ST GR2,7*4(SCC,SCD) PLANT EITHER NEW LAST OR INCR. NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE= LR SCA,GR1 HERE WE GO AGAIN, SHUFFLING FEET NEWUPDATE= LR SCB,GR0 FOR NEXPAR NEWUPDATE=/COPY C=1 NEWUPDATE= LR GR0,SCB NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY MAXCOUNT=10 BEFORE "RNBP7 " NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE=RNBP3 LTR SCC,SCC SEE IF ALREADY HAVE 'TO' NEWUPDATE= BNZ RNBPERR -> YES, NOT AGAIN NEWUPDATE= LA GR1,2(,GR1) NEWUPDATE=/EDIT "SCB" = "GR0" NEWUPDATE=/EDIT "SCB" = "GR0" NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE= LR SCA,GR1 SHUFFLE, SHUFFLE NEXPAR NEWUPDATE= LR SCB,GR0 NEWUPDATE=/COPY C=1 NEWUPDATE= LR GR0,SCB NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY MAXCOUNT=10 BEFORE "RNBP8 " NEWUPDATE=/EDIT "GR2,GR2" = "SCC,SCC" NEWUPDATE=/SKIP C=3 NEWUPDATE= LA SCC,8 NEWUPDATE= BZ RNBPAGN -> BACK TO PROCESS NEW FIRST, INCR. NEWUPDATE= B RNBPERR -> TRIED TO GIVE TOO MANY PARAMETERS NEWUPDATE=/COPY BEFORE "RNBP2 " NEWUPDATE=/EDIT "GR1" = "SCD" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=2 NEWUPDATE= RICALL LINENBR(A(5),A(=C'FIRST'),5*4(,SCD)) GET *F VALUE NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT "GR0,6*4(,GR1" = "GR2,6*4(,SCD" NEWUPDATE=/EDIT "GR1" = "SCD" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=2 NEWUPDATE= RICALL LINENBR(A(4),A(=C'LAST'),5*4(,SCD)) GET *L VALUE NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT HOLD "GR0" = "GR2" NEWUPDATE=/EDIT "GR1" = "SCD" NEWUPDATE=/DELETE "RNBPOUT" NEWUPDATE=RNBPOUT LR GR1,SCD GIVE BACK PARAMETER REGION NEWUPDATE=/END REPLINN #4134 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. LENFIX - The following change prevents an MTS program NEWUPDATE=/. interrupt after Len Harding enters first NEWUPDATE=/. $START PRINT=TN NEWUPDATE=/. followed by a response of NO when prompted by NEWUPDATE=/. KWSCAN to see if he might allow SPRINT for PRINT. NEWUPDATE=/. Why he wanted to say $START PRINT=TN in the first NEWUPDATE=/. place is anyones guess. NEWUPDATE=/BEGIN LENFIX NEWUPDATE=/COPY 'RLDFDN ' NEWUPDATE= C GR13,KWSAVE NEWUPDATE= BE 2(,GR5) ILLEGAL FROM START OR RESTART NEWUPDATE=/END LENFIX #4135 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FIXDUMPS - Make sure that GR13 points to a valid save area, NEWUPDATE=/. even when there are no extra pars to go with the NEWUPDATE=/. DUMP command and the user hasn't $SET ERRORDUMP=ON NEWUPDATE=/BEGIN FIXDUMPS NEWUPDATE=/COPY 'JOBD89 ' NEWUPDATE=/COPY NEXT 'IC' NEWUPDATE= L GR13,KWSAVE USED IT BEFORE, MIGHT AS WELL AGAIN NEWUPDATE=/END FIXDUMPS #4136 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. LYSTPFX - This fixes a minor bug introduced when long prefixes NEWUPDATE=/. were added. No one noticed for months! NEWUPDATE=/BEGIN LYSTPFX NEWUPDATE=/COPY 'LYSTFOD ' NEWUPDATE=/COPY NEXT 'LR' NEXT '13,1' NEWUPDATE= LA GR0,MTSFLG NEWUPDATE= LA GR1,LYSTPFX NEWUPDATE= BAL GR14,SAVPFX SET PFX TO ">" AND SAVE OLD ONE NEWUPDATE= ST GR1,4(,GR13) IN THE SA BACK POINTER (WHERE ELSE?) NEWUPDATE=/COPY BEFORE 'LYSTGO ' NEWUPDATE=/SKIP BEFORE 'LYSTLLP ' NEWUPDATE=/COPY BEFORE 'LYSTEF2' NEWUPDATE=/EDIT 'LYSTEF2' = ' ' NEWUPDATE=/COPY 'CKLYST ' NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT 'LYSTGO' = 'LYSTLLP' NEWUPDATE=/END LYSTPFX #4137 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. FIXLNR - So the $LIST command will do something "reasonable" NEWUPDATE=/. when it tries to list lines with line numbers that NEWUPDATE=/. are bigger than 999999.999 or smaller than -99999.999 NEWUPDATE=/BEGIN FIXLNR NEWUPDATE=/COPY 'LYSTOK ' NEWUPDATE=/COPY BEFORE NEXT 'BAL' NEWUPDATE=/EDIT 'PUTDEC' = 'PUTLNR' NEWUPDATE=/END FIXLNR #4138 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. FDNJUNK - FIX THINGS SO THAT LINE RANGES AND I/O MODIFIERS NEWUPDATE=/. on FDnames cause an error when given where they NEWUPDATE=/. don't make sense, for example: $EMPTY file(5,10). NEWUPDATE=/BEGIN FDNJUNK NEWUPDATE=/COPY 'KREANL3 ' NEWUPDATE=/COPY NEXT 'LR' NEXT 'SCA,GR0' NEWUPDATE= TM FDUBSWS2-FDBDCT(SCA),FDUBBLN+FDUBELN+FDUBMOD NEWUPDATE= BNZ KREFP FOUND JUNK AT END OF FDNAME NEWUPDATE= TM FDUBS-FDBDCT(SCA),FDUBINC NEWUPDATE= BNZ KREFP OTHER JUNK AT END OF FDNAME NEWUPDATE=/COPY 'CREME ' NEWUPDATE=/COPY C=2 NEWUPDATE=* NEWUPDATE=KREFP FMSG 168 JUNK AT END OF FDNAME NEWUPDATE= SPACE 3 NEWUPDATE= DS 0H NEWUPDATE=/COPY 'CLOBBER' NEWUPDATE=/COPY C=6 NEWUPDATE= L GR1,FDGNXCHR GET NEXT CHARACTER NEWUPDATE= CLI 0(GR1),C'@' NEWUPDATE= BPI OPND,CLOBASK -> OK, I GUESS (HOPE) NEWUPDATE= BE CLOBFP OOPS, JUNK AT END OF NAME NEWUPDATE= CLI 0(GR1),C'(' NEWUPDATE= BE CLOBFP MORE JUNK NEWUPDATE=CLOBASK DS 0H NEWUPDATE=/COPY 'DAFDF ' NEWUPDATE=CLOBFP FMSG 168 JUNK AT END OF FILE NAME NEWUPDATE=/COPY 'MT ' NEWUPDATE=/COPY C=6 NEWUPDATE= TM FDUBS-FDBDCT(SCD),FDUBINC INCREMENT? NEWUPDATE= BNZ MTFP NEWUPDATE= TM FDUBSWS2-FDBDCT(SCD),FDUBBLN+FDUBELN+FDUBMOD NEWUPDATE= BNZ MTFP NEWUPDATE=/COPY 'MTBP ' NEWUPDATE=MTFP FMSG 168 JUNK AT END OF FDNAME NEWUPDATE=/COPY 'TRUNK ' NEWUPDATE=/COPY C=6 NEWUPDATE= TM FDUBS-FDBDCT(SCD),FDUBINC INCREMENT? NEWUPDATE= BNZ TRUNKFP NEWUPDATE= TM FDUBSWS2-FDBDCT(SCD),FDUBBLN+FDUBELN+FDUBMOD NEWUPDATE= BNZ TRUNKFP NEWUPDATE=/COPY 'TRCMP ' NEWUPDATE=TRUNKFP FMSG 168 JUNK AT END OF FDNAME NEWUPDATE=/COPY 'LOCH ' NEWUPDATE=/COPY C=5 NEWUPDATE= LR GR1,GR0 NEWUPDATE= TM FDUBS-FDBDCT(GR1),FDUBINC INCREMENT? NEWUPDATE= BNZ LOCHFP NEWUPDATE= TM FDUBSWS2-FDBDCT(GR1),FDUBBLN+FDUBELN+FDUBMOD NEWUPDATE= BNZ LOCHFP NEWUPDATE=/COPY 'LOCHMP ' NEWUPDATE=LOCHFP FMSG 168 JUNK AT END OF FILENAME NEWUPDATE=/COPY 'UNLOCH2 ' NEWUPDATE= TM FDUBS-FDBDCT(SCC),FDUBINC INCREMENT? NEWUPDATE= BNZ UNLFP NEWUPDATE= TM FDUBSWS2-FDBDCT(SCC),FDUBBLN+FDUBELN+FDUBMOD NEWUPDATE= BNZ UNLFP NEWUPDATE=/COPY 'UNLOCHMP ' NEWUPDATE=UNLFP FMSG 168 JUNK AT END OF FDNAME NEWUPDATE=/COPY 'LSTAT3 ' NEWUPDATE=/COPY C=5 NEWUPDATE= L GR1,FDGNXCHR GET NEXT CHARACTER NEWUPDATE= CLI 0(GR1),C'@' NEWUPDATE= BPI OPND,LSTAT4 -> OK, I GUESS (HOPE) NEWUPDATE= BE LSTFP OOPS, JUNK AT END OF NAME NEWUPDATE= CLI 0(GR1),C'(' NEWUPDATE= BE LSTFP MORE JUNK NEWUPDATE=/COPY 'LSTBP ' NEWUPDATE=LSTFP FMSG 168 JUNK AT END OF FILE NAME NEWUPDATE=/COPY 'CNTRLCMD ' NEWUPDATE=/COPY C=10 NEWUPDATE= TM FDUBS-FDBDCT(SCA),FDUBINC NEWUPDATE= BNZ CCMFP NEWUPDATE= TM FDUBSWS2-FDBDCT(SCA),FDUBBLN+FDUBELN+FDUBMOD NEWUPDATE= BNZ CCMFP NEWUPDATE=/COPY 'CCMDERR1 ' NEWUPDATE=* NEWUPDATE=CCMFP FMSG 168 JUNK AT END OF FDNAME NEWUPDATE=/END FDNJUNK #4139 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. CLEANPWM - Clean up calls to PWM NEWUPDATE=/BEGIN CLEANPWM NEWUPDATE=/COPY 'SYGCPW ' NEWUPDATE=/COPY C=5 NEWUPDATE=/SKIP C=2 NEWUPDATE=/COPY 'STPWX ' NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=2 NEWUPDATE=/COPY 'CANGO ' NEWUPDATE=/COPY C=6 NEWUPDATE=/SKIP C=2 NEWUPDATE=/COPY C=2 NEWUPDATE= LA GR2,CANACR NEWUPDATE=/END CLEANPWM #4140 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. ADDPWCON - Add $SET PWCONFIRM=ON to force user to enter old NEWUPDATE=/. PW before the new PW may be changed. Only applies NEWUPDATE=/. to terminal users and can only be set ON NEWUPDATE=/BEGIN ADDPWCON NEWUPDATE=/COPY BEFORE 'SETLHTL ' NEWUPDATE= KWTEL PWCONFIRM,ONOFF,STPWCX-SETEXT NEWUPDATE=/COPY BEFORE 'STEXPFX ' NEWUPDATE=STPWCX NI SWS19,255-PWCONF $SET PWCONFIRM=ON NEWUPDATE= BAL GR5,*+4 $SET PWCONFIRM=OFF NEWUPDATE= TM SWS19,PWCONF NEWUPDATE= BOR GR5 IS ALREADY OFF NEWUPDATE= FMSG 170,* CAN'T SET OFF NEWUPDATE= BR GR5 NEWUPDATE= SPACE NEWUPDATE=/END ADDPWCON #4141 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. CLEANSET - CLEAN UP THE SET COMMAND A LITTLE NEWUPDATE=/BEGIN CLEANSET NEWUPDATE=/COPY 'SETTE ' NEWUPDATE=/COPY C=4 NEWUPDATE= LA R13,SETSA1 SA TO KEEP KWSCAN HAPPY NEWUPDATE=/COPY C=7 NEWUPDATE=/SKIP C=1 NEWUPDATE= L SCB,=V(RHTABLE) 5. RHT LOCN. NEWUPDATE=/COPY C=10 NEWUPDATE=/EDIT "X'17'" = "X'37'" NEWUPDATE=/EDIT 'PROMPT,' = 'PROMPT, UC' NEWUPDATE=/END CLEANSET #4142 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ============================================================= NEWUPDATE=/. LFRAX - DELETE THE $SET LFR OPTION, I'LL BET YOU DIDN'T EVEN KNOW NEWUPDATE=/. IT WAS THERE! NEWUPDATE=/BEGIN LRFAX NEWUPDATE=/COPY 'SYGNOTSA ' NEWUPDATE=/COPY BEFORE NEXT 'MVI' NEXT 'SWS,LFRBIT+' NEWUPDATE=/EDIT HOLD 'LFRBIT+' = '' NEWUPDATE=/EDIT 'LFR=OFF' = '' NEWUPDATE=/COPY 'RALPHA ' NEWUPDATE=/SKIP C=4 NEWUPDATE=/COPY 'SETLHT ' NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY BEFORE 'STLFRX ' NEWUPDATE=/SKIP C=3 NEWUPDATE=/END LFRAX #4143 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. =============================================================== NEWUPDATE=/. CANBATCH - ALLOW PASSWORD TO BE GIVEN IN BATCH ON CARD FOLLOWING NEWUPDATE=/. $CANCEL COMMAND IF ID=XXXX GIVEN ON COMMAND ITSELF. NEWUPDATE=/BEGIN CANBATCH NEWUPDATE=/COPY 'CANCMD ' NEWUPDATE=/COPY '* ' NEWUPDATE=/COPY BEFORE NEXT 'BAL' NEXT 'GR14,GUSER' NEWUPDATE=/EDIT 'GUSER' = 'GUSEREOF' NEWUPDATE= LTR GR15,GR15 NEWUPDATE= BNZ CANIPW NEWUPDATE=/END CANBATCH #4144 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. NEWPW - ALLOW $SET PW= WITHOUT ANY RHS NEWUPDATE=/BEGIN NEWPW NEWUPDATE=/COPY 'SINTNB ' NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT "0" = "PWCONF" NEWUPDATE=/COPY BEFORE 'STPWX ' NEWUPDATE=/SKIP 'STMPW ' NEWUPDATE=STPWX BAL GR5,STPW1 $SET PW=SOMETHING NEWUPDATE= BAL GR5,STPW2 $SET PW=NOTHING OR SIMPLY $SET PW NEWUPDATE= SPACE 2 NEWUPDATE=* THIS CODE IS EXECUTED WHEN THE USER GIVES THE PW= OR NEWUPDATE=* PASSWORD= COMMAND WITH SOMETHING ON THE RIGHT HAND SIDE. NEWUPDATE=* NEWUPDATE=* KWSCAN SETS UP THE REGISTERS: NEWUPDATE=* GR1 -> THE IBM LENGTH OF THE NEW PASSWORD NEWUPDATE=* GR2 -> ADDRESS OF THE NEW PASSWORD NEWUPDATE=* GR4 -> MTS DSECT NEWUPDATE=* GR5 -> LINK REGISTER NEWUPDATE=* GR10-> LOCAL BASE NEWUPDATE=* GR11 AND GR12 -> COMBASE NEWUPDATE=* GR13-> ADDRESS OF THE SET COMMAND'S DSECT NEWUPDATE= SPACE NEWUPDATE=STPW1 DS 0H NEWUPDATE= LR SCD,GR13 ADDRESS OF OUR DSECT NEWUPDATE= USING SETKWD,SCD NEWUPDATE= LA GR13,SETSA2 A STANDARD SAVE AREA NEWUPDATE= MVC SETPW1,=CL12' ' BLANK SETPW1 NEWUPDATE= LA GR3,SETPW1 WHERE TO MOVE THE PW FROM THE SET CMD. NEWUPDATE= EX GR1,STPWMVC GR1 IS IBM LENGTH PROVIDED BY KWSCAN NEWUPDATE= BAL SCC,STOPWC DO OLD PWCONFIRM PROCESSING IF NECESSARY NEWUPDATE=* SOMEDAY THIS CODE WILL CAUSE TERMINAL USERS WHO ENTER THEIR NEWUPDATE=* PASSWORDS ON THE $SET CMD. TO REENTER IT AGAIN JUST TO BE SAFE. NEWUPDATE=* TM SWS2,BATCHM IS IT BATCH? NEWUPDATE=* BO STPW1B IF SO SKIP THE CONFIRMATION NEWUPDATE=* BAL SCC,STGETPW BETTER READ A LINE NEWUPDATE=* LA GR3,SETPW2 THE 2ND PASSWORD IS UP NEXT NEWUPDATE=* BAL SCC,STMOVPW MOVE THE PW INTO SETPW2 NEWUPDATE=* CLC SETPW1,SETPW2 DO THEY MATCH? NEWUPDATE=* BE STPW1B YES NEWUPDATE=* FMSG 184,STPWXIT,TYPE=M 1ST & 2ND NEW PASSWORDS DON'T MATCH NEWUPDATE=STPW1B BAL SCC,STNPW ENCODE AND SET THE NEW PASSWORD NEWUPDATE= BAL GR14,ECHOTST2 DID USER SEE THE $SET COMMAND? NEWUPDATE= B STPW1C NO, SO GO WARN HIM/HER NEWUPDATE=* THIS TOO WILL BE EXECUTED SOMEDAY NEWUPDATE=* FMSG 185,* SAW CMD., BUT IT IS A BAD PRACTICE NEWUPDATE= B STPWXIT EXIT NEWUPDATE=STPW1C FMSG 162,*,TYPE=M PASSWORD HAS BEEN CHANGED NEWUPDATE=STPWXIT LR GR13,SCD PUT THIS BACK THE WAY WE FOUND IT NEWUPDATE= BR GR5 RETURN NEWUPDATE= SPACE NEWUPDATE= DROP SCD NEWUPDATE= SPACE NEWUPDATE=STPWMVC MVC 0(0,GR3),0(GR2) EXECUTED NEWUPDATE= SPACE 2 NEWUPDATE=* THIS CODE IS EXECUTED WHEN THE USER GIVES THE PW= OR NEWUPDATE=* PASSWORD= COMMAND WITH NOTHING ON THE RIGHT HAND SIDE. NEWUPDATE=* NEWUPDATE=* KWSCAN SETS UP THE REGISTERS: NEWUPDATE=* GR4 -> MTS DSECT NEWUPDATE=* GR5 -> LINK REGISTER NEWUPDATE=* GR10-> LOCAL BASE NEWUPDATE=* GR11 AND GR12 -> COMBASE NEWUPDATE=* GR13-> ADDRESS OF THE SET COMMAND'S DSECT NEWUPDATE= SPACE NEWUPDATE=STPW2 DS 0H NEWUPDATE= LR SCD,GR13 ADDRESS OF OUR DSECT NEWUPDATE= USING SETKWD,SCD NEWUPDATE= LA GR13,SETSA2 A STANDARD SAVE AREA NEWUPDATE= BAL SCC,STOPWC DO OLD PWCONFIRM PROCESSING IF NECESSARY NEWUPDATE= TM SWS2,BATCHM BATCH? NEWUPDATE= BO STPW2A YES, THEN SKIP PROMPT NEWUPDATE= FMSG 187,*,TYPE=M ENTER NEW USER PASSWORD. NEWUPDATE=STPW2A BAL SCC,STGETPW BLANK INPUT AND READ A LINE FROM MSOURCE NEWUPDATE= LA GR3,SETPW1 WE ARE DEALING WITH THE FIRST PW NEWUPDATE= BAL SCC,STMOVPW MOVE THE PW INTO SETPW1 NEWUPDATE= CLC SETPW1,=CL12' ' DID WE GET ONE NEWUPDATE= BNE STPW2B NEWUPDATE= FMSG 188,STPWXIT,TYPE=M PW TOO SHORT (IE. NULL) NEWUPDATE=STPW2B BAL SCC,STSKIPW SKIP TO NEXT PW ON LINE, IF ANY NEWUPDATE= B STPW2C GOT ONE NEWUPDATE= TM SWS2,BATCHM 2ND PW NOT ON SAME LINE, IS IT BATCH? NEWUPDATE= BO STPW2F IF SO SKIP THE CONFIRMATION NEWUPDATE= FMSG 190,*,TYPE=M NEWUPDATE= BAL SCC,STGETPW BETTER READ A LINE NEWUPDATE=STPW2C LA GR3,SETPW2 THE 2ND PASSWORD IS UP NEXT NEWUPDATE= BAL SCC,STMOVPW MOVE THE PW INTO SETPW2 NEWUPDATE= CLC SETPW1,SETPW2 DO THEY MATCH? NEWUPDATE= BE STPW2E YES NEWUPDATE=STPW2D FMSG 184,STPWXIT,TYPE=M 1ST AND 2ND NEW PASSWORDS DON'T MATCH NEWUPDATE=STPW2E BAL SCC,STSKIPW CHECK FOR JUNK AT END OF LINE NEWUPDATE= B STPW2D FOUND JUNK NEWUPDATE=STPW2F BAL SCC,STNPW ENCODE AND SET THE NEW PASSWORD NEWUPDATE= B STPWXIT EXIT NEWUPDATE= SPACE 2 NEWUPDATE=* CALLS CONTROL TO BLANK MSOURCE, READS A LINE AND RETURNS NEWUPDATE=* WITH THE LENGTH+1 IN GR0 AND A POINTER TO THE TEXT IN GR2 NEWUPDATE= SPACE NEWUPDATE=STGETPW DS 0H NEWUPDATE= CALL CONTROL,(STBLANK,STBLEN,MSOURCE),VL, @ NEWUPDATE= MF=(E,STCTLPAR),LIT=YES BLANK THE INPUT LINE NEWUPDATE= BAL GR14,GUSEREOF NEWUPDATE= LTR GR15,GR15 CHECK RC NEWUPDATE= BZ STGETPWA NEWUPDATE=STPWNC FMSG 191,STPWXIT,TYPE=M PW NOT CHANGED - EXIT NEWUPDATE=STGETPWA LH GR2,0(,GR1) GET THE LENGTH NEWUPDATE= LA GR0,1(,GR2) ADD ONE NEWUPDATE= LA GR2,2(,GR1) ADDRESS OF TEXT NEWUPDATE= BR SCC RETURN NEWUPDATE= SPACE NEWUPDATE=STBLANK DC C'BLANK=12 ' NEWUPDATE=STBLEN DC Y(L'STBLANK) NEWUPDATE= SPACE 2 NEWUPDATE=* CALLED TO MOVE THE PW INTO THE REGION POINTED TO BY GR3 NEWUPDATE=* ON ENTRY GR2 POINTES TO START OF TEXT, GR0 HAS REMAINING NEWUPDATE=* LENGTH PLUS ONE. ON EXIT GR0 AND GR2 ARE UPDATED. NEWUPDATE= SPACE NEWUPDATE=STMOVPW DS 0H NEWUPDATE= MVC 0(12,GR3),=CL12' ' A FEW BLANKS TO START NEWUPDATE= LR SCA,GR2 MAKE AN EXTRA COPY NEWUPDATE=STMOVPWA CLI 0(SCA),C' ' A BLANK? NEWUPDATE= BE STMOVPWB NEWUPDATE= CLI 0(SCA),C',' A COMMA? NEWUPDATE= BE STMOVPWB NEWUPDATE= LA SCA,1(,SCA) NEXT CHAR. NEWUPDATE= BCT GR0,STMOVPWA THIS CAN'T FAIL NEWUPDATE= B STPWNC BUT JUST IN CASE NEWUPDATE=STMOVPWB LR GR1,SCA ANOTHER COPY NEWUPDATE= SR GR1,GR2 THIS GIVES THE LENGTH NEWUPDATE= CH GR1,=H'12' TOO BIG? NEWUPDATE= BNH STMOVPWC NO NEWUPDATE= FMSG 197,STPWXIT,TYPE=M PW TOO LONG NEWUPDATE=STMOVPWC LTR GR1,GR1 NULL PW? NEWUPDATE= BZR SCC YUP, RETURN BLANKS NEWUPDATE= BCTR GR1,0 IBM LENGTH NEWUPDATE= EX GR1,STPWMVC MOVE IT TO 0(GR3) NEWUPDATE= LR GR2,SCA NEW TEXT POINTER NEWUPDATE= BR SCC RETURN NEWUPDATE= SPACE 2 NEWUPDATE=* CALLED TO SCAN FOR A 2ND PW ON A LINE, RETURNS 0(SCC) NEWUPDATE=* IF A 2ND PW IS FOUND AND 4(SCC) IF NOT. GR2 CONTAINS NEWUPDATE=* A POINTER TO THE REMAINING TEXT AND GR0 THE LENGTH ON ENTRY. NEWUPDATE=* GR0 AND GR2 ARE UPDATED ON EXIT. NEWUPDATE= SPACE NEWUPDATE=STSKIPW DS 0H NEWUPDATE= CLI 0(GR2),C' ' SKIP OVER BLANKS NEWUPDATE= BE STSKIPWA NEWUPDATE= CLI 0(GR2),C',' SKIP OVER COMMAS NEWUPDATE= BNER SCC NOT BLANK OR COMMA RETURN NEWUPDATE=STSKIPWA LA GR2,1(,GR2) ON TO NEXT NEWUPDATE= BCT GR0,STSKIPW LOOP NEWUPDATE= B 4(,SCC) OOPS, RAN OUT OF LINE NEWUPDATE= SPACE 2 NEWUPDATE=* CALLED TO ENCODE AND SET THE NEW PW, USES THE PW TEXT NEWUPDATE=* FROM SETPW1 NEWUPDATE= SPACE NEWUPDATE=STNPW DS 0H NEWUPDATE= MVC SCRATCH2(12),SETPW1 GET THE NEW PW NEWUPDATE= LR GR3,SCC NEWUPDATE= BAL GR14,PWM ENCODE IT NEWUPDATE= MVC SAVEPW(4),SCRATCH2 SAVE IT FOR LATER NEWUPDATE= SVC BINTIME NEWUPDATE= D GR0,=F'60000000' TIME IN MINS. NEWUPDATE= ST GR1,SAVEPW+4 SAVE THIS TOO NEWUPDATE= BR GR3 RETURN ADDRESS WAS MOVED HERE NEWUPDATE= SPACE 2 NEWUPDATE=* CALLED TO DO OLD PW CONFIRMATION IF REQUESTED BY USER NEWUPDATE=* AND OPERATING IN TERMINAL MODE. NEWUPDATE= SPACE NEWUPDATE=STOPWC DS 0H NEWUPDATE= TM SWS19,PWCONF USER REQUEST THIS? NEWUPDATE= BOR SCC ON=OFF IS THIS MIXED UP WORLD NEWUPDATE= TM SWS2,BATCHM IF BATCH NEWUPDATE= BOR SCC THEN RETURN NEWUPDATE= FMSG 192,*,TYPE=M ENTER OLD USER PASSWORD NEWUPDATE= LR GR3,SCC SAVE THIS HERE FOR NOW NEWUPDATE= BAL SCC,STGETPW NEWUPDATE= LR GR15,GR3 AND NOW HERE NEWUPDATE= LA GR3,SCRATCH2 WHERE WE WANT THE PW TO BE NEWUPDATE= BAL SCC,STMOVPW MOVE IT NEWUPDATE= BAL SCC,STSKIPW CHECK FOR JUNK AT END OF LINE NEWUPDATE= B STOPWCA FOUND JUNK NEWUPDATE= BAL GR14,PWM ENCODE IT, CLOBBERS SCA, SCB, SCC NEWUPDATE= CLC ACCPW,SCRATCH2 CHECK IT NEWUPDATE= BER GR15 THIS IS WHERE WE HIDE THE LINK NEWUPDATE= CLC SAVEPW(4),SCRATCH2 A 2ND CHANGE NEWUPDATE= BER GR15 NEWUPDATE=STOPWCA FMSG 193,STPWXIT,TYPE=M PASSWORD INCORRECT - RETURN NEWUPDATE= SPACE NEWUPDATE= DROP SCD NEWUPDATE= SPACE 3 NEWUPDATE=/END NEWPW #4145 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. SIGMCD - MOVE COPY:RATEVEC INTO THEDSECT TO KEEP SIGMCD HAPPY NEWUPDATE=/BEGIN SIGMCD NEWUPDATE=/COPY "UNLTCH " NEWUPDATE=/COPY "* " NEWUPDATE=/COPY C=3 NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY C=4 NEWUPDATE=/SKIP C=1 NEWUPDATE=/END SIGMCD #4146 DATE=Oct 31, 1978 PERSON=Ogden NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. SIGBATCH - GIVE THE USER ONLY ONE CHANCE TO ENTER A SIGNON NEWUPDATE=/. COMMAND IN BATCH. NEWUPDATE=/BEGIN SIGBATCH NEWUPDATE=/COPY 'SYGNE ' NEWUPDATE=/COPY C=4 NEWUPDATE=/EDIT HOLD '7' = '6' NEWUPDATE=/EDIT 'SIGNOFF' = 'SIGNOF' NEWUPDATE=/COPY 'SYGNUNA ' NEWUPDATE= TM SWS2,BATCHM NEWUPDATE= BO SYGNOFNL ONE CHANCE IN BATCH! NEWUPDATE=/END SIGBATCH #4147 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. SIGNOFF -- Make parsing of $SIGNOFF parameters (LONG, SHORT, $) NEWUPDATE=/. done by KWSCAN. NEWUPDATE=/. Change prompted by UBC change to MTS NEWUPDATE=/BEGIN SIGNOFF NEWUPDATE=/COPY "SYGNOFC " NEWUPDATE=/SKIP BEFORE NEXT "B " NEXT "SYGNOF" NEWUPDATE= L GR0,INREGP SEE IF ANY PARAMETERS NEWUPDATE= LTR GR0,GR0 NEWUPDATE= BZ SYGNOF -> NONE NEWUPDATE=* NEWUPDATE= LA GR1,INREG COMPUTE REMAINDER OF INPUT NEWUPDATE= S GR1,INREGP NEWUPDATE= A GR1,INREGL NEWUPDATE= STH GR1,SCRATCH TO PASS TO KWSCAN NEWUPDATE= L GR2,INREGP TEXT POINTER TO KWSCAN NEWUPDATE= XR GR3,GR3 SPELLING CORRECTION BITS NEWUPDATE= IC GR3,SPELCOR NEWUPDATE= SLL GR3,14 NEWUPDATE= LA GR3,7(,GR3) + PRINT, PROMPT, MULTIPLE NEWUPDATE= ST GR3,SCRATCH+4 SWITCHES NEWUPDATE= L GR13,KWSAVE NEWUPDATE= CALL KWSCAN,(=Y(SIGOFLTL),SIGOFLT,SIGOFEXT,(GR2),SIGOFRHT,SCRX NEWUPDATE= ATCH,SCRATCH+4,0),MF=(E,SCRATCH+8) NEWUPDATE= LTR GR15,GR15 NEWUPDATE= BNZ INLOOP -> ABORT IF BAD RC NEWUPDATE=* NEWUPDATE= TM SWS2,BATCHM NEWUPDATE= BZ SYGNOF -> DO WHAT USER SAID IF TERMINAL NEWUPDATE= MVI SYGTYPE,0 OTHERWISE FORCE LONG SIGNOFF NEWUPDATE=/COPY ".S370M3 " NEWUPDATE= SPACE 3 NEWUPDATE=* SIGNOFF EXECUTE TABLE NEWUPDATE= SPACE 1 NEWUPDATE=SIGOFEXT DS 0H NEWUPDATE=SIGOFSHO MVI SYGTYPE,1 SHORT NEWUPDATE=SIGOF$ MVI SYGTYPE,2 $ NEWUPDATE=SIGOFLON MVI SYGTYPE,0 LONG NEWUPDATE= SPACE 3 NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP C=1 NEWUPDATE= SPACE 1 NEWUPDATE=/COPY "LSOL " NEWUPDATE= SPACE 3 NEWUPDATE=SIGOFLT DC AL1(SIGOFRHT-SIGOFRHT,0,0) $SIGNOFF LEFT-HAND TABLE NEWUPDATE=SIGOFLTL EQU *-SIGOFLT NEWUPDATE= SPACE 2 NEWUPDATE=SIGOFRHT DC AL1(20,SIGOFSHO-SIGOFEXT,6,1),C'SHORT' NEWUPDATE= DC AL1(1,SIGOF$-SIGOFEXT,1),C'$' NEWUPDATE= DC AL1(20,SIGOFLON-SIGOFEXT,5,1),C'LONG' NEWUPDATE= DC X'FF' NEWUPDATE=/END SIGNOFF #4148 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. REPLINN -- Replace all usages of LINNBR in the system with NEWUPDATE=/. calls to LINENBR, which never makes sideways NEWUPDATE=/. branch. NEWUPDATE=/BEGIN REPLINN NEWUPDATE=/COPY "DELSFT " NEWUPDATE=LINENBR ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,3)) NEWUPDATE=/COPY "NUMBB " NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/EDIT "SCC,SCC" = "GR1,GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/DELETE NEXT "BAL" NEXT "GR14,LINNBRN" NEWUPDATE= RICALL LINENBR(A(255),,AFD) TRY FOR STARTINGNUMBER NEWUPDATE=/COPY BEFORE NEXT "C" NEXT "GR0," NEWUPDATE=/EDIT F=3 "0" = "2" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "0" = "2" NEWUPDATE=/DELETE NEXT "LR" NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT HOLD "SCC" = "GR1" NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=NUMFSP LR SCC,GR2 COPY BEGINNING LINE NUMBER NEWUPDATE=/SKIP C=1 NEWUPDATE= RICALL LINENBR(A(255),,AFD) TRY FOR INCREMENT NEWUPDATE=/COPY BEFORE NEXT "C" NEXT "GR0," NEWUPDATE=/EDIT "GR0" = "GR2" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "GR0" = "GR2" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/BUFFER NUMSSP NEWUPDATE=/DELETE "NUMSSP " NEWUPDATE=NUMOK LTR SCA,GR1 CHECK FOR EXTRA PARAM NEWUPDATE= BZ *+8 -> NONE, SKIP NEXPARB CALL NEWUPDATE=/COPY C=2 NEWUPDATE=/BUFFER END NEWUPDATE=/EDIT HOLD " " = "NUMSSP" NEWUPDATE=/EDIT "GR0" = "GR2" NEWUPDATE=/EDIT "SCD" = "SCC" NEWUPDATE=/INCLUDE NUMSSP NEWUPDATE=/EDIT F=1 "NUMOK" = "" NEWUPDATE=/COPY "NUMSTD " NEWUPDATE= LR GR2,SCC DEFINE INCREMENT, TOO NEWUPDATE=/SKIP NEXT "B" NEXT "NUMOK" NEWUPDATE= B NUMSSP NEWUPDATE=/COPY BEFORE "NUMSTD1 " NEWUPDATE=/EDIT "SCD" = "GR2" NEWUPDATE=/COPY BEFORE "NUMSTD2 " NEWUPDATE=NUMSTD2 LR SCC,GR2 COPY OVER STARTINGNUMBER NEWUPDATE=/EDIT HOLD "NUMSTD2" = " " NEWUPDATE=/EDIT F=3 "0" = "GR2" NEWUPDATE=/COPY BEFORE "NUMCFB " NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCA" = "GR1" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/END REPLINN #4149 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. UBCFRBUG -- Fix bug in altering and displaying FRS. Fixed by NEWUPDATE=/. UBC update, included here. NEWUPDATE=/BEGIN UBCFRBUG NEWUPDATE=/COPY "DYSPLB20 " NEWUPDATE=/DELETE NEXT "SLL" NEXT "SCA,3" NEWUPDATE= SLL SCA,2 (FRS ARE ALREADY MULTIPLES OF 2) NEWUPDATE=/COPY "ALTC2 " NEWUPDATE=/DELETE NEXT "SLL" NEXT "SCD,3" NEWUPDATE= SLL SCD,2 (FRS ARE ALREADY MULTIPLES OF 2) NEWUPDATE=/END UBCFRBUG #4150 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. GIGO -- Install GETINTCC and GETOUTTC subroutines in MTS. NEWUPDATE=/. Make changes in signoff procedure to use them. NEWUPDATE=/BEGIN GIGO NEWUPDATE=/COPY "GROD " NEWUPDATE=/DELETE NEXT "L" NEXT "GR15,ASETKEY" NEWUPDATE=/SKIP NEXT "XC" NEXT "ASETFSAV" NEWUPDATE=/DELETE NEXT "SR" NEXT "GR3,GR3" NEWUPDATE=/COPY BEFORE NEXT "BZ" NEXT "SYGNODES" NEWUPDATE=/EDIT F=3 "DES" = "DET" NEWUPDATE=/DELETE "SYGTPI " NEWUPDATE=/SKIP C=1 NEWUPDATE=/EDIT " " = "SYGTPI" NEWUPDATE=/EDIT F=3 "GETIN" = "GETINTC" NEWUPDATE=/SKIP C=1 NEWUPDATE=/EDIT "SYGDHP" = " " NEWUPDATE=/DELETE "SYGNODES " NEWUPDATE=/SKIP BEFORE "SYGNODET " NEWUPDATE=/COPY "SINTNB " NEWUPDATE=/COPY NEXT "STH" NEXT "SCA,CLSCMDID" NEWUPDATE= BAL GR14,GETOUTTC THROW AWAY LFTC JUNK NOW NEWUPDATE=/COPY "DYSPLA2 " NEWUPDATE=/SKIP NEXT "BNZ " NEWUPDATE=/COPY "DDA5 " NEWUPDATE=/DELETE NEXT "XC" NEXT "ADYSSUB" NEWUPDATE=/END GIGO #4151 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. STOP -- Make change to DSROFF and ERRRTN so that signoffs will NEWUPDATE=/. be forced even if in a gated subroutine. This means NEWUPDATE=/. that tasks waiting in the DSR during a call to READ NEWUPDATE=/. from a user subroutine will stop, rather than NEWUPDATE=/. having to be blasted or some similar violent act. NEWUPDATE=/BEGIN STOP NEWUPDATE=/COPY "DSROFF " NEWUPDATE=/DELETE NEXT "TM" NEXT "SWSP1,GATED" NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY "ERRRTN " NEWUPDATE=/COPY "ERROFF " NEWUPDATE=/DELETE NEXT "TM" NEXT "SWSP1,GATED" NEWUPDATE=/SKIP C=1 NEWUPDATE=/END STOP #4152 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. NOPW -- Define mechanism whereby DSR may request that a signon NEWUPDATE=/. not require a password. NEWUPDATE=/BEGIN NOPW NEWUPDATE=/COPY "SIGPAST " NEWUPDATE=/DELETE NEXT "TM" NEXT "SWS7" NEWUPDATE=/SKIP C=1 NEWUPDATE= TM SWS7,NOPWN+NOPWN2 PASSWORD NEEDED? NEWUPDATE= BNZ SYGNPW -> NO PW IF BNCH OR DSR REQUESTED NEWUPDATE=/COPY "SYGNOFX " NEWUPDATE=/DELETE NEXT "CLI" NEXT "JOBTYPE" NEWUPDATE=/SKIP BEFORE "SYGNOTF " NEWUPDATE=/DELETE "STARMVC " NEWUPDATE=/SKIP C=1 NEWUPDATE=/END NOPW #4153 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDS NBR=636/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. UNLFIX -- Fix a couple of potential problems in UNLI/UNLC NEWUPDATE=/. which could cause buffer release snarks if user hangs NEWUPDATE=/. up at critical moment. NEWUPDATE=/BEGIN UNLFIX NEWUPDATE=/COPY "UNLCF " NEWUPDATE=/COPY NEXT "BALR " NEWUPDATE= L GR1,CLSPTR+EXECFLG*4 NEWUPDATE= XC CLSUDP-CLSAREA(4,GR1),CLSUDP-CLSAREA(GR1) * NEWUPDATE= ZERO POINTER TO USER CLS EXTENSION NEWUPDATE=/COPY "UNLNOUND " NEWUPDATE=/COPY BEFORE NEXT "BZ" NEWUPDATE=/EDIT F=3 "8" = "12" NEWUPDATE= ST SCA,CLSPGNSA ZERO POINTER BEFORE HIABYMH NEWUPDATE=/DELETE NEXT "ST" NEXT "SCA" NEWUPDATE=/COPY BEFORE NEXT "BZ" NEWUPDATE=/EDIT F=3 "8" = "12" NEWUPDATE= ST SCA,CLSATNSA ZERO POINTER BEFORE HIABYMH NEWUPDATE=/DELETE NEXT "ST" NEXT "SCA" NEWUPDATE=/DELETE NEXT "ST" NEXT "SCA,CLSUDP" NEWUPDATE=/END UNLFIX #4154 DATE=Oct 31, 1978 PERSON=Ogden NAME=DSRI NBR=639/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. CHKMODS - GET DSRI TO CHECK THE MODIFIER WORD IN A NEWUPDATE=/. more controlled way then getting a PGNT behind NEWUPDATE=/. the GATE. NEWUPDATE=/BEGIN CHKMODS NEWUPDATE=/COPY 'GIOIO ' NEWUPDATE=/COPY C=5 NEWUPDATE= BPI OPND,GIOBP NEWUPDATE=/COPY C=2 NEWUPDATE= C GR1,0(SCC) NOT REALLY A COMPARE, JUST CHECKING ADDR. NEWUPDATE= BPI OPND,GIOBP NEWUPDATE=/END CHKMODS #4155 DATE=Oct 31, 1978 PERSON=Ogden NAME=DSRI NBR=639/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FIXLNR - Change to deal with line numbers bigger than NEWUPDATE=/. 999999.999 or smaller than -99999.999. NEWUPDATE=/BEGIN FIXLNR NEWUPDATE=/COPY 'GIOSIJ2 ' NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT 'PUTDEC' = 'PUTLNR' NEWUPDATE=/END FIXLNR #4156 DATE=Oct 31, 1978 PERSON=Ogden NAME=DSRI NBR=639/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. CONJUNK - Check for junk at the end of $CONTINUE WITH lines. NEWUPDATE=/BEGIN CONJUNK NEWUPDATE=/COPY 'GIOSIQC ' NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT "=F'16'" = "=A(L'CONTW)" NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT "(15)" = "(L'CONTW)" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "(15)" = "(L'CONTW)" NEWUPDATE=/EDIT "(15)" = "" NEWUPDATE=/COPY C=1 NEWUPDATE=/SKIP BEFORE 'GIOSIQBB ' NEWUPDATE= CH SCC,=H'16' IF IT ISN'T THIS LONG THEN NEWUPDATE= BL GIOICGBG IT IS WRONG NEWUPDATE= CLI 14(SCA),C' ' AND IF THIS ISN'T A BLANK NEWUPDATE= BNE GIOICGBG THAT IS AN ERROR TOO NEWUPDATE= LA SCA,L'CONTW(,SCA) ADVANCE PAST THIS NEWUPDATE= LR SCB,SCC LENGTH NEWUPDATE= SH SCB,=Y(L'CONTW) REMAINING LENGTH NEWUPDATE= BAL GR14,NEXPAR FIND NEXT PAR - FDNAME I HOPE NEWUPDATE= BZ GIOICGBG NO FDNAME, ERROR NEWUPDATE= LR SCC,SCA SAVE POINTER TO FDNAME NEWUPDATE= LR GR15,SCB SAVE REMAINING LENGTH FOR MVCL NEWUPDATE= BAL GR14,NEXPAR FIND ANYTHING ELSE NEWUPDATE= BZ GIOICP NOPE, CAN'T BE RETURN THEN NEWUPDATE= CH SCB,=H'6' LONG ENOUGH FOR "RETURN" NEWUPDATE= BL GIOICGBG NOPE, JUNK AT END NEWUPDATE= MVC SCRATCH(6),0(SCA) MOVE TO SAFE PLACE NEWUPDATE= L GR14,=V(CASECONV) NEWUPDATE= TR SCRATCH(6),0(GR14) TO UPPER CASE NEWUPDATE= CLC =C'RETURN',SCRATCH SOMETHING WE LIKE? NEWUPDATE= BNE GIOICGBG NO, GARBAGE AT END NEWUPDATE= CH SCB,=H'6' ANYTHING MORE? NEWUPDATE= BE GIOICRET NO, THEN GO FLAG IT NEWUPDATE= CLI 6(SCA),C' ' MUST BE A BLANK OR ELSE NEWUPDATE= BNE GIOICGBG NOT BLANK, TRASH NEWUPDATE= BAL GR14,NEXPAR ANYTHING MORE? NEWUPDATE= BNZ GIOICGBG YUP, JUNK NEWUPDATE=GIOICRET SR GR3,GR3 FLAG, NO "RETURN" NEWUPDATE= B GIOFDG NEWUPDATE= SPACE NEWUPDATE=GIOICP LA GR3,1 FLAG "RETURN" NEWUPDATE= LA SCA,0(SCC,GR15) SCA=FDNAME+REM-LENGTH NEWUPDATE= CLI 0(SCA),C' ' A BLANK AFTER FDNAME? NEWUPDATE= BPI OPND,GIOICP1 NOT A BLANK I GUESS NEWUPDATE= BE GIOFDG YES, WHAT LUCK NEWUPDATE=GIOICP1 LR GR0,SCC POINTER TO FDNAME NEWUPDATE= LR GR14,SCC POINTER TO FDNAME FOR MVCL NEWUPDATE= BCTR GR0,0 LESS ONE FOR MVCL NEWUPDATE= LR SCC,GR0 FDGET WILL WANT THIS LATER NEWUPDATE= LR GR1,GR15 GR15 HAS THE REMAINING LENGTH NEWUPDATE= MVCL GR0,GR14 MOVE IT ALL DOWN BY ONE NEWUPDATE= BCTR SCA,0 NEWUPDATE= MVI 0(SCA),C' ' AND ADD A BLANK AT THE END NEWUPDATE=GIOFDG C SCD,MSOURCE ATTEMPT TO CHANGE MSOURCE? NEWUPDATE= BE GIOCCMS YUP, CAN'T ALLOW THAT NEWUPDATE= BAL GR14,FDGET GET FDUB - SCC HAS POINTER TO FDNAME NEWUPDATE= BAL GR14,BLANKIT CLEAN UP THE MESS NEWUPDATE= B GIOREPT NEWUPDATE= SPACE 2 NEWUPDATE=GIOCCMS FMSG 82,ERRSAV,TYPE=M CAN'T CHANGE MSOURCE NEWUPDATE= SPACE 2 NEWUPDATE=GIOICGBG FMSG 169,*,TYPE=M INVALID $CONTINUE WITH NEWUPDATE= TM SWS2,BATCHM BATCH? NEWUPDATE= BO GIOICGB1 ALWAYS IN BATCH NEWUPDATE= LR SCA,SCD NEWUPDATE= L SCB,MSOURCE NEWUPDATE= BAL GR14,CLFDUB $C...W READ FROM MSOURCE? NEWUPDATE= BE ERRSAV NEWUPDATE=GIOICGB1 LA GR1,256 A PLACE TO PUT THE FDNAME NEWUPDATE= BAL GR14,PABOSFTC NEWUPDATE= LR SCA,GR1 SAVE THIS FOR LATER NEWUPDATE= L SCB,FDUBNAME NEWUPDATE= LH SCC,0(,SCB) HW LENGTH OF THE FDNAME NEWUPDATE= BCTR SCC,0 IBM LENGTH OF THE FDNAME NEWUPDATE= EX SCC,GIONMVC NEWUPDATE= LA SCB,1(SCA,SCC) ONE PAST END OF FDNAME NEWUPDATE= MVI 0(SCB),C' ' DELIM FOR MSG ROUTINE NEWUPDATE= LA SCB,FDUBCL ADDRESS OF CURRENT LINE# NEWUPDATE= FMSG 183,*,TYPE=M INVALID $CONTINUE WITH ... NEWUPDATE= LR GR1,SCA NEWUPDATE= BAL GR14,TABOSFTC CLEAN UP NEWUPDATE= B ERRSAV GET THE HELL OUT NEWUPDATE= SPACE NEWUPDATE=GIONMVC MVC 0(0,SCA),2(SCB) EXECUTED TO MOVE EXTERNAL FDNAME NEWUPDATE= EJECT NEWUPDATE=/COPY BEFORE 'CONTW ' NEWUPDATE=/EDIT "WITH " = "WITH" NEWUPDATE=/END CONJUNK #4157 DATE=Oct 31, 1978 PERSON=Ogden NAME=DSRI NBR=639/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. MOVEMAKE - MOVE THE MAKE MACRO FROM COPY:MTS.MACROS TO DSRI NEWUPDATE=/BEGIN MOVEMAKE NEWUPDATE=/COPY C=1 NEWUPDATE= MACRO NEWUPDATE= MAKE &NAME,&LABEL= NEWUPDATE= DC CL8'&NAME' NEWUPDATE= USING *,GR15 NEWUPDATE= AIF (T'&LABEL EQ 'O').L1 NEWUPDATE=&LABEL SAVE (14,12),T NEWUPDATE= ENTRY &LABEL NEWUPDATE= AGO .L2 NEWUPDATE=.L1 ANOP NEWUPDATE=&NAME SAVE (14,12),T NEWUPDATE= ENTRY &NAME NEWUPDATE=.L2 ANOP NEWUPDATE= AIF ('&NAME' EQ 'READ' OR '&NAME' EQ 'WRITE').L3 NEWUPDATE= SR SCA,SCA NEWUPDATE= LA SCC,&NAME.I*4 NEWUPDATE=.L4 L GR5,LGIOSP2 NEWUPDATE= BR GR5 NEWUPDATE= DROP GR15 NEWUPDATE= SPACE 5 NEWUPDATE= AGO .END NEWUPDATE=.L3 L SCB,16(1) NEWUPDATE= AIF ('&NAME' EQ 'READ').L5 NEWUPDATE= LA SCA,8 NEWUPDATE= AGO .L4 NEWUPDATE=.L5 LA SCA,4 NEWUPDATE= AGO .L4 NEWUPDATE=.END MEND NEWUPDATE=/SKIP C=1 NEWUPDATE= SPACE 5 NEWUPDATE=/COPY NEXT 'SETPARM' NEWUPDATE=/SKIP C=1 NEWUPDATE= EJECT NEWUPDATE=/COPY 'CALLNOHO ' NEWUPDATE=/COPY C=8 NEWUPDATE=/SKIP C=1 NEWUPDATE= SPACE NEWUPDATE=/END MAKEMOVE #4158 DATE=Oct 31, 1978 PERSON=Ogden NAME=DSRI NBR=639/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. GOODMSGS - FIX THE DSRI MESSAGE "... CALL USES ILLEGAL PARS..." NEWUPDATE=/. UP TO SAY JUST WHAT IS WRONG NEWUPDATE=/BEGIN GOODMSGS NEWUPDATE=/COPY NEXT 'MAKE' NEWUPDATE= DS 0H START ON A HALFWORD TO BE SAFE NEWUPDATE=/COPY NEXT "DC" NEXT "CL8'&NAME'" NEWUPDATE= DC CL4' ' TO GIVE THE MSG ROUTINES A DELIM. NEWUPDATE=/COPY '.L3 ' NEWUPDATE= BPI OPND,GIOERR1 NEWUPDATE=/COPY 'GIOSPP ' NEWUPDATE=/EDIT 'GIOBPNF' = 'GIOERR3' NEWUPDATE=/COPY 'GIOSPOO ' NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR4' NEWUPDATE=/COPY BEFORE NEXT 'BPI' NEXT 'OPND,GIOBP' NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR4' NEWUPDATE=/COPY 'GIONOTO ' NEWUPDATE=/EDIT 'GIOZFDB' = 'GIOERR5' NEWUPDATE=/COPY 'GIORDWR ' NEWUPDATE=/EDIT 'GIOBPNF' = 'GIOERR6' NEWUPDATE=/COPY 'GIORW5 ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GIOBPNF' = 'GIOERR6' NEWUPDATE=/COPY BEFORE NEXT 'BNZ' NEXT 'GIOBPNF' NEWUPDATE=/EDIT 'GIOBPNF' = 'GIOERR12' NEWUPDATE=/COPY 'GIOBTCH ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'LR ' = 'LTR' NEWUPDATE= BZ GIOSAV NEWUPDATE=/COPY 'GIOIO ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR2' NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR2' NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR7' NEWUPDATE=/COPY BEFORE 'GIOCKLN ' NEWUPDATE=/SKIP C=1 NEWUPDATE=GIOCKLN CLI 12+1(GR1),USERSEG*16 CHECK LINE# NEWUPDATE= BPI OPND,GIOERR2 BAD PAR NEWUPDATE= BL GIOERR8 MUST BE ABOVE SYS. SEGMENT NEWUPDATE=/COPY C=2 NEWUPDATE=/SKIP C=2 NEWUPDATE= CLI 0+1(GR1),USERSEG*16 CHECK BUFFER NEWUPDATE= BL GIOERR9 NEWUPDATE= CLI 4+1(GR1),USERSEG*16 CHECK LENGTH NEWUPDATE= BL GIOERR10 NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR10' NEWUPDATE=/COPY C=3 NEWUPDATE=/EDIT 'GIOSLE' = 'GIOERR11' NEWUPDATE=/COPY C=2 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR9' NEWUPDATE=/COPY 'GIONIC ' NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR2' NEWUPDATE=/COPY BEFORE NEXT 'BPI' NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR7' NEWUPDATE=/COPY 'GIOSIS ' NEWUPDATE=/COPY C=10 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR10' NEWUPDATE=/COPY 'GIOSIS3A ' NEWUPDATE= BPI OPND,GIOERR2 NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR8' NEWUPDATE=/COPY 'GIOSIS2 ' NEWUPDATE=/COPY C=6 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR10' NEWUPDATE=/COPY 'GIOSIZ3 ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR8' NEWUPDATE=/COPY 'GIOSII2 ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'GIOBP' = 'GIOERR8' NEWUPDATE=/COPY BEFORE 'GIOSLE ' NEWUPDATE=/SKIP 'GIOBPM' NEWUPDATE= EJECT NEWUPDATE=* IF YOU GET TO THIS PART OF THE CODE IT MEANS THAT ONE OR NEWUPDATE=* MORE OF THE PARAMETERS TO THE I/O CALL WERE BAD, AND WE NEWUPDATE=* NEED TO PRODUCE AN ERROR MESSAGE AND EXIT. MOST OF THE NEWUPDATE=* DIRTY WORK IS LEFT TO THE MSG ROUTINES WHICH ARE CALLED NEWUPDATE=* BY FMSG. NEWUPDATE= SPACE 2 NEWUPDATE= PUSH USING NEWUPDATE= DROP NEWUPDATE= SPACE NEWUPDATE=GIOERR1 BALR GR5,0 NEED A GOOD LOCAL BASE NEWUPDATE= USING *,GR5 NEWUPDATE= L GR5,LGIOSP JUST LIKE EVERONE ELSE NEWUPDATE= DROP GR5 NEWUPDATE= USING GIOSP,GR5 NEWUPDATE= L GR10,LGIOSP+4 NEWUPDATE= USING GIOSP+4096,GR10 NEWUPDATE= HWIMB 1,N=7 NEWUPDATE= USING DSCT,GR4 NEWUPDATE= LM GR11,GR12,COMBASE NEWUPDATE= DROP NEWUPDATE= POP USING BACK TO NORMAL NEWUPDATE= SR SCD,SCD NO FDUB NEWUPDATE= SR GR2,GR2 NO SWITCHES TO START NEWUPDATE= LA GR14,0(GR14) COME THROUGH THE GATE? NEWUPDATE= C GR14,=V(GATEOUT) NEWUPDATE= BE *+8 YES NEWUPDATE= LA GR2,FDUBNOG NO - FLAG IT FOR LATER NEWUPDATE= CHKPAR NOTIFY=GIOERR2 TURN OFF MODE CHANGE IF NEC. NEWUPDATE= O GR2,=A(FDUBPRC) REMEMBER NEWUPDATE= SPACE NEWUPDATE=GIOERR2 TM 0(GR1),0 NEWUPDATE= BPI OPND,GIOERR2A NEWUPDATE= BAL GR1,GIOERR NEWUPDATE= FMSG 172,GIOBTCH,TYPE=M PART OF PAR LIST ISN'T ADDR. NEWUPDATE= SPACE NEWUPDATE=GIOERR2A BAL GR1,GIOERR NEWUPDATE= FMSG 173,GIOBTCH,TYPE=M ALL OF PAR LIST ISN'T ADDR. NEWUPDATE= SPACE NEWUPDATE=GIOERR3 LR SCD,GR2 NEWUPDATE=GIOERR4 BAL GR1,GIOERR NEWUPDATE= FMSG 174,GIOBTCH,TYPE=M INVLAID FDNAME POINTER NEWUPDATE= SPACE NEWUPDATE=GIOERR5 BAL GR1,GIOERR NEWUPDATE= FMSG 175,GIOBTCH,TYPE=M INVALID FDUB NEWUPDATE= SPACE NEWUPDATE=GIOERR6 LR SCD,GR2 NEWUPDATE= BAL GR1,GIOERR NEWUPDATE= FMSG 176,GIOBTCH,TYPE=M UNIT PAR IS NOT ADDR. NEWUPDATE= SPACE NEWUPDATE=GIOERR7 BAL GR1,GIOERR NEWUPDATE= FMSG 177,GIOBTCH,TYPE=M MODS NOT ADDRESSABLE NEWUPDATE= SPACE NEWUPDATE=GIOERR8 BAL GR1,GIOERR NEWUPDATE= FMSG 178,GIOBTCH,TYPE=M LINE# NOT ADDRESSABLE NEWUPDATE= SPACE NEWUPDATE=GIOERR9 BAL GR1,GIOERR NEWUPDATE= FMSG 179,GIOBTCH,TYPE=M I/O BUFFER IS NOT ADDRESSABLE NEWUPDATE= SPACE NEWUPDATE=GIOERR10 BAL GR1,GIOERR NEWUPDATE= FMSG 180,GIOBTCH,TYPE=M LENGTH IS NOT ADDRESSABLE NEWUPDATE= SPACE NEWUPDATE=GIOERR11 BAL GR1,GIOERR NEWUPDATE= FMSG 181,GIOBTCH,TYPE=M OUTPUT CALL USES NEG. LENGTH NEWUPDATE= SPACE NEWUPDATE=GIOERR12 BAL GR1,GIOERR NEWUPDATE= FMSG 182,GIOBTCH,TYPE=M UNIT PAR. IS INVALID NEWUPDATE= SPACE 2 NEWUPDATE=* THIS ROUTINE IS CALLED ON GR1, IT SETS SCA TO POINT AT THE NEWUPDATE=* CALLER'S GR14 ADDRESS AND SCB TO POINT AT THE NAME OF THE NEWUPDATE=* CALLED ROUTINE. NEWUPDATE= SPACE NEWUPDATE=GIOERR LA SCB,=C'I/O ' A NAME TO USE IF NO OTHER NEWUPDATE= L SCA,16(,GR13) SEARCH FOR A BETTER NAME NEWUPDATE= LA SCA,0(,SCA) NEWUPDATE= CL SCA,=A(GIOENTRY) NEWUPDATE= BL GIOERRA TOO LOW NEWUPDATE= CL SCA,LGIOSP NEWUPDATE= BNL GIOERRA TOO HIGH NEWUPDATE= SL SCA,=F'12' BACK UP TO NAME NEWUPDATE= LR SCB,SCA ADDRESS OF NAME TO USE NEWUPDATE=GIOERRA DS 0H NEWUPDATE= LA SCA,12(,GR13) CALLER'S GR14 IN SA NEWUPDATE= L SCD,0(,SCA) NEWUPDATE= LA SCD,0(,SCD) CLEAN IT NEWUPDATE= C SCD,=V(GATEOUT) IS THE GATE IN THE WAY? NEWUPDATE= BNE GIOERRB NEWUPDATE= LA SCA,GATER14 NEWUPDATE=GIOERRB BR GR1 BACK WE GO NEWUPDATE=/END GOODMSGS #4159 DATE=Oct 31, 1978 PERSON=Helffrich NAME=DSRI NBR=639/1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. EOFJUNK -- Check for junk following $ENDFILE card. NEWUPDATE=/BEGIN EOFJUNK NEWUPDATE=/COPY "GIOSIQU " NEWUPDATE= CH SCC,=Y(L'EOF) LONG ENOUGH FOR $ENDFILE? NEWUPDATE= BL GIOSIQC -> NO WAY, JOSE NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "8" = "L'EOF" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT F=3 "8" = "L'EOF" NEWUPDATE=/EDIT F=3 "=C'$ENDFILE'" = "EOF" NEWUPDATE=/COPY BEFORE "ISENDFIL " NEWUPDATE= B GIOSIQUE -> OK, GOT-UM ENDFILE NEWUPDATE= SPACE NEWUPDATE=ISENDFIL LR SCB,SCC COPY OVER COUNT FOR NEXPAR NEWUPDATE= SH SCB,=Y(L'EOF) NEWUPDATE= BNP GIOSIQUE -> NOTHING LEFT, OK ENDFILE NEWUPDATE= AH SCA,=Y(L'EOF) NEWUPDATE= CLI 0(SCA),C' ' NEWUPDATE= BNE GIOEOFBG -> NOT A BLANK AT END, BUM ONE NEWUPDATE= BAL GR14,NEXPAR NEWUPDATE= BNZ GIOEOFBG -> EXTRA STUFF, BUM ONE NEWUPDATE=/EDIT "ISENDFIL" = "GIOSIQUE" NEWUPDATE=/COPY BEFORE "GIOICGBG" NEWUPDATE=GIOEOFBG FMSG 37,GIO##BG,TYPE=M INVALID $ENDFILE ... NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT " " = "GIO##BG" NEWUPDATE=/COPY "BINEOF " NEWUPDATE=EOF DC C'$ENDFILE' NEWUPDATE=/END EOFJUNK #4160 DATE=Oct 31, 1978 PERSON=Helffrich NAME=DSRI NBR=639/1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. NOPW -- Define mechanism whereby DSR may request that no NEWUPDATE=/. password is needed for this signon. NEWUPDATE=/BEGIN NOPW NEWUPDATE=/COPY "GIONTFY " NEWUPDATE=/SKIP BEFORE NEXT "BR" NEXT "14" NEWUPDATE= LA GR0,1 REGULAR-TYPE NOTIFY NEWUPDATE= CLI FDBDSRSW,2 DID DSR SAY NO PASSWORD, TOO? NEWUPDATE= BNE *+8 NEWUPDATE= LA GR0,4+1 INCLUDE IRREGULAR ONE FROM DSR NEWUPDATE= L 14,12(,13) NEWUPDATE= LM 1,12,24(13) NEWUPDATE= XR 15,15 NEWUPDATE=/COPY "GIOSIRA " NEWUPDATE=/COPY NEXT "SR" NEWUPDATE= CLI FDBDSRSW,2 NEWUPDATE= BNE *+8 -> NO NO PASSWORD NOTIFICATION NEWUPDATE= LA SCB,4 NEWUPDATE=/END NOPW #4161 DATE=Oct 31, 1978 PERSON=Helffrich NAME=DSRS NBR=637/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FIXHADDD - FIX THIS TO USE THE STACK (AND NOT LOOP) NEWUPDATE=/BEGIN FIXHADDD NEWUPDATE=/COPY 'DSRS ' NEWUPDATE=/COPY NEXT 'ENTRY' NEXT 'PCHCLOS,PTRCLOS' NEWUPDATE=/COPY C=1 NEWUPDATE=ZHADDDA ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(2,0)) NEWUPDATE= SPACE 5 NEWUPDATE=/COPY 'HCTHOLD ' NEWUPDATE=/COPY C=3 NEWUPDATE=/SKIP C=5 NEWUPDATE= RICALL ZHADDDA(,HCTLDR) GO HOLD IT NEWUPDATE=/END FIXHADDD #4162 DATE=Oct 31, 1978 PERSON=Helffrich NAME=DSRS NBR=637/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. REPLINN -- Replace calls to LINNBRN in system with calls to NEWUPDATE=/. new routine LINENBR which never takes the sidewasy NEWUPDATE=/. branch. NEWUPDATE=/BEGIN REPLINN NEWUPDATE=/COPY "ZHADDDA " NEWUPDATE=LINENBR ROUTINE EXTERNAL,LINKAGE-TYPE(MTS),PARAMETER-TYPE(R(3,3)) NEWUPDATE=/COPY "PEEL " NEWUPDATE=/COPY NEXT "LR" NEXT "SCC,SCB" NEWUPDATE=/EDIT "SCC" = "GR1" NEWUPDATE=/EDIT "GR1" = "SCC" NEWUPDATE=/EDIT "GR1,0(,GR1)" = "GR0,0(,SCC)" NEWUPDATE=/SKIP C=2 NEWUPDATE= LA GR3,0(,GR1) CLEAN AND COPY NEWUPDATE=/SKIP BEFORE "PEEL1 " NEWUPDATE= STM GR14,GR15,PEELSAV I WISH I DIDN'T HAVE TO DO THIS NEWUPDATE= RICALL LINENBR(,,(SCD)) TRY FOR A LINE NUMBER NEWUPDATE= SRA GR15,3 CHECK FOR RC=8 NEWUPDATE= LM GR14,GR15,PEELSAV NEWUPDATE= BNZ PEELERR -> ERROR MESSAGE RETURNED NEWUPDATE= LTR GR0,GR0 NEWUPDATE= BNP PEEL1 -> NO TEXT LEFT NEWUPDATE= CLC LNS,0(GR1) NEWUPDATE= BNE PEEL1 -> LNS DIDN'T END LINE NUMBER NEWUPDATE= LA GR1,1(,GR1) EAT UP LNS NEWUPDATE= BCTR GR0,0 NEWUPDATE=/EDIT "GR2" = "SCC" NEWUPDATE=/EDIT "GR0,0(,GR2)" = "GR2,0(,SCC)" NEWUPDATE=/SKIP C=2 NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "GR1" = "GR0" NEWUPDATE=/SKIP C=2 NEWUPDATE= LA GR2,0(,GR1) COPY AND CLEAN WHERE TO MOVE TO NEWUPDATE= LR GR1,GR0 COUNT OF BYTES TO MOVE NEWUPDATE= CR GR2,GR3 NEWUPDATE= BE PLMAX -> SKIP MOVE IF SAME ADDRESS NEWUPDATE=/COPY NEXT "LH" NEXT "GR1,0(,SCC)" NEWUPDATE=/SKIP C=2 NEWUPDATE= B PLMOVIT WILL RETURN THRU GR14 NEWUPDATE= SPACE NEWUPDATE=PEELERR LH GR0,0(,GR1) GET ERROR MESSAGE LENGTH NEWUPDATE= LA GR1,2(,GR1) AND ADDRESS NEWUPDATE= BAL GR2,OUTM PRINT ON MSINK ONLY, I GUESS NEWUPDATE= B INLOOP -> TAKE THE BIG SIDEWAYS BRANCH NEWUPDATE=/END REPLINN #4163 DATE=Oct 31, 1978 PERSON=Helffrich NAME=DSRS NBR=637/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. NOPW -- Define mechanism whereby DSR may request that signon NEWUPDATE=/. not require password. NEWUPDATE=/BEGIN NOPW NEWUPDATE=/COPY NEXT "ENTRY PCHCLOS" NEWUPDATE= ENTRY WFOPER,WFDISK NEWUPDATE=/COPY "GFRDR " NEWUPDATE=/DELETE NEXT "BAL" NEXT "SCD,INITJUNK" NEWUPDATE= L SCD,=A(INITJUNK) INVOKE THIS GRUBBY LITTLE ROUTINE NEWUPDATE= BALR SCD,SCD NEWUPDATE=/COPY "GFRRTY " NEWUPDATE=/COPY NEXT "EJECT" NEWUPDATE=* WFOPER -- WAITFOR FOR OPERATORS CONSOLE NEWUPDATE= SPACE 5 NEWUPDATE= USING WFOPER,GR10 NEWUPDATE=WFOPER LR GR10,GR15 ESTABLISH BASE NEWUPDATE= LR GR1,GR0 COPY FDUB NEWUPDATE=* NEWUPDATE= L GR1,FDUBLN-FDBDCT(,GR1) GET OPER FCB NEWUPDATE= S GR1,=A(FCBDSCT-FCBHDR) BACK OFF TO PREFIX NEWUPDATE= OI FCBSWS2-FCBHDR(GR1),FCBWFWLO FLAG WAITFOR LAST OP NEWUPDATE=* NEWUPDATE= LM 14,12,12(13) RESTORE NEWUPDATE= XR 15,15 WHATEVER THIS MEANS NEWUPDATE= BR 14 -> RETURN NEWUPDATE= EJECT NEWUPDATE=/COPY "GFOPER " NEWUPDATE=/DELETE NEXT "LR" NEXT "SCD,0" NEWUPDATE= LR SCA,1 PRESERVE GR1 ACROSS SVC READ NEWUPDATE=* NEWUPDATE=/COPY C=1 NEWUPDATE= LR SCD,0 IMPLANT FDUB NEWUPDATE=/SKIP C=1 NEWUPDATE= L GR1,FDUBLN OPER FCB NEWUPDATE= S GR1,=A(FCBDSCT-FCBHDR) BACK OFF TO PREFIX NEWUPDATE= TM FCBSWS2-FCBHDR(GR1),FCBWFWLO NEWUPDATE= BZ *+12 -> WAITFOR WASN'T LAST OP NEWUPDATE= NI FCBSWS2-FCBHDR(GR1),255-FCBWFWLO NOW IT ISN'T ANY MORE NEWUPDATE= MVI FDBDSRSW,2 TELL POSTFIX TO NOTIFY NO PW NEEDED NEWUPDATE=* NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT "16" = "12" NEWUPDATE=/SKIP C=1 NEWUPDATE=/EDIT F=3 "FCBLINK-FCBDSCT+4" = "FCBOPBUF-FCBHDR" NEWUPDATE=/COPY NEXT "EJECT" NEWUPDATE=* WFDISK -- WAITFOR FOR DISK DSR. NEWUPDATE=* NEWUPDATE=* THIS GETS USED WHEN *-FILE JOBS ARE STARTED NEWUPDATE= SPACE 5 NEWUPDATE= USING WFDISK,GR10 NEWUPDATE=WFDISK LR GR10,GR15 ESTABLISH BASE NEWUPDATE= LR GR9,GR0 ESTABLISH FDUB NEWUPDATE=* NEWUPDATE= L GR2,FDUBNAME-FDBDCT(,GR9) PUT NAME OF *-FILE WE ARE NEWUPDATE= LH GR3,0(,GR2) INTO JOB TABLE FOR SSRTN NEWUPDATE= CH GR3,*+10 TO NICELY DISPLAY NEWUPDATE= BNH *+8 NEWUPDATE= LA GR3,5 MAX OF 5 CHARS, PLEASE NEWUPDATE= BCTR GR3,0 NEWUPDATE= L GR1,LOCPARR NEWUPDATE= SVC PROOFF NEWUPDATE= MVC 13(5,GR1),=5C' ' PAD WITH BLANKS NEWUPDATE= EX GR3,WFDISKMV MVC 13(0,GR1),2(GR2) NEWUPDATE= SVC PROTON NEWUPDATE=* NEWUPDATE= L GR1,FDUBLN-FDBDCT(,GR9) NOW FLAG WAITFOR WAS LAST NEWUPDATE= S GR1,=A(FCBDSCT-FCBHDR) OPERATION NEWUPDATE= OI FCBSWS2-FCBHDR(GR1),FCBWFWLO NEWUPDATE=* NEWUPDATE= LM 14,12,12(13) RETURN NEWUPDATE= XR 15,15 WHATEVER THIS MEANS NEWUPDATE= BR 14 NEWUPDATE= SPACE 2 NEWUPDATE=WFDISKMV MVC 13(0,GR1),2(GR2) NEWUPDATE= EJECT NEWUPDATE=/COPY "GFDRET " NEWUPDATE= L GR1,FDUBLN NOW SET UP INSTRUCTIONS TO POSTFIX NEWUPDATE= S GR1,=A(FCBDSCT-FCBHDR) NEWUPDATE= TM FCBSWS2-FCBHDR(GR1),FCBWFWLO NEWUPDATE= BZ *+12 -> NOT FIRST OP AFTER WAITFOR NEWUPDATE= NI FCBSWS2-FCBHDR(GR1),255-FCBWFWLO NEWUPDATE= MVI FDBDSRSW,2 TELL POSTFIX NO PASSWORD NEEDED NEWUPDATE=/COPY "PLMOVITM " NEWUPDATE=/COPY NEXT "DROP" NEWUPDATE= LTORG THIS PROVED TO BE NECESSARY NEWUPDATE=/DELETE "WOOPER " NEWUPDATE=WOOPER DS 0H WRITE ON OPER NEWUPDATE=/COPY "WOPTR " NEWUPDATE=/DELETE NEXT "BAL" NEXT "SCD,INITJUNK" NEWUPDATE= L SCD,=A(INITJUNK) NEWUPDATE= BALR SCD,SCD CALL THIS BASELESS ROUTINE NEWUPDATE=/COPY "WOPCH " NEWUPDATE=/DELETE NEXT "BAL" NEXT "SCD,INITJUNK" NEWUPDATE= L SCD,=A(INITJUNK) NEWUPDATE= BALR SCD,SCD CALL THIS BASELESS ROUTINE NEWUPDATE=/COPY "LWOPTR " NEWUPDATE=/COPY BEFORE NEXT "EJECT" NEWUPDATE=/BUFFER INITJUNK NEWUPDATE=/COPY NEXT "SPACE" NEWUPDATE= PUSH USING NEWUPDATE= DROP , NOTA BENE NEWUPDATE= USING DSCT,GR4 NOTA BENE NEWUPDATE= SPACE 2 NEWUPDATE=/COPY BEFORE NEXT "EJECT" NEWUPDATE= SPACE 2 NEWUPDATE= POP USING NEWUPDATE=/BUFFER END NEWUPDATE=/DELETE "WODISK " NEWUPDATE=WODISK DS 0H WRITE ON DISK NEWUPDATE=/COPY "WODWCM " NEWUPDATE=/COPY BEFORE NEXT "EJECT" NEWUPDATE=/INCLUDE INITJUNK NEWUPDATE=/END NOPW #4164 DATE=Oct 31, 1978 PERSON=Helffrich NAME=RSF NBR=578/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. SIGMCD - RATEVEC HAS MOVED INTO "THEDSECT" NEWUPDATE=/BEGIN SIGMCD NEWUPDATE=/COPY 'LASTJBA5 ' NEWUPDATE=/COPY C=3 NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY C=3 NEWUPDATE=/SKIP C=1 NEWUPDATE=/END SIGMCD #4165 DATE=Oct 31, 1978 PERSON=Helffrich NAME=RSF NBR=578/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. GIGO -- Install GETINTCC and GETOUTTC subroutines in MTS. NEWUPDATE=/. Change code to load SETKEY, SETFSAV, SETFPRIV by NEWUPDATE=/. using GETINTCC. NEWUPDATE=/BEGIN GIGO NEWUPDATE=/COPY "FCSETPK " NEWUPDATE=/DELETE NEXT "L" NEXT "GR15,ASETKEY" NEWUPDATE=/SKIP "FCSETPK1 " NEWUPDATE= LA GR0,SKEYIX LOAD SETKEY NEWUPDATE= BAL GR14,GETINTC NEWUPDATE= LA GR1,FCTLPL PARAMETER LIST NEWUPDATE=/COPY "FCTPR " NEWUPDATE=/SKIP "FCTPR1 " NEWUPDATE= LR GR3,GR2 PROTECT PARLIST PTR NEWUPDATE= LA GR0,SPRVIX LOAD SETFPRIV NEWUPDATE= BAL GR14,GETINTC NEWUPDATE= LR GR1,GR3 NEWUPDATE=/COPY "FCTSSB " NEWUPDATE=/SKIP "FCTSSB1 " NEWUPDATE= LR GR3,GR2 PROTECT PARLIST PTR NEWUPDATE= LA GR0,SSBIX LOAD SETFSAV NEWUPDATE= BAL GR14,GETINTC NEWUPDATE= LR GR1,GR3 NEWUPDATE=/END GIGO #4166 DATE=Oct 31, 1978 PERSON=Helffrich NAME=TIMNTRP NBR=539/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. SWSTATE -- This fixes a bug which is evidenced by having the NEWUPDATE=/. wrong CLS area user extension in the job table if NEWUPDATE=/. the SWSTATE process gets interrupted at a critical NEWUPDATE=/. spot. NEWUPDATE=/BEGIN SWSTATE NEWUPDATE=/COPY "SWSDONE " NEWUPDATE=/BUFFER TWOMVCS NEWUPDATE=/COPY C=2 NEWUPDATE=/BUFFER END NEWUPDATE=/EDIT F=3 "GR11" = "GR11,L=SCRATCH" NEWUPDATE=/INCLUDE JBTBLUPD NEWUPDATE=/INCLUDE TWOMVCS NEWUPDATE=/COPY "SWSNOLD " NEWUPDATE=/COPY C=2 NEWUPDATE=/BUFFER JBTBLUPD NEWUPDATE=/EDIT F=3 "GR11" = "GR14" NEWUPDATE=/EDIT F=3 "GR12" = "GR15" NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT HOLD "GR11" = "GR14" NEWUPDATE=/EDIT "GR12" = "GR15" NEWUPDATE=/COPY NEXT "SVC" NEXT "PROTON" NEWUPDATE=/BUFFER END NEWUPDATE=/END SWSTATE #4167 DATE=Oct 31, 1978 PERSON=Helffrich NAME=CMDSTAT NBR=531/1 BASE=D4.1 NEWUPDATE=/. DSRDISPV -- Remove CMDSTAT usage of DSRDISPV, as it is now a NEWUPDATE=/. true MTS component. NEWUPDATE=/BEGIN DSRDISPV NEWUPDATE=/DELETE "NOPW " NEWUPDATE=/SKIP NEXT "LA" NEXT "GR1,1(GR4,GR2)" NEWUPDATE=/EDIT HOLD " " = "NOPW" NEWUPDATE=/EDIT F=3 "0(GR1)" = "CLSCURB" NEWUPDATE=/END DSRDISPV #4168 DATE=Oct 31, 1978 PERSON=Sherry NAME=LLXU NBR=354/1 NEWUPDATE=/. ERRRTN - update to have LLXU read @ERRRTN and @NOPROMPT if NEWUPDATE=/. called with NOPROMPT and ERRRTN bits set. NEWUPDATE=/. Note: LLXNTMOD must be defined in LXDCT as DS XL1 before this NEWUPDATE=/. update will work. The "spare" byte following LLXSW1 can be used NEWUPDATE=/. for this. NEWUPDATE=/BEGIN ERRRTN NEWUPDATE=/COPY "XLNIE " NEWUPDATE=/COPY BLANKS "XC" BLANKS "LLXUSSA," NEWUPDATE= MVI LLXNTMOD,X'80' SET @NOTIFY MODIFIER FOR LLXINP NEWUPDATE=/COPY "XLNBL2 " NEWUPDATE= TM XLSWS+3,ERRTNBT+NOPRMTBT CALLER WANTS FULL CONTROL? NEWUPDATE= BNO *+8 NOPE NEWUPDATE= OI LLXNTMOD,X'44' YES, READ @ERRRTN AND @NOPROMPT NEWUPDATE=/COPY "LLXINP " NEWUPDATE=/DELETE BLANKS "OI" BLANKS "LLXINMOD" NEWUPDATE= OC LLXINMOD(1),LLXNTMOD SET @NOTIFY AND POSSIBLY @ERRRTN NEWUPDATE=/COPY BEFORE "LLXINCK " NEWUPDATE=LLXINCK LTR SCD,GR0 IO OPERATION COMPLETED? NEWUPDATE= BZ LLXINSDS YES, ONTO SDS NEWUPDATE= N SCD,=F'2' ERROR OPENING NEW FDUB? NEWUPDATE= BZ LLXINFY NO, CHECK FOR NOTIFY NEWUPDATE= LA GR15,8 YES, GIVE UMLOAD AN IO ERROR RETURN NEWUPDATE= B LLXINRET NEWUPDATE=/EDIT "CK" = "FY" ;* CHANGE THE LABEL NEWUPDATE=/COPY "LLXRETI " ;* POSITION TO USER INPUT ROUTINE INTERCEPT NEWUPDATE=/DELETE BLANKS "C" BLANKS "GR0" NEWUPDATE=/SKIP COUNT=1 NEWUPDATE= LTR GR0,GR0 IO OPERATION COMPLETED? NEWUPDATE= BNZ LLXUXIT NO, A NOTIFICATION OR ERROR NEWUPDATE=/END ERRRTN #4169 DATE=Oct 31, 1978 PERSON=Sherry NAME=LLXU NBR=354/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. RUNONLY - update to return to caller if ERRRTN bit is set on call NEWUPDATE=/. to LLXU even is program is "RUN ONLY". NEWUPDATE=/BEGIN RUNONLY NEWUPDATE=/COPY BEFORE "XLPFDN " NEWUPDATE=/EDIT "XLDEFPID" = "XLDEFPKY" NEWUPDATE=/COPY BEFORE "XLPIGN " NEWUPDATE=/EDIT "XLDEFPID" = "XLDEFPKY" NEWUPDATE=/COPY BEFORE "XLDEFPID " NEWUPDATE=XLDEFPID TM XLSWS+3,ERRTNBT ERROR RETURN REQUESTED? NEWUPDATE= BOR GR14 YES, SO DON'T UNLOAD PGM NEWUPDATE=/EDIT "XLDEFPID" = "XLDEFPKY" ;* CHANGE THE NAME NEWUPDATE=/END RUNONLY #4170 DATE=Oct 31, 1978 PERSON=Sherry NAME=LLXU NBR=354/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. LSW - update to return the correct loader status word when NEWUPDATE=/. calling the error exit supplied on the call to LINK or XCTL. NEWUPDATE=/BEGIN LSW NEWUPDATE=/COPY "XLERRCL " ;* AFTER XLERROR NEWUPDATE=/COPY COUNT=1 NEWUPDATE= ST SCD,LSW RESTORE ERROR LSW FOR EXIT RTN NEWUPDATE=/COPY "XLERRET3 " NEWUPDATE=/COPY BEFORE BLANKS "MVC " NEWUPDATE=/EDIT "(," = "(4," ;* RETURN ALL 4 BYTES!! NEWUPDATE=/END LSW #4171 DATE=Oct 31, 1978 PERSON=Sherry NAME=LLXU NBR=354/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FIXPFX - update to restore previous prefix before calling user NEWUPDATE=/. error exit routine after bad LINK or XCTL. NEWUPDATE=/BEGIN FIXPFX NEWUPDATE=/COPY BEFORE "XLERRET1 " NEWUPDATE=/BUFFER LOADTEST NEWUPDATE=/EDIT FIELD=1 "XLERRET1" = ;* REMOVE LABEL FIELD NEWUPDATE=/COPY BEFORE "XLERRET2 " NEWUPDATE=/BUFFER END NEWUPDATE=/EDIT "RET2" = "RET1" ;* CHANGE LABEL NEWUPDATE=/COPY BLANKS "DROP GR15" NEWUPDATE=/INCLUDE LOADTEST ;* MOVE SOME CODE NEWUPDATE=/COPY BEFORE BLANKS "LR" BLANKS "GR1" NEWUPDATE=/EDIT FIELD=1 = "XLERRET2" ;* ADD A NEW LABEL NEWUPDATE=/END FIXPFX #4172 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FIXLNR - Make FIXLNR one of the commonly addressable subs. NEWUPDATE=/BEGIN FIXLNR NEWUPDATE=/COPY '*MACRO ' NEXT 'CLSAREA' NEWUPDATE=/COPY 'CLSAREAL ' NEWUPDATE=/SKIP C=1 NEWUPDATE= EJECT NEWUPDATE=/COPY '*MACRO ' NEXT 'MTSTV' NEWUPDATE=/COPY 'CONFIRM ' NEWUPDATE=PUTLNR B 0 NEWUPDATE=/END FIXLNR #4173 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. SIGMCD -- FIX UP SIGMCD MACRO SO USES SYMBOLIC RATE VECCTOR NEWUPDATE=/. LENGTH. NEWUPDATE=/BEGIN SIGMCD NEWUPDATE=/COPY "*MACRO" NEXT "THEDSECT" NEWUPDATE=/COPY C=2 NEWUPDATE= SPACE 2 NEWUPDATE= COPY COPY:RATEVEC NEWUPDATE=/COPY "*MACRO" NEXT "SIGMCD" NEWUPDATE=/COPY BEFORE "SIGMRVEC" NEWUPDATE=/EDIT F=3 "20" = "(RATELEN/2)" NEWUPDATE=/END SIGMCD #4174 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. ADDPWCON - Add $SET PWCONFIRM=ON option NEWUPDATE=/BEGIN ADDPWCON NEWUPDATE=/COPY '*MACRO ' NEXT 'DSCT' NEWUPDATE=/COPY 'EOFISOK' NEWUPDATE=PWCONF EQU X'08' 1->OFF 0->ON REQUIRE OLD PW NEWUPDATE=/END ADDPWCON #4175 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. ADDPWARN - Add warnings if (1) the PW is one that was set by NEWUPDATE=/. the computing center rather than the user or (2) NEWUPDATE=/. if the password has been changed in a 'long' time. NEWUPDATE=/. Note: COPY:ACCFORMAT should really be a MACRO and then this NEWUPDATE=/. would work! NEWUPDATE=/. /BEGIN ADDPWARN NEWUPDATE=/. /COPY '*MACRO ' NEXT 'DSCT' NEWUPDATE=/. /COPY 'ACCDCT ' NEWUPDATE=/. /COPY '*' NEXT '14' NEWUPDATE=/. * 15 - PW SET BY CC NEWUPDATE=/. /COPY 'ACCPUSE ' NEWUPDATE=/. ACCPWCC EQU X'01' PW SET BY COMPUTING CENTER NEWUPDATE=/. /END ADDPWARN #4176 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. PWNORHS - Allow PW with no right hand side NEWUPDATE=/BEGIN PWNORHS NEWUPDATE=/COPY '*MACRO ' NEXT 'SETKWD' NEWUPDATE=/COPY 'SETKWD ' NEWUPDATE=SETSA1 DS 18F A SAVE AREA FOR KWSCAN NEWUPDATE=SETSA2 DS 18F A SAVE AREA FOR CONTROL, ... NEWUPDATE=SETPW1 DS CL12 COPY OF 1st USER PW NEWUPDATE=SETPW2 DS CL12 COPY OF 2nd USER PW NEWUPDATE=STCTLPAR DS 3A PAR LIST TO CALL CONTROL NEWUPDATE=/COPY '*MACRO ' NEXT 'RHTABLE' NEWUPDATE=/COPY BEFORE 'PWRHT ' NEWUPDATE=/SKIP C=1 NEWUPDATE=PWRHT DC AL1(3,0,2,1,12) . PW=something (1=>n<=12) NEWUPDATE= DC AL1(3,4,1,0) PW=nothing NEWUPDATE= DC AL1(7,4,0) PW all by itself NEWUPDATE=/END PWNORHS #4177 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. MOVEMAKE - MOVE THE MAKE MACRO OUT OF COPY:MTS.MACROS AND INTO NEWUPDATE=/. DSRI THE ONE AND ONLY PLACE IT IS USED. NEWUPDATE=/BEGIN MOVEMAKE NEWUPDATE=/COPY BEFORE '*MACRO ' NEXT 'MAKE' NEWUPDATE=/SKIP NEXT 'MEND' NEWUPDATE=/END MOVEMAKE #4178 DATE=Oct 31, 1978 PERSON=Ogden NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. LFRAX - KILL OFF THE SET LFR OPTION NEWUPDATE=/BEGIN LFRAX NEWUPDATE=/COPY BEFORE 'LFRBIT ' NEWUPDATE=/SKIP C=1 NEWUPDATE=* X'40' IS CURRENTLY UNUSED, WAS LFRBIT NEWUPDATE=/COPY BEFORE 'LFRRUN ' NEWUPDATE=/SKIP C=1 NEWUPDATE=* X'04' IS CURRENTLY UNUSED, WAS LFRRUN NEWUPDATE=/END LFRAX #4179 DATE=Oct 31, 1978 PERSON=Sherry NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. LXDCT - Add a new item ("LLXNTMOD") to LXDCT. NEWUPDATE=/BEGIN LXDCT NEWUPDATE=/COPY "*MACRO" NEXT "LXDCT" NEWUPDATE=/DELETE BLANKS "DS" BLANKS "X" SPAN(' .') "SPARE" NEWUPDATE=LLXNTMOD DS X @NOTIFY, @ERRRTN AND @NOPROMPT MODS NEWUPDATE=/END LXDCT #4180 DATE=Oct 31, 1978 PERSON=Sherry NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. LSWORD - Add a new bit definition for "IOERRBT". NEWUPDATE=/BEGIN LSWORD NEWUPDATE=/COPY "*MACRO" NEXT "LSWORD" NEWUPDATE=/DELETE "*" BLANKS "X'08'" ;* NO LONGER SPARE NEWUPDATE=IOERRBT EQU X'08' ON IF IO ERROR FROM INPUT ROUTINE NEWUPDATE=/END LSWORD #4181 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FMSGCMSG -- Make FMSG and CMSG macros call NEWMTS type routines NEWUPDATE=/. FMSGSUB and CMSGSUB when they are expanded in a NEWUPDATE=/. NEWMTS type routine. NEWUPDATE=/BEGIN FMSGCMSG NEWUPDATE=/COPY "*MACRO" NEXT "CMSG" NEWUPDATE=/COPY NEXT "GBLA" NEXT "&CNT" NEWUPDATE= GBLA &CURNON NONZERO IF IN NEWMTS ENVIRONMENT NEWUPDATE= LCLA &J,&K NEWUPDATE=/COPY C=1 NEWUPDATE= AIF (&CURNON NE 0).NEWMTS NEWUPDATE=/DELETE NEXT "MEND" NEWUPDATE= MEXIT NEWUPDATE=.* NEWUPDATE=.* NEWUPDATE=.NEWMTS ANOP NEWUPDATE=&J SETA K'&MSG ROUND LENGTH TO NEXT HALFWORD NEWUPDATE=&K SETA (&J+1)/2*2 NEWUPDATE=&CNT SETA &CNT+&K-&J ADJUST FOR ROUNDING NEWUPDATE= AIF ('&LBL' NE '').RET NEWUPDATE=&J SETA 1 SET INLOOP OPTION NEWUPDATE=.RET AIF ('&TYPE' EQ 'B').BOTH, * NEWUPDATE= ('&TYPE' EQ 'M').MSINK, * NEWUPDATE= ('&TYPE' EQ 'S').SINK NEWUPDATE= MNOTE 4,'ILLEGAL CMSG TYPE' NEWUPDATE=.BOTH ANOP NEWUPDATE=&J SETA &J+4+2 NEWUPDATE= AGO .L6 NEWUPDATE=.MSINK ANOP NEWUPDATE=&J SETA &J+4 NEWUPDATE= AGO .L6 NEWUPDATE=.SINK ANOP NEWUPDATE=&J SETA &J+2 NEWUPDATE=.L6 AIF ('&SL' EQ '').L6SKIP NEWUPDATE=&SL DS 0H NEWUPDATE=.L6SKIP AIF ('&LBL' EQ '').RCALL NEWUPDATE= STM GR14,GR2,0(GR12) SAVE REGISTERS ON STACK NEWUPDATE= LA GR12,5*4(,GR12) COVER THEM OVER NEWUPDATE=.RCALL RCALL CMSGSUB(A(&J),A(&K),A(G&SYSNDX)) NEWUPDATE= AIF ('&LBL' EQ '').L8 NEWUPDATE= LA GR15,5*4 NEWUPDATE= SR GR12,GR15 NEWUPDATE= LM GR14,GR2,0(GR12) RESTORE REGISTERS NEWUPDATE= AIF ('&LBL' NE '*').L7 NEWUPDATE= B *+4+&K NEWUPDATE= AGO .L8 NEWUPDATE=.L7 B &LBL NEWUPDATE=.L8 ANOP NEWUPDATE=G&SYSNDX DC CL&K&MSG NEWUPDATE= MEND NEWUPDATE=/COPY "*MACRO" NEXT "FMSG" NEWUPDATE=/COPY C=2 NEWUPDATE= GBLA &CURNON NONZERO IF IN NEWMTS ENVIRONMENT NEWUPDATE= LCLA &J NEWUPDATE= AIF (&CURNON NE 0).NEWMTS NEWUPDATE=/DELETE NEXT "MEND" NEWUPDATE= MEXIT NEWUPDATE=.* NEWUPDATE=.* NEWUPDATE=.NEWMTS AIF ('&LBL' NE '').RET NEWUPDATE=&J SETA 1 SET INLOOP OPTION NEWUPDATE=.RET AIF ('&TYPE' EQ 'B').BOTH, * NEWUPDATE= ('&TYPE' EQ 'M').MSINK, * NEWUPDATE= ('&TYPE' EQ 'S').SINK NEWUPDATE= MNOTE 4,'ILLEGAL FMSG TYPE' NEWUPDATE=.BOTH ANOP NEWUPDATE=&J SETA &J+4+2 NEWUPDATE= AGO .L6 NEWUPDATE=.MSINK ANOP NEWUPDATE=&J SETA &J+4 NEWUPDATE= AGO .L6 NEWUPDATE=.SINK ANOP NEWUPDATE=&J SETA &J+2 NEWUPDATE=.L6 AIF ('&SL' EQ '').L6SKIP NEWUPDATE=&SL DS 0H NEWUPDATE=.L6SKIP AIF ('&LBL' EQ '').RCALL NEWUPDATE= STM GR14,GR1,0(GR12) SAVE REGISTERS ON STACK NEWUPDATE= LA GR12,4*4(,GR12) COVER THEM OVER NEWUPDATE=.RCALL RCALL FMSGSUB(A(&J),A(&LNR)) NEWUPDATE= AIF ('&LBL' EQ '').MEND NEWUPDATE= LA GR15,4*4 NEWUPDATE= SR GR12,GR15 NEWUPDATE= LM GR14,GR1,0(GR12) RESTORE REGISTERS NEWUPDATE= AIF ('&LBL' EQ '*').MEND NEWUPDATE= B &LBL NEWUPDATE=.MEND MEND NEWUPDATE=/END FMSGCMSG #4182 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================ NEWUPDATE=/. REPLINN -- Replace LINNBRN subroutine with LINENBR subroutine NEWUPDATE=/. coded a la new MTS. Make changes to DSCT macro to NEWUPDATE=/. reflect this. NEWUPDATE=/BEGIN REPLINN NEWUPDATE=/COPY "*MACRO" NEXT "DSCT" NEWUPDATE=/DELETE "SFFGR14 " NEWUPDATE=/DELETE "SFFNOT " NEWUPDATE=* EQU 4 UNUSED - WAS SFFNOT NEWUPDATE=/DELETE "LNRN " NEWUPDATE=* EQU X'80' UNUSED - WAS LNRN NEWUPDATE=/COPY BEFORE "SDSINVSA " NEWUPDATE=PEELSAV DS 2A PEEL SAVE AREA NEWUPDATE=/COPY "*MACRO" NEXT "MTSTV" NEWUPDATE=/DELETE "LINNBR " NEWUPDATE= B 0 UNUSED -- WAS LINNBR NEWUPDATE=/DELETE "LINNBRN " NEWUPDATE= B 0 UNUSED -- WAS LINNBRN NEWUPDATE=/END REPLINN #4183 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. GIGO -- Add GETOUTTC and GETINTCC subroutines to MTS. NEWUPDATE=/BEGIN GIGO NEWUPDATE=/COPY "*MACRO" NEXT "DSCT" NEWUPDATE=/DELETE "ASETKEY " NEWUPDATE=/DELETE "ASETPRIV " NEWUPDATE=/DELETE "ASETFSAV " NEWUPDATE=/COPY "*MACRO" NEXT "MTSTV" NEWUPDATE=/COPY "PUTLNR " NEWUPDATE=GETOUTTC B 0 NEWUPDATE=/END GIGO #4184 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. CLEANUP1 -- Clean out MTSTV entry for CHKSER NEWUPDATE=/BEGIN CLEANUP1 NEWUPDATE=/COPY "*MACRO" NEXT "MTSTV" NEWUPDATE=/DELETE "CHKSER " NEWUPDATE= B 0 UNUSED -- WAS CHKSER NEWUPDATE=/END CLEANUP1 #4185 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. CMNDBUG -- Fix bug in CMND macro which causes wrong CMDSTAT NEWUPDATE=/. type to be picked up for the R abbreviation for NEWUPDATE=/. the RUN command. NEWUPDATE=/BEGIN CMNDBUG NEWUPDATE=/COPY "*MACRO" NEXT "CMND" NEWUPDATE=/DELETE "&T" NEXT "SETC" NEXT "'&CMDCT'" NEWUPDATE=&T SETC '&T'.' ' derive CMDSTAT type from command name NEWUPDATE= AIF ('&CMDCT' EQ '').GOTCT NEWUPDATE=&T SETC '&CMDCT'.' ' unless one explicitly given NEWUPDATE=.GOTCT ANOP NEWUPDATE=/END CMNDBUG #4186 DATE=Oct 31, 1978 PERSON=Helffrich NAME=MTS.MACROS NBR=344/1 BASE=D4.1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. NOPW -- Define mechanism whereby DSR may request that signon NEWUPDATE=/. not require password. NEWUPDATE=/BEGIN NOPW NEWUPDATE=/COPY "*MACRO" NEXT "FCBDSCT" NEWUPDATE=/DELETE " " NEXT "DS" NEXT "H" NEWUPDATE= DS X UNUSED NEWUPDATE=FCBSWS2 DS X ANOTHER SWITCH BYTE NEWUPDATE=FCBWFWLO EQU X'80' WAITFOR WAS LAST OP (ONLY SET/USED BY* NEWUPDATE= SOME DSRS) NEWUPDATE=/COPY "BNCHLNG " NEWUPDATE= SPACE 3 NEWUPDATE= ORG FCBLINK+4 FCB FOR OPER DSR NEWUPDATE=FCBOPBUF DS CL100 INPUT REGION FOR SVC READ NEWUPDATE=OPERLNG EQU *-FCBHDR NEWUPDATE=/COPY "*MACRO" NEXT "DSCT" NEWUPDATE=/COPY "SWS7 " NEWUPDATE=/DELETE "*" NEWUPDATE=NOPWN2 EQU 4 NO PW NEEDED BECAUSE DSR SAID SO NEWUPDATE=/COPY "*MACRO" NEXT "MTSCTAB" NEWUPDATE=/COPY "FTYPTBL " NEWUPDATE=/EDIT F=3 "FCBLINK-FCBHDR+4+100" = "OPERLNG" NEWUPDATE=/END NOPW #4187 DATE=Oct 31, 1978 PERSON=Ogden NAME=RATENBR NBR=651/10 NEWUPDATE=/. ================================================================= NEWUPDATE=/. HSLINE - The powers that be have changed the name of PRIVATE NEWUPDATE=/. LINES to HIGH SPEED LINES so we need to change the NEWUPDATE=/. code as well. NEWUPDATE=/BEGIN HSLINE NEWUPDATE=/COPY BEFORE 'RPRIVL ' NEWUPDATE=/EDIT 'RPRIVL' = 'RHSLINE' NEWUPDATE=/COPY 'NOTBATCH ' NEWUPDATE=/COPY BEFORE NEXT 'BE' NEXT 'TSTPVT' NEWUPDATE=/SKIP C=1 NEWUPDATE= BE TSTHSL YES - MAY BE A HIGH SPEED LINE NEWUPDATE=/COPY BEFORE 'TSTPVT ' NEWUPDATE=/EDIT HOLD 'TSTPVT' = 'TSTHSL' NEWUPDATE=/EDIT ' PVT LINE' = ' HS LINE' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT HOLD 'RPRIVL' = 'RHSLINE' NEWUPDATE=/EDIT 'PRIVATE LINES' = 'HIGH SPEED LINES' NEWUPDATE=/EDIT HOLD "=C'PRIVATE LINE,'" = "=C'HIGH SPEED LINE,'" NEWUPDATE=/EDIT '13' = '16' NEWUPDATE=/EDIT '13' = '16' NEWUPDATE=/END HSLINE #4188 DATE=Oct 31, 1978 PERSON=Ogden NAME=RATENBR NBR=651/10 NEWUPDATE=/. ================================================================= NEWUPDATE=/. SIGMCD - RATEVEC has moved into "THEDSECT" NEWUPDATE=/BEGIN SIGMCD NEWUPDATE=/COPY 'ENGLE ' NEWUPDATE=/COPY C=4 NEWUPDATE=/SKIP C=1 NEWUPDATE=/COPY C=4 NEWUPDATE=/SKIP C=1 NEWUPDATE=/END SIGMCD #4189 DATE=Oct 31, 1978 PERSON=Ogden NAME=USUB NBR=638/1 NEWUPDATE=/. ================================================================= NEWUPDATE=/. FREEDSCT - DON'T ALLOW ANYONE TO FREE THE MTS DSECT NEWUPDATE=/BEGIN FREEDSCT NEWUPDATE=/COPY 'FSBASE ' NEWUPDATE= LA GR15,0(,GR1) DON'T LET GO OF THE MTS DSECT NEWUPDATE= CR GR15,GR4 NEWUPDATE= BL FSD0 BELOW DSECT IS OK (SORT OF) NEWUPDATE= LA GR14,LASTDSCT-DSCT(,GR4) NEWUPDATE= CR GR15,GR14 BEYONE DSECT? NEWUPDATE= BL FSMTD NO, CAUGHT ONE NEWUPDATE=FSD0 DS 0H SAFE SO FAR NEWUPDATE=/COPY 'FSCHK ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT ' ' = 'FSMTD' NEWUPDATE=/END FREEDSCT ********** Sent November 6, 1978 ********** #4190 DATE=NOV. 9, 1978 PERSON=Ogden NAME=CONSIO NBR=634/3 BASE=RD15 DESCR=The version of CONSIO sent out on the RD15 tape (you remember the DESCR=code should have gone out on D4.1, but by mistake the D4.0 DESCR=version was sent instead) contains a bug (now, aren't you DESCR=glad we didn't send out the right version the first time). NEWUPDATE=/BEGIN FIXREAD NEWUPDATE=/. FIXREAD - This deck fixes a bug that was introduced NEWUPDATE=/. when CONSIO was changed to allow the NEWUPDATE=/. return of NULL lines. NEWUPDATE=/COPY 'CHKATN ' NEWUPDATE=/COPY NEXT 'LA' NEXT 'R0,CONSWCCW' NEWUPDATE= LH R1,CONSPATH DON'T TRUST TO FATE NEWUPDATE=/END FIXREAD COMMENTS=It took a long time for this bug to surface here at UM. COMMENTS=Depending on where CONSIO was loaded and what devices COMMENTS=were attached to what channels input requests directed COMMENTS=through CONSIO would or wouldn't work. #4191 DATE=NOV. 13, 1978 PERSON=Sherry NAME=LLXU NBR=354/1 BASE=RD15 DESCR=This update fixes a bug inadvertently introduced by the DESCR=XLCLEAN update of RD15 - a DROP GR10 statement was deleted DESCR=when the XLCLEAN subroutine was moved to become self-addressable. NEWUPDATE=/BEGIN DROP10 NEWUPDATE=/COPY "FGRC2" NEWUPDATE=/COPY NEXT "BR GR14" NEWUPDATE= SPACE NEWUPDATE= DROP GR10 NEWUPDATE=/END DROP10 COMMENTS=This bug manifested itself in GBSTOR near XLEIB(10) where COMMENTS=the maximum storage index number (MSIN) was reset to garbage COMMENTS=because GR10 instead of SCB was assembled as the base register COMMENTS=in the statement: COMMENTS= L SCD,GR14LSAV+4(GR1) ********** Sent November 13, 1978 ********** #4192 DATE=NOV. 13, 1978 PERSON=OGDEN NAME=TASKSTAT NBR=647/1 BASE=RD15 DESCR=THIS UPDATE FIXES A BUG IN THE RD15 VERSION OF TASKSTAT. DESCR=THE ERROR SHOULD ONLY OCCUR IN THOSE SYSTEMS RUNNING UBC DESCR=INTERTASK. NEWUPDATE=/BEGIN R3TOR2 NEWUPDATE=/. R3TOR2 - Fix TASKSTAT so that TSTATE values are NEWUPDATE=/. always stored off of R2 rahter than incorrectly NEWUPDATE=/. off of R3. NEWUPDATE=/COPY 'TRYITBSY ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'R3' = 'R2' NEWUPDATE=/COPY 'TRYITRDY ' NEWUPDATE=/COPY C=1 NEWUPDATE=/EDIT 'R3' = 'R2' NEWUPDATE=/END R3TOR2 #4193 DATE=November 20, 1978 PERSON=Engle NAME=SORT (SORT PGM PH 2) NBR=303/28 BASE=RDIST15 DESCR="Terminated" is spelled with an extra "t" in a warning message. NEWUPDATE=/B 4193 NEWUPDATE=/COP 'WARNMSG' NEWUPDATE=/S C=1 NEWUPDATE= ment is not terminated by the' NEWUPDATE=/EN #4194 DATE=November 28, 1978 PERSON=Tiffany NAME=*FTNTIDY NBR=727/1 BASE=D4.1 DESCR=The following fixes the PAUSE problem for *FTNTIDY. DESCR=Thanks from John Stevens for reporting. NEWUPDATE=/BEGIN *PAUSE* NEWUPDATE=/COPY 'QUOTE ' NEWUPDATE=/COPY COUNT=1 NEWUPDATE= CLC =C'PAUSE',STACK If PAUSE statement NEWUPDATE= BE OPEXIT then don't turn SKIPPING off. NEWUPDATE=/END *PAUSE* ********** Sent November 28, 1978 ********** #4195 DATE=January 12, 1978 PERSON=Tiffany NAME=*FTNTIDY NBR=727/1 BASE=D4.1 DESCR=The following fixes *FTNTIDY to treat 100 of the READ DESCR=statement in the example below as a label instead of an DESCR=ordinary number. DESCR= READ (IU'(INDEX),100) X DESCR= 100 FORMAT (F10.2) DESCR= END DESCR=Thanks from Gavin Eadie for reporting. NEWUPDATE=/BEGIN *READ* NEWUPDATE=/COPY "INCR1 " NEWUPDATE=/COPY BEFORE NEXT "BNE" NEXT "INCR2" NEWUPDATE=/EDIT "2" = "3" ; Change INCR2 to INCR3 NEWUPDATE=/COPY BEFORE "INCR2 " NEWUPDATE=/BUFFER INCR2 ; Move INCR2 code to just before INCR4 NEWUPDATE=/COPY BEFORE NEXT "BNE" NEXT "INCR3" ; Change all references in NEWUPDATE=/EDIT "3" = "4" ; the code from INCR3 to INCR4. NEWUPDATE=/COPY BEFORE NEXT "BZ" NEXT "INCR3" NEWUPDATE=/EDIT "3" = "4" NEWUPDATE=/COPY BEFORE NEXT "BNZ" NEXT "INCR3" NEWUPDATE=/EDIT "3" = "4" NEWUPDATE=/COPY BEFORE "INCR3 " NEWUPDATE=/BUFFER END NEWUPDATE=/COPY BEFORE NEXT "BZ" NEXT "INCR4" NEWUPDATE=/EDIT "4" = "2" ; Change all references in the INCR3 NEWUPDATE=/COPY BEFORE NEXT "BP" NEXT "INCR4" ; code from "INCR4" to "INCR2". NEWUPDATE=/EDIT "4" = "2" NEWUPDATE=/COPY BEFORE "INCR4 " NEWUPDATE=/INCLUDE INCR2 ; Include INCR2 code here. NEWUPDATE=/END *READ* COMMENTS=After a call to CLEAN from IOEXP, the return should be COMMENTS=made with the stack pointer at the comma in the example COMMENTS=above instead of the first right parenthesis. ********** Sent January 23, 1979 **********