Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0068/traed.iml
There are 2 other files named traed.iml in the archive. Click here to see a list.
CALL ME !RED.!;
#FILE: TRAED.I10#

SUBR !RED.!(Z) IS (
  !IL.!, !IC.!, !RSW.! ARE COMMON;
  !LC.!, !FM.!, !FL.!   ARE  COMMON;
  B IS 128 LONG;
 Q_14R AND 777777B;
          !RSW.!=0=>(!RSW.!_1;!IL.![1]_0;
         (520B AND 1 LS [Q] RS 24)=0=>!OBIN.!(0,1,!IC.!,!IL.!));
 TD: T_[Q] RS 24; N_!PADR.!(Q);
 T NE 0=>(T=5=>(!LC.![!IC.!]=-1=>GO TO TZ;
                TA: !PIN.!(0) NE 12B=>GO TO TA;
                !LC.![!IC.!]_0; GO TO TZ);
          T=4=>(!OBIN.! (Q,1,!IC.!,!IL.!); GO TO TZ);
          T=6=>(!OBIN.! (!FBLK.!(Q),1,!IC.!,!IL.!); GO TO TZ);
          T=7=>(!PTR.![!IC.!]_4400000000B OR 777777B
                        AND !PTR.![!IC.!];
               !PTE.![!IC.!]_4400000000B OR 777777B
                        AND !PTE.![!IC.!]);
          T=8=>(!DEV.!([N],1); GO TO TZ);
	  NN_[N]; T=11=>(T_2; NN_NN<R>);
          T>8=>GO TO TV;
          !FM.![!IC.!]_T; !FL.![!IC.!]_NN; GO TO TZ);
 F_!FM.![!IC.!];
 F=7=>([N]_!PIN.!(1); GO TO TZ);
 (G_!FL.![!IC.!])=0=>G_',';
 G>128=>(STOPC_G RS 29; G_128)  ELSE  STOPC_0;
 G_G-1; NEG_0;
  (!LC.![!IC.!]=>GO TO TR;
   LB: (XX_!PIN.!(0))=0=>(!LC.![!IC.!]=0=>GO TO LB; GO TO TR);
   # TAB->SPACE # XX=11B=>XX_R' ';
   XX=55B=>(F NE 3=>(NEG_-1;XX_40B));
   (B[J]_XX)=STOPC=>(TR: (G_J-1)<0=>B_G_0;
                     GO TO LR);
   B[J]=15B=>(!LC.![!IC.!]=0=>!LC.![!IC.!]_1;
              GO TO TR)) FOR J TO G;
 LR: F=3=>(S_010677777777B+N;
	   G GE 0=>(([N+I]_0) FOR I FROM G/5;
		    (<+S>_B[J]) FOR J TO G);
	   STOPC=><+S>_0;
	   GO TO TZ);
 S_0;
G GE 0=>(
 ((D_B[J]) NE 40B=>((D_D-60B)<0=>D_IER('CHARACTER NOT A DIGIT.');
                    F=1=>(D>7=>D_IER('ILLEGAL OCTAL DIGIT.');
                          S_(S LS 3)+D)
                    ELSE (D>9=>D_IER('ILLEGAL DECIMAL DIGIT.');
                          S_(S*10)+D))
                  ) FOR J TO G);
 [N]_(NEG=>-S ELSE S);
 TZ: Q_Q+1;GO TO TD;
 TV: TQ_267700000000B+Q;
 0R_!LC.![!IC.!];
 TQ: GO TO TQ;
 0);


SUBR !PIN.!() IS (
  !IC.!<0=>(DATA(051200000000B); RETURN 0R);
  !PTR.!, !PTE.! ARE COMMON;
 !PTR.![!IC.!]=!PTE.![!IC.!]=>(!PTR.![!IC.!]_!PTR.![!IC.!]-128;
                               INPUT(!IC.!+14B,!IL.!)=>!LC.![!IC.!]_-1);
ILDB(!PTR.![!IC.!])) ;
!PRN.!()%%