perm filename P.SAI[HAK,ROB] blob sn#461586 filedate 1979-07-13 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "P"
C00004 00003	! Program specific DEFINEs and REQUIREs
C00005 00004	! Procedures
C00007 ENDMK
C⊗;
BEGIN "P"

COMMENT Degenerate PINKY;

REQUIRE "{}<>" DELIMITERS;
DEFINE !={COMMENT};
DEFINE SP={" "},
      CR={('15&"")},
      LF={('12&"")},
      ↓={(CR&LF)},
      TAB={('11&"")},
      FF={('14&"")},
      ALT={('175&"")};

DEFINE ⊂ = {BEGIN};
DEFINE ⊃ = {END};
DEFINE THRU={STEP 1 UNTIL};

DEFINE PI = { 3.1415926536 };
DEFINE pos_int_infinity = { '377777777777 }; ! = 34359738367;
DEFINE neg_int_infinity = { '400000000000 }; ! = -34359738368;
DEFINE pos_real_infinity = {  1.70141182@38 }; ! just weird numbers that work;
DEFINE neg_real_infinity = { -1.69808878@38 };

DEFINE clear_screen = { CALL ((-1 LSH 18) + LOCATION ('004000000516), "TTYSET") };

DEFINE ErrQuit(str) = {
    BEGIN
      PRINT(str,↓);
      CALL(1,"EXIT");
      END;		};

! Program specific DEFINEs and REQUIREs;

RECORD_CLASS who (RECORD_POINTER(who) next;
		  INTEGER jobnum,tty;
		  STRING ppn, name, room);

! Procedures;

! 
34MLB:Marc Le Brun66Moravec
JJPPN:NNNNNNNNNNNNTTRRRRRRRRRRRRRRRRRR JJPPN:NNNNNNNNNNNNTTRRRRRRRRRRRRRRRRRR
;

STRING PROCEDURE who2str(RECORD_POINTER(who) rp);
  ⊂ "who2str"
    STRING str;
    IF EQU(who:ppn[rp],"*SEG* ")
      THEN
        str ← CVOS(who:job[rp]&who:ppn[rp]&":"&who:name[rp]&CVOS(who:tty[rp])&
		   who:room[rp]);
      ELSE 
	str ← CVOS(who:job[rp]&who:ppn[rp]&":"&who:name[rp]&CVOS(who:tty[rp])&
		   who:room[rp]);
    RETURN(str);
  ⊃ "who2str"

PROCEDURE printlist(RECORD_POINTER(who) leftcol, rightcol);
  ⊂ "printlist"
    DO 
    ⊂ "munchlist"
      OUTSTR(rec2str(leftcol)&rec2str(rightcol)&↓);
      IF leftcol THEN leftcol ← who:next[leftcol];
      IF rightcol THEN rightcol ← who:next[rightcol];
    ⊃ "munchlist"
    UNTIL leftcol=rightcol=NULL_RECORD;
  ⊃ "printlist"