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

⟦4b9c8df3b⟧ TextFile

    Length: 5056 (0x13c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »NØDSTOP.K«

Derivation

└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
    └─⟦this⟧ »NØDSTOP.K« 
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
    └─⟦this⟧ »NØDSTOP.K« 

Mikados K File

PROGRAM NØDSTOP;
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(NØDSTOP)             
  END                                       
END;
 
BEGIN
  FNAVN:='CPSTATUS:P1:1:S';
  REWRITE(CPSTATUS,FNAVN);IOC;
  SEEK(CPSTATUS,1);IOC;
  GET(CPSTATUS);IOC;
  (*$R-*) FUSK(1):=CPSTATUS^.CPPCB;(*$R+*)
  CLOSE(CPSTATUS);
  REPEAT
    REPEAT
      GOTOXY(1,20);
      WRITE('FILNR ');
      READLN;READ(I)
    UNTIL IORESULT=0;
    IF I>0 THEN
    BEGIN
      BESKED.KOMMANDO:=LUK;
      BESKED.INFO:=I;
      (*$XT*) WRITELN('SENDM LUK'); (*$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('LUKNING AFVIST, RETURN ',BESKED.INFO);
        READLN
      END 
    END
  UNTIL I=0
END.

Mikados K File

0x0000…0012 Line {l1=0x10, l2=»PROGRAM NØDSTOP;«, l3=0x10}
0x0012…0018 Line {l1=0x04, l2=»TYPE«, l3=0x04}
0x0018…0041 Line {l1=0x27, l2=»PARMARRAY=PACKED ARRAY (1..39) OF CHAR;«, l3=0x27}
0x0041…0057 Line {l1=0x14, l2=»NAME    =STRING(10);«, l3=0x14}
0x0057…006b Line {l1=0x12, l2=»PCB     =^INTEGER;«, l3=0x12}
0x006b…00b4 Line {l1=0x47, l2=»MESSAGETYPE=(ÅBEN,LUK,LÆSPOST,LÆSPOSTX,NÆSTE,NÆSTEX,SLET,SLETX,GEMPOST,«, l3=0x47}
0x00b4…0104 Line {l1=0x4e, l2=»             INDSÆT,INITIER,UTILMELD,UAFMELD,PTILMELD,PAFMELD,STOPSYS,        «, l3=0x4e}
0x0104…014e Line {l1=0x48, l2=»             RETURNHEAD,RETURNSTAT);                                    «, l3=0x48}
0x014e…015f Line {l1=0x0f, l2=»MESSAGE =RECORD«, l3=0x0f}
0x015f…0181 Line {l1=0x20, l2=»           KOMMANDO:MESSAGETYPE;«, l3=0x20}
0x0181…019b Line {l1=0x18, l2=»           INFO:INTEGER «, l3=0x18}
0x019b…01aa Line {l1=0x0d, l2=»         END;«, l3=0x0d}
0x01aa…01bb Line {l1=0x0f, l2=»CPSTAT  =RECORD«, l3=0x0f}
0x01bb…01de Line {l1=0x21, l2=»           CPPCB        :INTEGER;«, l3=0x21}
0x01de…0212 Line {l1=0x32, l2=»           STATUS       :ARRAY (1..100) OF INTEGER«, l3=0x32}
0x0212…0221 Line {l1=0x0d, l2=»         END;«, l3=0x0d}
0x0221…023b Line {l1=0x18, l2=»STATFILE=FILE OF CPSTAT;«, l3=0x18}
0x023b…025e Line {l1=0x21, l2=»AR      =ARRAY (0..0) OF INTEGER;«, l3=0x21}
0x025e…0272 Line {l1=0x12, l2=»VAR               «, l3=0x12}
0x0272…0288 Line {l1=0x14, l2=»FORCED  :^PARMARRAY;«, l3=0x14}
0x0288…029c Line {l1=0x12, l2=»CPSTATUS:STATFILE;«, l3=0x12}
0x029c…02aa Line {l1=0x0c, l2=»FUSK    :AR;«, l3=0x0c}
0x02aa…02b9 Line {l1=0x0d, l2=»CPPCB   :PCB;«, l3=0x0d}
0x02b9…02cc Line {l1=0x11, l2=»BESKED  :MESSAGE;«, l3=0x11}
0x02cc…02e2 Line {l1=0x14, l2=»FNAVN   :STRING(20);«, l3=0x14}
0x02e2…02e6 Line {l1=0x02, l2=»I,«, l3=0x02}
0x02e6…02f9 Line {l1=0x11, l2=»MLÆNGDE,         «, l3=0x11}
0x02f9…030c Line {l1=0x11, l2=»MSTATUS :INTEGER;«, l3=0x11}
0x030c…031c Line {l1=0x0e, l2=»SEMAFOR :NAME;«, l3=0x0e}
0x031c…0350 Line {l1=0x32, l2=»PROCEDURE SENDM(RECEIVER:PCB;VAR CONTENTS:MESSAGE;«, l3=0x32}
0x0350…038e Line {l1=0x3c, l2=»                LENGTH:INTEGER;VAR STATUS:INTEGER);EXTERNAL;«, l3=0x3c}
0x038e…03c5 Line {l1=0x35, l2=»PROCEDURE RECEIV(VAR SENDER:PCB;VAR CONTENTS:MESSAGE;«, l3=0x35}
0x03c5…03f5 Line {l1=0x2e, l2=»                 VAR LENGTH:INTEGER);EXTERNAL;«, l3=0x2e}
0x03f5…042d Line {l1=0x36, l2=»PROCEDURE RESERV(RESOURCE:NAME;EXCLUSIVE,WAIT:BOOLEAN;«, l3=0x36}
0x042d…045d Line {l1=0x2e, l2=»                 VAR STATUS:INTEGER);EXTERNAL;«, l3=0x2e}
0x045d…049b Line {l1=0x3c, l2=»PROCEDURE RELEAS(RESOURCE:NAME;VAR STATUS:INTEGER);EXTERNAL;«, l3=0x3c}
0x049b…04ab Line {l1=0x0e, l2=»PROCEDURE IOC;«, l3=0x0e}
0x04ab…04c2 Line {l1=0x15, l2=»VAR     CH:STRING(1);«, l3=0x15}
0x04c2…04d8 Line {l1=0x14, l2=»        IOR:INTEGER;«, l3=0x14}
0x04d8…04df Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x04df…04f1 Line {l1=0x10, l2=»  IOR:=IORESULT;«, l3=0x10}
0x04f1…051f Line {l1=0x2c, l2=»  IF IOR<>0 THEN                            «, l3=0x2c}
0x051f…054d Line {l1=0x2c, l2=»  BEGIN                                     «, l3=0x2c}
0x054d…057b Line {l1=0x2c, l2=»    CLEARSCREEN;                            «, l3=0x2c}
0x057b…05a9 Line {l1=0x2c, l2=»    GOTOXY(1,10);                           «, l3=0x2c}
0x05a9…05d7 Line {l1=0x2c, l2=»    WRITELN('Pladefejl ',IOR:5,' RETURN');  «, l3=0x2c}
0x05d7…0605 Line {l1=0x2c, l2=»    CH:=' ';                                «, l3=0x2c}
0x0605…0633 Line {l1=0x2c, l2=»    EDIT(CH);                               «, l3=0x2c}
0x0633…0663 Line {l1=0x2e, l2=»    IF CH<>'R' THEN EXIT(NØDSTOP)             «, l3=0x2e}
0x0663…0691 Line {l1=0x2c, l2=»  END                                       «, l3=0x2c}
0x0691…0697 Line {l1=0x04, l2=»END;«, l3=0x04}
0x0697…069a Line {l1=0x01, l2=» «, l3=0x01}
0x069a…06a1 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x06a1…06be Line {l1=0x1b, l2=»  FNAVN:='CPSTATUS:P1:1:S';«, l3=0x1b}
0x06be…06de Line {l1=0x1e, l2=»  REWRITE(CPSTATUS,FNAVN);IOC;«, l3=0x1e}
0x06de…06f7 Line {l1=0x17, l2=»  SEEK(CPSTATUS,1);IOC;«, l3=0x17}
0x06f7…070d Line {l1=0x14, l2=»  GET(CPSTATUS);IOC;«, l3=0x14}
0x070d…0739 Line {l1=0x2a, l2=»  (*$R-*) FUSK(1):=CPSTATUS^.CPPCB;(*$R+*)«, l3=0x2a}
0x0739…074d Line {l1=0x12, l2=»  CLOSE(CPSTATUS);«, l3=0x12}
0x074d…0757 Line {l1=0x08, l2=»  REPEAT«, l3=0x08}
0x0757…0763 Line {l1=0x0a, l2=»    REPEAT«, l3=0x0a}
0x0763…0778 Line {l1=0x13, l2=»      GOTOXY(1,20);«, l3=0x13}
0x0778…0790 Line {l1=0x16, l2=»      WRITE('FILNR ');«, l3=0x16}
0x0790…07a6 Line {l1=0x14, l2=»      READLN;READ(I)«, l3=0x14}
0x07a6…07bd Line {l1=0x15, l2=»    UNTIL IORESULT=0;«, l3=0x15}
0x07bd…07ce Line {l1=0x0f, l2=»    IF I>0 THEN«, l3=0x0f}
0x07ce…07d9 Line {l1=0x09, l2=»    BEGIN«, l3=0x09}
0x07d9…07f6 Line {l1=0x1b, l2=»      BESKED.KOMMANDO:=LUK;«, l3=0x1b}
0x07f6…080d Line {l1=0x15, l2=»      BESKED.INFO:=I;«, l3=0x15}
0x080d…083a Line {l1=0x2b, l2=»      (*$XT*) WRITELN('SENDM LUK'); (*$X-*)«, l3=0x2b}
0x083a…0860 Line {l1=0x24, l2=»      SENDM(CPPCB,BESKED,4,MSTATUS);«, l3=0x24}
0x0860…08a4 Line {l1=0x42, l2=»      IF MSTATUS<>0 THEN BEGIN WRITELN('2:',MSTATUS:5);READLN END;«, l3=0x42}
0x08a4…08ce Line {l1=0x28, l2=»      (*$XT*) WRITELN('RECEIV'); (*$X-*)«, l3=0x28}
0x08ce…08f3 Line {l1=0x23, l2=»      RECEIV(CPPCB,BESKED,MLÆNGDE);«, l3=0x23}
0x08f3…0911 Line {l1=0x1c, l2=»      IF BESKED.INFO<>0 THEN«, l3=0x1c}
0x0911…091e Line {l1=0x0b, l2=»      BEGIN«, l3=0x0b}
0x091e…0957 Line {l1=0x37, l2=»        WRITELN('LUKNING AFVIST, RETURN ',BESKED.INFO);«, l3=0x37}
0x0957…0967 Line {l1=0x0e, l2=»        READLN«, l3=0x0e}
0x0967…0973 Line {l1=0x0a, l2=»      END «, l3=0x0a}
0x0973…097c Line {l1=0x07, l2=»    END«, l3=0x07}
0x097c…0989 Line {l1=0x0b, l2=»  UNTIL I=0«, l3=0x0b}
0x0989…098f Line {l1=0x04, l2=»END.«, l3=0x04}
0x098f…09a0 00 00 42 45 53 4b 45 44 2c 4d 4c 5b 4e 47 44 45 29                                                ┆  BESKED,MLÆNGDE)┆
0x09a0…09c0 3b 23 28 20 20 20 20 20 20 28 2a 24 58 54 2a 29 20 57 52 49 54 45 4c 4e 28 27 52 45 4c 45 41 53   ┆;#(      (*$XT*) WRITELN('RELEAS┆
0x09c0…09e0 27 29 3b 20 28 2a 24 58 2d 2a 29 28 1e 20 20 20 20 20 20 52 45 4c 45 41 53 28 53 45 4d 41 46 4f   ┆'); (*$X-*)(       RELEAS(SEMAFO┆
0x09e0…0a00 52 2c 4d 53 54 41 54 55 53 29 3b 1e 42 20 20 20 20 20 20 49 46 20 4d 53 54 41 54 55 53 3c 3e 30   ┆R,MSTATUS); B      IF MSTATUS<>0┆
0x0a00…0a20 20 54 48 45 4e 20 42 45 47 49 4e 20 57 52 49 54 45 4c 4e 28 27 33 3a 27 2c 4d 53 54 41 54 55 53   ┆ THEN BEGIN WRITELN('3:',MSTATUS┆
0x0a20…0a40 3a 35 29 3b 52 45 41 44 4c 4e 20 45 4e 44 3b 42 1c 20 20 20 20 20 20 49 46 20 42 45 53 4b 45 44   ┆:5);READLN END;B       IF BESKED┆
0x0a40…0a60 2e 49 4e 46 4f 3c 3e 30 20 54 48 45 4e 1c 0b 20 20 20 20 20 20 42 45 47 49 4e 0b 37 20 20 20 20   ┆.INFO<>0 THEN        BEGIN 7    ┆
0x0a60…0a80 20 20 20 20 57 52 49 54 45 4c 4e 28 27 4c 55 4b 4e 49 4e 47 20 41 46 56 49 53 54 2c 20 52 45 54   ┆    WRITELN('LUKNING AFVIST, RET┆
0x0a80…0aa0 55 52 4e 20 27 2c 42 45 53 4b 45 44 2e 49 4e 46 4f 29 3b 37 0e 20 20 20 20 20 20 20 20 52 45 41   ┆URN ',BESKED.INFO);7         REA┆
0x0aa0…0ac0 44 4c 4e 0e 0a 20 20 20 20 20 20 45 4e 44 20 0a 07 20 20 20 20 45 4e 44 07 0b 20 20 55 4e 54 49   ┆DLN        END       END    UNTI┆
0x0ac0…0ae0 4c 20 49 3d 30 0b 04 45 4e 44 2e 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆L I=0  END.                     ┆
0x0ae0…0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
            […0x45…]
0x13a0…13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63   ┆                               c┆

Reduced view