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