|
|
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: 1920 (0x780)
Types: TextFile
Notes: Mikados_K
Names: »HAHA.K«
└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
└─⟦this⟧ »HAHA.K«
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.
\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◀