|
|
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: 3528 (0xdc8)
Types: TextFile
Names: »EVAP.S«
└─⟦ffe699cee⟧ Bits:30005101 8" CR80 Floppy CR80FD_0060 ( VOL: SCC.V NSC Directories: EVR.D OCP.D SCCINIT.D )
└─⟦9c1658a4c⟧
└─⟦this⟧ »EVR.D!EVAP.S«
MAINMODULE EVAP;
%NOLIST
%SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S
%SOURCE @**GENS.D*SWELLPREFIX.D*MONITORNAMES.S
%SOURCE @**GENS.D*SWELLPREFIX.D*IOSPARAMS.S
%SOURCE DISPLAY.N
IMPORT PROCEDURE READ_QE(R0; R6);
IMPORT PROCEDURE READ_MTCB(R0; R4; R6);
IMPORT PROCEDURE INSERT_QE(R0; R1; R2; R6);
%LIST
%SOURCE RCT.N
LABEL TERM;
CONST
EREAD_QE = #0000;
EREAD_MTCB = #0001;
EINSERT_QE0 = #0002;
ENET_DIS = #0003;
EINSERT_QE1 = #0004;
VAR
EPM : ARRAY[0..11] OF INTEGER;
CMD_MSG : ARRAY[0..4] OF INTEGER;
HORN_S : ARRAY[0..11] OF INTEGER;
REG_CMD : INTEGER;
MTCBX : INTEGER;
INIT
HORN_S[0] = #001E;
HORN_S[1] = #0010;
HORN_S[2] = #001B;
HORN_S[3] = #0007;
HORN_S[4] = #001B;
HORN_S[5] = #0007;
HORN_S[6] = #001B;
HORN_S[7] = #0007;
HORN_S[8] = #0000;
HORN_S[9] = #0006;
HORN_S[10] = #0000;
HORN_S[11] = #000A;
BEGIN
"GET EPMTCB UNPACKED AND PUT IT IN EPM[0..11]
SWITCH READ_QE(34=>R0, R6) :ERROR_DONE TO
ERR : BEGIN
EREAD_QE => R0;
GOTO TERM;
END;
END; "SWITCH
R0 => MTCBX;
SWITCH READ_MTCB(R0, ADDRESS(EPM)=>R4, R6) :ERROR_DONE TO
ERR : BEGIN
EREAD_MTCB => R0;
GOTO TERM;
END;
END; "SWITCH
EPM[1] => R4; " EPM TYPE
EPM[2] => R0; " EPM SUB_CAT
EPM[3] => R1; " EPM EVENT NUMBER
MSG_TY_TABLE[R4] => R5 + R0;
SUB_CAT_TABLE[R5] => R4 + R1;
CM_CODE[R4] => R0 => REG_CMD;
IF R0[15] THEN
BEGIN
"RECEIVER ADDRESS - NEDP => R0;
EPM[4] => R1 => CMD_MSG[1];
EPM[5] => R1 => CMD_MSG[2];
REG_CMD => R1 => CMD_MSG[3];
MON(SENDMESSAGE, R0, ADDRESS(CMD_MSG) => R1, R7);
END;
IF R0[7] THEN
BEGIN
CASE EPM[3] => R0 OF
0 : BEGIN "SSSC
IF EPM[4] => R0 = 4 THEN
SETS(REG_CMD=>R0, 3);
END;
1 : BEGIN "TEDI
IF EPM[6] => R0 = 1 THEN "STATUS IS TEHE
SETS(REG_CMD=>R0, 4);
END;
2 : BEGIN "SSNC OR TECT
IF EPM[2] => R0 = 2 THEN "SSNC
BEGIN
IF EPM[4] => R0 = 4 THEN
BEGIN
SETS(REG_CMD=>R0, 4);
SETS(REG_CMD=>R0, 5);
END;
END
ELSE "TECT
IF EPM[6] => R0 = 1 THEN
SETS(REG_CMD=>R0, 4);
END;
3 : BEGIN "TEOP
IF EPM[6] => R0 = 0 LOGOR R0 = 1 THEN "STATUS TENP,TETH
SETS(REG_CMD=>R0, 4);
END;
END; "CASE
END; "SH
IF R0[6] THEN
BEGIN
SWITCH INSERT_QE(1=>R0, 0=>R1, MTCBX=>R2, R6):ERROR_DONE TO
ERR : BEGIN
EINSERT_QE0 => R0;
GOTO TERM;
END;
END; "SWITCH
END;
IF R0[5] THEN
BEGIN
"RECEIVER OPSP => R0;
EPM[4] => R1 => CMD_MSG[0];
EPM[5] => R1 => CMD_MSG[1];
REG_CMD => R1 => CMD_MSG[2];
MON(SENDMESSAGE, R0, ADDRESS(CMD_MSG)=> R1, R7);
END;
IF R0[4] THEN
SWITCH NET_DISPLAY(ADDRESS(HORN_S)=>R1, SIZE(HORN_S)=>R2, HORN_FD=>R3, R6) TO
ERR : BEGIN
ENET_DIS => R0;
GOTO TERM;
END;
END; "SWITCH
IF R0[3] THEN
BEGIN
SWITCH INSERT_QE(34=>R0, 1=>R1, MTCBX=>R2, R6):ERROR_DONE TO
ERR : BEGIN
EINSERT_QE1 => R0;
GOTO TERM;
END;
END; "SWITCH
END;
0 =>R0;
TERM :
MON(TERMINATE, R0, R1, R7);
END "EVAP
ENDMODULE