!***COPYRIGHT (C) 1974, 1975, 1976, 1977 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*** ! *** LAST MODIFIED BY ILG ON 30 DEC 76 MODULE MIS2(SREG = #17, FREG = #16, VREG = #15, MLIST,TIMER=EXTERNAL(SIX12),FSAVE)= BEGIN GLOBAL BIND MS2 = 2; REQUIRE MGNMAC.BLI; REQ(MGNEXT); REQ(MGNMC2); OWN MALL; EXTERNAL PUTBLK, PUTWORD, GETBLK, GETWORD, SIBSAMENAME, TRCODESAME, MPRSAMENAME, MAKTRCODE; BIND SYSNAMELEN = 24 %CHARACTERS% , SYSNAMESIZE = SYSNAMELEN / 5 + 1, MC0LEN = 8 %CHARACTERS%, MC0SIZE = MC0LEN / 5 + 1; EXTERNAL ! EXTERNAL ROUTINES MAKEMISC, DELPSWRDS; EXTERNAL MISCDEFFLAG, ERRLEAF, ERRMPR, TRCLEN, TRCSIZE, SYSNAME, MAXSLOTS, PASSWORDS, PBQUOTA, MC0ALL, MC0DFERRED, MC0IMMEDIATE, MC0DFAULT, SOT, SOTRC, TRCDL, TRCDLC, SDMOQ, GOTCODE, SON, ! NOTE SON,SOFF,RDM, & RDMC ARE NOT QUITE CORRECT SOFF, RDM, RDMC, INJOURNALLING, OUTJOURNALLING, JSPEC1, JSPEC2, MPPLOGGING, MSPEC1, MSPEC2, FAILSOFT, ROLLING, FSFILESPEC, FSSIZE, ESI, EMI, EGI, EPI; FORWARD DSYSNAME, DMAXSLOTS, DPASSWORDS, DPBQUOTA, DMCLASS, DMC0DFAULT,DSOT,DSOTRC, DTRCLEN,DTRCDL, DSDMOQ, DTRCODES, DJOURNALLING, DINJOURNALLING, DOUTJOURNALLING, DJSPECS, DMLOGGING, DFAILSOFT, DROLLING, DFAILFILE, DCODES, DFAILSIZE ; GLOBAL ROUTINE DISPMISC = BEGIN IF NOT NULL( PRIM, N0NAMELEN * MAXLEVEL ) THEN BEGIN ERROR( 94 ); % GARBAGE AFTER THE COMMAND% RETURN END; IF NOT .MISCDEFFLAG THEN BEGIN OUTPUT( 'MISCELLANOUS INFORMATION UNDEFINED, PLEASE MAKE?M?J' ); RETURN END; DSYSNAME(); DMAXSLOTS(); DPASSWORDS(); DJOURNALLING(); IF .INJOURNALLING OR .OUTJOURNALLING THEN DJSPECS(); DMLOGGING(); DFAILSOFT(); DROLLING(); DFAILFILE(); DFAILSIZE(); DMCLASS(); DMC0DFAULT(); DSDMOQ(); DPBQUOTA(); DSOTRC(); DTRCLEN(); DTRCDL(); DSOT(); DTRCODES(); DCODES(); OUTPUTCRLF; OUTPUTCRLF END; ROUTINE DSYSNAME = BEGIN OUTPUT( 'NAME OF THE SYSTEM: ' ); XOUTPUT( SYSNAME ); OUTPUTCRLF END; ROUTINE DMAXSLOTS = BEGIN OUTPUT( 'MAXIMUM NUMBER OF JOB SLOTS FOR MCS: ' ); OUTPUTD( .MAXSLOTS ); OUTPUTCRLF END; ROUTINE DPASSWORDS = BEGIN REGISTER PSWRDPTR; MAP FORMAT PSWRDPTR; OUTPUT( 'PASSWORDS: ' ); IF .PASSWORDS EQL 0 THEN OUTPUT( '?M?J' ) ELSE BEGIN PSWRDPTR _ .PASSWORDS; WHILE .PSWRDPTR NEQ 0 DO BEGIN XOUTPUT( PSWRDPTR[PW0WORD] ); OUTPUTCRLF; PSWRDPTR _ .PSWRDPTR[PW0FORE]; IF .PSWRDPTR NEQ 0 THEN OUTPUT( ' ' ) END END END; ROUTINE DPBQUOTA = BEGIN OUTPUT( 'DEFERRED MESSAGE (PIGGYBACK) QUOTA: ' ); OUTPUTD( .PBQUOTA ); OUTPUTCRLF END; ROUTINE DMCLASS = BEGIN OUTPUT( 'MESSAGE CLASS CODES:?M?J' ); OUTPUT( ' ALL: ' ); IF .MC0ALL NEQ 0 THEN XOUTPUT( MC0ALL<36, 7> ) ELSE OUTPUT( '' ); OUTPUTCRLF; OUTPUT( ' DEFERRED: ' ); IF .MC0DFERRED NEQ 0 THEN XOUTPUT( MC0DFERRED<36, 7> ) ELSE OUTPUT( '' ); OUTPUTCRLF; OUTPUT( ' IMMEDIATE: ' ); IF .MC0IMMEDIATE NEQ 0 THEN XOUTPUT( MC0IMMEDIATE<36, 7> ) ELSE OUTPUT( '' ); OUTPUTCRLF END; ROUTINE DMC0DFAULT = BEGIN OUTPUT( 'DEFAULT MESSAGE CLASS: ' ); XOUTPUT( CASE .MC0DFAULT OF SET %0% PAZ 'IMMEDIATE'; %1% PAZ 'DEFERRED'; %2% PAZ 'ALL'; TES ); OUTPUTCRLF END; ROUTINE DSOT = BEGIN OUTPUT( 'STARTING POSITION OF MSG TXT: ' ); OUTPUTD( .SOT ); OUTPUTCRLF END; ROUTINE DSOTRC = BEGIN OUTPUT( 'TRCODE STARTING POSITION: ' ); OUTPUTD( .SOTRC ); OUTPUTCRLF END; ROUTINE DTRCLEN = BEGIN OUTPUT( ' LENGTH: ' ); OUTPUTD( .TRCLEN ); OUTPUTCRLF END; ROUTINE DTRCDL = BEGIN OUTPUT( ' DELIMITER: ' ); IF .TRCDL THEN OUTPUTBITS( TRCDLC, 1 ) ELSE OUTPUT( '' ); OUTPUTCRLF END; ROUTINE DSDMOQ = BEGIN OUTPUT( 'SIGNON DEFERRED MESSAGE OUTPUT QUOTA: ' ); OUTPUTD( .SDMOQ ); OUTPUTCRLF END; ROUTINE DTRCODES = BEGIN MAP FORMAT SON; MAP FORMAT SOFF; MAP FORMAT RDM; MAP FORMAT RDMC; OUTPUT('TRANSACTION CODES FOR:?M?J'); OUTPUT( ' SIGNON: ' ); IF .SON EQL 0 THEN OUTPUT('') ELSE OUTPUTBITS( SON[ TR0CODE ], .SON[ TR0CHAR ] ); OUTPUTCRLF; OUTPUT( ' SIGNOFF: ' ); IF .SOFF EQL 0 THEN OUTPUT('') ELSE OUTPUTBITS( SOFF[ TR0CODE ], .SOFF[ TR0CHAR ] ); OUTPUTCRLF; OUTPUT( ' REQUEST DEFERRED MESSAGES: ' ); IF .RDM EQL 0 THEN OUTPUT('') ELSE OUTPUTBITS( RDM[ TR0CODE ], .RDM[ TR0CHAR ] ); OUTPUTCRLF; OUTPUT( ' REQUEST DEFERRED MESSAGE COUNT: ' ); IF .RDMC EQL 0 THEN OUTPUT('') ELSE OUTPUTBITS( RDMC[ TR0CODE ], .RDMC[ TR0CHAR ] ); OUTPUTCRLF END; ROUTINE DJOURNALLING = BEGIN DINJOURNALLING(); DOUTJOURNALLING() END; ROUTINE DINJOURNALLING = BEGIN IF NOT .INJOURNALLING THEN OUTPUT( 'NO ' ); OUTPUT( 'INPUT MESSAGE JOURNALLING TO BE DONE' ); OUTPUTCRLF END; ROUTINE DOUTJOURNALLING = BEGIN IF NOT .OUTJOURNALLING THEN OUTPUT( 'NO ' ); OUTPUT( 'OUTPUT MESSAGE JOURNALLING TO BE DONE' ); OUTPUTCRLF END; ROUTINE SPECNOTNULL( SPEC ) = BEGIN INCR I FROM 0 TO SPECBLKLEN - 1 DO IF .(.SPEC)[.I] NEQ 0 THEN RETURN TRUE; FALSE END; ROUTINE DJSPECS = BEGIN OUTPUT( 'JOURNALLING FILES: ' ); IF SPECNOTNULL( JSPEC1 ) THEN OUTPUTFSPEC( JSPEC1 ) ELSE OUTPUT( '' ); OUTPUTC( "," ); IF SPECNOTNULL( JSPEC2 ) THEN OUTPUTFSPEC( JSPEC2 ) ELSE OUTPUT( '' ); OUTPUTCRLF END; ROUTINE DMLOGGING = BEGIN IF NOT .MPPLOGGING THEN OUTPUT( 'NO ' ); OUTPUT( 'MPP LOGGING TO BE DONE' ); OUTPUTCRLF; IF NOT .MPPLOGGING THEN RETURN; OUTPUT( 'MPP LOGGING FILE: ' ); IF SPECNOTNULL( MSPEC1 ) THEN OUTPUTFSPEC( MSPEC1 ) ELSE OUTPUT( '' ); OUTPUTC( "," ); IF SPECNOTNULL( MSPEC2 ) THEN OUTPUTFSPEC( MSPEC2 ) ELSE OUTPUT( '' ); OUTPUTCRLF END; ROUTINE DFAILSOFT = BEGIN IF NOT .FAILSOFT THEN OUTPUT( 'NO ' ); OUTPUT( 'FAILSOFTING TO BE DONE' ); OUTPUTCRLF END; ROUTINE DROLLING = BEGIN IF NOT .ROLLING THEN OUTPUT( 'NO ' ); OUTPUT( 'ROLLOUT TO BE DONE' ); OUTPUTCRLF END; ROUTINE DFAILFILE = BEGIN IF .FAILSOFT OR .ROLLING THEN BEGIN OUTPUT( 'FAILSOFT/ROLLOUT FILE: ' ); OUTPUTFSPEC( FSFILESPEC ); OUTPUTCRLF END END; ROUTINE DFAILSIZE = BEGIN OUTPUT( 'FAILSOFT/ROLLOUT FILE INITIAL SIZE: ' ); OUTPUTD ( IF .FSSIZE GEQ 0 THEN .FSSIZE/1152 ELSE -.FSSIZE/1152); OUTPUT(' SECTIONS'); OUTPUTCRLF; IF .FSSIZE GEQ 0 THEN OUTPUT('FAILSOFT/ROLLOUT FILE IS EXTENDABLE') ELSE OUTPUT('FAILSOFT/ROLLOUT FILE IS NOT EXTENDABLE'); OUTPUTCRLF END; ROUTINE DCODES = BEGIN OUTPUT( 'ASCII TRANSMISSION CODES:?M?J' ); OUTPUT( ' ESI = ' ); OUTPUTO( .ESI ); OUTPUTCRLF; OUTPUT( ' EMI = ' ); OUTPUTO( .EMI ); OUTPUTCRLF; OUTPUT( ' EGI = ' ); OUTPUTO( .EGI ); OUTPUTCRLF; OUTPUT( ' EPI = ' ); OUTPUTO( .EPI ); OUTPUTCRLF END; FORWARD TELLMISCCHANGES, MMALL, MMSYSNAME, MMMAXSLOTS, MMPASSWORDS, MMPBQUOTA, MMMCLASS, MMMC0DFAULT, MMSOT, MMSOTRC, MMTRCLEN, MMTRCDL, MMSDMOQ, MMTRCODES, MMJOURNALLING, MMINJOURNALLING, MMOUTJOURNALLING, MMJSPECS, MMMLOGGING, MMFAILSOFT, MMROLLING, MMFAILFILE, MMCODES, MMFAILSIZE ; COMMENT; ! ROUTINE MODIMISC ! ======= ======= ! THIS ROUTINE ASKS FOR THE CHANGES TO BE MADE TO MISC INFO GLOBAL ROUTINE MODIMISC = BEGIN OWN DONE; %LOCAL% ROUTINE SETDONE = DONE _ TRUE; MALL _ FALSE; IF NOT NULL( PRIM, N0NAMELEN * MAXLEVEL ) THEN BEGIN ERROR( 94 ); % GARBAGE AFTER THE COMMAND% RETURN END; IF NOT .MISCDEFFLAG THEN ! IF UNDEFINED THEN BEGIN MAKEMISC() ! MAKE IT END ELSE BEGIN DONE _ FALSE; WHILE NOT .DONE DO ! OTHERWISE, UNTIL THE USER GIVES US A LONE DO BEGIN ASKSTR( '[CHANGE: ??]', ! ASK WHAT CHANGES PLIT( ASCII '??', TELLMISCCHANGES, ASCII 'SYSNA', MMSYSNAME, ASCII 'MAXSL', MMMAXSLOTS, ASCII 'PASSW', MMPASSWORDS, ASCII 'JOURN', MMJOURNALLING, ASCII 'MLOGG', MMMLOGGING, ASCII 'FAILS', MMFAILSOFT, ASCII 'ROLLI', MMROLLING, ASCII 'FAILF', MMFAILFILE, ASCII 'SIZEF', MMFAILSIZE, ASCII 'MCLAS', MMMCLASS, ASCII 'MCDEF', MMMC0DFAULT, ASCII 'SDMOQ', MMSDMOQ, ASCII 'PBQUO', MMPBQUOTA, ASCII 'SOTRC', MMSOTRC, ASCII 'TRCLE', MMTRCLEN, ASCII 'TRCDE', MMTRCDL, ASCII 'SOT', MMSOT, ASCII 'TRCOD', MMTRCODES, ASCII 'CODES', MMCODES, ASCII 'ALL', MMALL, 0, SETDONE), 0 ); CRLF END END END; COMMENT; ! ROUTINE TELLMISCCHANGES ! ======= =============== ! THIS ROUTINE TELLS ( WITH LOTS OF WIND ) WHAT CHANGES CAN BE MADE ON ! MISC INFO ROUTINE TELLMISCCHANGES = BEGIN TYPE( 'TYPE [SYSNAME] TO CHANGE THE SYSTEM NAME[(,)]?J ?MTYPE [MAXSLOTS] TO CHANGE THE NUMBER OF JOBSLOTS[(,)]?J ?MTYPE [PASSWORDS] TO CHANGE THE PASWORDS[(,)]?J ?MTYPE [JOURNALLING] TO CHANGE THE JOURNALLING[(,)]?J ?MTYPE [MLOGGING] TO CHANGE THE MPP TRAFFIC LOGGING[(,)]?J ?MTYPE [FAILSOFTING] TO CHANGE THE FAILSOFTING FLAG[(,)]?J ?MTYPE [ROLLING] TO CHANGE THE ROLLING FLAG[(,)]?J ?MTYPE [FAILFILE] TO CHANGE THE FAILSOFT FILE SPEC[(,)]?J ?MTYPE [SIZEFAIL] TO CHANGE THE FAILSOFT FILE SIZE[(,)]?J ?MTYPE [MCLASS] TO CHANGE THE MESSAGE CLASS CODES[(,)]?J ?MTYPE [MCDEFAULT] TO CHANGE THE MESSAGE CLASS DEFAULT[(,)]?J ?MTYPE [SDMOQ] TO CHANGE THE SIGNON DEFERRED MESSAGE OUTPUT QUOTA[(,)]?J ?MTYPE [PBQUOTA] TO CHANGE THE PIGGY BACK OUTPUT QUOTA[(,)]?M?J' ); TYPE('?MTYPE [SOTRC] TO CHANGE THE STARTING POSITION OF THE TRANSACTION CODE FIELD[(,)]?J ?MTYPE [TRCLENGTH] TO CHANGE THE MAXIMUM LENGTH OF THE TRANSACTION CODE FIELD[(,)]?J ?MTYPE [TRCDELIMITER] TO CHANGE THE DELIMITER CHARACTER OF THE TRANSACTION CODE FIELD[(,)]?J ?MTYPE [SOT] TO CHANGE THE START OF TEXT[(,)]?J ?MTYPE [TRCODE] TO CHANGE THE TRANSACTION CODES FOR SIGNON, SIGNOFF, REQUEST DEFERRED MESSAGES, AND' ); TYPE ( ' REQUEST DEFERRED MESSAGE COUNT[(,)]?J ?MTYPE [CODES] TO CHANGE THE ASCII TRANSMISSION CODES FOR THE END INDICATORS[(,)]?J ?MTYPE [ALL] TO CHANGE ALL OF THE ABOVE[,]?J ?MTYPE A CARRIAGE RETURN TO FINISH CHANGING THIS MPP[(?R( WHEN DONE?R))]'); CRLF END; COMMENT; ! ROUTINE MMALL ! ======= ======== ! THIS ROUTINE ASKS ALL THE QUESTIONS TO CHANGE MISC INFO ROUTINE MMALL = BEGIN MALL _ TRUE; MMSYSNAME(); MMMAXSLOTS(); MMPASSWORDS(); MMJOURNALLING(); MMMLOGGING(); MMFAILSOFT(); MMROLLING(); MMFAILFILE(); MMFAILSIZE(); MMMCLASS(); MMMC0DFAULT(); MMSDMOQ(); MMPBQUOTA(); MMSOTRC(); MMTRCLEN(); MMTRCDL(); MMSOT(); MMTRCODES(); MMCODES() END; ROUTINE MMSYSNAME = BEGIN LOCAL NEWSYSNAME[SYSNAMESIZE]; IF .SHOW THEN DSYSNAME(); IF ( ASKCHARS( '[NEW NAME OF THE SYSTEM]?R(,?R)[: ??]', NEWSYSNAME, SYSNAMELEN ) ) EQL CRONLY THEN RETURN; ! ELSE ! MOVE( %FROM% NEWSYSNAME, %TO% SYSNAME, SYSNAMESIZE %WORDS% ) END; ROUTINE MMMAXSLOTS = BEGIN OWN NEWMAXSLOTS; IF .SHOW THEN DMAXSLOTS(); NEWMAXSLOTS _ ASKDNUM( '[NEW MAX]IMUM NUMBER OF[ JOB SLOTS] FOR MCS?R(,?R)[: ??]', DEFAULTOK, -1, 1, BIGNUMBER ); IF .NEWMAXSLOTS GEQ 0 THEN MAXSLOTS _ .NEWMAXSLOTS END; ROUTINE MMPASSWORDS = BEGIN EXTERNAL STOREPSWRDS; IF .SHOW THEN DPASSWORDS(); IF ( ASKLINE( '[PASSWORDS]?R(,"", ?R)[: ??]' ) ) THEN RETURN; ! ELSE ! IF MATCHALINE( NONE ) THEN BEGIN DELPSWRDS(); RETURN END; GATHER( ALINE, ACHAR, PRIM, PW0LEN ); IF NOT EOL( ACHAR ) THEN ERROR( 9 ); NOTE - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IF .PRIM NEQ 0 THEN DELPSWRDS(); WHILE .PRIM NEQ 0 DO BEGIN STOREPSWRDS(); ASKNAME( '[ ??]', PW0LEN) END END; ROUTINE MMPBQUOTA = BEGIN OWN NEWPBQUOTA; IF .SHOW THEN DPBQUOTA(); NEWPBQUOTA _ ASKDNUM( '[NEW DEFERRED MESSAGE ]?R(PIGGYBACK?R) QUOTA?R(,?R)[: ??]', DEFAULTOK, -1, 0, BIGNUMBER ); IF .NEWPBQUOTA GEQ 0 THEN PBQUOTA _ .NEWPBQUOTA END; ROUTINE MMMCLASS = BEGIN LABEL LOOP1, LOOP2, LOOP3; IF .SHOW THEN DMCLASS(); TYPE( '[NEW MESSAGE CLASS CODES FOR?M?J]'); LOOP1: REPEAT BEGIN IF NOT ( ASKLINE( '[ ALL]?R(,,""?R)[: ??]' ) ) THEN BEGIN IF MATCHALINE( NONE ) THEN BEGIN ZERO( MC0ALL, MC0ALL + MC0SIZE ); LEAVE LOOP1 END ELSE BEGIN GATHER( ALINE, ACHAR, PRIM, MC0LEN ); IF COMPARE( PRIM, MC0DFERRED, MC0SIZE ) OR COMPARE( PRIM, MC0IMMEDIATE, MC0SIZE ) THEN BEGIN ERROR( 118 ); WARN( 0 ) END ELSE BEGIN MOVE( PRIM, MC0ALL, MC0SIZE ); LEAVE LOOP1 END END END ELSE LEAVE LOOP1 END; LOOP2: REPEAT BEGIN IF NOT ( ASKLINE( '[ DEFERRED]?R(,,""?R)[: ??]' ) ) THEN BEGIN IF MATCHALINE( NONE ) THEN BEGIN ZERO( MC0DFERRED, MC0DFERRED + MC0SIZE ); LEAVE LOOP2 END ELSE BEGIN GATHER( ALINE, ACHAR, PRIM, MC0LEN ); IF COMPARE( PRIM, MC0ALL, MC0SIZE ) OR COMPARE( PRIM, MC0IMMEDIATE, MC0SIZE ) THEN BEGIN ERROR( 118 ); WARN( 0 ) END ELSE BEGIN MOVE( PRIM, MC0DFERRED, MC0SIZE ); LEAVE LOOP2 END END END ELSE LEAVE LOOP2 END; LOOP3: REPEAT BEGIN IF NOT ( ASKLINE( '[ IMMEDIATE]?R(,,""?R)[: ??]' ) ) THEN BEGIN IF MATCHALINE( NONE ) THEN BEGIN ZERO( MC0IMMEDIATE, MC0IMMEDIATE + MC0SIZE ); LEAVE LOOP3 END ELSE BEGIN GATHER( ALINE, ACHAR, PRIM, MC0LEN ); IF COMPARE( PRIM, MC0DFERRED, MC0SIZE ) OR COMPARE( PRIM, MC0ALL, MC0SIZE ) THEN BEGIN ERROR( 118 ); WARN( 0 ) END ELSE BEGIN MOVE( PRIM, MC0IMMEDIATE, MC0SIZE ); LEAVE LOOP3 END END END ELSE LEAVE LOOP3 END END; ROUTINE MMMC0DFAULT = BEGIN %LOCAL% ROUTINE SETIMM = BEGIN MC0DFAULT _ 0 END; %LOCAL% ROUTINE SETDEF = BEGIN MC0DFAULT _ 1 END; %LOCAL% ROUTINE SETALL = BEGIN MC0DFAULT _ 2 END; IF .SHOW THEN DMC0DFAULT();; ASKSTR( '[NEW DEFAULT MESSAGE CLASS] IF NONE SPECIFIED BY THE COBOL PROGRAM?R(,IMMEDIATE,DEFERRED,ALL?R)[: ??]', PLIT( ASCII 'IMMED', SETIMM, ASCII 'DEFER', SETDEF, ASCII 'ALL', SETALL, 0, IGNORE ), 0 ) END; ROUTINE MMSOT = BEGIN OWN NEWSOT; IF .SHOW THEN DSOT(); NEWSOT _ ASKDNUM( '[NEW STARTING POSITION OF MSG TXT]?R(,?R)[: ??]', DEFAULTOK, -1, .SOTRC + .TRCLEN, BIGNUMBER ); IF .NEWSOT GEQ 0 THEN SOT _ .NEWSOT END; ROUTINE MMSOTRC = BEGIN OWN NEWSOTRC; IF .SHOW THEN DSOTRC(); NEWSOTRC _ ASKDNUM( '[NEW TRCODE STARTING POSITION]?R(,?R)[: ??]', DEFAULTOK, -1, 0, .SOT - .TRCLEN ); IF .NEWSOTRC GEQ 0 THEN SOTRC _ .NEWSOTRC END; ROUTINE MMTRCLEN = BEGIN OWN NEWTRCLEN; IF .SHOW THEN DTRCLEN(); NEWTRCLEN _ ASKDNUM( '[ NEW LENGTH]?R(,?R)[: ??]', DEFAULTOK, -1, 1, .SOT - .SOTRC ); IF .NEWTRCLEN GEQ 0 THEN BEGIN TRCLEN _ .NEWTRCLEN; TRCSIZE _ .TRCLEN / 5 + 2 END END; ROUTINE MMTRCDL = BEGIN OWN NEWTRCDL; IF .SHOW THEN DTRCDL(); NEWTRCDL _ ASKYESORNO( '[ DO YOU WANT A DELIMETER]?R(,YES,NO?R)[: ??]', -1 ); IF .NEWTRCDL EQL -1 THEN RETURN; ! ELSE ! TRCDL _ .NEWTRCDL; IF .NEWTRCDL EQL YES THEN IF ( ASKBITS( '[ NEW DELIMITER]?R(?R)[: ??]', TRCDLC, 1 ) ) EQL CRONLY THEN BEGIN WARN( 9 ); TRCDL _ FALSE END; IF NOT .TRCDL THEN TRCDLC _ 0 END; ROUTINE HISTMMSOTID = BEGIN OWN HISTNEWSOTID; END; ROUTINE HISTMMTIDLEN = BEGIN OWN HISTNEWTIDLEN; END; ROUTINE HISTMMTIDEL = BEGIN OWN HISTNEWTIDEL; END; ROUTINE MMSDMOQ = BEGIN OWN NEWSDMOQ; IF .SHOW THEN DSDMOQ(); NEWSDMOQ _ ASKDNUM( '[NEW SIGNON DEFERRED MESSAGE OUTPUT QUOTA]?R(,?R)[: ??]', DEFAULTOK, -1, 0, BIGNUMBER ); IF .NEWSDMOQ GEQ 0 THEN SDMOQ _ .NEWSDMOQ END; ROUTINE MMTRCODES = BEGIN %LOCAL% ROUTINE ASKNEWTRCODE( NAME, TRCODEPTR ) = BEGIN REGISTER TRCODE; OWN FAKEPTR, NEWGIVEN; MAP FORMAT TRCODE; MAP ROOTFORMAT FAKEPTR; TRCODE _ ..TRCODEPTR; MAKTRCODE(.NAME, FAKEPTR, NEWGIVEN); IF .NEWGIVEN THEN BEGIN PMEM(.TRCODE, .TRCODE[TR0SIZE]); .TRCODEPTR _ .FAKEPTR END ELSE PMEM(.FAKEPTR, .FAKEPTR[TR0SIZE]); END; ! BEGIN ! IF .SHOW THEN DTRCODES(); TYPE( '[NEW TRCODES FOR:?M?J]' ); ASKNEWTRCODE( PAZ 'SIGNON ', SON ); ASKNEWTRCODE( PAZ 'SIGNOFF ', SOFF ); ASKNEWTRCODE( PAZ 'REQUEST DEFERRED MESSAGE ', RDM ); ASKNEWTRCODE( PAZ 'REQUEST DEFERRED MESSAGE COUNT ', RDMC ) END; COMMENT; ROUTINE MMJOURNALLING = BEGIN OWN HIST4; !USED TO BE NEWJOURNALLING, LEFT FOR "#$%!#$ BIN FILES OWN HISTNEWMAXCPS; !HIST:NEWMAXCPS OWN HISTNEWMAXSPM; !HIST:NEWMAXSPM OWN HISTNEWMAXMPG; !HIST:NEWMAXMPG MMINJOURNALLING(); MMOUTJOURNALLING(); IF .INJOURNALLING OR .OUTJOURNALLING THEN MMJSPECS() END; ROUTINE MMINJOURNALLING = BEGIN OWN NEWINJOURNALLING; IF .SHOW THEN DINJOURNALLING(); NEWINJOURNALLING _ ASKYESORNO( '[INPUT MESSAGE JOURNALLING]?R(,YES,NO?R)[: ??]', -1); IF .NEWINJOURNALLING NEQ -1 THEN INJOURNALLING _ .NEWINJOURNALLING END; ROUTINE MMOUTJOURNALLING = BEGIN OWN NEWOUTJOURNALLING; IF .SHOW THEN DOUTJOURNALLING(); NEWOUTJOURNALLING _ ASKYESORNO( '[OUTPUT MESSAGE JOURNALLING]?R(,YES,NO?R)[: ??]', -1); IF .NEWOUTJOURNALLING NEQ -1 THEN OUTJOURNALLING _ .NEWOUTJOURNALLING END; ROUTINE MMJSPECS = BEGIN MAP ROOTFORMAT JSPEC1; IF .SHOW THEN DJSPECS(); NEWASK2FSPEC( '[NEW JOURNALLING FILES]?R(?R)[: ??]', JSPEC1, JSPEC2 ); WHILE (.JSPEC1[SB0NAME] OR .JSPEC1[SB0DEVICE]) EQL 0 DO BEGIN ERROR(127); NEWASK2FSPEC( '[NEW JOURNALLING FILES]?R(?R)[: ??]', JSPEC1, JSPEC2 ) END END; ROUTINE MMMLOGGING = BEGIN OWN NEWMPPLOGGING; MAP ROOTFORMAT MSPEC1; IF .SHOW THEN DMLOGGING(); NEWMPPLOGGING _ ASKYESORNO( '[MPP LOGGING TO BE DONE]?R(,YES,NO?R)[: ??]', -1); IF .NEWMPPLOGGING NEQ -1 THEN MPPLOGGING _ .NEWMPPLOGGING; IF .MPPLOGGING THEN BEGIN MAP ROOTFORMAT MSPEC1; NEWASK2FSPEC( '[MPP LOGGING FILE]?R(?R)[: ??]', MSPEC1, MSPEC2 ); WHILE (.MSPEC1[SB0NAME] OR .MSPEC1[SB0DEVICE]) EQL 0 DO BEGIN ERROR(128); NEWASK2FSPEC( '[MPP LOGGING FILE]?R(?R)[: ??]', MSPEC1, MSPEC2 ) END END END; ROUTINE MMFAILSOFT = BEGIN OWN NEWFAILSOFT; IF .SHOW THEN DFAILSOFT(); NEWFAILSOFT _ ASKYESORNO( '[FAILSOFTING TO BE DONE]?R(,YES,NO?R)[: ??]', -1); IF .NEWFAILSOFT NEQ -1 THEN BEGIN IF NOT .FAILSOFT AND NOT .ROLLING AND .NEWFAILSOFT AND NOT .MALL THEN BEGIN FAILSOFT _ .NEWFAILSOFT; MMFAILFILE(); MMFAILSIZE() END; FAILSOFT _ .NEWFAILSOFT END END; ROUTINE MMROLLING = BEGIN OWN NEWROLLING; IF .SHOW THEN DROLLING(); NEWROLLING _ ASKYESORNO( '[ROLLOUT TO BE DONE]?R(,YES,NO?R)[: ??]', -1); IF .NEWROLLING NEQ -1 THEN BEGIN IF NOT .FAILSOFT AND NOT .ROLLING AND .NEWROLLING AND NOT .MALL THEN BEGIN ROLLING _ .NEWROLLING; MMFAILFILE(); MMFAILSIZE() END; ROLLING _ .NEWROLLING END END; ROUTINE MMFAILFILE = BEGIN OWN FILESPEC[ SPECBLKLEN ]; IF NOT ( .ROLLING OR .FAILSOFT ) THEN RETURN; IF .SHOW THEN DFAILFILE(); IF ( ASKFSPEC( '[FAILSOFT/ROLL FILE ]?R(,"MCS.QQQ", ?R)[: ??]', FILESPEC ) ) NEQ CRONLY THEN MOVE( FILESPEC, FSFILESPEC, SPECBLKLEN ) END; ROUTINE MMFAILSIZE = BEGIN OWN NEWFSSIZE; IF .SHOW THEN DFAILSIZE(); NEWFSSIZE _ ASKDNUM( '[NEW INITIAL SIZE IN SECTIONS]?R(?R)[: ??]', DEFAULTOK, -1, 1, 56 ); IF .NEWFSSIZE GEQ 0 THEN FSSIZE _ 1152 * (IF .FSSIZE GEQ 0 THEN .NEWFSSIZE ELSE -.NEWFSSIZE); SELECT ASKYESORNO('[IS FILE EXTENDABLE]?R(YES,NO?R)[: ??]',-1) OF NSET -1 : ; %DO NOTHING % TRUE: IF .FSSIZE LSS 0 THEN FSSIZE _ -.FSSIZE; FALSE : IF .FSSIZE GEQ 0 THEN FSSIZE _ -.FSSIZE; TESN; END; ROUTINE MMCODES = BEGIN OWN NEWESI, NEWEMI, NEWEGI, NEWEPI; IF .SHOW THEN DCODES(); TYPE( 'WHAT ARE THE [NEW ASCII] TRANSMISSION[ CODES] FOR[:?M?J]' ); NEWESI _ ASKONUM( '[ ESI]?R(,?R)[: ??]', DEFAULTOK, -1, 0, 127 ); IF .NEWESI GEQ 0 THEN BEGIN ESI _ .NEWESI; IF (.ESI EQL .EMI) OR (.ESI EQL .EGI) OR (.ESI EQL .EPI) THEN WARN( 15 ) END; NEWEMI _ ASKONUM( '[ EMI]?R(,?R)[: ??]', DEFAULTOK, -1, 0, 127 ); IF .NEWEMI GEQ 0 THEN BEGIN EMI _ .NEWEMI; IF (.EMI EQL .ESI) OR (.EMI EQL .EGI) OR (.EMI EQL .EPI) THEN WARN( 15 ) END; NEWEGI _ ASKONUM( '[ EGI]?R(,?R)[: ??]', DEFAULTOK, -1, 0, 127 ); IF .NEWEGI GEQ 0 THEN BEGIN EGI _ .NEWEGI; IF (.EGI EQL .ESI) OR (.EGI EQL .EMI) OR (.EGI EQL .EPI) THEN WARN( 15 ) END; NEWEPI _ ASKONUM( '[ EPI]?R(,?R)[: ??]', DEFAULTOK, -1, 0, 127 ); IF .NEWEPI GEQ 0 THEN BEGIN EPI _ .NEWEPI; IF (.EPI EQL .ESI) OR (.EPI EQL .EMI) OR (.EPI EQL .EGI) THEN WARN( 15 ) END END; ! SEMICOLON REQ'D END; ! END OF MGNMS2.BLI