Trailing-Edge
-
PDP-10 Archives
-
AP-D471B-SB_1978
-
mgnms2.bli
There are no other files named mgnms2.bli in the archive.
!***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( '<NONE>?M?J' )
ELSE
BEGIN
PSWRDPTR _ .PASSWORDS<FORE>;
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( '<NONE>' );
OUTPUTCRLF;
OUTPUT( ' DEFERRED: ' );
IF .MC0DFERRED NEQ 0 THEN
XOUTPUT( MC0DFERRED<36, 7> )
ELSE OUTPUT( '<NONE>' );
OUTPUTCRLF;
OUTPUT( ' IMMEDIATE: ' );
IF .MC0IMMEDIATE NEQ 0 THEN
XOUTPUT( MC0IMMEDIATE<36, 7> )
ELSE OUTPUT( '<NONE>' );
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( '<NONE>' );
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('<NONE>') ELSE
OUTPUTBITS( SON[ TR0CODE ], .SON[ TR0CHAR ] );
OUTPUTCRLF;
OUTPUT( ' SIGNOFF: ' );
IF .SOFF EQL 0 THEN OUTPUT('<NONE>') ELSE
OUTPUTBITS( SOFF[ TR0CODE ], .SOFF[ TR0CHAR ] );
OUTPUTCRLF;
OUTPUT( ' REQUEST DEFERRED MESSAGES: ' );
IF .RDM EQL 0 THEN OUTPUT('<NONE>') ELSE
OUTPUTBITS( RDM[ TR0CODE ], .RDM[ TR0CHAR ] );
OUTPUTCRLF;
OUTPUT( ' REQUEST DEFERRED MESSAGE COUNT: ' );
IF .RDMC EQL 0 THEN OUTPUT('<NONE>') 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( '<NONE>' );
OUTPUTC( "," );
IF SPECNOTNULL( JSPEC2 ) THEN OUTPUTFSPEC( JSPEC2 )
ELSE OUTPUT( '<NONE>' );
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( '<NONE>' );
OUTPUTC( "," );
IF SPECNOTNULL( MSPEC2 ) THEN OUTPUTFSPEC( MSPEC2 )
ELSE OUTPUT( '<NONE>' );
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 <CR> 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(<CR> 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(,<CHARACTER-STRING>?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(,<DECIMAL NUMBER>?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(,"<NONE>", <NAME>?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(,<DECIMAL NUMBER>?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(,<NAME>,"<NONE>"?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(,<NAME>,"<NONE>"?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(,<NAME>,"<NONE>"?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(,<DECIMAL NUMBER>?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(,<DECIMAL NUMBER>?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(,<DECIMAL NUMBER>?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(<CHARACTER>?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(,<DECIMAL NUMBER>?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(<FILE-SPEC-PAIR>?R)[: ??]',
JSPEC1,
JSPEC2 );
WHILE (.JSPEC1[SB0NAME] OR .JSPEC1[SB0DEVICE]) EQL 0 DO
BEGIN
ERROR(127);
NEWASK2FSPEC( '[NEW JOURNALLING FILES]?R(<FILE-SPEC-PAIR>?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(<FILE-SPEC-PAIR>?R)[: ??]',
MSPEC1,
MSPEC2 );
WHILE (.MSPEC1[SB0NAME] OR .MSPEC1[SB0DEVICE]) EQL 0 DO
BEGIN
ERROR(128);
NEWASK2FSPEC( '[MPP LOGGING FILE]?R(<FILE-SPEC-PAIR>?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", <FILE-SPEC>?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(<DECIMAL NUMBER>?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(,<OCTAL NUMBER>?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(,<OCTAL NUMBER>?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(,<OCTAL NUMBER>?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(,<OCTAL NUMBER>?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