EXTERNALROUTINE  SUBMIT(STRING (255)S)
RECORDFORMAT  PARMF(INTEGER  D, S, P1, P2, P3, P4, P5, P6)
RECORDFORMAT  RF(INTEGER  ADR, TYP, STA, END)
SYSTEMROUTINESPEC  CONNECT(STRING (31)FILE, INTEGER  MOD, GAP, PROT,
      RECORD (RF)NAME  R, INTEGERNAME  FLAG)
SYSTEMROUTINESPEC  MOVE(INTEGER  LEN, FROM, TO)
EXTERNALINTEGERFNSPEC  DSUBMIT(RECORD (PARMF)NAME  P,
      INTEGER  LEN, ADR, STRING (6)USER)
EXTERNALINTEGERFNSPEC  DTRANSFER(STRING (6)U1, U2, STRING (11)F1, F2,
      INTEGER  FSYS1, FSYS2, TYPE)
INTEGER  J, N, START, LENGTHH, TIME
STRING (15)USER, FILE, TIMES
BYTEINTEGERARRAY  M(0:2000)
RECORD (PARMF)P
!
STRINGFN  ITOS(INTEGER  VALUE)
STRING (11)S
STRING (1)SIGN
INTEGER  J
   SIGN = ""
   S = ""
   SIGN = "-" AND  VALUE = -VALUE IF  VALUE < 0
   CYCLE 
      J = VALUE
      VALUE = VALUE//10
      J = J-VALUE*10+'0'
      S = TO STRING(J).S
      EXIT  IF  VALUE <= 0
   REPEAT 
   RESULT  = SIGN.S
END 
!
INTEGERFN  STOI(STRING (255)S, INTEGERNAME  I)
STRING (63)P
INTEGER  TOTAL, SIGN, AD, J, HEX
   HEX = 0
   TOTAL = 0
   SIGN = 1
   AD = ADDR(P)
A: IF  S -> P.(" ").S AND  P="" THEN  -> A;         !CHOP LEADING SPACES
   IF  S -> P.("-").S AND  P="" THEN  SIGN = -1
   IF  S -> P.("X").S AND  P="" THEN  HEX = 1 AND  -> A
   P = S
   UNLESS  S -> P.(" ").S THEN  S = ""
   I = 1
   WHILE  I <= BYTEINTEGER(AD) CYCLE 
      J = BYTE INTEGER(I+AD)
      -> FAULT UNLESS  '0' <= J <= '9' OR  (HEX # 0 C 
         AND  'A' <= J <= 'F')
      IF  HEX = 0 C 
      THEN  TOTAL = 10*TOTAL C 
      ELSE  TOTAL = TOTAL<<4+9*J>>6
      TOTAL = TOTAL+J&15
      I = I+1
   REPEAT 
   IF  HEX # 0 AND  I > 9 THEN  -> FAULT
   IF  I > 1 THEN  I = SIGN*TOTAL AND  RESULT  = 0
FAULT:
   I = 0
   RESULT  = 1
END 
!
ROUTINE  WSN(STRING (255)S, INTEGER  N)
      PRINTSTRING(S)
      SPACE
      WRITE(N, 1)
      NEWLINE
END 
!
ROUTINE  ADD(STRING (255)S)
INTEGER  L
      L = LENGTH(S)
      MOVE(L, ADDR(S) + 1, ADDR(M(N + 1)))
      N = N + L
END 
!
!
!
      UNLESS  S -> USER . (",") . FILE . (",") . TIMES START 
         PRINTSTRING(S)
         NEWLINE
         RETURN 
      FINISH 
!
      J = STOI(TIMES, TIME)
      UNLESS  J = 0 START 
         PRINTSTRING("TIME ? ".TIMES)
         NEWLINE
         RETURN 
      FINISH 
!
      J = DTRANSFER("ERCC04",USER,FILE,"SUBMITFILE",2,97,3)
      UNLESS  J = 0 START 
         WSN("DTRANSFER", J)
         RETURN 
      FINISH 
!
      N = 0
      ADD("DOCUMENT SRCE=SUBMITFILE,USER=")
      ADD(USER)
      ADD(",DEST=BATCH,TIME=")
      ADD(TIMES)
      ADD(",START=32,LENGTH=10,OUT=FILE,OUTNAME=BATCHOUT,NAME=")
      ADD(FILE)
      J = DSUBMIT(P, N, ADDR(M(1)), USER)
!
      IF  J = 0 C 
      THEN  WSN("DOC", P_P2) C 
      ELSE  START 
         WSN("DSUBMIT", J)
         IF  N < 256 START 
            M(0) = N
            WSN(STRING(ADDR(M(0))), P_P3)
         FINISH 
      FINISH 
END 
ENDOFFILE