|
|
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: 5056 (0x13c0)
Types: TextFile
Notes: Mikados_K
Names: »START.K«
└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
└─⟦this⟧ »START.K«
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
└─⟦this⟧ »START.K«
PROGRAM START;
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(START)
END
END;
BEGIN
SEMAFOR:='CHECCPSTAT';
(*$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) OR (FORCED^(1)='1') THEN
BEGIN
FNAVN:='CP 1';
FNAVN(9):=CHR(16*3+1);
(*^BANKNR 1..4*)
(*$XT*) WRITELN('CHAIN CP'); (*$X-*)
CHAIN(FNAVN,' ',CPPCB);IOC;
(*$R-*) CPSTATUS^.CPPCB:=FUSK(1); (*$R+*)
SEEK(CPSTATUS,1);IOC;
PUT(CPSTATUS);IOC
END
ELSE (*$R-*) FUSK(1):=CPSTATUS^.CPPCB;(*$R+*)
CLOSE(CPSTATUS);
BESKED.KOMMANDO:=UTILMELD;
(*$XT*) WRITELN('SENDM UTILMELD'); (*$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);
(*$XT*) WRITELN('RELEAS'); (*$X-*)
RELEAS(SEMAFOR,MSTATUS);
IF MSTATUS<>0 THEN BEGIN WRITELN('3:',MSTATUS:5);READLN END;
IF BESKED.INFO<>0 THEN
BEGIN
WRITELN('TILMELDING AFVIST, RETURN ',BESKED.INFO);
READLN
END
ELSE
BEGIN
FNAVN:='023456+';
IF (FORCED^(1)='Æ') AND (FORCED^(2) IN (.'0'..'8'.)) THEN
FNAVN(1):=FORCED^(2);
(*^NIVEAU*)
(*$R-*)
IF FUSK(1)<0 THEN
BEGIN
FUSK(1):=-FUSK(1);
FNAVN(7):='-'
END;
FOR I:=2 TO 6 DO
BEGIN (*CP'S PCB*)
FNAVN(I):=CHR(FUSK(1) MOD 10 +48);
FUSK(1):=FUSK(1) DIV 10
END;
(*$R+*)
(*$XT*) WRITELN('CHAIN HOVED'); (*$X-*)
CHAIN('HOVED *1',FNAVN,CPPCB);IOC
END;
(*$XT*) WRITELN('START STOPPER') (*$X-*)
END.
0x0000…0010 Line {l1=0x0e, l2=»PROGRAM START;«, l3=0x0e}
0x0010…0016 Line {l1=0x04, l2=»TYPE«, l3=0x04}
0x0016…003f Line {l1=0x27, l2=»PARMARRAY=PACKED ARRAY (1..39) OF CHAR;«, l3=0x27}
0x003f…0055 Line {l1=0x14, l2=»NAME =STRING(10);«, l3=0x14}
0x0055…0069 Line {l1=0x12, l2=»PCB =^INTEGER;«, l3=0x12}
0x0069…00b2 Line {l1=0x47, l2=»MESSAGETYPE=(ÅBEN,LUK,LÆSPOST,LÆSPOSTX,NÆSTE,NÆSTEX,SLET,SLETX,GEMPOST,«, l3=0x47}
0x00b2…0102 Line {l1=0x4e, l2=» INDSÆT,INITIER,UTILMELD,UAFMELD,PTILMELD,PAFMELD,STOPSYS, «, l3=0x4e}
0x0102…014c Line {l1=0x48, l2=» RETURNHEAD,RETURNSTAT); «, l3=0x48}
0x014c…015d Line {l1=0x0f, l2=»MESSAGE =RECORD«, l3=0x0f}
0x015d…017f Line {l1=0x20, l2=» KOMMANDO:MESSAGETYPE;«, l3=0x20}
0x017f…0199 Line {l1=0x18, l2=» INFO:INTEGER «, l3=0x18}
0x0199…01a8 Line {l1=0x0d, l2=» END;«, l3=0x0d}
0x01a8…01b9 Line {l1=0x0f, l2=»CPSTAT =RECORD«, l3=0x0f}
0x01b9…01dc Line {l1=0x21, l2=» CPPCB :INTEGER;«, l3=0x21}
0x01dc…0210 Line {l1=0x32, l2=» STATUS :ARRAY (1..100) OF INTEGER«, l3=0x32}
0x0210…021f Line {l1=0x0d, l2=» END;«, l3=0x0d}
0x021f…0239 Line {l1=0x18, l2=»STATFILE=FILE OF CPSTAT;«, l3=0x18}
0x0239…025c Line {l1=0x21, l2=»AR =ARRAY (0..0) OF INTEGER;«, l3=0x21}
0x025c…0270 Line {l1=0x12, l2=»VAR «, l3=0x12}
0x0270…0286 Line {l1=0x14, l2=»FORCED :^PARMARRAY;«, l3=0x14}
0x0286…029a Line {l1=0x12, l2=»CPSTATUS:STATFILE;«, l3=0x12}
0x029a…02a8 Line {l1=0x0c, l2=»FUSK :AR;«, l3=0x0c}
0x02a8…02b7 Line {l1=0x0d, l2=»CPPCB :PCB;«, l3=0x0d}
0x02b7…02ca Line {l1=0x11, l2=»BESKED :MESSAGE;«, l3=0x11}
0x02ca…02e0 Line {l1=0x14, l2=»FNAVN :STRING(20);«, l3=0x14}
0x02e0…02e4 Line {l1=0x02, l2=»I,«, l3=0x02}
0x02e4…02f7 Line {l1=0x11, l2=»MLÆNGDE, «, l3=0x11}
0x02f7…030a Line {l1=0x11, l2=»MSTATUS :INTEGER;«, l3=0x11}
0x030a…031a Line {l1=0x0e, l2=»SEMAFOR :NAME;«, l3=0x0e}
0x031a…034e Line {l1=0x32, l2=»PROCEDURE SENDM(RECEIVER:PCB;VAR CONTENTS:MESSAGE;«, l3=0x32}
0x034e…038c Line {l1=0x3c, l2=» LENGTH:INTEGER;VAR STATUS:INTEGER);EXTERNAL;«, l3=0x3c}
0x038c…03c3 Line {l1=0x35, l2=»PROCEDURE RECEIV(VAR SENDER:PCB;VAR CONTENTS:MESSAGE;«, l3=0x35}
0x03c3…03f3 Line {l1=0x2e, l2=» VAR LENGTH:INTEGER);EXTERNAL;«, l3=0x2e}
0x03f3…042b Line {l1=0x36, l2=»PROCEDURE RESERV(RESOURCE:NAME;EXCLUSIVE,WAIT:BOOLEAN;«, l3=0x36}
0x042b…045b Line {l1=0x2e, l2=» VAR STATUS:INTEGER);EXTERNAL;«, l3=0x2e}
0x045b…0499 Line {l1=0x3c, l2=»PROCEDURE RELEAS(RESOURCE:NAME;VAR STATUS:INTEGER);EXTERNAL;«, l3=0x3c}
0x0499…04a9 Line {l1=0x0e, l2=»PROCEDURE IOC;«, l3=0x0e}
0x04a9…04c0 Line {l1=0x15, l2=»VAR CH:STRING(1);«, l3=0x15}
0x04c0…04d6 Line {l1=0x14, l2=» IOR:INTEGER;«, l3=0x14}
0x04d6…04dd Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x04dd…04ef Line {l1=0x10, l2=» IOR:=IORESULT;«, l3=0x10}
0x04ef…051d Line {l1=0x2c, l2=» IF IOR<>0 THEN «, l3=0x2c}
0x051d…054b Line {l1=0x2c, l2=» BEGIN «, l3=0x2c}
0x054b…0579 Line {l1=0x2c, l2=» CLEARSCREEN; «, l3=0x2c}
0x0579…05a7 Line {l1=0x2c, l2=» GOTOXY(1,10); «, l3=0x2c}
0x05a7…05d5 Line {l1=0x2c, l2=» WRITELN('Pladefejl ',IOR:5,' RETURN'); «, l3=0x2c}
0x05d5…0603 Line {l1=0x2c, l2=» CH:=' '; «, l3=0x2c}
0x0603…0631 Line {l1=0x2c, l2=» EDIT(CH); «, l3=0x2c}
0x0631…065f Line {l1=0x2c, l2=» IF CH<>'R' THEN EXIT(START) «, l3=0x2c}
0x065f…068d Line {l1=0x2c, l2=» END «, l3=0x2c}
0x068d…0693 Line {l1=0x04, l2=»END;«, l3=0x04}
0x0693…0696 Line {l1=0x01, l2=» «, l3=0x01}
0x0696…069d Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x069d…06b7 Line {l1=0x18, l2=» SEMAFOR:='CHECCPSTAT';«, l3=0x18}
0x06b7…06e6 Line {l1=0x2d, l2=» (*$XT*) WRITELN('RESERV ',SEMAFOR); (*$X-*)«, l3=0x2d}
0x06e6…070c Line {l1=0x24, l2=» RESERV(SEMAFOR,TRUE,TRUE,MSTATUS);«, l3=0x24}
0x070c…074c Line {l1=0x3e, l2=» IF MSTATUS<>0 THEN BEGIN WRITELN('1:',MSTATUS:5);READLN END;«, l3=0x3e}
0x074c…0769 Line {l1=0x1b, l2=» FNAVN:='CPSTATUS:P1:1:S';«, l3=0x1b}
0x0769…0789 Line {l1=0x1e, l2=» REWRITE(CPSTATUS,FNAVN);IOC;«, l3=0x1e}
0x0789…07a2 Line {l1=0x17, l2=» SEEK(CPSTATUS,1);IOC;«, l3=0x17}
0x07a2…07b8 Line {l1=0x14, l2=» GET(CPSTATUS);IOC;«, l3=0x14}
0x07b8…07eb Line {l1=0x31, l2=» IF (CPSTATUS^.CPPCB=0) OR (FORCED^(1)='1') THEN«, l3=0x31}
0x07eb…07f4 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x07f4…080e Line {l1=0x18, l2=» FNAVN:='CP 1';«, l3=0x18}
0x080e…082a Line {l1=0x1a, l2=» FNAVN(9):=CHR(16*3+1);«, l3=0x1a}
0x082a…084f Line {l1=0x23, l2=» (*^BANKNR 1..4*)«, l3=0x23}
0x084f…0879 Line {l1=0x28, l2=» (*$XT*) WRITELN('CHAIN CP'); (*$X-*)«, l3=0x28}
0x0879…089a Line {l1=0x1f, l2=» CHAIN(FNAVN,' ',CPPCB);IOC;«, l3=0x1f}
0x089a…08c9 Line {l1=0x2d, l2=» (*$R-*) CPSTATUS^.CPPCB:=FUSK(1); (*$R+*)«, l3=0x2d}
0x08c9…08e4 Line {l1=0x19, l2=» SEEK(CPSTATUS,1);IOC;«, l3=0x19}
0x08e4…08fc Line {l1=0x16, l2=» PUT(CPSTATUS);IOC «, l3=0x16}
0x08fc…0904 Line {l1=0x06, l2=» END «, l3=0x06}
0x0904…0935 Line {l1=0x2f, l2=» ELSE (*$R-*) FUSK(1):=CPSTATUS^.CPPCB;(*$R+*)«, l3=0x2f}
0x0935…0949 Line {l1=0x12, l2=» CLOSE(CPSTATUS);«, l3=0x12}
0x0949…0967 Line {l1=0x1c, l2=» BESKED.KOMMANDO:=UTILMELD;«, l3=0x1c}
0x0967…0995 Line {l1=0x2c, l2=» (*$XT*) WRITELN('SENDM UTILMELD'); (*$X-*)«, l3=0x2c}
0x0995…09b7 Line {l1=0x20, l2=» SENDM(CPPCB,BESKED,4,MSTATUS);«, l3=0x20}
0x09b7…09f7 Line {l1=0x3e, l2=» IF MSTATUS<>0 THEN BEGIN WRITELN('2:',MSTATUS:5);READLN END;«, l3=0x3e}
0x09f7…0a1d Line {l1=0x24, l2=» (*$XT*) WRITELN('RECEIV'); (*$X-*)«, l3=0x24}
0x0a1d…0a3e Line {l1=0x1f, l2=» RECEIV(CPPCB,BESKED,MLÆNGDE);«, l3=0x1f}
0x0a3e…0a64 Line {l1=0x24, l2=» (*$XT*) WRITELN('RELEAS'); (*$X-*)«, l3=0x24}
0x0a64…0a80 Line {l1=0x1a, l2=» RELEAS(SEMAFOR,MSTATUS);«, l3=0x1a}
0x0a80…0ac0 Line {l1=0x3e, l2=» IF MSTATUS<>0 THEN BEGIN WRITELN('3:',MSTATUS:5);READLN END;«, l3=0x3e}
0x0ac0…0ada Line {l1=0x18, l2=» IF BESKED.INFO<>0 THEN«, l3=0x18}
0x0ada…0ae3 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x0ae3…0b1b Line {l1=0x36, l2=» WRITELN('TILMELDING AFVIST, RETURN ',BESKED.INFO);«, l3=0x36}
0x0b1b…0b27 Line {l1=0x0a, l2=» READLN«, l3=0x0a}
0x0b27…0b2e Line {l1=0x05, l2=» END«, l3=0x05}
0x0b2e…0b36 Line {l1=0x06, l2=» ELSE«, l3=0x06}
0x0b36…0b3f Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x0b3f…0b5a Line {l1=0x19, l2=» FNAVN:='023456+'; «, l3=0x19}
0x0b5a…0b99 Line {l1=0x3d, l2=» IF (FORCED^(1)='Æ') AND (FORCED^(2) IN (.'0'..'8'.)) THEN«, l3=0x3d}
0x0b99…0bb7 Line {l1=0x1c, l2=» FNAVN(1):=FORCED^(2);«, l3=0x1c}
0x0bb7…0bce Line {l1=0x15, l2=» (*^NIVEAU*)«, l3=0x15}
0x0bce…0bdb Line {l1=0x0b, l2=» (*$R-*)«, l3=0x0b}
0x0bdb…0bf2 Line {l1=0x15, l2=» IF FUSK(1)<0 THEN«, l3=0x15}
0x0bf2…0bfd Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x0bfd…0c17 Line {l1=0x18, l2=» FUSK(1):=-FUSK(1);«, l3=0x18}
0x0c17…0c2d Line {l1=0x14, l2=» FNAVN(7):='-' «, l3=0x14}
0x0c2d…0c37 Line {l1=0x08, l2=» END;«, l3=0x08}
0x0c37…0c4e Line {l1=0x15, l2=» FOR I:=2 TO 6 DO «, l3=0x15}
0x0c4e…0c66 Line {l1=0x16, l2=» BEGIN (*CP'S PCB*)«, l3=0x16}
0x0c66…0c98 Line {l1=0x30, l2=» FNAVN(I):=CHR(FUSK(1) MOD 10 +48); «, l3=0x30}
0x0c98…0cb7 Line {l1=0x1d, l2=» FUSK(1):=FUSK(1) DIV 10«, l3=0x1d}
0x0cb7…0cc1 Line {l1=0x08, l2=» END;«, l3=0x08}
0x0cc1…0cce Line {l1=0x0b, l2=» (*$R+*)«, l3=0x0b}
0x0cce…0cfb Line {l1=0x2b, l2=» (*$XT*) WRITELN('CHAIN HOVED'); (*$X-*)«, l3=0x2b}
0x0cfb…0d24 Line {l1=0x27, l2=» CHAIN('HOVED *1',FNAVN,CPPCB);IOC«, l3=0x27}
0x0d24…0d2c Line {l1=0x06, l2=» END;«, l3=0x06}
0x0d2c…0d58 Line {l1=0x2a, l2=» (*$XT*) WRITELN('START STOPPER') (*$X-*)«, l3=0x2a}
0x0d58…0d5e Line {l1=0x04, l2=»END.«, l3=0x04}
0x0d5e…0d60 00 00 ┆ ┆
0x0d60…0d80 52 27 29 20 28 2a 24 58 2d 2a 29 2a 04 45 4e 44 2e 04 00 00 63 63 63 63 63 63 63 63 63 63 63 63 ┆R') (*$X-*)* END. cccccccccccc┆
0x0d80…0da0 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x1…]
0x0dc0…0de0 14 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆ ccccccccccccccccccccccccccccccc┆
0x0de0…0e00 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x6…]
0x0ec0…0ee0 14 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆ ccccccccccccccccccccccccccccccc┆
0x0ee0…0f00 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x6…]
0x0fc0…0fe0 24 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆$ccccccccccccccccccccccccccccccc┆
0x0fe0…1000 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x6…]
0x10c0…10e0 24 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆$ccccccccccccccccccccccccccccccc┆
0x10e0…1100 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x6…]
0x11c0…11e0 24 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆$ccccccccccccccccccccccccccccccc┆
0x11e0…1200 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x6…]
0x12c0…12e0 24 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆$ccccccccccccccccccccccccccccccc┆
0x12e0…1300 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x4…]
0x1380…13a0 e4 00 00 00 ff 00 ff 00 e5 00 00 00 ff 00 ff 00 e6 00 00 00 ff 00 ff 00 e7 00 00 00 ff 00 ff 00 ┆ ┆
0x13a0…13c0 e8 00 00 00 ff 00 ff 00 e9 00 00 00 ff 00 ff 00 ea 00 00 00 ff 00 ff 00 eb 00 00 00 ff 00 ff 63 ┆ c┆