SimpleRectangularSubmodelComponent now supports pin names
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / mi / nandbased / GUIram4.java
1 package net.mograsim.logic.ui.model.components.mi.nandbased;
2
3 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
4 import net.mograsim.logic.ui.model.ViewModelModifiable;
5 import net.mograsim.logic.ui.model.components.SimpleRectangularSubmodelComponent;
6 import net.mograsim.logic.ui.model.wires.GUIWire;
7 import net.mograsim.logic.ui.model.wires.Pin;
8 import net.mograsim.logic.ui.model.wires.WireCrossPoint;
9
10 public class GUIram4 extends SimpleRectangularSubmodelComponent
11 {
12         public GUIram4(ViewModelModifiable model)
13         {
14                 super(model, 1, "GUIram4");
15                 setSubmodelScale(.1);
16                 setInputPins("A0", "A1", "A2", "A3", "B0", "B1", "B2", "B3", "WE", "D1", "D2", "D3", "D4");
17                 setOutputPins("QA1", "QA2", "QA3", "QA4", "QB1", "QB2", "QB3", "QB4");
18                 initSubmodelComponents();
19         }
20
21         @SuppressWarnings("unused") // for GUIWires being created
22         private void initSubmodelComponents()
23         {
24                 //@formatter:off
25                 Pin  A0 = getInputSubmodelPins() .get( 0);
26                 Pin  A1 = getInputSubmodelPins() .get( 1);
27                 Pin  A2 = getInputSubmodelPins() .get( 2);
28                 Pin  A3 = getInputSubmodelPins() .get( 3);
29                 Pin  B0 = getInputSubmodelPins() .get( 4);
30                 Pin  B1 = getInputSubmodelPins() .get( 5);
31                 Pin  B2 = getInputSubmodelPins() .get( 6);
32                 Pin  B3 = getInputSubmodelPins() .get( 7);
33                 Pin  WE = getInputSubmodelPins() .get( 8);
34                 Pin  D1 = getInputSubmodelPins() .get( 9);
35                 Pin  D2 = getInputSubmodelPins() .get(10);
36                 Pin  D3 = getInputSubmodelPins() .get(11);
37                 Pin  D4 = getInputSubmodelPins() .get(12);
38                 Pin QA1 = getOutputSubmodelPins().get( 0);
39                 Pin QA2 = getOutputSubmodelPins().get( 1);
40                 Pin QA3 = getOutputSubmodelPins().get( 2);
41                 Pin QA4 = getOutputSubmodelPins().get( 3);
42                 Pin QB1 = getOutputSubmodelPins().get( 4);
43                 Pin QB2 = getOutputSubmodelPins().get( 5);
44                 Pin QB3 = getOutputSubmodelPins().get( 6);
45                 Pin QB4 = getOutputSubmodelPins().get( 7);
46
47                 GUIdemux2   demuxA   = new GUIdemux2  (submodelModifiable);
48                 GUIdemux2   demuxB   = new GUIdemux2  (submodelModifiable);
49                 GUIand41    weAndB   = new GUIand41   (submodelModifiable);
50                 GUIram2     cell00   = new GUIram2    (submodelModifiable);
51                 GUIram2     cell01   = new GUIram2    (submodelModifiable);
52                 GUIram2     cell10   = new GUIram2    (submodelModifiable);
53                 GUIram2     cell11   = new GUIram2    (submodelModifiable);
54                 GUIand41    andB00   = new GUIand41   (submodelModifiable);
55                 GUIandor414 andorB01 = new GUIandor414(submodelModifiable);
56                 GUIandor414 andorB10 = new GUIandor414(submodelModifiable);
57                 GUIandor414 andorB11 = new GUIandor414(submodelModifiable);
58                 GUIand41    andA00   = new GUIand41   (submodelModifiable);
59                 GUIandor414 andorA01 = new GUIandor414(submodelModifiable);
60                 GUIandor414 andorA10 = new GUIandor414(submodelModifiable);
61                 GUIandor414 andorA11 = new GUIandor414(submodelModifiable);
62
63                 WireCrossPoint cpB00  = new WireCrossPoint(submodelModifiable, 1);
64                 WireCrossPoint cpB01  = new WireCrossPoint(submodelModifiable, 1);
65                 WireCrossPoint cpB10  = new WireCrossPoint(submodelModifiable, 1);
66                 WireCrossPoint cpB11  = new WireCrossPoint(submodelModifiable, 1);
67                 WireCrossPoint cpD_101 = new WireCrossPoint(submodelModifiable, 1);
68                 WireCrossPoint cpD_201 = new WireCrossPoint(submodelModifiable, 1);
69                 WireCrossPoint cpD_301 = new WireCrossPoint(submodelModifiable, 1);
70                 WireCrossPoint cpD_401 = new WireCrossPoint(submodelModifiable, 1);
71                 WireCrossPoint cpD_110 = new WireCrossPoint(submodelModifiable, 1);
72                 WireCrossPoint cpD_210 = new WireCrossPoint(submodelModifiable, 1);
73                 WireCrossPoint cpD_310 = new WireCrossPoint(submodelModifiable, 1);
74                 WireCrossPoint cpD_410 = new WireCrossPoint(submodelModifiable, 1);
75                 WireCrossPoint cpD_111 = new WireCrossPoint(submodelModifiable, 1);
76                 WireCrossPoint cpD_211 = new WireCrossPoint(submodelModifiable, 1);
77                 WireCrossPoint cpD_311 = new WireCrossPoint(submodelModifiable, 1);
78                 WireCrossPoint cpD_411 = new WireCrossPoint(submodelModifiable, 1);
79                 WireCrossPoint cpAB101 = new WireCrossPoint(submodelModifiable, 1);
80                 WireCrossPoint cpAB201 = new WireCrossPoint(submodelModifiable, 1);
81                 WireCrossPoint cpAB301 = new WireCrossPoint(submodelModifiable, 1);
82                 WireCrossPoint cpAB401 = new WireCrossPoint(submodelModifiable, 1);
83                 WireCrossPoint cpAB110 = new WireCrossPoint(submodelModifiable, 1);
84                 WireCrossPoint cpAB210 = new WireCrossPoint(submodelModifiable, 1);
85                 WireCrossPoint cpAB310 = new WireCrossPoint(submodelModifiable, 1);
86                 WireCrossPoint cpAB410 = new WireCrossPoint(submodelModifiable, 1);
87                 WireCrossPoint cpAB1in = new WireCrossPoint(submodelModifiable, 1);
88                 WireCrossPoint cpAB2in = new WireCrossPoint(submodelModifiable, 1);
89                 WireCrossPoint cpAB3in = new WireCrossPoint(submodelModifiable, 1);
90                 WireCrossPoint cpAB4in = new WireCrossPoint(submodelModifiable, 1);
91
92                 demuxA  .moveTo( 55,  45);
93                 demuxB  .moveTo( 55, 150);
94                 weAndB  .moveTo(235, 150);
95                 cell00  .moveTo( 80, 330);
96                 cell01  .moveTo( 80, 480);
97                 cell10  .moveTo( 80, 630);
98                 cell11  .moveTo( 80, 780);
99                 andB00  .moveTo(250, 375);
100                 andorB01.moveTo(250, 485);
101                 andorB10.moveTo(250, 635);
102                 andorB11.moveTo(250, 785);
103                 andA00  .moveTo(155, 325);
104                 andorA01.moveTo(155, 435);
105                 andorA10.moveTo(155, 585);
106                 andorA11.moveTo(155, 735);
107                 cpB00 .moveCenterTo(230, 155);
108                 cpB01 .moveCenterTo(225, 165);
109                 cpB10 .moveCenterTo(220, 175);
110                 cpB11 .moveCenterTo(215, 185);
111                 cpD_101.moveCenterTo( 60, 535);
112                 cpD_201.moveCenterTo( 65, 545);
113                 cpD_301.moveCenterTo( 70, 555);
114                 cpD_401.moveCenterTo( 75, 565);
115                 cpD_110.moveCenterTo( 60, 685);
116                 cpD_210.moveCenterTo( 65, 695);
117                 cpD_310.moveCenterTo( 70, 705);
118                 cpD_410.moveCenterTo( 75, 715);
119                 cpD_111.moveCenterTo( 60, 835);
120                 cpD_211.moveCenterTo( 65, 845);
121                 cpD_311.moveCenterTo( 70, 855);
122                 cpD_411.moveCenterTo( 75, 865);
123                 cpAB101.moveCenterTo( 40, 485);
124                 cpAB201.moveCenterTo( 45, 495);
125                 cpAB301.moveCenterTo( 50, 505);
126                 cpAB401.moveCenterTo( 55, 515);
127                 cpAB110.moveCenterTo( 40, 635);
128                 cpAB210.moveCenterTo( 45, 645);
129                 cpAB310.moveCenterTo( 50, 655);
130                 cpAB410.moveCenterTo( 55, 665);
131                 cpAB1in.moveCenterTo( 40, 335);
132                 cpAB2in.moveCenterTo( 45, 350);
133                 cpAB3in.moveCenterTo( 50, 650);
134                 cpAB4in.moveCenterTo( 55, 750);
135
136                 new GUIWire(submodelModifiable, A0, demuxA.getInputPins().get(0), new Point[0]);
137                 new GUIWire(submodelModifiable, A1, demuxA.getInputPins().get(1), new Point(10, 150), new Point(10,  60));
138                 new GUIWire(submodelModifiable, B0, demuxB.getInputPins().get(0), new Point( 5, 450), new Point( 5, 155));
139                 new GUIWire(submodelModifiable, B1, demuxB.getInputPins().get(1), new Point(10, 550), new Point(10, 165));
140                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(0), cpB00, new Point[0]);
141                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(1), cpB01, new Point[0]);
142                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(2), cpB10, new Point[0]);
143                 new GUIWire(submodelModifiable, demuxB.getOutputPins().get(3), cpB11, new Point[0]);
144                 new GUIWire(submodelModifiable, cpB00, weAndB.getInputPins().get(0), new Point[0]);
145                 new GUIWire(submodelModifiable, cpB01, weAndB.getInputPins().get(1), new Point[0]);
146                 new GUIWire(submodelModifiable, cpB10, weAndB.getInputPins().get(2), new Point[0]);
147                 new GUIWire(submodelModifiable, cpB11, weAndB.getInputPins().get(3), new Point[0]);
148                 new GUIWire(submodelModifiable, WE, weAndB.getInputPins().get(4), new Point(15, 850), new Point(15, 195));
149                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(0), cell00.getInputPins().get(4), new Point(290, 155), new Point(290, 230), new Point(35, 230), new Point(35, 375));
150                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(1), cell01.getInputPins().get(4), new Point(285, 165), new Point(285, 225), new Point(30, 225), new Point(30, 525));
151                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(2), cell10.getInputPins().get(4), new Point(280, 175), new Point(280, 220), new Point(25, 220), new Point(25, 675));
152                 new GUIWire(submodelModifiable, weAndB.getOutputPins().get(3), cell11.getInputPins().get(4), new Point(275, 185), new Point(275, 215), new Point(20, 215), new Point(20, 825));
153                 new GUIWire(submodelModifiable, cpAB101, cpAB1in                     , new Point[0]);
154                 new GUIWire(submodelModifiable, cpAB1in, cell00.getInputPins().get(0), new Point[0]);
155                 new GUIWire(submodelModifiable, cpAB201, cpAB2in                     , new Point[0]);
156                 new GUIWire(submodelModifiable, cpAB2in, cell00.getInputPins().get(1), new Point(45, 345));
157                 new GUIWire(submodelModifiable, cpAB301, cell00.getInputPins().get(2), new Point(50, 355));
158                 new GUIWire(submodelModifiable, cpAB401, cell00.getInputPins().get(3), new Point(55, 365));
159                 new GUIWire(submodelModifiable, cpAB101, cell01.getInputPins().get(0), new Point[0]);
160                 new GUIWire(submodelModifiable, cpAB201, cell01.getInputPins().get(1), new Point[0]);
161                 new GUIWire(submodelModifiable, cpAB301, cell01.getInputPins().get(2), new Point[0]);
162                 new GUIWire(submodelModifiable, cpAB401, cell01.getInputPins().get(3), new Point[0]);
163                 new GUIWire(submodelModifiable, cpAB101, cpAB110                      , new Point[0]);
164                 new GUIWire(submodelModifiable, cpAB201, cpAB210                      , new Point[0]);
165                 new GUIWire(submodelModifiable, cpAB301, cpAB3in                      , new Point[0]);
166                 new GUIWire(submodelModifiable, B2, cpAB3in                          , new Point[0]);
167                 new GUIWire(submodelModifiable, cpAB3in, cpAB310                      , new Point[0]);
168                 new GUIWire(submodelModifiable, cpAB401, cpAB410                      , new Point[0]);
169                 new GUIWire(submodelModifiable, cpAB110, cell10.getInputPins().get(0), new Point[0]);
170                 new GUIWire(submodelModifiable, cpAB210, cell10.getInputPins().get(1), new Point[0]);
171                 new GUIWire(submodelModifiable, cpAB310, cell10.getInputPins().get(2), new Point[0]);
172                 new GUIWire(submodelModifiable, cpAB410, cell10.getInputPins().get(3), new Point[0]);
173                 new GUIWire(submodelModifiable, cpAB110, cell11.getInputPins().get(0), new Point(40, 785));
174                 new GUIWire(submodelModifiable, cpAB210, cell11.getInputPins().get(1), new Point(45, 795));
175                 new GUIWire(submodelModifiable, cpAB310, cell11.getInputPins().get(2), new Point(50, 805));
176                 new GUIWire(submodelModifiable, cpAB410, cpAB4in                     , new Point[0]);
177                 new GUIWire(submodelModifiable, cpAB4in, cell11.getInputPins().get(3), new Point(55, 815));
178                 new GUIWire(submodelModifiable, A2, cpAB1in                          , new Point(40, 250));
179                 new GUIWire(submodelModifiable, A3, cpAB2in                          , new Point[0]);
180                 new GUIWire(submodelModifiable, B3, cpAB4in                          , new Point[0]);
181                 new GUIWire(submodelModifiable, cpD_101, cell00.getInputPins().get(5), new Point(60, 385));
182                 new GUIWire(submodelModifiable, cpD_201, cell00.getInputPins().get(6), new Point(65, 395));
183                 new GUIWire(submodelModifiable, cpD_301, cell00.getInputPins().get(7), new Point(70, 405));
184                 new GUIWire(submodelModifiable, cpD_401, cell00.getInputPins().get(8), new Point(75, 415));
185                 new GUIWire(submodelModifiable, cpD_101, cell01.getInputPins().get(5), new Point[0]);
186                 new GUIWire(submodelModifiable, cpD_201, cell01.getInputPins().get(6), new Point[0]);
187                 new GUIWire(submodelModifiable, cpD_301, cell01.getInputPins().get(7), new Point[0]);
188                 new GUIWire(submodelModifiable, cpD_401, cell01.getInputPins().get(8), new Point[0]);
189                 new GUIWire(submodelModifiable, cpD_101, cpD_110                      , new Point[0]);
190                 new GUIWire(submodelModifiable, cpD_201, cpD_210                      , new Point[0]);
191                 new GUIWire(submodelModifiable, cpD_301, cpD_310                      , new Point[0]);
192                 new GUIWire(submodelModifiable, cpD_401, cpD_410                      , new Point[0]);
193                 new GUIWire(submodelModifiable, cpD_110, cell10.getInputPins().get(5), new Point[0]);
194                 new GUIWire(submodelModifiable, cpD_210, cell10.getInputPins().get(6), new Point[0]);
195                 new GUIWire(submodelModifiable, cpD_310, cell10.getInputPins().get(7), new Point[0]);
196                 new GUIWire(submodelModifiable, cpD_410, cell10.getInputPins().get(8), new Point[0]);
197                 new GUIWire(submodelModifiable, cpD_110, cpD_111                      , new Point[0]);
198                 new GUIWire(submodelModifiable, cpD_210, cpD_211                      , new Point[0]);
199                 new GUIWire(submodelModifiable, cpD_310, cpD_311                      , new Point[0]);
200                 new GUIWire(submodelModifiable, cpD_410, cpD_411                      , new Point[0]);
201                 new GUIWire(submodelModifiable, cpD_111, cell11.getInputPins().get(5), new Point[0]);
202                 new GUIWire(submodelModifiable, cpD_211, cell11.getInputPins().get(6), new Point[0]);
203                 new GUIWire(submodelModifiable, cpD_311, cell11.getInputPins().get(7), new Point[0]);
204                 new GUIWire(submodelModifiable, cpD_411, cell11.getInputPins().get(8), new Point[0]);
205                 new GUIWire(submodelModifiable, D1, cpD_111                          , new Point(60,  950));
206                 new GUIWire(submodelModifiable, D2, cpD_211                          , new Point(65, 1050));
207                 new GUIWire(submodelModifiable, D3, cpD_311                          , new Point(70, 1150));
208                 new GUIWire(submodelModifiable, D4, cpD_411                          , new Point(75, 1250));
209                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(0), andA00  .getInputPins().get(4), new Point(135, 50), new Point(135, 370));
210                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(1), andorA01.getInputPins().get(8), new Point(130, 60), new Point(130, 520));
211                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(2), andorA10.getInputPins().get(8), new Point(125, 70), new Point(125, 670));
212                 new GUIWire(submodelModifiable, demuxA.getOutputPins().get(3), andorA11.getInputPins().get(8), new Point(120, 80), new Point(120, 820));
213                 new GUIWire(submodelModifiable, cpB00 , andB00  .getInputPins().get(4), new Point(230, 420));
214                 new GUIWire(submodelModifiable, cpB01 , andorB01.getInputPins().get(8), new Point(225, 570));
215                 new GUIWire(submodelModifiable, cpB10 , andorB10.getInputPins().get(8), new Point(220, 720));
216                 new GUIWire(submodelModifiable, cpB11 , andorB11.getInputPins().get(8), new Point(215, 870));
217                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(4), andB00  .getInputPins().get(0), new Point(140, 375), new Point(140, 380));
218                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(5), andB00  .getInputPins().get(1), new Point(140, 385), new Point(140, 390));
219                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(6), andB00  .getInputPins().get(2), new Point(140, 395), new Point(140, 400));
220                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(7), andB00  .getInputPins().get(3), new Point(140, 405), new Point(140, 410));
221                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(4), andorB01.getInputPins().get(4), new Point(140, 525), new Point(140, 530));
222                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(5), andorB01.getInputPins().get(5), new Point(140, 535), new Point(140, 540));
223                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(6), andorB01.getInputPins().get(6), new Point(140, 545), new Point(140, 550));
224                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(7), andorB01.getInputPins().get(7), new Point(140, 555), new Point(140, 560));
225                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(4), andorB10.getInputPins().get(4), new Point(140, 675), new Point(140, 680));
226                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(5), andorB10.getInputPins().get(5), new Point(140, 685), new Point(140, 690));
227                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(6), andorB10.getInputPins().get(6), new Point(140, 695), new Point(140, 700));
228                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(7), andorB10.getInputPins().get(7), new Point(140, 705), new Point(140, 710));
229                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(4), andorB11.getInputPins().get(4), new Point(140, 825), new Point(140, 830));
230                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(5), andorB11.getInputPins().get(5), new Point(140, 835), new Point(140, 840));
231                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(6), andorB11.getInputPins().get(6), new Point(140, 845), new Point(140, 850));
232                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(7), andorB11.getInputPins().get(7), new Point(140, 855), new Point(140, 860));
233                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(0), andA00  .getInputPins().get(0), new Point(140, 335), new Point(140, 330));
234                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(1), andA00  .getInputPins().get(1), new Point(140, 345), new Point(140, 340));
235                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(2), andA00  .getInputPins().get(2), new Point(140, 355), new Point(140, 350));
236                 new GUIWire(submodelModifiable, cell00.getOutputPins().get(3), andA00  .getInputPins().get(3), new Point(140, 365), new Point(140, 360));
237                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(0), andorA01.getInputPins().get(4), new Point(140, 485), new Point(140, 480));
238                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(1), andorA01.getInputPins().get(5), new Point(140, 495), new Point(140, 490));
239                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(2), andorA01.getInputPins().get(6), new Point(140, 505), new Point(140, 500));
240                 new GUIWire(submodelModifiable, cell01.getOutputPins().get(3), andorA01.getInputPins().get(7), new Point(140, 515), new Point(140, 510));
241                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(0), andorA10.getInputPins().get(4), new Point(140, 635), new Point(140, 630));
242                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(1), andorA10.getInputPins().get(5), new Point(140, 645), new Point(140, 640));
243                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(2), andorA10.getInputPins().get(6), new Point(140, 655), new Point(140, 650));
244                 new GUIWire(submodelModifiable, cell10.getOutputPins().get(3), andorA10.getInputPins().get(7), new Point(140, 665), new Point(140, 660));
245                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(0), andorA11.getInputPins().get(4), new Point(140, 785), new Point(140, 780));
246                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(1), andorA11.getInputPins().get(5), new Point(140, 795), new Point(140, 790));
247                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(2), andorA11.getInputPins().get(6), new Point(140, 805), new Point(140, 800));
248                 new GUIWire(submodelModifiable, cell11.getOutputPins().get(3), andorA11.getInputPins().get(7), new Point(140, 815), new Point(140, 810));
249                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(0), andorB01.getInputPins().get(0), new Point(305, 380), new Point(305, 445), new Point(245, 445), new Point(245, 490));
250                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(1), andorB01.getInputPins().get(1), new Point(300, 390), new Point(300, 440), new Point(240, 440), new Point(240, 500));
251                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(2), andorB01.getInputPins().get(2), new Point(295, 400), new Point(295, 435), new Point(235, 435), new Point(235, 510));
252                 new GUIWire(submodelModifiable, andB00  .getOutputPins().get(3), andorB01.getInputPins().get(3), new Point(290, 410), new Point(290, 430), new Point(230, 430), new Point(230, 520));
253                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(0), andorB10.getInputPins().get(0), new Point(305, 490), new Point(305, 595), new Point(245, 595), new Point(245, 640));
254                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(1), andorB10.getInputPins().get(1), new Point(300, 500), new Point(300, 590), new Point(240, 590), new Point(240, 650));
255                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(2), andorB10.getInputPins().get(2), new Point(295, 510), new Point(295, 585), new Point(235, 585), new Point(235, 660));
256                 new GUIWire(submodelModifiable, andorB01.getOutputPins().get(3), andorB10.getInputPins().get(3), new Point(290, 520), new Point(290, 580), new Point(230, 580), new Point(230, 670));
257                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(0), andorB11.getInputPins().get(0), new Point(305, 640), new Point(305, 745), new Point(245, 745), new Point(245, 790));
258                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(1), andorB11.getInputPins().get(1), new Point(300, 650), new Point(300, 740), new Point(240, 740), new Point(240, 800));
259                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(2), andorB11.getInputPins().get(2), new Point(295, 660), new Point(295, 735), new Point(235, 735), new Point(235, 810));
260                 new GUIWire(submodelModifiable, andorB10.getOutputPins().get(3), andorB11.getInputPins().get(3), new Point(290, 670), new Point(290, 730), new Point(230, 730), new Point(230, 820));
261                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(0), QB1                           , new Point(330, 790), new Point(330, 450));
262                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(1), QB2                           , new Point(335, 800), new Point(335, 550));
263                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(2), QB3                           , new Point(340, 810), new Point(340, 650));
264                 new GUIWire(submodelModifiable, andorB11.getOutputPins().get(3), QB4                           , new Point(345, 820), new Point(345, 750));
265                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(0), andorA01.getInputPins().get(0), new Point(210, 330), new Point(210, 430), new Point(150, 430), new Point(150, 440));
266                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(1), andorA01.getInputPins().get(1), new Point(205, 340), new Point(205, 425), new Point(145, 425), new Point(145, 450));
267                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(2), andorA01.getInputPins().get(2), new Point(200, 350), new Point(200, 420), new Point(140, 420), new Point(140, 460));
268                 new GUIWire(submodelModifiable, andA00  .getOutputPins().get(3), andorA01.getInputPins().get(3), new Point(195, 360), new Point(195, 415), new Point(135, 415), new Point(135, 470));
269                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(0), andorA10.getInputPins().get(0), new Point(210, 440), new Point(210, 580), new Point(150, 580), new Point(150, 590));
270                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(1), andorA10.getInputPins().get(1), new Point(205, 450), new Point(205, 575), new Point(145, 575), new Point(145, 600));
271                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(2), andorA10.getInputPins().get(2), new Point(200, 460), new Point(200, 570), new Point(140, 570), new Point(140, 610));
272                 new GUIWire(submodelModifiable, andorA01.getOutputPins().get(3), andorA10.getInputPins().get(3), new Point(195, 470), new Point(195, 565), new Point(135, 565), new Point(135, 620));
273                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(0), andorA11.getInputPins().get(0), new Point(210, 590), new Point(210, 730), new Point(150, 730), new Point(150, 740));
274                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(1), andorA11.getInputPins().get(1), new Point(205, 600), new Point(205, 725), new Point(145, 725), new Point(145, 750));
275                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(2), andorA11.getInputPins().get(2), new Point(200, 610), new Point(200, 720), new Point(140, 720), new Point(140, 760));
276                 new GUIWire(submodelModifiable, andorA10.getOutputPins().get(3), andorA11.getInputPins().get(3), new Point(195, 620), new Point(195, 715), new Point(135, 715), new Point(135, 770));
277                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(0), QA1                           , new Point(210, 740), new Point(210, 880), new Point(310, 880), new Point(310,  50));
278                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(1), QA2                           , new Point(205, 750), new Point(205, 885), new Point(315, 885), new Point(315, 150));
279                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(2), QA3                           , new Point(200, 760), new Point(200, 890), new Point(320, 890), new Point(320, 250));
280                 new GUIWire(submodelModifiable, andorA11.getOutputPins().get(3), QA4                           , new Point(195, 770), new Point(195, 895), new Point(325, 895), new Point(325, 350));
281                 //@formatter:on
282         }
283 }