|
|
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: 13460 (0x3494)
Types: TextFile
Names: »NEDP.S«
└─⟦ffe699cee⟧ Bits:30005101 8" CR80 Floppy CR80FD_0060 ( VOL: SCC.V NSC Directories: EVR.D OCP.D SCCINIT.D )
└─⟦9c1658a4c⟧
└─⟦this⟧ »EVR.D!NEDP.S«
MAINMODULE NEDP;
LABEL TERM;
CONST
ESCC_STA_E = #0010;
ESCC_STA_S = #0011;
ESCC_SCCM = #0012;
ESCC_NDIS = #0013;
ENODE_STA_E = #0020;
ENODE_STA_S = #0021;
ENODE_SCCM = #0022;
ENODE_NDIS = #0023;
ETR_STA_E = #0030;
ETR_STA_S = #0031;
ETR_NDIS = #0032;
ENNH_STA_E = #0040;
ENNH_STA_S = #0041;
ENNH_NDIS = #0042;
ENTL_STA_E = #0050;
ENTL_STA_S = #0051;
ENTL_NDIS = #0052;
%NOLIST
%SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S
%SOURCE @**GENS.D*SWELLPREFIX.D*MONITORNAMES.S
%SOURCE @**GENS.D*SWELLPREFIX.D*IOSPARAMS.S
%SOURCE @**SCCNAMES.D*SCCNAME.N
%SOURCE @**SCCNAMES.D*SCCDATA.N
%SOURCE @**SCCNAMES.D*SCCHEAD.N
%SOURCE @**SCCNAMES.D*SCCREC.N
%SOURCE @**SCCNAMES.D*SCC_MON.N
%SOURCE @**NSCNAMES.D*NSC.N
%LIST
%SOURCE FDT.N
%SOURCE DIS_DATA.N
%SOURCE DISPLAY.N
VAR
ND_STATUS : STAW;
MEDE_STA : M_ST;
NODE_STA : N_ST;
TR_STA : ARRAY[0..39] OF INTEGER;
SCC_STA : FST_HD;
MSG : ARRAY[0..4] OF INTEGER;
CONST
FST_OP = (IF_REL + SREAD + SWAIT + FST);
"*****************************************************************
PROCEDURE DISPLAY_SCC (R3; "SCC ID - IN BINARY
R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
ADDRESS(ND_STATUS) => R4;
HEADFST => R0 => R4@STAW.U.REC_D;
R3 => R4@STAW.U.ENT_D;
ADDRESS(SCC_STA) => R6 => R4@STAW.U.BUFA_D;
SIZE(SCC_STA) => R0 => R4@STAW.U.BUFZ_D;
SWITCH MON(STA,FST_OP, R4, R5, R7): ERR_SEM_OK TO
ERRS: BEGIN
ESCC_STA_E => R0;
EXIT(LINK=>R6, ERR);
END;
SEM : BEGIN
ESCC_STA_S => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
IF R3 = 0 THEN
BEGIN
R6@FST_HD.SCC_STC.SCC_STATE => R4;
ADDRESS(FIKS_D.COL_SCC) => R5;
END
ELSE BEGIN
R6@FST_HD.SCC_STR.SCC_STATE => R4;
ADDRESS(FIKS_D.REM_SCC) => R5;
END;
ADDRESS(FIKS_D) => R7;
R7@FIKS_DISPLAY.SCC_TABLE.D_BODY[R4] => R0 => R5@SCC_DISPLAY.BODY_USE;
R0 => N_DIS[2];
R7@FIKS_DISPLAY.SCC_TABLE.D_ID[R4] => R0 => R5@SCC_DISPLAY.ID_USE;
R0 => N_DIS[34];
SWITCH MON(SCCM, GET_NM_IDA, R0, R3, R7) TO
ERRS : BEGIN
ESCC_SCCM => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
R0 => N_DIS[35];
R5@SCC_DISPLAY.CENTER.X => R2 - 1 => N_DIS[4];
R5@SCC_DISPLAY.CENTER.Y => R2 - 1 => N_DIS[5];
SWITCH NET_DISPLAY(ADDRESS(N_DIS)=>R1, SIZE(N_DIS)=>R2, TV_FD=>R3, R6) TO
ERR : BEGIN
ESCC_NDIS => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DISPLAY_NODE (R3; "ENTRY NO.
R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
ADDRESS(ND_STATUS) => R4;
ENTFST_MEDE => R0 => R4@STAW.U.REC_D;
R3 => R4@STAW.U.ENT_D;
ADDRESS(MEDE_STA) => R6 => R4@STAW.U.BUFA_D;
SIZE(MEDE_STA) => R0 => R4@STAW.U.BUFZ_D;
SWITCH MON(STA,FST_OP, R4, R5, R7):ERR_SEM_OK TO
ERRS: BEGIN
ENODE_STA_E => R0;
EXIT(LINK=>R6, ERR);
END;
SEM : BEGIN
ENODE_STA_S => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
R6@M_ST.M_STATE => R4;
ADDRESS(FIKS_D) => R7;
ADDRESS(FIKS_D.NODEA) => R1;
SIZE(NM_DISPLAY) => R5;
R5@LONG * R3;
R5 + 1;
R7@FIKS_DISPLAY.NODE_TABLE.D_BODY[R4] => R0 => R5@NM_DISPLAY.BODY.BODY_USE;
R0 => N_DIS[2];
R7@FIKS_DISPLAY.NODE_TABLE.D_ID[R4] => R1 AND R0 => R5@NM_DISPLAY.BODY.ID_USE;
R1 => N_DIS[34];
R5@NM_DISPLAY.BODY.CENTER.X => R2 -1 => N_DIS[4];
R5@NM_DISPLAY.BODY.CENTER.Y => R2 -1 => N_DIS[5];
SWITCH MON(SCCM, GET_NM_IDA, R0, R3, R7) TO
ERRS : BEGIN
ENODE_SCCM => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
R0 => N_DIS[35];
SWITCH NET_DISPLAY(ADDRESS(N_DIS)=>R1, SIZE(N_DIS)=>R2, TV_FD=>R3, R6) TO
ERR : BEGIN
ENODE_NDIS => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DISPLAY_TRUNK( R2; "TRUNK NO. OR ALL TRUNK
R3; "ENTRY NO.
R6): ERROR_DONE;
VAR
LINK : INTEGER;
CONST
TR_SIZE = 5;
BEGIN
R6 => LINK;
ADDRESS(ND_STATUS) => R4;
ENTFST_TRUNK => R0 => 4@STAW.U.REC_D;
R3 => R4@STAW.U.ENT_D;
ADDRESS(TR_STA) => R0 => R4@STAW.U.BUFA_D;
SIZE(TR_STA) => R0 => R4@STAW.U.BUFZ_D;
SWITCH MON(STA, FST_OP,R4,R5,R7):ERR_SEM_OK TO
ERRS: BEGIN
ETR_STA_E => R0;
EXIT(LINK=>R6, ERR);
END;
SEM : BEGIN
ETR_STA_S => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
0 => R1;
ADDRESS(FIKS_D) => R7;
ADDRESS(FIKS_D.NODEA) => R1;
SIZE(NM_DISPLAY) => R5;
R5@LONG * R3;
R5 + R1;
REPEAT
TR_SIZE => R6;
IF R2 >= 0 THEN
R6@LONG * R2
ELSE BEGIN
R6@LONG * R1;
R1 + 1;
END;
TR_STA[R6] => R4;
IF R2 >= 0 THEN
R2 => R6
ELSE R1 => R6;
R7@FIKS_DISPLAY.NODE_TABLE.D_TRUNK[R4] => R0 => R5@NM_DISPLAY.TRUNK_USE[R6];
R0 => TR_DIS[1];
R5@NM_DISPLAY.TR_CONNECT[R6].X => R0 => TR_DIS[2];
R5@NM_DISPLAY.TR_CONNECT[R6].Y => R0 => TR_DIS[3];
R5@NM_DISPLAY.TR_BEND[R6].X => R0 => TR_DIS[5];
R5@NM_DISPLAY.TR_BEND[R6].Y => R0 => TR_DIS[6];
R5@NM_DISPLAY.NNH_BEND[R6].X => R0 => TR_DIS[7];
R5@NM_DISPLAY.NNH_BEND[R6].Y => R0 => TR_DIS[8];
SWITCH NET_DISPLAY(ADDRESS(TR_DIS)=>R1, SIZE(TR_DIS)=>R2, TV_FD=>R3, R6) TO
ERR : BEGIN
ETR_NDIS => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
UNTIL R2 + 1 >= 0;
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DISPLAY_NNH ( R2; "TRUNK NO. OR ALL TRUNK
R3; "ENTRY NO.
R6): ERROR_DONE;
VAR
LINK : INTEGER;
CONST
TR_SIZE = 5;
BEGIN
R6 => LINK;
ADDRESS(ND_STATUS) => R4;
ENTFST_TRUNK => R0 => 4@STAW.U.REC_D;
R3 => R4@STAW.U.ENT_D;
ADDRESS(TR_STA) => R0 => R4@STAW.U.BUFA_D;
SIZE(TR_STA) => R0 => R4@STAW.U.BUFZ_D;
SWITCH MON(STA,FST_OP,R4,R5,R7):ERR_SEM_OK TO
ERRS: BEGIN
ENNH_STA_E => R0;
EXIT(LINK=>R6, ERR);
END;
SEM : BEGIN
ENNH_STA_S => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
0 => R1;
ADDRESS(FIKS_D) => R7;
ADDRESS(FIKS_D.NODEA) => R1;
SIZE(NM_DISPLAY) => R5;
R5@LONG * R3;
R5 + R1;
REPEAT
TR_SIZE => R6;
IF R2 >= 0 THEN
R6@LONG * R2
ELSE BEGIN
R6@LONG * R1;
R1 + 1;
END;
TR_STA[R6 + 2] => R4;
IF R2 >= 0 THEN
R2 => R6
ELSE R1 => R6;
R7@FIKS_DISPLAY.NODE_TABLE.D_NEIGHBOR[R4] => R0 => R5@NM_DISPLAY.NNH_USE[R6];
R0 => TR_DIS[1];
R5@NM_DISPLAY.NNH_CONNECT[R6].X => R0 => TR_DIS[2];
R5@NM_DISPLAY.NNH_CONNECT[R6].Y => R0 => TR_DIS[3];
R5@NM_DISPLAY.NNH_BEND[R6].X => R0 => TR_DIS[5];
R5@NM_DISPLAY.NNH_BEND[R6].Y => R0 => TR_DIS[6];
SWITCH NET_DISPLAY(ADDRESS(NNH_DIS)=>R1, SIZE(NNH_DIS)=>R2, TV_FD=>R3, R6) TO
ERR : BEGIN
ENNH_NDIS => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
UNTIL R2 + 1 >= 0;
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DISPLAY_NTL (R3; "ENTRY NO.
R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
ADDRESS(ND_STATUS) => R4;
HEADFST => R0 => R4@STAW.U.REC_D;
R3 => R4@STAW.U.ENT_D;
ADDRESS(SCC_STA) => R6 => R4@STAW.U.BUFA_D;
SIZE(SCC_STA) => R0 => R4@STAW.U.BUFZ_D;
SWITCH MON(STA, FST_OP, R4, R5, R7):ERR_SEM_OK TO
ERRS: BEGIN
ENTL_STA_E => R0;
EXIT(LINK=>R6, ERR);
END;
SEM : BEGIN
ENTL_STA_S => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
IF R3 = 0 THEN
BEGIN
R6@FST_HD.SCC_STC.NL_ST => R4 ;
ADDRESS(FIKS_D.COL_SCC) => R5;
END
ELSE BEGIN
R6@FST_HD.SCC_STR.NL_ST => R4;
ADDRESS(FIKS_D.REM_SCC) => R5;
END;
R7@FIKS_DISPLAY.SCC_TABLE.D_NT[R4] => R0 => R5@SCC_DISPLAY.NT_DCMD_USE;
R0 => NT_DIS[1];
R5@SCC_DISPLAY.NT_CONNECT.X => R0 => NT_DIS[2];
R5@SCC_DISPLAY.NT_CONNECT.Y => R0 => NT_DIS[3];
R5@SCC_DISPLAY.NT_BEND1.X => R0 => NT_DIS[5];
R5@SCC_DISPLAY.NT_BEND1.Y => R0 => NT_DIS[6];
R5@SCC_DISPLAY.NT_BEND2.X => R0 => NT_DIS[7];
R5@SCC_DISPLAY.NT_BEND2.Y => R0 => NT_DIS[8];
R5@SCC_DISPLAY.NT_TERM.X => R0 => NT_DIS[9];
R5@SCC_DISPLAY.NT_TERM.Y => R0 => NT_DIS[10];
SWITCH NET_DISPLAY(ADDRESS(NT_DIS)=>R1, SIZE(NT_DIS)=>R2, TV_FD=>R3, R6) TO
ERR : BEGIN
ENTL_NDIS => R0;
EXIT(LINK=>R6, ERR);
END;
END; "SWITCH
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DIS_SCC (R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
SWITCH DISPLAY_SCC(0=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_SCC(1=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DIS_NODE (R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
SWITCH DISPLAY_NODE(0=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NODE(1=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NODE(2=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NODE(3=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NODE(4=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NODE(5=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NODE(6=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NODE(7=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DIS_NTL(R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
SWITCH DISPLAY_NTL(0=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NTL(1=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DIS_TR (R6):ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
SWITCH DISPLAY_TRUNK(-8=>R2, 0=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_TRUNK(-8=>R2, 1=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_TRUNK(-8=>R2, 2=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_TRUNK(-8=>R2, 3=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_TRUNK(-8=>R2, 4=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_TRUNK(-8=>R2, 5=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_TRUNK(-8=>R2, 6=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_TRUNK(-8=>R2, 7=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE DIS_NNH (R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
SWITCH DISPLAY_NNH(-8=>R2, 0=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NNH(-8=>R2, 1=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NNH(-8=>R2, 2=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NNH(-8=>R2, 3=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NNH(-8=>R2, 4=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NNH(-8=>R2, 5=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NNH(-8=>R2, 6=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DISPLAY_NNH(-8=>R2, 7=>R3, R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
EXIT(LINK);
END;
"*****************************************************************
PROCEDURE INIT_DISPLAY (R6): ERROR_DONE;
VAR
LINK : INTEGER;
BEGIN
R6 => LINK;
SWITCH DIS_SCC(R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DIS_NODE(R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DIS_NTL(R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
SWITCH DIS_TR(R6) TO
ERR : EXIT(LINK=>R6, ERR);
END;
EXIT(LINK);
END;
"*****************************************************************
BEGIN
MON(WAITEVENT, ADDRESS(MSG)=>R1, BMMESSAGE=>R2, R7);
MSG[2] => R0;
IF R0[13] THEN
BEGIN
IF R0[14] THEN
BEGIN
SWITCH DIS_TR(R6) TO
ERR : GOTO TERM;
END; "SWITCH
END
ELSE BEGIN
SWITCH DISPLAY_TRUNK(MSG[1]=>R2, MSG[0]=>R3, R6) TO
ERR : GOTO TERM;
END; "SWITCH
END;
END;
IF R0[12] THEN
BEGIN
IF R0[14] THEN
BEGIN
SWITCH DIS_NODE(R6) TO
ERR : GOTO TERM;
END;
END
ELSE BEGIN
SWITCH DISPLAY_NODE(MSG[0]=>R3, R6) TO
ERR : GOTO TERM;
END;
END;
END;
IF R0[11] THEN
BEGIN
IF R0[14] THEN
BEGIN
SWITCH DIS_SCC(R6) TO
ERR : GOTO TERM;
END;
END
ELSE BEGIN
IF R0[8] THEN
BEGIN
SWITCH DISPLAY_SCC(1=>R3, R6) TO
ERR : GOTO TERM;
END;
END
ELSE BEGIN
SWITCH DISPLAY_SCC(0=>R3, R6) TO
ERR : GOTO TERM;
END;
END;
END;
END;
IF R0[10] THEN
BEGIN
IF R0[14] THEN
BEGIN
SWITCH DIS_SCC(R6) TO
ERR : GOTO TERM;
END;
END
ELSE IF R0[8] THEN
BEGIN
SWITCH DISPLAY_NTL(1=>R3, R6) TO
ERR : GOTO TERM;
END;
END
ELSE BEGIN
SWITCH DISPLAY_NTL(0=>R3, R6) TO
ERR : GOTO TERM;
END;
END;
END;
IF R0[9] THEN
BEGIN
IF R0[14] THEN
BEGIN
SWITCH DIS_NNH(R6) TO
ERR : GOTO TERM;
END;
END
ELSE BEGIN
SWITCH DISPLAY_NNH(MSG[1]=>R2, MSG[0]=>R3, R6) TO
ERR : GOTO TERM;
END;
END;
END;
0 => R0;
TERM :
MON(TERMINATE, R0, R1, R7);
END
ENDMODULE
"***************************************************************** P