DIRECTORY Commander USING [CommandProc, Register], Rope USING [ROPE], FS USING [StreamOpen], IO USING [card, Close, GetTokenRope, int, PutF, RIS, rope, STREAM]; BackBurndy: CEDAR PROGRAM IMPORTS IO, Commander, FS = BEGIN ROPE: TYPE = Rope.ROPE; BackBurndyProc: Commander.CommandProc = BEGIN i, j, k, l, m, pad: CARD; x, y: INT; stream: IO.STREAM _ IO.RIS[cmd.commandLine]; outputName: ROPE _ IO.GetTokenRope[stream].token; out: IO.STREAM _ FS.StreamOpen[outputName,$create]; IO.PutF[out, "4096 2048 -400 -100 600 5775 -100 -400 BACK106 PARC-BACK106 J\n"]; FOR i IN [1..106] DO j _ (i-1) MOD 8; k _ (i-1) / 2; l _ (i-1) MOD 3; m _ (i-1) / 3; SELECT j FROM = 0 => { x _ 0; pad _ 36; }; = 1 => { x _ 150; pad _ 39; }; = 2 => { x _ -400; pad _ 39; }; = 3 => { x _ 550; pad _ 36; }; = 4 => { x _ 50; pad _ 38; }; = 5 => { x _ 200; pad _ 37; }; = 6 => { x _ -350; pad _ 37; }; = 7 => { x _ 600; pad _ 38; }; ENDCASE; y _ k*25; IF l = 0 THEN { SELECT m FROM 3, 9, 15, 21, 27, 33 => { IO.PutF[out, "%g %g VCC 1 10 256 4 %g\n", IO.int[x], IO.int[y], IO.card[pad]]; }; 6, 12, 18, 24, 30 => { IO.PutF[out, "%g %g V2 8 10 256 4 %g\n", IO.int[x], IO.int[y], IO.card[pad]]; }; ENDCASE => { IO.PutF[out, "%g %g GND 1 10 256 5 %g\n", IO.int[x], IO.int[y], IO.card[pad]]; }; } ELSE { IO.PutF[out, "%g %g P%g %g 10 1 3 %g\n", IO.int[x], IO.int[y], IO.card[i], IO.card[(i-1)*2/3], IO.card[pad]]; }; ENDLOOP; FOR i IN [1..106] DO j _ (i-1) MOD 8; k _ (i-1) / 2; l _ (i-1) MOD 3; m _ (i-1) / 3; SELECT j FROM = 0 => { x _ 0; pad _ 36; }; = 1 => { x _ 150; pad _ 39; }; = 2 => { x _ -400; pad _ 39; }; = 3 => { x _ 550; pad _ 36; }; = 4 => { x _ 50; pad _ 38; }; = 5 => { x _ 200; pad _ 37; }; = 6 => { x _ -350; pad _ 37; }; = 7 => { x _ 600; pad _ 38; }; ENDCASE; y _ 1600 + k*25; IF l = 0 THEN { SELECT m FROM 3, 9, 15, 21, 27, 33 => { IO.PutF[out, "%g %g VCC 1 10 256 4 %g\n", IO.int[x], IO.int[y], IO.card[pad]]; }; 6, 12, 18, 24, 30 => { IO.PutF[out, "%g %g V2 8 10 256 4 %g\n", IO.int[x], IO.int[y], IO.card[pad]]; }; ENDCASE => { IO.PutF[out, "%g %g GND 1 10 256 5 %g\n", IO.int[x], IO.int[y], IO.card[pad]]; }; } ELSE { IO.PutF[out, "%g %g P%g %g 10 2 3 %g\n", IO.int[x], IO.int[y], IO.card[i], IO.card[(i-1)*2/3], IO.card[pad]]; }; ENDLOOP; IO.Close[out]; IO.PutF[cmd.out, "File %g Written\n", IO.rope[outputName]]; END; Commander.Register[ key: "BackBurndy", proc: BackBurndyProc, doc: "Generates a BackBurndy.part file\n"]; END. File: BackBurndy.mesa Christophe Cuenod September 1, 1987 10:54:22 am PDT Enables to generate easily Burndy connector parts for EXPERT. The pads stacks are: - left pins short stack 36 - right pins short stack 37 - left pins long stack 38 - right pins long stack 39 Κπprogram–i(firstHeadersAfterPage) {1} .cvx .def (firstPageNumber) {1} .cvx .def (oneSidedFormat) {.false} .cvx .def– "Cedar" style˜– "Cedar" stylešΟnœ™Kšœ3™3Kšœ7Οkœ™>K™K™™K™K™K™K™K™——unitšž ˜ Icodešœ žœ˜(Mšœžœžœ˜Mšžœžœ˜Mšžœžœ(žœžœ˜C—š œžœž˜Mšžœžœ žœ˜—Lšž˜Lšžœžœžœ˜šœž˜-Jšœžœ˜Kšœžœ˜ Kš œžœžœžœžœ˜,Kšœ žœžœ˜1Mšœžœžœžœ ˜3JšžœN˜Pšžœžœ žœ˜Jšœ žœ˜Jšœ˜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šœ˜—Mšžœ˜—J˜ šžœžœ˜šžœž˜ šœ˜Jšžœ(žœ žœ žœ ˜NKšœ˜—šœ˜Kšžœ'žœ žœ žœ ˜MKšœ˜—šžœ˜ Kšžœ(žœ žœ žœ ˜NKšœ˜——J˜—šžœ˜Jš žœ'žœ žœ žœ žœžœ ˜m—J˜Jšžœ˜J˜—šžœžœ žœ˜Jšœ žœ˜Jšœ˜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šœ˜—Mšžœ˜—J˜šžœžœ˜šžœž˜ šœ˜Jšžœ(žœ žœ žœ ˜NKšœ˜—šœ˜Kšžœ'žœ žœ žœ ˜MKšœ˜—šžœ˜ Kšžœ(žœ žœ žœ ˜NKšœ˜——J˜—šžœ˜Jš žœ'žœ žœ žœ žœžœ ˜m—J˜Jšžœ˜—Jšœžœ ˜Jšžœ(žœ˜?Jšžœ˜—šœ˜JšœT˜T—Iprocšžœ˜—…— „Ž