VideoController.java
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
698:
699:
700:
701:
702:
703:
704:
705:
706:
707:
708:
709:
710:
711:
712:
713:
714:
715:
716:
717:
718:
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730:
731:
732:
733:
734:
735:
736:
737:
738:
739:
740:
741:
742:
743:
744:
745:
746:
747:
748:
749:
750:
751:
752:
753:
754:
755:
756:
757:
758:
759:
760:
761:
762:
763:
764:
765:
766:
767:
768:
769:
770:
771:
772:
773:
774:
775:
776:
777:
778:
779:
780:
781:
782:
783:
784:
785:
786:
787:
788:
789:
790:
791:
792:
793:
794:
795:
796:
797:
798:
799:
800:
801:
802:
803:
804:
805:
806:
807:
808:
809:
810:
811:
812:
813:
814:
815:
816:
817:
818:
819:
820:
821:
822:
823:
824:
825:
826:
827:
828:
829:
830:
831:
832:
833:
834:
835:
836:
837:
838:
839:
840:
841:
842:
843:
844:
845:
846:
847:
848:
849:
850:
851:
852:
853:
854:
855:
856:
857:
858:
859:
860:
861:
862:
863:
864:
865:
866:
867:
868:
869:
870:
871:
872:
873:
874:
875:
876:
877:
878:
879:
880:
881:
882:
883:
884:
885:
886:
887:
888:
889:
890:
891:
892:
893:
894:
895:
896:
897:
898:
899:
900:
901:
902:
903:
904:
905:
906:
907:
908:
909:
910:
911:
912:
913:
914:
915:
916:
917:
918:
919:
920:
921:
922:
923:
924:
925:
926:
927:
928:
929:
930:
931:
932:
933:
934:
935:
936:
937:
938:
939:
940:
941:
942:
943:
944:
945:
946:
947:
948:
949:
950:
951:
952:
953:
954:
955:
956:
957:
958:
959:
960:
961:
962:
963:
964:
965: package xeij;
966:
967: import java.lang.*;
968: import java.util.*;
969:
970: public class VideoController {
971:
972: public static final boolean VCN_LOG_TRANSITION = false;
973:
974:
975: public static final int VCN_REG1 = 0x00e82400;
976: public static final int VCN_REG2 = 0x00e82500;
977: public static final int VCN_REG3 = 0x00e82600;
978: public static int vcnReg1Port;
979: public static int vcnReg1Mask;
980: public static int vcnReg1Test;
981: public static int vcnReg1Curr;
982: public static int vcnReg2Port;
983: public static int vcnReg2Mask;
984: public static int vcnReg2Test;
985: public static int vcnReg2Curr;
986: public static int vcnReg3Port;
987: public static int vcnReg3Mask;
988: public static int vcnReg3Test;
989: public static int vcnReg3Curr;
990:
991:
992: public static final int VCN_CONTRAST_SCALE = 3;
993: public static final long VCN_CONTRAST_DELAY = XEiJ.TMR_FREQ / (20 * VCN_CONTRAST_SCALE);
994: public static final int[][] vcnPalBase = new int[VCN_CONTRAST_SCALE * 15 + 1][];
995: public static int[] vcnPalTbl;
996: public static int vcnCurrentScaledContrast;
997: public static int vcnTargetContrastPort;
998: public static int vcnTargetContrastMask;
999: public static int vcnTargetContrastTest;
1000: public static int vcnTargetContrastCurr;
1001: public static int vcnTargetScaledContrast;
1002:
1003:
1004:
1005: public static final int[] vcnPal16G8 = new int[256];
1006: public static final int[] vcnPal16TSPort = new int[256];
1007: public static final int[] vcnPal16TSTest = new int[256];
1008: public static int[] vcnPal16TS;
1009: public static final int[] vcnPal32G8 = new int[256];
1010: public static final int[] vcnPal32TS = new int[256];
1011:
1012:
1013:
1014:
1015:
1016:
1017:
1018:
1019:
1020:
1021:
1022:
1023:
1024:
1025:
1026:
1027:
1028: public static final int[] vcnPal8G16L = new int[256];
1029: public static final int[] vcnPal8G16H = new int[256];
1030:
1031:
1032:
1033: public static final int AHEX = 0x10000;
1034: public static final int SPON = 0x08000;
1035: public static final int TXON = 0x04000;
1036: public static final int GXON = 0x02000;
1037: public static final int G4ON = 0x01000;
1038: public static final int G3ON = 0x00800;
1039: public static final int G2ON = 0x00400;
1040: public static final int G1ON = 0x00200;
1041:
1042:
1043:
1044:
1045: public static final DrawingMode[] vcnModeTable = new DrawingMode[0x20000];
1046: public static DrawingMode vcnMode;
1047:
1048:
1049:
1050:
1051: public static int vcnHidden1st;
1052: public static int vcnHidden2nd;
1053: public static int vcnHidden3rd;
1054: public static int vcnHidden4th;
1055: public static int vcnVisible1st;
1056: public static int vcnVisible2nd;
1057: public static int vcnVisible3rd;
1058: public static int vcnVisible4th;
1059:
1060:
1061:
1062:
1063:
1064:
1065:
1066:
1067:
1068:
1069:
1070: public static final int[] VCN_TXP0 = new int[256];
1071: public static final int[] VCN_TXP1 = new int[256];
1072: public static final int[] VCN_TXP2 = new int[256];
1073: public static final int[] VCN_TXP3 = new int[256];
1074:
1075:
1076: public static final HashSet<String> vcnUnimplementedSet = new HashSet<String> ();
1077:
1078:
1079:
1080: public static void vcnInit () {
1081:
1082: for (int i = 0; i < 256; i++) {
1083: VCN_TXP3[i] = (VCN_TXP2[i] = (VCN_TXP1[i] = (VCN_TXP0[i] = (i << 28 - 7 & 0x10000000 |
1084: i << 24 - 6 & 0x01000000 |
1085: i << 20 - 5 & 0x00100000 |
1086: i << 16 - 4 & 0x00010000 |
1087: i << 12 - 3 & 0x00001000 |
1088: i << 8 - 2 & 0x00000100 |
1089: i << 4 - 1 & 0x00000010 |
1090: i & 0x00000001)) << 1) << 1) << 1;
1091: }
1092:
1093:
1094: for (int c = 0; c <= VCN_CONTRAST_SCALE * 15; c++) {
1095: int max = Math.round (c * 255.0F / (VCN_CONTRAST_SCALE * 15));
1096: int[] t = vcnPalBase[c] = new int[65536];
1097: for (int p = 0; p <= 0b11111_11111_11111_0; p += 2) {
1098:
1099:
1100: t[p] = (255 << 24 |
1101: (p >> 5 & 0b11111_0) * max * 16645 >>> 20 << 16 |
1102: (p >> 10 & 0b11111_0) * max * 16645 >>> 20 << 8 |
1103: (p & 0b11111_0) * max * 16645 >>> 20);
1104: t[p + 1] = (255 << 24 |
1105: (p >> 5 & 0b11111_0 | 1) * max * 16645 >>> 20 << 16 |
1106: (p >> 10 & 0b11111_0 | 1) * max * 16645 >>> 20 << 8 |
1107: (p & 0b11111_0 | 1) * max * 16645 >>> 20);
1108: }
1109: }
1110:
1111:
1112:
1113:
1114: if (SpriteScreen.SPR_PATTEST_ON) {
1115:
1116:
1117: for (int i = 0; i < 256; i++) {
1118:
1119: int v = 31 - (i >> 4) * 3 / 2;
1120:
1121:
1122:
1123: int g = ((i >> 2) & 3) * v / 3;
1124: int r = ((i >> 1) & 1) * v;
1125: int b = (i & 1) * v;
1126: vcnPal16TSTest[i] = g << 11 | r << 6 | b << 1;
1127: }
1128: }
1129: vcnPal16TS = vcnPal16TSPort;
1130:
1131: Arrays.fill (vcnPal32G8, 0xff000000);
1132:
1133: Arrays.fill (vcnPal32TS, 0xff000000);
1134:
1135:
1136:
1137:
1138:
1139: vcnMakeTable0 (0);
1140: vcnMakeTable1 (1);
1141: vcnMakeTable3 (2);
1142: vcnMakeTable3 (3);
1143: vcnMakeTable4 (4);
1144: if (CRTC.CRT_EXTENDED_GRAPHIC && CRTC.crtExtendedGraphicRequest) {
1145: vcnMakeTable5 (5);
1146: vcnMakeTable7 (6);
1147: vcnMakeTable7 (7);
1148: } else {
1149: vcnMakeTable4 (5);
1150: vcnMakeTable4 (6);
1151: vcnMakeTable4 (7);
1152: }
1153:
1154: if (false) {
1155: for (int i = 0; i < 0x20000; i++) {
1156: if ((i & 63) == 0) {
1157: System.out.println ();
1158: System.out.println (" index ............GrMM ..SpTxGr........ .A.XHPGT.STx4321 prwMode");
1159: System.out.println ("------- ---------------- ---------------- ---------------- -------");
1160: }
1161: System.out.printf ("0x%05x .............%o%o%o ..%o%o%o%o%o%o........ .%c.%c.....%o%o%o%o%o%o%o %s\n",
1162: i,
1163: i >> 8 & 1,
1164: i >> 7 & 1,
1165: i >> 6 & 1,
1166: i >> 5 & 1, i >> 4 & 1,
1167: i >> 3 & 1, i >> 2 & 1,
1168: i >> 1 & 1, i & 1,
1169: i >> 16 == 0 ? '0' : '*',
1170: i >> 16 == 0 ? '0' : '*',
1171: i >> 15 & 1,
1172: i >> 14 & 1,
1173: i >> 13 & 1,
1174: i >> 12 & 1,
1175: i >> 11 & 1,
1176: i >> 10 & 1,
1177: i >> 9 & 1,
1178: vcnModeTable[i]);
1179: }
1180: }
1181:
1182: vcnReset ();
1183:
1184: }
1185:
1186:
1187:
1188: public static void vcnMakeTable0 (int grmm) {
1189:
1190:
1191:
1192: for (int ii = 0b0000_0; ii <= 0b1111_1; ii++) {
1193:
1194: int i = grmm << 6 | (ii & 0b0000_1) << 13 | (ii & 0b1111_0) << 1;
1195: int s = i >> 4 & 3;
1196: int t = i >> 2 & 3;
1197:
1198:
1199:
1200:
1201: vcnModeTable[ i] = DrawingMode.N;
1202: vcnModeTable[ AHEX + i] = DrawingMode.XN;
1203:
1204:
1205: vcnModeTable[ G1ON + i] = DrawingMode.E1t;
1206: vcnModeTable[ AHEX + G1ON + i] = DrawingMode.XE1t;
1207:
1208:
1209: vcnModeTable[ G2ON + i] = (
1210: vcnModeTable[ G2ON + G1ON + i] = DrawingMode.E2t);
1211: vcnModeTable[ AHEX + G2ON + i] = (
1212: vcnModeTable[ AHEX + G2ON + G1ON + i] = DrawingMode.XE2t);
1213:
1214:
1215: vcnModeTable[ G3ON + i] = (
1216: vcnModeTable[ G3ON + G1ON + i] =
1217: vcnModeTable[ G3ON + G2ON + i] =
1218: vcnModeTable[ G3ON + G2ON + G1ON + i] = DrawingMode.E3t);
1219: vcnModeTable[ AHEX + G3ON + i] = (
1220: vcnModeTable[ AHEX + G3ON + G1ON + i] =
1221: vcnModeTable[ AHEX + G3ON + G2ON + i] =
1222: vcnModeTable[ AHEX + G3ON + G2ON + G1ON + i] = DrawingMode.XE3t);
1223:
1224:
1225: vcnModeTable[ G4ON + i] = (
1226: vcnModeTable[ G4ON + G1ON + i] =
1227: vcnModeTable[ G4ON + G2ON + i] =
1228: vcnModeTable[ G4ON + G2ON + G1ON + i] =
1229: vcnModeTable[ G4ON + G3ON + i] =
1230: vcnModeTable[ G4ON + G3ON + G1ON + i] =
1231: vcnModeTable[ G4ON + G3ON + G2ON + i] =
1232: vcnModeTable[ G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4t);
1233: vcnModeTable[ AHEX + G4ON + i] = (
1234: vcnModeTable[ AHEX + G4ON + G1ON + i] =
1235: vcnModeTable[ AHEX + G4ON + G2ON + i] =
1236: vcnModeTable[ AHEX + G4ON + G2ON + G1ON + i] =
1237: vcnModeTable[ AHEX + G4ON + G3ON + i] =
1238: vcnModeTable[ AHEX + G4ON + G3ON + G1ON + i] =
1239: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + i] =
1240: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4t);
1241:
1242: vcnModeTable[ TXON + i] = DrawingMode.T;
1243: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
1244:
1245:
1246: vcnModeTable[ TXON + G1ON + i] = DrawingMode.E1T;
1247: vcnModeTable[ AHEX + TXON + G1ON + i] = DrawingMode.XE1T;
1248:
1249:
1250: vcnModeTable[ TXON + G2ON + i] = (
1251: vcnModeTable[ TXON + G2ON + G1ON + i] = DrawingMode.E2T);
1252: vcnModeTable[ AHEX + TXON + G2ON + i] = (
1253: vcnModeTable[ AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XE2T);
1254:
1255:
1256: vcnModeTable[ TXON + G3ON + i] = (
1257: vcnModeTable[ TXON + G3ON + G1ON + i] =
1258: vcnModeTable[ TXON + G3ON + G2ON + i] =
1259: vcnModeTable[ TXON + G3ON + G2ON + G1ON + i] = DrawingMode.E3T);
1260: vcnModeTable[ AHEX + TXON + G3ON + i] = (
1261: vcnModeTable[ AHEX + TXON + G3ON + G1ON + i] =
1262: vcnModeTable[ AHEX + TXON + G3ON + G2ON + i] =
1263: vcnModeTable[ AHEX + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.XE3T);
1264:
1265:
1266: vcnModeTable[ TXON + G4ON + i] = (
1267: vcnModeTable[ TXON + G4ON + G1ON + i] =
1268: vcnModeTable[ TXON + G4ON + G2ON + i] =
1269: vcnModeTable[ TXON + G4ON + G2ON + G1ON + i] =
1270: vcnModeTable[ TXON + G4ON + G3ON + i] =
1271: vcnModeTable[ TXON + G4ON + G3ON + G1ON + i] =
1272: vcnModeTable[ TXON + G4ON + G3ON + G2ON + i] =
1273: vcnModeTable[ TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4T);
1274: vcnModeTable[ AHEX + TXON + G4ON + i] = (
1275: vcnModeTable[ AHEX + TXON + G4ON + G1ON + i] =
1276: vcnModeTable[ AHEX + TXON + G4ON + G2ON + i] =
1277: vcnModeTable[ AHEX + TXON + G4ON + G2ON + G1ON + i] =
1278: vcnModeTable[ AHEX + TXON + G4ON + G3ON + i] =
1279: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G1ON + i] =
1280: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + i] =
1281: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4T);
1282:
1283: vcnModeTable[ SPON + i] = DrawingMode.S;
1284: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
1285:
1286:
1287: vcnModeTable[ SPON + G1ON + i] = DrawingMode.E1S;
1288: vcnModeTable[ AHEX + SPON + G1ON + i] = DrawingMode.XE1S;
1289:
1290:
1291: vcnModeTable[ SPON + G2ON + i] = (
1292: vcnModeTable[ SPON + G2ON + G1ON + i] = DrawingMode.E2S);
1293: vcnModeTable[ AHEX + SPON + G2ON + i] = (
1294: vcnModeTable[ AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XE2S);
1295:
1296:
1297: vcnModeTable[ SPON + G3ON + i] = (
1298: vcnModeTable[ SPON + G3ON + G1ON + i] =
1299: vcnModeTable[ SPON + G3ON + G2ON + i] =
1300: vcnModeTable[ SPON + G3ON + G2ON + G1ON + i] = DrawingMode.E3S);
1301: vcnModeTable[ AHEX + SPON + G3ON + i] = (
1302: vcnModeTable[ AHEX + SPON + G3ON + G1ON + i] =
1303: vcnModeTable[ AHEX + SPON + G3ON + G2ON + i] =
1304: vcnModeTable[ AHEX + SPON + G3ON + G2ON + G1ON + i] = DrawingMode.XE3S);
1305:
1306:
1307: vcnModeTable[ SPON + G4ON + i] = (
1308: vcnModeTable[ SPON + G4ON + G1ON + i] =
1309: vcnModeTable[ SPON + G4ON + G2ON + i] =
1310: vcnModeTable[ SPON + G4ON + G2ON + G1ON + i] =
1311: vcnModeTable[ SPON + G4ON + G3ON + i] =
1312: vcnModeTable[ SPON + G4ON + G3ON + G1ON + i] =
1313: vcnModeTable[ SPON + G4ON + G3ON + G2ON + i] =
1314: vcnModeTable[ SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4S);
1315: vcnModeTable[ AHEX + SPON + G4ON + i] = (
1316: vcnModeTable[ AHEX + SPON + G4ON + G1ON + i] =
1317: vcnModeTable[ AHEX + SPON + G4ON + G2ON + i] =
1318: vcnModeTable[ AHEX + SPON + G4ON + G2ON + G1ON + i] =
1319: vcnModeTable[ AHEX + SPON + G4ON + G3ON + i] =
1320: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G1ON + i] =
1321: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + i] =
1322: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4S);
1323:
1324:
1325: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1326: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1327:
1328:
1329: vcnModeTable[ SPON + TXON + G1ON + i] = s < t ? DrawingMode.E1ST : DrawingMode.E1TS;
1330: vcnModeTable[ AHEX + SPON + TXON + G1ON + i] = s < t ? DrawingMode.XE1ST : DrawingMode.XE1TS;
1331:
1332:
1333: vcnModeTable[ SPON + TXON + G2ON + i] = (
1334: vcnModeTable[ SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.E2ST : DrawingMode.E2TS);
1335: vcnModeTable[ AHEX + SPON + TXON + G2ON + i] = (
1336: vcnModeTable[ AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XE2ST : DrawingMode.XE2TS);
1337:
1338:
1339: vcnModeTable[ SPON + TXON + G3ON + i] = (
1340: vcnModeTable[ SPON + TXON + G3ON + G1ON + i] =
1341: vcnModeTable[ SPON + TXON + G3ON + G2ON + i] =
1342: vcnModeTable[ SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E3ST : DrawingMode.E3TS);
1343: vcnModeTable[ AHEX + SPON + TXON + G3ON + i] = (
1344: vcnModeTable[ AHEX + SPON + TXON + G3ON + G1ON + i] =
1345: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + i] =
1346: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE3ST : DrawingMode.XE3TS);
1347:
1348:
1349: vcnModeTable[ SPON + TXON + G4ON + i] = (
1350: vcnModeTable[ SPON + TXON + G4ON + G1ON + i] =
1351: vcnModeTable[ SPON + TXON + G4ON + G2ON + i] =
1352: vcnModeTable[ SPON + TXON + G4ON + G2ON + G1ON + i] =
1353: vcnModeTable[ SPON + TXON + G4ON + G3ON + i] =
1354: vcnModeTable[ SPON + TXON + G4ON + G3ON + G1ON + i] =
1355: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + i] =
1356: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E4ST : DrawingMode.E4TS);
1357: vcnModeTable[ AHEX + SPON + TXON + G4ON + i] = (
1358: vcnModeTable[ AHEX + SPON + TXON + G4ON + G1ON + i] =
1359: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + i] =
1360: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1361: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + i] =
1362: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1363: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1364: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE4ST : DrawingMode.XE4TS);
1365:
1366:
1367:
1368:
1369: vcnModeTable[ 1 + i] = DrawingMode.N;
1370: vcnModeTable[ 1 + AHEX + i] = DrawingMode.XN;
1371:
1372:
1373: vcnModeTable[ 1 + G1ON + i] = DrawingMode.E1t;
1374: vcnModeTable[ 1 + AHEX + G1ON + i] = DrawingMode.XE1t;
1375:
1376:
1377: vcnModeTable[ 1 + G2ON + i] = (
1378: vcnModeTable[1 + G2ON + G1ON + i] = DrawingMode.E2t);
1379: vcnModeTable[ 1 + AHEX + G2ON + i] = (
1380: vcnModeTable[1 + AHEX + G2ON + G1ON + i] = DrawingMode.XE2t);
1381:
1382:
1383: vcnModeTable[ 1 + G3ON + i] = (
1384: vcnModeTable[1 + G3ON + G1ON + i] =
1385: vcnModeTable[1 + G3ON + G2ON + i] =
1386: vcnModeTable[1 + G3ON + G2ON + G1ON + i] = DrawingMode.E3t);
1387: vcnModeTable[ 1 + AHEX + G3ON + i] = (
1388: vcnModeTable[1 + AHEX + G3ON + G1ON + i] =
1389: vcnModeTable[1 + AHEX + G3ON + G2ON + i] =
1390: vcnModeTable[1 + AHEX + G3ON + G2ON + G1ON + i] = DrawingMode.XE3t);
1391:
1392:
1393: vcnModeTable[ 1 + G4ON + i] = (
1394: vcnModeTable[1 + G4ON + G1ON + i] =
1395: vcnModeTable[1 + G4ON + G2ON + i] =
1396: vcnModeTable[1 + G4ON + G2ON + G1ON + i] =
1397: vcnModeTable[1 + G4ON + G3ON + i] =
1398: vcnModeTable[1 + G4ON + G3ON + G1ON + i] =
1399: vcnModeTable[1 + G4ON + G3ON + G2ON + i] =
1400: vcnModeTable[1 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4t);
1401: vcnModeTable[ 1 + AHEX + G4ON + i] = (
1402: vcnModeTable[1 + AHEX + G4ON + G1ON + i] =
1403: vcnModeTable[1 + AHEX + G4ON + G2ON + i] =
1404: vcnModeTable[1 + AHEX + G4ON + G2ON + G1ON + i] =
1405: vcnModeTable[1 + AHEX + G4ON + G3ON + i] =
1406: vcnModeTable[1 + AHEX + G4ON + G3ON + G1ON + i] =
1407: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + i] =
1408: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4t);
1409:
1410: vcnModeTable[ 1 + TXON + i] = DrawingMode.T;
1411: vcnModeTable[ 1 + AHEX + TXON + i] = DrawingMode.XT;
1412:
1413:
1414: vcnModeTable[ 1 + TXON + G1ON + i] = s < t ? DrawingMode.E1T : DrawingMode.TE1s;
1415: vcnModeTable[ 1 + AHEX + TXON + G1ON + i] = s < t ? DrawingMode.XE1T : DrawingMode.XTE1s;
1416:
1417:
1418: vcnModeTable[ 1 + TXON + G2ON + i] = (
1419: vcnModeTable[1 + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.E2T : DrawingMode.TE2s);
1420: vcnModeTable[ 1 + AHEX + TXON + G2ON + i] = (
1421: vcnModeTable[1 + AHEX + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XE2T : DrawingMode.XTE2s);
1422:
1423:
1424: vcnModeTable[ 1 + TXON + G3ON + i] = (
1425: vcnModeTable[1 + TXON + G3ON + G1ON + i] =
1426: vcnModeTable[1 + TXON + G3ON + G2ON + i] =
1427: vcnModeTable[1 + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E3T : DrawingMode.TE3s);
1428: vcnModeTable[ 1 + AHEX + TXON + G3ON + i] = (
1429: vcnModeTable[1 + AHEX + TXON + G3ON + G1ON + i] =
1430: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + i] =
1431: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE3T : DrawingMode.XTE3s);
1432:
1433:
1434: vcnModeTable[ 1 + TXON + G4ON + i] = (
1435: vcnModeTable[1 + TXON + G4ON + G1ON + i] =
1436: vcnModeTable[1 + TXON + G4ON + G2ON + i] =
1437: vcnModeTable[1 + TXON + G4ON + G2ON + G1ON + i] =
1438: vcnModeTable[1 + TXON + G4ON + G3ON + i] =
1439: vcnModeTable[1 + TXON + G4ON + G3ON + G1ON + i] =
1440: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + i] =
1441: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E4T : DrawingMode.TE4s);
1442: vcnModeTable[ 1 + AHEX + TXON + G4ON + i] = (
1443: vcnModeTable[1 + AHEX + TXON + G4ON + G1ON + i] =
1444: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + i] =
1445: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
1446: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + i] =
1447: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
1448: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
1449: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE4T : DrawingMode.XTE4s);
1450:
1451: vcnModeTable[ 1 + SPON + i] = DrawingMode.S;
1452: vcnModeTable[ 1 + AHEX + SPON + i] = DrawingMode.XS;
1453:
1454:
1455: vcnModeTable[ 1 + SPON + G1ON + i] = s < t ? DrawingMode.SE1t : DrawingMode.E1S;
1456: vcnModeTable[ 1 + AHEX + SPON + G1ON + i] = s < t ? DrawingMode.XSE1t : DrawingMode.XE1S;
1457:
1458:
1459: vcnModeTable[ 1 + SPON + G2ON + i] = (
1460: vcnModeTable[1 + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.SE2t : DrawingMode.E2S);
1461: vcnModeTable[ 1 + AHEX + SPON + G2ON + i] = (
1462: vcnModeTable[1 + AHEX + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE2t : DrawingMode.XE2S);
1463:
1464:
1465: vcnModeTable[ 1 + SPON + G3ON + i] = (
1466: vcnModeTable[1 + SPON + G3ON + G1ON + i] =
1467: vcnModeTable[1 + SPON + G3ON + G2ON + i] =
1468: vcnModeTable[1 + SPON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE3t : DrawingMode.E3S);
1469: vcnModeTable[ 1 + AHEX + SPON + G3ON + i] = (
1470: vcnModeTable[1 + AHEX + SPON + G3ON + G1ON + i] =
1471: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + i] =
1472: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE3t : DrawingMode.XE3S);
1473:
1474:
1475: vcnModeTable[ 1 + SPON + G4ON + i] = (
1476: vcnModeTable[1 + SPON + G4ON + G1ON + i] =
1477: vcnModeTable[1 + SPON + G4ON + G2ON + i] =
1478: vcnModeTable[1 + SPON + G4ON + G2ON + G1ON + i] =
1479: vcnModeTable[1 + SPON + G4ON + G3ON + i] =
1480: vcnModeTable[1 + SPON + G4ON + G3ON + G1ON + i] =
1481: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + i] =
1482: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE4t : DrawingMode.E4S);
1483: vcnModeTable[ 1 + AHEX + SPON + G4ON + i] = (
1484: vcnModeTable[1 + AHEX + SPON + G4ON + G1ON + i] =
1485: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + i] =
1486: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
1487: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + i] =
1488: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
1489: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
1490: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE4t : DrawingMode.XE4S);
1491:
1492:
1493: vcnModeTable[ 1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1494: vcnModeTable[ 1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1495:
1496:
1497: vcnModeTable[ 1 + SPON + TXON + G1ON + i] = s < t ? DrawingMode.SE1T : DrawingMode.TE1S;
1498: vcnModeTable[ 1 + AHEX + SPON + TXON + G1ON + i] = s < t ? DrawingMode.XSE1T : DrawingMode.XTE1S;
1499:
1500:
1501: vcnModeTable[ 1 + SPON + TXON + G2ON + i] = (
1502: vcnModeTable[1 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.SE2T : DrawingMode.TE2S);
1503: vcnModeTable[ 1 + AHEX + SPON + TXON + G2ON + i] = (
1504: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE2T : DrawingMode.XTE2S);
1505:
1506:
1507: vcnModeTable[ 1 + SPON + TXON + G3ON + i] = (
1508: vcnModeTable[1 + SPON + TXON + G3ON + G1ON + i] =
1509: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + i] =
1510: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE3T : DrawingMode.TE3S);
1511: vcnModeTable[ 1 + AHEX + SPON + TXON + G3ON + i] = (
1512: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G1ON + i] =
1513: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + i] =
1514: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE3T : DrawingMode.XTE3S);
1515:
1516:
1517: vcnModeTable[ 1 + SPON + TXON + G4ON + i] = (
1518: vcnModeTable[1 + SPON + TXON + G4ON + G1ON + i] =
1519: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + i] =
1520: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + G1ON + i] =
1521: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + i] =
1522: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G1ON + i] =
1523: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + i] =
1524: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE4T : DrawingMode.TE4S);
1525: vcnModeTable[ 1 + AHEX + SPON + TXON + G4ON + i] = (
1526: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G1ON + i] =
1527: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + i] =
1528: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1529: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + i] =
1530: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1531: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1532: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE4T : DrawingMode.XTE4S);
1533:
1534:
1535:
1536:
1537: vcnModeTable[ 2 + i] = DrawingMode.N;
1538: vcnModeTable[ 2 + AHEX + i] = DrawingMode.XN;
1539:
1540:
1541: vcnModeTable[ 2 + G1ON + i] = DrawingMode.E1;
1542: vcnModeTable[ 2 + AHEX + G1ON + i] = DrawingMode.XE1;
1543:
1544:
1545: vcnModeTable[ 2 + G2ON + i] = (
1546: vcnModeTable[2 + G2ON + G1ON + i] = DrawingMode.E2);
1547: vcnModeTable[ 2 + AHEX + G2ON + i] = (
1548: vcnModeTable[2 + AHEX + G2ON + G1ON + i] = DrawingMode.XE2);
1549:
1550:
1551: vcnModeTable[ 2 + G3ON + i] = (
1552: vcnModeTable[2 + G3ON + G1ON + i] =
1553: vcnModeTable[2 + G3ON + G2ON + i] =
1554: vcnModeTable[2 + G3ON + G2ON + G1ON + i] = DrawingMode.E3);
1555: vcnModeTable[ 2 + AHEX + G3ON + i] = (
1556: vcnModeTable[2 + AHEX + G3ON + G1ON + i] =
1557: vcnModeTable[2 + AHEX + G3ON + G2ON + i] =
1558: vcnModeTable[2 + AHEX + G3ON + G2ON + G1ON + i] = DrawingMode.XE3);
1559:
1560:
1561: vcnModeTable[ 2 + G4ON + i] = (
1562: vcnModeTable[2 + G4ON + G1ON + i] =
1563: vcnModeTable[2 + G4ON + G2ON + i] =
1564: vcnModeTable[2 + G4ON + G2ON + G1ON + i] =
1565: vcnModeTable[2 + G4ON + G3ON + i] =
1566: vcnModeTable[2 + G4ON + G3ON + G1ON + i] =
1567: vcnModeTable[2 + G4ON + G3ON + G2ON + i] =
1568: vcnModeTable[2 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4);
1569: vcnModeTable[ 2 + AHEX + G4ON + i] = (
1570: vcnModeTable[2 + AHEX + G4ON + G1ON + i] =
1571: vcnModeTable[2 + AHEX + G4ON + G2ON + i] =
1572: vcnModeTable[2 + AHEX + G4ON + G2ON + G1ON + i] =
1573: vcnModeTable[2 + AHEX + G4ON + G3ON + i] =
1574: vcnModeTable[2 + AHEX + G4ON + G3ON + G1ON + i] =
1575: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + i] =
1576: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4);
1577:
1578: vcnModeTable[ 2 + TXON + i] = DrawingMode.T;
1579: vcnModeTable[ 2 + AHEX + TXON + i] = DrawingMode.XT;
1580:
1581:
1582: vcnModeTable[ 2 + TXON + G1ON + i] = DrawingMode.TE1;
1583: vcnModeTable[ 2 + AHEX + TXON + G1ON + i] = DrawingMode.XTE1;
1584:
1585:
1586: vcnModeTable[ 2 + TXON + G2ON + i] = (
1587: vcnModeTable[2 + TXON + G2ON + G1ON + i] = DrawingMode.TE2);
1588: vcnModeTable[ 2 + AHEX + TXON + G2ON + i] = (
1589: vcnModeTable[2 + AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XTE2);
1590:
1591:
1592: vcnModeTable[ 2 + TXON + G3ON + i] = (
1593: vcnModeTable[2 + TXON + G3ON + G1ON + i] =
1594: vcnModeTable[2 + TXON + G3ON + G2ON + i] =
1595: vcnModeTable[2 + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.TE3);
1596: vcnModeTable[ 2 + AHEX + TXON + G3ON + i] = (
1597: vcnModeTable[2 + AHEX + TXON + G3ON + G1ON + i] =
1598: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + i] =
1599: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.XTE3);
1600:
1601:
1602: vcnModeTable[ 2 + TXON + G4ON + i] = (
1603: vcnModeTable[2 + TXON + G4ON + G1ON + i] =
1604: vcnModeTable[2 + TXON + G4ON + G2ON + i] =
1605: vcnModeTable[2 + TXON + G4ON + G2ON + G1ON + i] =
1606: vcnModeTable[2 + TXON + G4ON + G3ON + i] =
1607: vcnModeTable[2 + TXON + G4ON + G3ON + G1ON + i] =
1608: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + i] =
1609: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.TE4);
1610: vcnModeTable[ 2 + AHEX + TXON + G4ON + i] = (
1611: vcnModeTable[2 + AHEX + TXON + G4ON + G1ON + i] =
1612: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + i] =
1613: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
1614: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + i] =
1615: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
1616: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
1617: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XTE4);
1618:
1619: vcnModeTable[ 2 + SPON + i] = DrawingMode.S;
1620: vcnModeTable[ 2 + AHEX + SPON + i] = DrawingMode.XS;
1621:
1622:
1623: vcnModeTable[ 2 + SPON + G1ON + i] = DrawingMode.SE1;
1624: vcnModeTable[ 2 + AHEX + SPON + G1ON + i] = DrawingMode.XSE1;
1625:
1626:
1627: vcnModeTable[ 2 + SPON + G2ON + i] = (
1628: vcnModeTable[2 + SPON + G2ON + G1ON + i] = DrawingMode.SE2);
1629: vcnModeTable[ 2 + AHEX + SPON + G2ON + i] = (
1630: vcnModeTable[2 + AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XSE2);
1631:
1632:
1633: vcnModeTable[ 2 + SPON + G3ON + i] = (
1634: vcnModeTable[2 + SPON + G3ON + G1ON + i] =
1635: vcnModeTable[2 + SPON + G3ON + G2ON + i] =
1636: vcnModeTable[2 + SPON + G3ON + G2ON + G1ON + i] = DrawingMode.SE3);
1637: vcnModeTable[ 2 + AHEX + SPON + G3ON + i] = (
1638: vcnModeTable[2 + AHEX + SPON + G3ON + G1ON + i] =
1639: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + i] =
1640: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + G1ON + i] = DrawingMode.XSE3);
1641:
1642:
1643: vcnModeTable[ 2 + SPON + G4ON + i] = (
1644: vcnModeTable[2 + SPON + G4ON + G1ON + i] =
1645: vcnModeTable[2 + SPON + G4ON + G2ON + i] =
1646: vcnModeTable[2 + SPON + G4ON + G2ON + G1ON + i] =
1647: vcnModeTable[2 + SPON + G4ON + G3ON + i] =
1648: vcnModeTable[2 + SPON + G4ON + G3ON + G1ON + i] =
1649: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + i] =
1650: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.SE4);
1651: vcnModeTable[ 2 + AHEX + SPON + G4ON + i] = (
1652: vcnModeTable[2 + AHEX + SPON + G4ON + G1ON + i] =
1653: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + i] =
1654: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
1655: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + i] =
1656: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
1657: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
1658: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XSE4);
1659:
1660:
1661: vcnModeTable[ 2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1662: vcnModeTable[ 2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1663:
1664:
1665: vcnModeTable[ 2 + SPON + TXON + G1ON + i] = s < t ? DrawingMode.STE1 : DrawingMode.TSE1;
1666: vcnModeTable[ 2 + AHEX + SPON + TXON + G1ON + i] = s < t ? DrawingMode.XSTE1 : DrawingMode.XTSE1;
1667:
1668:
1669: vcnModeTable[ 2 + SPON + TXON + G2ON + i] = (
1670: vcnModeTable[2 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.STE2 : DrawingMode.TSE2);
1671: vcnModeTable[ 2 + AHEX + SPON + TXON + G2ON + i] = (
1672: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTE2 : DrawingMode.XTSE2);
1673:
1674:
1675: vcnModeTable[ 2 + SPON + TXON + G3ON + i] = (
1676: vcnModeTable[2 + SPON + TXON + G3ON + G1ON + i] =
1677: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + i] =
1678: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STE3 : DrawingMode.TSE3);
1679: vcnModeTable[ 2 + AHEX + SPON + TXON + G3ON + i] = (
1680: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G1ON + i] =
1681: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + i] =
1682: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTE3 : DrawingMode.XTSE3);
1683:
1684:
1685: vcnModeTable[ 2 + SPON + TXON + G4ON + i] = (
1686: vcnModeTable[2 + SPON + TXON + G4ON + G1ON + i] =
1687: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + i] =
1688: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + G1ON + i] =
1689: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + i] =
1690: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G1ON + i] =
1691: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + i] =
1692: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STE4 : DrawingMode.TSE4);
1693: vcnModeTable[ 2 + AHEX + SPON + TXON + G4ON + i] = (
1694: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G1ON + i] =
1695: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + i] =
1696: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1697: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + i] =
1698: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1699: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1700: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTE4 : DrawingMode.XTSE4);
1701:
1702:
1703:
1704:
1705: vcnModeTable[ 3 + i] = (
1706: vcnModeTable[3 + TXON + i] =
1707: vcnModeTable[3 + SPON + i] =
1708: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
1709: vcnModeTable[ 3 + AHEX + i] = (
1710: vcnModeTable[3 + AHEX + TXON + i] =
1711: vcnModeTable[3 + AHEX + SPON + i] =
1712: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
1713:
1714:
1715: vcnModeTable[ 3 + G1ON + i] = (
1716: vcnModeTable[3 + TXON + G1ON + i] =
1717: vcnModeTable[3 + SPON + G1ON + i] =
1718: vcnModeTable[3 + SPON + TXON + G1ON + i] = DrawingMode.E1t);
1719: vcnModeTable[ 3 + AHEX + G1ON + i] = (
1720: vcnModeTable[3 + AHEX + TXON + G1ON + i] =
1721: vcnModeTable[3 + AHEX + SPON + G1ON + i] =
1722: vcnModeTable[3 + AHEX + SPON + TXON + G1ON + i] = DrawingMode.XE1t);
1723:
1724:
1725: vcnModeTable[ 3 + G2ON + i] = (
1726: vcnModeTable[3 + G2ON + G1ON + i] =
1727: vcnModeTable[3 + TXON + G2ON + i] =
1728: vcnModeTable[3 + TXON + G2ON + G1ON + i] =
1729: vcnModeTable[3 + SPON + G2ON + i] =
1730: vcnModeTable[3 + SPON + G2ON + G1ON + i] =
1731: vcnModeTable[3 + SPON + TXON + G2ON + i] =
1732: vcnModeTable[3 + SPON + TXON + G2ON + G1ON + i] = DrawingMode.E2t);
1733: vcnModeTable[ 3 + AHEX + G2ON + i] = (
1734: vcnModeTable[3 + AHEX + G2ON + G1ON + i] =
1735: vcnModeTable[3 + AHEX + TXON + G2ON + i] =
1736: vcnModeTable[3 + AHEX + TXON + G2ON + G1ON + i] =
1737: vcnModeTable[3 + AHEX + SPON + G2ON + i] =
1738: vcnModeTable[3 + AHEX + SPON + G2ON + G1ON + i] =
1739: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + i] =
1740: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + G1ON + i] = DrawingMode.XE2t);
1741:
1742:
1743: vcnModeTable[ 3 + G3ON + i] = (
1744: vcnModeTable[3 + G3ON + G1ON + i] =
1745: vcnModeTable[3 + G3ON + G2ON + i] =
1746: vcnModeTable[3 + G3ON + G2ON + G1ON + i] =
1747: vcnModeTable[3 + TXON + G3ON + i] =
1748: vcnModeTable[3 + TXON + G3ON + G1ON + i] =
1749: vcnModeTable[3 + TXON + G3ON + G2ON + i] =
1750: vcnModeTable[3 + TXON + G3ON + G2ON + G1ON + i] =
1751: vcnModeTable[3 + SPON + G3ON + i] =
1752: vcnModeTable[3 + SPON + G3ON + G1ON + i] =
1753: vcnModeTable[3 + SPON + G3ON + G2ON + i] =
1754: vcnModeTable[3 + SPON + G3ON + G2ON + G1ON + i] =
1755: vcnModeTable[3 + SPON + TXON + G3ON + i] =
1756: vcnModeTable[3 + SPON + TXON + G3ON + G1ON + i] =
1757: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + i] =
1758: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.E3t);
1759: vcnModeTable[ 3 + AHEX + G3ON + i] = (
1760: vcnModeTable[3 + AHEX + G3ON + G1ON + i] =
1761: vcnModeTable[3 + AHEX + G3ON + G2ON + i] =
1762: vcnModeTable[3 + AHEX + G3ON + G2ON + G1ON + i] =
1763: vcnModeTable[3 + AHEX + TXON + G3ON + i] =
1764: vcnModeTable[3 + AHEX + TXON + G3ON + G1ON + i] =
1765: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + i] =
1766: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
1767: vcnModeTable[3 + AHEX + SPON + G3ON + i] =
1768: vcnModeTable[3 + AHEX + SPON + G3ON + G1ON + i] =
1769: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + i] =
1770: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
1771: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + i] =
1772: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G1ON + i] =
1773: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + i] =
1774: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.XE3t);
1775:
1776:
1777: vcnModeTable[ 3 + G4ON + i] = (
1778: vcnModeTable[3 + G4ON + G1ON + i] =
1779: vcnModeTable[3 + G4ON + G2ON + i] =
1780: vcnModeTable[3 + G4ON + G2ON + G1ON + i] =
1781: vcnModeTable[3 + G4ON + G3ON + i] =
1782: vcnModeTable[3 + G4ON + G3ON + G1ON + i] =
1783: vcnModeTable[3 + G4ON + G3ON + G2ON + i] =
1784: vcnModeTable[3 + G4ON + G3ON + G2ON + G1ON + i] =
1785: vcnModeTable[3 + TXON + G4ON + i] =
1786: vcnModeTable[3 + TXON + G4ON + G1ON + i] =
1787: vcnModeTable[3 + TXON + G4ON + G2ON + i] =
1788: vcnModeTable[3 + TXON + G4ON + G2ON + G1ON + i] =
1789: vcnModeTable[3 + TXON + G4ON + G3ON + i] =
1790: vcnModeTable[3 + TXON + G4ON + G3ON + G1ON + i] =
1791: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + i] =
1792: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + G1ON + i] =
1793: vcnModeTable[3 + SPON + G4ON + i] =
1794: vcnModeTable[3 + SPON + G4ON + G1ON + i] =
1795: vcnModeTable[3 + SPON + G4ON + G2ON + i] =
1796: vcnModeTable[3 + SPON + G4ON + G2ON + G1ON + i] =
1797: vcnModeTable[3 + SPON + G4ON + G3ON + i] =
1798: vcnModeTable[3 + SPON + G4ON + G3ON + G1ON + i] =
1799: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + i] =
1800: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + G1ON + i] =
1801: vcnModeTable[3 + SPON + TXON + G4ON + i] =
1802: vcnModeTable[3 + SPON + TXON + G4ON + G1ON + i] =
1803: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + i] =
1804: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + G1ON + i] =
1805: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + i] =
1806: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G1ON + i] =
1807: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + i] =
1808: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4t);
1809: vcnModeTable[ 3 + AHEX + G4ON + i] = (
1810: vcnModeTable[3 + AHEX + G4ON + G1ON + i] =
1811: vcnModeTable[3 + AHEX + G4ON + G2ON + i] =
1812: vcnModeTable[3 + AHEX + G4ON + G2ON + G1ON + i] =
1813: vcnModeTable[3 + AHEX + G4ON + G3ON + i] =
1814: vcnModeTable[3 + AHEX + G4ON + G3ON + G1ON + i] =
1815: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + i] =
1816: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + G1ON + i] =
1817: vcnModeTable[3 + AHEX + TXON + G4ON + i] =
1818: vcnModeTable[3 + AHEX + TXON + G4ON + G1ON + i] =
1819: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + i] =
1820: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
1821: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + i] =
1822: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
1823: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
1824: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] =
1825: vcnModeTable[3 + AHEX + SPON + G4ON + i] =
1826: vcnModeTable[3 + AHEX + SPON + G4ON + G1ON + i] =
1827: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + i] =
1828: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
1829: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + i] =
1830: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
1831: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
1832: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] =
1833: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + i] =
1834: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G1ON + i] =
1835: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + i] =
1836: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1837: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + i] =
1838: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1839: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1840: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4t);
1841: }
1842: }
1843:
1844:
1845:
1846: public static void vcnMakeTable1 (int grmm) {
1847:
1848:
1849:
1850: for (int ii = 0b0000_0; ii <= 0b1111_1; ii++) {
1851:
1852: int i = grmm << 6 | (ii & 0b0000_1) << 13 | (ii & 0b1111_0) << 1;
1853: int s = i >> 4 & 3;
1854: int t = i >> 2 & 3;
1855:
1856:
1857:
1858:
1859: vcnModeTable[ i] = DrawingMode.N;
1860: vcnModeTable[ AHEX + i] = DrawingMode.XN;
1861:
1862:
1863: vcnModeTable[ G1ON + i] = (
1864: vcnModeTable[ G2ON + i] =
1865: vcnModeTable[ G2ON + G1ON + i] = DrawingMode.F1t);
1866: vcnModeTable[ AHEX + G1ON + i] = (
1867: vcnModeTable[ AHEX + G2ON + i] =
1868: vcnModeTable[ AHEX + G2ON + G1ON + i] = DrawingMode.XF1t);
1869:
1870:
1871: vcnModeTable[ G3ON + i] = (
1872: vcnModeTable[ G3ON + G1ON + i] =
1873: vcnModeTable[ G3ON + G2ON + i] =
1874: vcnModeTable[ G3ON + G2ON + G1ON + i] =
1875: vcnModeTable[ G4ON + i] =
1876: vcnModeTable[ G4ON + G1ON + i] =
1877: vcnModeTable[ G4ON + G2ON + i] =
1878: vcnModeTable[ G4ON + G2ON + G1ON + i] =
1879: vcnModeTable[ G4ON + G3ON + i] =
1880: vcnModeTable[ G4ON + G3ON + G1ON + i] =
1881: vcnModeTable[ G4ON + G3ON + G2ON + i] =
1882: vcnModeTable[ G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2t);
1883: vcnModeTable[ AHEX + G3ON + i] = (
1884: vcnModeTable[ AHEX + G3ON + G1ON + i] =
1885: vcnModeTable[ AHEX + G3ON + G2ON + i] =
1886: vcnModeTable[ AHEX + G3ON + G2ON + G1ON + i] =
1887: vcnModeTable[ AHEX + G4ON + i] =
1888: vcnModeTable[ AHEX + G4ON + G1ON + i] =
1889: vcnModeTable[ AHEX + G4ON + G2ON + i] =
1890: vcnModeTable[ AHEX + G4ON + G2ON + G1ON + i] =
1891: vcnModeTable[ AHEX + G4ON + G3ON + i] =
1892: vcnModeTable[ AHEX + G4ON + G3ON + G1ON + i] =
1893: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + i] =
1894: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2t);
1895:
1896: vcnModeTable[ TXON + i] = DrawingMode.T;
1897: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
1898:
1899:
1900: vcnModeTable[ TXON + G1ON + i] = (
1901: vcnModeTable[ TXON + G2ON + i] =
1902: vcnModeTable[ TXON + G2ON + G1ON + i] = DrawingMode.F1T);
1903: vcnModeTable[ AHEX + TXON + G1ON + i] = (
1904: vcnModeTable[ AHEX + TXON + G2ON + i] =
1905: vcnModeTable[ AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XF1T);
1906:
1907:
1908: vcnModeTable[ TXON + G3ON + i] = (
1909: vcnModeTable[ TXON + G3ON + G1ON + i] =
1910: vcnModeTable[ TXON + G3ON + G2ON + i] =
1911: vcnModeTable[ TXON + G3ON + G2ON + G1ON + i] =
1912: vcnModeTable[ TXON + G4ON + i] =
1913: vcnModeTable[ TXON + G4ON + G1ON + i] =
1914: vcnModeTable[ TXON + G4ON + G2ON + i] =
1915: vcnModeTable[ TXON + G4ON + G2ON + G1ON + i] =
1916: vcnModeTable[ TXON + G4ON + G3ON + i] =
1917: vcnModeTable[ TXON + G4ON + G3ON + G1ON + i] =
1918: vcnModeTable[ TXON + G4ON + G3ON + G2ON + i] =
1919: vcnModeTable[ TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2T);
1920: vcnModeTable[ AHEX + TXON + G3ON + i] = (
1921: vcnModeTable[ AHEX + TXON + G3ON + G1ON + i] =
1922: vcnModeTable[ AHEX + TXON + G3ON + G2ON + i] =
1923: vcnModeTable[ AHEX + TXON + G3ON + G2ON + G1ON + i] =
1924: vcnModeTable[ AHEX + TXON + G4ON + i] =
1925: vcnModeTable[ AHEX + TXON + G4ON + G1ON + i] =
1926: vcnModeTable[ AHEX + TXON + G4ON + G2ON + i] =
1927: vcnModeTable[ AHEX + TXON + G4ON + G2ON + G1ON + i] =
1928: vcnModeTable[ AHEX + TXON + G4ON + G3ON + i] =
1929: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G1ON + i] =
1930: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + i] =
1931: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2T);
1932:
1933: vcnModeTable[ SPON + i] = DrawingMode.S;
1934: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
1935:
1936:
1937: vcnModeTable[ SPON + G1ON + i] = (
1938: vcnModeTable[ SPON + G2ON + i] =
1939: vcnModeTable[ SPON + G2ON + G1ON + i] = DrawingMode.F1S);
1940: vcnModeTable[ AHEX + SPON + G1ON + i] = (
1941: vcnModeTable[ AHEX + SPON + G2ON + i] =
1942: vcnModeTable[ AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XF1S);
1943:
1944:
1945: vcnModeTable[ SPON + G3ON + i] = (
1946: vcnModeTable[ SPON + G3ON + G1ON + i] =
1947: vcnModeTable[ SPON + G3ON + G2ON + i] =
1948: vcnModeTable[ SPON + G3ON + G2ON + G1ON + i] =
1949: vcnModeTable[ SPON + G4ON + i] =
1950: vcnModeTable[ SPON + G4ON + G1ON + i] =
1951: vcnModeTable[ SPON + G4ON + G2ON + i] =
1952: vcnModeTable[ SPON + G4ON + G2ON + G1ON + i] =
1953: vcnModeTable[ SPON + G4ON + G3ON + i] =
1954: vcnModeTable[ SPON + G4ON + G3ON + G1ON + i] =
1955: vcnModeTable[ SPON + G4ON + G3ON + G2ON + i] =
1956: vcnModeTable[ SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2S);
1957: vcnModeTable[ AHEX + SPON + G3ON + i] = (
1958: vcnModeTable[ AHEX + SPON + G3ON + G1ON + i] =
1959: vcnModeTable[ AHEX + SPON + G3ON + G2ON + i] =
1960: vcnModeTable[ AHEX + SPON + G3ON + G2ON + G1ON + i] =
1961: vcnModeTable[ AHEX + SPON + G4ON + i] =
1962: vcnModeTable[ AHEX + SPON + G4ON + G1ON + i] =
1963: vcnModeTable[ AHEX + SPON + G4ON + G2ON + i] =
1964: vcnModeTable[ AHEX + SPON + G4ON + G2ON + G1ON + i] =
1965: vcnModeTable[ AHEX + SPON + G4ON + G3ON + i] =
1966: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G1ON + i] =
1967: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + i] =
1968: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2S);
1969:
1970:
1971: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1972: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1973:
1974:
1975: vcnModeTable[ SPON + TXON + G1ON + i] = (
1976: vcnModeTable[ SPON + TXON + G2ON + i] =
1977: vcnModeTable[ SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.F1ST : DrawingMode.F1TS);
1978: vcnModeTable[ AHEX + SPON + TXON + G1ON + i] = (
1979: vcnModeTable[ AHEX + SPON + TXON + G2ON + i] =
1980: vcnModeTable[ AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XF1ST : DrawingMode.XF1TS);
1981:
1982:
1983: vcnModeTable[ SPON + TXON + G3ON + i] = (
1984: vcnModeTable[ SPON + TXON + G3ON + G1ON + i] =
1985: vcnModeTable[ SPON + TXON + G3ON + G2ON + i] =
1986: vcnModeTable[ SPON + TXON + G3ON + G2ON + G1ON + i] =
1987: vcnModeTable[ SPON + TXON + G4ON + i] =
1988: vcnModeTable[ SPON + TXON + G4ON + G1ON + i] =
1989: vcnModeTable[ SPON + TXON + G4ON + G2ON + i] =
1990: vcnModeTable[ SPON + TXON + G4ON + G2ON + G1ON + i] =
1991: vcnModeTable[ SPON + TXON + G4ON + G3ON + i] =
1992: vcnModeTable[ SPON + TXON + G4ON + G3ON + G1ON + i] =
1993: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + i] =
1994: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.F2ST : DrawingMode.F2TS);
1995: vcnModeTable[ AHEX + SPON + TXON + G3ON + i] = (
1996: vcnModeTable[ AHEX + SPON + TXON + G3ON + G1ON + i] =
1997: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + i] =
1998: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
1999: vcnModeTable[ AHEX + SPON + TXON + G4ON + i] =
2000: vcnModeTable[ AHEX + SPON + TXON + G4ON + G1ON + i] =
2001: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + i] =
2002: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2003: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + i] =
2004: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2005: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2006: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XF2ST : DrawingMode.XF2TS);
2007:
2008:
2009:
2010:
2011: vcnModeTable[ 1 + i] = DrawingMode.N;
2012: vcnModeTable[ 1 + AHEX + i] = DrawingMode.XN;
2013:
2014:
2015: vcnModeTable[ 1 + G1ON + i] = (
2016: vcnModeTable[1 + G2ON + i] =
2017: vcnModeTable[1 + G2ON + G1ON + i] = DrawingMode.F1t);
2018: vcnModeTable[ 1 + AHEX + G1ON + i] = (
2019: vcnModeTable[1 + AHEX + G2ON + i] =
2020: vcnModeTable[1 + AHEX + G2ON + G1ON + i] = DrawingMode.XF1t);
2021:
2022:
2023: vcnModeTable[ 1 + G3ON + i] = (
2024: vcnModeTable[1 + G3ON + G1ON + i] =
2025: vcnModeTable[1 + G3ON + G2ON + i] =
2026: vcnModeTable[1 + G3ON + G2ON + G1ON + i] =
2027: vcnModeTable[1 + G4ON + i] =
2028: vcnModeTable[1 + G4ON + G1ON + i] =
2029: vcnModeTable[1 + G4ON + G2ON + i] =
2030: vcnModeTable[1 + G4ON + G2ON + G1ON + i] =
2031: vcnModeTable[1 + G4ON + G3ON + i] =
2032: vcnModeTable[1 + G4ON + G3ON + G1ON + i] =
2033: vcnModeTable[1 + G4ON + G3ON + G2ON + i] =
2034: vcnModeTable[1 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2t);
2035: vcnModeTable[ 1 + AHEX + G3ON + i] = (
2036: vcnModeTable[1 + AHEX + G3ON + G1ON + i] =
2037: vcnModeTable[1 + AHEX + G3ON + G2ON + i] =
2038: vcnModeTable[1 + AHEX + G3ON + G2ON + G1ON + i] =
2039: vcnModeTable[1 + AHEX + G4ON + i] =
2040: vcnModeTable[1 + AHEX + G4ON + G1ON + i] =
2041: vcnModeTable[1 + AHEX + G4ON + G2ON + i] =
2042: vcnModeTable[1 + AHEX + G4ON + G2ON + G1ON + i] =
2043: vcnModeTable[1 + AHEX + G4ON + G3ON + i] =
2044: vcnModeTable[1 + AHEX + G4ON + G3ON + G1ON + i] =
2045: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + i] =
2046: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2t);
2047:
2048: vcnModeTable[ 1 + TXON + i] = DrawingMode.T;
2049: vcnModeTable[ 1 + AHEX + TXON + i] = DrawingMode.XT;
2050:
2051:
2052: vcnModeTable[ 1 + TXON + G1ON + i] = (
2053: vcnModeTable[1 + TXON + G2ON + i] =
2054: vcnModeTable[1 + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.F1T : DrawingMode.TF1s);
2055: vcnModeTable[ 1 + AHEX + TXON + G1ON + i] = (
2056: vcnModeTable[1 + AHEX + TXON + G2ON + i] =
2057: vcnModeTable[1 + AHEX + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XF1T : DrawingMode.XTF1s);
2058:
2059:
2060: vcnModeTable[ 1 + TXON + G3ON + i] = (
2061: vcnModeTable[1 + TXON + G3ON + G1ON + i] =
2062: vcnModeTable[1 + TXON + G3ON + G2ON + i] =
2063: vcnModeTable[1 + TXON + G3ON + G2ON + G1ON + i] =
2064: vcnModeTable[1 + TXON + G4ON + i] =
2065: vcnModeTable[1 + TXON + G4ON + G1ON + i] =
2066: vcnModeTable[1 + TXON + G4ON + G2ON + i] =
2067: vcnModeTable[1 + TXON + G4ON + G2ON + G1ON + i] =
2068: vcnModeTable[1 + TXON + G4ON + G3ON + i] =
2069: vcnModeTable[1 + TXON + G4ON + G3ON + G1ON + i] =
2070: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + i] =
2071: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.F2T : DrawingMode.TF2s);
2072: vcnModeTable[ 1 + AHEX + TXON + G3ON + i] = (
2073: vcnModeTable[1 + AHEX + TXON + G3ON + G1ON + i] =
2074: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + i] =
2075: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2076: vcnModeTable[1 + AHEX + TXON + G4ON + i] =
2077: vcnModeTable[1 + AHEX + TXON + G4ON + G1ON + i] =
2078: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + i] =
2079: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2080: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + i] =
2081: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2082: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2083: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XF2T : DrawingMode.XTF2s);
2084:
2085: vcnModeTable[ 1 + SPON + i] = DrawingMode.S;
2086: vcnModeTable[ 1 + AHEX + SPON + i] = DrawingMode.XS;
2087:
2088:
2089: vcnModeTable[ 1 + SPON + G1ON + i] = (
2090: vcnModeTable[1 + SPON + G2ON + i] =
2091: vcnModeTable[1 + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.SF1t : DrawingMode.F1S);
2092: vcnModeTable[ 1 + AHEX + SPON + G1ON + i] = (
2093: vcnModeTable[1 + AHEX + SPON + G2ON + i] =
2094: vcnModeTable[1 + AHEX + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF1t : DrawingMode.XF1S);
2095:
2096:
2097: vcnModeTable[ 1 + SPON + G3ON + i] = (
2098: vcnModeTable[1 + SPON + G3ON + G1ON + i] =
2099: vcnModeTable[1 + SPON + G3ON + G2ON + i] =
2100: vcnModeTable[1 + SPON + G3ON + G2ON + G1ON + i] =
2101: vcnModeTable[1 + SPON + G4ON + i] =
2102: vcnModeTable[1 + SPON + G4ON + G1ON + i] =
2103: vcnModeTable[1 + SPON + G4ON + G2ON + i] =
2104: vcnModeTable[1 + SPON + G4ON + G2ON + G1ON + i] =
2105: vcnModeTable[1 + SPON + G4ON + G3ON + i] =
2106: vcnModeTable[1 + SPON + G4ON + G3ON + G1ON + i] =
2107: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + i] =
2108: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SF2t : DrawingMode.F2S);
2109: vcnModeTable[ 1 + AHEX + SPON + G3ON + i] = (
2110: vcnModeTable[1 + AHEX + SPON + G3ON + G1ON + i] =
2111: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + i] =
2112: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2113: vcnModeTable[1 + AHEX + SPON + G4ON + i] =
2114: vcnModeTable[1 + AHEX + SPON + G4ON + G1ON + i] =
2115: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + i] =
2116: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2117: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + i] =
2118: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2119: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2120: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF2t : DrawingMode.XF2S);
2121:
2122:
2123: vcnModeTable[ 1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2124: vcnModeTable[ 1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2125:
2126:
2127: vcnModeTable[ 1 + SPON + TXON + G1ON + i] = (
2128: vcnModeTable[1 + SPON + TXON + G2ON + i] =
2129: vcnModeTable[1 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.SF1T : DrawingMode.TF1S);
2130: vcnModeTable[ 1 + AHEX + SPON + TXON + G1ON + i] = (
2131: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + i] =
2132: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF1T : DrawingMode.XTF1S);
2133:
2134:
2135: vcnModeTable[ 1 + SPON + TXON + G3ON + i] = (
2136: vcnModeTable[1 + SPON + TXON + G3ON + G1ON + i] =
2137: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + i] =
2138: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2139: vcnModeTable[1 + SPON + TXON + G4ON + i] =
2140: vcnModeTable[1 + SPON + TXON + G4ON + G1ON + i] =
2141: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + i] =
2142: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2143: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + i] =
2144: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2145: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2146: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SF2T : DrawingMode.TF2S);
2147: vcnModeTable[ 1 + AHEX + SPON + TXON + G3ON + i] = (
2148: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2149: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2150: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2151: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + i] =
2152: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2153: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2154: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2155: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2156: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2157: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2158: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF2T : DrawingMode.XTF2S);
2159:
2160:
2161:
2162:
2163: vcnModeTable[ 2 + i] = DrawingMode.N;
2164: vcnModeTable[ 2 + AHEX + i] = DrawingMode.XN;
2165:
2166:
2167: vcnModeTable[ 2 + G1ON + i] = (
2168: vcnModeTable[2 + G2ON + i] =
2169: vcnModeTable[2 + G2ON + G1ON + i] = DrawingMode.F1);
2170: vcnModeTable[ 2 + AHEX + G1ON + i] = (
2171: vcnModeTable[2 + AHEX + G2ON + i] =
2172: vcnModeTable[2 + AHEX + G2ON + G1ON + i] = DrawingMode.XF1);
2173:
2174:
2175: vcnModeTable[ 2 + G3ON + i] = (
2176: vcnModeTable[2 + G3ON + G1ON + i] =
2177: vcnModeTable[2 + G3ON + G2ON + i] =
2178: vcnModeTable[2 + G3ON + G2ON + G1ON + i] =
2179: vcnModeTable[2 + G4ON + i] =
2180: vcnModeTable[2 + G4ON + G1ON + i] =
2181: vcnModeTable[2 + G4ON + G2ON + i] =
2182: vcnModeTable[2 + G4ON + G2ON + G1ON + i] =
2183: vcnModeTable[2 + G4ON + G3ON + i] =
2184: vcnModeTable[2 + G4ON + G3ON + G1ON + i] =
2185: vcnModeTable[2 + G4ON + G3ON + G2ON + i] =
2186: vcnModeTable[2 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2);
2187: vcnModeTable[ 2 + AHEX + G3ON + i] = (
2188: vcnModeTable[2 + AHEX + G3ON + G1ON + i] =
2189: vcnModeTable[2 + AHEX + G3ON + G2ON + i] =
2190: vcnModeTable[2 + AHEX + G3ON + G2ON + G1ON + i] =
2191: vcnModeTable[2 + AHEX + G4ON + i] =
2192: vcnModeTable[2 + AHEX + G4ON + G1ON + i] =
2193: vcnModeTable[2 + AHEX + G4ON + G2ON + i] =
2194: vcnModeTable[2 + AHEX + G4ON + G2ON + G1ON + i] =
2195: vcnModeTable[2 + AHEX + G4ON + G3ON + i] =
2196: vcnModeTable[2 + AHEX + G4ON + G3ON + G1ON + i] =
2197: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + i] =
2198: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2);
2199:
2200: vcnModeTable[ 2 + TXON + i] = DrawingMode.T;
2201: vcnModeTable[ 2 + AHEX + TXON + i] = DrawingMode.XT;
2202:
2203:
2204: vcnModeTable[ 2 + TXON + G1ON + i] = (
2205: vcnModeTable[2 + TXON + G2ON + i] =
2206: vcnModeTable[2 + TXON + G2ON + G1ON + i] = DrawingMode.TF1);
2207: vcnModeTable[ 2 + AHEX + TXON + G1ON + i] = (
2208: vcnModeTable[2 + AHEX + TXON + G2ON + i] =
2209: vcnModeTable[2 + AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XTF1);
2210:
2211:
2212: vcnModeTable[ 2 + TXON + G3ON + i] = (
2213: vcnModeTable[2 + TXON + G3ON + G1ON + i] =
2214: vcnModeTable[2 + TXON + G3ON + G2ON + i] =
2215: vcnModeTable[2 + TXON + G3ON + G2ON + G1ON + i] =
2216: vcnModeTable[2 + TXON + G4ON + i] =
2217: vcnModeTable[2 + TXON + G4ON + G1ON + i] =
2218: vcnModeTable[2 + TXON + G4ON + G2ON + i] =
2219: vcnModeTable[2 + TXON + G4ON + G2ON + G1ON + i] =
2220: vcnModeTable[2 + TXON + G4ON + G3ON + i] =
2221: vcnModeTable[2 + TXON + G4ON + G3ON + G1ON + i] =
2222: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + i] =
2223: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.TF2);
2224: vcnModeTable[ 2 + AHEX + TXON + G3ON + i] = (
2225: vcnModeTable[2 + AHEX + TXON + G3ON + G1ON + i] =
2226: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + i] =
2227: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2228: vcnModeTable[2 + AHEX + TXON + G4ON + i] =
2229: vcnModeTable[2 + AHEX + TXON + G4ON + G1ON + i] =
2230: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + i] =
2231: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2232: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + i] =
2233: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2234: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2235: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XTF2);
2236:
2237: vcnModeTable[ 2 + SPON + i] = DrawingMode.S;
2238: vcnModeTable[ 2 + AHEX + SPON + i] = DrawingMode.XS;
2239:
2240:
2241: vcnModeTable[ 2 + SPON + G1ON + i] = (
2242: vcnModeTable[2 + SPON + G2ON + i] =
2243: vcnModeTable[2 + SPON + G2ON + G1ON + i] = DrawingMode.SF1);
2244: vcnModeTable[ 2 + AHEX + SPON + G1ON + i] = (
2245: vcnModeTable[2 + AHEX + SPON + G2ON + i] =
2246: vcnModeTable[2 + AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XSF1);
2247:
2248:
2249: vcnModeTable[ 2 + SPON + G3ON + i] = (
2250: vcnModeTable[2 + SPON + G3ON + G1ON + i] =
2251: vcnModeTable[2 + SPON + G3ON + G2ON + i] =
2252: vcnModeTable[2 + SPON + G3ON + G2ON + G1ON + i] =
2253: vcnModeTable[2 + SPON + G4ON + i] =
2254: vcnModeTable[2 + SPON + G4ON + G1ON + i] =
2255: vcnModeTable[2 + SPON + G4ON + G2ON + i] =
2256: vcnModeTable[2 + SPON + G4ON + G2ON + G1ON + i] =
2257: vcnModeTable[2 + SPON + G4ON + G3ON + i] =
2258: vcnModeTable[2 + SPON + G4ON + G3ON + G1ON + i] =
2259: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + i] =
2260: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.SF2);
2261: vcnModeTable[ 2 + AHEX + SPON + G3ON + i] = (
2262: vcnModeTable[2 + AHEX + SPON + G3ON + G1ON + i] =
2263: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + i] =
2264: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2265: vcnModeTable[2 + AHEX + SPON + G4ON + i] =
2266: vcnModeTable[2 + AHEX + SPON + G4ON + G1ON + i] =
2267: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + i] =
2268: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2269: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + i] =
2270: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2271: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2272: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XSF2);
2273:
2274:
2275: vcnModeTable[ 2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2276: vcnModeTable[ 2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2277:
2278:
2279: vcnModeTable[ 2 + SPON + TXON + G1ON + i] = (
2280: vcnModeTable[2 + SPON + TXON + G2ON + i] =
2281: vcnModeTable[2 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.STF1 : DrawingMode.TSF1);
2282: vcnModeTable[ 2 + AHEX + SPON + TXON + G1ON + i] = (
2283: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + i] =
2284: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTF1 : DrawingMode.XTSF1);
2285:
2286:
2287: vcnModeTable[ 2 + SPON + TXON + G3ON + i] = (
2288: vcnModeTable[2 + SPON + TXON + G3ON + G1ON + i] =
2289: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + i] =
2290: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2291: vcnModeTable[2 + SPON + TXON + G4ON + i] =
2292: vcnModeTable[2 + SPON + TXON + G4ON + G1ON + i] =
2293: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + i] =
2294: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2295: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + i] =
2296: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2297: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2298: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STF2 : DrawingMode.TSF2);
2299: vcnModeTable[ 2 + AHEX + SPON + TXON + G3ON + i] = (
2300: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2301: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2302: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2303: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + i] =
2304: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2305: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2306: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2307: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2308: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2309: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2310: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTF2 : DrawingMode.XTSF2);
2311:
2312:
2313:
2314:
2315: vcnModeTable[ 3 + i] = (
2316: vcnModeTable[3 + TXON + i] =
2317: vcnModeTable[3 + SPON + i] =
2318: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
2319: vcnModeTable[ 3 + AHEX + i] = (
2320: vcnModeTable[3 + AHEX + TXON + i] =
2321: vcnModeTable[3 + AHEX + SPON + i] =
2322: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
2323:
2324:
2325: vcnModeTable[ 3 + G1ON + i] = (
2326: vcnModeTable[3 + TXON + G1ON + i] =
2327: vcnModeTable[3 + SPON + G1ON + i] =
2328: vcnModeTable[3 + SPON + TXON + G1ON + i] =
2329: vcnModeTable[3 + G2ON + i] =
2330: vcnModeTable[3 + TXON + G2ON + i] =
2331: vcnModeTable[3 + SPON + G2ON + i] =
2332: vcnModeTable[3 + SPON + TXON + G2ON + i] =
2333: vcnModeTable[3 + G2ON + G1ON + i] =
2334: vcnModeTable[3 + TXON + G2ON + G1ON + i] =
2335: vcnModeTable[3 + SPON + G2ON + G1ON + i] =
2336: vcnModeTable[3 + SPON + TXON + G2ON + G1ON + i] = DrawingMode.F1t);
2337: vcnModeTable[ 3 + AHEX + G1ON + i] = (
2338: vcnModeTable[3 + AHEX + TXON + G1ON + i] =
2339: vcnModeTable[3 + AHEX + SPON + G1ON + i] =
2340: vcnModeTable[3 + AHEX + SPON + TXON + G1ON + i] =
2341: vcnModeTable[3 + AHEX + G2ON + i] =
2342: vcnModeTable[3 + AHEX + TXON + G2ON + i] =
2343: vcnModeTable[3 + AHEX + SPON + G2ON + i] =
2344: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + i] =
2345: vcnModeTable[3 + AHEX + G2ON + G1ON + i] =
2346: vcnModeTable[3 + AHEX + TXON + G2ON + G1ON + i] =
2347: vcnModeTable[3 + AHEX + SPON + G2ON + G1ON + i] =
2348: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + G1ON + i] = DrawingMode.XF1t);
2349:
2350:
2351: vcnModeTable[ 3 + G3ON + i] = (
2352: vcnModeTable[3 + G3ON + G1ON + i] =
2353: vcnModeTable[3 + G3ON + G2ON + i] =
2354: vcnModeTable[3 + G3ON + G2ON + G1ON + i] =
2355: vcnModeTable[3 + TXON + G3ON + i] =
2356: vcnModeTable[3 + TXON + G3ON + G1ON + i] =
2357: vcnModeTable[3 + TXON + G3ON + G2ON + i] =
2358: vcnModeTable[3 + TXON + G3ON + G2ON + G1ON + i] =
2359: vcnModeTable[3 + SPON + G3ON + i] =
2360: vcnModeTable[3 + SPON + G3ON + G1ON + i] =
2361: vcnModeTable[3 + SPON + G3ON + G2ON + i] =
2362: vcnModeTable[3 + SPON + G3ON + G2ON + G1ON + i] =
2363: vcnModeTable[3 + SPON + TXON + G3ON + i] =
2364: vcnModeTable[3 + SPON + TXON + G3ON + G1ON + i] =
2365: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + i] =
2366: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2367: vcnModeTable[3 + G4ON + i] =
2368: vcnModeTable[3 + G4ON + G1ON + i] =
2369: vcnModeTable[3 + G4ON + G2ON + i] =
2370: vcnModeTable[3 + G4ON + G2ON + G1ON + i] =
2371: vcnModeTable[3 + TXON + G4ON + i] =
2372: vcnModeTable[3 + TXON + G4ON + G1ON + i] =
2373: vcnModeTable[3 + TXON + G4ON + G2ON + i] =
2374: vcnModeTable[3 + TXON + G4ON + G2ON + G1ON + i] =
2375: vcnModeTable[3 + SPON + G4ON + i] =
2376: vcnModeTable[3 + SPON + G4ON + G1ON + i] =
2377: vcnModeTable[3 + SPON + G4ON + G2ON + i] =
2378: vcnModeTable[3 + SPON + G4ON + G2ON + G1ON + i] =
2379: vcnModeTable[3 + SPON + TXON + G4ON + i] =
2380: vcnModeTable[3 + SPON + TXON + G4ON + G1ON + i] =
2381: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + i] =
2382: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2383: vcnModeTable[3 + G4ON + G3ON + i] =
2384: vcnModeTable[3 + G4ON + G3ON + G1ON + i] =
2385: vcnModeTable[3 + G4ON + G3ON + G2ON + i] =
2386: vcnModeTable[3 + G4ON + G3ON + G2ON + G1ON + i] =
2387: vcnModeTable[3 + TXON + G4ON + G3ON + i] =
2388: vcnModeTable[3 + TXON + G4ON + G3ON + G1ON + i] =
2389: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + i] =
2390: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2391: vcnModeTable[3 + SPON + G4ON + G3ON + i] =
2392: vcnModeTable[3 + SPON + G4ON + G3ON + G1ON + i] =
2393: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + i] =
2394: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + G1ON + i] =
2395: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + i] =
2396: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2397: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2398: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2t);
2399: vcnModeTable[ 3 + AHEX + G3ON + i] = (
2400: vcnModeTable[3 + AHEX + G3ON + G1ON + i] =
2401: vcnModeTable[3 + AHEX + G3ON + G2ON + i] =
2402: vcnModeTable[3 + AHEX + G3ON + G2ON + G1ON + i] =
2403: vcnModeTable[3 + AHEX + TXON + G3ON + i] =
2404: vcnModeTable[3 + AHEX + TXON + G3ON + G1ON + i] =
2405: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + i] =
2406: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2407: vcnModeTable[3 + AHEX + SPON + G3ON + i] =
2408: vcnModeTable[3 + AHEX + SPON + G3ON + G1ON + i] =
2409: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + i] =
2410: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2411: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + i] =
2412: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2413: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2414: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2415: vcnModeTable[3 + AHEX + G4ON + i] =
2416: vcnModeTable[3 + AHEX + G4ON + G1ON + i] =
2417: vcnModeTable[3 + AHEX + G4ON + G2ON + i] =
2418: vcnModeTable[3 + AHEX + G4ON + G2ON + G1ON + i] =
2419: vcnModeTable[3 + AHEX + TXON + G4ON + i] =
2420: vcnModeTable[3 + AHEX + TXON + G4ON + G1ON + i] =
2421: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + i] =
2422: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2423: vcnModeTable[3 + AHEX + SPON + G4ON + i] =
2424: vcnModeTable[3 + AHEX + SPON + G4ON + G1ON + i] =
2425: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + i] =
2426: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2427: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + i] =
2428: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2429: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2430: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2431: vcnModeTable[3 + AHEX + G4ON + G3ON + i] =
2432: vcnModeTable[3 + AHEX + G4ON + G3ON + G1ON + i] =
2433: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + i] =
2434: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + G1ON + i] =
2435: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + i] =
2436: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2437: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2438: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2439: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + i] =
2440: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2441: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2442: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] =
2443: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2444: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2445: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2446: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2t);
2447: }
2448: }
2449:
2450:
2451:
2452: public static void vcnMakeTable3 (int grmm) {
2453:
2454:
2455:
2456: for (int ii = 0b0000_0; ii <= 0b1111_1; ii++) {
2457:
2458: int i = grmm << 6 | (ii & 0b0000_1) << 13 | (ii & 0b1111_0) << 1;
2459: int s = i >> 4 & 3;
2460: int t = i >> 2 & 3;
2461:
2462:
2463:
2464:
2465: vcnModeTable[ i] = DrawingMode.N;
2466: vcnModeTable[ AHEX + i] = DrawingMode.XN;
2467:
2468:
2469: vcnModeTable[ G1ON + i] = (
2470: vcnModeTable[ G2ON + i] =
2471: vcnModeTable[ G2ON + G1ON + i] =
2472: vcnModeTable[ G3ON + i] =
2473: vcnModeTable[ G3ON + G1ON + i] =
2474: vcnModeTable[ G3ON + G2ON + i] =
2475: vcnModeTable[ G3ON + G2ON + G1ON + i] =
2476: vcnModeTable[ G4ON + i] =
2477: vcnModeTable[ G4ON + G1ON + i] =
2478: vcnModeTable[ G4ON + G2ON + i] =
2479: vcnModeTable[ G4ON + G2ON + G1ON + i] =
2480: vcnModeTable[ G4ON + G3ON + i] =
2481: vcnModeTable[ G4ON + G3ON + G1ON + i] =
2482: vcnModeTable[ G4ON + G3ON + G2ON + i] =
2483: vcnModeTable[ G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.Gt);
2484: vcnModeTable[ AHEX + G1ON + i] = (
2485: vcnModeTable[ AHEX + G2ON + i] =
2486: vcnModeTable[ AHEX + G2ON + G1ON + i] =
2487: vcnModeTable[ AHEX + G3ON + i] =
2488: vcnModeTable[ AHEX + G3ON + G1ON + i] =
2489: vcnModeTable[ AHEX + G3ON + G2ON + i] =
2490: vcnModeTable[ AHEX + G3ON + G2ON + G1ON + i] =
2491: vcnModeTable[ AHEX + G4ON + i] =
2492: vcnModeTable[ AHEX + G4ON + G1ON + i] =
2493: vcnModeTable[ AHEX + G4ON + G2ON + i] =
2494: vcnModeTable[ AHEX + G4ON + G2ON + G1ON + i] =
2495: vcnModeTable[ AHEX + G4ON + G3ON + i] =
2496: vcnModeTable[ AHEX + G4ON + G3ON + G1ON + i] =
2497: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + i] =
2498: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGt);
2499:
2500: vcnModeTable[ TXON + i] = DrawingMode.T;
2501: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
2502:
2503:
2504: vcnModeTable[ TXON + G1ON + i] = (
2505: vcnModeTable[ TXON + G2ON + i] =
2506: vcnModeTable[ TXON + G2ON + G1ON + i] =
2507: vcnModeTable[ TXON + G3ON + i] =
2508: vcnModeTable[ TXON + G3ON + G1ON + i] =
2509: vcnModeTable[ TXON + G3ON + G2ON + i] =
2510: vcnModeTable[ TXON + G3ON + G2ON + G1ON + i] =
2511: vcnModeTable[ TXON + G4ON + i] =
2512: vcnModeTable[ TXON + G4ON + G1ON + i] =
2513: vcnModeTable[ TXON + G4ON + G2ON + i] =
2514: vcnModeTable[ TXON + G4ON + G2ON + G1ON + i] =
2515: vcnModeTable[ TXON + G4ON + G3ON + i] =
2516: vcnModeTable[ TXON + G4ON + G3ON + G1ON + i] =
2517: vcnModeTable[ TXON + G4ON + G3ON + G2ON + i] =
2518: vcnModeTable[ TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.GT);
2519: vcnModeTable[ AHEX + TXON + G1ON + i] = (
2520: vcnModeTable[ AHEX + TXON + G2ON + i] =
2521: vcnModeTable[ AHEX + TXON + G2ON + G1ON + i] =
2522: vcnModeTable[ AHEX + TXON + G3ON + i] =
2523: vcnModeTable[ AHEX + TXON + G3ON + G1ON + i] =
2524: vcnModeTable[ AHEX + TXON + G3ON + G2ON + i] =
2525: vcnModeTable[ AHEX + TXON + G3ON + G2ON + G1ON + i] =
2526: vcnModeTable[ AHEX + TXON + G4ON + i] =
2527: vcnModeTable[ AHEX + TXON + G4ON + G1ON + i] =
2528: vcnModeTable[ AHEX + TXON + G4ON + G2ON + i] =
2529: vcnModeTable[ AHEX + TXON + G4ON + G2ON + G1ON + i] =
2530: vcnModeTable[ AHEX + TXON + G4ON + G3ON + i] =
2531: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G1ON + i] =
2532: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + i] =
2533: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGT);
2534:
2535: vcnModeTable[ SPON + i] = DrawingMode.S;
2536: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
2537:
2538:
2539: vcnModeTable[ SPON + G1ON + i] = (
2540: vcnModeTable[ SPON + G2ON + i] =
2541: vcnModeTable[ SPON + G2ON + G1ON + i] =
2542: vcnModeTable[ SPON + G3ON + i] =
2543: vcnModeTable[ SPON + G3ON + G1ON + i] =
2544: vcnModeTable[ SPON + G3ON + G2ON + i] =
2545: vcnModeTable[ SPON + G3ON + G2ON + G1ON + i] =
2546: vcnModeTable[ SPON + G4ON + i] =
2547: vcnModeTable[ SPON + G4ON + G1ON + i] =
2548: vcnModeTable[ SPON + G4ON + G2ON + i] =
2549: vcnModeTable[ SPON + G4ON + G2ON + G1ON + i] =
2550: vcnModeTable[ SPON + G4ON + G3ON + i] =
2551: vcnModeTable[ SPON + G4ON + G3ON + G1ON + i] =
2552: vcnModeTable[ SPON + G4ON + G3ON + G2ON + i] =
2553: vcnModeTable[ SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.GS);
2554: vcnModeTable[ AHEX + SPON + G1ON + i] = (
2555: vcnModeTable[ AHEX + SPON + G2ON + i] =
2556: vcnModeTable[ AHEX + SPON + G2ON + G1ON + i] =
2557: vcnModeTable[ AHEX + SPON + G3ON + i] =
2558: vcnModeTable[ AHEX + SPON + G3ON + G1ON + i] =
2559: vcnModeTable[ AHEX + SPON + G3ON + G2ON + i] =
2560: vcnModeTable[ AHEX + SPON + G3ON + G2ON + G1ON + i] =
2561: vcnModeTable[ AHEX + SPON + G4ON + i] =
2562: vcnModeTable[ AHEX + SPON + G4ON + G1ON + i] =
2563: vcnModeTable[ AHEX + SPON + G4ON + G2ON + i] =
2564: vcnModeTable[ AHEX + SPON + G4ON + G2ON + G1ON + i] =
2565: vcnModeTable[ AHEX + SPON + G4ON + G3ON + i] =
2566: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G1ON + i] =
2567: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + i] =
2568: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGS);
2569:
2570:
2571: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2572: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2573:
2574:
2575: vcnModeTable[ SPON + TXON + G1ON + i] = (
2576: vcnModeTable[ SPON + TXON + G2ON + i] =
2577: vcnModeTable[ SPON + TXON + G2ON + G1ON + i] =
2578: vcnModeTable[ SPON + TXON + G3ON + i] =
2579: vcnModeTable[ SPON + TXON + G3ON + G1ON + i] =
2580: vcnModeTable[ SPON + TXON + G3ON + G2ON + i] =
2581: vcnModeTable[ SPON + TXON + G3ON + G2ON + G1ON + i] =
2582: vcnModeTable[ SPON + TXON + G4ON + i] =
2583: vcnModeTable[ SPON + TXON + G4ON + G1ON + i] =
2584: vcnModeTable[ SPON + TXON + G4ON + G2ON + i] =
2585: vcnModeTable[ SPON + TXON + G4ON + G2ON + G1ON + i] =
2586: vcnModeTable[ SPON + TXON + G4ON + G3ON + i] =
2587: vcnModeTable[ SPON + TXON + G4ON + G3ON + G1ON + i] =
2588: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + i] =
2589: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.GST : DrawingMode.GTS);
2590: vcnModeTable[ AHEX + SPON + TXON + G1ON + i] = (
2591: vcnModeTable[ AHEX + SPON + TXON + G2ON + i] =
2592: vcnModeTable[ AHEX + SPON + TXON + G2ON + G1ON + i] =
2593: vcnModeTable[ AHEX + SPON + TXON + G3ON + i] =
2594: vcnModeTable[ AHEX + SPON + TXON + G3ON + G1ON + i] =
2595: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + i] =
2596: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2597: vcnModeTable[ AHEX + SPON + TXON + G4ON + i] =
2598: vcnModeTable[ AHEX + SPON + TXON + G4ON + G1ON + i] =
2599: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + i] =
2600: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2601: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + i] =
2602: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2603: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2604: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XGST : DrawingMode.XGTS);
2605:
2606:
2607:
2608:
2609: vcnModeTable[ 1 + i] = DrawingMode.N;
2610: vcnModeTable[ 1 + AHEX + i] = DrawingMode.XN;
2611:
2612:
2613: vcnModeTable[ 1 + G1ON + i] = (
2614: vcnModeTable[1 + G2ON + i] =
2615: vcnModeTable[1 + G2ON + G1ON + i] =
2616: vcnModeTable[1 + G3ON + i] =
2617: vcnModeTable[1 + G3ON + G1ON + i] =
2618: vcnModeTable[1 + G3ON + G2ON + i] =
2619: vcnModeTable[1 + G3ON + G2ON + G1ON + i] =
2620: vcnModeTable[1 + G4ON + i] =
2621: vcnModeTable[1 + G4ON + G1ON + i] =
2622: vcnModeTable[1 + G4ON + G2ON + i] =
2623: vcnModeTable[1 + G4ON + G2ON + G1ON + i] =
2624: vcnModeTable[1 + G4ON + G3ON + i] =
2625: vcnModeTable[1 + G4ON + G3ON + G1ON + i] =
2626: vcnModeTable[1 + G4ON + G3ON + G2ON + i] =
2627: vcnModeTable[1 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.Gt);
2628: vcnModeTable[ 1 + AHEX + G1ON + i] = (
2629: vcnModeTable[1 + AHEX + G2ON + i] =
2630: vcnModeTable[1 + AHEX + G2ON + G1ON + i] =
2631: vcnModeTable[1 + AHEX + G3ON + i] =
2632: vcnModeTable[1 + AHEX + G3ON + G1ON + i] =
2633: vcnModeTable[1 + AHEX + G3ON + G2ON + i] =
2634: vcnModeTable[1 + AHEX + G3ON + G2ON + G1ON + i] =
2635: vcnModeTable[1 + AHEX + G4ON + i] =
2636: vcnModeTable[1 + AHEX + G4ON + G1ON + i] =
2637: vcnModeTable[1 + AHEX + G4ON + G2ON + i] =
2638: vcnModeTable[1 + AHEX + G4ON + G2ON + G1ON + i] =
2639: vcnModeTable[1 + AHEX + G4ON + G3ON + i] =
2640: vcnModeTable[1 + AHEX + G4ON + G3ON + G1ON + i] =
2641: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + i] =
2642: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGt);
2643:
2644: vcnModeTable[ 1 + TXON + i] = DrawingMode.T;
2645: vcnModeTable[ 1 + AHEX + TXON + i] = DrawingMode.XT;
2646:
2647:
2648: vcnModeTable[ 1 + TXON + G1ON + i] = (
2649: vcnModeTable[1 + TXON + G2ON + i] =
2650: vcnModeTable[1 + TXON + G2ON + G1ON + i] =
2651: vcnModeTable[1 + TXON + G3ON + i] =
2652: vcnModeTable[1 + TXON + G3ON + G1ON + i] =
2653: vcnModeTable[1 + TXON + G3ON + G2ON + i] =
2654: vcnModeTable[1 + TXON + G3ON + G2ON + G1ON + i] =
2655: vcnModeTable[1 + TXON + G4ON + i] =
2656: vcnModeTable[1 + TXON + G4ON + G1ON + i] =
2657: vcnModeTable[1 + TXON + G4ON + G2ON + i] =
2658: vcnModeTable[1 + TXON + G4ON + G2ON + G1ON + i] =
2659: vcnModeTable[1 + TXON + G4ON + G3ON + i] =
2660: vcnModeTable[1 + TXON + G4ON + G3ON + G1ON + i] =
2661: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + i] =
2662: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.GT : DrawingMode.TGs);
2663: vcnModeTable[ 1 + AHEX + TXON + G1ON + i] = (
2664: vcnModeTable[1 + AHEX + TXON + G2ON + i] =
2665: vcnModeTable[1 + AHEX + TXON + G2ON + G1ON + i] =
2666: vcnModeTable[1 + AHEX + TXON + G3ON + i] =
2667: vcnModeTable[1 + AHEX + TXON + G3ON + G1ON + i] =
2668: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + i] =
2669: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2670: vcnModeTable[1 + AHEX + TXON + G4ON + i] =
2671: vcnModeTable[1 + AHEX + TXON + G4ON + G1ON + i] =
2672: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + i] =
2673: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2674: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + i] =
2675: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2676: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2677: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XGT : DrawingMode.XTGs);
2678:
2679: vcnModeTable[ 1 + SPON + i] = DrawingMode.S;
2680: vcnModeTable[ 1 + AHEX + SPON + i] = DrawingMode.XS;
2681:
2682:
2683: vcnModeTable[ 1 + SPON + G1ON + i] = (
2684: vcnModeTable[1 + SPON + G2ON + i] =
2685: vcnModeTable[1 + SPON + G2ON + G1ON + i] =
2686: vcnModeTable[1 + SPON + G3ON + i] =
2687: vcnModeTable[1 + SPON + G3ON + G1ON + i] =
2688: vcnModeTable[1 + SPON + G3ON + G2ON + i] =
2689: vcnModeTable[1 + SPON + G3ON + G2ON + G1ON + i] =
2690: vcnModeTable[1 + SPON + G4ON + i] =
2691: vcnModeTable[1 + SPON + G4ON + G1ON + i] =
2692: vcnModeTable[1 + SPON + G4ON + G2ON + i] =
2693: vcnModeTable[1 + SPON + G4ON + G2ON + G1ON + i] =
2694: vcnModeTable[1 + SPON + G4ON + G3ON + i] =
2695: vcnModeTable[1 + SPON + G4ON + G3ON + G1ON + i] =
2696: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + i] =
2697: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SGt : DrawingMode.GS);
2698: vcnModeTable[ 1 + AHEX + SPON + G1ON + i] = (
2699: vcnModeTable[1 + AHEX + SPON + G2ON + i] =
2700: vcnModeTable[1 + AHEX + SPON + G2ON + G1ON + i] =
2701: vcnModeTable[1 + AHEX + SPON + G3ON + i] =
2702: vcnModeTable[1 + AHEX + SPON + G3ON + G1ON + i] =
2703: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + i] =
2704: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2705: vcnModeTable[1 + AHEX + SPON + G4ON + i] =
2706: vcnModeTable[1 + AHEX + SPON + G4ON + G1ON + i] =
2707: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + i] =
2708: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2709: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + i] =
2710: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2711: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2712: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSGt : DrawingMode.XGS);
2713:
2714:
2715: vcnModeTable[ 1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2716: vcnModeTable[ 1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2717:
2718:
2719: vcnModeTable[ 1 + SPON + TXON + G1ON + i] = (
2720: vcnModeTable[1 + SPON + TXON + G2ON + i] =
2721: vcnModeTable[1 + SPON + TXON + G2ON + G1ON + i] =
2722: vcnModeTable[1 + SPON + TXON + G3ON + i] =
2723: vcnModeTable[1 + SPON + TXON + G3ON + G1ON + i] =
2724: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + i] =
2725: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2726: vcnModeTable[1 + SPON + TXON + G4ON + i] =
2727: vcnModeTable[1 + SPON + TXON + G4ON + G1ON + i] =
2728: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + i] =
2729: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2730: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + i] =
2731: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2732: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2733: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SGT : DrawingMode.TGS);
2734: vcnModeTable[ 1 + AHEX + SPON + TXON + G1ON + i] = (
2735: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + i] =
2736: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + G1ON + i] =
2737: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + i] =
2738: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2739: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2740: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2741: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + i] =
2742: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2743: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2744: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2745: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2746: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2747: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2748: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSGT : DrawingMode.XTGS);
2749:
2750:
2751:
2752:
2753: vcnModeTable[ 2 + i] = DrawingMode.N;
2754: vcnModeTable[ 2 + AHEX + i] = DrawingMode.XN;
2755:
2756:
2757: vcnModeTable[ 2 + G1ON + i] = (
2758: vcnModeTable[2 + G2ON + i] =
2759: vcnModeTable[2 + G2ON + G1ON + i] =
2760: vcnModeTable[2 + G3ON + i] =
2761: vcnModeTable[2 + G3ON + G1ON + i] =
2762: vcnModeTable[2 + G3ON + G2ON + i] =
2763: vcnModeTable[2 + G3ON + G2ON + G1ON + i] =
2764: vcnModeTable[2 + G4ON + i] =
2765: vcnModeTable[2 + G4ON + G1ON + i] =
2766: vcnModeTable[2 + G4ON + G2ON + i] =
2767: vcnModeTable[2 + G4ON + G2ON + G1ON + i] =
2768: vcnModeTable[2 + G4ON + G3ON + i] =
2769: vcnModeTable[2 + G4ON + G3ON + G1ON + i] =
2770: vcnModeTable[2 + G4ON + G3ON + G2ON + i] =
2771: vcnModeTable[2 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.G);
2772: vcnModeTable[ 2 + AHEX + G1ON + i] = (
2773: vcnModeTable[2 + AHEX + G2ON + i] =
2774: vcnModeTable[2 + AHEX + G2ON + G1ON + i] =
2775: vcnModeTable[2 + AHEX + G3ON + i] =
2776: vcnModeTable[2 + AHEX + G3ON + G1ON + i] =
2777: vcnModeTable[2 + AHEX + G3ON + G2ON + i] =
2778: vcnModeTable[2 + AHEX + G3ON + G2ON + G1ON + i] =
2779: vcnModeTable[2 + AHEX + G4ON + i] =
2780: vcnModeTable[2 + AHEX + G4ON + G1ON + i] =
2781: vcnModeTable[2 + AHEX + G4ON + G2ON + i] =
2782: vcnModeTable[2 + AHEX + G4ON + G2ON + G1ON + i] =
2783: vcnModeTable[2 + AHEX + G4ON + G3ON + i] =
2784: vcnModeTable[2 + AHEX + G4ON + G3ON + G1ON + i] =
2785: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + i] =
2786: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XG);
2787:
2788: vcnModeTable[ 2 + TXON + i] = DrawingMode.T;
2789: vcnModeTable[ 2 + AHEX + TXON + i] = DrawingMode.XT;
2790:
2791:
2792: vcnModeTable[ 2 + TXON + G1ON + i] = (
2793: vcnModeTable[2 + TXON + G2ON + i] =
2794: vcnModeTable[2 + TXON + G2ON + G1ON + i] =
2795: vcnModeTable[2 + TXON + G3ON + i] =
2796: vcnModeTable[2 + TXON + G3ON + G1ON + i] =
2797: vcnModeTable[2 + TXON + G3ON + G2ON + i] =
2798: vcnModeTable[2 + TXON + G3ON + G2ON + G1ON + i] =
2799: vcnModeTable[2 + TXON + G4ON + i] =
2800: vcnModeTable[2 + TXON + G4ON + G1ON + i] =
2801: vcnModeTable[2 + TXON + G4ON + G2ON + i] =
2802: vcnModeTable[2 + TXON + G4ON + G2ON + G1ON + i] =
2803: vcnModeTable[2 + TXON + G4ON + G3ON + i] =
2804: vcnModeTable[2 + TXON + G4ON + G3ON + G1ON + i] =
2805: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + i] =
2806: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.TG);
2807: vcnModeTable[ 2 + AHEX + TXON + G1ON + i] = (
2808: vcnModeTable[2 + AHEX + TXON + G2ON + i] =
2809: vcnModeTable[2 + AHEX + TXON + G2ON + G1ON + i] =
2810: vcnModeTable[2 + AHEX + TXON + G3ON + i] =
2811: vcnModeTable[2 + AHEX + TXON + G3ON + G1ON + i] =
2812: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + i] =
2813: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2814: vcnModeTable[2 + AHEX + TXON + G4ON + i] =
2815: vcnModeTable[2 + AHEX + TXON + G4ON + G1ON + i] =
2816: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + i] =
2817: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2818: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + i] =
2819: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2820: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2821: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XTG);
2822:
2823: vcnModeTable[ 2 + SPON + i] = DrawingMode.S;
2824: vcnModeTable[ 2 + AHEX + SPON + i] = DrawingMode.XS;
2825:
2826:
2827: vcnModeTable[ 2 + SPON + G1ON + i] = (
2828: vcnModeTable[2 + SPON + G2ON + i] =
2829: vcnModeTable[2 + SPON + G2ON + G1ON + i] =
2830: vcnModeTable[2 + SPON + G3ON + i] =
2831: vcnModeTable[2 + SPON + G3ON + G1ON + i] =
2832: vcnModeTable[2 + SPON + G3ON + G2ON + i] =
2833: vcnModeTable[2 + SPON + G3ON + G2ON + G1ON + i] =
2834: vcnModeTable[2 + SPON + G4ON + i] =
2835: vcnModeTable[2 + SPON + G4ON + G1ON + i] =
2836: vcnModeTable[2 + SPON + G4ON + G2ON + i] =
2837: vcnModeTable[2 + SPON + G4ON + G2ON + G1ON + i] =
2838: vcnModeTable[2 + SPON + G4ON + G3ON + i] =
2839: vcnModeTable[2 + SPON + G4ON + G3ON + G1ON + i] =
2840: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + i] =
2841: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.SG);
2842: vcnModeTable[ 2 + AHEX + SPON + G1ON + i] = (
2843: vcnModeTable[2 + AHEX + SPON + G2ON + i] =
2844: vcnModeTable[2 + AHEX + SPON + G2ON + G1ON + i] =
2845: vcnModeTable[2 + AHEX + SPON + G3ON + i] =
2846: vcnModeTable[2 + AHEX + SPON + G3ON + G1ON + i] =
2847: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + i] =
2848: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2849: vcnModeTable[2 + AHEX + SPON + G4ON + i] =
2850: vcnModeTable[2 + AHEX + SPON + G4ON + G1ON + i] =
2851: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + i] =
2852: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2853: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + i] =
2854: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2855: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2856: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XSG);
2857:
2858:
2859: vcnModeTable[ 2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2860: vcnModeTable[ 2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2861:
2862:
2863: vcnModeTable[ 2 + SPON + TXON + G1ON + i] = (
2864: vcnModeTable[2 + SPON + TXON + G2ON + i] =
2865: vcnModeTable[2 + SPON + TXON + G2ON + G1ON + i] =
2866: vcnModeTable[2 + SPON + TXON + G3ON + i] =
2867: vcnModeTable[2 + SPON + TXON + G3ON + G1ON + i] =
2868: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + i] =
2869: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2870: vcnModeTable[2 + SPON + TXON + G4ON + i] =
2871: vcnModeTable[2 + SPON + TXON + G4ON + G1ON + i] =
2872: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + i] =
2873: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2874: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + i] =
2875: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2876: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2877: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STG : DrawingMode.TSG);
2878: vcnModeTable[ 2 + AHEX + SPON + TXON + G1ON + i] = (
2879: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + i] =
2880: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + G1ON + i] =
2881: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + i] =
2882: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2883: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2884: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2885: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + i] =
2886: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2887: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2888: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2889: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2890: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2891: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2892: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTG : DrawingMode.XTSG);
2893:
2894:
2895:
2896:
2897: vcnModeTable[ 3 + i] = (
2898: vcnModeTable[3 + TXON + i] =
2899: vcnModeTable[3 + SPON + i] =
2900: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
2901: vcnModeTable[ 3 + AHEX + i] = (
2902: vcnModeTable[3 + AHEX + TXON + i] =
2903: vcnModeTable[3 + AHEX + SPON + i] =
2904: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
2905:
2906:
2907: vcnModeTable[ 3 + G1ON + i] = (
2908: vcnModeTable[3 + G2ON + i] =
2909: vcnModeTable[3 + G2ON + G1ON + i] =
2910: vcnModeTable[3 + G3ON + i] =
2911: vcnModeTable[3 + G3ON + G1ON + i] =
2912: vcnModeTable[3 + G3ON + G2ON + i] =
2913: vcnModeTable[3 + G3ON + G2ON + G1ON + i] =
2914: vcnModeTable[3 + G4ON + i] =
2915: vcnModeTable[3 + G4ON + G1ON + i] =
2916: vcnModeTable[3 + G4ON + G2ON + i] =
2917: vcnModeTable[3 + G4ON + G2ON + G1ON + i] =
2918: vcnModeTable[3 + G4ON + G3ON + i] =
2919: vcnModeTable[3 + G4ON + G3ON + G1ON + i] =
2920: vcnModeTable[3 + G4ON + G3ON + G2ON + i] =
2921: vcnModeTable[3 + G4ON + G3ON + G2ON + G1ON + i] =
2922: vcnModeTable[3 + TXON + G1ON + i] =
2923: vcnModeTable[3 + TXON + G2ON + i] =
2924: vcnModeTable[3 + TXON + G2ON + G1ON + i] =
2925: vcnModeTable[3 + TXON + G3ON + i] =
2926: vcnModeTable[3 + TXON + G3ON + G1ON + i] =
2927: vcnModeTable[3 + TXON + G3ON + G2ON + i] =
2928: vcnModeTable[3 + TXON + G3ON + G2ON + G1ON + i] =
2929: vcnModeTable[3 + TXON + G4ON + i] =
2930: vcnModeTable[3 + TXON + G4ON + G1ON + i] =
2931: vcnModeTable[3 + TXON + G4ON + G2ON + i] =
2932: vcnModeTable[3 + TXON + G4ON + G2ON + G1ON + i] =
2933: vcnModeTable[3 + TXON + G4ON + G3ON + i] =
2934: vcnModeTable[3 + TXON + G4ON + G3ON + G1ON + i] =
2935: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + i] =
2936: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2937: vcnModeTable[3 + SPON + G1ON + i] =
2938: vcnModeTable[3 + SPON + G2ON + i] =
2939: vcnModeTable[3 + SPON + G2ON + G1ON + i] =
2940: vcnModeTable[3 + SPON + G3ON + i] =
2941: vcnModeTable[3 + SPON + G3ON + G1ON + i] =
2942: vcnModeTable[3 + SPON + G3ON + G2ON + i] =
2943: vcnModeTable[3 + SPON + G3ON + G2ON + G1ON + i] =
2944: vcnModeTable[3 + SPON + G4ON + i] =
2945: vcnModeTable[3 + SPON + G4ON + G1ON + i] =
2946: vcnModeTable[3 + SPON + G4ON + G2ON + i] =
2947: vcnModeTable[3 + SPON + G4ON + G2ON + G1ON + i] =
2948: vcnModeTable[3 + SPON + G4ON + G3ON + i] =
2949: vcnModeTable[3 + SPON + G4ON + G3ON + G1ON + i] =
2950: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + i] =
2951: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + G1ON + i] =
2952: vcnModeTable[3 + SPON + TXON + G1ON + i] =
2953: vcnModeTable[3 + SPON + TXON + G2ON + i] =
2954: vcnModeTable[3 + SPON + TXON + G2ON + G1ON + i] =
2955: vcnModeTable[3 + SPON + TXON + G3ON + i] =
2956: vcnModeTable[3 + SPON + TXON + G3ON + G1ON + i] =
2957: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + i] =
2958: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2959: vcnModeTable[3 + SPON + TXON + G4ON + i] =
2960: vcnModeTable[3 + SPON + TXON + G4ON + G1ON + i] =
2961: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + i] =
2962: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2963: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + i] =
2964: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2965: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2966: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.Gt);
2967: vcnModeTable[ 3 + AHEX + G1ON + i] = (
2968: vcnModeTable[3 + AHEX + G2ON + i] =
2969: vcnModeTable[3 + AHEX + G2ON + G1ON + i] =
2970: vcnModeTable[3 + AHEX + G3ON + i] =
2971: vcnModeTable[3 + AHEX + G3ON + G1ON + i] =
2972: vcnModeTable[3 + AHEX + G3ON + G2ON + i] =
2973: vcnModeTable[3 + AHEX + G3ON + G2ON + G1ON + i] =
2974: vcnModeTable[3 + AHEX + G4ON + i] =
2975: vcnModeTable[3 + AHEX + G4ON + G1ON + i] =
2976: vcnModeTable[3 + AHEX + G4ON + G2ON + i] =
2977: vcnModeTable[3 + AHEX + G4ON + G2ON + G1ON + i] =
2978: vcnModeTable[3 + AHEX + G4ON + G3ON + i] =
2979: vcnModeTable[3 + AHEX + G4ON + G3ON + G1ON + i] =
2980: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + i] =
2981: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + G1ON + i] =
2982: vcnModeTable[3 + AHEX + TXON + G1ON + i] =
2983: vcnModeTable[3 + AHEX + TXON + G2ON + i] =
2984: vcnModeTable[3 + AHEX + TXON + G2ON + G1ON + i] =
2985: vcnModeTable[3 + AHEX + TXON + G3ON + i] =
2986: vcnModeTable[3 + AHEX + TXON + G3ON + G1ON + i] =
2987: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + i] =
2988: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2989: vcnModeTable[3 + AHEX + TXON + G4ON + i] =
2990: vcnModeTable[3 + AHEX + TXON + G4ON + G1ON + i] =
2991: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + i] =
2992: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2993: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + i] =
2994: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2995: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2996: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2997: vcnModeTable[3 + AHEX + SPON + G1ON + i] =
2998: vcnModeTable[3 + AHEX + SPON + G2ON + i] =
2999: vcnModeTable[3 + AHEX + SPON + G2ON + G1ON + i] =
3000: vcnModeTable[3 + AHEX + SPON + G3ON + i] =
3001: vcnModeTable[3 + AHEX + SPON + G3ON + G1ON + i] =
3002: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + i] =
3003: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
3004: vcnModeTable[3 + AHEX + SPON + G4ON + i] =
3005: vcnModeTable[3 + AHEX + SPON + G4ON + G1ON + i] =
3006: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + i] =
3007: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
3008: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + i] =
3009: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
3010: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
3011: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] =
3012: vcnModeTable[3 + AHEX + SPON + TXON + G1ON + i] =
3013: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + i] =
3014: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + G1ON + i] =
3015: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + i] =
3016: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G1ON + i] =
3017: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + i] =
3018: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
3019: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + i] =
3020: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G1ON + i] =
3021: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + i] =
3022: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
3023: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + i] =
3024: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
3025: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
3026: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGt);
3027: }
3028: }
3029:
3030:
3031:
3032: public static void vcnMakeTable4 (int grmm) {
3033:
3034:
3035:
3036: for (int ii = 0b0000_0000; ii <= 0b1111_1111; ii++) {
3037:
3038: int i = grmm << 6 | (ii & 0b0000_1111) << 9 | (ii & 0b1111_0000) >> 2;
3039: int s = i >> 4 & 3;
3040: int t = i >> 2 & 3;
3041:
3042:
3043:
3044:
3045: vcnModeTable[ i] = DrawingMode.N;
3046: vcnModeTable[ AHEX + i] = DrawingMode.XN;
3047:
3048:
3049: vcnModeTable[ GXON + i] = DrawingMode.Ht;
3050: vcnModeTable[ AHEX + GXON + i] = DrawingMode.XHt;
3051:
3052: vcnModeTable[ TXON + i] = DrawingMode.T;
3053: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
3054:
3055:
3056: vcnModeTable[ TXON + GXON + i] = DrawingMode.HT;
3057: vcnModeTable[ AHEX + TXON + GXON + i] = DrawingMode.XHT;
3058:
3059: vcnModeTable[ SPON + i] = DrawingMode.S;
3060: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
3061:
3062:
3063: vcnModeTable[ SPON + GXON + i] = DrawingMode.HS;
3064: vcnModeTable[ AHEX + SPON + GXON + i] = DrawingMode.XHS;
3065:
3066:
3067: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3068: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3069:
3070:
3071: vcnModeTable[ SPON + TXON + GXON + i] = s < t ? DrawingMode.HST : DrawingMode.HTS;
3072: vcnModeTable[ AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XHST : DrawingMode.XHTS;
3073:
3074:
3075:
3076:
3077: vcnModeTable[1 + i] = DrawingMode.N;
3078: vcnModeTable[1 + AHEX + i] = DrawingMode.XN;
3079:
3080:
3081: vcnModeTable[1 + GXON + i] = DrawingMode.Ht;
3082: vcnModeTable[1 + AHEX + GXON + i] = DrawingMode.XHt;
3083:
3084: vcnModeTable[1 + TXON + i] = DrawingMode.T;
3085: vcnModeTable[1 + AHEX + TXON + i] = DrawingMode.XT;
3086:
3087:
3088: vcnModeTable[1 + TXON + GXON + i] = s < t ? DrawingMode.HT : DrawingMode.THs;
3089: vcnModeTable[1 + AHEX + TXON + GXON + i] = s < t ? DrawingMode.XHT : DrawingMode.XTHs;
3090:
3091: vcnModeTable[1 + SPON + i] = DrawingMode.S;
3092: vcnModeTable[1 + AHEX + SPON + i] = DrawingMode.XS;
3093:
3094:
3095: vcnModeTable[1 + SPON + GXON + i] = s < t ? DrawingMode.SHt : DrawingMode.HS;
3096: vcnModeTable[1 + AHEX + SPON + GXON + i] = s < t ? DrawingMode.XSHt : DrawingMode.XHS;
3097:
3098:
3099: vcnModeTable[1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3100: vcnModeTable[1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3101:
3102:
3103: vcnModeTable[1 + SPON + TXON + GXON + i] = s < t ? DrawingMode.SHT : DrawingMode.THS;
3104: vcnModeTable[1 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSHT : DrawingMode.XTHS;
3105:
3106:
3107:
3108:
3109: vcnModeTable[2 + i] = DrawingMode.N;
3110: vcnModeTable[2 + AHEX + i] = DrawingMode.XN;
3111:
3112:
3113: vcnModeTable[2 + GXON + i] = DrawingMode.H;
3114: vcnModeTable[2 + AHEX + GXON + i] = DrawingMode.XH;
3115:
3116: vcnModeTable[2 + TXON + i] = DrawingMode.T;
3117: vcnModeTable[2 + AHEX + TXON + i] = DrawingMode.XT;
3118:
3119:
3120: vcnModeTable[2 + TXON + GXON + i] = DrawingMode.TH;
3121: vcnModeTable[2 + AHEX + TXON + GXON + i] = DrawingMode.XTH;
3122:
3123: vcnModeTable[2 + SPON + i] = DrawingMode.S;
3124: vcnModeTable[2 + AHEX + SPON + i] = DrawingMode.XS;
3125:
3126:
3127: vcnModeTable[2 + SPON + GXON + i] = DrawingMode.SH;
3128: vcnModeTable[2 + AHEX + SPON + GXON + i] = DrawingMode.XSH;
3129:
3130:
3131: vcnModeTable[2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3132: vcnModeTable[2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3133:
3134:
3135: vcnModeTable[2 + SPON + TXON + GXON + i] = s < t ? DrawingMode.STH : DrawingMode.TSH;
3136: vcnModeTable[2 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSTH : DrawingMode.XTSH;
3137:
3138:
3139:
3140:
3141: vcnModeTable[ 3 + i] = (
3142: vcnModeTable[3 + TXON + i] =
3143: vcnModeTable[3 + SPON + i] =
3144: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
3145: vcnModeTable[ 3 + AHEX + i] = (
3146: vcnModeTable[3 + AHEX + TXON + i] =
3147: vcnModeTable[3 + AHEX + SPON + i] =
3148: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
3149:
3150:
3151: vcnModeTable[ 3 + GXON + i] = (
3152: vcnModeTable[3 + TXON + GXON + i] =
3153: vcnModeTable[3 + SPON + GXON + i] =
3154: vcnModeTable[3 + SPON + TXON + GXON + i] = DrawingMode.Ht);
3155: vcnModeTable[ 3 + AHEX + GXON + i] = (
3156: vcnModeTable[3 + AHEX + TXON + GXON + i] =
3157: vcnModeTable[3 + AHEX + SPON + GXON + i] =
3158: vcnModeTable[3 + AHEX + SPON + TXON + GXON + i] = DrawingMode.XHt);
3159: }
3160: }
3161:
3162:
3163:
3164: public static void vcnMakeTable5 (int grmm) {
3165:
3166:
3167:
3168: for (int ii = 0b0000_0000; ii <= 0b1111_1111; ii++) {
3169:
3170: int i = grmm << 6 | (ii & 0b0000_1111) << 9 | (ii & 0b1111_0000) >> 2;
3171: int s = i >> 4 & 3;
3172: int t = i >> 2 & 3;
3173:
3174:
3175:
3176:
3177: vcnModeTable[ i] = DrawingMode.N;
3178: vcnModeTable[ AHEX + i] = DrawingMode.XN;
3179:
3180:
3181: vcnModeTable[ GXON + i] = DrawingMode.It;
3182: vcnModeTable[ AHEX + GXON + i] = DrawingMode.XIt;
3183:
3184: vcnModeTable[ TXON + i] = DrawingMode.T;
3185: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
3186:
3187:
3188: vcnModeTable[ TXON + GXON + i] = DrawingMode.IT;
3189: vcnModeTable[ AHEX + TXON + GXON + i] = DrawingMode.XIT;
3190:
3191: vcnModeTable[ SPON + i] = DrawingMode.S;
3192: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
3193:
3194:
3195: vcnModeTable[ SPON + GXON + i] = DrawingMode.IS;
3196: vcnModeTable[ AHEX + SPON + GXON + i] = DrawingMode.XIS;
3197:
3198:
3199: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3200: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3201:
3202:
3203: vcnModeTable[ SPON + TXON + GXON + i] = s < t ? DrawingMode.IST : DrawingMode.ITS;
3204: vcnModeTable[ AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XIST : DrawingMode.XITS;
3205:
3206:
3207:
3208:
3209: vcnModeTable[1 + i] = DrawingMode.N;
3210: vcnModeTable[1 + AHEX + i] = DrawingMode.XN;
3211:
3212:
3213: vcnModeTable[1 + GXON + i] = DrawingMode.It;
3214: vcnModeTable[1 + AHEX + GXON + i] = DrawingMode.XIt;
3215:
3216: vcnModeTable[1 + TXON + i] = DrawingMode.T;
3217: vcnModeTable[1 + AHEX + TXON + i] = DrawingMode.XT;
3218:
3219:
3220: vcnModeTable[1 + TXON + GXON + i] = s < t ? DrawingMode.IT : DrawingMode.TIs;
3221: vcnModeTable[1 + AHEX + TXON + GXON + i] = s < t ? DrawingMode.XIT : DrawingMode.XTIs;
3222:
3223: vcnModeTable[1 + SPON + i] = DrawingMode.S;
3224: vcnModeTable[1 + AHEX + SPON + i] = DrawingMode.XS;
3225:
3226:
3227: vcnModeTable[1 + SPON + GXON + i] = s < t ? DrawingMode.SIt : DrawingMode.IS;
3228: vcnModeTable[1 + AHEX + SPON + GXON + i] = s < t ? DrawingMode.XSIt : DrawingMode.XIS;
3229:
3230:
3231: vcnModeTable[1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3232: vcnModeTable[1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3233:
3234:
3235: vcnModeTable[1 + SPON + TXON + GXON + i] = s < t ? DrawingMode.SIT : DrawingMode.TIS;
3236: vcnModeTable[1 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSIT : DrawingMode.XTIS;
3237:
3238:
3239:
3240:
3241: vcnModeTable[2 + i] = DrawingMode.N;
3242: vcnModeTable[2 + AHEX + i] = DrawingMode.XN;
3243:
3244:
3245: vcnModeTable[2 + GXON + i] = DrawingMode.I;
3246: vcnModeTable[2 + AHEX + GXON + i] = DrawingMode.XI;
3247:
3248: vcnModeTable[2 + TXON + i] = DrawingMode.T;
3249: vcnModeTable[2 + AHEX + TXON + i] = DrawingMode.XT;
3250:
3251:
3252: vcnModeTable[2 + TXON + GXON + i] = DrawingMode.TI;
3253: vcnModeTable[2 + AHEX + TXON + GXON + i] = DrawingMode.XTI;
3254:
3255: vcnModeTable[2 + SPON + i] = DrawingMode.S;
3256: vcnModeTable[2 + AHEX + SPON + i] = DrawingMode.XS;
3257:
3258:
3259: vcnModeTable[2 + SPON + GXON + i] = DrawingMode.SI;
3260: vcnModeTable[2 + AHEX + SPON + GXON + i] = DrawingMode.XSI;
3261:
3262:
3263: vcnModeTable[2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3264: vcnModeTable[2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3265:
3266:
3267: vcnModeTable[2 + SPON + TXON + GXON + i] = s < t ? DrawingMode.STI : DrawingMode.TSI;
3268: vcnModeTable[2 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSTI : DrawingMode.XTSI;
3269:
3270:
3271:
3272:
3273: vcnModeTable[ 3 + i] = (
3274: vcnModeTable[3 + TXON + i] =
3275: vcnModeTable[3 + SPON + i] =
3276: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
3277: vcnModeTable[ 3 + AHEX + i] = (
3278: vcnModeTable[3 + AHEX + TXON + i] =
3279: vcnModeTable[3 + AHEX + SPON + i] =
3280: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
3281:
3282:
3283: vcnModeTable[ 3 + GXON + i] = (
3284: vcnModeTable[3 + TXON + GXON + i] =
3285: vcnModeTable[3 + SPON + GXON + i] =
3286: vcnModeTable[3 + SPON + TXON + GXON + i] = DrawingMode.It);
3287: vcnModeTable[ 3 + AHEX + GXON + i] = (
3288: vcnModeTable[3 + AHEX + TXON + GXON + i] =
3289: vcnModeTable[3 + AHEX + SPON + GXON + i] =
3290: vcnModeTable[3 + AHEX + SPON + TXON + GXON + i] = DrawingMode.XIt);
3291: }
3292: }
3293:
3294:
3295:
3296: public static void vcnMakeTable7 (int grmm) {
3297:
3298:
3299:
3300: for (int ii = 0b0000_0000; ii <= 0b1111_1111; ii++) {
3301:
3302: int i = grmm << 6 | (ii & 0b0000_1111) << 9 | (ii & 0b1111_0000) >> 2;
3303: int s = i >> 4 & 3;
3304: int t = i >> 2 & 3;
3305:
3306:
3307:
3308:
3309: vcnModeTable[ i] = DrawingMode.N;
3310: vcnModeTable[ AHEX + i] = DrawingMode.XN;
3311:
3312:
3313: vcnModeTable[ GXON + i] = DrawingMode.Jt;
3314: vcnModeTable[ AHEX + GXON + i] = DrawingMode.XJt;
3315:
3316: vcnModeTable[ TXON + i] = DrawingMode.T;
3317: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
3318:
3319:
3320: vcnModeTable[ TXON + GXON + i] = DrawingMode.JT;
3321: vcnModeTable[ AHEX + TXON + GXON + i] = DrawingMode.XJT;
3322:
3323: vcnModeTable[ SPON + i] = DrawingMode.S;
3324: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
3325:
3326:
3327: vcnModeTable[ SPON + GXON + i] = DrawingMode.JS;
3328: vcnModeTable[ AHEX + SPON + GXON + i] = DrawingMode.XJS;
3329:
3330:
3331: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3332: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3333:
3334:
3335: vcnModeTable[ SPON + TXON + GXON + i] = s < t ? DrawingMode.JST : DrawingMode.JTS;
3336: vcnModeTable[ AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XJST : DrawingMode.XJTS;
3337:
3338:
3339:
3340:
3341: vcnModeTable[1 + i] = DrawingMode.N;
3342: vcnModeTable[1 + AHEX + i] = DrawingMode.XN;
3343:
3344:
3345: vcnModeTable[1 + GXON + i] = DrawingMode.Jt;
3346: vcnModeTable[1 + AHEX + GXON + i] = DrawingMode.XJt;
3347:
3348: vcnModeTable[1 + TXON + i] = DrawingMode.T;
3349: vcnModeTable[1 + AHEX + TXON + i] = DrawingMode.XT;
3350:
3351:
3352: vcnModeTable[1 + TXON + GXON + i] = s < t ? DrawingMode.JT : DrawingMode.TJs;
3353: vcnModeTable[1 + AHEX + TXON + GXON + i] = s < t ? DrawingMode.XJT : DrawingMode.XTJs;
3354:
3355: vcnModeTable[1 + SPON + i] = DrawingMode.S;
3356: vcnModeTable[1 + AHEX + SPON + i] = DrawingMode.XS;
3357:
3358:
3359: vcnModeTable[1 + SPON + GXON + i] = s < t ? DrawingMode.SJt : DrawingMode.JS;
3360: vcnModeTable[1 + AHEX + SPON + GXON + i] = s < t ? DrawingMode.XSJt : DrawingMode.XJS;
3361:
3362:
3363: vcnModeTable[1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3364: vcnModeTable[1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3365:
3366:
3367: vcnModeTable[1 + SPON + TXON + GXON + i] = s < t ? DrawingMode.SJT : DrawingMode.TJS;
3368: vcnModeTable[1 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSJT : DrawingMode.XTJS;
3369:
3370:
3371:
3372:
3373: vcnModeTable[2 + i] = DrawingMode.N;
3374: vcnModeTable[2 + AHEX + i] = DrawingMode.XN;
3375:
3376:
3377: vcnModeTable[2 + GXON + i] = DrawingMode.J;
3378: vcnModeTable[2 + AHEX + GXON + i] = DrawingMode.XJ;
3379:
3380: vcnModeTable[2 + TXON + i] = DrawingMode.T;
3381: vcnModeTable[2 + AHEX + TXON + i] = DrawingMode.XT;
3382:
3383:
3384: vcnModeTable[2 + TXON + GXON + i] = DrawingMode.TJ;
3385: vcnModeTable[2 + AHEX + TXON + GXON + i] = DrawingMode.XTJ;
3386:
3387: vcnModeTable[2 + SPON + i] = DrawingMode.S;
3388: vcnModeTable[2 + AHEX + SPON + i] = DrawingMode.XS;
3389:
3390:
3391: vcnModeTable[2 + SPON + GXON + i] = DrawingMode.SJ;
3392: vcnModeTable[2 + AHEX + SPON + GXON + i] = DrawingMode.XSJ;
3393:
3394:
3395: vcnModeTable[2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3396: vcnModeTable[2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3397:
3398:
3399: vcnModeTable[2 + SPON + TXON + GXON + i] = s < t ? DrawingMode.STJ : DrawingMode.TSJ;
3400: vcnModeTable[2 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSTJ : DrawingMode.XTSJ;
3401:
3402:
3403:
3404:
3405: vcnModeTable[ 3 + i] = (
3406: vcnModeTable[3 + TXON + i] =
3407: vcnModeTable[3 + SPON + i] =
3408: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
3409: vcnModeTable[ 3 + AHEX + i] = (
3410: vcnModeTable[3 + AHEX + TXON + i] =
3411: vcnModeTable[3 + AHEX + SPON + i] =
3412: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
3413:
3414:
3415: vcnModeTable[ 3 + GXON + i] = (
3416: vcnModeTable[3 + TXON + GXON + i] =
3417: vcnModeTable[3 + SPON + GXON + i] =
3418: vcnModeTable[3 + SPON + TXON + GXON + i] = DrawingMode.Jt);
3419: vcnModeTable[ 3 + AHEX + GXON + i] = (
3420: vcnModeTable[3 + AHEX + TXON + GXON + i] =
3421: vcnModeTable[3 + AHEX + SPON + GXON + i] =
3422: vcnModeTable[3 + AHEX + SPON + TXON + GXON + i] = DrawingMode.XJt);
3423: }
3424: }
3425:
3426:
3427:
3428: public static void vcnReset () {
3429: vcnReg1Port = 0;
3430: vcnReg1Mask = 0;
3431: vcnReg1Test = 0;
3432: vcnReg1Curr = 0;
3433: vcnReg2Port = 0;
3434: vcnReg2Mask = 0;
3435: vcnReg2Test = 0;
3436: vcnReg2Curr = 0;
3437: vcnReg3Port = 0;
3438: vcnReg3Mask = 0;
3439: vcnReg3Test = 0;
3440: vcnReg3Curr = 0;
3441: vcnPalTbl = vcnPalBase[VCN_CONTRAST_SCALE * 15];
3442: vcnCurrentScaledContrast = VCN_CONTRAST_SCALE * 15;
3443: vcnTargetContrastPort = 15;
3444: vcnTargetContrastMask = 0;
3445: vcnTargetContrastTest = 15;
3446: vcnTargetContrastCurr = 15;
3447: vcnTargetScaledContrast = VCN_CONTRAST_SCALE * 15;
3448: vcnMode = DrawingMode.N;
3449: vcnHidden1st = 0;
3450: vcnHidden2nd = 0;
3451: vcnHidden3rd = 0;
3452: vcnHidden4th = 0;
3453: vcnVisible1st = 0x400000;
3454: vcnVisible2nd = 0x400000;
3455: vcnVisible3rd = 0x400000;
3456: vcnVisible4th = 0x400000;
3457:
3458: if (CRTC.CRT_EXTENDED_GRAPHIC) {
3459: if (CRTC.crtExtendedGraphicRequest) {
3460: vcnMakeTable5 (5);
3461: vcnMakeTable7 (6);
3462: vcnMakeTable7 (7);
3463: } else {
3464: vcnMakeTable4 (5);
3465: vcnMakeTable4 (6);
3466: vcnMakeTable4 (7);
3467: }
3468: }
3469:
3470: }
3471:
3472:
3473:
3474: public static void vcnUpdateMode () {
3475: DrawingMode newMode = vcnModeTable[-(vcnReg3Curr & 0x5000) & 0x10000 | (char) (vcnReg3Curr << 9) | vcnReg1Curr << 6 | vcnReg2Curr >> 8];
3476: if (vcnMode != newMode) {
3477: if (VCN_LOG_TRANSITION) {
3478: vcnLogTransition (vcnMode, newMode);
3479: }
3480: vcnMode = newMode;
3481: }
3482:
3483: if (vcnReg1Curr < 4) {
3484: boolean on1st, on2nd, on3rd, on4th;
3485: if (vcnReg1Curr == 0) {
3486: on1st = (vcnReg3Curr & 1) != 0;
3487: on2nd = (vcnReg3Curr & 2 ) != 0;
3488: on3rd = (vcnReg3Curr & 4 ) != 0;
3489: on4th = (vcnReg3Curr & 8 ) != 0;
3490: } else if (vcnReg1Curr == 1) {
3491: on2nd = on1st = (vcnReg3Curr & 2 + 1) != 0;
3492: on4th = on3rd = (vcnReg3Curr & 8 + 4 ) != 0;
3493: } else {
3494: on4th = on3rd = on2nd = on1st = (vcnReg3Curr & 8 + 4 + 2 + 1) != 0;
3495: }
3496: vcnHidden1st = ((vcnReg2Curr & 3 ) << 18 );
3497: vcnHidden2nd = ((vcnReg2Curr & 3 << 2) << 18 - 2);
3498: vcnHidden3rd = ((vcnReg2Curr & 3 << 4) << 18 - 4);
3499: vcnHidden4th = ((vcnReg2Curr & 3 << 6) << 18 - 6);
3500: vcnVisible1st = on1st ? vcnHidden1st : 0x400000;
3501: vcnVisible2nd = on2nd ? vcnHidden2nd : 0x400000;
3502: vcnVisible3rd = on3rd ? vcnHidden3rd : 0x400000;
3503: vcnVisible4th = on4th ? vcnHidden4th : 0x400000;
3504: }
3505: CRTC.crtAllStamp += 2;
3506: }
3507:
3508:
3509:
3510: public static void vcnSetContrast (int contrast) {
3511: vcnPalTbl = vcnPalBase[contrast];
3512: for (int i = 0; i < 256; i++) {
3513: vcnPal32G8[i] = vcnPalTbl[vcnPal16G8[i]];
3514: vcnPal32TS[i] = vcnPalTbl[vcnPal16TS[i]];
3515: }
3516: CRTC.crtAllStamp += 2;
3517: }
3518:
3519: public static void vcnLogTransition (DrawingMode oldMode, DrawingMode newMode) {
3520: if (VCN_LOG_TRANSITION) {
3521: StringBuilder sb = new StringBuilder ();
3522: sb.append (oldMode.name ());
3523: sb.append (" → ");
3524: sb.append (newMode.name ());
3525: System.out.println (sb.toString ());
3526: }
3527: }
3528:
3529:
3530:
3531: public static void vcnReportUnimplemented (DrawingMode mode) {
3532: String name = vcnGetName (new StringBuilder ().append (mode.name ()).append ('(')).append (')').toString ();
3533: if (!vcnUnimplementedSet.contains (name)) {
3534: System.out.println (new StringBuilder ().append (Multilingual.mlnJapanese ? "未実装 " : "Unimplemented ").append (name).toString ());
3535: vcnUnimplementedSet.add (name);
3536: }
3537: }
3538:
3539:
3540:
3541:
3542:
3543: public static StringBuilder vcnGetName (StringBuilder sb) {
3544:
3545: String sprite = (vcnReg3Curr & 1 << 6) != 0 ? "S" : "s";
3546:
3547: String text = (vcnReg3Curr & 1 << 5) != 0 ? "T" : "t";
3548:
3549: String spriteText1 = "";
3550: String spriteText2 = "";
3551: if ((vcnReg2Curr & 3 << 12) < (vcnReg2Curr << 12 - 10 & 3 << 12)) {
3552: spriteText1 = sprite;
3553: spriteText2 = text;
3554: } else {
3555: spriteText1 = text;
3556: spriteText2 = sprite;
3557: }
3558:
3559: String graphic = ((vcnReg1Curr & 0b100) != 0 ?
3560: (vcnReg1Curr & 0b010) != 0 ?
3561: (vcnReg3Curr & 0b10000) != 0 ? "J" :
3562: "j" :
3563: (vcnReg1Curr & 0b001) != 0 ?
3564: (vcnReg3Curr & 0b10000) != 0 ? "I" :
3565: "i" :
3566:
3567: (vcnReg3Curr & 0b10000) != 0 ? "H" :
3568: "h" :
3569:
3570: (vcnReg1Curr & 0b010) != 0 ?
3571: (vcnReg3Curr & 0b1111) != 0 ? "G" :
3572: "g" :
3573: (vcnReg1Curr & 0b001) != 0 ?
3574: (vcnReg3Curr & 0b1100) != 0 ? "F2" :
3575: (vcnReg3Curr & 0b1111) != 0 ? "F1" :
3576: "f" :
3577:
3578: (vcnReg3Curr & 0b1000) != 0 ? "E4" :
3579: (vcnReg3Curr & 0b1100) != 0 ? "E3" :
3580: (vcnReg3Curr & 0b1110) != 0 ? "E2" :
3581: (vcnReg3Curr & 0b1111) != 0 ? "E1" :
3582: "e");
3583:
3584: int grpr = vcnReg2Curr >> 8 & 3;
3585: if (grpr == 0) {
3586: sb.append (graphic).append (spriteText1).append (spriteText2);
3587: } else if (grpr == 1) {
3588: sb.append (spriteText1).append (graphic).append (spriteText2);
3589: } else if (grpr == 2) {
3590: sb.append (spriteText1).append (spriteText2).append (graphic);
3591: } else {
3592: sb.append (graphic).append (spriteText1).append (spriteText2);
3593: }
3594: int i = sb.length ();
3595: if ((vcnReg3Curr & 1 << 14) != 0) {
3596: sb.append ('A');
3597: }
3598: if ((vcnReg3Curr & 1 << 12) != 0) {
3599: sb.append ('X');
3600: }
3601: if ((vcnReg3Curr & (1 << 12 | 1 << 11)) != 0) {
3602: sb.append ((vcnReg3Curr & 1 << 11) != 0 ? 'H' : 'W');
3603: }
3604: if ((vcnReg3Curr & (1 << 12 | 1 << 10)) != 0) {
3605: sb.append ((vcnReg3Curr & 1 << 10) != 0 ? 'P' : 'C');
3606: }
3607: if ((vcnReg3Curr & 1 << 9) != 0) {
3608: sb.append ('G');
3609: }
3610: if ((vcnReg3Curr & 1 << 8) != 0) {
3611: sb.append ('T');
3612: }
3613: if (i < sb.length ()) {
3614: sb.insert (i, '_');
3615: }
3616: return sb;
3617: }
3618:
3619:
3620:
3621:
3622:
3623:
3624:
3625:
3626: public static int vcnMix1 (int x) {
3627: return x >> 1 & 0b01111_01111_01111_0;
3628: }
3629: public static int vcnMix2 (int x, int y) {
3630: return ((x & 0b11111_00000_11111_0 ) + (y & 0b11111_00000_11111_0) >> 1 & 0b11111_00000_11111_0 |
3631: (x & 0b00000_11111_00000_0 | 1) + (y & 0b00000_11111_00000_1) >> 1 & 0b00000_11111_00000_1);
3632: }
3633:
3634: }
3635:
3636:
3637: