DIRECTORY Commander USING [CommandProc, Register], Rope USING [ROPE], FS USING [StreamOpen], IO USING [card, Close, int, PutF, STREAM]; Burndy: CEDAR PROGRAM IMPORTS IO, Commander, FS = BEGIN FillOneSite: PROC [back: IO.STREAM, daugther1: IO.STREAM, trans: IO.STREAM, site: CARD, offset: CARD] ~ { i, j, k, l, m, n, o: CARD; padback, paddaugther1, padtrans: CARD; xback, yback: INT; xdaugther1, ydaugther1: INT; xtrans, ytrans: INT; padtrans _ 17; FOR i IN [1..106] DO j _ (i-1) MOD 8; k _ (i-1) / 2; l _ (i-1) MOD 3; m _ (i-1) / 3; n _ i / 2; o _ (i-1) / 8; SELECT j FROM = 0 => { xback _ 0; padback _ 36; xdaugther1 _ 0; paddaugther1 _ 52; }; = 1 => { xback _ 150; padback _ 39; xdaugther1 _ -50; paddaugther1 _ 40; }; = 2 => { xback _ -400; padback _ 39; xdaugther1 _ -225; paddaugther1 _ 52; }; = 3 => { xback _ 550; padback _ 36; xdaugther1 _ -275; paddaugther1 _ 40; }; = 4 => { xback _ 50; padback _ 38; xdaugther1 _ 0; paddaugther1 _ 52; }; = 5 => { xback _ 200; padback _ 37; xdaugther1 _ -50; paddaugther1 _ 40; }; = 6 => { xback _ -350; padback _ 37; xdaugther1 _ -225; paddaugther1 _ 52; }; = 7 => { xback _ 600; padback _ 38; xdaugther1 _ -275; paddaugther1 _ 40; }; ENDCASE; yback _ k*25 + offset; ydaugther1 _ n*25 + offset; xtrans _ - j * 100; ytrans _ o * 100 + offset; IF l = 0 THEN { SELECT m FROM 3, 9, 15, 21, 27, 33 => { IO.PutF[back, "%g %g VCC 1 10 256 4 %g\n", IO.int[xback], IO.int[yback], IO.card[padback]]; IO.PutF[daugther1, "%g %g VCC 1 10 256 4 %g\n", IO.int[xdaugther1], IO.int[ydaugther1], IO.card[paddaugther1]]; IO.PutF[trans, "%g %g VCC 1 10 256 4 %g\n", IO.int[xtrans], IO.int[ytrans], IO.card[padtrans]]; }; 6, 18, 30 => { IO.PutF[back, "%g %g V2 8 10 256 4 %g\n", IO.int[xback], IO.int[yback], IO.card[padback]]; IO.PutF[daugther1, "%g %g V2 8 10 256 4 %g\n", IO.int[xdaugther1], IO.int[ydaugther1], IO.card[paddaugther1]]; IO.PutF[trans, "%g %g V2 8 10 256 4 %g\n", IO.int[xtrans], IO.int[ytrans], IO.card[padtrans]]; }; 12, 24 => { IO.PutF[back, "%g %g -5.2 2 10 256 4 %g\n", IO.int[xback], IO.int[yback], IO.card[padback]]; IO.PutF[daugther1, "%g %g -5.2 2 10 256 4 %g\n", IO.int[xdaugther1], IO.int[ydaugther1], IO.card[paddaugther1]]; IO.PutF[trans, "%g %g -5.2 2 10 256 4 %g\n", IO.int[xtrans], IO.int[ytrans], IO.card[padtrans]]; }; ENDCASE => { IO.PutF[back, "%g %g GND 1 10 256 5 %g\n", IO.int[xback], IO.int[yback], IO.card[padback]]; IO.PutF[daugther1, "%g %g GND 1 10 256 5 %g\n", IO.int[xdaugther1], IO.int[ydaugther1], IO.card[paddaugther1]]; IO.PutF[trans, "%g %g GND 1 10 256 5 %g\n", IO.int[xtrans], IO.int[ytrans], IO.card[padtrans]]; }; } ELSE { IO.PutF[back, "%g %g P%g %g 10 %g", IO.int[xback], IO.int[yback], IO.card[i], IO.card[(i-1)*2/3], IO.card[site]]; IO.PutF[daugther1, "%g %g P%g %g 10 %g", IO.int[xdaugther1], IO.int[ydaugther1], IO.card[i], IO.card[(i-1)*2/3], IO.card[site]]; IO.PutF[trans, "%g %g P%g %g 10 %g", IO.int[xtrans], IO.int[ytrans], IO.card[i], IO.card[(i-1)*2/3], IO.card[site]]; IO.PutF[back, " 3 %g\n", IO.card[padback]]; IO.PutF[daugther1, " 3 %g\n", IO.card[paddaugther1]]; IO.PutF[trans, " 3 %g\n", IO.card[padtrans]]; }; ENDLOOP; }; BurndyProc: Commander.CommandProc = BEGIN i: INT; back: IO.STREAM _ FS.StreamOpen["Burndy.Back.part",$create]; daugther1: IO.STREAM _ FS.StreamOpen["Burndy.Daugther1.part",$create]; daugther2: IO.STREAM _ FS.StreamOpen["Burndy.Daugther2.part",$create]; trans: IO.STREAM _ FS.StreamOpen["Burndy.Trans.part",$create]; IO.PutF[back, "4096 2048 -400 -100 600 5775 -100 -400 BURNDYBAC PARC-BURNDYBAC J\n"]; IO.PutF[daugther1, "4096 2048 -400 -100 600 5775 -100 -400 BURNDYDB1 PARC-BURNDYDB1 J\n"]; IO.PutF[trans, "4096 2048 -400 -100 600 5775 -100 -400 BURNDYTR PARC-BURNDYTR J\n"]; FillOneSite[back: back, daugther1: daugther1, trans: trans, site: 1, offset: 0]; FillOneSite[back: back, daugther1: daugther1, trans: trans, site: 2, offset: 1600]; IO.Close[back]; IO.Close[daugther1]; IO.Close[trans]; IO.PutF[cmd.out, "Files Burndy.Back.part, Burndy.Daugther1.part and Burndy.Trans.part written\n"]; IO.PutF[daugther2, "4096 2048 -400 -100 600 5775 -100 -400 BURNDYDA2 PARC-BURNDYDA2 J\n"]; FOR i IN [1..53] DO IO.PutF[daugther2, "%g %g Pad 1 1 1 1 44\n", IO.int[-225*((i-1) MOD 2)], IO.int[(i-1)*25]]; IO.PutF[daugther2, "%g %g Pad 1 1 1 1 44\n", IO.int[-35-225*((i-1) MOD 2)], IO.int[(i-1)*25]]; ENDLOOP; FOR i IN [1..53] DO IO.PutF[daugther2, "%g %g Pad 1 1 1 1 44\n", IO.int[-225*((i-1) MOD 2)], IO.int[(i-1)*25+1600]]; IO.PutF[daugther2, "%g %g Pad 1 1 1 1 44\n", IO.int[-35-225*((i-1) MOD 2)], IO.int[(i-1)*25+1600]]; ENDLOOP; IO.Close[daugther2]; IO.PutF[cmd.out, "File Burndy.Daugther2.part written\n"]; END; Commander.Register[ key: "Burndy", proc: BurndyProc, doc: "Generates Burndy.Back.part and Burndy.Daugther.part files\n"]; END. €File: Burndy.mesa Christophe Cuenod February 18, 1988 3:28:02 pm PST Enables to generate easily Burndy connector parts for EXPERT. Burndy.Back.part for the backpannel Burndy.Daugther1.part for the daugther boards Burndy.Daugther2.part for the daugther boards Burndy.Trans.part for the daugther boards The pads stacks are: - transition pins stack 17 - backpannel left pins short stack 36 - backpannel right pins short stack 37 - backpannel left pins long stack 38 - backpannel right pins long stack 39 - daugther board holes left stack 40 - daugther board holes right stack 52 - daugther board pads stack 44 Κprogram–i(firstHeadersAfterPage) {1} .cvx .def (firstPageNumber) {1} .cvx .def (oneSidedFormat) {.false} .cvx .def– "Cedar" style˜– "Cedar" stylešΟnœ ™Kšœ2™2šœ7Οkœ™>K™#K™.K™-K™)—K™K™™K™ K™'K™(K™&K™'K™&K™'K™"K™——unitšž ˜ Icodešœ žœ˜(Mšœžœžœ˜Mšžœžœ˜Mšžœžœžœ˜*—šœžœž˜Mšžœžœ žœ˜—Lšž˜š œžœžœžœ žœžœžœžœ žœ˜iJšœžœ˜Kšœ!žœ˜&Kšœžœ˜Kšœžœ˜Kšœžœ˜Jšœ˜šžœžœ žœ˜Jšœ žœ˜Jšœ˜Mšœ žœ˜Mšœ˜M˜ Mšœ˜šžœž˜ šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜K˜—šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜—šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜—šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜—šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜—šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜—šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜—šœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜—Mšžœ˜—Jšœ˜Jšœ˜J˜Jšœ˜šžœžœ˜šžœž˜ šœ˜Jšžœ)žœ žœ žœ˜[Jšžœ.žœžœžœ˜oJšžœ*žœžœžœ˜_Kšœ˜—šœ˜Kšžœ(žœ žœ žœ˜ZKšžœ-žœžœžœ˜nKšžœ)žœžœžœ˜^Kšœ˜—šœ ˜ Kšžœ*žœ žœ žœ˜\Kšžœ/žœžœžœ˜pKšžœ+žœžœžœ˜`Kšœ˜—šžœ˜ Kšžœ)žœ žœ žœ˜[Kšžœ.žœžœžœ˜oKšžœ*žœžœžœ˜_Kšœ˜——J˜—šžœ˜Jš žœ"žœ žœ žœ žœžœ ˜qJš žœ'žœžœžœ žœžœ ˜€Jš žœ#žœžœžœ žœžœ ˜tJšžœžœ˜+Jšžœžœ˜5Jšžœžœ˜-—J˜Jšžœ˜—J˜—š œž˜)K˜Mšœžœ˜Mšœžœžœžœ(˜JšžœS˜UJšžœX˜ZJšžœR˜TJšœP˜PJšœS˜SJšžœ ˜Jšžœ˜Jšžœ˜Jšžœ`˜bJšžœX˜ZM˜šžœžœ ž˜Mšžœ+žœžœžœ˜[Mšžœ+žœžœžœ˜^Mšžœ˜—šžœžœ ž˜Mšžœ+žœžœžœ˜`Mšžœ+žœžœžœ˜cMšžœ˜—J˜Jšžœ˜Jšžœ7˜9Jšžœ˜J˜J˜J˜—šœ˜Jšœe˜e—Iprocšžœ˜—…—¨8