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

⟦623beb7ff⟧ TextFile

    Length: 17472 (0x4440)
    Types: TextFile
    Notes: Mikados_K
    Names: »LEVVEDL.K«

Derivation

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

Mikados K File

PROGRAM LEVVEDL;
(*$IISFHEAD*)
 LEVPOST=RECORD
        A:AR;
        NR,
        SBESDAT1,SBESDAT2,
        LAND1,LAND2:INTEGER;
        KOSTPFAK:ARRAY(1..5) OF INTEGER;
        ÅKØB,SÅKØB,SALDO:REAL;
        NAVN1:PACKED ARRAY (1..40) OF CHAR;
        NAVN2,
        ADR1,
        ADR2:PACKED ARRAY (1..30) OF CHAR;
        BETABET,
        LANDSBY1,LANDSBY2: PACKED ARRAY (1..20) OF CHAR;
        POSTNR1,POSTNR2: PACKED ARRAY (1..25) OF CHAR;
        TLF1,TLF2: PACKED ARRAY (1..10) OF CHAR;
END;
 LEVZONE=RECORD
        H:ISFHEAD;
        T:ARRAY(1..382) OF INTEGER
  END;
 SYSPOST=RECORD
       HELTAL:ARRAY(1..24) OF INTEGER;
       KGB:ARRAY(1..5) OF REAL;
       BETADAT:PACKED ARRAY (1..13) OF CHAR;
       KODE:ARRAY(1..2) OF PACKED ARRAY (1..10) OF CHAR
 END;
 SYSFILE=FILE OF SYSPOST;
VAR    F:ISF;
       CHAR1:CHAR;
       LZ:LEVZONE;
FILNAVN1,FILNAVN2:STRING(20);
N1,N2,IER,I:INTEGER;
      KODE1,KODE2:STRING(10);
       R:REAL;
       LEVER:LEVPOST;
       SYSFIL:SYSFILE;
       QUQ:^INTEGER;
(*$L-*)
(*$R-,IEXCOMCOP*)
(*$IIOPEN*)
(*$IINITIATE*)
(*$ISÆTØG*)
(*$IREADPROC*)
(*$IFINDPOST*)
(*$IFORSKYD*)
(*$IICLOSE*)
(*$IPUTGET*)
(*$IINSERT*)
(*$INEXTREC*)
(*$IDELETE*)
(*$R+*)
(*$L+*)
PROCEDURE STOP;
VAR I:INTEGER;
BEGIN I:=I DIV 0 END;
PROCEDURE ERROR;
BEGIN
  WRITELN('FEJL I LEVERANDØRREG ',IER);
  ICLOSE(LZ.H,F);
  WRITELN('ICLOSE ',IER);
  STOP
END;
PROCEDURE OFEJL;
BEGIN
  GOTOXY(1,20);
  WRITELN('REGISTERFEJL ',IER,' . SITUATIONEN ER FORSØGT REDDET.');
  WRITELN('TAST 0, HVIS DER SKAL FORTSÆTTES');
  REPEAT GOTOXY(40,21);READLN;READ(I) UNTIL IORESULT=0;
  IF I<>0 THEN ERROR;
  CLEARSCREEN
END;
PROCEDURE PRLEVOPL(O,KODE:INTEGER);
PROCEDURE PR1;
BEGIN
WITH LEVER DO
CASE O OF
1:BEGIN
GOTOXY(1,1);WRITE('1  Leverandørnr');GOTOXY(30,1);
WRITELN(NR);
END;
2:BEGIN
GOTOXY(1,2);WRITE('2  Navn-1');GOTOXY(30,2);WRITELN(NAVN1);
END;
3:BEGIN
GOTOXY(1,3);WRITE('3  Adresse');GOTOXY(30,3);WRITELN(ADR1);
END;
4:BEGIN
GOTOXY(1,4);WRITE('4  Landsby');GOTOXY(30,4);WRITELN(LANDSBY1);
END;
5:BEGIN
GOTOXY(1,5);WRITE('5  Postnr');GOTOXY(30,5);WRITELN(POSTNR1);
END;
7:BEGIN
GOTOXY(1,7);WRITE('7  Tlf');GOTOXY(30,7);WRITELN(TLF1);
END;
6:BEGIN
GOTOXY(1,6);WRITE('6  Land, 8 for Danmark');GOTOXY(30,6);
WRITELN(LAND1);
END;
8:BEGIN
GOTOXY(1,8);WRITE('8  Navn-2');GOTOXY(30,8);WRITELN(NAVN2);
END;
9:BEGIN
GOTOXY(1,9);WRITE('9  ADRESSE');GOTOXY(30,9);WRITELN(ADR2);
END;
10:BEGIN
GOTOXY(1,10);WRITE('10 LANDSBY');GOTOXY(30,10);WRITELN(LANDSBY2);
END;
11:BEGIN
GOTOXY(1,11);WRITE('11 POSTNR');GOTOXY(30,11);WRITELN(POSTNR2);
END;
13:BEGIN
GOTOXY(1,13);WRITE('13 TLF');GOTOXY(30,13);WRITELN(TLF2);
END;
12:BEGIN
GOTOXY(1,12);WRITE('12 LAND, 8 FOR DANMARK');GOTOXY(30,12);
WRITELN(LAND2);
END;
14:BEGIN
GOTOXY(1,14);WRITE('14 Betalingsbetingelser');GOTOXY(36,14);
WRITELN(BETABET);
END;
END;
END;
PROCEDURE PR2;
BEGIN
WITH LEVER DO
CASE O OF
15:BEGIN
GOTOXY(1,15);WRITE('15 Kostprisfakt1');GOTOXY(30,15);
WRITELN(KOSTPFAK(1));
END;
16:BEGIN
GOTOXY(40,15);WRITE('16 Kostprisfakt2');GOTOXY(65,15);WRITELN(KOSTPFAK(2));
END;
17:BEGIN
GOTOXY(1,16);WRITE('17 Kostprisfakt3');GOTOXY(30,16);WRITELN(KOSTPFAK(3));
END;
18:BEGIN
GOTOXY(40,16);WRITE('18 Kostprisfakt4');GOTOXY(65,16);WRITELN(KOSTPFAK(4));
END;
19:BEGIN
GOTOXY(1,17);WRITE('19 Kostprisfakt5');GOTOXY(30,17);WRITELN(KOSTPFAK(5));
END;
20: BEGIN
GOTOXY(1,18);WRITE('20 Saldo');GOTOXY(25,18);
WRITELN(SALDO/100:12:2);
END;
21: BEGIN
GOTOXY(1,19);WRITE('21 Årets køb');GOTOXY(25,19);
WRITELN(ÅKØB/100:12:2);
END;
END
END;
PROCEDURE PR3;
BEGIN
WITH LEVER DO
CASE O OF
22:BEGIN
GOTOXY(1,20);WRITE('22 Sidste års køb');GOTOXY(25,20);
WRITELN(SÅKØB/100:12:2);
END;
23:BEGIN
GOTOXY(1,21);WRITELN('23 S. best. dato',SBESDAT1*10000.0+SBESDAT2:14:-2);
END;
END
END;
BEGIN
  IF O<>0 THEN
  BEGIN
    IF (1<=O) AND (O<=14) THEN PR1
    ELSE
    IF (15<=O) AND (O<=21) THEN PR2
    ELSE
    IF (22<=O) AND (O<=23) THEN PR3
    ELSE
    BEGIN
       CLEARSCREEN;
       FOR O:=1 TO 14 DO PR1;
       FOR O:=15 TO 21 DO PR2;
       FOR O:=22 TO 23 DO PR3
    END
  END
END;
PROCEDURE LEVOPL(O:INTEGER);
VAR STRENG:STRING;
    I:INTEGER;
FUNCTION LÆS(X,Y:INTEGER):REAL;
VAR RES:REAL;
BEGIN
  REPEAT
       GOTOXY(X,Y);
       READLN;
       READ(RES)
  UNTIL IORESULT=0;
  LÆS:=RES
END;
PROCEDURE INCH(X,Y:INTEGER);
BEGIN
  REPEAT
       GOTOXY(X,Y);
       READLN;
       READ(CHAR1)
  UNTIL (CHAR1='N') OR (CHAR1='J') OR (CHAR1='n') OR (CHAR1='j')
END;
PROCEDURE OPL1;
BEGIN
  WITH LEVER DO
  CASE O OF
    1: BEGIN REPEAT
       GOTOXY(25,1);READLN;READ(NR)
       UNTIL (IORESULT=0);
       END;
    2: BEGIN
       FILLCHAR(NAVN1,40,' ');
       REPEAT
         GOTOXY(30,2);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<41;
       FOR I:=1 TO LENGTH(STRENG) DO NAVN1(I):=STRENG(I) END;
    3: BEGIN REPEAT
       GOTOXY(30,3);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<31;
       FILLCHAR(ADR1,30,' ');
       FOR I:=1 TO LENGTH(STRENG) DO ADR1(I):=STRENG(I) END;
    4: BEGIN REPEAT
       GOTOXY(30,4);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<21;
       FILLCHAR(LANDSBY1,20,' ');
       FOR I:=1 TO LENGTH(STRENG) DO LANDSBY1(I):=STRENG(I) END;
    5: BEGIN REPEAT
       GOTOXY(30,5);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<26;
       FILLCHAR(POSTNR1,25,' ');
       FOR I:=1 TO LENGTH(STRENG) DO POSTNR1(I):=STRENG(I) END;
    7: BEGIN REPEAT
       GOTOXY(30,7);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<11;
       FILLCHAR(TLF1,10,' ');
       FOR I:=1 TO LENGTH(STRENG) DO TLF1(I):=STRENG(I) END;
    6: REPEAT
       GOTOXY(30,6);READLN;READ(LAND1)
       UNTIL (IORESULT=0) AND (LAND1>0) AND (LAND1<1000);
    8: BEGIN
       FILLCHAR(NAVN2,30,' ');
       REPEAT
         GOTOXY(30,8);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<31;
       FOR I:=1 TO LENGTH(STRENG) DO NAVN2(I):=STRENG(I) END;
    9: BEGIN REPEAT
       GOTOXY(30,9);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<31;
       FILLCHAR(ADR2,30,' ');
       FOR I:=1 TO LENGTH(STRENG) DO ADR2(I):=STRENG(I) END;
    10: BEGIN REPEAT
       GOTOXY(30,10);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<21;
       FILLCHAR(LANDSBY2,20,' ');
       FOR I:=1 TO LENGTH(STRENG) DO LANDSBY2(I):=STRENG(I) END;
    11: BEGIN REPEAT
       GOTOXY(30,11);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<26;
       FILLCHAR(POSTNR2,25,' ');
       FOR I:=1 TO LENGTH(STRENG) DO POSTNR2(I):=STRENG(I) END;
  END
END;
PROCEDURE OPL2;
BEGIN
  WITH LEVER DO
  CASE O OF
    13: BEGIN REPEAT
       GOTOXY(30,13);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<11;
       FILLCHAR(TLF2,10,' ');
       FOR I:=1 TO LENGTH(STRENG) DO TLF2(I):=STRENG(I) END;
    12: REPEAT
       GOTOXY(30,12);READLN;READ(LAND2)
       UNTIL (IORESULT=0) AND (LAND2>0) AND (LAND2<1000);
   14: BEGIN REPEAT
       GOTOXY(30,14);READLN;READ(STRENG)
       UNTIL LENGTH(STRENG)<21;
       FILLCHAR(BETABET,20,' ');
       FOR I:=1 TO LENGTH(STRENG) DO BETABET(I):=STRENG(I)
       END;
   15: BEGIN FOR I:=5 DOWNTO 2 DO KOSTPFAK(I):=KOSTPFAK(I-1);
       REPEAT
       GOTOXY(25,15);READLN;READ(KOSTPFAK(1))
       UNTIL (IORESULT=0);
       END;
   16: REPEAT
       GOTOXY(65,15);
       READLN;READ(KOSTPFAK(2));
       UNTIL IORESULT=0;
   17: REPEAT
       GOTOXY(25,16);
       READLN;READ(KOSTPFAK(3));
       UNTIL IORESULT=0;
   18: REPEAT
       GOTOXY(65,16);
       READLN;READ(KOSTPFAK(4))
       UNTIL IORESULT=0;
   19: 
       REPEAT
       GOTOXY(25,17);
       READLN;READ(KOSTPFAK(5))
       UNTIL IORESULT=0;
   20:
       SALDO:=LÆS(25,18)*100;
   21: 
       ÅKØB:=LÆS(25,19)*100;
   22: 
       SÅKØB:=LÆS(25,20)*100;
   23: BEGIN REPEAT
       R:=LÆS(1,21)
       UNTIL (R>800000.0) AND (R<850000.0);
       SBESDAT1:=TRUNC(R/10000);
       SBESDAT2:=TRUNC(R-SBESDAT1*10000.0)
       END;
    END
END;
BEGIN
  IF O<=11 THEN OPL1 ELSE OPL2
END;
PROCEDURE ZERREC;
BEGIN
  WITH LEVER DO
  BEGIN
       NR:=0;
       SBESDAT1:=0;
       SBESDAT2:=0;
       LAND1:=0;
       LAND2:=0;
       FOR I:=1 TO 5 DO KOSTPFAK(I):=0;
       ÅKØB:=0.0;
       SÅKØB:=0.0;
       SALDO:=0.0;
 
       FILLCHAR(NAVN1,40,' ');
       FILLCHAR(NAVN2,30,' ');
       FILLCHAR(ADR1,30,' ');
       FILLCHAR(ADR2,30,' ');
       FILLCHAR(BETABET,20,' ');
       FILLCHAR(LANDSBY1,20,' ');
       FILLCHAR(LANDSBY2,20,' ');
       FILLCHAR(POSTNR1,25,' ');
       FILLCHAR(POSTNR2,25,' ');
       FILLCHAR(TLF1,10,' ');
       FILLCHAR(TLF2,10,' ');
  END
END;
PROCEDURE MAINTAIN;
VAR EXC,I,O,P,KODE:INTEGER;
    CHANGED:BOOLEAN;
    STRENG:STRING;
    STRENG1:STRING(10);
BEGIN
  (*INDLÆS KODE1 OG KODE2 FRA SYSREG*)
  CLEARSCREEN;
  GOTOXY(1,1);WRITELN('ADGANGSKODE');
  GOTOXY(20,1);READLN;READ(STRENG1);
  KODE:=0;
  IF STRENG1=KODE1 THEN KODE:=1;
  IF STRENG1=KODE2 THEN KODE:=2;
  REPEAT
  R:=1.0;
  REPEAT
 GOTOXY(1,22);WRITELN('OPRETTE, KIKKE ELLER SLETTE (1/2/3), 0 FOR STOP   ');
       GOTOXY(50,22);READLN;READ(P)
  UNTIL (IORESULT=0) AND((P=1) OR (P=2) OR (P=0) OR (P=3));
  CASE P OF
    1: BEGIN
        ZERREC;
        PRLEVOPL(-1,KODE);
        FOR I:=1 TO 15 DO LEVOPL(I);
        PRLEVOPL(-1,KODE);
        REPEAT
         GOTOXY(1,22);WRITELN('ÆNDRINGER, 0 FOR NEJ ELLERS FELTNR         ');
         GOTOXY(40,22);READLN;READ(O);
         IF ((O>=1) AND (O<=19))  THEN LEVOPL(O);
         PRLEVOPL(O,KODE)
        UNTIL O=0;
        INSERT(LZ.H,F,LEVER.A);
       END;
    2: BEGIN
         REPEAT
           GOTOXY(1,1);
           WRITELN('Leverandør-nr');
           GOTOXY(20,1);
           READLN;READ(LEVER.NR);
           IF LEVER.NR=0 THEN BEGIN IER:=0;R:=0.0 END
           ELSE
           GETREC(LZ.H,F,LEVER.A)
         UNTIL IER=0;
 
         IF R<>0.0 THEN
         BEGIN
         PRLEVOPL(-1,KODE);
         CHANGED:=FALSE;
         REPEAT
         REPEAT
          GOTOXY(1,22);WRITELN('HVILKET FELT SKAL ÆNDRES, 0 FOR SLUT      ');
          GOTOXY(40,22);READLN;READ(O)
         UNTIL IORESULT=0;
         CASE O OF
20,21,22,16,17,18,19            : BEGIN
                               GOTOXY(1,23);
                               WRITELN('ÆNDRING IKKE TILLADT');
                               GOTOXY(25,23);
                               WRITELN('TRYK RETURN NÅR FORSTÅET');
                               GOTOXY(60,23);READLN;READ(STRENG);
                               IF STRENG='A' THEN
                               BEGIN
                                 LEVOPL(O);CHANGED:=TRUE
                               END
                         END;
14,15,23: IF KODE=2 THEN
                           BEGIN
                             LEVOPL(O);CHANGED:=TRUE
                           END ELSE
                     BEGIN GOTOXY(1,23);
                     WRITELN('ÆNDRING IKKE TILLADT MED OPGIVEN ADGANGSKODE');
                     END;
2,3,4,5,6,7,8,9,10,11,12,13:BEGIN LEVOPL(O);CHANGED:=TRUE END
               END;
         PRLEVOPL(O,KODE)
         UNTIL O=0;
         IF CHANGED THEN PUTREC(LZ.H,F,LEVER.A);
         END
      END;
   3: BEGIN
        REPEAT
          GOTOXY(1,1);
          WRITELN('Leverandør-nr');
          GOTOXY(20,1);
          READLN;READ(LEVER.NR);
          IF LEVER.NR=0 THEN BEGIN IER:=0;R:=0.0 END
          ELSE
            GETREC(LZ.H,F,LEVER.A)
        UNTIL IER=0;
        IF R<>0.0 THEN
        BEGIN
          PRLEVOPL(-1,KODE);
          IF KODE=2 THEN
          WITH LEVER DO
          BEGIN
               REPEAT
               GOTOXY(1,23);WRITELN('SKAL SLETNING UDFØRES (1), 0 FOR NEJ ');
               GOTOXY(40,23);READLN;READ(O)
               UNTIL IORESULT=0;
               IF O=4711 THEN
               BEGIN
                 DELETE(LZ.H,F,LEVER.A);
                 PRLEVOPL(-1,KODE);
                 IF IER<>0 THEN ERROR
               END
            END
            ELSE
            BEGIN
               GOTOXY(1,23);
               WRITELN('SLETNING MÅ IKKE UDFØRES MED OPGIVEN NØGLE')
            END
         END
      END
   END
   UNTIL P=0
END;
BEGIN
  CLEARSCREEN;
 
  FILNAVN2:='LEVERRG:P2:0000:I';
  REWRITE(F,FILNAVN2);
  IOPEN(LZ.H,F,SKRIV);IF IER<>0 THEN OFEJL;
  IF NOT LZ.H.FILEINIT THEN
  BEGIN
  REPEAT
       GOTOXY(1,1);
       WRITELN('ANTAL POSTER VED INITIALISERING');
       GOTOXY(40,1);
       READLN;READ(I)
  UNTIL (IORESULT=0) AND (I>0) AND (I<151);
  INITIATE(LZ.H,F,I);
  IF IER<>0 THEN ERROR
  END;
  FILNAVN1:='SYSREG:P2:1:I';
  REWRITE(SYSFIL,FILNAVN1);
  SEEK(SYSFIL,1);
  GET(SYSFIL);
  KODE1:='          ';
  KODE2:=KODE1;
  FOR I:=1 TO 10 DO
  BEGIN
    KODE1(I):=SYSFIL^.KODE(1,I);
    KODE2(I):=SYSFIL^.KODE(2,I)
  END;
  CLOSE(SYSFIL);
IF IER<>0 THEN WRITE('IOPEN ',IER) ELSE
BEGIN
  MAINTAIN;
END;
  ICLOSE(LZ.H,F);
  CLEARSCREEN;
  WRITELN('ICLOSE ',IER);
  CHAIN('INTRE   *1','HOVSA:P1',QUQ)
END.

Full view