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 VCN_PATTEST_BLOCKS = 12;
1006: public static final int[] vcnPal16G8 = new int[256];
1007: public static final int[] vcnPal16TS = new int[256 + 16 * VCN_PATTEST_BLOCKS];
1008: public static final int[] vcnPal32G8 = new int[256];
1009: public static final int[] vcnPal32TS = new int[256 + 16 * VCN_PATTEST_BLOCKS];
1010:
1011:
1012:
1013:
1014:
1015:
1016:
1017:
1018:
1019:
1020:
1021:
1022:
1023:
1024:
1025:
1026:
1027: public static final int[] vcnPal8G16L = new int[256];
1028: public static final int[] vcnPal8G16H = new int[256];
1029:
1030:
1031:
1032: public static final int AHEX = 0x10000;
1033: public static final int SPON = 0x08000;
1034: public static final int TXON = 0x04000;
1035: public static final int GXON = 0x02000;
1036: public static final int G4ON = 0x01000;
1037: public static final int G3ON = 0x00800;
1038: public static final int G2ON = 0x00400;
1039: public static final int G1ON = 0x00200;
1040:
1041:
1042:
1043:
1044: public static final DrawingMode[] vcnModeTable = new DrawingMode[0x20000];
1045: public static DrawingMode vcnMode;
1046:
1047:
1048:
1049:
1050: public static int vcnHidden1st;
1051: public static int vcnHidden2nd;
1052: public static int vcnHidden3rd;
1053: public static int vcnHidden4th;
1054: public static int vcnVisible1st;
1055: public static int vcnVisible2nd;
1056: public static int vcnVisible3rd;
1057: public static int vcnVisible4th;
1058:
1059:
1060:
1061:
1062:
1063:
1064:
1065:
1066:
1067:
1068:
1069: public static final int[] VCN_TXP0 = new int[256];
1070: public static final int[] VCN_TXP1 = new int[256];
1071: public static final int[] VCN_TXP2 = new int[256];
1072: public static final int[] VCN_TXP3 = new int[256];
1073:
1074:
1075: public static final HashSet<String> vcnUnimplementedSet = new HashSet<String> ();
1076:
1077:
1078:
1079: public static void vcnInit () {
1080:
1081: for (int i = 0; i < 256; i++) {
1082: VCN_TXP3[i] = (VCN_TXP2[i] = (VCN_TXP1[i] = (VCN_TXP0[i] = (i << 28 - 7 & 0x10000000 |
1083: i << 24 - 6 & 0x01000000 |
1084: i << 20 - 5 & 0x00100000 |
1085: i << 16 - 4 & 0x00010000 |
1086: i << 12 - 3 & 0x00001000 |
1087: i << 8 - 2 & 0x00000100 |
1088: i << 4 - 1 & 0x00000010 |
1089: i & 0x00000001)) << 1) << 1) << 1;
1090: }
1091:
1092:
1093: for (int c = 0; c <= VCN_CONTRAST_SCALE * 15; c++) {
1094: int max = Math.round (c * 255.0F / (VCN_CONTRAST_SCALE * 15));
1095: int[] t = vcnPalBase[c] = new int[65536];
1096: for (int p = 0; p <= 0b11111_11111_11111_0; p += 2) {
1097:
1098:
1099: t[p] = (255 << 24 |
1100: (p >> 5 & 0b11111_0) * max * 16645 >>> 20 << 16 |
1101: (p >> 10 & 0b11111_0) * max * 16645 >>> 20 << 8 |
1102: (p & 0b11111_0) * max * 16645 >>> 20);
1103: t[p + 1] = (255 << 24 |
1104: (p >> 5 & 0b11111_0 | 1) * max * 16645 >>> 20 << 16 |
1105: (p >> 10 & 0b11111_0 | 1) * max * 16645 >>> 20 << 8 |
1106: (p & 0b11111_0 | 1) * max * 16645 >>> 20);
1107: }
1108: }
1109:
1110:
1111:
1112:
1113:
1114:
1115:
1116:
1117: for (int p = 0; p < VCN_PATTEST_BLOCKS; p++) {
1118: int i = 256 + (p << 4);
1119: int a = 31 - p * (31 - 4) / (VCN_PATTEST_BLOCKS - 1);
1120:
1121: int b = 13 - p * (13 - 4) / (VCN_PATTEST_BLOCKS - 1);
1122: vcnPal16TS[i ] = 0 << 11 | 0 << 6 | 0 << 1;
1123: vcnPal16TS[i + 1] = b << 11 | b << 6 | a << 1;
1124: vcnPal16TS[i + 2] = b << 11 | a << 6 | b << 1;
1125: vcnPal16TS[i + 3] = a << 11 | b << 6 | b << 1;
1126: vcnPal16TS[i + 4] = a << 11 | a << 6 | b << 1;
1127: }
1128:
1129: Arrays.fill (vcnPal32G8, 0xff000000);
1130:
1131: Arrays.fill (vcnPal32TS, 0xff000000);
1132:
1133:
1134:
1135:
1136:
1137: vcnMakeTable0 (0);
1138: vcnMakeTable1 (1);
1139: vcnMakeTable3 (2);
1140: vcnMakeTable3 (3);
1141: vcnMakeTable4 (4);
1142: if (CRTC.CRT_EXTENDED_GRAPHIC && CRTC.crtExtendedGraphicRequest) {
1143: vcnMakeTable5 (5);
1144: vcnMakeTable7 (6);
1145: vcnMakeTable7 (7);
1146: } else {
1147: vcnMakeTable4 (5);
1148: vcnMakeTable4 (6);
1149: vcnMakeTable4 (7);
1150: }
1151:
1152: if (false) {
1153: for (int i = 0; i < 0x20000; i++) {
1154: if ((i & 63) == 0) {
1155: System.out.println ();
1156: System.out.println (" index ............GrMM ..SpTxGr........ .A.XHPGT.STx4321 prwMode");
1157: System.out.println ("------- ---------------- ---------------- ---------------- -------");
1158: }
1159: 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",
1160: i,
1161: i >> 8 & 1,
1162: i >> 7 & 1,
1163: i >> 6 & 1,
1164: i >> 5 & 1, i >> 4 & 1,
1165: i >> 3 & 1, i >> 2 & 1,
1166: i >> 1 & 1, i & 1,
1167: i >> 16 == 0 ? '0' : '*',
1168: i >> 16 == 0 ? '0' : '*',
1169: i >> 15 & 1,
1170: i >> 14 & 1,
1171: i >> 13 & 1,
1172: i >> 12 & 1,
1173: i >> 11 & 1,
1174: i >> 10 & 1,
1175: i >> 9 & 1,
1176: vcnModeTable[i]);
1177: }
1178: }
1179:
1180: vcnReset ();
1181:
1182: }
1183:
1184:
1185:
1186: public static void vcnMakeTable0 (int grmm) {
1187:
1188:
1189:
1190: for (int ii = 0b0000_0; ii <= 0b1111_1; ii++) {
1191:
1192: int i = grmm << 6 | (ii & 0b0000_1) << 13 | (ii & 0b1111_0) << 1;
1193: int s = i >> 4 & 3;
1194: int t = i >> 2 & 3;
1195:
1196:
1197:
1198:
1199: vcnModeTable[ i] = DrawingMode.N;
1200: vcnModeTable[ AHEX + i] = DrawingMode.XN;
1201:
1202:
1203: vcnModeTable[ G1ON + i] = DrawingMode.E1t;
1204: vcnModeTable[ AHEX + G1ON + i] = DrawingMode.XE1t;
1205:
1206:
1207: vcnModeTable[ G2ON + i] = (
1208: vcnModeTable[ G2ON + G1ON + i] = DrawingMode.E2t);
1209: vcnModeTable[ AHEX + G2ON + i] = (
1210: vcnModeTable[ AHEX + G2ON + G1ON + i] = DrawingMode.XE2t);
1211:
1212:
1213: vcnModeTable[ G3ON + i] = (
1214: vcnModeTable[ G3ON + G1ON + i] =
1215: vcnModeTable[ G3ON + G2ON + i] =
1216: vcnModeTable[ G3ON + G2ON + G1ON + i] = DrawingMode.E3t);
1217: vcnModeTable[ AHEX + G3ON + i] = (
1218: vcnModeTable[ AHEX + G3ON + G1ON + i] =
1219: vcnModeTable[ AHEX + G3ON + G2ON + i] =
1220: vcnModeTable[ AHEX + G3ON + G2ON + G1ON + i] = DrawingMode.XE3t);
1221:
1222:
1223: vcnModeTable[ G4ON + i] = (
1224: vcnModeTable[ G4ON + G1ON + i] =
1225: vcnModeTable[ G4ON + G2ON + i] =
1226: vcnModeTable[ G4ON + G2ON + G1ON + i] =
1227: vcnModeTable[ G4ON + G3ON + i] =
1228: vcnModeTable[ G4ON + G3ON + G1ON + i] =
1229: vcnModeTable[ G4ON + G3ON + G2ON + i] =
1230: vcnModeTable[ G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4t);
1231: vcnModeTable[ AHEX + G4ON + i] = (
1232: vcnModeTable[ AHEX + G4ON + G1ON + i] =
1233: vcnModeTable[ AHEX + G4ON + G2ON + i] =
1234: vcnModeTable[ AHEX + G4ON + G2ON + G1ON + i] =
1235: vcnModeTable[ AHEX + G4ON + G3ON + i] =
1236: vcnModeTable[ AHEX + G4ON + G3ON + G1ON + i] =
1237: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + i] =
1238: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4t);
1239:
1240: vcnModeTable[ TXON + i] = DrawingMode.T;
1241: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
1242:
1243:
1244: vcnModeTable[ TXON + G1ON + i] = DrawingMode.E1T;
1245: vcnModeTable[ AHEX + TXON + G1ON + i] = DrawingMode.XE1T;
1246:
1247:
1248: vcnModeTable[ TXON + G2ON + i] = (
1249: vcnModeTable[ TXON + G2ON + G1ON + i] = DrawingMode.E2T);
1250: vcnModeTable[ AHEX + TXON + G2ON + i] = (
1251: vcnModeTable[ AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XE2T);
1252:
1253:
1254: vcnModeTable[ TXON + G3ON + i] = (
1255: vcnModeTable[ TXON + G3ON + G1ON + i] =
1256: vcnModeTable[ TXON + G3ON + G2ON + i] =
1257: vcnModeTable[ TXON + G3ON + G2ON + G1ON + i] = DrawingMode.E3T);
1258: vcnModeTable[ AHEX + TXON + G3ON + i] = (
1259: vcnModeTable[ AHEX + TXON + G3ON + G1ON + i] =
1260: vcnModeTable[ AHEX + TXON + G3ON + G2ON + i] =
1261: vcnModeTable[ AHEX + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.XE3T);
1262:
1263:
1264: vcnModeTable[ TXON + G4ON + i] = (
1265: vcnModeTable[ TXON + G4ON + G1ON + i] =
1266: vcnModeTable[ TXON + G4ON + G2ON + i] =
1267: vcnModeTable[ TXON + G4ON + G2ON + G1ON + i] =
1268: vcnModeTable[ TXON + G4ON + G3ON + i] =
1269: vcnModeTable[ TXON + G4ON + G3ON + G1ON + i] =
1270: vcnModeTable[ TXON + G4ON + G3ON + G2ON + i] =
1271: vcnModeTable[ TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4T);
1272: vcnModeTable[ AHEX + TXON + G4ON + i] = (
1273: vcnModeTable[ AHEX + TXON + G4ON + G1ON + i] =
1274: vcnModeTable[ AHEX + TXON + G4ON + G2ON + i] =
1275: vcnModeTable[ AHEX + TXON + G4ON + G2ON + G1ON + i] =
1276: vcnModeTable[ AHEX + TXON + G4ON + G3ON + i] =
1277: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G1ON + i] =
1278: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + i] =
1279: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4T);
1280:
1281: vcnModeTable[ SPON + i] = DrawingMode.S;
1282: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
1283:
1284:
1285: vcnModeTable[ SPON + G1ON + i] = DrawingMode.E1S;
1286: vcnModeTable[ AHEX + SPON + G1ON + i] = DrawingMode.XE1S;
1287:
1288:
1289: vcnModeTable[ SPON + G2ON + i] = (
1290: vcnModeTable[ SPON + G2ON + G1ON + i] = DrawingMode.E2S);
1291: vcnModeTable[ AHEX + SPON + G2ON + i] = (
1292: vcnModeTable[ AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XE2S);
1293:
1294:
1295: vcnModeTable[ SPON + G3ON + i] = (
1296: vcnModeTable[ SPON + G3ON + G1ON + i] =
1297: vcnModeTable[ SPON + G3ON + G2ON + i] =
1298: vcnModeTable[ SPON + G3ON + G2ON + G1ON + i] = DrawingMode.E3S);
1299: vcnModeTable[ AHEX + SPON + G3ON + i] = (
1300: vcnModeTable[ AHEX + SPON + G3ON + G1ON + i] =
1301: vcnModeTable[ AHEX + SPON + G3ON + G2ON + i] =
1302: vcnModeTable[ AHEX + SPON + G3ON + G2ON + G1ON + i] = DrawingMode.XE3S);
1303:
1304:
1305: vcnModeTable[ SPON + G4ON + i] = (
1306: vcnModeTable[ SPON + G4ON + G1ON + i] =
1307: vcnModeTable[ SPON + G4ON + G2ON + i] =
1308: vcnModeTable[ SPON + G4ON + G2ON + G1ON + i] =
1309: vcnModeTable[ SPON + G4ON + G3ON + i] =
1310: vcnModeTable[ SPON + G4ON + G3ON + G1ON + i] =
1311: vcnModeTable[ SPON + G4ON + G3ON + G2ON + i] =
1312: vcnModeTable[ SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4S);
1313: vcnModeTable[ AHEX + SPON + G4ON + i] = (
1314: vcnModeTable[ AHEX + SPON + G4ON + G1ON + i] =
1315: vcnModeTable[ AHEX + SPON + G4ON + G2ON + i] =
1316: vcnModeTable[ AHEX + SPON + G4ON + G2ON + G1ON + i] =
1317: vcnModeTable[ AHEX + SPON + G4ON + G3ON + i] =
1318: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G1ON + i] =
1319: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + i] =
1320: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4S);
1321:
1322:
1323: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1324: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1325:
1326:
1327: vcnModeTable[ SPON + TXON + G1ON + i] = s < t ? DrawingMode.E1ST : DrawingMode.E1TS;
1328: vcnModeTable[ AHEX + SPON + TXON + G1ON + i] = s < t ? DrawingMode.XE1ST : DrawingMode.XE1TS;
1329:
1330:
1331: vcnModeTable[ SPON + TXON + G2ON + i] = (
1332: vcnModeTable[ SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.E2ST : DrawingMode.E2TS);
1333: vcnModeTable[ AHEX + SPON + TXON + G2ON + i] = (
1334: vcnModeTable[ AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XE2ST : DrawingMode.XE2TS);
1335:
1336:
1337: vcnModeTable[ SPON + TXON + G3ON + i] = (
1338: vcnModeTable[ SPON + TXON + G3ON + G1ON + i] =
1339: vcnModeTable[ SPON + TXON + G3ON + G2ON + i] =
1340: vcnModeTable[ SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E3ST : DrawingMode.E3TS);
1341: vcnModeTable[ AHEX + SPON + TXON + G3ON + i] = (
1342: vcnModeTable[ AHEX + SPON + TXON + G3ON + G1ON + i] =
1343: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + i] =
1344: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE3ST : DrawingMode.XE3TS);
1345:
1346:
1347: vcnModeTable[ SPON + TXON + G4ON + i] = (
1348: vcnModeTable[ SPON + TXON + G4ON + G1ON + i] =
1349: vcnModeTable[ SPON + TXON + G4ON + G2ON + i] =
1350: vcnModeTable[ SPON + TXON + G4ON + G2ON + G1ON + i] =
1351: vcnModeTable[ SPON + TXON + G4ON + G3ON + i] =
1352: vcnModeTable[ SPON + TXON + G4ON + G3ON + G1ON + i] =
1353: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + i] =
1354: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E4ST : DrawingMode.E4TS);
1355: vcnModeTable[ AHEX + SPON + TXON + G4ON + i] = (
1356: vcnModeTable[ AHEX + SPON + TXON + G4ON + G1ON + i] =
1357: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + i] =
1358: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1359: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + i] =
1360: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1361: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1362: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE4ST : DrawingMode.XE4TS);
1363:
1364:
1365:
1366:
1367: vcnModeTable[ 1 + i] = DrawingMode.N;
1368: vcnModeTable[ 1 + AHEX + i] = DrawingMode.XN;
1369:
1370:
1371: vcnModeTable[ 1 + G1ON + i] = DrawingMode.E1t;
1372: vcnModeTable[ 1 + AHEX + G1ON + i] = DrawingMode.XE1t;
1373:
1374:
1375: vcnModeTable[ 1 + G2ON + i] = (
1376: vcnModeTable[1 + G2ON + G1ON + i] = DrawingMode.E2t);
1377: vcnModeTable[ 1 + AHEX + G2ON + i] = (
1378: vcnModeTable[1 + AHEX + G2ON + G1ON + i] = DrawingMode.XE2t);
1379:
1380:
1381: vcnModeTable[ 1 + G3ON + i] = (
1382: vcnModeTable[1 + G3ON + G1ON + i] =
1383: vcnModeTable[1 + G3ON + G2ON + i] =
1384: vcnModeTable[1 + G3ON + G2ON + G1ON + i] = DrawingMode.E3t);
1385: vcnModeTable[ 1 + AHEX + G3ON + i] = (
1386: vcnModeTable[1 + AHEX + G3ON + G1ON + i] =
1387: vcnModeTable[1 + AHEX + G3ON + G2ON + i] =
1388: vcnModeTable[1 + AHEX + G3ON + G2ON + G1ON + i] = DrawingMode.XE3t);
1389:
1390:
1391: vcnModeTable[ 1 + G4ON + i] = (
1392: vcnModeTable[1 + G4ON + G1ON + i] =
1393: vcnModeTable[1 + G4ON + G2ON + i] =
1394: vcnModeTable[1 + G4ON + G2ON + G1ON + i] =
1395: vcnModeTable[1 + G4ON + G3ON + i] =
1396: vcnModeTable[1 + G4ON + G3ON + G1ON + i] =
1397: vcnModeTable[1 + G4ON + G3ON + G2ON + i] =
1398: vcnModeTable[1 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4t);
1399: vcnModeTable[ 1 + AHEX + G4ON + i] = (
1400: vcnModeTable[1 + AHEX + G4ON + G1ON + i] =
1401: vcnModeTable[1 + AHEX + G4ON + G2ON + i] =
1402: vcnModeTable[1 + AHEX + G4ON + G2ON + G1ON + i] =
1403: vcnModeTable[1 + AHEX + G4ON + G3ON + i] =
1404: vcnModeTable[1 + AHEX + G4ON + G3ON + G1ON + i] =
1405: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + i] =
1406: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4t);
1407:
1408: vcnModeTable[ 1 + TXON + i] = DrawingMode.T;
1409: vcnModeTable[ 1 + AHEX + TXON + i] = DrawingMode.XT;
1410:
1411:
1412: vcnModeTable[ 1 + TXON + G1ON + i] = s < t ? DrawingMode.E1T : DrawingMode.TE1s;
1413: vcnModeTable[ 1 + AHEX + TXON + G1ON + i] = s < t ? DrawingMode.XE1T : DrawingMode.XTE1s;
1414:
1415:
1416: vcnModeTable[ 1 + TXON + G2ON + i] = (
1417: vcnModeTable[1 + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.E2T : DrawingMode.TE2s);
1418: vcnModeTable[ 1 + AHEX + TXON + G2ON + i] = (
1419: vcnModeTable[1 + AHEX + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XE2T : DrawingMode.XTE2s);
1420:
1421:
1422: vcnModeTable[ 1 + TXON + G3ON + i] = (
1423: vcnModeTable[1 + TXON + G3ON + G1ON + i] =
1424: vcnModeTable[1 + TXON + G3ON + G2ON + i] =
1425: vcnModeTable[1 + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E3T : DrawingMode.TE3s);
1426: vcnModeTable[ 1 + AHEX + TXON + G3ON + i] = (
1427: vcnModeTable[1 + AHEX + TXON + G3ON + G1ON + i] =
1428: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + i] =
1429: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE3T : DrawingMode.XTE3s);
1430:
1431:
1432: vcnModeTable[ 1 + TXON + G4ON + i] = (
1433: vcnModeTable[1 + TXON + G4ON + G1ON + i] =
1434: vcnModeTable[1 + TXON + G4ON + G2ON + i] =
1435: vcnModeTable[1 + TXON + G4ON + G2ON + G1ON + i] =
1436: vcnModeTable[1 + TXON + G4ON + G3ON + i] =
1437: vcnModeTable[1 + TXON + G4ON + G3ON + G1ON + i] =
1438: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + i] =
1439: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.E4T : DrawingMode.TE4s);
1440: vcnModeTable[ 1 + AHEX + TXON + G4ON + i] = (
1441: vcnModeTable[1 + AHEX + TXON + G4ON + G1ON + i] =
1442: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + i] =
1443: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
1444: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + i] =
1445: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
1446: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
1447: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XE4T : DrawingMode.XTE4s);
1448:
1449: vcnModeTable[ 1 + SPON + i] = DrawingMode.S;
1450: vcnModeTable[ 1 + AHEX + SPON + i] = DrawingMode.XS;
1451:
1452:
1453: vcnModeTable[ 1 + SPON + G1ON + i] = s < t ? DrawingMode.SE1t : DrawingMode.E1S;
1454: vcnModeTable[ 1 + AHEX + SPON + G1ON + i] = s < t ? DrawingMode.XSE1t : DrawingMode.XE1S;
1455:
1456:
1457: vcnModeTable[ 1 + SPON + G2ON + i] = (
1458: vcnModeTable[1 + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.SE2t : DrawingMode.E2S);
1459: vcnModeTable[ 1 + AHEX + SPON + G2ON + i] = (
1460: vcnModeTable[1 + AHEX + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE2t : DrawingMode.XE2S);
1461:
1462:
1463: vcnModeTable[ 1 + SPON + G3ON + i] = (
1464: vcnModeTable[1 + SPON + G3ON + G1ON + i] =
1465: vcnModeTable[1 + SPON + G3ON + G2ON + i] =
1466: vcnModeTable[1 + SPON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE3t : DrawingMode.E3S);
1467: vcnModeTable[ 1 + AHEX + SPON + G3ON + i] = (
1468: vcnModeTable[1 + AHEX + SPON + G3ON + G1ON + i] =
1469: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + i] =
1470: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE3t : DrawingMode.XE3S);
1471:
1472:
1473: vcnModeTable[ 1 + SPON + G4ON + i] = (
1474: vcnModeTable[1 + SPON + G4ON + G1ON + i] =
1475: vcnModeTable[1 + SPON + G4ON + G2ON + i] =
1476: vcnModeTable[1 + SPON + G4ON + G2ON + G1ON + i] =
1477: vcnModeTable[1 + SPON + G4ON + G3ON + i] =
1478: vcnModeTable[1 + SPON + G4ON + G3ON + G1ON + i] =
1479: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + i] =
1480: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE4t : DrawingMode.E4S);
1481: vcnModeTable[ 1 + AHEX + SPON + G4ON + i] = (
1482: vcnModeTable[1 + AHEX + SPON + G4ON + G1ON + i] =
1483: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + i] =
1484: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
1485: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + i] =
1486: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
1487: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
1488: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE4t : DrawingMode.XE4S);
1489:
1490:
1491: vcnModeTable[ 1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1492: vcnModeTable[ 1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1493:
1494:
1495: vcnModeTable[ 1 + SPON + TXON + G1ON + i] = s < t ? DrawingMode.SE1T : DrawingMode.TE1S;
1496: vcnModeTable[ 1 + AHEX + SPON + TXON + G1ON + i] = s < t ? DrawingMode.XSE1T : DrawingMode.XTE1S;
1497:
1498:
1499: vcnModeTable[ 1 + SPON + TXON + G2ON + i] = (
1500: vcnModeTable[1 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.SE2T : DrawingMode.TE2S);
1501: vcnModeTable[ 1 + AHEX + SPON + TXON + G2ON + i] = (
1502: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE2T : DrawingMode.XTE2S);
1503:
1504:
1505: vcnModeTable[ 1 + SPON + TXON + G3ON + i] = (
1506: vcnModeTable[1 + SPON + TXON + G3ON + G1ON + i] =
1507: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + i] =
1508: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE3T : DrawingMode.TE3S);
1509: vcnModeTable[ 1 + AHEX + SPON + TXON + G3ON + i] = (
1510: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G1ON + i] =
1511: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + i] =
1512: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE3T : DrawingMode.XTE3S);
1513:
1514:
1515: vcnModeTable[ 1 + SPON + TXON + G4ON + i] = (
1516: vcnModeTable[1 + SPON + TXON + G4ON + G1ON + i] =
1517: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + i] =
1518: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + G1ON + i] =
1519: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + i] =
1520: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G1ON + i] =
1521: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + i] =
1522: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SE4T : DrawingMode.TE4S);
1523: vcnModeTable[ 1 + AHEX + SPON + TXON + G4ON + i] = (
1524: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G1ON + i] =
1525: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + i] =
1526: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1527: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + i] =
1528: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1529: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1530: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSE4T : DrawingMode.XTE4S);
1531:
1532:
1533:
1534:
1535: vcnModeTable[ 2 + i] = DrawingMode.N;
1536: vcnModeTable[ 2 + AHEX + i] = DrawingMode.XN;
1537:
1538:
1539: vcnModeTable[ 2 + G1ON + i] = DrawingMode.E1;
1540: vcnModeTable[ 2 + AHEX + G1ON + i] = DrawingMode.XE1;
1541:
1542:
1543: vcnModeTable[ 2 + G2ON + i] = (
1544: vcnModeTable[2 + G2ON + G1ON + i] = DrawingMode.E2);
1545: vcnModeTable[ 2 + AHEX + G2ON + i] = (
1546: vcnModeTable[2 + AHEX + G2ON + G1ON + i] = DrawingMode.XE2);
1547:
1548:
1549: vcnModeTable[ 2 + G3ON + i] = (
1550: vcnModeTable[2 + G3ON + G1ON + i] =
1551: vcnModeTable[2 + G3ON + G2ON + i] =
1552: vcnModeTable[2 + G3ON + G2ON + G1ON + i] = DrawingMode.E3);
1553: vcnModeTable[ 2 + AHEX + G3ON + i] = (
1554: vcnModeTable[2 + AHEX + G3ON + G1ON + i] =
1555: vcnModeTable[2 + AHEX + G3ON + G2ON + i] =
1556: vcnModeTable[2 + AHEX + G3ON + G2ON + G1ON + i] = DrawingMode.XE3);
1557:
1558:
1559: vcnModeTable[ 2 + G4ON + i] = (
1560: vcnModeTable[2 + G4ON + G1ON + i] =
1561: vcnModeTable[2 + G4ON + G2ON + i] =
1562: vcnModeTable[2 + G4ON + G2ON + G1ON + i] =
1563: vcnModeTable[2 + G4ON + G3ON + i] =
1564: vcnModeTable[2 + G4ON + G3ON + G1ON + i] =
1565: vcnModeTable[2 + G4ON + G3ON + G2ON + i] =
1566: vcnModeTable[2 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4);
1567: vcnModeTable[ 2 + AHEX + G4ON + i] = (
1568: vcnModeTable[2 + AHEX + G4ON + G1ON + i] =
1569: vcnModeTable[2 + AHEX + G4ON + G2ON + i] =
1570: vcnModeTable[2 + AHEX + G4ON + G2ON + G1ON + i] =
1571: vcnModeTable[2 + AHEX + G4ON + G3ON + i] =
1572: vcnModeTable[2 + AHEX + G4ON + G3ON + G1ON + i] =
1573: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + i] =
1574: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4);
1575:
1576: vcnModeTable[ 2 + TXON + i] = DrawingMode.T;
1577: vcnModeTable[ 2 + AHEX + TXON + i] = DrawingMode.XT;
1578:
1579:
1580: vcnModeTable[ 2 + TXON + G1ON + i] = DrawingMode.TE1;
1581: vcnModeTable[ 2 + AHEX + TXON + G1ON + i] = DrawingMode.XTE1;
1582:
1583:
1584: vcnModeTable[ 2 + TXON + G2ON + i] = (
1585: vcnModeTable[2 + TXON + G2ON + G1ON + i] = DrawingMode.TE2);
1586: vcnModeTable[ 2 + AHEX + TXON + G2ON + i] = (
1587: vcnModeTable[2 + AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XTE2);
1588:
1589:
1590: vcnModeTable[ 2 + TXON + G3ON + i] = (
1591: vcnModeTable[2 + TXON + G3ON + G1ON + i] =
1592: vcnModeTable[2 + TXON + G3ON + G2ON + i] =
1593: vcnModeTable[2 + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.TE3);
1594: vcnModeTable[ 2 + AHEX + TXON + G3ON + i] = (
1595: vcnModeTable[2 + AHEX + TXON + G3ON + G1ON + i] =
1596: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + i] =
1597: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.XTE3);
1598:
1599:
1600: vcnModeTable[ 2 + TXON + G4ON + i] = (
1601: vcnModeTable[2 + TXON + G4ON + G1ON + i] =
1602: vcnModeTable[2 + TXON + G4ON + G2ON + i] =
1603: vcnModeTable[2 + TXON + G4ON + G2ON + G1ON + i] =
1604: vcnModeTable[2 + TXON + G4ON + G3ON + i] =
1605: vcnModeTable[2 + TXON + G4ON + G3ON + G1ON + i] =
1606: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + i] =
1607: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.TE4);
1608: vcnModeTable[ 2 + AHEX + TXON + G4ON + i] = (
1609: vcnModeTable[2 + AHEX + TXON + G4ON + G1ON + i] =
1610: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + i] =
1611: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
1612: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + i] =
1613: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
1614: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
1615: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XTE4);
1616:
1617: vcnModeTable[ 2 + SPON + i] = DrawingMode.S;
1618: vcnModeTable[ 2 + AHEX + SPON + i] = DrawingMode.XS;
1619:
1620:
1621: vcnModeTable[ 2 + SPON + G1ON + i] = DrawingMode.SE1;
1622: vcnModeTable[ 2 + AHEX + SPON + G1ON + i] = DrawingMode.XSE1;
1623:
1624:
1625: vcnModeTable[ 2 + SPON + G2ON + i] = (
1626: vcnModeTable[2 + SPON + G2ON + G1ON + i] = DrawingMode.SE2);
1627: vcnModeTable[ 2 + AHEX + SPON + G2ON + i] = (
1628: vcnModeTable[2 + AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XSE2);
1629:
1630:
1631: vcnModeTable[ 2 + SPON + G3ON + i] = (
1632: vcnModeTable[2 + SPON + G3ON + G1ON + i] =
1633: vcnModeTable[2 + SPON + G3ON + G2ON + i] =
1634: vcnModeTable[2 + SPON + G3ON + G2ON + G1ON + i] = DrawingMode.SE3);
1635: vcnModeTable[ 2 + AHEX + SPON + G3ON + i] = (
1636: vcnModeTable[2 + AHEX + SPON + G3ON + G1ON + i] =
1637: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + i] =
1638: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + G1ON + i] = DrawingMode.XSE3);
1639:
1640:
1641: vcnModeTable[ 2 + SPON + G4ON + i] = (
1642: vcnModeTable[2 + SPON + G4ON + G1ON + i] =
1643: vcnModeTable[2 + SPON + G4ON + G2ON + i] =
1644: vcnModeTable[2 + SPON + G4ON + G2ON + G1ON + i] =
1645: vcnModeTable[2 + SPON + G4ON + G3ON + i] =
1646: vcnModeTable[2 + SPON + G4ON + G3ON + G1ON + i] =
1647: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + i] =
1648: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.SE4);
1649: vcnModeTable[ 2 + AHEX + SPON + G4ON + i] = (
1650: vcnModeTable[2 + AHEX + SPON + G4ON + G1ON + i] =
1651: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + i] =
1652: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
1653: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + i] =
1654: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
1655: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
1656: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XSE4);
1657:
1658:
1659: vcnModeTable[ 2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1660: vcnModeTable[ 2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1661:
1662:
1663: vcnModeTable[ 2 + SPON + TXON + G1ON + i] = s < t ? DrawingMode.STE1 : DrawingMode.TSE1;
1664: vcnModeTable[ 2 + AHEX + SPON + TXON + G1ON + i] = s < t ? DrawingMode.XSTE1 : DrawingMode.XTSE1;
1665:
1666:
1667: vcnModeTable[ 2 + SPON + TXON + G2ON + i] = (
1668: vcnModeTable[2 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.STE2 : DrawingMode.TSE2);
1669: vcnModeTable[ 2 + AHEX + SPON + TXON + G2ON + i] = (
1670: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTE2 : DrawingMode.XTSE2);
1671:
1672:
1673: vcnModeTable[ 2 + SPON + TXON + G3ON + i] = (
1674: vcnModeTable[2 + SPON + TXON + G3ON + G1ON + i] =
1675: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + i] =
1676: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STE3 : DrawingMode.TSE3);
1677: vcnModeTable[ 2 + AHEX + SPON + TXON + G3ON + i] = (
1678: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G1ON + i] =
1679: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + i] =
1680: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTE3 : DrawingMode.XTSE3);
1681:
1682:
1683: vcnModeTable[ 2 + SPON + TXON + G4ON + i] = (
1684: vcnModeTable[2 + SPON + TXON + G4ON + G1ON + i] =
1685: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + i] =
1686: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + G1ON + i] =
1687: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + i] =
1688: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G1ON + i] =
1689: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + i] =
1690: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STE4 : DrawingMode.TSE4);
1691: vcnModeTable[ 2 + AHEX + SPON + TXON + G4ON + i] = (
1692: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G1ON + i] =
1693: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + i] =
1694: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1695: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + i] =
1696: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1697: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1698: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTE4 : DrawingMode.XTSE4);
1699:
1700:
1701:
1702:
1703: vcnModeTable[ 3 + i] = (
1704: vcnModeTable[3 + TXON + i] =
1705: vcnModeTable[3 + SPON + i] =
1706: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
1707: vcnModeTable[ 3 + AHEX + i] = (
1708: vcnModeTable[3 + AHEX + TXON + i] =
1709: vcnModeTable[3 + AHEX + SPON + i] =
1710: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
1711:
1712:
1713: vcnModeTable[ 3 + G1ON + i] = (
1714: vcnModeTable[3 + TXON + G1ON + i] =
1715: vcnModeTable[3 + SPON + G1ON + i] =
1716: vcnModeTable[3 + SPON + TXON + G1ON + i] = DrawingMode.E1t);
1717: vcnModeTable[ 3 + AHEX + G1ON + i] = (
1718: vcnModeTable[3 + AHEX + TXON + G1ON + i] =
1719: vcnModeTable[3 + AHEX + SPON + G1ON + i] =
1720: vcnModeTable[3 + AHEX + SPON + TXON + G1ON + i] = DrawingMode.XE1t);
1721:
1722:
1723: vcnModeTable[ 3 + G2ON + i] = (
1724: vcnModeTable[3 + G2ON + G1ON + i] =
1725: vcnModeTable[3 + TXON + G2ON + i] =
1726: vcnModeTable[3 + TXON + G2ON + G1ON + i] =
1727: vcnModeTable[3 + SPON + G2ON + i] =
1728: vcnModeTable[3 + SPON + G2ON + G1ON + i] =
1729: vcnModeTable[3 + SPON + TXON + G2ON + i] =
1730: vcnModeTable[3 + SPON + TXON + G2ON + G1ON + i] = DrawingMode.E2t);
1731: vcnModeTable[ 3 + AHEX + G2ON + i] = (
1732: vcnModeTable[3 + AHEX + G2ON + G1ON + i] =
1733: vcnModeTable[3 + AHEX + TXON + G2ON + i] =
1734: vcnModeTable[3 + AHEX + TXON + G2ON + G1ON + i] =
1735: vcnModeTable[3 + AHEX + SPON + G2ON + i] =
1736: vcnModeTable[3 + AHEX + SPON + G2ON + G1ON + i] =
1737: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + i] =
1738: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + G1ON + i] = DrawingMode.XE2t);
1739:
1740:
1741: vcnModeTable[ 3 + G3ON + i] = (
1742: vcnModeTable[3 + G3ON + G1ON + i] =
1743: vcnModeTable[3 + G3ON + G2ON + i] =
1744: vcnModeTable[3 + G3ON + G2ON + G1ON + i] =
1745: vcnModeTable[3 + TXON + G3ON + i] =
1746: vcnModeTable[3 + TXON + G3ON + G1ON + i] =
1747: vcnModeTable[3 + TXON + G3ON + G2ON + i] =
1748: vcnModeTable[3 + TXON + G3ON + G2ON + G1ON + i] =
1749: vcnModeTable[3 + SPON + G3ON + i] =
1750: vcnModeTable[3 + SPON + G3ON + G1ON + i] =
1751: vcnModeTable[3 + SPON + G3ON + G2ON + i] =
1752: vcnModeTable[3 + SPON + G3ON + G2ON + G1ON + i] =
1753: vcnModeTable[3 + SPON + TXON + G3ON + i] =
1754: vcnModeTable[3 + SPON + TXON + G3ON + G1ON + i] =
1755: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + i] =
1756: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.E3t);
1757: vcnModeTable[ 3 + AHEX + G3ON + i] = (
1758: vcnModeTable[3 + AHEX + G3ON + G1ON + i] =
1759: vcnModeTable[3 + AHEX + G3ON + G2ON + i] =
1760: vcnModeTable[3 + AHEX + G3ON + G2ON + G1ON + i] =
1761: vcnModeTable[3 + AHEX + TXON + G3ON + i] =
1762: vcnModeTable[3 + AHEX + TXON + G3ON + G1ON + i] =
1763: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + i] =
1764: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
1765: vcnModeTable[3 + AHEX + SPON + G3ON + i] =
1766: vcnModeTable[3 + AHEX + SPON + G3ON + G1ON + i] =
1767: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + i] =
1768: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
1769: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + i] =
1770: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G1ON + i] =
1771: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + i] =
1772: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] = DrawingMode.XE3t);
1773:
1774:
1775: vcnModeTable[ 3 + G4ON + i] = (
1776: vcnModeTable[3 + G4ON + G1ON + i] =
1777: vcnModeTable[3 + G4ON + G2ON + i] =
1778: vcnModeTable[3 + G4ON + G2ON + G1ON + i] =
1779: vcnModeTable[3 + G4ON + G3ON + i] =
1780: vcnModeTable[3 + G4ON + G3ON + G1ON + i] =
1781: vcnModeTable[3 + G4ON + G3ON + G2ON + i] =
1782: vcnModeTable[3 + G4ON + G3ON + G2ON + G1ON + i] =
1783: vcnModeTable[3 + TXON + G4ON + i] =
1784: vcnModeTable[3 + TXON + G4ON + G1ON + i] =
1785: vcnModeTable[3 + TXON + G4ON + G2ON + i] =
1786: vcnModeTable[3 + TXON + G4ON + G2ON + G1ON + i] =
1787: vcnModeTable[3 + TXON + G4ON + G3ON + i] =
1788: vcnModeTable[3 + TXON + G4ON + G3ON + G1ON + i] =
1789: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + i] =
1790: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + G1ON + i] =
1791: vcnModeTable[3 + SPON + G4ON + i] =
1792: vcnModeTable[3 + SPON + G4ON + G1ON + i] =
1793: vcnModeTable[3 + SPON + G4ON + G2ON + i] =
1794: vcnModeTable[3 + SPON + G4ON + G2ON + G1ON + i] =
1795: vcnModeTable[3 + SPON + G4ON + G3ON + i] =
1796: vcnModeTable[3 + SPON + G4ON + G3ON + G1ON + i] =
1797: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + i] =
1798: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + G1ON + i] =
1799: vcnModeTable[3 + SPON + TXON + G4ON + i] =
1800: vcnModeTable[3 + SPON + TXON + G4ON + G1ON + i] =
1801: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + i] =
1802: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + G1ON + i] =
1803: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + i] =
1804: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G1ON + i] =
1805: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + i] =
1806: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.E4t);
1807: vcnModeTable[ 3 + AHEX + G4ON + i] = (
1808: vcnModeTable[3 + AHEX + G4ON + G1ON + i] =
1809: vcnModeTable[3 + AHEX + G4ON + G2ON + i] =
1810: vcnModeTable[3 + AHEX + G4ON + G2ON + G1ON + i] =
1811: vcnModeTable[3 + AHEX + G4ON + G3ON + i] =
1812: vcnModeTable[3 + AHEX + G4ON + G3ON + G1ON + i] =
1813: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + i] =
1814: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + G1ON + i] =
1815: vcnModeTable[3 + AHEX + TXON + G4ON + i] =
1816: vcnModeTable[3 + AHEX + TXON + G4ON + G1ON + i] =
1817: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + i] =
1818: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
1819: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + i] =
1820: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
1821: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
1822: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] =
1823: vcnModeTable[3 + AHEX + SPON + G4ON + i] =
1824: vcnModeTable[3 + AHEX + SPON + G4ON + G1ON + i] =
1825: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + i] =
1826: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
1827: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + i] =
1828: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
1829: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
1830: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] =
1831: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + i] =
1832: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G1ON + i] =
1833: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + i] =
1834: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
1835: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + i] =
1836: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
1837: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
1838: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XE4t);
1839: }
1840: }
1841:
1842:
1843:
1844: public static void vcnMakeTable1 (int grmm) {
1845:
1846:
1847:
1848: for (int ii = 0b0000_0; ii <= 0b1111_1; ii++) {
1849:
1850: int i = grmm << 6 | (ii & 0b0000_1) << 13 | (ii & 0b1111_0) << 1;
1851: int s = i >> 4 & 3;
1852: int t = i >> 2 & 3;
1853:
1854:
1855:
1856:
1857: vcnModeTable[ i] = DrawingMode.N;
1858: vcnModeTable[ AHEX + i] = DrawingMode.XN;
1859:
1860:
1861: vcnModeTable[ G1ON + i] = (
1862: vcnModeTable[ G2ON + i] =
1863: vcnModeTable[ G2ON + G1ON + i] = DrawingMode.F1t);
1864: vcnModeTable[ AHEX + G1ON + i] = (
1865: vcnModeTable[ AHEX + G2ON + i] =
1866: vcnModeTable[ AHEX + G2ON + G1ON + i] = DrawingMode.XF1t);
1867:
1868:
1869: vcnModeTable[ G3ON + i] = (
1870: vcnModeTable[ G3ON + G1ON + i] =
1871: vcnModeTable[ G3ON + G2ON + i] =
1872: vcnModeTable[ G3ON + G2ON + G1ON + i] =
1873: vcnModeTable[ G4ON + i] =
1874: vcnModeTable[ G4ON + G1ON + i] =
1875: vcnModeTable[ G4ON + G2ON + i] =
1876: vcnModeTable[ G4ON + G2ON + G1ON + i] =
1877: vcnModeTable[ G4ON + G3ON + i] =
1878: vcnModeTable[ G4ON + G3ON + G1ON + i] =
1879: vcnModeTable[ G4ON + G3ON + G2ON + i] =
1880: vcnModeTable[ G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2t);
1881: vcnModeTable[ AHEX + G3ON + i] = (
1882: vcnModeTable[ AHEX + G3ON + G1ON + i] =
1883: vcnModeTable[ AHEX + G3ON + G2ON + i] =
1884: vcnModeTable[ AHEX + G3ON + G2ON + G1ON + i] =
1885: vcnModeTable[ AHEX + G4ON + i] =
1886: vcnModeTable[ AHEX + G4ON + G1ON + i] =
1887: vcnModeTable[ AHEX + G4ON + G2ON + i] =
1888: vcnModeTable[ AHEX + G4ON + G2ON + G1ON + i] =
1889: vcnModeTable[ AHEX + G4ON + G3ON + i] =
1890: vcnModeTable[ AHEX + G4ON + G3ON + G1ON + i] =
1891: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + i] =
1892: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2t);
1893:
1894: vcnModeTable[ TXON + i] = DrawingMode.T;
1895: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
1896:
1897:
1898: vcnModeTable[ TXON + G1ON + i] = (
1899: vcnModeTable[ TXON + G2ON + i] =
1900: vcnModeTable[ TXON + G2ON + G1ON + i] = DrawingMode.F1T);
1901: vcnModeTable[ AHEX + TXON + G1ON + i] = (
1902: vcnModeTable[ AHEX + TXON + G2ON + i] =
1903: vcnModeTable[ AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XF1T);
1904:
1905:
1906: vcnModeTable[ TXON + G3ON + i] = (
1907: vcnModeTable[ TXON + G3ON + G1ON + i] =
1908: vcnModeTable[ TXON + G3ON + G2ON + i] =
1909: vcnModeTable[ TXON + G3ON + G2ON + G1ON + i] =
1910: vcnModeTable[ TXON + G4ON + i] =
1911: vcnModeTable[ TXON + G4ON + G1ON + i] =
1912: vcnModeTable[ TXON + G4ON + G2ON + i] =
1913: vcnModeTable[ TXON + G4ON + G2ON + G1ON + i] =
1914: vcnModeTable[ TXON + G4ON + G3ON + i] =
1915: vcnModeTable[ TXON + G4ON + G3ON + G1ON + i] =
1916: vcnModeTable[ TXON + G4ON + G3ON + G2ON + i] =
1917: vcnModeTable[ TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2T);
1918: vcnModeTable[ AHEX + TXON + G3ON + i] = (
1919: vcnModeTable[ AHEX + TXON + G3ON + G1ON + i] =
1920: vcnModeTable[ AHEX + TXON + G3ON + G2ON + i] =
1921: vcnModeTable[ AHEX + TXON + G3ON + G2ON + G1ON + i] =
1922: vcnModeTable[ AHEX + TXON + G4ON + i] =
1923: vcnModeTable[ AHEX + TXON + G4ON + G1ON + i] =
1924: vcnModeTable[ AHEX + TXON + G4ON + G2ON + i] =
1925: vcnModeTable[ AHEX + TXON + G4ON + G2ON + G1ON + i] =
1926: vcnModeTable[ AHEX + TXON + G4ON + G3ON + i] =
1927: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G1ON + i] =
1928: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + i] =
1929: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2T);
1930:
1931: vcnModeTable[ SPON + i] = DrawingMode.S;
1932: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
1933:
1934:
1935: vcnModeTable[ SPON + G1ON + i] = (
1936: vcnModeTable[ SPON + G2ON + i] =
1937: vcnModeTable[ SPON + G2ON + G1ON + i] = DrawingMode.F1S);
1938: vcnModeTable[ AHEX + SPON + G1ON + i] = (
1939: vcnModeTable[ AHEX + SPON + G2ON + i] =
1940: vcnModeTable[ AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XF1S);
1941:
1942:
1943: vcnModeTable[ SPON + G3ON + i] = (
1944: vcnModeTable[ SPON + G3ON + G1ON + i] =
1945: vcnModeTable[ SPON + G3ON + G2ON + i] =
1946: vcnModeTable[ SPON + G3ON + G2ON + G1ON + i] =
1947: vcnModeTable[ SPON + G4ON + i] =
1948: vcnModeTable[ SPON + G4ON + G1ON + i] =
1949: vcnModeTable[ SPON + G4ON + G2ON + i] =
1950: vcnModeTable[ SPON + G4ON + G2ON + G1ON + i] =
1951: vcnModeTable[ SPON + G4ON + G3ON + i] =
1952: vcnModeTable[ SPON + G4ON + G3ON + G1ON + i] =
1953: vcnModeTable[ SPON + G4ON + G3ON + G2ON + i] =
1954: vcnModeTable[ SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2S);
1955: vcnModeTable[ AHEX + SPON + G3ON + i] = (
1956: vcnModeTable[ AHEX + SPON + G3ON + G1ON + i] =
1957: vcnModeTable[ AHEX + SPON + G3ON + G2ON + i] =
1958: vcnModeTable[ AHEX + SPON + G3ON + G2ON + G1ON + i] =
1959: vcnModeTable[ AHEX + SPON + G4ON + i] =
1960: vcnModeTable[ AHEX + SPON + G4ON + G1ON + i] =
1961: vcnModeTable[ AHEX + SPON + G4ON + G2ON + i] =
1962: vcnModeTable[ AHEX + SPON + G4ON + G2ON + G1ON + i] =
1963: vcnModeTable[ AHEX + SPON + G4ON + G3ON + i] =
1964: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G1ON + i] =
1965: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + i] =
1966: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2S);
1967:
1968:
1969: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
1970: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
1971:
1972:
1973: vcnModeTable[ SPON + TXON + G1ON + i] = (
1974: vcnModeTable[ SPON + TXON + G2ON + i] =
1975: vcnModeTable[ SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.F1ST : DrawingMode.F1TS);
1976: vcnModeTable[ AHEX + SPON + TXON + G1ON + i] = (
1977: vcnModeTable[ AHEX + SPON + TXON + G2ON + i] =
1978: vcnModeTable[ AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XF1ST : DrawingMode.XF1TS);
1979:
1980:
1981: vcnModeTable[ SPON + TXON + G3ON + i] = (
1982: vcnModeTable[ SPON + TXON + G3ON + G1ON + i] =
1983: vcnModeTable[ SPON + TXON + G3ON + G2ON + i] =
1984: vcnModeTable[ SPON + TXON + G3ON + G2ON + G1ON + i] =
1985: vcnModeTable[ SPON + TXON + G4ON + i] =
1986: vcnModeTable[ SPON + TXON + G4ON + G1ON + i] =
1987: vcnModeTable[ SPON + TXON + G4ON + G2ON + i] =
1988: vcnModeTable[ SPON + TXON + G4ON + G2ON + G1ON + i] =
1989: vcnModeTable[ SPON + TXON + G4ON + G3ON + i] =
1990: vcnModeTable[ SPON + TXON + G4ON + G3ON + G1ON + i] =
1991: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + i] =
1992: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.F2ST : DrawingMode.F2TS);
1993: vcnModeTable[ AHEX + SPON + TXON + G3ON + i] = (
1994: vcnModeTable[ AHEX + SPON + TXON + G3ON + G1ON + i] =
1995: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + i] =
1996: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
1997: vcnModeTable[ AHEX + SPON + TXON + G4ON + i] =
1998: vcnModeTable[ AHEX + SPON + TXON + G4ON + G1ON + i] =
1999: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + i] =
2000: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2001: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + i] =
2002: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2003: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2004: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XF2ST : DrawingMode.XF2TS);
2005:
2006:
2007:
2008:
2009: vcnModeTable[ 1 + i] = DrawingMode.N;
2010: vcnModeTable[ 1 + AHEX + i] = DrawingMode.XN;
2011:
2012:
2013: vcnModeTable[ 1 + G1ON + i] = (
2014: vcnModeTable[1 + G2ON + i] =
2015: vcnModeTable[1 + G2ON + G1ON + i] = DrawingMode.F1t);
2016: vcnModeTable[ 1 + AHEX + G1ON + i] = (
2017: vcnModeTable[1 + AHEX + G2ON + i] =
2018: vcnModeTable[1 + AHEX + G2ON + G1ON + i] = DrawingMode.XF1t);
2019:
2020:
2021: vcnModeTable[ 1 + G3ON + i] = (
2022: vcnModeTable[1 + G3ON + G1ON + i] =
2023: vcnModeTable[1 + G3ON + G2ON + i] =
2024: vcnModeTable[1 + G3ON + G2ON + G1ON + i] =
2025: vcnModeTable[1 + G4ON + i] =
2026: vcnModeTable[1 + G4ON + G1ON + i] =
2027: vcnModeTable[1 + G4ON + G2ON + i] =
2028: vcnModeTable[1 + G4ON + G2ON + G1ON + i] =
2029: vcnModeTable[1 + G4ON + G3ON + i] =
2030: vcnModeTable[1 + G4ON + G3ON + G1ON + i] =
2031: vcnModeTable[1 + G4ON + G3ON + G2ON + i] =
2032: vcnModeTable[1 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2t);
2033: vcnModeTable[ 1 + AHEX + G3ON + i] = (
2034: vcnModeTable[1 + AHEX + G3ON + G1ON + i] =
2035: vcnModeTable[1 + AHEX + G3ON + G2ON + i] =
2036: vcnModeTable[1 + AHEX + G3ON + G2ON + G1ON + i] =
2037: vcnModeTable[1 + AHEX + G4ON + i] =
2038: vcnModeTable[1 + AHEX + G4ON + G1ON + i] =
2039: vcnModeTable[1 + AHEX + G4ON + G2ON + i] =
2040: vcnModeTable[1 + AHEX + G4ON + G2ON + G1ON + i] =
2041: vcnModeTable[1 + AHEX + G4ON + G3ON + i] =
2042: vcnModeTable[1 + AHEX + G4ON + G3ON + G1ON + i] =
2043: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + i] =
2044: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2t);
2045:
2046: vcnModeTable[ 1 + TXON + i] = DrawingMode.T;
2047: vcnModeTable[ 1 + AHEX + TXON + i] = DrawingMode.XT;
2048:
2049:
2050: vcnModeTable[ 1 + TXON + G1ON + i] = (
2051: vcnModeTable[1 + TXON + G2ON + i] =
2052: vcnModeTable[1 + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.F1T : DrawingMode.TF1s);
2053: vcnModeTable[ 1 + AHEX + TXON + G1ON + i] = (
2054: vcnModeTable[1 + AHEX + TXON + G2ON + i] =
2055: vcnModeTable[1 + AHEX + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XF1T : DrawingMode.XTF1s);
2056:
2057:
2058: vcnModeTable[ 1 + TXON + G3ON + i] = (
2059: vcnModeTable[1 + TXON + G3ON + G1ON + i] =
2060: vcnModeTable[1 + TXON + G3ON + G2ON + i] =
2061: vcnModeTable[1 + TXON + G3ON + G2ON + G1ON + i] =
2062: vcnModeTable[1 + TXON + G4ON + i] =
2063: vcnModeTable[1 + TXON + G4ON + G1ON + i] =
2064: vcnModeTable[1 + TXON + G4ON + G2ON + i] =
2065: vcnModeTable[1 + TXON + G4ON + G2ON + G1ON + i] =
2066: vcnModeTable[1 + TXON + G4ON + G3ON + i] =
2067: vcnModeTable[1 + TXON + G4ON + G3ON + G1ON + i] =
2068: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + i] =
2069: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.F2T : DrawingMode.TF2s);
2070: vcnModeTable[ 1 + AHEX + TXON + G3ON + i] = (
2071: vcnModeTable[1 + AHEX + TXON + G3ON + G1ON + i] =
2072: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + i] =
2073: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2074: vcnModeTable[1 + AHEX + TXON + G4ON + i] =
2075: vcnModeTable[1 + AHEX + TXON + G4ON + G1ON + i] =
2076: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + i] =
2077: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2078: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + i] =
2079: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2080: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2081: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XF2T : DrawingMode.XTF2s);
2082:
2083: vcnModeTable[ 1 + SPON + i] = DrawingMode.S;
2084: vcnModeTable[ 1 + AHEX + SPON + i] = DrawingMode.XS;
2085:
2086:
2087: vcnModeTable[ 1 + SPON + G1ON + i] = (
2088: vcnModeTable[1 + SPON + G2ON + i] =
2089: vcnModeTable[1 + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.SF1t : DrawingMode.F1S);
2090: vcnModeTable[ 1 + AHEX + SPON + G1ON + i] = (
2091: vcnModeTable[1 + AHEX + SPON + G2ON + i] =
2092: vcnModeTable[1 + AHEX + SPON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF1t : DrawingMode.XF1S);
2093:
2094:
2095: vcnModeTable[ 1 + SPON + G3ON + i] = (
2096: vcnModeTable[1 + SPON + G3ON + G1ON + i] =
2097: vcnModeTable[1 + SPON + G3ON + G2ON + i] =
2098: vcnModeTable[1 + SPON + G3ON + G2ON + G1ON + i] =
2099: vcnModeTable[1 + SPON + G4ON + i] =
2100: vcnModeTable[1 + SPON + G4ON + G1ON + i] =
2101: vcnModeTable[1 + SPON + G4ON + G2ON + i] =
2102: vcnModeTable[1 + SPON + G4ON + G2ON + G1ON + i] =
2103: vcnModeTable[1 + SPON + G4ON + G3ON + i] =
2104: vcnModeTable[1 + SPON + G4ON + G3ON + G1ON + i] =
2105: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + i] =
2106: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SF2t : DrawingMode.F2S);
2107: vcnModeTable[ 1 + AHEX + SPON + G3ON + i] = (
2108: vcnModeTable[1 + AHEX + SPON + G3ON + G1ON + i] =
2109: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + i] =
2110: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2111: vcnModeTable[1 + AHEX + SPON + G4ON + i] =
2112: vcnModeTable[1 + AHEX + SPON + G4ON + G1ON + i] =
2113: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + i] =
2114: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2115: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + i] =
2116: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2117: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2118: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF2t : DrawingMode.XF2S);
2119:
2120:
2121: vcnModeTable[ 1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2122: vcnModeTable[ 1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2123:
2124:
2125: vcnModeTable[ 1 + SPON + TXON + G1ON + i] = (
2126: vcnModeTable[1 + SPON + TXON + G2ON + i] =
2127: vcnModeTable[1 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.SF1T : DrawingMode.TF1S);
2128: vcnModeTable[ 1 + AHEX + SPON + TXON + G1ON + i] = (
2129: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + i] =
2130: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF1T : DrawingMode.XTF1S);
2131:
2132:
2133: vcnModeTable[ 1 + SPON + TXON + G3ON + i] = (
2134: vcnModeTable[1 + SPON + TXON + G3ON + G1ON + i] =
2135: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + i] =
2136: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2137: vcnModeTable[1 + SPON + TXON + G4ON + i] =
2138: vcnModeTable[1 + SPON + TXON + G4ON + G1ON + i] =
2139: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + i] =
2140: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2141: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + i] =
2142: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2143: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2144: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SF2T : DrawingMode.TF2S);
2145: vcnModeTable[ 1 + AHEX + SPON + TXON + G3ON + i] = (
2146: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2147: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2148: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2149: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + i] =
2150: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2151: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2152: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2153: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2154: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2155: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2156: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSF2T : DrawingMode.XTF2S);
2157:
2158:
2159:
2160:
2161: vcnModeTable[ 2 + i] = DrawingMode.N;
2162: vcnModeTable[ 2 + AHEX + i] = DrawingMode.XN;
2163:
2164:
2165: vcnModeTable[ 2 + G1ON + i] = (
2166: vcnModeTable[2 + G2ON + i] =
2167: vcnModeTable[2 + G2ON + G1ON + i] = DrawingMode.F1);
2168: vcnModeTable[ 2 + AHEX + G1ON + i] = (
2169: vcnModeTable[2 + AHEX + G2ON + i] =
2170: vcnModeTable[2 + AHEX + G2ON + G1ON + i] = DrawingMode.XF1);
2171:
2172:
2173: vcnModeTable[ 2 + G3ON + i] = (
2174: vcnModeTable[2 + G3ON + G1ON + i] =
2175: vcnModeTable[2 + G3ON + G2ON + i] =
2176: vcnModeTable[2 + G3ON + G2ON + G1ON + i] =
2177: vcnModeTable[2 + G4ON + i] =
2178: vcnModeTable[2 + G4ON + G1ON + i] =
2179: vcnModeTable[2 + G4ON + G2ON + i] =
2180: vcnModeTable[2 + G4ON + G2ON + G1ON + i] =
2181: vcnModeTable[2 + G4ON + G3ON + i] =
2182: vcnModeTable[2 + G4ON + G3ON + G1ON + i] =
2183: vcnModeTable[2 + G4ON + G3ON + G2ON + i] =
2184: vcnModeTable[2 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2);
2185: vcnModeTable[ 2 + AHEX + G3ON + i] = (
2186: vcnModeTable[2 + AHEX + G3ON + G1ON + i] =
2187: vcnModeTable[2 + AHEX + G3ON + G2ON + i] =
2188: vcnModeTable[2 + AHEX + G3ON + G2ON + G1ON + i] =
2189: vcnModeTable[2 + AHEX + G4ON + i] =
2190: vcnModeTable[2 + AHEX + G4ON + G1ON + i] =
2191: vcnModeTable[2 + AHEX + G4ON + G2ON + i] =
2192: vcnModeTable[2 + AHEX + G4ON + G2ON + G1ON + i] =
2193: vcnModeTable[2 + AHEX + G4ON + G3ON + i] =
2194: vcnModeTable[2 + AHEX + G4ON + G3ON + G1ON + i] =
2195: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + i] =
2196: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2);
2197:
2198: vcnModeTable[ 2 + TXON + i] = DrawingMode.T;
2199: vcnModeTable[ 2 + AHEX + TXON + i] = DrawingMode.XT;
2200:
2201:
2202: vcnModeTable[ 2 + TXON + G1ON + i] = (
2203: vcnModeTable[2 + TXON + G2ON + i] =
2204: vcnModeTable[2 + TXON + G2ON + G1ON + i] = DrawingMode.TF1);
2205: vcnModeTable[ 2 + AHEX + TXON + G1ON + i] = (
2206: vcnModeTable[2 + AHEX + TXON + G2ON + i] =
2207: vcnModeTable[2 + AHEX + TXON + G2ON + G1ON + i] = DrawingMode.XTF1);
2208:
2209:
2210: vcnModeTable[ 2 + TXON + G3ON + i] = (
2211: vcnModeTable[2 + TXON + G3ON + G1ON + i] =
2212: vcnModeTable[2 + TXON + G3ON + G2ON + i] =
2213: vcnModeTable[2 + TXON + G3ON + G2ON + G1ON + i] =
2214: vcnModeTable[2 + TXON + G4ON + i] =
2215: vcnModeTable[2 + TXON + G4ON + G1ON + i] =
2216: vcnModeTable[2 + TXON + G4ON + G2ON + i] =
2217: vcnModeTable[2 + TXON + G4ON + G2ON + G1ON + i] =
2218: vcnModeTable[2 + TXON + G4ON + G3ON + i] =
2219: vcnModeTable[2 + TXON + G4ON + G3ON + G1ON + i] =
2220: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + i] =
2221: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.TF2);
2222: vcnModeTable[ 2 + AHEX + TXON + G3ON + i] = (
2223: vcnModeTable[2 + AHEX + TXON + G3ON + G1ON + i] =
2224: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + i] =
2225: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2226: vcnModeTable[2 + AHEX + TXON + G4ON + i] =
2227: vcnModeTable[2 + AHEX + TXON + G4ON + G1ON + i] =
2228: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + i] =
2229: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2230: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + i] =
2231: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2232: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2233: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XTF2);
2234:
2235: vcnModeTable[ 2 + SPON + i] = DrawingMode.S;
2236: vcnModeTable[ 2 + AHEX + SPON + i] = DrawingMode.XS;
2237:
2238:
2239: vcnModeTable[ 2 + SPON + G1ON + i] = (
2240: vcnModeTable[2 + SPON + G2ON + i] =
2241: vcnModeTable[2 + SPON + G2ON + G1ON + i] = DrawingMode.SF1);
2242: vcnModeTable[ 2 + AHEX + SPON + G1ON + i] = (
2243: vcnModeTable[2 + AHEX + SPON + G2ON + i] =
2244: vcnModeTable[2 + AHEX + SPON + G2ON + G1ON + i] = DrawingMode.XSF1);
2245:
2246:
2247: vcnModeTable[ 2 + SPON + G3ON + i] = (
2248: vcnModeTable[2 + SPON + G3ON + G1ON + i] =
2249: vcnModeTable[2 + SPON + G3ON + G2ON + i] =
2250: vcnModeTable[2 + SPON + G3ON + G2ON + G1ON + i] =
2251: vcnModeTable[2 + SPON + G4ON + i] =
2252: vcnModeTable[2 + SPON + G4ON + G1ON + i] =
2253: vcnModeTable[2 + SPON + G4ON + G2ON + i] =
2254: vcnModeTable[2 + SPON + G4ON + G2ON + G1ON + i] =
2255: vcnModeTable[2 + SPON + G4ON + G3ON + i] =
2256: vcnModeTable[2 + SPON + G4ON + G3ON + G1ON + i] =
2257: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + i] =
2258: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.SF2);
2259: vcnModeTable[ 2 + AHEX + SPON + G3ON + i] = (
2260: vcnModeTable[2 + AHEX + SPON + G3ON + G1ON + i] =
2261: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + i] =
2262: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2263: vcnModeTable[2 + AHEX + SPON + G4ON + i] =
2264: vcnModeTable[2 + AHEX + SPON + G4ON + G1ON + i] =
2265: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + i] =
2266: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2267: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + i] =
2268: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2269: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2270: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XSF2);
2271:
2272:
2273: vcnModeTable[ 2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2274: vcnModeTable[ 2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2275:
2276:
2277: vcnModeTable[ 2 + SPON + TXON + G1ON + i] = (
2278: vcnModeTable[2 + SPON + TXON + G2ON + i] =
2279: vcnModeTable[2 + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.STF1 : DrawingMode.TSF1);
2280: vcnModeTable[ 2 + AHEX + SPON + TXON + G1ON + i] = (
2281: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + i] =
2282: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTF1 : DrawingMode.XTSF1);
2283:
2284:
2285: vcnModeTable[ 2 + SPON + TXON + G3ON + i] = (
2286: vcnModeTable[2 + SPON + TXON + G3ON + G1ON + i] =
2287: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + i] =
2288: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2289: vcnModeTable[2 + SPON + TXON + G4ON + i] =
2290: vcnModeTable[2 + SPON + TXON + G4ON + G1ON + i] =
2291: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + i] =
2292: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2293: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + i] =
2294: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2295: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2296: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STF2 : DrawingMode.TSF2);
2297: vcnModeTable[ 2 + AHEX + SPON + TXON + G3ON + i] = (
2298: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2299: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2300: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2301: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + i] =
2302: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2303: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2304: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2305: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2306: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2307: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2308: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTF2 : DrawingMode.XTSF2);
2309:
2310:
2311:
2312:
2313: vcnModeTable[ 3 + i] = (
2314: vcnModeTable[3 + TXON + i] =
2315: vcnModeTable[3 + SPON + i] =
2316: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
2317: vcnModeTable[ 3 + AHEX + i] = (
2318: vcnModeTable[3 + AHEX + TXON + i] =
2319: vcnModeTable[3 + AHEX + SPON + i] =
2320: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
2321:
2322:
2323: vcnModeTable[ 3 + G1ON + i] = (
2324: vcnModeTable[3 + TXON + G1ON + i] =
2325: vcnModeTable[3 + SPON + G1ON + i] =
2326: vcnModeTable[3 + SPON + TXON + G1ON + i] =
2327: vcnModeTable[3 + G2ON + i] =
2328: vcnModeTable[3 + TXON + G2ON + i] =
2329: vcnModeTable[3 + SPON + G2ON + i] =
2330: vcnModeTable[3 + SPON + TXON + G2ON + i] =
2331: vcnModeTable[3 + G2ON + G1ON + i] =
2332: vcnModeTable[3 + TXON + G2ON + G1ON + i] =
2333: vcnModeTable[3 + SPON + G2ON + G1ON + i] =
2334: vcnModeTable[3 + SPON + TXON + G2ON + G1ON + i] = DrawingMode.F1t);
2335: vcnModeTable[ 3 + AHEX + G1ON + i] = (
2336: vcnModeTable[3 + AHEX + TXON + G1ON + i] =
2337: vcnModeTable[3 + AHEX + SPON + G1ON + i] =
2338: vcnModeTable[3 + AHEX + SPON + TXON + G1ON + i] =
2339: vcnModeTable[3 + AHEX + G2ON + i] =
2340: vcnModeTable[3 + AHEX + TXON + G2ON + i] =
2341: vcnModeTable[3 + AHEX + SPON + G2ON + i] =
2342: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + i] =
2343: vcnModeTable[3 + AHEX + G2ON + G1ON + i] =
2344: vcnModeTable[3 + AHEX + TXON + G2ON + G1ON + i] =
2345: vcnModeTable[3 + AHEX + SPON + G2ON + G1ON + i] =
2346: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + G1ON + i] = DrawingMode.XF1t);
2347:
2348:
2349: vcnModeTable[ 3 + G3ON + i] = (
2350: vcnModeTable[3 + G3ON + G1ON + i] =
2351: vcnModeTable[3 + G3ON + G2ON + i] =
2352: vcnModeTable[3 + G3ON + G2ON + G1ON + i] =
2353: vcnModeTable[3 + TXON + G3ON + i] =
2354: vcnModeTable[3 + TXON + G3ON + G1ON + i] =
2355: vcnModeTable[3 + TXON + G3ON + G2ON + i] =
2356: vcnModeTable[3 + TXON + G3ON + G2ON + G1ON + i] =
2357: vcnModeTable[3 + SPON + G3ON + i] =
2358: vcnModeTable[3 + SPON + G3ON + G1ON + i] =
2359: vcnModeTable[3 + SPON + G3ON + G2ON + i] =
2360: vcnModeTable[3 + SPON + G3ON + G2ON + G1ON + i] =
2361: vcnModeTable[3 + SPON + TXON + G3ON + i] =
2362: vcnModeTable[3 + SPON + TXON + G3ON + G1ON + i] =
2363: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + i] =
2364: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2365: vcnModeTable[3 + G4ON + i] =
2366: vcnModeTable[3 + G4ON + G1ON + i] =
2367: vcnModeTable[3 + G4ON + G2ON + i] =
2368: vcnModeTable[3 + G4ON + G2ON + G1ON + i] =
2369: vcnModeTable[3 + TXON + G4ON + i] =
2370: vcnModeTable[3 + TXON + G4ON + G1ON + i] =
2371: vcnModeTable[3 + TXON + G4ON + G2ON + i] =
2372: vcnModeTable[3 + TXON + G4ON + G2ON + G1ON + i] =
2373: vcnModeTable[3 + SPON + G4ON + i] =
2374: vcnModeTable[3 + SPON + G4ON + G1ON + i] =
2375: vcnModeTable[3 + SPON + G4ON + G2ON + i] =
2376: vcnModeTable[3 + SPON + G4ON + G2ON + G1ON + i] =
2377: vcnModeTable[3 + SPON + TXON + G4ON + i] =
2378: vcnModeTable[3 + SPON + TXON + G4ON + G1ON + i] =
2379: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + i] =
2380: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2381: vcnModeTable[3 + G4ON + G3ON + i] =
2382: vcnModeTable[3 + G4ON + G3ON + G1ON + i] =
2383: vcnModeTable[3 + G4ON + G3ON + G2ON + i] =
2384: vcnModeTable[3 + G4ON + G3ON + G2ON + G1ON + i] =
2385: vcnModeTable[3 + TXON + G4ON + G3ON + i] =
2386: vcnModeTable[3 + TXON + G4ON + G3ON + G1ON + i] =
2387: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + i] =
2388: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2389: vcnModeTable[3 + SPON + G4ON + G3ON + i] =
2390: vcnModeTable[3 + SPON + G4ON + G3ON + G1ON + i] =
2391: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + i] =
2392: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + G1ON + i] =
2393: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + i] =
2394: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2395: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2396: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.F2t);
2397: vcnModeTable[ 3 + AHEX + G3ON + i] = (
2398: vcnModeTable[3 + AHEX + G3ON + G1ON + i] =
2399: vcnModeTable[3 + AHEX + G3ON + G2ON + i] =
2400: vcnModeTable[3 + AHEX + G3ON + G2ON + G1ON + i] =
2401: vcnModeTable[3 + AHEX + TXON + G3ON + i] =
2402: vcnModeTable[3 + AHEX + TXON + G3ON + G1ON + i] =
2403: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + i] =
2404: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2405: vcnModeTable[3 + AHEX + SPON + G3ON + i] =
2406: vcnModeTable[3 + AHEX + SPON + G3ON + G1ON + i] =
2407: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + i] =
2408: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2409: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + i] =
2410: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2411: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2412: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2413: vcnModeTable[3 + AHEX + G4ON + i] =
2414: vcnModeTable[3 + AHEX + G4ON + G1ON + i] =
2415: vcnModeTable[3 + AHEX + G4ON + G2ON + i] =
2416: vcnModeTable[3 + AHEX + G4ON + G2ON + G1ON + i] =
2417: vcnModeTable[3 + AHEX + TXON + G4ON + i] =
2418: vcnModeTable[3 + AHEX + TXON + G4ON + G1ON + i] =
2419: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + i] =
2420: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2421: vcnModeTable[3 + AHEX + SPON + G4ON + i] =
2422: vcnModeTable[3 + AHEX + SPON + G4ON + G1ON + i] =
2423: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + i] =
2424: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2425: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + i] =
2426: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2427: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2428: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2429: vcnModeTable[3 + AHEX + G4ON + G3ON + i] =
2430: vcnModeTable[3 + AHEX + G4ON + G3ON + G1ON + i] =
2431: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + i] =
2432: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + G1ON + i] =
2433: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + i] =
2434: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2435: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2436: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2437: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + i] =
2438: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2439: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2440: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] =
2441: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2442: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2443: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2444: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XF2t);
2445: }
2446: }
2447:
2448:
2449:
2450: public static void vcnMakeTable3 (int grmm) {
2451:
2452:
2453:
2454: for (int ii = 0b0000_0; ii <= 0b1111_1; ii++) {
2455:
2456: int i = grmm << 6 | (ii & 0b0000_1) << 13 | (ii & 0b1111_0) << 1;
2457: int s = i >> 4 & 3;
2458: int t = i >> 2 & 3;
2459:
2460:
2461:
2462:
2463: vcnModeTable[ i] = DrawingMode.N;
2464: vcnModeTable[ AHEX + i] = DrawingMode.XN;
2465:
2466:
2467: vcnModeTable[ G1ON + i] = (
2468: vcnModeTable[ G2ON + i] =
2469: vcnModeTable[ G2ON + G1ON + i] =
2470: vcnModeTable[ G3ON + i] =
2471: vcnModeTable[ G3ON + G1ON + i] =
2472: vcnModeTable[ G3ON + G2ON + i] =
2473: vcnModeTable[ G3ON + G2ON + G1ON + i] =
2474: vcnModeTable[ G4ON + i] =
2475: vcnModeTable[ G4ON + G1ON + i] =
2476: vcnModeTable[ G4ON + G2ON + i] =
2477: vcnModeTable[ G4ON + G2ON + G1ON + i] =
2478: vcnModeTable[ G4ON + G3ON + i] =
2479: vcnModeTable[ G4ON + G3ON + G1ON + i] =
2480: vcnModeTable[ G4ON + G3ON + G2ON + i] =
2481: vcnModeTable[ G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.Gt);
2482: vcnModeTable[ AHEX + G1ON + i] = (
2483: vcnModeTable[ AHEX + G2ON + i] =
2484: vcnModeTable[ AHEX + G2ON + G1ON + i] =
2485: vcnModeTable[ AHEX + G3ON + i] =
2486: vcnModeTable[ AHEX + G3ON + G1ON + i] =
2487: vcnModeTable[ AHEX + G3ON + G2ON + i] =
2488: vcnModeTable[ AHEX + G3ON + G2ON + G1ON + i] =
2489: vcnModeTable[ AHEX + G4ON + i] =
2490: vcnModeTable[ AHEX + G4ON + G1ON + i] =
2491: vcnModeTable[ AHEX + G4ON + G2ON + i] =
2492: vcnModeTable[ AHEX + G4ON + G2ON + G1ON + i] =
2493: vcnModeTable[ AHEX + G4ON + G3ON + i] =
2494: vcnModeTable[ AHEX + G4ON + G3ON + G1ON + i] =
2495: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + i] =
2496: vcnModeTable[ AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGt);
2497:
2498: vcnModeTable[ TXON + i] = DrawingMode.T;
2499: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
2500:
2501:
2502: vcnModeTable[ TXON + G1ON + i] = (
2503: vcnModeTable[ TXON + G2ON + i] =
2504: vcnModeTable[ TXON + G2ON + G1ON + i] =
2505: vcnModeTable[ TXON + G3ON + i] =
2506: vcnModeTable[ TXON + G3ON + G1ON + i] =
2507: vcnModeTable[ TXON + G3ON + G2ON + i] =
2508: vcnModeTable[ TXON + G3ON + G2ON + G1ON + i] =
2509: vcnModeTable[ TXON + G4ON + i] =
2510: vcnModeTable[ TXON + G4ON + G1ON + i] =
2511: vcnModeTable[ TXON + G4ON + G2ON + i] =
2512: vcnModeTable[ TXON + G4ON + G2ON + G1ON + i] =
2513: vcnModeTable[ TXON + G4ON + G3ON + i] =
2514: vcnModeTable[ TXON + G4ON + G3ON + G1ON + i] =
2515: vcnModeTable[ TXON + G4ON + G3ON + G2ON + i] =
2516: vcnModeTable[ TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.GT);
2517: vcnModeTable[ AHEX + TXON + G1ON + i] = (
2518: vcnModeTable[ AHEX + TXON + G2ON + i] =
2519: vcnModeTable[ AHEX + TXON + G2ON + G1ON + i] =
2520: vcnModeTable[ AHEX + TXON + G3ON + i] =
2521: vcnModeTable[ AHEX + TXON + G3ON + G1ON + i] =
2522: vcnModeTable[ AHEX + TXON + G3ON + G2ON + i] =
2523: vcnModeTable[ AHEX + TXON + G3ON + G2ON + G1ON + i] =
2524: vcnModeTable[ AHEX + TXON + G4ON + i] =
2525: vcnModeTable[ AHEX + TXON + G4ON + G1ON + i] =
2526: vcnModeTable[ AHEX + TXON + G4ON + G2ON + i] =
2527: vcnModeTable[ AHEX + TXON + G4ON + G2ON + G1ON + i] =
2528: vcnModeTable[ AHEX + TXON + G4ON + G3ON + i] =
2529: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G1ON + i] =
2530: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + i] =
2531: vcnModeTable[ AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGT);
2532:
2533: vcnModeTable[ SPON + i] = DrawingMode.S;
2534: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
2535:
2536:
2537: vcnModeTable[ SPON + G1ON + i] = (
2538: vcnModeTable[ SPON + G2ON + i] =
2539: vcnModeTable[ SPON + G2ON + G1ON + i] =
2540: vcnModeTable[ SPON + G3ON + i] =
2541: vcnModeTable[ SPON + G3ON + G1ON + i] =
2542: vcnModeTable[ SPON + G3ON + G2ON + i] =
2543: vcnModeTable[ SPON + G3ON + G2ON + G1ON + i] =
2544: vcnModeTable[ SPON + G4ON + i] =
2545: vcnModeTable[ SPON + G4ON + G1ON + i] =
2546: vcnModeTable[ SPON + G4ON + G2ON + i] =
2547: vcnModeTable[ SPON + G4ON + G2ON + G1ON + i] =
2548: vcnModeTable[ SPON + G4ON + G3ON + i] =
2549: vcnModeTable[ SPON + G4ON + G3ON + G1ON + i] =
2550: vcnModeTable[ SPON + G4ON + G3ON + G2ON + i] =
2551: vcnModeTable[ SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.GS);
2552: vcnModeTable[ AHEX + SPON + G1ON + i] = (
2553: vcnModeTable[ AHEX + SPON + G2ON + i] =
2554: vcnModeTable[ AHEX + SPON + G2ON + G1ON + i] =
2555: vcnModeTable[ AHEX + SPON + G3ON + i] =
2556: vcnModeTable[ AHEX + SPON + G3ON + G1ON + i] =
2557: vcnModeTable[ AHEX + SPON + G3ON + G2ON + i] =
2558: vcnModeTable[ AHEX + SPON + G3ON + G2ON + G1ON + i] =
2559: vcnModeTable[ AHEX + SPON + G4ON + i] =
2560: vcnModeTable[ AHEX + SPON + G4ON + G1ON + i] =
2561: vcnModeTable[ AHEX + SPON + G4ON + G2ON + i] =
2562: vcnModeTable[ AHEX + SPON + G4ON + G2ON + G1ON + i] =
2563: vcnModeTable[ AHEX + SPON + G4ON + G3ON + i] =
2564: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G1ON + i] =
2565: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + i] =
2566: vcnModeTable[ AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGS);
2567:
2568:
2569: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2570: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2571:
2572:
2573: vcnModeTable[ SPON + TXON + G1ON + i] = (
2574: vcnModeTable[ SPON + TXON + G2ON + i] =
2575: vcnModeTable[ SPON + TXON + G2ON + G1ON + i] =
2576: vcnModeTable[ SPON + TXON + G3ON + i] =
2577: vcnModeTable[ SPON + TXON + G3ON + G1ON + i] =
2578: vcnModeTable[ SPON + TXON + G3ON + G2ON + i] =
2579: vcnModeTable[ SPON + TXON + G3ON + G2ON + G1ON + i] =
2580: vcnModeTable[ SPON + TXON + G4ON + i] =
2581: vcnModeTable[ SPON + TXON + G4ON + G1ON + i] =
2582: vcnModeTable[ SPON + TXON + G4ON + G2ON + i] =
2583: vcnModeTable[ SPON + TXON + G4ON + G2ON + G1ON + i] =
2584: vcnModeTable[ SPON + TXON + G4ON + G3ON + i] =
2585: vcnModeTable[ SPON + TXON + G4ON + G3ON + G1ON + i] =
2586: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + i] =
2587: vcnModeTable[ SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.GST : DrawingMode.GTS);
2588: vcnModeTable[ AHEX + SPON + TXON + G1ON + i] = (
2589: vcnModeTable[ AHEX + SPON + TXON + G2ON + i] =
2590: vcnModeTable[ AHEX + SPON + TXON + G2ON + G1ON + i] =
2591: vcnModeTable[ AHEX + SPON + TXON + G3ON + i] =
2592: vcnModeTable[ AHEX + SPON + TXON + G3ON + G1ON + i] =
2593: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + i] =
2594: vcnModeTable[ AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2595: vcnModeTable[ AHEX + SPON + TXON + G4ON + i] =
2596: vcnModeTable[ AHEX + SPON + TXON + G4ON + G1ON + i] =
2597: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + i] =
2598: vcnModeTable[ AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2599: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + i] =
2600: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2601: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2602: vcnModeTable[ AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XGST : DrawingMode.XGTS);
2603:
2604:
2605:
2606:
2607: vcnModeTable[ 1 + i] = DrawingMode.N;
2608: vcnModeTable[ 1 + AHEX + i] = DrawingMode.XN;
2609:
2610:
2611: vcnModeTable[ 1 + G1ON + i] = (
2612: vcnModeTable[1 + G2ON + i] =
2613: vcnModeTable[1 + G2ON + G1ON + i] =
2614: vcnModeTable[1 + G3ON + i] =
2615: vcnModeTable[1 + G3ON + G1ON + i] =
2616: vcnModeTable[1 + G3ON + G2ON + i] =
2617: vcnModeTable[1 + G3ON + G2ON + G1ON + i] =
2618: vcnModeTable[1 + G4ON + i] =
2619: vcnModeTable[1 + G4ON + G1ON + i] =
2620: vcnModeTable[1 + G4ON + G2ON + i] =
2621: vcnModeTable[1 + G4ON + G2ON + G1ON + i] =
2622: vcnModeTable[1 + G4ON + G3ON + i] =
2623: vcnModeTable[1 + G4ON + G3ON + G1ON + i] =
2624: vcnModeTable[1 + G4ON + G3ON + G2ON + i] =
2625: vcnModeTable[1 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.Gt);
2626: vcnModeTable[ 1 + AHEX + G1ON + i] = (
2627: vcnModeTable[1 + AHEX + G2ON + i] =
2628: vcnModeTable[1 + AHEX + G2ON + G1ON + i] =
2629: vcnModeTable[1 + AHEX + G3ON + i] =
2630: vcnModeTable[1 + AHEX + G3ON + G1ON + i] =
2631: vcnModeTable[1 + AHEX + G3ON + G2ON + i] =
2632: vcnModeTable[1 + AHEX + G3ON + G2ON + G1ON + i] =
2633: vcnModeTable[1 + AHEX + G4ON + i] =
2634: vcnModeTable[1 + AHEX + G4ON + G1ON + i] =
2635: vcnModeTable[1 + AHEX + G4ON + G2ON + i] =
2636: vcnModeTable[1 + AHEX + G4ON + G2ON + G1ON + i] =
2637: vcnModeTable[1 + AHEX + G4ON + G3ON + i] =
2638: vcnModeTable[1 + AHEX + G4ON + G3ON + G1ON + i] =
2639: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + i] =
2640: vcnModeTable[1 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGt);
2641:
2642: vcnModeTable[ 1 + TXON + i] = DrawingMode.T;
2643: vcnModeTable[ 1 + AHEX + TXON + i] = DrawingMode.XT;
2644:
2645:
2646: vcnModeTable[ 1 + TXON + G1ON + i] = (
2647: vcnModeTable[1 + TXON + G2ON + i] =
2648: vcnModeTable[1 + TXON + G2ON + G1ON + i] =
2649: vcnModeTable[1 + TXON + G3ON + i] =
2650: vcnModeTable[1 + TXON + G3ON + G1ON + i] =
2651: vcnModeTable[1 + TXON + G3ON + G2ON + i] =
2652: vcnModeTable[1 + TXON + G3ON + G2ON + G1ON + i] =
2653: vcnModeTable[1 + TXON + G4ON + i] =
2654: vcnModeTable[1 + TXON + G4ON + G1ON + i] =
2655: vcnModeTable[1 + TXON + G4ON + G2ON + i] =
2656: vcnModeTable[1 + TXON + G4ON + G2ON + G1ON + i] =
2657: vcnModeTable[1 + TXON + G4ON + G3ON + i] =
2658: vcnModeTable[1 + TXON + G4ON + G3ON + G1ON + i] =
2659: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + i] =
2660: vcnModeTable[1 + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.GT : DrawingMode.TGs);
2661: vcnModeTable[ 1 + AHEX + TXON + G1ON + i] = (
2662: vcnModeTable[1 + AHEX + TXON + G2ON + i] =
2663: vcnModeTable[1 + AHEX + TXON + G2ON + G1ON + i] =
2664: vcnModeTable[1 + AHEX + TXON + G3ON + i] =
2665: vcnModeTable[1 + AHEX + TXON + G3ON + G1ON + i] =
2666: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + i] =
2667: vcnModeTable[1 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2668: vcnModeTable[1 + AHEX + TXON + G4ON + i] =
2669: vcnModeTable[1 + AHEX + TXON + G4ON + G1ON + i] =
2670: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + i] =
2671: vcnModeTable[1 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2672: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + i] =
2673: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2674: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2675: vcnModeTable[1 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XGT : DrawingMode.XTGs);
2676:
2677: vcnModeTable[ 1 + SPON + i] = DrawingMode.S;
2678: vcnModeTable[ 1 + AHEX + SPON + i] = DrawingMode.XS;
2679:
2680:
2681: vcnModeTable[ 1 + SPON + G1ON + i] = (
2682: vcnModeTable[1 + SPON + G2ON + i] =
2683: vcnModeTable[1 + SPON + G2ON + G1ON + i] =
2684: vcnModeTable[1 + SPON + G3ON + i] =
2685: vcnModeTable[1 + SPON + G3ON + G1ON + i] =
2686: vcnModeTable[1 + SPON + G3ON + G2ON + i] =
2687: vcnModeTable[1 + SPON + G3ON + G2ON + G1ON + i] =
2688: vcnModeTable[1 + SPON + G4ON + i] =
2689: vcnModeTable[1 + SPON + G4ON + G1ON + i] =
2690: vcnModeTable[1 + SPON + G4ON + G2ON + i] =
2691: vcnModeTable[1 + SPON + G4ON + G2ON + G1ON + i] =
2692: vcnModeTable[1 + SPON + G4ON + G3ON + i] =
2693: vcnModeTable[1 + SPON + G4ON + G3ON + G1ON + i] =
2694: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + i] =
2695: vcnModeTable[1 + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SGt : DrawingMode.GS);
2696: vcnModeTable[ 1 + AHEX + SPON + G1ON + i] = (
2697: vcnModeTable[1 + AHEX + SPON + G2ON + i] =
2698: vcnModeTable[1 + AHEX + SPON + G2ON + G1ON + i] =
2699: vcnModeTable[1 + AHEX + SPON + G3ON + i] =
2700: vcnModeTable[1 + AHEX + SPON + G3ON + G1ON + i] =
2701: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + i] =
2702: vcnModeTable[1 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2703: vcnModeTable[1 + AHEX + SPON + G4ON + i] =
2704: vcnModeTable[1 + AHEX + SPON + G4ON + G1ON + i] =
2705: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + i] =
2706: vcnModeTable[1 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2707: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + i] =
2708: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2709: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2710: vcnModeTable[1 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSGt : DrawingMode.XGS);
2711:
2712:
2713: vcnModeTable[ 1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2714: vcnModeTable[ 1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2715:
2716:
2717: vcnModeTable[ 1 + SPON + TXON + G1ON + i] = (
2718: vcnModeTable[1 + SPON + TXON + G2ON + i] =
2719: vcnModeTable[1 + SPON + TXON + G2ON + G1ON + i] =
2720: vcnModeTable[1 + SPON + TXON + G3ON + i] =
2721: vcnModeTable[1 + SPON + TXON + G3ON + G1ON + i] =
2722: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + i] =
2723: vcnModeTable[1 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2724: vcnModeTable[1 + SPON + TXON + G4ON + i] =
2725: vcnModeTable[1 + SPON + TXON + G4ON + G1ON + i] =
2726: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + i] =
2727: vcnModeTable[1 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2728: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + i] =
2729: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2730: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2731: vcnModeTable[1 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.SGT : DrawingMode.TGS);
2732: vcnModeTable[ 1 + AHEX + SPON + TXON + G1ON + i] = (
2733: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + i] =
2734: vcnModeTable[1 + AHEX + SPON + TXON + G2ON + G1ON + i] =
2735: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + i] =
2736: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2737: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2738: vcnModeTable[1 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2739: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + i] =
2740: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2741: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2742: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2743: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2744: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2745: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2746: vcnModeTable[1 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSGT : DrawingMode.XTGS);
2747:
2748:
2749:
2750:
2751: vcnModeTable[ 2 + i] = DrawingMode.N;
2752: vcnModeTable[ 2 + AHEX + i] = DrawingMode.XN;
2753:
2754:
2755: vcnModeTable[ 2 + G1ON + i] = (
2756: vcnModeTable[2 + G2ON + i] =
2757: vcnModeTable[2 + G2ON + G1ON + i] =
2758: vcnModeTable[2 + G3ON + i] =
2759: vcnModeTable[2 + G3ON + G1ON + i] =
2760: vcnModeTable[2 + G3ON + G2ON + i] =
2761: vcnModeTable[2 + G3ON + G2ON + G1ON + i] =
2762: vcnModeTable[2 + G4ON + i] =
2763: vcnModeTable[2 + G4ON + G1ON + i] =
2764: vcnModeTable[2 + G4ON + G2ON + i] =
2765: vcnModeTable[2 + G4ON + G2ON + G1ON + i] =
2766: vcnModeTable[2 + G4ON + G3ON + i] =
2767: vcnModeTable[2 + G4ON + G3ON + G1ON + i] =
2768: vcnModeTable[2 + G4ON + G3ON + G2ON + i] =
2769: vcnModeTable[2 + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.G);
2770: vcnModeTable[ 2 + AHEX + G1ON + i] = (
2771: vcnModeTable[2 + AHEX + G2ON + i] =
2772: vcnModeTable[2 + AHEX + G2ON + G1ON + i] =
2773: vcnModeTable[2 + AHEX + G3ON + i] =
2774: vcnModeTable[2 + AHEX + G3ON + G1ON + i] =
2775: vcnModeTable[2 + AHEX + G3ON + G2ON + i] =
2776: vcnModeTable[2 + AHEX + G3ON + G2ON + G1ON + i] =
2777: vcnModeTable[2 + AHEX + G4ON + i] =
2778: vcnModeTable[2 + AHEX + G4ON + G1ON + i] =
2779: vcnModeTable[2 + AHEX + G4ON + G2ON + i] =
2780: vcnModeTable[2 + AHEX + G4ON + G2ON + G1ON + i] =
2781: vcnModeTable[2 + AHEX + G4ON + G3ON + i] =
2782: vcnModeTable[2 + AHEX + G4ON + G3ON + G1ON + i] =
2783: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + i] =
2784: vcnModeTable[2 + AHEX + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XG);
2785:
2786: vcnModeTable[ 2 + TXON + i] = DrawingMode.T;
2787: vcnModeTable[ 2 + AHEX + TXON + i] = DrawingMode.XT;
2788:
2789:
2790: vcnModeTable[ 2 + TXON + G1ON + i] = (
2791: vcnModeTable[2 + TXON + G2ON + i] =
2792: vcnModeTable[2 + TXON + G2ON + G1ON + i] =
2793: vcnModeTable[2 + TXON + G3ON + i] =
2794: vcnModeTable[2 + TXON + G3ON + G1ON + i] =
2795: vcnModeTable[2 + TXON + G3ON + G2ON + i] =
2796: vcnModeTable[2 + TXON + G3ON + G2ON + G1ON + i] =
2797: vcnModeTable[2 + TXON + G4ON + i] =
2798: vcnModeTable[2 + TXON + G4ON + G1ON + i] =
2799: vcnModeTable[2 + TXON + G4ON + G2ON + i] =
2800: vcnModeTable[2 + TXON + G4ON + G2ON + G1ON + i] =
2801: vcnModeTable[2 + TXON + G4ON + G3ON + i] =
2802: vcnModeTable[2 + TXON + G4ON + G3ON + G1ON + i] =
2803: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + i] =
2804: vcnModeTable[2 + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.TG);
2805: vcnModeTable[ 2 + AHEX + TXON + G1ON + i] = (
2806: vcnModeTable[2 + AHEX + TXON + G2ON + i] =
2807: vcnModeTable[2 + AHEX + TXON + G2ON + G1ON + i] =
2808: vcnModeTable[2 + AHEX + TXON + G3ON + i] =
2809: vcnModeTable[2 + AHEX + TXON + G3ON + G1ON + i] =
2810: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + i] =
2811: vcnModeTable[2 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2812: vcnModeTable[2 + AHEX + TXON + G4ON + i] =
2813: vcnModeTable[2 + AHEX + TXON + G4ON + G1ON + i] =
2814: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + i] =
2815: vcnModeTable[2 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2816: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + i] =
2817: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2818: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2819: vcnModeTable[2 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XTG);
2820:
2821: vcnModeTable[ 2 + SPON + i] = DrawingMode.S;
2822: vcnModeTable[ 2 + AHEX + SPON + i] = DrawingMode.XS;
2823:
2824:
2825: vcnModeTable[ 2 + SPON + G1ON + i] = (
2826: vcnModeTable[2 + SPON + G2ON + i] =
2827: vcnModeTable[2 + SPON + G2ON + G1ON + i] =
2828: vcnModeTable[2 + SPON + G3ON + i] =
2829: vcnModeTable[2 + SPON + G3ON + G1ON + i] =
2830: vcnModeTable[2 + SPON + G3ON + G2ON + i] =
2831: vcnModeTable[2 + SPON + G3ON + G2ON + G1ON + i] =
2832: vcnModeTable[2 + SPON + G4ON + i] =
2833: vcnModeTable[2 + SPON + G4ON + G1ON + i] =
2834: vcnModeTable[2 + SPON + G4ON + G2ON + i] =
2835: vcnModeTable[2 + SPON + G4ON + G2ON + G1ON + i] =
2836: vcnModeTable[2 + SPON + G4ON + G3ON + i] =
2837: vcnModeTable[2 + SPON + G4ON + G3ON + G1ON + i] =
2838: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + i] =
2839: vcnModeTable[2 + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.SG);
2840: vcnModeTable[ 2 + AHEX + SPON + G1ON + i] = (
2841: vcnModeTable[2 + AHEX + SPON + G2ON + i] =
2842: vcnModeTable[2 + AHEX + SPON + G2ON + G1ON + i] =
2843: vcnModeTable[2 + AHEX + SPON + G3ON + i] =
2844: vcnModeTable[2 + AHEX + SPON + G3ON + G1ON + i] =
2845: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + i] =
2846: vcnModeTable[2 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
2847: vcnModeTable[2 + AHEX + SPON + G4ON + i] =
2848: vcnModeTable[2 + AHEX + SPON + G4ON + G1ON + i] =
2849: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + i] =
2850: vcnModeTable[2 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
2851: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + i] =
2852: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
2853: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
2854: vcnModeTable[2 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XSG);
2855:
2856:
2857: vcnModeTable[ 2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
2858: vcnModeTable[ 2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
2859:
2860:
2861: vcnModeTable[ 2 + SPON + TXON + G1ON + i] = (
2862: vcnModeTable[2 + SPON + TXON + G2ON + i] =
2863: vcnModeTable[2 + SPON + TXON + G2ON + G1ON + i] =
2864: vcnModeTable[2 + SPON + TXON + G3ON + i] =
2865: vcnModeTable[2 + SPON + TXON + G3ON + G1ON + i] =
2866: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + i] =
2867: vcnModeTable[2 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2868: vcnModeTable[2 + SPON + TXON + G4ON + i] =
2869: vcnModeTable[2 + SPON + TXON + G4ON + G1ON + i] =
2870: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + i] =
2871: vcnModeTable[2 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2872: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + i] =
2873: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2874: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2875: vcnModeTable[2 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.STG : DrawingMode.TSG);
2876: vcnModeTable[ 2 + AHEX + SPON + TXON + G1ON + i] = (
2877: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + i] =
2878: vcnModeTable[2 + AHEX + SPON + TXON + G2ON + G1ON + i] =
2879: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + i] =
2880: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G1ON + i] =
2881: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + i] =
2882: vcnModeTable[2 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
2883: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + i] =
2884: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G1ON + i] =
2885: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + i] =
2886: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
2887: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + i] =
2888: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
2889: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
2890: vcnModeTable[2 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = s < t ? DrawingMode.XSTG : DrawingMode.XTSG);
2891:
2892:
2893:
2894:
2895: vcnModeTable[ 3 + i] = (
2896: vcnModeTable[3 + TXON + i] =
2897: vcnModeTable[3 + SPON + i] =
2898: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
2899: vcnModeTable[ 3 + AHEX + i] = (
2900: vcnModeTable[3 + AHEX + TXON + i] =
2901: vcnModeTable[3 + AHEX + SPON + i] =
2902: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
2903:
2904:
2905: vcnModeTable[ 3 + G1ON + i] = (
2906: vcnModeTable[3 + G2ON + i] =
2907: vcnModeTable[3 + G2ON + G1ON + i] =
2908: vcnModeTable[3 + G3ON + i] =
2909: vcnModeTable[3 + G3ON + G1ON + i] =
2910: vcnModeTable[3 + G3ON + G2ON + i] =
2911: vcnModeTable[3 + G3ON + G2ON + G1ON + i] =
2912: vcnModeTable[3 + G4ON + i] =
2913: vcnModeTable[3 + G4ON + G1ON + i] =
2914: vcnModeTable[3 + G4ON + G2ON + i] =
2915: vcnModeTable[3 + G4ON + G2ON + G1ON + i] =
2916: vcnModeTable[3 + G4ON + G3ON + i] =
2917: vcnModeTable[3 + G4ON + G3ON + G1ON + i] =
2918: vcnModeTable[3 + G4ON + G3ON + G2ON + i] =
2919: vcnModeTable[3 + G4ON + G3ON + G2ON + G1ON + i] =
2920: vcnModeTable[3 + TXON + G1ON + i] =
2921: vcnModeTable[3 + TXON + G2ON + i] =
2922: vcnModeTable[3 + TXON + G2ON + G1ON + i] =
2923: vcnModeTable[3 + TXON + G3ON + i] =
2924: vcnModeTable[3 + TXON + G3ON + G1ON + i] =
2925: vcnModeTable[3 + TXON + G3ON + G2ON + i] =
2926: vcnModeTable[3 + TXON + G3ON + G2ON + G1ON + i] =
2927: vcnModeTable[3 + TXON + G4ON + i] =
2928: vcnModeTable[3 + TXON + G4ON + G1ON + i] =
2929: vcnModeTable[3 + TXON + G4ON + G2ON + i] =
2930: vcnModeTable[3 + TXON + G4ON + G2ON + G1ON + i] =
2931: vcnModeTable[3 + TXON + G4ON + G3ON + i] =
2932: vcnModeTable[3 + TXON + G4ON + G3ON + G1ON + i] =
2933: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + i] =
2934: vcnModeTable[3 + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2935: vcnModeTable[3 + SPON + G1ON + i] =
2936: vcnModeTable[3 + SPON + G2ON + i] =
2937: vcnModeTable[3 + SPON + G2ON + G1ON + i] =
2938: vcnModeTable[3 + SPON + G3ON + i] =
2939: vcnModeTable[3 + SPON + G3ON + G1ON + i] =
2940: vcnModeTable[3 + SPON + G3ON + G2ON + i] =
2941: vcnModeTable[3 + SPON + G3ON + G2ON + G1ON + i] =
2942: vcnModeTable[3 + SPON + G4ON + i] =
2943: vcnModeTable[3 + SPON + G4ON + G1ON + i] =
2944: vcnModeTable[3 + SPON + G4ON + G2ON + i] =
2945: vcnModeTable[3 + SPON + G4ON + G2ON + G1ON + i] =
2946: vcnModeTable[3 + SPON + G4ON + G3ON + i] =
2947: vcnModeTable[3 + SPON + G4ON + G3ON + G1ON + i] =
2948: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + i] =
2949: vcnModeTable[3 + SPON + G4ON + G3ON + G2ON + G1ON + i] =
2950: vcnModeTable[3 + SPON + TXON + G1ON + i] =
2951: vcnModeTable[3 + SPON + TXON + G2ON + i] =
2952: vcnModeTable[3 + SPON + TXON + G2ON + G1ON + i] =
2953: vcnModeTable[3 + SPON + TXON + G3ON + i] =
2954: vcnModeTable[3 + SPON + TXON + G3ON + G1ON + i] =
2955: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + i] =
2956: vcnModeTable[3 + SPON + TXON + G3ON + G2ON + G1ON + i] =
2957: vcnModeTable[3 + SPON + TXON + G4ON + i] =
2958: vcnModeTable[3 + SPON + TXON + G4ON + G1ON + i] =
2959: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + i] =
2960: vcnModeTable[3 + SPON + TXON + G4ON + G2ON + G1ON + i] =
2961: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + i] =
2962: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G1ON + i] =
2963: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + i] =
2964: vcnModeTable[3 + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.Gt);
2965: vcnModeTable[ 3 + AHEX + G1ON + i] = (
2966: vcnModeTable[3 + AHEX + G2ON + i] =
2967: vcnModeTable[3 + AHEX + G2ON + G1ON + i] =
2968: vcnModeTable[3 + AHEX + G3ON + i] =
2969: vcnModeTable[3 + AHEX + G3ON + G1ON + i] =
2970: vcnModeTable[3 + AHEX + G3ON + G2ON + i] =
2971: vcnModeTable[3 + AHEX + G3ON + G2ON + G1ON + i] =
2972: vcnModeTable[3 + AHEX + G4ON + i] =
2973: vcnModeTable[3 + AHEX + G4ON + G1ON + i] =
2974: vcnModeTable[3 + AHEX + G4ON + G2ON + i] =
2975: vcnModeTable[3 + AHEX + G4ON + G2ON + G1ON + i] =
2976: vcnModeTable[3 + AHEX + G4ON + G3ON + i] =
2977: vcnModeTable[3 + AHEX + G4ON + G3ON + G1ON + i] =
2978: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + i] =
2979: vcnModeTable[3 + AHEX + G4ON + G3ON + G2ON + G1ON + i] =
2980: vcnModeTable[3 + AHEX + TXON + G1ON + i] =
2981: vcnModeTable[3 + AHEX + TXON + G2ON + i] =
2982: vcnModeTable[3 + AHEX + TXON + G2ON + G1ON + i] =
2983: vcnModeTable[3 + AHEX + TXON + G3ON + i] =
2984: vcnModeTable[3 + AHEX + TXON + G3ON + G1ON + i] =
2985: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + i] =
2986: vcnModeTable[3 + AHEX + TXON + G3ON + G2ON + G1ON + i] =
2987: vcnModeTable[3 + AHEX + TXON + G4ON + i] =
2988: vcnModeTable[3 + AHEX + TXON + G4ON + G1ON + i] =
2989: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + i] =
2990: vcnModeTable[3 + AHEX + TXON + G4ON + G2ON + G1ON + i] =
2991: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + i] =
2992: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G1ON + i] =
2993: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + i] =
2994: vcnModeTable[3 + AHEX + TXON + G4ON + G3ON + G2ON + G1ON + i] =
2995: vcnModeTable[3 + AHEX + SPON + G1ON + i] =
2996: vcnModeTable[3 + AHEX + SPON + G2ON + i] =
2997: vcnModeTable[3 + AHEX + SPON + G2ON + G1ON + i] =
2998: vcnModeTable[3 + AHEX + SPON + G3ON + i] =
2999: vcnModeTable[3 + AHEX + SPON + G3ON + G1ON + i] =
3000: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + i] =
3001: vcnModeTable[3 + AHEX + SPON + G3ON + G2ON + G1ON + i] =
3002: vcnModeTable[3 + AHEX + SPON + G4ON + i] =
3003: vcnModeTable[3 + AHEX + SPON + G4ON + G1ON + i] =
3004: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + i] =
3005: vcnModeTable[3 + AHEX + SPON + G4ON + G2ON + G1ON + i] =
3006: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + i] =
3007: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G1ON + i] =
3008: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + i] =
3009: vcnModeTable[3 + AHEX + SPON + G4ON + G3ON + G2ON + G1ON + i] =
3010: vcnModeTable[3 + AHEX + SPON + TXON + G1ON + i] =
3011: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + i] =
3012: vcnModeTable[3 + AHEX + SPON + TXON + G2ON + G1ON + i] =
3013: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + i] =
3014: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G1ON + i] =
3015: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + i] =
3016: vcnModeTable[3 + AHEX + SPON + TXON + G3ON + G2ON + G1ON + i] =
3017: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + i] =
3018: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G1ON + i] =
3019: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + i] =
3020: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G2ON + G1ON + i] =
3021: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + i] =
3022: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G1ON + i] =
3023: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + i] =
3024: vcnModeTable[3 + AHEX + SPON + TXON + G4ON + G3ON + G2ON + G1ON + i] = DrawingMode.XGt);
3025: }
3026: }
3027:
3028:
3029:
3030: public static void vcnMakeTable4 (int grmm) {
3031:
3032:
3033:
3034: for (int ii = 0b0000_0000; ii <= 0b1111_1111; ii++) {
3035:
3036: int i = grmm << 6 | (ii & 0b0000_1111) << 9 | (ii & 0b1111_0000) >> 2;
3037: int s = i >> 4 & 3;
3038: int t = i >> 2 & 3;
3039:
3040:
3041:
3042:
3043: vcnModeTable[ i] = DrawingMode.N;
3044: vcnModeTable[ AHEX + i] = DrawingMode.XN;
3045:
3046:
3047: vcnModeTable[ GXON + i] = DrawingMode.Ht;
3048: vcnModeTable[ AHEX + GXON + i] = DrawingMode.XHt;
3049:
3050: vcnModeTable[ TXON + i] = DrawingMode.T;
3051: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
3052:
3053:
3054: vcnModeTable[ TXON + GXON + i] = DrawingMode.HT;
3055: vcnModeTable[ AHEX + TXON + GXON + i] = DrawingMode.XHT;
3056:
3057: vcnModeTable[ SPON + i] = DrawingMode.S;
3058: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
3059:
3060:
3061: vcnModeTable[ SPON + GXON + i] = DrawingMode.HS;
3062: vcnModeTable[ AHEX + SPON + GXON + i] = DrawingMode.XHS;
3063:
3064:
3065: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3066: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3067:
3068:
3069: vcnModeTable[ SPON + TXON + GXON + i] = s < t ? DrawingMode.HST : DrawingMode.HTS;
3070: vcnModeTable[ AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XHST : DrawingMode.XHTS;
3071:
3072:
3073:
3074:
3075: vcnModeTable[1 + i] = DrawingMode.N;
3076: vcnModeTable[1 + AHEX + i] = DrawingMode.XN;
3077:
3078:
3079: vcnModeTable[1 + GXON + i] = DrawingMode.Ht;
3080: vcnModeTable[1 + AHEX + GXON + i] = DrawingMode.XHt;
3081:
3082: vcnModeTable[1 + TXON + i] = DrawingMode.T;
3083: vcnModeTable[1 + AHEX + TXON + i] = DrawingMode.XT;
3084:
3085:
3086: vcnModeTable[1 + TXON + GXON + i] = s < t ? DrawingMode.HT : DrawingMode.THs;
3087: vcnModeTable[1 + AHEX + TXON + GXON + i] = s < t ? DrawingMode.XHT : DrawingMode.XTHs;
3088:
3089: vcnModeTable[1 + SPON + i] = DrawingMode.S;
3090: vcnModeTable[1 + AHEX + SPON + i] = DrawingMode.XS;
3091:
3092:
3093: vcnModeTable[1 + SPON + GXON + i] = s < t ? DrawingMode.SHt : DrawingMode.HS;
3094: vcnModeTable[1 + AHEX + SPON + GXON + i] = s < t ? DrawingMode.XSHt : DrawingMode.XHS;
3095:
3096:
3097: vcnModeTable[1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3098: vcnModeTable[1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3099:
3100:
3101: vcnModeTable[1 + SPON + TXON + GXON + i] = s < t ? DrawingMode.SHT : DrawingMode.THS;
3102: vcnModeTable[1 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSHT : DrawingMode.XTHS;
3103:
3104:
3105:
3106:
3107: vcnModeTable[2 + i] = DrawingMode.N;
3108: vcnModeTable[2 + AHEX + i] = DrawingMode.XN;
3109:
3110:
3111: vcnModeTable[2 + GXON + i] = DrawingMode.H;
3112: vcnModeTable[2 + AHEX + GXON + i] = DrawingMode.XH;
3113:
3114: vcnModeTable[2 + TXON + i] = DrawingMode.T;
3115: vcnModeTable[2 + AHEX + TXON + i] = DrawingMode.XT;
3116:
3117:
3118: vcnModeTable[2 + TXON + GXON + i] = DrawingMode.TH;
3119: vcnModeTable[2 + AHEX + TXON + GXON + i] = DrawingMode.XTH;
3120:
3121: vcnModeTable[2 + SPON + i] = DrawingMode.S;
3122: vcnModeTable[2 + AHEX + SPON + i] = DrawingMode.XS;
3123:
3124:
3125: vcnModeTable[2 + SPON + GXON + i] = DrawingMode.SH;
3126: vcnModeTable[2 + AHEX + SPON + GXON + i] = DrawingMode.XSH;
3127:
3128:
3129: vcnModeTable[2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3130: vcnModeTable[2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3131:
3132:
3133: vcnModeTable[2 + SPON + TXON + GXON + i] = s < t ? DrawingMode.STH : DrawingMode.TSH;
3134: vcnModeTable[2 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSTH : DrawingMode.XTSH;
3135:
3136:
3137:
3138:
3139: vcnModeTable[ 3 + i] = (
3140: vcnModeTable[3 + TXON + i] =
3141: vcnModeTable[3 + SPON + i] =
3142: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
3143: vcnModeTable[ 3 + AHEX + i] = (
3144: vcnModeTable[3 + AHEX + TXON + i] =
3145: vcnModeTable[3 + AHEX + SPON + i] =
3146: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
3147:
3148:
3149: vcnModeTable[ 3 + GXON + i] = (
3150: vcnModeTable[3 + TXON + GXON + i] =
3151: vcnModeTable[3 + SPON + GXON + i] =
3152: vcnModeTable[3 + SPON + TXON + GXON + i] = DrawingMode.Ht);
3153: vcnModeTable[ 3 + AHEX + GXON + i] = (
3154: vcnModeTable[3 + AHEX + TXON + GXON + i] =
3155: vcnModeTable[3 + AHEX + SPON + GXON + i] =
3156: vcnModeTable[3 + AHEX + SPON + TXON + GXON + i] = DrawingMode.XHt);
3157: }
3158: }
3159:
3160:
3161:
3162: public static void vcnMakeTable5 (int grmm) {
3163:
3164:
3165:
3166: for (int ii = 0b0000_0000; ii <= 0b1111_1111; ii++) {
3167:
3168: int i = grmm << 6 | (ii & 0b0000_1111) << 9 | (ii & 0b1111_0000) >> 2;
3169: int s = i >> 4 & 3;
3170: int t = i >> 2 & 3;
3171:
3172:
3173:
3174:
3175: vcnModeTable[ i] = DrawingMode.N;
3176: vcnModeTable[ AHEX + i] = DrawingMode.XN;
3177:
3178:
3179: vcnModeTable[ GXON + i] = DrawingMode.It;
3180: vcnModeTable[ AHEX + GXON + i] = DrawingMode.XIt;
3181:
3182: vcnModeTable[ TXON + i] = DrawingMode.T;
3183: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
3184:
3185:
3186: vcnModeTable[ TXON + GXON + i] = DrawingMode.IT;
3187: vcnModeTable[ AHEX + TXON + GXON + i] = DrawingMode.XIT;
3188:
3189: vcnModeTable[ SPON + i] = DrawingMode.S;
3190: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
3191:
3192:
3193: vcnModeTable[ SPON + GXON + i] = DrawingMode.IS;
3194: vcnModeTable[ AHEX + SPON + GXON + i] = DrawingMode.XIS;
3195:
3196:
3197: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3198: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3199:
3200:
3201: vcnModeTable[ SPON + TXON + GXON + i] = s < t ? DrawingMode.IST : DrawingMode.ITS;
3202: vcnModeTable[ AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XIST : DrawingMode.XITS;
3203:
3204:
3205:
3206:
3207: vcnModeTable[1 + i] = DrawingMode.N;
3208: vcnModeTable[1 + AHEX + i] = DrawingMode.XN;
3209:
3210:
3211: vcnModeTable[1 + GXON + i] = DrawingMode.It;
3212: vcnModeTable[1 + AHEX + GXON + i] = DrawingMode.XIt;
3213:
3214: vcnModeTable[1 + TXON + i] = DrawingMode.T;
3215: vcnModeTable[1 + AHEX + TXON + i] = DrawingMode.XT;
3216:
3217:
3218: vcnModeTable[1 + TXON + GXON + i] = s < t ? DrawingMode.IT : DrawingMode.TIs;
3219: vcnModeTable[1 + AHEX + TXON + GXON + i] = s < t ? DrawingMode.XIT : DrawingMode.XTIs;
3220:
3221: vcnModeTable[1 + SPON + i] = DrawingMode.S;
3222: vcnModeTable[1 + AHEX + SPON + i] = DrawingMode.XS;
3223:
3224:
3225: vcnModeTable[1 + SPON + GXON + i] = s < t ? DrawingMode.SIt : DrawingMode.IS;
3226: vcnModeTable[1 + AHEX + SPON + GXON + i] = s < t ? DrawingMode.XSIt : DrawingMode.XIS;
3227:
3228:
3229: vcnModeTable[1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3230: vcnModeTable[1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3231:
3232:
3233: vcnModeTable[1 + SPON + TXON + GXON + i] = s < t ? DrawingMode.SIT : DrawingMode.TIS;
3234: vcnModeTable[1 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSIT : DrawingMode.XTIS;
3235:
3236:
3237:
3238:
3239: vcnModeTable[2 + i] = DrawingMode.N;
3240: vcnModeTable[2 + AHEX + i] = DrawingMode.XN;
3241:
3242:
3243: vcnModeTable[2 + GXON + i] = DrawingMode.I;
3244: vcnModeTable[2 + AHEX + GXON + i] = DrawingMode.XI;
3245:
3246: vcnModeTable[2 + TXON + i] = DrawingMode.T;
3247: vcnModeTable[2 + AHEX + TXON + i] = DrawingMode.XT;
3248:
3249:
3250: vcnModeTable[2 + TXON + GXON + i] = DrawingMode.TI;
3251: vcnModeTable[2 + AHEX + TXON + GXON + i] = DrawingMode.XTI;
3252:
3253: vcnModeTable[2 + SPON + i] = DrawingMode.S;
3254: vcnModeTable[2 + AHEX + SPON + i] = DrawingMode.XS;
3255:
3256:
3257: vcnModeTable[2 + SPON + GXON + i] = DrawingMode.SI;
3258: vcnModeTable[2 + AHEX + SPON + GXON + i] = DrawingMode.XSI;
3259:
3260:
3261: vcnModeTable[2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3262: vcnModeTable[2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3263:
3264:
3265: vcnModeTable[2 + SPON + TXON + GXON + i] = s < t ? DrawingMode.STI : DrawingMode.TSI;
3266: vcnModeTable[2 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSTI : DrawingMode.XTSI;
3267:
3268:
3269:
3270:
3271: vcnModeTable[ 3 + i] = (
3272: vcnModeTable[3 + TXON + i] =
3273: vcnModeTable[3 + SPON + i] =
3274: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
3275: vcnModeTable[ 3 + AHEX + i] = (
3276: vcnModeTable[3 + AHEX + TXON + i] =
3277: vcnModeTable[3 + AHEX + SPON + i] =
3278: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
3279:
3280:
3281: vcnModeTable[ 3 + GXON + i] = (
3282: vcnModeTable[3 + TXON + GXON + i] =
3283: vcnModeTable[3 + SPON + GXON + i] =
3284: vcnModeTable[3 + SPON + TXON + GXON + i] = DrawingMode.It);
3285: vcnModeTable[ 3 + AHEX + GXON + i] = (
3286: vcnModeTable[3 + AHEX + TXON + GXON + i] =
3287: vcnModeTable[3 + AHEX + SPON + GXON + i] =
3288: vcnModeTable[3 + AHEX + SPON + TXON + GXON + i] = DrawingMode.XIt);
3289: }
3290: }
3291:
3292:
3293:
3294: public static void vcnMakeTable7 (int grmm) {
3295:
3296:
3297:
3298: for (int ii = 0b0000_0000; ii <= 0b1111_1111; ii++) {
3299:
3300: int i = grmm << 6 | (ii & 0b0000_1111) << 9 | (ii & 0b1111_0000) >> 2;
3301: int s = i >> 4 & 3;
3302: int t = i >> 2 & 3;
3303:
3304:
3305:
3306:
3307: vcnModeTable[ i] = DrawingMode.N;
3308: vcnModeTable[ AHEX + i] = DrawingMode.XN;
3309:
3310:
3311: vcnModeTable[ GXON + i] = DrawingMode.Jt;
3312: vcnModeTable[ AHEX + GXON + i] = DrawingMode.XJt;
3313:
3314: vcnModeTable[ TXON + i] = DrawingMode.T;
3315: vcnModeTable[ AHEX + TXON + i] = DrawingMode.XT;
3316:
3317:
3318: vcnModeTable[ TXON + GXON + i] = DrawingMode.JT;
3319: vcnModeTable[ AHEX + TXON + GXON + i] = DrawingMode.XJT;
3320:
3321: vcnModeTable[ SPON + i] = DrawingMode.S;
3322: vcnModeTable[ AHEX + SPON + i] = DrawingMode.XS;
3323:
3324:
3325: vcnModeTable[ SPON + GXON + i] = DrawingMode.JS;
3326: vcnModeTable[ AHEX + SPON + GXON + i] = DrawingMode.XJS;
3327:
3328:
3329: vcnModeTable[ SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3330: vcnModeTable[ AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3331:
3332:
3333: vcnModeTable[ SPON + TXON + GXON + i] = s < t ? DrawingMode.JST : DrawingMode.JTS;
3334: vcnModeTable[ AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XJST : DrawingMode.XJTS;
3335:
3336:
3337:
3338:
3339: vcnModeTable[1 + i] = DrawingMode.N;
3340: vcnModeTable[1 + AHEX + i] = DrawingMode.XN;
3341:
3342:
3343: vcnModeTable[1 + GXON + i] = DrawingMode.Jt;
3344: vcnModeTable[1 + AHEX + GXON + i] = DrawingMode.XJt;
3345:
3346: vcnModeTable[1 + TXON + i] = DrawingMode.T;
3347: vcnModeTable[1 + AHEX + TXON + i] = DrawingMode.XT;
3348:
3349:
3350: vcnModeTable[1 + TXON + GXON + i] = s < t ? DrawingMode.JT : DrawingMode.TJs;
3351: vcnModeTable[1 + AHEX + TXON + GXON + i] = s < t ? DrawingMode.XJT : DrawingMode.XTJs;
3352:
3353: vcnModeTable[1 + SPON + i] = DrawingMode.S;
3354: vcnModeTable[1 + AHEX + SPON + i] = DrawingMode.XS;
3355:
3356:
3357: vcnModeTable[1 + SPON + GXON + i] = s < t ? DrawingMode.SJt : DrawingMode.JS;
3358: vcnModeTable[1 + AHEX + SPON + GXON + i] = s < t ? DrawingMode.XSJt : DrawingMode.XJS;
3359:
3360:
3361: vcnModeTable[1 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3362: vcnModeTable[1 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3363:
3364:
3365: vcnModeTable[1 + SPON + TXON + GXON + i] = s < t ? DrawingMode.SJT : DrawingMode.TJS;
3366: vcnModeTable[1 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSJT : DrawingMode.XTJS;
3367:
3368:
3369:
3370:
3371: vcnModeTable[2 + i] = DrawingMode.N;
3372: vcnModeTable[2 + AHEX + i] = DrawingMode.XN;
3373:
3374:
3375: vcnModeTable[2 + GXON + i] = DrawingMode.J;
3376: vcnModeTable[2 + AHEX + GXON + i] = DrawingMode.XJ;
3377:
3378: vcnModeTable[2 + TXON + i] = DrawingMode.T;
3379: vcnModeTable[2 + AHEX + TXON + i] = DrawingMode.XT;
3380:
3381:
3382: vcnModeTable[2 + TXON + GXON + i] = DrawingMode.TJ;
3383: vcnModeTable[2 + AHEX + TXON + GXON + i] = DrawingMode.XTJ;
3384:
3385: vcnModeTable[2 + SPON + i] = DrawingMode.S;
3386: vcnModeTable[2 + AHEX + SPON + i] = DrawingMode.XS;
3387:
3388:
3389: vcnModeTable[2 + SPON + GXON + i] = DrawingMode.SJ;
3390: vcnModeTable[2 + AHEX + SPON + GXON + i] = DrawingMode.XSJ;
3391:
3392:
3393: vcnModeTable[2 + SPON + TXON + i] = s < t ? DrawingMode.ST : DrawingMode.TS;
3394: vcnModeTable[2 + AHEX + SPON + TXON + i] = s < t ? DrawingMode.XST : DrawingMode.XTS;
3395:
3396:
3397: vcnModeTable[2 + SPON + TXON + GXON + i] = s < t ? DrawingMode.STJ : DrawingMode.TSJ;
3398: vcnModeTable[2 + AHEX + SPON + TXON + GXON + i] = s < t ? DrawingMode.XSTJ : DrawingMode.XTSJ;
3399:
3400:
3401:
3402:
3403: vcnModeTable[ 3 + i] = (
3404: vcnModeTable[3 + TXON + i] =
3405: vcnModeTable[3 + SPON + i] =
3406: vcnModeTable[3 + SPON + TXON + i] = DrawingMode.N);
3407: vcnModeTable[ 3 + AHEX + i] = (
3408: vcnModeTable[3 + AHEX + TXON + i] =
3409: vcnModeTable[3 + AHEX + SPON + i] =
3410: vcnModeTable[3 + AHEX + SPON + TXON + i] = DrawingMode.XN);
3411:
3412:
3413: vcnModeTable[ 3 + GXON + i] = (
3414: vcnModeTable[3 + TXON + GXON + i] =
3415: vcnModeTable[3 + SPON + GXON + i] =
3416: vcnModeTable[3 + SPON + TXON + GXON + i] = DrawingMode.Jt);
3417: vcnModeTable[ 3 + AHEX + GXON + i] = (
3418: vcnModeTable[3 + AHEX + TXON + GXON + i] =
3419: vcnModeTable[3 + AHEX + SPON + GXON + i] =
3420: vcnModeTable[3 + AHEX + SPON + TXON + GXON + i] = DrawingMode.XJt);
3421: }
3422: }
3423:
3424:
3425:
3426: public static void vcnReset () {
3427: vcnReg1Port = 0;
3428: vcnReg1Mask = 0;
3429: vcnReg1Test = 0;
3430: vcnReg1Curr = 0;
3431: vcnReg2Port = 0;
3432: vcnReg2Mask = 0;
3433: vcnReg2Test = 0;
3434: vcnReg2Curr = 0;
3435: vcnReg3Port = 0;
3436: vcnReg3Mask = 0;
3437: vcnReg3Test = 0;
3438: vcnReg3Curr = 0;
3439: vcnPalTbl = vcnPalBase[VCN_CONTRAST_SCALE * 15];
3440: vcnCurrentScaledContrast = VCN_CONTRAST_SCALE * 15;
3441: vcnTargetContrastPort = 15;
3442: vcnTargetContrastMask = 0;
3443: vcnTargetContrastTest = 15;
3444: vcnTargetContrastCurr = 15;
3445: vcnTargetScaledContrast = VCN_CONTRAST_SCALE * 15;
3446: vcnMode = DrawingMode.N;
3447: vcnHidden1st = 0;
3448: vcnHidden2nd = 0;
3449: vcnHidden3rd = 0;
3450: vcnHidden4th = 0;
3451: vcnVisible1st = 0x400000;
3452: vcnVisible2nd = 0x400000;
3453: vcnVisible3rd = 0x400000;
3454: vcnVisible4th = 0x400000;
3455:
3456: if (CRTC.CRT_EXTENDED_GRAPHIC) {
3457: if (CRTC.crtExtendedGraphicRequest) {
3458: vcnMakeTable5 (5);
3459: vcnMakeTable7 (6);
3460: vcnMakeTable7 (7);
3461: } else {
3462: vcnMakeTable4 (5);
3463: vcnMakeTable4 (6);
3464: vcnMakeTable4 (7);
3465: }
3466: }
3467:
3468: }
3469:
3470:
3471:
3472: public static void vcnUpdateMode () {
3473: DrawingMode newMode = vcnModeTable[-(vcnReg3Curr & 0x5000) & 0x10000 | (char) (vcnReg3Curr << 9) | vcnReg1Curr << 6 | vcnReg2Curr >> 8];
3474: if (vcnMode != newMode) {
3475: if (VCN_LOG_TRANSITION) {
3476: vcnLogTransition (vcnMode, newMode);
3477: }
3478: vcnMode = newMode;
3479: }
3480:
3481: if (vcnReg1Curr < 4) {
3482: boolean on1st, on2nd, on3rd, on4th;
3483: if (vcnReg1Curr == 0) {
3484: on1st = (vcnReg3Curr & 1) != 0;
3485: on2nd = (vcnReg3Curr & 2 ) != 0;
3486: on3rd = (vcnReg3Curr & 4 ) != 0;
3487: on4th = (vcnReg3Curr & 8 ) != 0;
3488: } else if (vcnReg1Curr == 1) {
3489: on2nd = on1st = (vcnReg3Curr & 2 + 1) != 0;
3490: on4th = on3rd = (vcnReg3Curr & 8 + 4 ) != 0;
3491: } else {
3492: on4th = on3rd = on2nd = on1st = (vcnReg3Curr & 8 + 4 + 2 + 1) != 0;
3493: }
3494: vcnHidden1st = ((vcnReg2Curr & 3 ) << 18 );
3495: vcnHidden2nd = ((vcnReg2Curr & 3 << 2) << 18 - 2);
3496: vcnHidden3rd = ((vcnReg2Curr & 3 << 4) << 18 - 4);
3497: vcnHidden4th = ((vcnReg2Curr & 3 << 6) << 18 - 6);
3498: vcnVisible1st = on1st ? vcnHidden1st : 0x400000;
3499: vcnVisible2nd = on2nd ? vcnHidden2nd : 0x400000;
3500: vcnVisible3rd = on3rd ? vcnHidden3rd : 0x400000;
3501: vcnVisible4th = on4th ? vcnHidden4th : 0x400000;
3502: }
3503: CRTC.crtAllStamp += 2;
3504: }
3505:
3506:
3507:
3508: public static void vcnSetContrast (int contrast) {
3509: vcnPalTbl = vcnPalBase[contrast];
3510: for (int i = 0; i < 256; i++) {
3511: vcnPal32G8[i] = vcnPalTbl[vcnPal16G8[i]];
3512: vcnPal32TS[i] = vcnPalTbl[vcnPal16TS[i]];
3513: }
3514: for (int i = 256; i < 256 + 16 * VCN_PATTEST_BLOCKS; i++) {
3515: vcnPal32TS[i] = vcnPalTbl[vcnPal16TS[i]];
3516: }
3517: CRTC.crtAllStamp += 2;
3518: }
3519:
3520: public static void vcnLogTransition (DrawingMode oldMode, DrawingMode newMode) {
3521: if (VCN_LOG_TRANSITION) {
3522: StringBuilder sb = new StringBuilder ();
3523: sb.append (oldMode.name ());
3524: sb.append (" → ");
3525: sb.append (newMode.name ());
3526: System.out.println (sb.toString ());
3527: }
3528: }
3529:
3530:
3531:
3532: public static void vcnReportUnimplemented (DrawingMode mode) {
3533: String name = vcnGetName (new StringBuilder ().append (mode.name ()).append ('(')).append (')').toString ();
3534: if (!vcnUnimplementedSet.contains (name)) {
3535: System.out.println (new StringBuilder ().append (Multilingual.mlnJapanese ? "未実装 " : "Unimplemented ").append (name).toString ());
3536: vcnUnimplementedSet.add (name);
3537: }
3538: }
3539:
3540:
3541:
3542:
3543:
3544: public static StringBuilder vcnGetName (StringBuilder sb) {
3545:
3546: String sprite = (vcnReg3Curr & 1 << 6) != 0 ? "S" : "s";
3547:
3548: String text = (vcnReg3Curr & 1 << 5) != 0 ? "T" : "t";
3549:
3550: String spriteText1 = "";
3551: String spriteText2 = "";
3552: if ((vcnReg2Curr & 3 << 12) < (vcnReg2Curr << 12 - 10 & 3 << 12)) {
3553: spriteText1 = sprite;
3554: spriteText2 = text;
3555: } else {
3556: spriteText1 = text;
3557: spriteText2 = sprite;
3558: }
3559:
3560: String graphic = ((vcnReg1Curr & 0b100) != 0 ?
3561: (vcnReg1Curr & 0b010) != 0 ?
3562: (vcnReg3Curr & 0b10000) != 0 ? "J" :
3563: "j" :
3564: (vcnReg1Curr & 0b001) != 0 ?
3565: (vcnReg3Curr & 0b10000) != 0 ? "I" :
3566: "i" :
3567:
3568: (vcnReg3Curr & 0b10000) != 0 ? "H" :
3569: "h" :
3570:
3571: (vcnReg1Curr & 0b010) != 0 ?
3572: (vcnReg3Curr & 0b1111) != 0 ? "G" :
3573: "g" :
3574: (vcnReg1Curr & 0b001) != 0 ?
3575: (vcnReg3Curr & 0b1100) != 0 ? "F2" :
3576: (vcnReg3Curr & 0b1111) != 0 ? "F1" :
3577: "f" :
3578:
3579: (vcnReg3Curr & 0b1000) != 0 ? "E4" :
3580: (vcnReg3Curr & 0b1100) != 0 ? "E3" :
3581: (vcnReg3Curr & 0b1110) != 0 ? "E2" :
3582: (vcnReg3Curr & 0b1111) != 0 ? "E1" :
3583: "e");
3584:
3585: int grpr = vcnReg2Curr >> 8 & 3;
3586: if (grpr == 0) {
3587: sb.append (graphic).append (spriteText1).append (spriteText2);
3588: } else if (grpr == 1) {
3589: sb.append (spriteText1).append (graphic).append (spriteText2);
3590: } else if (grpr == 2) {
3591: sb.append (spriteText1).append (spriteText2).append (graphic);
3592: } else {
3593: sb.append (graphic).append (spriteText1).append (spriteText2);
3594: }
3595: int i = sb.length ();
3596: if ((vcnReg3Curr & 1 << 14) != 0) {
3597: sb.append ('A');
3598: }
3599: if ((vcnReg3Curr & 1 << 12) != 0) {
3600: sb.append ('X');
3601: }
3602: if ((vcnReg3Curr & (1 << 12 | 1 << 11)) != 0) {
3603: sb.append ((vcnReg3Curr & 1 << 11) != 0 ? 'H' : 'W');
3604: }
3605: if ((vcnReg3Curr & (1 << 12 | 1 << 10)) != 0) {
3606: sb.append ((vcnReg3Curr & 1 << 10) != 0 ? 'P' : 'C');
3607: }
3608: if ((vcnReg3Curr & 1 << 9) != 0) {
3609: sb.append ('G');
3610: }
3611: if ((vcnReg3Curr & 1 << 8) != 0) {
3612: sb.append ('T');
3613: }
3614: if (i < sb.length ()) {
3615: sb.insert (i, '_');
3616: }
3617: return sb;
3618: }
3619:
3620:
3621:
3622:
3623:
3624:
3625:
3626:
3627: public static int vcnMix1 (int x) {
3628: return x >> 1 & 0b01111_01111_01111_0;
3629: }
3630: public static int vcnMix2 (int x, int y) {
3631: return ((x & 0b11111_00000_11111_0 ) + (y & 0b11111_00000_11111_0) >> 1 & 0b11111_00000_11111_0 |
3632: (x & 0b00000_11111_00000_0 | 1) + (y & 0b00000_11111_00000_1) >> 1 & 0b00000_11111_00000_1);
3633: }
3634:
3635: }
3636:
3637:
3638: