|
|
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: 7936 (0x1f00)
Types: TextFile
Notes: Mikados_K
Names: »CP0.K«
└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
└─⟦this⟧ »CP0.K«
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
└─⟦this⟧ »CP0.K«
PROGRAM CENTRALPROCES;
(*$D-*)
CONST MAXUSERS =2;
MAXFILES =25;
MAXOPENFILES =9;
MZONESIZE =3150;
HELPBLT = 180;
MAXRECSIZE = 100;
TOTALKEYSIZE =100;
MAXKEYSIZE =10;
(*$IISFHEAD*)
USERNR =1..MAXUSERS;
FHEADNR =1..MAXOPENFILES;
ZONEADR =1..MZONESIZE;
KEYADR =1..TOTALKEYSIZE;
FILNR =1..MAXFILES;
POSTADR =0..MAXRECSIZE;
AR =ARRAY (0..0) OF INTEGER;
COMMBUF =ARRAY (POSTADR) OF INTEGER;(*commbuf(0)=filnr,resten er posten*)
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,IREC:INTEGER
END;
SENDER =^INTEGER; (*ADRESSE PÅ MESSAGE-AFSENDER *)
POINTREC=^COMMBUF; (*ADRESSE PÅ FÆLLESOMRÅDE-START *)
PRIORANGE=4..7;
CPSTAT =RECORD
CPPCB :INTEGER;
STATUS :ARRAY (1..100) OF INTEGER
END;
STATFILE=FILE OF CPSTAT;
USERDESC=RECORD
PROGRAMNR:INTEGER;
FILES:ARRAY (FHEADNR) OF RECORD
STATUS:ACCMODE;
KEYSTART:INTEGER
END
END;
VAR
USER :ARRAY (USERNR) OF USERDESC;
Z :ARRAY (ZONEADR) OF INTEGER;
KEY :ARRAY (KEYADR) OF INTEGER;
FILEHEAD:ARRAY (FHEADNR) OF ISFHEAD; (*NBUC KÆDER LEDIGE SAMMEN*)
HEADBASE:ARRAY (FILNR) OF INTEGER;
FUSK :AR; (*FOR AT KUNNE FLYTTE EN ADRESSE*)
REC :POINTREC; (*FRA ET MESSAGE IND I POST *)
AFSENDER:SENDER;
AFSKED :POINTREC; (*RESERVERET PLADS TIL SVAR-BESKED*)
CURRFUNC:MESSAGETYPE;
CURRFILE:FILNR;
STATUSER,
CURRUSER:USERNR;
CURRHEAD:FHEADNR;
ISF1,ISF2,ISF3,ISF4,ISF5,ISF6,ISF7,ISF8,ISF9:ISF;
AVAILZONE,
AVAILKEY,
CURRZONE,
AVAILHEAD,
NROFUSERS,
MLÆNGDE,MSTATUS,
IER,IREC:INTEGER;
SVAR :BOOLEAN;
BESKED :MESSAGE;
CPSTATUS:STATFILE;
(*NÆSTE LEDIGE ZONEADR (NLZ) = AVAILZONE
Z(NLZ)>0 => ZONESIZE=Z(NLZ+1)
Z(NLZ)<0 => ZONESIZE=1
NLZ=ABS(Z(NLZ))
DITTO FOR KEY; Z(NLZ)<0 FOREKOMMER IKKE I Z*)
(*$P*)
(*$IRETURNEZ*)
SEGMENT PROCEDURE PRELUDE;
(*INITIALISERING AF DATASTRUKTURER*)
BEGIN
FOR CURRUSER:=1 TO MAXUSERS DO WITH USER(CURRUSER) DO
BEGIN
PROGRAMNR:=-1;
FOR CURRHEAD:=1 TO MAXOPENFILES DO WITH FILES(CURRHEAD) DO
BEGIN
STATUS:=LUKKET;
KEYSTART:=0
END
END;
FOR CURRHEAD:=1 TO MAXOPENFILES DO
WITH FILEHEAD(CURRHEAD) DO BEGIN NBUC:=CURRHEAD+1;FILEOPEN:=FALSE END;
FOR CURRFILE:=1 TO MAXFILES DO HEADBASE(CURRFILE):=0;
AVAILHEAD:=1;
AVAILZONE:=HELPBLT+1;
AVAILKEY:=1;
Z(AVAILZONE):=MZONESIZE+1;
Z(AVAILZONE+1):=MZONESIZE-HELPBLT;
KEY(1):=TOTALKEYSIZE+1;
KEY(2):=TOTALKEYSIZE;
NROFUSERS:=0
END;
(*$P*)
SEGMENT PROCEDURE POSTLUDE;
VAR I:INTEGER;
(*EVT. STATISTIKUDSKRIFTER, SIKKERHEDSKOPIERING , ANDET*)
BEGIN
I:=AVAILZONE;
IF (I<>HELPBLT+1) OR (Z(I)<>MZONESIZE+1) THEN
REPEAT
WRITELN(LIST,I:8,Z(I):8,Z(I+1):8);
I:=Z(I)
UNTIL I>=MZONESIZE;
I:=AVAILKEY;
IF (I<>1) OR (KEY(I)<>TOTALKEYSIZE+1) THEN
REPEAT
WRITELN(LIST,I:8,KEY(I):8,KEY(I+1):8);
IF KEY(I)<0 THEN I:=-KEY(I) ELSE I:=KEY(I)
UNTIL I>=TOTALKEYSIZE
END;
(*$P*)
PROCEDURE SENDM(RECEIVER:SENDER;VAR CONTENTS:MESSAGE;
LENGTH:INTEGER;VAR STATUS:INTEGER);EXTERNAL;
PROCEDURE RECEIV(VAR AFSENDER:SENDER;VAR CONTENTS:MESSAGE;
VAR LENGTH:INTEGER);EXTERNAL;
PROCEDURE ALLOCA(VAR ADDRESS:POINTREC;LENGTH:INTEGER;
VAR STATUS:INTEGER);EXTERNAL;
PROCEDURE DEALLO(ADDRESS:POINTREC;VAR STATUS:INTEGER);EXTERNAL;
PROCEDURE SETPR(PRIORITY:PRIORANGE);EXTERNAL;
(*$P*)
PROCEDURE UDFØR;
(*$IFXCOMCOP*)
(*$IINITIATE*)
PROCEDURE IOC;
BEGIN
IER:=IORESULT;
IF IER<>0 THEN
BEGIN
EXIT(UDFØR);
WRITELN('CP IO-FEJL ',IER);READLN
END
END;
(*$IEXCOMCOP*)
(*$ISÆTØG*)
(*$IREADPROC*)
(*$IFINDPOST*)
(*$IFORSKYD*)
(*$IIOPEN*)
(*$IICLOSE*)
(*$IPUTGET*)
(*$L+*)
(*$IINSERT*)
(*$L-*)
(*$INEXTREC*)
(*$IDELETE*)
(*$ILUKOP*)
(*$P*)
PROCEDURE EXECUTE(VAR F:ISF);
BEGIN
CASE CURRFUNC OF
ÅBEN :BEGIN
LUKOP(F);
IF IER=0 THEN IOPEN(F)
END;
LUK :ICLOSE(F);
LÆSPOST,
LÆSPOSTX:GETREC(F);
NÆSTE,
NÆSTEX :NEXTREC(F);
SLET,
SLETX :DELETE(F);
GEMPOST :PUTREC(F);
INDSÆT :INSERT(F);
INITIER :INITIATE(F)
END
END;
(*$P*)
BEGIN (*UDFØR*)
CASE CURRHEAD OF
1: EXECUTE(ISF1);
2: EXECUTE(ISF2);
3: EXECUTE(ISF3);
4: EXECUTE(ISF4);
5: EXECUTE(ISF5);
6: EXECUTE(ISF6);
7: EXECUTE(ISF7);
8: EXECUTE(ISF8);
9: EXECUTE(ISF9)(*;
10: EXECUTE(ISF10) *)
END
END (*UDFØR*);
(*$IDETERMIN*)
(*$IOBEY*)
(*$P*)
PROCEDURE ALLEGRO;
(*ADMINISTRATION AF DATASTRUKTUR, MODTAGELSE OG AFSENDELSE AF MESSAGES,
BRUG AF FILSYSTEMET*)
(*$XT*)
(*$IWRITCURR*)
(*$X-*)
BEGIN
REPEAT
IER:=0;
RECEIV(AFSENDER,BESKED,MLÆNGDE);
ALLOCA(AFSKED,16,MSTATUS);
IF MSTATUS<>0 THEN
BEGIN
WRITELN('ALLOCASTATUS',MSTATUS:5);
READLN
END;
(*$XT*) WRITCURR; (*$X-*)
DETERMIN;
(*$XT*) WRITCURR; (*$X-*)
IF IER=0 THEN OBEY;
(*$XT*) WRITCURR; (*$X-*)
DEALLO(AFSKED,MSTATUS);
IF MSTATUS<>0 THEN
BEGIN
WRITELN('DEALLOSTATUS',MSTATUS:5);
READLN
END;
BESKED.INFO:=IER;
IF CURRFUNC=ÅBEN THEN
BEGIN
BESKED.IREC:=FILEHEAD(CURRHEAD).RECSIZE;
SENDM(AFSENDER,BESKED,6,MSTATUS)
END
ELSE SENDM(AFSENDER,BESKED,4,MSTATUS);
IF MSTATUS<>0 THEN
BEGIN
WRITELN('SENDMSTATUS',MSTATUS:5);
READLN
END
UNTIL (CURRFUNC=STOPSYS) AND (NROFUSERS=0)
END;
(*$P*)
BEGIN
SETPR(5);
PRELUDE;
ALLEGRO;
POSTLUDE;
SETPR(6)
END.
0x0000…0018 Line {l1=0x16, l2=»PROGRAM CENTRALPROCES;«, l3=0x16}
0x0018…0021 Line {l1=0x07, l2=»(*$D-*)«, l3=0x07}
0x0021…003e Line {l1=0x1b, l2=»CONST MAXUSERS =2;«, l3=0x1b}
0x003e…005c Line {l1=0x1c, l2=» MAXFILES =25;«, l3=0x1c}
0x005c…0079 Line {l1=0x1b, l2=» MAXOPENFILES =9;«, l3=0x1b}
0x0079…0099 Line {l1=0x1e, l2=» MZONESIZE =3150;«, l3=0x1e}
0x0099…00b9 Line {l1=0x1e, l2=» HELPBLT = 180;«, l3=0x1e}
0x00b9…00d9 Line {l1=0x1e, l2=» MAXRECSIZE = 100;«, l3=0x1e}
0x00d9…00f8 Line {l1=0x1d, l2=» TOTALKEYSIZE =100;«, l3=0x1d}
0x00f8…0116 Line {l1=0x1c, l2=» MAXKEYSIZE =10;«, l3=0x1c}
0x0116…0125 Line {l1=0x0d, l2=»(*$IISFHEAD*)«, l3=0x0d}
0x0125…013c Line {l1=0x15, l2=»USERNR =1..MAXUSERS;«, l3=0x15}
0x013c…0157 Line {l1=0x19, l2=»FHEADNR =1..MAXOPENFILES;«, l3=0x19}
0x0157…016f Line {l1=0x16, l2=»ZONEADR =1..MZONESIZE;«, l3=0x16}
0x016f…018a Line {l1=0x19, l2=»KEYADR =1..TOTALKEYSIZE;«, l3=0x19}
0x018a…01a1 Line {l1=0x15, l2=»FILNR =1..MAXFILES;«, l3=0x15}
0x01a1…01ba Line {l1=0x17, l2=»POSTADR =0..MAXRECSIZE;«, l3=0x17}
0x01ba…01dd Line {l1=0x21, l2=»AR =ARRAY (0..0) OF INTEGER;«, l3=0x21}
0x01dd…0228 Line {l1=0x49, l2=»COMMBUF =ARRAY (POSTADR) OF INTEGER;(*commbuf(0)=filnr,resten er posten*)«, l3=0x49}
0x0228…0271 Line {l1=0x47, l2=»MESSAGETYPE=(ÅBEN,LUK,LÆSPOST,LÆSPOSTX,NÆSTE,NÆSTEX,SLET,SLETX,GEMPOST,«, l3=0x47}
0x0271…02c1 Line {l1=0x4e, l2=» INDSÆT,INITIER,UTILMELD,UAFMELD,PTILMELD,PAFMELD,STOPSYS, «, l3=0x4e}
0x02c1…030b Line {l1=0x48, l2=» RETURNHEAD,RETURNSTAT); «, l3=0x48}
0x030b…031c Line {l1=0x0f, l2=»MESSAGE =RECORD«, l3=0x0f}
0x031c…033e Line {l1=0x20, l2=» KOMMANDO:MESSAGETYPE;«, l3=0x20}
0x033e…035d Line {l1=0x1d, l2=» INFO,IREC:INTEGER «, l3=0x1d}
0x035d…036c Line {l1=0x0d, l2=» END;«, l3=0x0d}
0x036c…03b0 Line {l1=0x42, l2=»SENDER =^INTEGER; (*ADRESSE PÅ MESSAGE-AFSENDER *)«, l3=0x42}
0x03b0…03f4 Line {l1=0x42, l2=»POINTREC=^COMMBUF; (*ADRESSE PÅ FÆLLESOMRÅDE-START *)«, l3=0x42}
0x03f4…0405 Line {l1=0x0f, l2=»PRIORANGE=4..7;«, l3=0x0f}
0x0405…0416 Line {l1=0x0f, l2=»CPSTAT =RECORD«, l3=0x0f}
0x0416…0439 Line {l1=0x21, l2=» CPPCB :INTEGER;«, l3=0x21}
0x0439…046d Line {l1=0x32, l2=» STATUS :ARRAY (1..100) OF INTEGER«, l3=0x32}
0x046d…047c Line {l1=0x0d, l2=» END;«, l3=0x0d}
0x047c…0496 Line {l1=0x18, l2=»STATFILE=FILE OF CPSTAT;«, l3=0x18}
0x0496…04a7 Line {l1=0x0f, l2=»USERDESC=RECORD«, l3=0x0f}
0x04a7…04c6 Line {l1=0x1d, l2=» PROGRAMNR:INTEGER;«, l3=0x1d}
0x04c6…04f2 Line {l1=0x2a, l2=» FILES:ARRAY (FHEADNR) OF RECORD«, l3=0x2a}
0x04f2…0529 Line {l1=0x35, l2=» STATUS:ACCMODE;«, l3=0x35}
0x0529…0561 Line {l1=0x36, l2=» KEYSTART:INTEGER«, l3=0x36}
0x0561…058a Line {l1=0x27, l2=» END«, l3=0x27}
0x058a…0599 Line {l1=0x0d, l2=» END;«, l3=0x0d}
0x0599…059e Line {l1=0x03, l2=»VAR«, l3=0x03}
0x059e…05c4 Line {l1=0x24, l2=»USER :ARRAY (USERNR) OF USERDESC;«, l3=0x24}
0x05c4…05ea Line {l1=0x24, l2=»Z :ARRAY (ZONEADR) OF INTEGER;«, l3=0x24}
0x05ea…060f Line {l1=0x23, l2=»KEY :ARRAY (KEYADR) OF INTEGER;«, l3=0x23}
0x060f…0655 Line {l1=0x44, l2=»FILEHEAD:ARRAY (FHEADNR) OF ISFHEAD; (*NBUC KÆDER LEDIGE SAMMEN*)«, l3=0x44}
0x0655…067a Line {l1=0x23, l2=»HEADBASE:ARRAY (FILNR) OF INTEGER; «, l3=0x23}
0x067a…06be Line {l1=0x42, l2=»FUSK :AR; (*FOR AT KUNNE FLYTTE EN ADRESSE*)«, l3=0x42}
0x06be…0702 Line {l1=0x42, l2=»REC :POINTREC; (*FRA ET MESSAGE IND I POST *)«, l3=0x42}
0x0702…0717 Line {l1=0x13, l2=»AFSENDER:SENDER; «, l3=0x13}
0x0717…075d Line {l1=0x44, l2=»AFSKED :POINTREC; (*RESERVERET PLADS TIL SVAR-BESKED*)«, l3=0x44}
0x075d…0774 Line {l1=0x15, l2=»CURRFUNC:MESSAGETYPE;«, l3=0x15}
0x0774…0785 Line {l1=0x0f, l2=»CURRFILE:FILNR;«, l3=0x0f}
0x0785…0790 Line {l1=0x09, l2=»STATUSER,«, l3=0x09}
0x0790…07a2 Line {l1=0x10, l2=»CURRUSER:USERNR;«, l3=0x10}
0x07a2…07b5 Line {l1=0x11, l2=»CURRHEAD:FHEADNR;«, l3=0x11}
0x07b5…07e8 Line {l1=0x31, l2=»ISF1,ISF2,ISF3,ISF4,ISF5,ISF6,ISF7,ISF8,ISF9:ISF;«, l3=0x31}
0x07e8…07fb Line {l1=0x11, l2=»AVAILZONE, «, l3=0x11}
0x07fb…0806 Line {l1=0x09, l2=»AVAILKEY,«, l3=0x09}
0x0806…0811 Line {l1=0x09, l2=»CURRZONE,«, l3=0x09}
0x0811…081d Line {l1=0x0a, l2=»AVAILHEAD,«, l3=0x0a}
0x081d…0829 Line {l1=0x0a, l2=»NROFUSERS,«, l3=0x0a}
0x0829…083b Line {l1=0x10, l2=»MLÆNGDE,MSTATUS,«, l3=0x10}
0x083b…084e Line {l1=0x11, l2=»IER,IREC:INTEGER;«, l3=0x11}
0x084e…0861 Line {l1=0x11, l2=»SVAR :BOOLEAN;«, l3=0x11}
0x0861…0874 Line {l1=0x11, l2=»BESKED :MESSAGE;«, l3=0x11}
0x0874…0888 Line {l1=0x12, l2=»CPSTATUS:STATFILE;«, l3=0x12}
0x0888…08b2 Line {l1=0x28, l2=»(*NÆSTE LEDIGE ZONEADR (NLZ) = AVAILZONE«, l3=0x28}
0x08b2…08d3 Line {l1=0x1f, l2=» Z(NLZ)>0 => ZONESIZE=Z(NLZ+1)«, l3=0x1f}
0x08d3…08ed Line {l1=0x18, l2=» Z(NLZ)<0 => ZONESIZE=1«, l3=0x18}
0x08ed…0900 Line {l1=0x11, l2=» NLZ=ABS(Z(NLZ))«, l3=0x11}
0x0900…0931 Line {l1=0x2f, l2=» DITTO FOR KEY; Z(NLZ)<0 FOREKOMMER IKKE I Z*)«, l3=0x2f}
0x0931…0939 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x0939…0949 Line {l1=0x0e, l2=»(*$IRETURNEZ*)«, l3=0x0e}
0x0949…0965 Line {l1=0x1a, l2=»SEGMENT PROCEDURE PRELUDE;«, l3=0x1a}
0x0965…098b Line {l1=0x24, l2=»(*INITIALISERING AF DATASTRUKTURER*)«, l3=0x24}
0x098b…0992 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x0992…09d3 Line {l1=0x3f, l2=» FOR CURRUSER:=1 TO MAXUSERS DO WITH USER(CURRUSER) DO «, l3=0x3f}
0x09d3…0a14 Line {l1=0x3f, l2=» BEGIN «, l3=0x3f}
0x0a14…0a56 Line {l1=0x40, l2=» PROGRAMNR:=-1; «, l3=0x40}
0x0a56…0a96 Line {l1=0x3e, l2=» FOR CURRHEAD:=1 TO MAXOPENFILES DO WITH FILES(CURRHEAD) DO«, l3=0x3e}
0x0a96…0ad7 Line {l1=0x3f, l2=» BEGIN «, l3=0x3f}
0x0ad7…0b18 Line {l1=0x3f, l2=» STATUS:=LUKKET; «, l3=0x3f}
0x0b18…0b59 Line {l1=0x3f, l2=» KEYSTART:=0 «, l3=0x3f}
0x0b59…0b9a Line {l1=0x3f, l2=» END «, l3=0x3f}
0x0b9a…0bdb Line {l1=0x3f, l2=» END; «, l3=0x3f}
0x0bdb…0c1c Line {l1=0x3f, l2=» FOR CURRHEAD:=1 TO MAXOPENFILES DO «, l3=0x3f}
0x0c1c…0c66 Line {l1=0x48, l2=» WITH FILEHEAD(CURRHEAD) DO BEGIN NBUC:=CURRHEAD+1;FILEOPEN:=FALSE END;«, l3=0x48}
0x0c66…0ca3 Line {l1=0x3b, l2=» FOR CURRFILE:=1 TO MAXFILES DO HEADBASE(CURRFILE):=0; «, l3=0x3b}
0x0ca3…0ce4 Line {l1=0x3f, l2=» AVAILHEAD:=1; «, l3=0x3f}
0x0ce4…0cfd Line {l1=0x17, l2=» AVAILZONE:=HELPBLT+1;«, l3=0x17}
0x0cfd…0d0d Line {l1=0x0e, l2=» AVAILKEY:=1;«, l3=0x0e}
0x0d0d…0d2b Line {l1=0x1c, l2=» Z(AVAILZONE):=MZONESIZE+1;«, l3=0x1c}
0x0d2b…0d51 Line {l1=0x24, l2=» Z(AVAILZONE+1):=MZONESIZE-HELPBLT;«, l3=0x24}
0x0d51…0d6c Line {l1=0x19, l2=» KEY(1):=TOTALKEYSIZE+1;«, l3=0x19}
0x0d6c…0d85 Line {l1=0x17, l2=» KEY(2):=TOTALKEYSIZE;«, l3=0x17}
0x0d85…0d95 Line {l1=0x0e, l2=» NROFUSERS:=0«, l3=0x0e}
0x0d95…0d9b Line {l1=0x04, l2=»END;«, l3=0x04}
0x0d9b…0da3 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x0da3…0dc0 Line {l1=0x1b, l2=»SEGMENT PROCEDURE POSTLUDE;«, l3=0x1b}
0x0dc0…0dd0 Line {l1=0x0e, l2=»VAR I:INTEGER;«, l3=0x0e}
0x0dd0…0e0b Line {l1=0x39, l2=»(*EVT. STATISTIKUDSKRIFTER, SIKKERHEDSKOPIERING , ANDET*)«, l3=0x39}
0x0e0b…0e12 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x0e12…0e23 Line {l1=0x0f, l2=» I:=AVAILZONE;«, l3=0x0f}
0x0e23…0e54 Line {l1=0x2f, l2=» IF (I<>HELPBLT+1) OR (Z(I)<>MZONESIZE+1) THEN«, l3=0x2f}
0x0e54…0e5e Line {l1=0x08, l2=» REPEAT«, l3=0x08}
0x0e5e…0e86 Line {l1=0x26, l2=» WRITELN(LIST,I:8,Z(I):8,Z(I+1):8);«, l3=0x26}
0x0e86…0e93 Line {l1=0x0b, l2=» I:=Z(I)«, l3=0x0b}
0x0e93…0eaa Line {l1=0x15, l2=» UNTIL I>=MZONESIZE;«, l3=0x15}
0x0eaa…0eba Line {l1=0x0e, l2=» I:=AVAILKEY;«, l3=0x0e}
0x0eba…0ee8 Line {l1=0x2c, l2=» IF (I<>1) OR (KEY(I)<>TOTALKEYSIZE+1) THEN«, l3=0x2c}
0x0ee8…0ef2 Line {l1=0x08, l2=» REPEAT«, l3=0x08}
0x0ef2…0f1e Line {l1=0x2a, l2=» WRITELN(LIST,I:8,KEY(I):8,KEY(I+1):8);«, l3=0x2a}
0x0f1e…0f4e Line {l1=0x2e, l2=» IF KEY(I)<0 THEN I:=-KEY(I) ELSE I:=KEY(I)«, l3=0x2e}
0x0f4e…0f67 Line {l1=0x17, l2=» UNTIL I>=TOTALKEYSIZE«, l3=0x17}
0x0f67…0f6d Line {l1=0x04, l2=»END;«, l3=0x04}
0x0f6d…0f75 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x0f75…0fac Line {l1=0x35, l2=»PROCEDURE SENDM(RECEIVER:SENDER;VAR CONTENTS:MESSAGE;«, l3=0x35}
0x0fac…0fea Line {l1=0x3c, l2=» LENGTH:INTEGER;VAR STATUS:INTEGER);EXTERNAL;«, l3=0x3c}
0x0fea…1026 Line {l1=0x3a, l2=»PROCEDURE RECEIV(VAR AFSENDER:SENDER;VAR CONTENTS:MESSAGE;«, l3=0x3a}
0x1026…1056 Line {l1=0x2e, l2=» VAR LENGTH:INTEGER);EXTERNAL;«, l3=0x2e}
0x1056…108d Line {l1=0x35, l2=»PROCEDURE ALLOCA(VAR ADDRESS:POINTREC;LENGTH:INTEGER;«, l3=0x35}
0x108d…10bd Line {l1=0x2e, l2=» VAR STATUS:INTEGER);EXTERNAL;«, l3=0x2e}
0x10bd…10fe Line {l1=0x3f, l2=»PROCEDURE DEALLO(ADDRESS:POINTREC;VAR STATUS:INTEGER);EXTERNAL;«, l3=0x3f}
0x10fe…112d Line {l1=0x2d, l2=»PROCEDURE SETPR(PRIORITY:PRIORANGE);EXTERNAL;«, l3=0x2d}
0x112d…1135 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x1135…1157 Line {l1=0x20, l2=»PROCEDURE UDFØR; «, l3=0x20}
0x1157…1167 Line {l1=0x0e, l2=»(*$IFXCOMCOP*)«, l3=0x0e}
0x1167…1177 Line {l1=0x0e, l2=»(*$IINITIATE*)«, l3=0x0e}
0x1177…1187 Line {l1=0x0e, l2=»PROCEDURE IOC;«, l3=0x0e}
0x1187…118e Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x118e…11a0 Line {l1=0x10, l2=» IER:=IORESULT;«, l3=0x10}
0x11a0…11b2 Line {l1=0x10, l2=» IF IER<>0 THEN«, l3=0x10}
0x11b2…11bb Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x11bb…11cd Line {l1=0x10, l2=» EXIT(UDFØR);«, l3=0x10}
0x11cd…11f5 Line {l1=0x26, l2=» WRITELN('CP IO-FEJL ',IER);READLN «, l3=0x26}
0x11f5…11fc Line {l1=0x05, l2=» END«, l3=0x05}
0x11fc…1202 Line {l1=0x04, l2=»END;«, l3=0x04}
0x1202…1212 Line {l1=0x0e, l2=»(*$IEXCOMCOP*)«, l3=0x0e}
0x1212…121f Line {l1=0x0b, l2=»(*$ISÆTØG*)«, l3=0x0b}
0x121f…122f Line {l1=0x0e, l2=»(*$IREADPROC*)«, l3=0x0e}
0x122f…123f Line {l1=0x0e, l2=»(*$IFINDPOST*)«, l3=0x0e}
0x123f…124e Line {l1=0x0d, l2=»(*$IFORSKYD*)«, l3=0x0d}
0x124e…125b Line {l1=0x0b, l2=»(*$IIOPEN*)«, l3=0x0b}
0x125b…1269 Line {l1=0x0c, l2=»(*$IICLOSE*)«, l3=0x0c}
0x1269…1277 Line {l1=0x0c, l2=»(*$IPUTGET*)«, l3=0x0c}
0x1277…1280 Line {l1=0x07, l2=»(*$L+*)«, l3=0x07}
0x1280…128e Line {l1=0x0c, l2=»(*$IINSERT*)«, l3=0x0c}
0x128e…1297 Line {l1=0x07, l2=»(*$L-*)«, l3=0x07}
0x1297…12a6 Line {l1=0x0d, l2=»(*$INEXTREC*)«, l3=0x0d}
0x12a6…12b4 Line {l1=0x0c, l2=»(*$IDELETE*)«, l3=0x0c}
0x12b4…12c1 Line {l1=0x0b, l2=»(*$ILUKOP*)«, l3=0x0b}
0x12c1…12c9 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x12c9…12e8 Line {l1=0x1d, l2=»PROCEDURE EXECUTE(VAR F:ISF);«, l3=0x1d}
0x12e8…12ef Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x12ef…1303 Line {l1=0x12, l2=» CASE CURRFUNC OF«, l3=0x12}
0x1303…1315 Line {l1=0x10, l2=» ÅBEN :BEGIN«, l3=0x10}
0x1315…132d Line {l1=0x16, l2=» LUKOP(F);«, l3=0x16}
0x132d…1353 Line {l1=0x24, l2=» IF IER=0 THEN IOPEN(F) «, l3=0x24}
0x1353…1364 Line {l1=0x0f, l2=» END;«, l3=0x0f}
0x1364…137b Line {l1=0x15, l2=» LUK :ICLOSE(F);«, l3=0x15}
0x137b…1390 Line {l1=0x13, l2=» LÆSPOST, «, l3=0x13}
0x1390…13a7 Line {l1=0x15, l2=» LÆSPOSTX:GETREC(F);«, l3=0x15}
0x13a7…13b1 Line {l1=0x08, l2=» NÆSTE,«, l3=0x08}
0x13b1…13c9 Line {l1=0x16, l2=» NÆSTEX :NEXTREC(F);«, l3=0x16}
0x13c9…13d2 Line {l1=0x07, l2=» SLET,«, l3=0x07}
0x13d2…13e9 Line {l1=0x15, l2=» SLETX :DELETE(F);«, l3=0x15}
0x13e9…1400 Line {l1=0x15, l2=» GEMPOST :PUTREC(F);«, l3=0x15}
0x1400…1417 Line {l1=0x15, l2=» INDSÆT :INSERT(F);«, l3=0x15}
0x1417…1430 Line {l1=0x17, l2=» INITIER :INITIATE(F) «, l3=0x17}
0x1430…1437 Line {l1=0x05, l2=» END«, l3=0x05}
0x1437…143d Line {l1=0x04, l2=»END;«, l3=0x04}
0x143d…1445 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x1445…1456 Line {l1=0x0f, l2=»BEGIN (*UDFØR*)«, l3=0x0f}
0x1456…146a Line {l1=0x12, l2=» CASE CURRHEAD OF«, l3=0x12}
0x146a…1482 Line {l1=0x16, l2=» 1: EXECUTE(ISF1); «, l3=0x16}
0x1482…1498 Line {l1=0x14, l2=» 2: EXECUTE(ISF2);«, l3=0x14}
0x1498…14ae Line {l1=0x14, l2=» 3: EXECUTE(ISF3);«, l3=0x14}
0x14ae…14c4 Line {l1=0x14, l2=» 4: EXECUTE(ISF4);«, l3=0x14}
0x14c4…14da Line {l1=0x14, l2=» 5: EXECUTE(ISF5);«, l3=0x14}
0x14da…14f2 Line {l1=0x16, l2=» 6: EXECUTE(ISF6); «, l3=0x16}
0x14f2…1508 Line {l1=0x14, l2=» 7: EXECUTE(ISF7);«, l3=0x14}
0x1508…151e Line {l1=0x14, l2=» 8: EXECUTE(ISF8);«, l3=0x14}
0x151e…1536 Line {l1=0x16, l2=» 9: EXECUTE(ISF9)(*;«, l3=0x16}
0x1536…1550 Line {l1=0x18, l2=» 10: EXECUTE(ISF10) *)«, l3=0x18}
0x1550…1557 Line {l1=0x05, l2=» END«, l3=0x05}
0x1557…1567 Line {l1=0x0e, l2=»END (*UDFØR*);«, l3=0x0e}
0x1567…1577 Line {l1=0x0e, l2=»(*$IDETERMIN*)«, l3=0x0e}
0x1577…1583 Line {l1=0x0a, l2=»(*$IOBEY*)«, l3=0x0a}
0x1583…158b Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x158b…159f Line {l1=0x12, l2=»PROCEDURE ALLEGRO;«, l3=0x12}
0x159f…15e8 Line {l1=0x47, l2=»(*ADMINISTRATION AF DATASTRUKTUR, MODTAGELSE OG AFSENDELSE AF MESSAGES,«, l3=0x47}
0x15e8…1601 Line {l1=0x17, l2=» BRUG AF FILSYSTEMET*)«, l3=0x17}
0x1601…160a Line {l1=0x07, l2=»(*$XT*)«, l3=0x07}
0x160a…161a Line {l1=0x0e, l2=»(*$IWRITCURR*)«, l3=0x0e}
0x161a…1623 Line {l1=0x07, l2=»(*$X-*)«, l3=0x07}
0x1623…162a Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x162a…1634 Line {l1=0x08, l2=» REPEAT«, l3=0x08}
0x1634…1641 Line {l1=0x0b, l2=» IER:=0;«, l3=0x0b}
0x1641…166d Line {l1=0x2a, l2=» RECEIV(AFSENDER,BESKED,MLÆNGDE); «, l3=0x2a}
0x166d…169a Line {l1=0x2b, l2=» ALLOCA(AFSKED,16,MSTATUS); «, l3=0x2b}
0x169a…16c6 Line {l1=0x2a, l2=» IF MSTATUS<>0 THEN «, l3=0x2a}
0x16c6…16f2 Line {l1=0x2a, l2=» BEGIN «, l3=0x2a}
0x16f2…171e Line {l1=0x2a, l2=» WRITELN('ALLOCASTATUS',MSTATUS:5); «, l3=0x2a}
0x171e…174a Line {l1=0x2a, l2=» READLN «, l3=0x2a}
0x174a…1776 Line {l1=0x2a, l2=» END; «, l3=0x2a}
0x1776…1795 Line {l1=0x1d, l2=» (*$XT*) WRITCURR; (*$X-*)«, l3=0x1d}
0x1795…17c1 Line {l1=0x2a, l2=» DETERMIN; «, l3=0x2a}
0x17c1…17e0 Line {l1=0x1d, l2=» (*$XT*) WRITCURR; (*$X-*)«, l3=0x1d}
0x17e0…181a Line {l1=0x38, l2=» IF IER=0 THEN OBEY; «, l3=0x38}
0x181a…1839 Line {l1=0x1d, l2=» (*$XT*) WRITCURR; (*$X-*)«, l3=0x1d}
0x1839…1865 Line {l1=0x2a, l2=» DEALLO(AFSKED,MSTATUS); «, l3=0x2a}
0x1865…1891 Line {l1=0x2a, l2=» IF MSTATUS<>0 THEN «, l3=0x2a}
0x1891…18bd Line {l1=0x2a, l2=» BEGIN «, l3=0x2a}
0x18bd…18e9 Line {l1=0x2a, l2=» WRITELN('DEALLOSTATUS',MSTATUS:5); «, l3=0x2a}
0x18e9…1915 Line {l1=0x2a, l2=» READLN «, l3=0x2a}
0x1915…1941 Line {l1=0x2a, l2=» END; «, l3=0x2a}
0x1941…1958 Line {l1=0x15, l2=» BESKED.INFO:=IER;«, l3=0x15}
0x1958…1973 Line {l1=0x19, l2=» IF CURRFUNC=ÅBEN THEN«, l3=0x19}
0x1973…197e Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x197e…19ae Line {l1=0x2e, l2=» BESKED.IREC:=FILEHEAD(CURRHEAD).RECSIZE;«, l3=0x2e}
0x19ae…19da Line {l1=0x2a, l2=» SENDM(AFSENDER,BESKED,6,MSTATUS) «, l3=0x2a}
0x19da…19e3 Line {l1=0x07, l2=» END«, l3=0x07}
0x19e3…1a12 Line {l1=0x2d, l2=» ELSE SENDM(AFSENDER,BESKED,4,MSTATUS); «, l3=0x2d}
0x1a12…1a3c Line {l1=0x28, l2=» IF MSTATUS<>0 THEN «, l3=0x28}
0x1a3c…1a47 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x1a47…1a71 Line {l1=0x28, l2=» WRITELN('SENDMSTATUS',MSTATUS:5); «, l3=0x28}
0x1a71…1a7f Line {l1=0x0c, l2=» READLN«, l3=0x0c}
0x1a7f…1aa8 Line {l1=0x27, l2=» END «, l3=0x27}
0x1aa8…1ad7 Line {l1=0x2d, l2=» UNTIL (CURRFUNC=STOPSYS) AND (NROFUSERS=0) «, l3=0x2d}
0x1ad7…1ade Line {l1=0x05, l2=»END; «, l3=0x05}
0x1ade…1ae6 Line {l1=0x06, l2=»(*$P*)«, l3=0x06}
0x1ae6…1aef Line {l1=0x07, l2=»BEGIN «, l3=0x07}
0x1aef…1afc Line {l1=0x0b, l2=» SETPR(5);«, l3=0x0b}
0x1afc…1b08 Line {l1=0x0a, l2=» PRELUDE;«, l3=0x0a}
0x1b08…1b17 Line {l1=0x0d, l2=» ALLEGRO; «, l3=0x0d}
0x1b17…1b24 Line {l1=0x0b, l2=» POSTLUDE;«, l3=0x0b}
0x1b24…1b30 Line {l1=0x0a, l2=» SETPR(6)«, l3=0x0a}
0x1b30…1b36 Line {l1=0x04, l2=»END.«, l3=0x04}
0x1b36…1b40 00 00 44 2e 04 00 00 00 00 2e ┆ D. .┆
0x1b40…1b60 04 00 00 58 55 53 45 52 53 20 20 20 20 20 20 20 20 3d 32 3b 1b 21 20 20 20 20 20 20 20 20 4d 41 ┆ XUSERS =2; ! MA┆
0x1b60…1b80 58 46 49 4c 45 53 20 20 20 20 20 20 20 20 3d 32 30 3b 20 20 20 20 20 21 1c 20 20 20 20 20 20 20 ┆XFILES =20; ! ┆
0x1b80…1ba0 20 4d 41 58 4f 50 45 4e 46 49 4c 45 53 20 20 20 20 3d 20 37 3b 1c 1e 20 20 20 20 20 20 20 20 4d ┆ MAXOPENFILES = 7; M┆
0x1ba0…1bc0 5a 4f 4e 45 53 49 5a 45 20 20 20 20 20 20 20 3d 31 30 30 30 3b 1e 1e 20 20 20 20 20 20 20 20 48 ┆ZONESIZE =1000; H┆
0x1bc0…1be0 45 4c 50 42 4c 54 20 20 20 20 20 20 20 20 20 3d 20 32 35 30 3b 1e 1e 20 20 20 20 20 20 20 20 4d ┆ELPBLT = 250; M┆
0x1be0…1c00 41 58 52 45 43 53 49 5a 45 20 20 20 20 20 20 3d 20 31 35 30 3b 1e 1d 20 20 20 20 20 20 20 20 54 ┆AXRECSIZE = 150; T┆
0x1c00…1c20 4e 20 49 4e 20 28 2e 31 2c 35 2e 29 20 54 48 45 4e 1f 1c 20 20 20 20 20 20 20 20 47 45 54 52 45 ┆N IN (.1,5.) THEN GETRE┆
0x1c20…1c40 43 58 28 50 4f 53 54 28 4e 52 39 29 2e 41 29 1c 0a 20 20 20 20 20 20 45 4c 53 45 0a 1c 20 20 20 ┆CX(POST(NR9).A) ELSE ┆
0x1c40…1c60 20 20 20 20 20 47 45 54 52 45 43 28 50 4f 53 54 28 4e 52 39 29 2e 41 29 3b 1c 28 20 20 20 20 20 ┆ GETREC(POST(NR9).A); ( ┆
0x1c60…1c80 20 49 46 20 49 45 52 3c 3e 30 20 54 48 45 4e 20 45 52 52 4f 52 28 50 4f 53 54 28 4e 52 39 29 2e ┆ IF IER<>0 THEN ERROR(POST(NR9).┆
0x1c80…1ca0 41 29 3b 28 10 20 20 20 20 20 20 53 4b 52 49 56 50 4f 53 54 20 10 08 20 20 20 20 45 4e 44 3b 08 ┆A);( SKRIVPOST END; ┆
0x1ca0…1cc0 06 20 20 45 4e 44 3b 06 0a 20 20 4c 49 4e 49 45 3a 3d 30 0a 04 45 4e 44 3b 04 06 28 2a 24 50 2a ┆ END; LINIE:=0 END; (*$P*┆
0x1cc0…1ce0 29 06 11 42 45 47 49 4e 20 28 2a 53 5c 47 50 4f 53 54 2a 29 11 19 20 20 57 52 49 54 45 4c 4e 28 ┆) BEGIN (*SØGPOST*) WRITELN(┆
0x1ce0…1d00 27 53 7c 67 6e 69 6e 67 20 76 69 61 27 29 3b 19 32 20 20 57 52 49 54 45 4c 4e 28 27 20 27 3a 31 ┆'Søgning via'); 2 WRITELN(' ':1┆
0x1d00…1d20 30 2c 27 20 20 30 20 27 2c 4e 5c 47 4c 45 52 28 4e 52 39 2c 31 29 5e 2e 4c 45 44 45 54 45 4b 53 ┆0,' 0 ',NØGLER(NR9,1)^.LEDETEKS┆
0x1d20…1d40 54 29 3b 32 23 20 20 46 4f 52 20 48 4e 52 3a 3d 31 20 54 4f 20 41 4e 54 41 4c 48 5b 47 54 45 52 ┆T);2# FOR HNR:=1 TO ANTALHÆGTER┆
0x1d40…1d60 28 4e 52 39 29 20 44 4f 23 39 20 20 20 20 57 52 49 54 45 4c 4e 28 27 20 27 3a 31 30 2c 48 4e 52 ┆(NR9) DO#9 WRITELN(' ':10,HNR┆
0x1d60…1d80 3a 33 2c 27 20 27 2c 48 5b 47 54 45 52 28 4e 52 39 2c 48 4e 52 29 5e 2e 4c 45 44 45 54 45 4b 53 ┆:3,' ',HÆGTER(NR9,HNR)^.LEDETEKS┆
0x1d80…1da0 54 29 3b 39 08 20 20 52 45 50 45 41 54 08 11 20 20 20 20 47 4f 54 4f 58 59 28 31 2c 32 33 29 3b ┆T);9 REPEAT GOTOXY(1,23);┆
0x1da0…1dc0 11 2a 20 20 20 20 57 52 49 54 45 28 27 56 7b 6c 67 20 30 2d 27 2c 41 4e 54 41 4c 48 5b 47 54 45 ┆ * WRITE('Vælg 0-',ANTALHÆGTE┆
0x1dc0…1de0 52 28 4e 52 39 29 2c 27 20 27 29 3b 2a 1e 20 20 20 20 52 45 41 44 4c 4e 3b 49 46 20 45 4f 4c 4e ┆R(NR9),' ');* READLN;IF EOLN┆
0x1de0…1e00 20 54 48 45 4e 20 48 4e 52 3a 3d 30 1e 12 20 20 20 20 45 4c 53 45 20 52 45 41 44 28 48 4e 52 29 ┆ THEN HNR:=0 ELSE READ(HNR)┆
0x1e00…1e20 00 53 5c 47 50 4f 53 54 4b 46 05 05 00 00 00 00 4c 01 07 4c 01 11 41 4b 01 14 00 00 00 00 00 00 ┆ SØGPOSTKF L L AK ┆
0x1e20…1e40 12 3e 20 20 55 4e 54 49 4c 20 28 49 4f 52 45 53 55 4c 54 3d 30 29 20 41 4e 44 20 28 48 4e 52 3e ┆ > UNTIL (IORESULT=0) AND (HNR>┆
0x1e40…1e60 3d 30 29 20 41 4e 44 20 28 48 4e 52 3c 3d 41 4e 54 41 4c 48 5b 47 54 45 52 28 4e 52 39 29 29 3b ┆=0) AND (HNR<=ANTALHÆGTER(NR9));┆
0x1e60…1e80 3e 0f 20 20 49 46 20 48 4e 52 3e 30 20 54 48 45 4e 0f 07 20 20 42 45 47 49 4e 07 12 20 20 20 20 ┆> IF HNR>0 THEN BEGIN ┆
0x1e80…1ea0 48 5b 47 54 53 5c 47 3a 3d 54 52 55 45 3b 12 10 20 20 20 20 43 4c 45 41 52 53 43 52 45 45 4e 3b ┆HÆGTSØG:=TRUE; CLEARSCREEN;┆
0x1ea0…1ec0 10 1d 20 20 20 20 4c 5b 53 46 45 4c 54 28 48 5b 47 54 45 52 28 4e 52 39 2c 48 4e 52 29 29 3b 1d ┆ LÆSFELT(HÆGTER(NR9,HNR)); ┆
0x1ec0…1ee0 18 20 20 20 20 55 53 45 52 4e 49 56 45 41 55 3a 3d 48 55 53 4b 4e 49 56 3b 18 0d 20 20 20 20 53 ┆ USERNIVEAU:=HUSKNIV; S┆
0x1ee0…1f00 5b 54 48 5b 47 54 45 3b 0d 0d 20 20 20 20 53 5b 54 4e 5c 47 4c 45 3b 0d 0d 20 20 20 20 4c 49 63 ┆ÆTHÆGTE; SÆTNØGLE; LIc┆