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

⟦7dfb00a36⟧ TextFile

    Length: 11232 (0x2be0)
    Types: TextFile
    Notes: Mikados_K
    Names: »NBTPROC.K«

Derivation

└─⟦a3d38fea3⟧ Bits:30008985 PRODUKTION NBT.
    └─⟦this⟧ »NBTPROC.K« 

Mikados K File

PROCEDURE OWRITE(VAR OWZH:ISFHEAD;VAR OWF:ISF;NR1,NR2:INTEGER);
 
BEGIN
  REWRITE(OWF,FILEN(NR1));
  OWZH.FILENAME:=FILER(NR1);
  IOPEN(OWZH,OWF,NR2);
  IF IER<>0 THEN OFEJL(OWZH.FILENAME);
END;
PROCEDURE ÅBEN;
BEGIN
  CLEARSCREEN;
  FNAVN:=':P2:0000:I';
  FILEN(1):=CONCAT('KOMBINAT',FNAVN);
  FILEN(2):=CONCAT('VINDUE',FNAVN);
  FILEN(3):=CONCAT('KARME',FNAVN);
  FILEN(4):=CONCAT('FARVE',FNAVN);
  FILEN(5):=CONCAT('OLINIE',FNAVN);
  FILEN(6):=CONCAT('OPSPLIT',FNAVN);
  FILEN(7):=CONCAT('GLAS',FNAVN);
  FILEN(8):=CONCAT('PROFIL',FNAVN);
  FILEN(9):=CONCAT('TILBEHØR',FNAVN);
  FILEN(10):=CONCAT('RAMME',FNAVN);
  FILEN(11):=CONCAT('POSTER',FNAVN);
  FILEN(12):=CONCAT('FORSTÆRK',FNAVN);
  FILEN(13):=CONCAT('BREGEL',FNAVN);
   
  FILER(1):='KOMBINAT';
  FILER(2):='VINDUE  ';
  FILER(3):='KARME   ';
  FILER(4):='FARVE   ';
  FILER(5):='OLINIE  ';
  FILER(6):='OPSPLIT ';
  FILER(7):='GLAS    ';
  FILER(8):='PROFIL  ';
  FILER(9):='TILBEHØR';
  FILER(10):='RAMME   ';
  FILER(11):='POSTER  ';
  FILER(12):='FORSTÆRK';
  FILER(13):='BREGEL  ';
 
  OWRITE(OLIZ.H,OLIF,5,LÆS);
  OWRITE(OPSZ.H,OPSF,6,SKRIV);
  OWRITE(PROZ.H,PROF,8,LÆS);
  OWRITE(TILZ.H,TILF,9,LÆS);
  OWRITE(RAMZ.H,RAMF,10,LÆS);
  OWRITE(POSZ.H,POSF,11,LÆS);
  OWRITE(FORZ.H,FORF,12,LÆS);
  OWRITE(BREZ.H,BREF,13,LÆS);
END;
 
PROCEDURE CHECKBH (VAR  BH:AR13);
BEGIN
  IF(BH(3)>0)AND((BH(2)=0)OR(BH(1)=0)) THEN FEJL (1);
  IF((BH(2)>0)AND(BH(1)=0)) THEN FEJL (1)
END;
 
 
PROCEDURE INITPOST;
 
BEGIN
WITH OPSPLIT DO
BEGIN
  ORDRENR:=OLINIE.ORDRENR;
  TYP:=0;
  POSITION:=OLINIE.POSITION;
  RAMMENR:=0;
  PLACER:=0;
  ANTAL:=OLINIE.ANTAL;
  TYPENR:=NULLER;
  FARVE:=0;
  FTYPE:=NULLER;
  FLÆNGDE:=0;
  SLÆNGDE:=0;
  BESLAGNR:=0;
  HÆNGSEL:=0;
  GUMMI1:=NULLER;
  GUMMI2:=NULLER;
  STATUS:=OLINIE.STATUS;
END;
END;
 
 
PROCEDURE BESTEMFARVE(VAR FAK,FAN:DOBBTAL;VAR FIL:FILNAVN);
 
TYPE FARVEZONE=RECORD
               H:ISFHEAD;
               T:ARRAY(1..MFARVEZ) OF INTEGER;
     END;
 
     FARVEPOST=RECORD
               AA:ARAR;
               A:AR;
               AAA:RAR;
               NR,
               KODE:INTEGER;
               TEKST:TEK;
     END;
VAR  FARF:ISF;
     FARZ:FARVEZONE;
     FARVE:FARVEPOST;
 
BEGIN
  WITH FARVE DO
  BEGIN
    OWRITE(FARZ.H,FARF,4,LÆS);
    NR:=OLINIE.FARVE(1);
    GETREC(FARZ.H,FARF,A);
    IF IER <> 0 THEN IOF(FARZ.H.FILENAME);
    FAK(1):=KODE;FAN(1):=NR;
    IF OLINIE.FARVE(1)<>OLINIE.FARVE(2) THEN
    BEGIN
      NR:=OLINIE.FARVE(2);
      GETREC(FARZ.H,FARF,A);
      IF IER<>0 THEN IOF(FARZ.H.FILENAME)
    END;
    FAK(2):=KODE;FAN(2):=NR;
    ICLOSE(FARZ.H,FARF);
  END;
END;
 
 
PROCEDURE BESTEMFORSTÆRKNING;
 
BEGIN
  REGELNR:=3;
  IF OLINIE.MONTER=0 THEN
  BEGIN
    REGELNR:=2;
    IF FAKODE=0 THEN REGELNR:=1
  END;
END;
 
 
PROCEDURE STÆRKNING;
 
TYPE STÆRKPOST=RECORD
               AA:ARAR;
               A:AR;
               AAA:RAR;
               NR:INTEGER;
               GRÆNSE,
               TYP:AR15;
               FRADRAG,
               KONSTANT,
               AFRUND:INTEGER;
               TEKST:TEK;
      END;
 
VAR STÆRK:STÆRKPOST;
        I:INTEGER;
 
BEGIN
WITH STÆRK DO
BEGIN
  NR:=STÆRKR;
  GETREC(FORZ.H,FORF,A);
  IF IER<>0 THEN IOF(FORZ.H.FILENAME);
  I:=1;
  WHILE (GRÆNSE(I)<MÅL) AND (I<5) DO I:=I+1;
  LÆNGDE:=((MÅL - FRADRAG) DIV AFRUND) * AFRUND;
  IF I=1 THEN LÆNGDE:= KONSTANT;
  TYPER:=TYP(I)
END;
END;
 
 
PROCEDURE BESLAGNING (VAR NR1:INTEGER);
 
TYPE BREGELPOST=RECORD
                AA:ARAR;
                A:AR;
                AAA:RAR;
                NR:INTEGER;
                GRÆNSE,
                PAKKE:AR19;
                TEKST:TEK;
     END;
 
VAR  BREGEL:BREGELPOST;
          I:INTEGER;
 
BEGIN
WITH BREGEL DO
BEGIN
  NR:=NR1;
  GETREC(BREZ.H,BREF,A);
  IF IER <> 0 THEN IOF(BREZ.H. FILENAME);
  I:=1;
  WHILE (GRÆNSE(I) <MÅL) AND (I<9) DO I:=I+1;
  TYPE2:=PAKKE(I)
END;
END;
 
 
PROCEDURE BESTEMGLAS(VAR GKODE,GNR:AR13);
 
TYPE GLASZONE=RECORD
              H:ISFHEAD;
              T:ARRAY(1..MGLASZ) OF INTEGER;
     END;
 
     GLASPOST=RECORD
              AA:ARAR;
              A:AR;
              AAA:RAR;
              NR,
              KODE:INTEGER;
              TEKST:TEK;
     END;
 
VAR  GLAF:ISF;
     GLAZ:GLASZONE;
     GLAS:GLASPOST;
     I:INTEGER;
 
BEGIN
  OWRITE(GLAZ.H,GLAF,7,LÆS);
  FOR I:=1 TO 3 DO
  BEGIN
    GKODE(I):=0;GNR(I):=0;
    IF OLINIE.GLASART(I)<>0 THEN
    BEGIN
      GLAS.NR:=OLINIE.GLASART(I);
      GETREC(GLAZ.H,GLAF,GLAS.A);
      IF IER<>0 THEN IOF(GLAZ.H.FILENAME);
      GKODE(I):=GLAS.KODE;GNR(I):=GLAS.NR;
    END;
  END;
END;
 
 
PROCEDURE GENER1(TYP1:INTEGER;VAR TYP2:INTEGER;FL,SL,HÆ:INTEGER;VAR GU1:
                 DOBBTAL;VAR GU2:DOBBTAL);
 
BEGIN
  INITPOST;
  WITH OPSPLIT DO
  BEGIN
   TYP:=1;
    RAMMENR:=I1;
    TYPENR(1):=TYP1;
    TYPENR(2):=TYP2;
    PLACER:=PLACERING;
    FARVE:=FANR;
    FTYPE:=TYPE1;
    FLÆNGDE:=FL;
    SLÆNGDE:=SL;
    BESLAGNR:=TYPE2;
    HÆNGSEL:=HÆ;
    GUMMI1:=GU1;
    GUMMI2:=GU2;
  END;
  INSERT(OPSZ.H,OPSF,OPSPLIT.A);
  IF IER <> 0 THEN IOF(OPSZ.H.FILENAME);
END;
 
 
PROCEDURE GENER2 (TYP3:INTEGER;VAR TYP1:DOBBTAL;FL,SL:INTEGER);
 
BEGIN
  INITPOST;
  WITH OPSPLIT DO
  BEGIN
    TYP:=TYP3;
    RAMMENR:=I1;
    PLACER:=PLACERING;
    FLÆNGDE:=FL;
    SLÆNGDE:=SL;
    TYPENR:=TYP1;
  END;
  INSERT (OPSZ.H,OPSF,OPSPLIT.A);
  IF IER <> 0 THEN IOF(OPSZ.H.FILENAME);
END;
 
PROCEDURE HENTKOMBI(VAR KKA:INTEGER;VAR KRA:INTEGER;VAR KPO:INTEGER;
                    VAR FIL:FILNAVN);
 
TYPE KOMBIZONE=RECORD
               H:ISFHEAD;
               T:ARRAY(1..MKOMBIZ) OF INTEGER;
     END;
 
     KOMBIPOST=RECORD
               AA:ARAR;
               A:AR;
               AAA:RAR;
               NR,
               KARMPROFIL,
               POST1,
               POST2,
               RAMMEPROFIL,
               F3PROFIL:INTEGER;
     END;
 
VAR  KOMF:ISF;
     KOMZ:KOMBIZONE;
     KOMBI:KOMBIPOST;
 
BEGIN
  WITH KOMBI DO
  BEGIN
    NR:=OLINIE.VINDUENR DIV 1000;
    OWRITE(KOMZ.H,KOMF,1,LÆS);
    GETREC(KOMZ.H,KOMF,A);
    IF IER<>0 THEN IOF(KOMZ.H.FILENAME);
    KKA:=KARMPROFIL;KRA:=RAMMEPROFIL;KPO:=POST1;
    ICLOSE(KOMZ.H,KOMF);
  END;
END;
 
 
PROCEDURE HENTVINDUE(VAR VKA:INTEGER;VAR RAM:AR116;VAR VBE:AR14;VAR VBR:AR13;
                     VAR VHØ:AR13;VAR FIL:FILNAVN);
 
TYPE VINDUEZONE=RECORD
                H:ISFHEAD;
                T:ARRAY(1..MVINDUEZ) OF INTEGER;
     END;
 
     VINDUEPOST=RECORD
                AA:ARAR;
                A:AR;
                AAA:RAR;
                NR,
                KARMNR,
                MAXMÅL:INTEGER;
                RAMME:AR116;
                BESLAG:AR14;
                BREDDE,
                HØJDE:AR13;
                TEKST:TEK;
     END;
 
VAR  VINF:ISF;
     VINZ:VINDUEZONE;
     VINDUE:VINDUEPOST;
 
BEGIN
  WITH VINDUE DO
  BEGIN
    NR:=OLINIE.VINDUENR MOD 1000;
    OWRITE(VINZ.H,VINF,2,LÆS);
    GETREC(VINZ.H,VINF,A);
    IF IER<>0 THEN IOF(VINZ.H.FILENAME);
    VKA:=KARMNR;RAM:=RAMME;VBE:=BESLAG;VBR:=BREDDE;VHØ:=HØJDE;
    ICLOSE(VINZ.H,VINF);
  END;
END;
 
PROCEDURE PROFILBEHANDLING(HØJDE:INTEGER;VAR FORSTÆRK:AR14;VAR PROFILSTÆRK:
                                 ADOBTAL;VAR BESLAG1:AR14; VAR PROFIL:
                                 INTEGER;VAR GUM1,GUM2:DOBBTAL);
VAR I:INTEGER;
 
BEGIN
WRITELN('BESLAG1',BESLAG1(1):6,BESLAG1(2):6,BESLAG1(3):6,BESLAG1(4):6);
WRITELN('FORSTÆRK1',FORSTÆRK(1):6,FORSTÆRK(2):6,FORSTÆRK(3):6,FORSTÆRK(4):6);
  FOR PLACERING:=1 TO 4 DO
  BEGIN
    WRITELN('PLACERING',PLACERING:6);
    I:=BESLAG1(PLACERING);
    TYPE1:=NULLER;TYPE2:=0;LÆNGDE:=0;
    IF PLACERING=3 THEN
    BEGIN
      MÅL:=HØJDE;
      STÆRKR:=STÆRKR2;
    END;
WRITELN('FORSTÆRK(PLACERING)',FORSTÆRK(PLACERING):6);
    IF FORSTÆRK(PLACERING)=1 THEN
    BEGIN
      STÆRKNING;
      IF TYPER>0 THEN
      BEGIN
        TYPE1:=PROFILSTÆRK(TYPER);
        GENER2(4,TYPE1,0,LÆNGDE);
      END;
    END;
WRITELN('BESLAG1(PLACERING):',BESLAG1(PLACERING):6);
    IF I>0 THEN
    BEGIN
      BESLAGNING(I);
      TYPE3:=NULLER;TYPE3(2):=TYPE2;
      GENER2(5,TYPE3,0,0)
    END;
    GENER1(0,PROFIL,LÆNGDE,MÅL,0,GUM1,GUM2);
  END;
END;
PROCEDURE HENTKARM(NR1:INTEGER;VAR KBE,KFO:AR14;VAR KVR,KLR:AR13;VAR FIL:
                                                                 FILNAVN);
 
TYPE KARMZONE=RECORD
              H:ISFHEAD;
              T:ARRAY(1..MKARMEZ) OF INTEGER;
     END;
 
     KARMPOST=RECORD
              AA:ARAR;
              A:AR;
              AAA:RAR;
              NR:INTEGER;
              FORSTÆRK,
              BESLAG:AR14;
              TÆTGUM:INTEGER;
              VREGEL,
              LREGEL:AR13;
              TEKST:TEK;
     END;
 
VAR  KARF:ISF;
     KARZ:KARMZONE;
     KARM:KARMPOST;
 
BEGIN
  WITH KARM DO
  BEGIN
    OWRITE(KARZ.H,KARF,3,LÆS);
    NR:=NR1;
    GETREC(KARZ.H,KARF,A);
    IF IER<>0 THEN IOF(FIL);
    KBE:=BESLAG;KFO:=FORSTÆRK;KVR:=VREGEL;KLR:=LREGEL;
    ICLOSE(KARZ.H,KARF);
  END;
END;
 
PROCEDURE UDSKRIV(NR1,NR2:INTEGER);
BEGIN
  CASE NR1 OF
 
  1: WRITELN('BESLAG',NR2:6,RAMME.BESLAG(1):6,RAMME.BESLAG(2):6,
                            RAMME.BESLAG(3):6,RAMME.BESLAG(4):6);
 
  2: WRITELN('GLAS  ',NR2:6,OLINIE.GLASART(1):6,OLINIE.GLASART(2):6,
                            OLINIE.GLASART(3):6);
 
  3: WRITELN('RAMMER',NR2:6,OLINIE.RAMMENR(1):6,OLINIE.RAMMENR(2):6,
                            OLINIE.RAMMENR(3):6);
 
  4: WRITELN('FORSTÆRK',NR2:6,RAMME.FORSTÆRK(1):6,RAMME.FORSTÆRK(2):6,
                              RAMME.FORSTÆRK(3):6,RAMME.FORSTÆRK(4):6);
 
  5: WRITELN('FORSTÆR',NR2:6,RPROFIL.FORSTÆR(1,1):6,RPROFIL.FORSTÆR(1,2):6,
                             RPROFIL.FORSTÆR(2,1):6,RPROFIL.FORSTÆR(2,2):6,
                             RPROFIL.FORSTÆR(3,1):6,RPROFIL.FORSTÆR(3,2):6,
                             RPROFIL.FORSTÆR(4,1):6,RPROFIL.FORSTÆR(4,2):6,
                             RPROFIL.FORSTÆR(5,1):6,RPROFIL.FORSTÆR(5,2):6);
 
  6: WRITELN('TÆTGUM',NR2:6,RPROFIL.TÆTGUM(1):6,RPROFIL.TÆTGUM(2):6);
 
  7: WRITELN('RAMMEPROFIL',NR2:6);
 
  8: WRITELN('GLASGUM',NR2:6,TILBEHØR.GLASGUM(1):6,TILBEHØR.GLASGUM(2):6);
 
  END;
END;

Full view