|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3744 (0xea0)
Types: TextFile
Notes: Mikados_K
Names: »STOP.K«
└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
└─⟦this⟧ »STOP.K«
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
└─⟦this⟧ »STOP.K«
PROGRAM STOP;
TYPE
PARMARRAY=PACKED ARRAY (1..39) OF CHAR;
NAME =STRING(10);
PCB =^INTEGER;
MESSAGETYPE=(ÅBEN,LUK,LÆSPOST,LÆSPOSTX,NÆSTE,NÆSTEX,SLET,SLETX,GEMPOST,
INDSÆT,INITIER,UTILMELD,UAFMELD,PTILMELD,PAFMELD,STOPSYS,
RETURNHEAD,RETURNSTAT);
MESSAGE =RECORD
KOMMANDO:MESSAGETYPE;
INFO:INTEGER
END;
CPSTAT =RECORD
CPPCB :INTEGER;
STATUS :ARRAY (1..100) OF INTEGER
END;
STATFILE=FILE OF CPSTAT;
AR =ARRAY (0..0) OF INTEGER;
VAR
FORCED :^PARMARRAY;
CPSTATUS:STATFILE;
FUSK :AR;
CPPCB :PCB;
BESKED :MESSAGE;
FNAVN :STRING(20);
I,
MLÆNGDE,
MSTATUS :INTEGER;
SEMAFOR :NAME;
PROCEDURE SENDM(RECEIVER:PCB;VAR CONTENTS:MESSAGE;
LENGTH:INTEGER;VAR STATUS:INTEGER);EXTERNAL;
PROCEDURE RECEIV(VAR SENDER:PCB;VAR CONTENTS:MESSAGE;
VAR LENGTH:INTEGER);EXTERNAL;
PROCEDURE RESERV(RESOURCE:NAME;EXCLUSIVE,WAIT:BOOLEAN;
VAR STATUS:INTEGER);EXTERNAL;
PROCEDURE RELEAS(RESOURCE:NAME;VAR STATUS:INTEGER);EXTERNAL;
PROCEDURE IOC;
VAR CH:STRING(1);
IOR:INTEGER;
BEGIN
IOR:=IORESULT;
IF IOR<>0 THEN
BEGIN
CLEARSCREEN;
GOTOXY(1,10);
WRITELN('Pladefejl ',IOR:5,' RETURN');
CH:=' ';
EDIT(CH);
IF CH<>'R' THEN EXIT(STOP)
END
END;
BEGIN
WRITELN('Systemet stoppes, VENT');
SEMAFOR:='CHECCPSTAT';
BESKED.INFO:=1;
(*$XT*) WRITELN('RESERV ',SEMAFOR); (*$X-*)
RESERV(SEMAFOR,TRUE,TRUE,MSTATUS);
IF MSTATUS<>0 THEN BEGIN WRITELN('1:',MSTATUS:5);READLN END;
FNAVN:='CPSTATUS:P1:1:S';
REWRITE(CPSTATUS,FNAVN);IOC;
SEEK(CPSTATUS,1);IOC;
GET(CPSTATUS);IOC;
IF CPSTATUS^.CPPCB<>0 THEN
BEGIN
(*$R-*) FUSK(1):=CPSTATUS^.CPPCB;(*$R+*)
BESKED.KOMMANDO:=STOPSYS;
IF FORCED^(1)='1' THEN BESKED.INFO:=1 ELSE BESKED.INFO:=0;
(*$XT*) WRITELN('SENDM STOPSYS'); (*$X-*)
SENDM(CPPCB,BESKED,4,MSTATUS);
IF MSTATUS<>0 THEN BEGIN WRITELN('2:',MSTATUS:5);READLN END;
(*$XT*) WRITELN('RECEIV'); (*$X-*)
RECEIV(CPPCB,BESKED,MLÆNGDE);
IF BESKED.INFO<>0 THEN
BEGIN
WRITELN('SYSTEMSTOP AFVIST, RETURN ',BESKED.INFO);
READLN
END
ELSE
BEGIN
CPSTATUS^.CPPCB:=0;
SEEK(CPSTATUS,1);IOC;
PUT(CPSTATUS);IOC
END;
END ELSE WRITELN('SYSTEMET VAR STOPPET');
CLOSE(CPSTATUS);IOC;
RELEAS(SEMAFOR,MSTATUS);
IF MSTATUS<>0 THEN BEGIN WRITELN('3:',MSTATUS:5);READLN END;
IF BESKED.INFO=0 THEN
WRITELN('SYSTEM STOPPET');
(*$XT*) WRITELN('STOP STOPPER') (*$X-*)
END.