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: 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