!**FILE LAST CHANGED ON 21/12/77 AT 11.34.55
EXTRINSICINTEGER  SSOPERNO
EXTERNALROUTINESPEC  DPON(RECORDNAME  P)
EXTERNALROUTINESPEC  DPOFF(RECORDNAME  P)
EXTERNALINTEGERFNSPEC  DCPUTIME
SYSTEMROUTINESPEC  FILL(INTEGER  LEN,FROM,PAT)
SYSTEMROUTINESPEC  JBRCONTROL
EXTERNALINTEGERFNSPEC  DSETIC(INTEGER  KI)
RECORDFORMAT  PF(INTEGER  DEST, SRCE, STRING  (23) MESS)

SYSTEMINTEGERFN  READCPUTIME
   RESULT  = DCPUTIME;                  !TEMP DIRECTOR FACILITY
END ;                                   !OF READCPUTIME

SYSTEMINTEGERFN  SETCPULIMIT(INTEGER  MSECS)
INTEGER  FLAG
   FLAG = DSETIC(MSECS//2)
   IF  FLAG # 0 THEN  RESULT  = -1 ELSE  RESULT  = 0
END ;                                   !OF SETCPULIMIT

SYSTEMINTEGERFN  DISCID
EXTERNALINTEGERFNSPEC  DISCID
   RESULT  = DISCID
END ;                                   !OF DISCID
SYSTEMINTEGERFN  PRIMECONTINGENCY(ROUTINE  ONTRAP)
EXTERNALINTEGERFNSPEC  PRIMECONTINGENCY(ROUTINE  ONTRAP)
RESULT  = PRIMECONTINGENCY(ONTRAP)
END ;                                   !OF PRIMECONTINGENCY

SYSTEMINTEGERFN  READID(INTEGER  AD)
EXTERNALINTEGERFNSPEC  READID(INTEGER  AD)
   RESULT  = READID(AD)
END ;                                   !OF READID

SYSTEMSTRINGFN  ITOS(INTEGER  N)
                                        !RETURNS STRING CONTAINING
                                        ! CHARACTER VALUE OF N WITH
                                        ! NO LEADING SPACE
                                        !N SHOULD BE POSITIVE OR
                                        ! NEGATIVE INTEGER
CONSTINTEGERARRAY  TENS(0 : 9) =           C 
 1, 10, 100, 1000, 10000, 100000 C 
        , 1000000, 10000000, 100000000, 1000000000
STRING  (11) RES
INTEGER  M, R, I, STARTED
   IF  N = 0 THEN  RESULT  = "0";       !SPECIAL CASE
   IF  N < 0 THEN  N = -N AND  RES = "-" ELSE  RES = ""
   STARTED = 0;                         !INDICATES THAT NO CHAS PUT
                                        ! OUT SO FAR
   CYCLE  I = 9,-1,0
      R = TENS(I)
      IF  N >= R OR  STARTED # 0 START 
         STARTED = 1;                   !TO INDICATE THAT CHAR
                                        ! ALREADY FOUND
         M = N//R
         RES = RES.TOSTRING(M+'0')
         N = N-M*R
      FINISH 
   REPEAT 
   RESULT  = RES
END ;                                   !OF ITOS
SYSTEMROUTINE  CONSOLE(INTEGER  A,INTEGERNAME  B,C)
!DUMMY ROUTINE
END ;       !OF CONSOLE
SYSTEMROUTINE  OPERMESS(STRING  (23) S)
RECORD  P(PF)
   P = 0
   P_DEST = X'00320007'!SSOPERNO<<8;    !USE OPER USED FOR STARTUP
   P_MESS = S
   DPON(P)
END ;                                   !OF OPMESS

SYSTEMROUTINE  GETOPERMESS(STRING  (23) PROMPT,  C 
   STRINGNAME  REPLY)
RECORD  P(PF)
   P = 0;                               !CLEAR WHOLE RECORD
   P_DEST = X'00320008'!SSOPERNO<<8;    !READ WITH PROMPT
   P_MESS = PROMPT
   DPON(P)
   DPOFF(P)
   REPLY = P_MESS
END ;                                   !OF GETOPERMESS

SYSTEMROUTINE  CONTROL
!THIS JUST CALLS JBRCONTROL
   JBRCONTROL
END ;                                   !OF CONTROL
!BASED ON UTIL6S WITH ROUTINES MOVE,FILL,ETOI,ITOE REMOVED TO BASE
SYSTEMROUTINE  ZERO(INTEGER  LENGTH,FROM)
            FILL(LENGTH,FROM,0)
END 
SYSTEMINTEGERFN  COMPARE(INTEGER  LENGTH,THIS,THAT)
!
!
!
!     A SYSTEM INTEGER FUNCTION TO COMPARE TWO TEXTS OF LENGTH 'LENGTH'
!
!              INTEGER 'THIS' POINTS TO ONE OF THE TEXTS, AND
!              INTEGER 'THAT' POINTS TO THE OTHER TEXT
!
!     RESULT= 0  =>  TEST(THIS)=TEXT(THAT)  OR  LENGTH<=0
!     RESULT= 1  =>  TEXT(THIS)>TEXT(THAT)
!     RESULT=-1  =>  TEXT(THIS)<TEXT(THAT)
!
!
INTEGER  I
WHILE  LENGTH>0 CYCLE 
 I= BYTEINTEGER(THIS) - BYTEINTEGER(THAT)
IF  I¬=0 THENSTART 
         IF  I>0 THENRESULT =1                                        C 
                 ELSERESULT =-1
         FINISH 
 THIS= THIS+1
 THAT= THAT+1
 LENGTH= LENGTH-1
REPEAT 
RESULT = 0
END 
ENDOFFILE