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