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