Trailing-Edge
-
PDP-10 Archives
-
decuslib10-04
-
43,50325/newio2.bli
There are no other files named newio2.bli in the archive.
! File: NEWIO2.BLI
!
! This work was supported by the Advanced Research
! Projects Agency of the Office of the Secretary of
! Defense (F44620-73-C-0074) and is monitored by the
! Air Force Office of Scientific Research.
MODULE HIIO(TIMER=EXTERNAL(SIX12))=
BEGIN
SWITCHES NOLIST;
REQUIRE COMMON.BEG;
REQUIRE IOMACS.BEG;
REQUIRE IO.BEG;
SWITCHES LIST;
BEGIN
MACRO CASEX(A)=(A; NOVALUE)$,
TENOR11(TEN,ELEVEN)=(ELEVEN; NOVALUE)$;
BIND
DEVCHR=4, ! FOR CALLI
CMUDEC=-2; ! FOR CALLI
BIND
ERR1M=MSG(Illegal Switch - ),
ERR2M=MSG(Illegal Character - ),
ERR4M=MSG(Command Error),
ERR5M=MSG(LOOKUP/ENTER Failure - ),
PPNERRM=MSG(Invalid PPN),
CRLFSTR=MSG(?M?J);
MACRO
NEXTCHAR=(CCHAR_SCANI(BUFDATA[0,BYTEPF]))$,
ABORTCMD=TTYMES(CRLFSTR); CMDERR_1$,
INRANGE(A,X,Y)=(A GEQ X AND A LEQ Y) $;
MACRO
IMAGEMF=8,1$, ! DEVICE CAN DO IMAGE MODE
ASCIIMF=1,1$, ! DEVICE CAN DO ASCII MODE
TTYDEVF=21,1$, ! DEVICE IS A TTY
SWTBIT=FLAGS<0,1>$, ! TRUE --> IN SWITCH MODE
INFOBIT=FLAGS<1,1>$, ! TRUE --> SOMETHING SEEN
NAMEBIT=FLAGS<2,1>$, ! TRUE ==> FILENAME SEEN
DEVBIT=FLAGS<3,1>$, ! TRUE ==> EXPLICIT DEVICE SEEN
EXTBIT=FLAGS<4,1>$, ! TRUE ==> EXPLICIT EXTENSION GIVEN
NDEBITS=FLAGS<2,3>$, ! NON ZERO IF A FILE SEEN
ENDBIT=FLAGS<5,1>$, ! TRUE ==> END OF CMD STRING SEEN
ARWBIT=FLAGS<6,1>$, ! TRUE ==> LEFT ARROW (OR =) SEEN
SLSHBIT=FLAGS<7,1>$, ! TRUE ==> ENTERED SWITCH MODE WITH SLASH
UNBIT=FLAGS<8,1>$; ! TRUE ==> IN COMPLEMENT SWITCH MODE
MACRO PACK4(A,B,C,D,E,F,G,H)=#H^28 OR #G^24 OR #F^20 OR #E^16 OR #D^12 OR #C^8 OR #B^4 OR #A$;
BIND
CTTAB=PLIT(
PACK4(17,00,00,00,00,00,00,00),
PACK4(17,17,12,17,17,12,00,00),
PACK4(00,00,00,00,00,00,00,00),
PACK4(00,00,12,12,00,00,00,00),
PACK4(17,14,17,00,00,00,00,00),
PACK4(05,03,00,00,11,04,07,13),
PACK4(02,02,02,02,02,02,02,02),
PACK4(02,02,06,00,00,10,00,00),
PACK4(15,01,01,01,01,01,01,01),
PACK4(01,01,01,01,01,01,01,01),
PACK4(01,01,01,01,01,01,01,01),
PACK4(01,01,01,16,00,00,00,10),
PACK4(00,01,01,01,01,01,01,01),
PACK4(01,01,01,01,01,01,01,01),
PACK4(01,01,01,01,01,01,01,01),
PACK4(01,01,01,00,00,12,00,17) );
STRUCTURE CTYPSTR[I]=(.CTYPSTR+.I^(-3))<(.I AND #7)*4,4>;
MAP CTYPSTR CTTAB;
EXTERNAL
OPN,
RLS,
FILESELECT;
ROUTINE GETCMD=
BEGIN
MACHOP TTCALL=#51,
INPUT=#66,
RELEASE=#71;
IF ABS(.TTYDIR) EQL 2 THEN
BEGIN
LOCAL L;
L_.BUFDATA[0,BYTEPF];
IF SCANI(L) EQL 0
THEN IF .TTYDIR LSS 0
THEN CALLI(0,#12)
ELSE TTYDIR_1
ELSE RETURN;
END;
OPN(0,SIXBIT 'TTY',1,1);
BUFDATA[0,FILENAMEF]_SIXBIT 'BLISS';
BUFDATA[0,EXTF]_SIXBIT "TTI";
BUFDATA[0,PPNF]_0;
IF NOT LKUP(0) THEN
(TTCALL(3,PLIT (ASCIZ 'CANNOT FIND BLISS.TTI???M?J'));
CALLI(0,#12));
INPUT(0,0);
RELEASE(0,0);
1
END; ! OF GETCMD
ROUTINE TTYSIX(WORD)=
BEGIN
REGISTER C;
LOCAL PTR;
PTR_WORD<36,6>;
DECR I FROM 5 TO 0 DO
IF (C_SCANI(PTR)) EQL 0
THEN EXITLOOP
ELSE TTYLIST(C_.C+#40);
END; ! OF TTYSIX
ROUTINE CCLMES=
BEGIN
TTYMES(IF BLIS11 THEN MSG(BLIS11:?I)
ELSE MSG(BLIS10:?I));
TTYSIX(.BUFDATA[SRCCHN,FILENAMEF]);
TTYLIST(".");
TTYSIX(.BUFDATA[SRCCHN,EXTF]^18);
TTYMES(CRLFSTR)
END; ! OF CCLMES
BIND IMAGEMODE=#10, ASCILINEMODE=1;
ROUTINE OPNTTY=
BEGIN ! OPEN TTY FOR OUTPUT ON CHANNEL TTYCHN
MACHOP OUTPUT=#67;
IF .TTYDIR LSS 0 THEN CALLI(0,#12);
OPN(TTYCHN,SIXBIT 'TTY',ASCILINEMODE,1^18);
BUFDATA[TTYCHN,FILENAMEF]_SIXBIT 'BLISS';
BUFDATA[TTYCHN,EXTF]_SIXBIT "TTO";
NTR(TTYCHN);
OUTPUT(TTYCHN,0);
NOVALUE
END; ! OF OPNTTY
ROUTINE INITTMPS=
(FILTMP_EXTTMP_PPNTMP_0;
DEVTMP_SIXBIT 'DSK';
NOVALUE);
BIND REALFLAGS=FLAGS;
ROUTINE PERMSG=
BEGIN
MACRO GETPPN=(REGISTER QQ; QQ_0; CALLI(QQ,#24))$,
GREET(WHO,WHAT)=WHO:EXITSELECT TTYMES((PLIT ASCIZ WHAT)<29,7>)$;
BIND
HY00=#220660,
RL13=#476457,
FP03=#145753,
EC03=#112423,
CP06=#057076,
CW09=#064031,
WW17=#641573,
RT01=#504111,
DJ51=#075415,
PK02=#431202,
BL03=#032013,
FTN45=#1446,
RG01=#1377,
MS10=#350064;
IF .EFDB NEQ 0 THEN RETURN;
SELECT GETPPN AND #777777 OF
NSET
GREET(HY00,'WELCOME TO BLISS/11 COUNTRY, HYDRA?M?J');
GREET(CP06,'HELLO CHUCK?M?J');
GREET(EC03,'HELLO ELLIS?M?J');
GREET(FP03,'HELLO FRED?M?J');
GREET(CW09,'OH CHUCKO!?M?J');
GREET(WW17,'IT''S BIG DADDY BILL!?M?J');
GREET(RT01,'HOWDY, RON?M?J');
GREET(DJ51,'HELLO DAVE?M?J');
GREET(PK02,'GOOD LUCK PAUL?M?J');
GREET(MS10,'HELLO MARY?M?J');
GREET(FTN45,'GOOD LUCK FORTRAN-IV PLUS?M?J');
GREET(RG01,'THESIS!?M?J');
GREET(BL03,'HI BRUCE?M?J')
TESN;
EFDB_-1
END;
GLOBAL ROUTINE INITIO(TOG)=
BEGIN
LOCAL BINFIL,PPNBUF[2],CTYPE,SYMBOL,PSYMBOL,CNTR;
REGISTER FLAGS,CCHAR;
ROUTINE LKUPNTR= ! DO LOOKUPS OR ENTERS AS REQUIRED
BEGIN
! RETURNED VALUE:
! 0: LOOKUP/ENTER FAILED OR DEVICE ERROR
! 1: A-OK
MAP BUFVEC NEXTCHN;
REGISTER R;
LOCAL FUNNYPPN; !***** DEBUG *****
BIND DEBUGPPN=#025603032524; !***** DEBUG *****
BIND DFLTEXT=
IF BLIS10 THEN PLIT(
0,
0,
SIXBIT ' REL',
SIXBIT ' LST',
SIXBIT ' BLI' )
ELSE PLIT(
0,
0,
SIXBIT ' OBJ',
SIXBIT ' P11',
SIXBIT ' B11' );
FUNNYPPN_0; !***** DEBUG *****
R_.DEVTMP;
CALLI(R,DEVCHR);
IF .R EQL 0 THEN RETURN 0;
SELECT .NEXTCHN OF
NSET
BINCHN: IF NOT .R<IMAGEMF> THEN RETURN 0 ELSE BINFLG_0;
LSTCHN: IF NOT .R<ASCIIMF> THEN RETURN 0
ELSE (LSTFLG_0; IF .R<TTYDEVF> THEN (TTYLST_1; RETURN 1));
SRCCHN: IF NOT .R<ASCIIMF> THEN RETURN 0
TESN;
IF NOT OPN(.NEXTCHN,.DEVTMP,
IF .NEXTCHN EQL BINCHN THEN IMAGEMODE ELSE ASCILINEMODE,
SELECT .NEXTCHN OF
NSET
BINCHN: NUMBUFS^18;
LSTCHN: IF .TTYLST THEN 1^18 ELSE NUMBUFS^18;
SRCCHN: IF .R<TTYDEVF> THEN 1 ELSE NUMBUFS
TESN) ! END OF CALL TO OPN
THEN RETURN 0;
NEXTCHN[FILENAMEF]_.FILTMP;
NEXTCHN[EXTF]_IF .EXTBIT THEN .EXTTMP<LH> ELSE .DFLTEXT[.NEXTCHN];
NEXTCHN[PPNF]_IF .PPNTMP EQL 0 THEN .PPNPERM ELSE .PPNTMP;
IF .PPNTMP EQL 0 THEN FUNNYPPN_-1 ELSE PPNTMP_0;
IF( !********** DEBUG **********
IF .NEXTCHN NEQ SRCCHN THEN NTR(.NEXTCHN)
ELSE IF NOT LKUP(.NEXTCHN)
THEN IF NOT .EXTBIT
THEN (NEXTCHN[EXTF]_0;
LKUP(.NEXTCHN))
ELSE 0
ELSE 1
) NEQ 0 THEN RETURN 1
ELSE IF .FUNNYPPN THEN (PPNTMP_DEBUGPPN; RETURN LKUPNTR()) ELSE RETURN 0
END; ! OF LKUPNTR
ROUTINE CCLLNK=
BEGIN ! ISSUE RUN UUO FOR <!> REQUEST
EXTERNAL JOBDA;
BIND RUNBLK=JOBDA+10;
BIND MOVEI=#201, HRLI=#505,
CALLI=#47, JFCL=#255,
JRST=#254,
RUNPLIT=PLIT(
INST(MOVEI,0,#1777),
INST(HRLI,0,1),
INST(CALLI,0,#11),
INST(JFCL,0,0),
INST(MOVEI,0,RUNBLK<0,0>),
INST(HRLI,0,1),
INST(CALLI,0,#35),
INST(JRST,4,0) );
IF NOT .INFOBIT THEN RETURN CMDERR_1;
RUNBLK[0]_IF .DEVBIT THEN .DEVTMP ELSE SIXBIT 'SYS';
RUNBLK[1]_.FILTMP;
RUNBLK[2]_RUNBLK[3]_RUNBLK[4]_RUNBLK[5]_0;
IF .EXTBIT THEN RUNBLK[2]_.EXTTMP;
IF .PPNTMP NEQ 0 THEN RUNBLK[4]_.PPNPERM;
DECR I FROM 7 TO 0 DO JOBDA[.I]_.RUNPLIT[.I];
JOBDA()
END; ! OF CCLLNK
ROUTINE ERR1=
( TTYMES(ERR1M);
IF .CCHAR LEQ "Z"
THEN TTYLIST(.CCHAR)
ELSE (TTYLIST("-"); TTYLIST(.CCHAR-26));
ABORTCMD);
ROUTINE ERR2=
( TTYMES(ERR2M);
TTYLIST(.CCHAR);
ABORTCMD);
ROUTINE ERR4=
( TTYMES(ERR4M);
ABORTCMD);
ROUTINE ERR5=
( TTYMES(ERR5M);
TTYSIX(.DEVTMP);
TTYLIST(":");
TTYSIX(.FILTMP);
TTYLIST(".");
TTYSIX(.EXTTMP);
ABORTCMD);
ROUTINE PPNERR=
( TTYMES(PPNERRM);
ABORTCMD);
IF .TOG EQL 0
THEN
BEGIN
BUFDATA[0,ADRWORD]_CMDBUF^18 + CMDHDR<0,0>;
CCLINIT();
RESET();
FLAGS_PPNPERM_BINFIL_0;
NOTREE_0;
BINFLG_LSTFLG_1;
FINALSW_1;
ACCUM[0]_ACCUM[1]_-2;
PACCUM_(ACCUM-1)<1,7>;
NEXTCHN_BINCHN;
OPNTTY();
PERMSG()
END
ELSE
BEGIN
BINFIL_1;
FLAGS_.REALFLAGS;
NEXTCHN_SRCCHN
END;
CURCHN_SRCCHN;
INITTMPS();
SYMBOL_CMDERR_0;
CNTR_6;
PSYMBOL_SYMBOL<36,6>;
SEQNUM_' ';
SOSPGC_1;
PAGCNT_-1;
IF .TOG EQL 0 THEN
IF .CCLCTL EQL 0 THEN
(TTYLIST("*"); GETCMD());
WHILE .CMDERR EQL 0 DO
BEGIN
WHILE NEXTCHAR EQL 0 DO IF .CCLCTL NEQ 0 THEN CALLI(0,#12);
CTYPE_.CTTAB[.CCHAR];
IF NOT .SWTBIT THEN CTYPE_.CTYPE+5;
CASE .CTYPE OF
SET
! 0 - ERROR
ERR1();
! 1 - SWITCH MODE ALPHA
BEGIN
INFOBIT_1;
CCHAR_UPPERCASE(.CCHAR);
IF .UNBIT THEN (UNBIT_0; CCHAR_.CCHAR+26);
CASE .CCHAR-"A" OF
SET
TENOR11(ERR1(),ERR1()); ! A
TENOR11(ERR1(),ERR1()); ! B
TENOR11(XREF_1,XREFLG_1); ! C
TENOR11(DEBFLG_1,DEBFLG_1); ! D
TENOR11(EMFLG_1,EMFLG_1); ! E
TENOR11(FSAVFLG_1,FINALSW_1); ! F
TENOR11(GRFLG_1,SEGSW_1); ! G
TENOR11((TWOFLG_NOT .TWOFLG;
HGHFLG_NOT .HGHFLG),
HYDRASW_1); ! H
TENOR11(IFLAG_1,ERR1()); ! I
TENOR11(ERR1(),ERR1()); ! J
TENOR11(LSTFLG_1,QUIKSW_1); ! K
TENOR11(LSTFLG_0,LSTFLG_0); ! L
TENOR11(MFLAG_1,MLFLG_1); ! M
TENOR11(ERRBIT_0,ERRBIT_1); ! N
TENOR11(NPTFLG_0,NPTFLG_0); ! O
TENOR11(PROFLG_1,PICSW_1); ! P
TENOR11(ERR1(),MRKFLG_0); ! Q
TENOR11(SRFLG_0,ERR1()); ! R
TENOR11(SFLAG_1,SFLG_1); ! S
TENOR11(TTFLAG_MHTIME_1,ERR1()); ! T
TENOR11(NPTFLG_0,UNAMESW_1); ! U
TENOR11(TWOFLG_NOT .TWOFLG,ERR1()); ! V
TENOR11(ERR1(),ERR1()); ! W
TENOR11(CODETOG_0,NOTREE_-1); ! X
TENOR11(ERR1(),ERR1()); ! Y
TENOR11(ERR1(),ZIPSW_1); ! Z
TENOR11(ERR1(),ERR1()); ! -A
TENOR11(ERR1(),ERR1()); ! -B
TENOR11(XREF_0,XREFLG_0); ! -C
TENOR11(DEBFLG_0,DEBFLG_0); ! -D
TENOR11(EMFLAG_0,EMFLG_0); ! -E
TENOR11(FSAVFLG_0,FINALSW_0); ! -F
TENOR11(GRFLG_0,SEGSW_0); ! -G
TENOR11(ERR1(),ERR1()); ! -H
TENOR11(IFLAG_0,ERR1()); ! -I
TENOR11(ERR1(),ERR1()); ! -J
TENOR11(ERR1(),QUIKSW_0); ! -K
TENOR11(LSTFLG_1,LSTFLG_1); ! -L
TENOR11(MFLAG_0,MLFLG_0); ! -M
TENOR11(ERRBIT_0,ERRBIT_0); ! -N
TENOR11(NPTFLG_1,NPTFLG_1); ! -O
TENOR11(ERR1(),PICSW_0); ! -P
TENOR11(ERR1(),MRKFLG_1); ! -Q
TENOR11(SRFLG_1,ERR1()); ! -R
TENOR11(SFLAG_0,SFLG_0); ! -S
TENOR11(TTFLAG_MHTIME_0,ERR1()); ! -T
TENOR11(ERR1(),UNAMESW_0); ! -U
TENOR11(ERR1(),ERR1()); ! -V
TENOR11(ERR1(),ERR1()); ! -W
TENOR11(ERR1(),ERR1()); ! -X
TENOR11(ERR1(),ERR1()); ! -Y
TENOR11(ERR1(),ZIPSW_0) ! -Z
TES;
IF .SLSHBIT THEN SWTBIT_SLSHBIT_0;
END; ! OF SWITCH MODE ALPHA
! 2 - NUMBER IN SWITCH MODE
ERR1();
! 3 - SWITCH ESCAPE <)>
CASEX(SWTBIT_0);
! 4 - UNSWITCH <->
CASEX(UNBIT_1);
! 5 - ERROR CHAR NORMAL MODE
ERR2();
! 6 - NORMAL MODE ALPHA
BEGIN
CCHAR_UPPERCASE(.CCHAR);
INFOBIT_NAMEBIT_1;
IF .BINFIL EQL 0 THEN REPLACEI(PACCUM,.CCHAR);
IF (CNTR_.CNTR-1) GEQ 0 THEN
REPLACEI(PSYMBOL,.CCHAR-#40)
END; ! OF 6
! 7 - NORMAL MODE NUMBER
BEGIN
INFOBIT_NAMEBIT_1;
IF .BINFIL EQL 0 THEN REPLACEI(PACCUM,.CCHAR);
IF (CNTR_.CNTR-1) GEQ 0 THEN
REPLACEI(PSYMBOL,.CCHAR-#40)
END; ! OF 7
! 8 - ERROR
ERR2();
! 9 - ERROR
ERR2();
! 10 - ENTER SWITCH MODE <(>
CASEX(SWTBIT_1);
! 11 - COLON
BEGIN
IF .DEVBIT THEN ERR4() ELSE DEVBIT_1;
DEVTMP_.SYMBOL;
IF .BINFIL EQL 0 THEN (PACCUM_ACCUM<36,7>;ACCUM_ACCUM[1]_-2);
CNTR_6;
PSYMBOL_SYMBOL<36,6>;
SYMBOL_0
END; ! OF 11
! 12 - DOT
BEGIN
EXTBIT_1;
FILTMP_.SYMBOL;
CNTR_3;
PSYMBOL_SYMBOL<36,6>;
SYMBOL_0
END; ! 0F 12
! 13 - LEFT ARROW <_> OR EQUAL <=>
BEGIN
ARWBIT_1;
BINFIL_.BINFIL+1;
IF BLIS11 THEN NEXTCHN_LSTCHN;
IF .EXTBIT THEN EXTTMP_.SYMBOL ELSE FILTMP_.SYMBOL;
IF NOT LKUPNTR() THEN ERR5();
INITTMPS();
NDEBITS_0;
NEXTCHN_SRCCHN;
CNTR_6;
PSYMBOL_SYMBOL<36,6>;
SYMBOL_0
END; ! OF 13
! 14 - COMMA
BEGIN
IF NOT .INFOBIT THEN EXITCASE NEXTCHN_LSTCHN;
BINFIL_.BINFIL+1;
IF .EXTBIT THEN EXTTMP_.SYMBOL ELSE FILTMP_.SYMBOL;
IF NOT LKUPNTR() THEN ERR5();
INITTMPS();
NDEBITS_0;
IF .ARWBIT THEN (REALFLAGS_.FLAGS; RETURN 1);
NEXTCHN_LSTCHN;
CNTR_6;
PSYMBOL_SYMBOL<36,6>;
SYMBOL_0;
END; ! OF 14
! 15 - CARRIAGE RETURN
BEGIN
IF NOT .INFOBIT THEN RETURN 0;
ENDBIT_1;
IF .EXTBIT THEN EXTTMP_.SYMBOL ELSE FILTMP_.SYMBOL;
IF NOT LKUPNTR() THEN (ERR5(); RETURN 0);
NDEBITS_0;
IF NOT .ARWBIT THEN (ERR4(); RETURN 0);
IF .CCLCTL NEQ 0 THEN CCLMES();
REALFLAGS_.FLAGS;
RETURN 1
END; ! OF 15
! 16 - ENTER SWITCH MODE </>
SWTBIT_SLSHBIT_1;
! 17 - RUN REQUEST <!>
BEGIN
IF .EXTBIT THEN EXTTMP_.SYMBOL ELSE FILTMP_.SYMBOL;
CCLLNK()
END; ! OF 17
! 18 - RESERVED FOR INDIRECT FILE <@>
BEGIN
MACHOP INPUT=#66,
RELEASE=#71;
IF .EXTBIT THEN EXTTMP_.SYMBOL ELSE FILTMP_.SYMBOL;
OPN(0,.DEVTMP,1,1);
BUFDATA[0,FILENAMEF]_.FILTMP;
BUFDATA[0,EXTF]_(IF .EXTBIT THEN .EXTTMP<LH>);
BUFDATA[0,PPNF]_IF .PPNTMP EQL 0 THEN .PPNPERM ELSE .PPNTMP;
LKUP(0);
INPUT(0,0);
RELEASE(0,0);
TTYDIR_SELECT .TTYDIR OF NSET -1:-2; 1:2 TESN;
INITTMPS();
NDEBITS_0;
NEXTCHN_LSTCHN;
CNTR_6;
PSYMBOL_SYMBOL<36,6>;
SYMBOL_0
END; ! OF 18
! 19 - PPN SPECIFICATION <[>
BEGIN
LOCAL PPNBUF[2],PPPNBUF;
PPNBUF_(PPNBUF+1)_0;
PPPNBUF_PPNBUF<36,7>;
NEXTCHAR;
IF INRANGE(.CCHAR,"0","7")
THEN ! OCTAL PPN
BEGIN
WHILE .CCHAR NEQ "," DO
( IF NOT INRANGE(.CCHAR,"0","7") THEN PPNERR();
PPNBUF_.PPNBUF^3 + .CCHAR-"0";
NEXTCHAR );
PPNTMP<LH>_.PPNBUF<RH>;
PPNBUF_0;
NEXTCHAR;
WHILE .CCHAR NEQ "]" DO
( IF NOT INRANGE(.CCHAR,"0","7") THEN PPNERR();
PPNBUF_.PPNBUF^3 + .CCHAR-"0";
NEXTCHAR );
PPNTMP<RH>_.PPNBUF<RH>
END ! OF THEN
ELSE IF NOT CMUSW THEN PPNERR() ELSE ! CMU PPN
IF DECR I FROM 8 TO 0 DO
(REPLACEI(PPPNBUF,.CCHAR);
IF NEXTCHAR EQL "]" THEN EXITLOOP 0)
LSS 0
THEN PPNERR()
ELSE ! CMU CONVERT
(REGISTER R;
R_PPNTMP<0,0>^18+PPNBUF<0,0>;
IF NOT SKIP(CALLI(R,CMUDEC)) THEN PPNERR()); ! END OF ELSE
IF .NDEBITS EQL 0 THEN PPNPERM_.PPNTMP
END; ! OF 19
! 20 - IGNORE
0
TES !END OF CASE ON .CTYPE
END; ! OF WHILE LOOP
CCLCTL_0 ! IF WE EVER GET HERE THE COMMAND WAS ABORTED
END; ! OF INITIO
END
END
ELUDOM