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

⟦773abb837⟧ TextFile

    Length: 9984 (0x2700)
    Types: TextFile
    Notes: Mikados_K
    Names: »OHOVSA.K«

Derivation

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

Mikados K File

PROGRAM HOVSA;
CONST LNGTH=20;
TYPE   PROCSTAT=RECORD
       NP:INTEGER;
       NROSTART:INTEGER
       END;
NPFILE = FILE OF PROCSTAT;
PARMARRAY=PACKED ARRAY (1..40) OF CHAR;
DIRECTBUF=PACKED ARRAY (1..LNGTH) OF CHAR;
CLOCKRECORD = RECORD
               DATE:PACKED ARRAY (1..10) OF CHAR;
               TIME:PACKED ARRAY (1..8) OF CHAR
              END;
VAR    PARM:^PARMARRAY;
       CLOCK:^CLOCKRECORD;
       SV,TT,OFFSET,MIN,SEC,SEC100:INTEGER;
       HOWL,ALARM,STOPWATCH:BOOLEAN;
       ALARMTIME:PACKED ARRAY (1..8) OF CHAR;
       DBUF:DIRECTBUF;
       C,CH :CHAR;
       F:STRING(11);
       NRPF,CF:NPFILE;
       QUQ:^INTEGER;
       I,SKIFT:INTEGER;
       FIL:STRING(20);
PROCEDURE SETUP(VAR BUFFER:DIRECTBUF;LENGTH:INTEGER);
EXTERNAL;
FUNCTION AVAIL:BOOLEAN;
EXTERNAL;
FUNCTION NEXT:CHAR;
EXTERNAL;
PROCEDURE FINIS;
EXTERNAL;
PROCEDURE UR;
BEGIN
  SETUP(DBUF,LNGTH);
  C:=' ';
  GOTOXY(62,1);WRITE('Alarm');
  IF ALARM THEN BEGIN GOTOXY(72,1);WRITE(ALARMTIME) END;
  GOTOXY(62,2);WRITE('Time');
  SV:=-1;
  REPEAT
  IF C<>CLOCK^.TIME(8) THEN
  BEGIN
    GOTOXY(67,2);
    WRITE(CLOCK^.TIME);
    C:=CLOCK^.TIME(8);
    OFFSET:=TIME;
  END;
  GOTOXY(76,2);
  WRITE((TIME-OFFSET) MOD 100:4);
  IF STOPWATCH THEN
  BEGIN
    IF (TIME<0) AND (TT>0) THEN
      SEC100:=SEC100+(32767-TT)+(32767+TIME+2)
    ELSE
      SEC100:=SEC100+TIME-TT;
    TT:=TIME;
    SEC:=SEC+SEC100 DIV 100;SEC100:=SEC100 MOD 100;
    MIN:=MIN+SEC DIV 60;    SEC:=SEC MOD 60;
    GOTOXY(60,3);
    WRITE(MIN:4,SEC:3,SEC100:3);
  END;
  IF ALARM THEN IF ALARMTIME<=CLOCK^.TIME THEN HOWL:=TRUE;
  IF HOWL THEN WRITE(CHR(7));
  IF AVAIL THEN
  BEGIN
    CH:=NEXT;
    CASE CH OF
    'S':BEGIN
          STOPWATCH:=NOT(STOPWATCH);
          IF STOPWATCH THEN BEGIN MIN:=0;SEC:=0;SEC100:=0;TT:=TIME END;
        END;
    'U':BEGIN GOTOXY(67,2);FOR I:=1 TO 8 DO CLOCK^.TIME(I):=NEXT END;
    'C':BEGIN STOPWATCH:=TRUE;TT:=TIME END;
'0','1','2','3','4','5','6','7','8','9':BEGIN FINIS;SV:=ORD(CH)-48 END;
    'M':BEGIN
          GOTOXY(70,3);
          IF STOPWATCH THEN
             WRITE(MIN:4,SEC:3,SEC100:3);
        END;
    'A':BEGIN
          HOWL:=FALSE;
          ALARM:=NOT(ALARM);
          CLOCK^.DATE(9):='0';
          IF ALARM THEN
          BEGIN
            CLOCK^.DATE(9):='1';
            GOTOXY(72,1);
            FOR I:=1 TO 8 DO BEGIN CLOCK^.DATE(I):=NEXT;
                                   ALARMTIME(I):=CLOCK^.DATE(I)
                             END;
            GOTOXY(72,1);WRITE(ALARMTIME)
          END;
        END;
    END;
  END;
  UNTIL SV>-1
END;
PROCEDURE LIST;
      BEGIN
        WRITELN(' ':20,'1 Messeoversigt');
        WRITELN;
        WRITELN(' ':20,'2 Disponeringsliste');
        WRITELN;
        WRITELN(' ':20,'3 Varelister');
        WRITELN(' ':20,'4 Prismærkater');
        WRITELN;
        WRITELN(' ':20,'5 Kundeliste');
        WRITELN(' ':20,'6 Alfabetisk kundeliste');
        WRITELN(' ':20,'7 Labels');
        WRITELN(' ':20,'8 Saldoliste');
        WRITELN;
        WRITELN(' ':20,'9 Restordreoversigt');
        WRITELN(' ':20,'10 Kunders restordrer');
        GOTOXY(1,20);WRITELN('Vælg 1-10');
        REPEAT
           GOTOXY(11,20);READLN;READ(I)
        UNTIL (IORESULT=0) AND (I>-1) AND (I<11);
        IF I>0 THEN
          SKIFT:=1;
        CASE I OF
        1: F:='MESSEKIK:P1';
        2: F:='DISPLIST:P1';
        3: F:='LISTKOMP:P1';
        4: F:='VARLAB:P1';
        5: F:='DUMPKUND:P1';
        6: F:='ALFAKUND:P1';
        7: F:='KNUDELBO:P1';
        8: F:='SALDOLIS:P1';
        9: F:='RESTOVER:P1';
        10: F:='KUNDREST:P1';
        END;
      END;
PROCEDURE SPØRG;
       BEGIN
        WRITELN(' ':20,'1 Vareregister');
        WRITELN(' ':20,'2 Kunderegister');
        WRITELN(' ':20,'3 Ordreregister');
        WRITELN(' ':20,'4 Restordreregister');
        WRITELN(' ':20,'5 Leverandørregister');
        WRITELN(' ':20,'6 Landeregister');
        WRITELN(' ':20,'7 Systemregister');
        WRITELN(' ':20,'8 Tekstregister');
        WRITELN(' ':20,'9 Betalingsadresseregister');
        WRITELN(' ':20,'10 Toldpositionsregister');
        WRITELN;
        WRITELN(' ':20,'Kontospørgeprogrammer');
        WRITELN(' ':20,'11 Saldostatistik');
        WRITELN(' ':20,'12 Kontoudtog');
        GOTOXY(1,20);WRITELN('Vælg 1-12');
        REPEAT
           GOTOXY(11,20);READLN;READ(I)
        UNTIL (IORESULT=0) AND (I>-1) AND (I<13);
        CASE I OF
        1: F:='VAREVEDL:P1';
        2: F:='KUNDVEDL:P1';
        3: F:='ORDREVED:P1';
        4: F:='RESTVEDL:P1';
        5: F:='LEVVEDL:P1';
        6: F:='LANDVEDL:P1';
        7: F:='SYSVEDL:P1';
        8: BEGIN F:='TEKSTVED:P1'; SKIFT:=1 END;
        9: F:='BTAVEDL:P1';
        10:F:='TOLDVEDL:P1';
        11: F:='SALDSTAT:P1';
        12: F:='KONTUDT:P1';
        END
      END;
PROCEDURE DOIT;
BEGIN
    WRITELN(' ':20,'0 Stop');
    WRITELN;
    WRITELN(' ':20,'1 Ordreindtastning');
    WRITELN(' ':20,'2 Pakkelisteudskrivning');
    WRITELN(' ':20,'3 Fakturering');
    WRITELN;
    WRITELN(' ':20,'4 Indbetalinger');
    WRITELN(' ':20,'5 Kreditnotaer');
    WRITELN;
    WRITELN(' ':20,'6 Periodeafslutninger');
    WRITELN;
    WRITELN(' ':20,'7 Spørgeprogrammer og kartoteksvedligeholdelse');
    WRITELN;
    WRITELN(' ':20,'8 Listeprogrammer');
    WRITELN;
    WRITELN(' ':20,'9 Indkøb');
    GOTOXY(1,20);WRITELN('Vælg 0-9 ');
    UR;
    I:=SV;
    CLEARSCREEN;
    CASE I OF
    1: F:='INDORDRE:P1';
    2: F:='PAKLISTE:P1';
    3: F:='FAKTURA:P1';
    4: F:='KASSERAP:P1';
    5: F:='KREDNOTA:P1';
    6: BEGIN
         WRITELN(' ':20,'1 Faktureringsjournal');
         WRITELN(' ':20,'2 Bogholderijournal');
         WRITELN(' ':20,'3 Månedsafslutning');
         WRITELN(' ':20,'4 Renteberegning');
         WRITELN(' ':20,'5 Rente-postering');
         WRITELN(' ':20,'6 Årsafslutning');
         GOTOXY(1,20);WRITELN('Vælg 1-6');
         REPEAT
           GOTOXY(11,20);READLN;READ(I)
         UNTIL (IORESULT=0) AND (I>-1) AND (I<7);
         IF I>2 THEN SKIFT:=1;
         CASE I OF
         1: F:='TESTJOU:P1';
         2: F:='BOGJOU:P1';
         3: F:='MAFSLUT:P1';
         4: F:='RENTEBER:P1';
         5: F:='RENTEBEK:P1';
         6: F:=' ';
         END
       END;
    7: SPØRG;
    8:LIST;
    9:BEGIN
        WRITELN(' ':20,'1 Varebestilling');
        WRITELN(' ':20,'2 Varehjemkomst');
        GOTOXY(1,20);WRITELN('Vælg 1-2');
        REPEAT
           GOTOXY(11,20);READLN;READ(I)
        UNTIL (IORESULT=0) AND (I>-1) AND (I<3);
        CASE I OF
        1: F:='BESTVARE:P1';
        2: F:='HJEMVARE:P1';
        END
      END;
    0: F:='STOP';
    END;
END;
BEGIN
  ALARM:=CLOCK^.DATE(9)='1';
  IF ALARM THEN FOR I:=1 TO 8 DO ALARMTIME(I):=CLOCK^.DATE(I);
  HOWL:=FALSE;STOPWATCH:=FALSE;
  FIL:='PROCSTAT:P2:0:I';
  (*$C-*)
  REPEAT
  REWRITE(NRPF,FIL);
  SEEK(NRPF,1);
  UNTIL IORESULT=0;
  (*$C+*)
  GET(NRPF);
  IF NRPF^.NP=0 THEN NRPF^.NP:=1;
  IF NRPF^.NP=-1 THEN
  BEGIN
    F:='OPSTART:P1';
    CLOSE(NRPF)
  END
  ELSE
  BEGIN
    NRPF^.NP:=NRPF^.NP-1;
    SEEK(NRPF,1);
    PUT(NRPF);
    CLOSE(NRPF);
    REPEAT
      F:=' ';
      SKIFT:=2;
      CLEARSCREEN;
      DOIT;
      IF  F<>' ' THEN
      REPEAT
        (*$C-*)
        REPEAT
          REWRITE(NRPF,FIL);
          SEEK(NRPF,1);
        UNTIL IORESULT=0;
        (*$C+*)
        GET(NRPF);
        CASE NRPF^.NP OF
        0:IF SKIFT=1 THEN
          BEGIN
            REPEAT
            GOTOXY(1,20);
            WRITELN('Sæt plade 3 i drev 1 og tryk RETURN');
            SKIFT:=0;
            READLN;
            NRPF^.NP:=3;
(*$C-*)
            REWRITE(CF,'C3:P1:0:J');
            SEEK(CF,1)
(*$C+*)
            UNTIL IORESULT=0;
            CLOSE(CF)
          END
          ELSE
          BEGIN
            IF F='STOP' THEN NRPF^.NP:=-1 ELSE NRPF^.NP:=1;
            SKIFT:=0
          END;
        1:IF (SKIFT=1) OR (F='STOP') THEN
          BEGIN
            CLOSE(NRPF);
            GOTOXY(1,20);
            WRITELN('Vil du vente til anden bruger er færdig ? (J/N) ');
            REPEAT
              GOTOXY(50,20);READLN;READ(CH)
            UNTIL (CH='J') OR (CH='N') OR (CH='n') OR (CH='j');
            IF (CH='N') OR (CH='n') THEN
            BEGIN
              SKIFT:=0;F:=' '
            END
            ELSE
            BEGIN
              GOTOXY(1,20);WRITELN('Tryk RETURN når klar');READLN
            END;
          END
          ELSE
          BEGIN
            NRPF^.NP:=2;SKIFT:=0
          END;
        3:BEGIN
            CLOSE(NRPF);
            GOTOXY(1,20);
            WRITELN('Vil du vente til anden bruger er færdig ? (J/N) ');
            REPEAT
              GOTOXY(50,20);READLN;READ(CH)
            UNTIL (CH='J') OR (CH='N') OR (CH='n') OR (CH='j');
            IF (CH='N') OR (CH='n') THEN
            BEGIN
              SKIFT:=0;F:=' '
            END
            ELSE
            BEGIN
              GOTOXY(1,20);WRITELN('Tryk RETURN når klar');READLN
            END;
          END;
       -1:BEGIN
            SKIFT:=0;
            IF F<>'STOP' THEN NRPF^.NP:=1
          END
        END;
      UNTIL SKIFT=0;
    UNTIL F<>' ';
REPEAT
(*$C-*)
    SEEK(NRPF,1);
    I:=IORESULT;
    IF I<>0 THEN WRITELN('Plade 2 må ikke røres, sæt den nu i drev 2');
(*$C+*)
UNTIL I=0;
    PUT(NRPF);
    CLOSE(NRPF);
  END;
  IF F<>'STOP' THEN
  CHAIN('INTRE   *1',F,QUQ)
END.

Full view