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

⟦5f9074664⟧ TextFile

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

Derivation

└─⟦a3d38fea3⟧ Bits:30008985 PRODUKTION NBT.
    └─⟦this⟧ »NBTPROC1.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(GLAZ.H,GLAF,7,LÆS);
  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 FAK1,FAK2,FAN1,FAN2:INTEGER;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.FARVE1;
    GETREC(FARZ.H,FARF,A);
    IF IER <> 0 THEN IOF(FARZ.H.FILENAME);
    FAK1:=KODE;FAN1:=NR;
    IF OLINIE.FARVE1<>OLINIE.FARVE2 THEN
    BEGIN
      NR:=OLINIE.FARVE2;
      GETREC(FARZ.H,FARF,A);
      IF IER<>0 THEN IOF(FARZ.H.FILENAME)
    END;
    FAK2:=KODE;FAN2:=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;
      END;
 
VAR STÆRK:STÆRKPOST;
 
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;
 
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;
 
TYPE GLASPOST=RECORD
              AA:ARAR;
              A:AR;
              AAA:RAR;
              NR,
              KODE:INTEGER;
              TEKST:TEK;
     END;
 
VAR  GLAS:GLASPOST;
 
BEGIN
WITH OLINIE DO
BEGIN
  IF I1=RAMMENR1 THEN
    GLASNR:=GLASART1
  ELSE
    IF I1=RAMMENR2 THEN
      GLASNR:=GLASART2
    ELSE
      GLASNR:=GLASART3;
  GLAS.NR:=GLASNR;
  GETREC(GLAZ.H,GLAF,GLAS.A);
  IF IER=0 THEN
    GLASKODE:=GLAS.KODE
  ELSE
    IOF(GLAZ.H.FILENAME)
END;
END;
 
 
PROCEDURE GENER(TYP1,TYP2,TYP3,FL,SL,HÆ:INTEGER;VAR GU1,GU2:DOBBTAL);
 
TYPE OPSPLITZONE=RECORD
                 H:ISFHEAD;
                 T:ARRAY(1..MOPSPLIZ) OF INTEGER;
     END;
    
     OPSPLITPOST=RECORD
                 AA:ARAR;
                 A:AR;
                 AAA:RAR;
                 ORDRENR,
                 TYP,
                 POSITION,
                 RAMMENR,
                 PLACER,
                 ANTAL:INTEGER;
                 TYPENR:DOBBTAL;
                 FARVE:INTEGER;
                 FTYPE:DOBBTAL;
                 FLÆNGDE,
                 SLÆNGDE,
                 BESLAGNR,
                 HÆNGSEL:INTEGER;
                 GUMMI1,
                 GUMMI2:DOBBTAL;
                 STATUS:INTEGER;
     END;
 
VAR  OPSF:ISF;
     OPSZ:OPSPLITZONE;
     OPSPLIT:OPSPLITPOST;
 
BEGIN
  WITH OPSPLIT DO
  BEGIN
    ORDRENR:=OLINIE.ORDRENR;
    TYP:=TYP1;
    RAMMENR:=I1;
    TYPENR(1):=TYP2;
    TYPENR(2):=TYP3;
    POSITION:=OLINIE.POSITION;
    PLACER:=PLACERING;
    ANTAL:=OLINIE.ANTAL;
    FARVE:=0;
    FTYPE:=NULLER;
    FLÆNGDE:=FL;
    SLÆNGDE:=SL;
    BESLAGNR:=0;
    HÆNGSEL:=HÆ;
    GUMMI1:=GU1;
    GUMMI2:=GU2;
    STATUS:=OLINIE.STATUS;
    IF TYP1=1 THEN
    BEGIN
      FARVE:=FANR;
      FTYPE:=TYPE1;
      BESLAGNR:=TYPE2;
    END;
    OWRITE(OPSZ.H,OPSF,6,SKRIV);
    INSERT(OPSZ.H,OPSF,A);
    IF IER <> 0 THEN IOF(OPSZ.H.FILENAME);
    ICLOSE(OPSZ.H,OPSF);
    IF IER <> 0 THEN IOF(OPSZ.H.FILENAME);
  END;
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 BESLAG:AR14; VAR PROFIL:
                                 INTEGER;VAR GUM1:DOBBTAL;VAR GUM2:DOBBTAL);
 
BEGIN
  FOR PLACERING:=1 TO 4 DO
  BEGIN
    TYPE1:=NULLER;TYPE2:=0;LÆNGDE:=0;
    IF PLACERING=3 THEN
    BEGIN
      MÅL:=HØJDE;
      STÆRKR:=STÆRKR2;
    END;
    IF FORSTÆRK(PLACERING)=1 THEN
    BEGIN
      STÆRKNING;
      TYPE1:=PROFILSTÆRK(TYPER);
      GENER(4,TYPE1(1),TYPE1(2),0,LÆNGDE,0,NULLER,NULLER);
    END;
    IF BESLAG(PLACERING)>0 THEN
    BEGIN
      BESLAGNING(BESLAG(PLACERING));
      GENER(5,0,TYPE2,0,0,0,NULLER,NULLER)
    END;
    GENER(1,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;
 

Full view