DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3900 (0xf3c) Types: TextFile Names: »READUSERPARAMS.S«
└─⟦881c1028e⟧ Bits:30005102 8" CR80 Floppy CR80FD_0061 ( VOL: SCC.V NSC Directory: Queue_test.D ) └─⟦4f56469eb⟧ └─ ⟦this⟧ »QUEUE_TEST.D!READUSERPARAMS.S«
EXPORT PROCEDURE READUSERPARAMS(R6); "ALL REGISTERS DESTROYED "============================" " READS MSGFILEID FROM PARAMETERFILE. OPENS THE MESSAGEFILE " AND THE MTCB FILE. " READS THE TERMINAL NO. AND THE QUEUE NO. CONVERTS TO " BINARY AND STORES IN TER_NO,QUE_NO RESPECTIVELY. " VAR LINK: INTEGER; CONST NAMELISTMAX= 10; KWSIZE= 2; "IN WORDS" DEFAULT_QUENO = -1; TYPE KEYWORDS= (K_ERROR, K_MTCB, K_MSG, K_TER, K_QUE, K_SIG, K_TOP); VAR KEYWORD: ARRAY [0..K_TOP*KWSIZE-1] OF INTEGER; KEYWORDINDEX: KEYWORDS; NAMENO: INTEGER; FROMADAM: INTEGER; FSN: FILE_SYSTEM_NAME; VOL: VOLUME_NAME; NAMELIST: ARRAY [0..SIZE(FILE_NAME)*NAMELISTMAX-1] OF INTEGER; WORKAREA: ARRAY [0..15] OF INTEGER; Q_NO :INTEGER; " NO. READ FROM PFILE INIT KEYWORD[K_MTCB *KWSIZE..(K_MTCB +1)*KWSIZE-1]= 'MTCB'; KEYWORD[K_MSG *KWSIZE..(K_MSG +1)*KWSIZE-1]= 'MSG'; KEYWORD[K_TER *KWSIZE..(K_TER +1)*KWSIZE-1]= 'TER'; KEYWORD[K_QUE *KWSIZE..(K_QUE +1)*KWSIZE-1]= 'QUE'; KEYWORD[K_SIG *KWSIZE..(K_SIG +1)*KWSIZE-1]= 'SIG'; BEGIN R6=> LINK; DEFAULT_QUENO => R6; R6 => TER_NO; R6 => QUE_NO; 0 => R1; ADDRESS(SIGNAL_NAME1) => R0; PNAMELENGTH => R5; WHILE R5-1 >= 0 DO R1 => R0@B[R5]; ADDRESS(PFILETYPE)=> R4; REPEAT READKEYWORD(KWSIZE,4,K_TOP,R0,ADDRESS(KEYWORD)=>R4,R6); R0=> KEYWORDINDEX; PFILETYPE.S=> R4; CASE R0:KEYWORDS OF K_ERROR: FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('ILLEGAL KEYWORD(:0:)')=>R5, 0=>R7, R6); K_MTCB,K_MSG: BEGIN " READ FILE ID " ADDRESS(DEFAULT_FSN)=> R6; ADDRESS(FSN)=> R7; MOVM(SIZE(FILE_SYSTEM_NAME), R6@FILE_SYSTEM_NAME, R7@FILE_SYSTEM_NAME); ADDRESS(DEFAULT_VOL)=> R6; ADDRESS(VOL)=> R7; MOVM(SIZE(VOLUME_NAME), R6@VOLUME_NAME, R7@VOLUME_NAME); SWITCH MON(INFILEID, ADDRESS(FSN)=>R0, ADDRESS(VOL)=>R1, R2, R3, R4, ADDRESS(NAMELIST)=>R5, ADDRESS(WORKAREA)=>R6, R7): INFID_EXIT TO INFIOERROR: FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('INFILEID(:0:)')=>R5, R7, R6); INFSYNTAX: FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('FILEID SYNTAX(:0:)')=>R5, R7, R6); END; R2=> NAMENO; R3=> FROMADAM; END; K_TER,K_QUE: BEGIN " READ TERMINAL OR QUEUE NO. SWITCH MON(STREAM, INELEMENT, 2=>R1, R3, R5, ADDRESS(Q_NO)=>R6, R7): INEL_EXIT TO INELERROR: FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('INELEMENT(:0:)')=>R5,R7, R6); INELID, INELSPECIAL: FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('SYNTAX(:0:)')=>R5, R7, R6); END; END; K_SIG: BEGIN " READ PROCESSNAME OF PROCESS TO SIGNAL SWITCH MON(STREAM, INELEMENT, 6=>R1, R3, R5, ADDRESS(SIGNAL_NAME1)=>R6, R7): INEL_EXIT TO INELERROR: FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('IN SIG NAME(:0:)')=>R5,R7, R6); INELNUMBER, INELSPECIAL: FILEERROR(ADDRESS(PFILETYPE)=>R4, ADDRESS('SIG SYNTAX(:0:)')=>R5, R7, R6); END; END; END; KEYWORDINDEX=> R6; CASE R6:KEYWORDS OF K_MTCB: BEGIN OPENFILE(ADDRESS(MTCBFILETYPE)=>R4, ADDRESS(FSN)=>R0, ADDRESS(VOL)=>R1, NAMENO=>R2, FROMADAM=>R3, ADDRESS(NAMELIST)=>R5, DFILETYPE.F=>R7, R6); END; K_MSG: BEGIN OPENFILE(ADDRESS(MSGFILETYPE)=>R4, ADDRESS(FSN)=>R0, ADDRESS(VOL)=>R1, NAMENO=>R2, FROMADAM=>R3, ADDRESS(NAMELIST)=>R5, DFILETYPE.F=>R7, R6); END; K_TER: Q_NO => R6 => TER_NO; K_QUE: Q_NO => R6 => QUE_NO; END; UNTIL KEYWORDINDEX=>R0 = K_TOP; TER_NO => R6; IF R6 = DEFAULT_QUENO THEN FILEERROR(ADDRESS(PFILETYPE)=>R4,ADDRESS('ILL. TERM. NO. (:0:)')=>R5,R7,R6); EXIT(LINK); END "READUSERPARAMS"; ;