|
|
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: 11232 (0x2be0)
Types: TextFile
Notes: Mikados_K
Names: »NBTPROC.K«
└─⟦a3d38fea3⟧ Bits:30008985 PRODUKTION NBT.
└─⟦this⟧ »NBTPROC.K«
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;