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

⟦cc891bffc⟧ TextFile

    Length: 1920 (0x780)
    Types: TextFile
    Notes: Mikados_K
    Names: »HAHA.K«

Derivation

└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
    └─⟦this⟧ »HAHA.K« 

Mikados K File

PROGRAM HAHA;
TYPE PCB=^INTEGER;
     AR=ARRAY (0..0) OF INTEGER;
     MESSAGE=ARRAY (1..3) OF INTEGER;
     ALLOPTR=^AR;
     PARMARRAY=PACKED ARRAY (1..40) OF CHAR;
VAR PARM:^PARMARRAY;
    ISF:AR;
    I:PCB;
    TRANS:ALLOPTR;
    STAT,LÆNGDE:INTEGER;
    POST:MESSAGE;
(*$R-*)
PROCEDURE SENDM(RECIEVER: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;
PROCEDURE WASTE;
BEGIN
  WRITELN('SEND 1, MODTAG 2');
  READLN;READ(STAT);
  CASE STAT OF
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):=POST(3) DIV 2 - STAT;
  POST(2):=ISF(2);
  SENDM(I,POST,LÆNGDE,STAT);
  WRITELN('UP SENDT STAT ',STAT:8);
  END;
2:BEGIN
  RECEIV(I,POST,LÆNGDE);
  WRITELN('UP MODTAGET ',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
  END;
END;
BEGIN
  ISF(1):=0;
  STAT:=1;
  FOR LÆNGDE:=1 TO 5 DO
  BEGIN
    ISF(1):=ISF(1)+STAT*(ORD(PARM^(LÆNGDE))-48);
    IF LÆNGDE<5 THEN STAT:=STAT*10
  END;
  REPEAT
    WASTE;
  UNTIL POST(1)=499;
END.

Mikados K File

0x000…00f Line {l1=0x0d, l2=»PROGRAM HAHA;«, l3=0x0d}
0x00f…023 Line {l1=0x12, l2=»TYPE PCB=^INTEGER;«, l3=0x12}
0x023…045 Line {l1=0x20, l2=»     AR=ARRAY (0..0) OF INTEGER;«, l3=0x20}
0x045…06c Line {l1=0x25, l2=»     MESSAGE=ARRAY (1..3) OF INTEGER;«, l3=0x25}
0x06c…07f Line {l1=0x11, l2=»     ALLOPTR=^AR;«, l3=0x11}
0x07f…0ad Line {l1=0x2c, l2=»     PARMARRAY=PACKED ARRAY (1..40) OF CHAR;«, l3=0x2c}
0x0ad…0c3 Line {l1=0x14, l2=»VAR PARM:^PARMARRAY;«, l3=0x14}
0x0c3…0d0 Line {l1=0x0b, l2=»    ISF:AR;«, l3=0x0b}
0x0d0…0dc Line {l1=0x0a, l2=»    I:PCB;«, l3=0x0a}
0x0dc…0f0 Line {l1=0x12, l2=»    TRANS:ALLOPTR;«, l3=0x12}
0x0f0…10a Line {l1=0x18, l2=»    STAT,LÆNGDE:INTEGER;«, l3=0x18}
0x10a…11d Line {l1=0x11, l2=»    POST:MESSAGE;«, l3=0x11}
0x11d…126 Line {l1=0x07, l2=»(*$R-*)«, l3=0x07}
0x126…169 Line {l1=0x41, l2=»PROCEDURE SENDM(RECIEVER:PCB;VAR CONTENTS:MESSAGE;LENGTH:INTEGER;«, l3=0x41}
0x169…18f Line {l1=0x24, l2=»                VAR STATUS:INTEGER);«, l3=0x24}
0x18f…19a Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x19a…1e5 Line {l1=0x49, l2=»PROCEDURE RECEIV(VAR SENDER:PCB;VAR CONTENTS:MESSAGE;VAR LENGTH:INTEGER);«, l3=0x49}
0x1e5…1f0 Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x1f0…217 Line {l1=0x25, l2=»PROCEDURE ALLOCA(VAR ADDRESS:ALLOPTR;«, l3=0x25}
0x217…23d Line {l1=0x24, l2=»                     LENGTH:INTEGER;«, l3=0x24}
0x23d…264 Line {l1=0x25, l2=»                 VAR STATUS:INTEGER);«, l3=0x25}
0x264…26f Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x26f…292 Line {l1=0x21, l2=»PROCEDURE DEALLO(ADDRESS:ALLOPTR;«, l3=0x21}
0x292…2b9 Line {l1=0x25, l2=»                 VAR STATUS:INTEGER);«, l3=0x25}
0x2b9…2c4 Line {l1=0x09, l2=»EXTERNAL;«, l3=0x09}
0x2c4…2d6 Line {l1=0x10, l2=»PROCEDURE WASTE;«, l3=0x10}
0x2d6…2dd Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x2dd…2fd Line {l1=0x1e, l2=»  WRITELN('SEND 1, MODTAG 2');«, l3=0x1e}
0x2fd…313 Line {l1=0x14, l2=»  READLN;READ(STAT);«, l3=0x14}
0x313…323 Line {l1=0x0e, l2=»  CASE STAT OF«, l3=0x0e}
0x323…32c Line {l1=0x07, l2=»1:BEGIN«, l3=0x07}
0x32c…33a Line {l1=0x0c, l2=»  LÆNGDE:=6;«, l3=0x0c}
0x33a…343 Line {l1=0x07, l2=» REPEAT«, l3=0x07}
0x343…35c Line {l1=0x17, l2=»  READLN;READ(POST(3));«, l3=0x17}
0x35c…37b Line {l1=0x1d, l2=»  ALLOCA(TRANS,POST(3),STAT);«, l3=0x1d}
0x37b…39e Line {l1=0x21, l2=»  WRITELN('ALLOCA STAT ',STAT:5);«, l3=0x21}
0x39e…3ae Line {l1=0x0e, l2=» UNTIL STAT=0;«, l3=0x0e}
0x3ae…3f8 Line {l1=0x48, l2=»  FOR STAT:=0 TO POST(3) DIV 2 -1 DO TRANS^(STAT):=POST(3) DIV 2 - STAT;«, l3=0x48}
0x3f8…40c Line {l1=0x12, l2=»  POST(2):=ISF(2);«, l3=0x12}
0x40c…42a Line {l1=0x1c, l2=»  SENDM(I,POST,LÆNGDE,STAT);«, l3=0x1c}
0x42a…44f Line {l1=0x23, l2=»  WRITELN('UP SENDT STAT ',STAT:8);«, l3=0x23}
0x44f…457 Line {l1=0x06, l2=»  END;«, l3=0x06}
0x457…460 Line {l1=0x07, l2=»2:BEGIN«, l3=0x07}
0x460…47a Line {l1=0x18, l2=»  RECEIV(I,POST,LÆNGDE);«, l3=0x18}
0x47a…4bb Line {l1=0x3f, l2=»  WRITELN('UP MODTAGET ',POST(1):5,POST(2):5,POST(3):5,STAT:5);«, l3=0x3f}
0x4bb…4cf Line {l1=0x12, l2=»  ISF(2):=POST(2);«, l3=0x12}
0x4cf…50e Line {l1=0x3d, l2=»  FOR STAT:=0 TO POST(3) DIV 2 -1 DO WRITELN(TRANS^(STAT):5);«, l3=0x3d}
0x50e…525 Line {l1=0x15, l2=»  DEALLO(TRANS,STAT);«, l3=0x15}
0x525…547 Line {l1=0x20, l2=»  WRITELN('DEALLO STAT ',STAT:5)«, l3=0x20}
0x547…54e Line {l1=0x05, l2=»  END«, l3=0x05}
0x54e…556 Line {l1=0x06, l2=»  END;«, l3=0x06}
0x556…55c Line {l1=0x04, l2=»END;«, l3=0x04}
0x55c…563 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x563…571 Line {l1=0x0c, l2=»  ISF(1):=0;«, l3=0x0c}
0x571…57d Line {l1=0x0a, l2=»  STAT:=1;«, l3=0x0a}
0x57d…596 Line {l1=0x17, l2=»  FOR LÆNGDE:=1 TO 5 DO«, l3=0x17}
0x596…59f Line {l1=0x07, l2=»  BEGIN«, l3=0x07}
0x59f…5d1 Line {l1=0x30, l2=»    ISF(1):=ISF(1)+STAT*(ORD(PARM^(LÆNGDE))-48);«, l3=0x30}
0x5d1…5f5 Line {l1=0x22, l2=»    IF LÆNGDE<5 THEN STAT:=STAT*10«, l3=0x22}
0x5f5…5fd Line {l1=0x06, l2=»  END;«, l3=0x06}
0x5fd…607 Line {l1=0x08, l2=»  REPEAT«, l3=0x08}
0x607…613 Line {l1=0x0a, l2=»    WASTE;«, l3=0x0a}
0x613…629 Line {l1=0x14, l2=»  UNTIL POST(1)=499;«, l3=0x14}
0x629…62f Line {l1=0x04, l2=»END.«, l3=0x04}
0x62f…640 00 00 43 4b 45 44 20 41 52 52 41 59 20 28 31 2e 2e                                                ┆  CKED ARRAY (1..┆
0x640…660 34 30 29 20 4f 46 20 43 48 41 52 3b 2c 14 56 41 52 20 50 41 52 4d 3a 5e 50 41 52 4d 41 52 52 41   ┆40) OF CHAR;, VAR PARM:^PARMARRA┆
0x660…680 59 3b 14 0b 20 20 20 20 49 53 46 3a 41 52 3b 0b 0a 20 20 20 20 49 3a 50 43 42 3b 0a 12 20 20 20   ┆Y;      ISF:AR;      I:PCB;     ┆
0x680…6a0 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…]
0x760…780 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 ┆

TextFile

\rPROGRAM HAHA;\r▶12◀TYPE PCB=^INTEGER;▶12◀      AR=ARRAY (0..0) OF INTEGER; %     MESSAGE=ARRAY (1..3) OF INTEGER;%▶11◀     ALLOPTR=^AR;▶11◀,     PARMARRAY=PACKED ARRAY (1..40) OF CHAR;,▶14◀VAR PARM:^PARMARRAY;▶14◀▶0b◀    ISF:AR;▶0b◀
    I:PCB;
▶12◀    TRANS:ALLOPTR;▶12◀▶18◀    STAT,LÆNGDE:INTEGER;▶18◀▶11◀    POST:MESSAGE;▶11◀▶07◀(*$R-*)▶07◀APROCEDURE SENDM(RECIEVER: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;	▶10◀PROCEDURE WASTE;▶10◀▶05◀BEGIN▶05◀▶1e◀  WRITELN('SEND 1, MODTAG 2');▶1e◀▶14◀  READLN;READ(STAT);▶14◀▶0e◀  CASE STAT OF▶0e◀▶07◀1:BEGIN▶07◀\f

  LÆNGDE:=6;\f

▶07◀ REPEAT▶07◀▶17◀  READLN;READ(POST(3));▶17◀▶1d◀  ALLOCA(TRANS,POST(3),STAT);▶1d◀!  WRITELN('ALLOCA STAT ',STAT:5);!▶0e◀ UNTIL STAT=0;▶0e◀H  FOR STAT:=0 TO POST(3) DIV 2 -1 DO TRANS^(STAT):=POST(3) DIV 2 - STAT;H▶12◀  POST(2):=ISF(2);▶12◀▶1c◀  SENDM(I,POST,LÆNGDE,STAT);▶1c◀#  WRITELN('UP SENDT STAT ',STAT:8);#▶06◀  END;▶06◀▶07◀2:BEGIN▶07◀▶18◀  RECEIV(I,POST,LÆNGDE);▶18◀?  WRITELN('UP MODTAGET ',POST(1):5,POST(2):5,POST(3):5,STAT:5);?▶12◀  ISF(2):=POST(2);▶12◀=  FOR STAT:=0 TO POST(3) DIV 2 -1 DO WRITELN(TRANS^(STAT):5);=▶15◀  DEALLO(TRANS,STAT);▶15◀   WRITELN('DEALLO STAT ',STAT:5) ▶05◀  END▶05◀▶06◀  END;▶06◀▶04◀END;▶04◀▶05◀BEGIN▶05◀\f

  ISF(1):=0;\f


  STAT:=1;
▶17◀  FOR LÆNGDE:=1 TO 5 DO▶17◀▶07◀  BEGIN▶07◀0    ISF(1):=ISF(1)+STAT*(ORD(PARM^(LÆNGDE))-48);0"    IF LÆNGDE<5 THEN STAT:=STAT*10"▶06◀  END;▶06◀▶08◀  REPEAT▶08◀
    WASTE;
▶14◀  UNTIL POST(1)=499;▶14◀▶04◀END.▶04◀▶00◀▶00◀CKED ARRAY (1..40) OF CHAR;,▶14◀VAR PARM:^PARMARRAY;▶14◀▶0b◀    ISF:AR;▶0b◀
    I:PCB;
▶12◀   ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc▶00◀

Reduced view