|
|
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: 2496 (0x9c0)
Types: TextFile
Notes: Mikados_K
Names: »CHAINOS.K«
└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
└─⟦this⟧ »CHAINOS.K«
PROGRAM CHAINOS;
TYPE PCB=^INTEGER;
AR=ARRAY (0..0) OF INTEGER;
MESSAGE=ARRAY (1..3) OF INTEGER;
ALLOPTR=^AR;
VAR ISF:AR;
SEND:PCB;
TRANS:ALLOPTR;
POST:MESSAGE;
PROG:STRING(10);
PARM:STRING(15);
STAT,LÆNGDE:INTEGER;
(*$R-*)
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 ALLOCA(VAR ADDRESS:ALLOPTR;
LENGTH:INTEGER;
VAR STATUS:INTEGER);
EXTERNAL;
PROCEDURE DEALLO(ADDRESS:ALLOPTR;
VAR STATUS:INTEGER);
EXTERNAL;
FUNCTION PROBLK:PCB;
EXTERNAL;
PROCEDURE WASTE;
BEGIN
REPEAT
WRITELN('SEND 1, MODTAG 2');
READLN;READ(STAT);
CASE STAT OF
2:BEGIN RECEIV(SEND,POST,LÆNGDE);
WRITELN('CP MODTOG ',POST(1):5,POST(2):5,POST(3):5,STAT:5);
ISF(2):=POST(2);
FOR STAT:=0 TO POST(3) DIV 2 -1 DO WRITELN(TRANS^(STAT):5);
DEALLO(TRANS,STAT);
WRITELN('DEALLO STAT ',STAT:5)
END;
1:BEGIN
LÆNGDE:=6;
REPEAT
READLN;READ(POST(3));
ALLOCA(TRANS,POST(3),STAT);
WRITELN('ALLOCA STAT ',STAT:5);
UNTIL STAT=0;
FOR STAT:=0 TO POST(3) DIV 2 -1 DO TRANS^(STAT):=STAT;
POST(2):=ISF(2);
SENDM(SEND,POST,LÆNGDE,STAT);
WRITELN('CP SENDT STAT ',STAT:5);
END;
END;
UNTIL POST(1)=499
END;
BEGIN
PROG:='SUBMIT 3';
PROG(9):=CHR(16*2+1);
PARM:='2,HAHA:P1, ';
SEND:=PROBLK;
FOR LÆNGDE:=11 TO 15 DO
BEGIN
PARM(LÆNGDE):=CHR(ISF(1) MOD 10+48);
ISF(1):=ISF(1) DIV 10
END;
CHAIN(PROG,PARM,SEND);
PROG:='SUBMIT 3';
PROG(9):=CHR(16*1+1);
PARM:='1,HAHA:P1, ';
SEND:=PROBLK;
FOR LÆNGDE:=11 TO 15 DO
BEGIN
PARM(LÆNGDE):=CHR(ISF(1) MOD 10+48);
ISF(1):=ISF(1) DIV 10
END;
CHAIN(PROG,PARM,SEND);
WASTE;
END.
0x000…012 Line {l1=0x10, l2=»PROGRAM CHAINOS;«, l3=0x10}
0x012…026 Line {l1=0x12, l2=»TYPE PCB=^INTEGER;«, l3=0x12}
0x026…048 Line {l1=0x20, l2=» AR=ARRAY (0..0) OF INTEGER;«, l3=0x20}
0x048…06f Line {l1=0x25, l2=» MESSAGE=ARRAY (1..3) OF INTEGER;«, l3=0x25}
0x06f…082 Line {l1=0x11, l2=» ALLOPTR=^AR;«, l3=0x11}
0x082…08f Line {l1=0x0b, l2=»VAR ISF:AR;«, l3=0x0b}
0x08f…09e Line {l1=0x0d, l2=» SEND:PCB;«, l3=0x0d}
0x09e…0b2 Line {l1=0x12, l2=» TRANS:ALLOPTR;«, l3=0x12}
0x0b2…0c5 Line {l1=0x11, l2=» POST:MESSAGE;«, l3=0x11}
0x0c5…0db Line {l1=0x14, l2=» PROG:STRING(10);«, l3=0x14}
0x0db…0f1 Line {l1=0x14, l2=» PARM:STRING(15);«, l3=0x14}
0x0f1…10b Line {l1=0x18, l2=» STAT,LÆNGDE:INTEGER;«, l3=0x18}
0x10b…114 Line {l1=0x07, l2=»(*$R-*)«, l3=0x07}
0x114…157 Line {l1=0x41, l2=»PROCEDURE SENDM(RECEIVER:PCB;VAR CONTENTS:MESSAGE;LENGTH:INTEGER;«, l3=0x41}
0x157…17d Line {l1=0x24, l2=» VAR STATUS:INTEGER);«, l3=0x24}
0x17d…188 Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x188…1d3 Line {l1=0x49, l2=»PROCEDURE RECEIV(VAR SENDER:PCB;VAR CONTENTS:MESSAGE;VAR LENGTH:INTEGER);«, l3=0x49}
0x1d3…1de Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x1de…205 Line {l1=0x25, l2=»PROCEDURE ALLOCA(VAR ADDRESS:ALLOPTR;«, l3=0x25}
0x205…22b Line {l1=0x24, l2=» LENGTH:INTEGER;«, l3=0x24}
0x22b…252 Line {l1=0x25, l2=» VAR STATUS:INTEGER);«, l3=0x25}
0x252…25d Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x25d…280 Line {l1=0x21, l2=»PROCEDURE DEALLO(ADDRESS:ALLOPTR;«, l3=0x21}
0x280…2a7 Line {l1=0x25, l2=» VAR STATUS:INTEGER);«, l3=0x25}
0x2a7…2b2 Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x2b2…2c8 Line {l1=0x14, l2=»FUNCTION PROBLK:PCB;«, l3=0x14}
0x2c8…2d3 Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x2d3…2e5 Line {l1=0x10, l2=»PROCEDURE WASTE;«, l3=0x10}
0x2e5…2ec Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x2ec…2f6 Line {l1=0x08, l2=» REPEAT«, l3=0x08}
0x2f6…318 Line {l1=0x20, l2=» WRITELN('SEND 1, MODTAG 2');«, l3=0x20}
0x318…330 Line {l1=0x16, l2=» READLN;READ(STAT);«, l3=0x16}
0x330…342 Line {l1=0x10, l2=» CASE STAT OF«, l3=0x10}
0x342…369 Line {l1=0x25, l2=» 2:BEGIN RECEIV(SEND,POST,LÆNGDE);«, l3=0x25}
0x369…3ad Line {l1=0x42, l2=» WRITELN('CP MODTOG ',POST(1):5,POST(2):5,POST(3):5,STAT:5);«, l3=0x42}
0x3ad…3c6 Line {l1=0x17, l2=» ISF(2):=POST(2);«, l3=0x17}
0x3c6…40a Line {l1=0x42, l2=» FOR STAT:=0 TO POST(3) DIV 2 -1 DO WRITELN(TRANS^(STAT):5);«, l3=0x42}
0x40a…426 Line {l1=0x1a, l2=» DEALLO(TRANS,STAT);«, l3=0x1a}
0x426…44d Line {l1=0x25, l2=» WRITELN('DEALLO STAT ',STAT:5)«, l3=0x25}
0x44d…459 Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x459…466 Line {l1=0x0b, l2=» 1:BEGIN«, l3=0x0b}
0x466…479 Line {l1=0x11, l2=» LÆNGDE:=6;«, l3=0x11}
0x479…487 Line {l1=0x0c, l2=» REPEAT«, l3=0x0c}
0x487…4a5 Line {l1=0x1c, l2=» READLN;READ(POST(3));«, l3=0x1c}
0x4a5…4c9 Line {l1=0x22, l2=» ALLOCA(TRANS,POST(3),STAT);«, l3=0x22}
0x4c9…4f1 Line {l1=0x26, l2=» WRITELN('ALLOCA STAT ',STAT:5);«, l3=0x26}
0x4f1…506 Line {l1=0x13, l2=» UNTIL STAT=0;«, l3=0x13}
0x506…545 Line {l1=0x3d, l2=» FOR STAT:=0 TO POST(3) DIV 2 -1 DO TRANS^(STAT):=STAT;«, l3=0x3d}
0x545…55e Line {l1=0x17, l2=» POST(2):=ISF(2);«, l3=0x17}
0x55e…584 Line {l1=0x24, l2=» SENDM(SEND,POST,LÆNGDE,STAT);«, l3=0x24}
0x584…5ae Line {l1=0x28, l2=» WRITELN('CP SENDT STAT ',STAT:5);«, l3=0x28}
0x5ae…5ba Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x5ba…5c4 Line {l1=0x08, l2=» END;«, l3=0x08}
0x5c4…5d9 Line {l1=0x13, l2=» UNTIL POST(1)=499«, l3=0x13}
0x5d9…5df Line {l1=0x04, l2=»END;«, l3=0x04}
0x5df…5e6 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x5e6…5fd Line {l1=0x15, l2=» PROG:='SUBMIT 3';«, l3=0x15}
0x5fd…616 Line {l1=0x17, l2=» PROG(9):=CHR(16*2+1);«, l3=0x17}
0x616…632 Line {l1=0x1a, l2=» PARM:='2,HAHA:P1, ';«, l3=0x1a}
0x632…643 Line {l1=0x0f, l2=» SEND:=PROBLK;«, l3=0x0f}
0x643…65e Line {l1=0x19, l2=» FOR LÆNGDE:=11 TO 15 DO«, l3=0x19}
0x65e…667 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x667…691 Line {l1=0x28, l2=» PARM(LÆNGDE):=CHR(ISF(1) MOD 10+48);«, l3=0x28}
0x691…6ac Line {l1=0x19, l2=» ISF(1):=ISF(1) DIV 10«, l3=0x19}
0x6ac…6b4 Line {l1=0x06, l2=» END;«, l3=0x06}
0x6b4…6ce Line {l1=0x18, l2=» CHAIN(PROG,PARM,SEND);«, l3=0x18}
0x6ce…6e5 Line {l1=0x15, l2=» PROG:='SUBMIT 3';«, l3=0x15}
0x6e5…6fe Line {l1=0x17, l2=» PROG(9):=CHR(16*1+1);«, l3=0x17}
0x6fe…71a Line {l1=0x1a, l2=» PARM:='1,HAHA:P1, ';«, l3=0x1a}
0x71a…72b Line {l1=0x0f, l2=» SEND:=PROBLK;«, l3=0x0f}
0x72b…746 Line {l1=0x19, l2=» FOR LÆNGDE:=11 TO 15 DO«, l3=0x19}
0x746…74f Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x74f…779 Line {l1=0x28, l2=» PARM(LÆNGDE):=CHR(ISF(1) MOD 10+48);«, l3=0x28}
0x779…794 Line {l1=0x19, l2=» ISF(1):=ISF(1) DIV 10«, l3=0x19}
0x794…79c Line {l1=0x06, l2=» END;«, l3=0x06}
0x79c…7b6 Line {l1=0x18, l2=» CHAIN(PROG,PARM,SEND);«, l3=0x18}
0x7b6…7c0 Line {l1=0x08, l2=» WASTE;«, l3=0x08}
0x7c0…7c6 Line {l1=0x04, l2=»END.«, l3=0x04}
0x7c6…7e0 00 00 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆ cccccccccccccccccccccccc┆
0x7e0…800 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┆
[…0xd…]
0x9a0…9c0 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 00 ┆ccccccccccccccccccccccccccccccc ┆
▶10◀PROGRAM CHAINOS;▶10◀▶12◀TYPE PCB=^INTEGER;▶12◀ AR=ARRAY (0..0) OF INTEGER; % MESSAGE=ARRAY (1..3) OF INTEGER;%▶11◀ ALLOPTR=^AR;▶11◀▶0b◀VAR ISF:AR;▶0b◀\r SEND:PCB;\r▶12◀ TRANS:ALLOPTR;▶12◀▶11◀ POST:MESSAGE;▶11◀▶14◀ PROG:STRING(10);▶14◀▶14◀ PARM:STRING(15);▶14◀▶18◀ STAT,LÆNGDE:INTEGER;▶18◀▶07◀(*$R-*)▶07◀APROCEDURE SENDM(RECEIVER:PCB;VAR CONTENTS:MESSAGE;LENGTH:INTEGER;A$ VAR STATUS:INTEGER);$ EXTERNAL; IPROCEDURE RECEIV(VAR SENDER:PCB;VAR CONTENTS:MESSAGE;VAR LENGTH:INTEGER);I EXTERNAL; %PROCEDURE ALLOCA(VAR ADDRESS:ALLOPTR;%$ LENGTH:INTEGER;$% VAR STATUS:INTEGER);% EXTERNAL; !PROCEDURE DEALLO(ADDRESS:ALLOPTR;!% VAR STATUS:INTEGER);% EXTERNAL; ▶14◀FUNCTION PROBLK:PCB;▶14◀ EXTERNAL; ▶10◀PROCEDURE WASTE;▶10◀▶05◀BEGIN▶05◀▶08◀ REPEAT▶08◀ WRITELN('SEND 1, MODTAG 2'); ▶16◀ READLN;READ(STAT);▶16◀▶10◀ CASE STAT OF▶10◀% 2:BEGIN RECEIV(SEND,POST,LÆNGDE);%B WRITELN('CP MODTOG ',POST(1):5,POST(2):5,POST(3):5,STAT:5);B▶17◀ ISF(2):=POST(2);▶17◀B FOR STAT:=0 TO POST(3) DIV 2 -1 DO WRITELN(TRANS^(STAT):5);B▶1a◀ DEALLO(TRANS,STAT);▶1a◀% WRITELN('DEALLO STAT ',STAT:5)%
END;
▶0b◀ 1:BEGIN▶0b◀▶11◀ LÆNGDE:=6;▶11◀\f
REPEAT\f
▶1c◀ READLN;READ(POST(3));▶1c◀" ALLOCA(TRANS,POST(3),STAT);"& WRITELN('ALLOCA STAT ',STAT:5);&▶13◀ UNTIL STAT=0;▶13◀= FOR STAT:=0 TO POST(3) DIV 2 -1 DO TRANS^(STAT):=STAT;=▶17◀ POST(2):=ISF(2);▶17◀$ SENDM(SEND,POST,LÆNGDE,STAT);$( WRITELN('CP SENDT STAT ',STAT:5);(
END;
▶08◀ END;▶08◀▶13◀ UNTIL POST(1)=499▶13◀▶04◀END;▶04◀▶05◀BEGIN▶05◀▶15◀ PROG:='SUBMIT 3';▶15◀▶17◀ PROG(9):=CHR(16*2+1);▶17◀▶1a◀ PARM:='2,HAHA:P1, ';▶1a◀▶0f◀ SEND:=PROBLK;▶0f◀▶19◀ FOR LÆNGDE:=11 TO 15 DO▶19◀▶07◀ BEGIN▶07◀( PARM(LÆNGDE):=CHR(ISF(1) MOD 10+48);(▶19◀ ISF(1):=ISF(1) DIV 10▶19◀▶06◀ END;▶06◀▶18◀ CHAIN(PROG,PARM,SEND);▶18◀▶15◀ PROG:='SUBMIT 3';▶15◀▶17◀ PROG(9):=CHR(16*1+1);▶17◀▶1a◀ PARM:='1,HAHA:P1, ';▶1a◀▶0f◀ SEND:=PROBLK;▶0f◀▶19◀ FOR LÆNGDE:=11 TO 15 DO▶19◀▶07◀ BEGIN▶07◀( PARM(LÆNGDE):=CHR(ISF(1) MOD 10+48);(▶19◀ ISF(1):=ISF(1) DIV 10▶19◀▶06◀ END;▶06◀▶18◀ CHAIN(PROG,PARM,SEND);▶18◀▶08◀ WASTE;▶08◀▶04◀END.▶04◀▶00◀▶00◀ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc▶00◀