DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦9a73390fe⟧ TextFile

    Length: 3744 (0xea0)
    Types: TextFile
    Notes: Mikados_K
    Names: »STOP.K«

Derivation

└─⟦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« 

Mikados K File

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.

Full view