|
|
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 - metrics - 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";
;