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

⟦220baf958⟧ TextFile

    Length: 2496 (0x9c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »CHAINOS.K«

Derivation

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

Mikados K File

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.

TextFile

▶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◀

Full view