! FILE 'FEP_NODES' !************************* !* NODES/LOAD * !* DATE: 23.APR.80 * !* LOADS A SERIES OF * !* TASKS, FROM INPUT(1) * !************************* %CONTROL K'100001' %RECORDFORMAT DUMMY(%INTEGER X) %CONSTRECORD (DUMMY) %NAME NULL = 0 %BEGIN %CONSTBYTEINTEGERNAME OWN ID = K'160030' %CONSTBYTEINTEGERNAME FSYS = K'160055' %CONSTBYTEINTEGERNAME TTNO = K'160061' %CONSTINTEGER LOAD SER = 5 %RECORDFORMAT PE(%BYTEINTEGER SERVICE, REPLY, A1, A2, %C %BYTEINTEGERNAME B, %BYTEINTEGER C1, C2) %RECORDFORMAT P2F(%BYTEINTEGER SER, REPLY, LINE, LINE TYPE, %C %INTEGER AD, %BYTEINTEGER RX INT, TXINT) %RECORD (PE)P %RECORD (P2F) %NAME P2 %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS) %RECORDFORMAT R1F(%STRINGNAME S) %RECORDFORMAT R2F(%BYTEINTEGERARRAYNAME A) %RECORD (R1F)R1; %RECORD (R2F) %NAME R2 %INTEGER I, J, K, TIME %INTEGER LINE, LINE TYPE, ADDRESS, RXINT, TXINT, ID %OWNINTEGER FIRST PROT = 0 %OWNSTRING (255)S %INTEGERFN CALL LOADER(%STRINGNAME S) R2 == R1 R1_S == S R2_A(LENGTH(S)+1) = NL P_SERVICE = LOAD SER; P_REPLY = OWN ID P_A1 = 1; P_A2 = FSYS; P_B == R2_A(1) P_C1 = 4; P_C2 = TTNO PONOFF(P) %RESULT = P_A1 %END %INTEGERFN ROCTAL %INTEGER I, N, SUM SUM = 0 SKIPSYMBOL %WHILE NEXTSYMBOL = ' ' %OR NEXTSYMBOL = NL %CYCLE N = NEXTSYMBOL %RESULT = SUM %IF N < '0' %OR N > '7' SUM = (SUM << 3)!(N-'0') SKIPSYMBOL %REPEAT %END %ROUTINE READ STRING(%STRINGNAME S) !! TERMINATES ON EITHER A NL OR A SEMI COLON %INTEGER N LENGTH(S) = 0 %CYCLE N = NEXTSYMBOL %IF N = NL %OR N = ';' %THENRETURN S = S.TOSTRING(N) SKIPSYMBOL %REPEAT %END P2 == P SELECT INPUT(1) %CYCLE READSYMBOL(I); PRINTSYMBOL(I) %EXITIF I = NL %REPEAT %CYCLE READSTRING(S) %IF LENGTH(S) = 3 %AND CHARNO(S,1)='E' %AND CHARNO(S,2)='N' %C %AND CHARNO(S,3)='D' %THEN %EXIT ID = CALL LOADER(S) READSYMBOL(I) %IF I = ';' %START %IF FIRST PROT = 0 %THEN FIRST PROT = ID READ(LINE); READ(LINE TYPE) READ(RXINT); READ(TXINT) ADDRESS = ROCTAL P2_SER = ID; P2_REPLY = OWN ID P2_LINE = LINE; P2_LINE TYPE = LINE TYPE P2_AD = ADDRESS&K'077777'; ! ADDRESS IN SEGMENT #3 !! P2_RX INT = RXINT; P2_TXINT = TXINT ! NB: ONLY 8 BITS PASSED PON(P2); ! TELL PROT ITS PARAMS SKIPSYMBOL %FINISH %REPEAT PRINTSTRING(" SYSTEM LOADED ") *K'104001'; ! EMT WAIT %ENDOFPROGRAM