Indicator.java
     1: //========================================================================================
     2: //  Indicator.java
     3: //    en:Indicator -- Displays MPU, frequency and load factor
     4: //    ja:インジケータ -- MPUと周波数と負荷率を表示します
     5: //  Copyright (C) 2003-2023 Makoto Kamada
     6: //
     7: //  This file is part of the XEiJ (X68000 Emulator in Java).
     8: //  You can use, modify and redistribute the XEiJ if the conditions are met.
     9: //  Read the XEiJ License for more details.
    10: //  https://stdkmd.net/xeij/
    11: //========================================================================================
    12: 
    13: package xeij;
    14: 
    15: import java.awt.*;
    16: import java.awt.image.*;
    17: import java.util.*;
    18: import javax.swing.*;
    19: 
    20: public class Indicator {
    21: 
    22:   //  |          111111111122222|
    23:   //  |0123456789012345678901234|
    24:   //  |MC68EC030 999.9MHz 100.0%|
    25:   public static final int IND_MPU_X = 0;
    26:   public static final int IND_CLOCK_X = 10;
    27:   public static final int IND_RATIO_X = 19;
    28:   public static final int IND_COLS = 25;
    29:   public static final int IND_FONT_WIDTH = 6;
    30:   public static final int IND_FONT_HEIGHT = 8;
    31:   public static final int IND_PADDING_LEFT = 6;
    32:   public static final int IND_PADDING_RIGHT = 6;
    33:   public static final int IND_PADDING_TOP = 3;
    34:   public static final int IND_PADDING_BOTTOM = 2;
    35:   public static final int IND_WIDTH = IND_PADDING_LEFT + IND_FONT_WIDTH * IND_COLS + IND_PADDING_RIGHT;
    36:   public static final int IND_HEIGHT = IND_PADDING_TOP + IND_FONT_HEIGHT + IND_PADDING_BOTTOM;
    37:   public static final int IND_BACK_GROUND = LnF.LNF_RGB[0];
    38:   public static final int IND_COLOR_00 = LnF.LNF_RGB[14];
    39:   public static final int IND_COLOR_20 = 0xff00ffff;  //cyan
    40:   public static final int IND_COLOR_40 = 0xff00ff00;  //green
    41:   public static final int IND_COLOR_60 = 0xffffff00;  //yellow
    42:   public static final int IND_COLOR_80 = 0xffff0000;  //red
    43: 
    44:   public static int indLastMPU;
    45: 
    46:   public static BufferedImage indImage;
    47:   public static int[] indBitmap;
    48:   public static Box indBox;
    49: 
    50:   public static void indInit () {
    51:     indLastMPU = 0;
    52: 
    53:     indImage = new BufferedImage (IND_WIDTH, IND_HEIGHT, BufferedImage.TYPE_INT_RGB);
    54:     indBitmap = ((DataBufferInt) indImage.getRaster ().getDataBuffer ()).getData ();
    55:     Arrays.fill (indBitmap, IND_BACK_GROUND);
    56:     indBox = ComponentFactory.setFixedSize (
    57:       new Box (BoxLayout.LINE_AXIS) {
    58:         @Override public void paint (Graphics g) {
    59:           g.drawImage (indImage, 0, 0, null);
    60:         }
    61:         @Override protected void paintComponent (Graphics g) {
    62:         }
    63:         @Override protected void paintBorder (Graphics g) {
    64:         }
    65:         @Override protected void paintChildren (Graphics g) {
    66:         }
    67:         @Override public void update (Graphics g) {
    68:         }
    69:       },
    70:       IND_WIDTH, IND_HEIGHT);
    71:   }
    72: 
    73:   public static void indUpdate (double actualPercent) {
    74:     //  |          111111111122222|
    75:     //  |0123456789012345678901234|
    76:     //  |MC68EC030 999.9MHz 100.0%|
    77:     //MPU
    78:     if (indLastMPU != XEiJ.currentMPU) {
    79:       indLastMPU = XEiJ.currentMPU;
    80:       int color = IND_COLOR_00;
    81:       String s = Model.mpuNameOf (XEiJ.currentMPU);
    82:       int l = s.length ();
    83:       for (int i = 0; i < 9; i++) {
    84:         indPutChar (IND_MPU_X + i, i < l ? s.charAt (i) : ' ', color);
    85:       }
    86:     }
    87:     //周波数
    88:     {
    89:       int color = IND_COLOR_00;
    90:       int t = XEiJ.FMT_BCD4[Math.max (0, Math.min (9999, (int) (10.0 * XEiJ.mpuCurrentMHz + 0.5)))];
    91:       indPutChar (IND_CLOCK_X + 0, t < 0x1000 ? ' ' :  (t >> 12)       + '0', color);
    92:       indPutChar (IND_CLOCK_X + 1, t < 0x0100 ? ' ' : ((t >>  8) & 15) + '0', color);
    93:       indPutChar (IND_CLOCK_X + 2,                    ((t >>  4) & 15) + '0', color);
    94:       indPutChar (IND_CLOCK_X + 3, '.', color);
    95:       indPutChar (IND_CLOCK_X + 4,                    ( t        & 15) + '0', color);
    96:       indPutChar (IND_CLOCK_X + 5, 'M', color);
    97:       indPutChar (IND_CLOCK_X + 6, 'H', color);
    98:       indPutChar (IND_CLOCK_X + 7, 'z', color);
    99:     }
   100:     //負荷率
   101:     {
   102:       int t = XEiJ.FMT_BCD4[Math.max (0, Math.min (9999, (int) (10.0 * actualPercent + 0.5)))];
   103:       int color = (t < 0x0200 ? IND_COLOR_00 :
   104:                    t < 0x0400 ? IND_COLOR_20 :
   105:                    t < 0x0600 ? IND_COLOR_40 :
   106:                    t < 0x0800 ? IND_COLOR_60 :
   107:                    IND_COLOR_80);
   108:       indPutChar (IND_RATIO_X + 0, t < 0x1000 ? ' ' :  (t >> 12)       + '0', color);
   109:       indPutChar (IND_RATIO_X + 1, t < 0x0100 ? ' ' : ((t >>  8) & 15) + '0', color);
   110:       indPutChar (IND_RATIO_X + 2,                    ((t >>  4) & 15) + '0', color);
   111:       indPutChar (IND_RATIO_X + 3, '.', color);
   112:       indPutChar (IND_RATIO_X + 4,                    ( t        & 15) + '0', color);
   113:       indPutChar (IND_RATIO_X + 5, '%', color);
   114:     }
   115:     indBox.repaint ();
   116:   }
   117: 
   118:   public static void indPutChar (int col, int c, int color) {
   119:     if (IND_FONT_HEIGHT == 8) {  //6x8
   120:       int src = IND_FONT_HEIGHT * c;
   121:       int dst = IND_PADDING_LEFT + IND_FONT_WIDTH * col + IND_WIDTH * IND_PADDING_TOP;
   122:       for (int v = 0; v < IND_FONT_HEIGHT; v++) {
   123:         int t = FontPage.Lcd.LCD6X8_FONT[src] << (32 - 8);
   124:         for (int u = 0; u < IND_FONT_WIDTH; u++) {
   125:           indBitmap[dst + u] = t < 0 ? color : IND_BACK_GROUND;
   126:           t <<= 1;
   127:         }
   128:         src++;
   129:         dst += IND_WIDTH;
   130:       }
   131:     } else {  //6x12
   132:       int src = 0x00fef400 - 0x00fc0000 + IND_FONT_HEIGHT * c;
   133:       int dst = IND_PADDING_LEFT + IND_FONT_WIDTH * col + IND_WIDTH * IND_PADDING_TOP;
   134:       for (int v = 0; v < IND_FONT_HEIGHT; v++) {
   135:         int t = ROM.iplrom16scsi256[src] << (32 - 8);
   136:         for (int u = 0; u < IND_FONT_WIDTH; u++) {
   137:           indBitmap[dst + u] = t < 0 ? color : IND_BACK_GROUND;
   138:           t <<= 1;
   139:         }
   140:         src++;
   141:         dst += IND_WIDTH;
   142:       }
   143:     }
   144:   }
   145: 
   146: /*
   147:   public static final short[] IND_ASCII_3X5 = {
   148:     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   149:     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   150:     //20
   151:     (0b000 << 12 |
   152:      0b000 <<  9 |
   153:      0b000 <<  6 |
   154:      0b000 <<  3 |
   155:      0b000),
   156:     //21 !
   157:     (0b010 << 12 |
   158:      0b010 <<  9 |
   159:      0b010 <<  6 |
   160:      0b000 <<  3 |
   161:      0b010),
   162:     //22 "
   163:     (0b101 << 12 |
   164:      0b101 <<  9 |
   165:      0b000 <<  6 |
   166:      0b000 <<  3 |
   167:      0b000),
   168:     //23 #
   169:     (0b101 << 12 |
   170:      0b111 <<  9 |
   171:      0b101 <<  6 |
   172:      0b111 <<  3 |
   173:      0b101),
   174:     //24 $
   175:     (0b011 << 12 |
   176:      0b110 <<  9 |
   177:      0b010 <<  6 |
   178:      0b011 <<  3 |
   179:      0b110),
   180:     //25 %
   181:     (0b101 << 12 |
   182:      0b110 <<  9 |
   183:      0b010 <<  6 |
   184:      0b011 <<  3 |
   185:      0b101),
   186:     //26 &
   187:     (0b110 << 12 |
   188:      0b110 <<  9 |
   189:      0b010 <<  6 |
   190:      0b101 <<  3 |
   191:      0b110),
   192:     //27 '
   193:     (0b010 << 12 |
   194:      0b010 <<  9 |
   195:      0b000 <<  6 |
   196:      0b000 <<  3 |
   197:      0b000),
   198:     //28 (
   199:     (0b001 << 12 |
   200:      0b010 <<  9 |
   201:      0b010 <<  6 |
   202:      0b010 <<  3 |
   203:      0b001),
   204:     //29 )
   205:     (0b100 << 12 |
   206:      0b010 <<  9 |
   207:      0b010 <<  6 |
   208:      0b010 <<  3 |
   209:      0b100),
   210:     //2a *
   211:     (0b000 << 12 |
   212:      0b101 <<  9 |
   213:      0b010 <<  6 |
   214:      0b101 <<  3 |
   215:      0b000),
   216:     //2b +
   217:     (0b000 << 12 |
   218:      0b010 <<  9 |
   219:      0b111 <<  6 |
   220:      0b010 <<  3 |
   221:      0b000),
   222:     //2c ,
   223:     (0b000 << 12 |
   224:      0b000 <<  9 |
   225:      0b000 <<  6 |
   226:      0b010 <<  3 |
   227:      0b010),
   228:     //2d -
   229:     (0b000 << 12 |
   230:      0b000 <<  9 |
   231:      0b111 <<  6 |
   232:      0b000 <<  3 |
   233:      0b000),
   234:     //2e .
   235:     (0b000 << 12 |
   236:      0b000 <<  9 |
   237:      0b000 <<  6 |
   238:      0b000 <<  3 |
   239:      0b010),
   240:     //2f /
   241:     (0b000 << 12 |
   242:      0b001 <<  9 |
   243:      0b010 <<  6 |
   244:      0b100 <<  3 |
   245:      0b000),
   246:     //30 0
   247:     (0b111 << 12 |
   248:      0b101 <<  9 |
   249:      0b101 <<  6 |
   250:      0b101 <<  3 |
   251:      0b111),
   252:     //31 1
   253:     (0b010 << 12 |
   254:      0b010 <<  9 |
   255:      0b010 <<  6 |
   256:      0b010 <<  3 |
   257:      0b010),
   258:     //32 2
   259:     (0b111 << 12 |
   260:      0b001 <<  9 |
   261:      0b111 <<  6 |
   262:      0b100 <<  3 |
   263:      0b111),
   264:     //33 3
   265:     (0b111 << 12 |
   266:      0b001 <<  9 |
   267:      0b111 <<  6 |
   268:      0b001 <<  3 |
   269:      0b111),
   270:     //34 4
   271:     (0b101 << 12 |
   272:      0b101 <<  9 |
   273:      0b111 <<  6 |
   274:      0b001 <<  3 |
   275:      0b001),
   276:     //35 5
   277:     (0b111 << 12 |
   278:      0b100 <<  9 |
   279:      0b111 <<  6 |
   280:      0b001 <<  3 |
   281:      0b111),
   282:     //36 6
   283:     (0b111 << 12 |
   284:      0b100 <<  9 |
   285:      0b111 <<  6 |
   286:      0b101 <<  3 |
   287:      0b111),
   288:     //37 7
   289:     (0b111 << 12 |
   290:      0b001 <<  9 |
   291:      0b001 <<  6 |
   292:      0b001 <<  3 |
   293:      0b001),
   294:     //38 8
   295:     (0b111 << 12 |
   296:      0b101 <<  9 |
   297:      0b111 <<  6 |
   298:      0b101 <<  3 |
   299:      0b111),
   300:     //39 9
   301:     (0b111 << 12 |
   302:      0b101 <<  9 |
   303:      0b111 <<  6 |
   304:      0b001 <<  3 |
   305:      0b111),
   306:     //3a :
   307:     (0b000 << 12 |
   308:      0b010 <<  9 |
   309:      0b000 <<  6 |
   310:      0b010 <<  3 |
   311:      0b000),
   312:     //3b ;
   313:     (0b000 << 12 |
   314:      0b010 <<  9 |
   315:      0b000 <<  6 |
   316:      0b010 <<  3 |
   317:      0b010),
   318:     //3c <
   319:     (0b001 << 12 |
   320:      0b010 <<  9 |
   321:      0b100 <<  6 |
   322:      0b010 <<  3 |
   323:      0b001),
   324:     //3d =
   325:     (0b000 << 12 |
   326:      0b111 <<  9 |
   327:      0b000 <<  6 |
   328:      0b111 <<  3 |
   329:      0b000),
   330:     //3e >
   331:     (0b100 << 12 |
   332:      0b010 <<  9 |
   333:      0b001 <<  6 |
   334:      0b010 <<  3 |
   335:      0b100),
   336:     //3f ?
   337:     (0b110 << 12 |
   338:      0b001 <<  9 |
   339:      0b010 <<  6 |
   340:      0b000 <<  3 |
   341:      0b010),
   342:     //40 @
   343:     (0b010 << 12 |
   344:      0b101 <<  9 |
   345:      0b111 <<  6 |
   346:      0b100 <<  3 |
   347:      0b011),
   348:     //41 A
   349:     (0b010 << 12 |
   350:      0b101 <<  9 |
   351:      0b111 <<  6 |
   352:      0b101 <<  3 |
   353:      0b101),
   354:     //42 B
   355:     (0b110 << 12 |
   356:      0b101 <<  9 |
   357:      0b110 <<  6 |
   358:      0b101 <<  3 |
   359:      0b110),
   360:     //43 C
   361:     (0b011 << 12 |
   362:      0b100 <<  9 |
   363:      0b100 <<  6 |
   364:      0b100 <<  3 |
   365:      0b011),
   366:     //44 D
   367:     (0b110 << 12 |
   368:      0b101 <<  9 |
   369:      0b101 <<  6 |
   370:      0b101 <<  3 |
   371:      0b110),
   372:     //45 E
   373:     (0b111 << 12 |
   374:      0b100 <<  9 |
   375:      0b111 <<  6 |
   376:      0b100 <<  3 |
   377:      0b111),
   378:     //46 F
   379:     (0b111 << 12 |
   380:      0b100 <<  9 |
   381:      0b111 <<  6 |
   382:      0b100 <<  3 |
   383:      0b100),
   384:     //47 G
   385:     (0b011 << 12 |
   386:      0b100 <<  9 |
   387:      0b101 <<  6 |
   388:      0b101 <<  3 |
   389:      0b011),
   390:     //48 H
   391:     (0b101 << 12 |
   392:      0b101 <<  9 |
   393:      0b111 <<  6 |
   394:      0b101 <<  3 |
   395:      0b101),
   396:     //49 I
   397:     (0b111 << 12 |
   398:      0b010 <<  9 |
   399:      0b010 <<  6 |
   400:      0b010 <<  3 |
   401:      0b111),
   402:     //4a J
   403:     (0b001 << 12 |
   404:      0b001 <<  9 |
   405:      0b001 <<  6 |
   406:      0b001 <<  3 |
   407:      0b110),
   408:     //4b K
   409:     (0b101 << 12 |
   410:      0b101 <<  9 |
   411:      0b110 <<  6 |
   412:      0b101 <<  3 |
   413:      0b101),
   414:     //4c L
   415:     (0b100 << 12 |
   416:      0b100 <<  9 |
   417:      0b100 <<  6 |
   418:      0b100 <<  3 |
   419:      0b111),
   420:     //4d M
   421:     (0b101 << 12 |
   422:      0b111 <<  9 |
   423:      0b111 <<  6 |
   424:      0b101 <<  3 |
   425:      0b101),
   426:     //4e N
   427:     (0b110 << 12 |
   428:      0b101 <<  9 |
   429:      0b101 <<  6 |
   430:      0b101 <<  3 |
   431:      0b101),
   432:     //4f O
   433:     (0b010 << 12 |
   434:      0b101 <<  9 |
   435:      0b101 <<  6 |
   436:      0b101 <<  3 |
   437:      0b010),
   438:     //50 P
   439:     (0b110 << 12 |
   440:      0b101 <<  9 |
   441:      0b110 <<  6 |
   442:      0b100 <<  3 |
   443:      0b100),
   444:     //51 Q
   445:     (0b010 << 12 |
   446:      0b101 <<  9 |
   447:      0b101 <<  6 |
   448:      0b111 <<  3 |
   449:      0b011),
   450:     //52 R
   451:     (0b110 << 12 |
   452:      0b101 <<  9 |
   453:      0b110 <<  6 |
   454:      0b101 <<  3 |
   455:      0b101),
   456:     //53 S
   457:     (0b011 << 12 |
   458:      0b100 <<  9 |
   459:      0b010 <<  6 |
   460:      0b001 <<  3 |
   461:      0b110),
   462:     //54 T
   463:     (0b111 << 12 |
   464:      0b010 <<  9 |
   465:      0b010 <<  6 |
   466:      0b010 <<  3 |
   467:      0b010),
   468:     //55 U
   469:     (0b101 << 12 |
   470:      0b101 <<  9 |
   471:      0b101 <<  6 |
   472:      0b101 <<  3 |
   473:      0b111),
   474:     //56 V
   475:     (0b101 << 12 |
   476:      0b101 <<  9 |
   477:      0b101 <<  6 |
   478:      0b101 <<  3 |
   479:      0b010),
   480:     //57 W
   481:     (0b101 << 12 |
   482:      0b101 <<  9 |
   483:      0b111 <<  6 |
   484:      0b111 <<  3 |
   485:      0b101),
   486:     //58 X
   487:     (0b101 << 12 |
   488:      0b101 <<  9 |
   489:      0b010 <<  6 |
   490:      0b101 <<  3 |
   491:      0b101),
   492:     //59 Y
   493:     (0b101 << 12 |
   494:      0b101 <<  9 |
   495:      0b010 <<  6 |
   496:      0b010 <<  3 |
   497:      0b010),
   498:     //5a Z
   499:     (0b111 << 12 |
   500:      0b001 <<  9 |
   501:      0b010 <<  6 |
   502:      0b100 <<  3 |
   503:      0b111),
   504:     //5b [
   505:     (0b011 << 12 |
   506:      0b010 <<  9 |
   507:      0b010 <<  6 |
   508:      0b010 <<  3 |
   509:      0b011),
   510:     //5c \ 
   511:     (0b000 << 12 |
   512:      0b100 <<  9 |
   513:      0b010 <<  6 |
   514:      0b001 <<  3 |
   515:      0b000),
   516:     //5d ]
   517:     (0b110 << 12 |
   518:      0b010 <<  9 |
   519:      0b010 <<  6 |
   520:      0b010 <<  3 |
   521:      0b110),
   522:     //5e ^
   523:     (0b010 << 12 |
   524:      0b101 <<  9 |
   525:      0b000 <<  6 |
   526:      0b000 <<  3 |
   527:      0b000),
   528:     //5f _
   529:     (0b000 << 12 |
   530:      0b000 <<  9 |
   531:      0b000 <<  6 |
   532:      0b000 <<  3 |
   533:      0b111),
   534:     //60 `
   535:     (0b010 << 12 |
   536:      0b001 <<  9 |
   537:      0b000 <<  6 |
   538:      0b000 <<  3 |
   539:      0b000),
   540:     //61 a
   541:     (0b000 << 12 |
   542:      0b011 <<  9 |
   543:      0b101 <<  6 |
   544:      0b101 <<  3 |
   545:      0b011),
   546:     //62 b
   547:     (0b100 << 12 |
   548:      0b110 <<  9 |
   549:      0b101 <<  6 |
   550:      0b101 <<  3 |
   551:      0b110),
   552:     //63 c
   553:     (0b000 << 12 |
   554:      0b011 <<  9 |
   555:      0b100 <<  6 |
   556:      0b100 <<  3 |
   557:      0b011),
   558:     //64 d
   559:     (0b001 << 12 |
   560:      0b011 <<  9 |
   561:      0b101 <<  6 |
   562:      0b101 <<  3 |
   563:      0b011),
   564:     //65 e
   565:     (0b000 << 12 |
   566:      0b011 <<  9 |
   567:      0b101 <<  6 |
   568:      0b110 <<  3 |
   569:      0b011),
   570:     //66 f
   571:     (0b011 << 12 |
   572:      0b111 <<  9 |
   573:      0b010 <<  6 |
   574:      0b010 <<  3 |
   575:      0b010),
   576:     //67 g
   577:     (0b011 << 12 |
   578:      0b101 <<  9 |
   579:      0b111 <<  6 |
   580:      0b001 <<  3 |
   581:      0b110),
   582:     //68 h
   583:     (0b100 << 12 |
   584:      0b110 <<  9 |
   585:      0b101 <<  6 |
   586:      0b101 <<  3 |
   587:      0b101),
   588:     //69 i
   589:     (0b010 << 12 |
   590:      0b000 <<  9 |
   591:      0b010 <<  6 |
   592:      0b010 <<  3 |
   593:      0b010),
   594:     //6a j
   595:     (0b001 << 12 |
   596:      0b000 <<  9 |
   597:      0b001 <<  6 |
   598:      0b001 <<  3 |
   599:      0b110),
   600:     //6b k
   601:     (0b100 << 12 |
   602:      0b101 <<  9 |
   603:      0b110 <<  6 |
   604:      0b110 <<  3 |
   605:      0b101),
   606:     //6c l
   607:     (0b110 << 12 |
   608:      0b010 <<  9 |
   609:      0b010 <<  6 |
   610:      0b010 <<  3 |
   611:      0b010),
   612:     //6d m
   613:     (0b000 << 12 |
   614:      0b110 <<  9 |
   615:      0b111 <<  6 |
   616:      0b111 <<  3 |
   617:      0b101),
   618:     //6e n
   619:     (0b000 << 12 |
   620:      0b110 <<  9 |
   621:      0b101 <<  6 |
   622:      0b101 <<  3 |
   623:      0b101),
   624:     //6f o
   625:     (0b000 << 12 |
   626:      0b010 <<  9 |
   627:      0b101 <<  6 |
   628:      0b101 <<  3 |
   629:      0b010),
   630:     //70 p
   631:     (0b000 << 12 |
   632:      0b110 <<  9 |
   633:      0b101 <<  6 |
   634:      0b110 <<  3 |
   635:      0b100),
   636:     //71 q
   637:     (0b000 << 12 |
   638:      0b011 <<  9 |
   639:      0b101 <<  6 |
   640:      0b011 <<  3 |
   641:      0b001),
   642:     //72 r
   643:     (0b000 << 12 |
   644:      0b011 <<  9 |
   645:      0b100 <<  6 |
   646:      0b100 <<  3 |
   647:      0b100),
   648:     //73 s
   649:     (0b000 << 12 |
   650:      0b011 <<  9 |
   651:      0b010 <<  6 |
   652:      0b001 <<  3 |
   653:      0b110),
   654:     //74 t
   655:     (0b010 << 12 |
   656:      0b111 <<  9 |
   657:      0b010 <<  6 |
   658:      0b010 <<  3 |
   659:      0b001),
   660:     //75 u
   661:     (0b000 << 12 |
   662:      0b101 <<  9 |
   663:      0b101 <<  6 |
   664:      0b101 <<  3 |
   665:      0b011),
   666:     //76 v
   667:     (0b000 << 12 |
   668:      0b101 <<  9 |
   669:      0b101 <<  6 |
   670:      0b101 <<  3 |
   671:      0b010),
   672:     //77 w
   673:     (0b000 << 12 |
   674:      0b101 <<  9 |
   675:      0b111 <<  6 |
   676:      0b111 <<  3 |
   677:      0b011),
   678:     //78 x
   679:     (0b000 << 12 |
   680:      0b101 <<  9 |
   681:      0b010 <<  6 |
   682:      0b010 <<  3 |
   683:      0b101),
   684:     //79 y
   685:     (0b000 << 12 |
   686:      0b101 <<  9 |
   687:      0b101 <<  6 |
   688:      0b010 <<  3 |
   689:      0b100),
   690:     //7a z
   691:     (0b000 << 12 |
   692:      0b111 <<  9 |
   693:      0b001 <<  6 |
   694:      0b010 <<  3 |
   695:      0b111),
   696:     //7b {
   697:     (0b001 << 12 |
   698:      0b010 <<  9 |
   699:      0b110 <<  6 |
   700:      0b010 <<  3 |
   701:      0b001),
   702:     //7c |
   703:     (0b010 << 12 |
   704:      0b010 <<  9 |
   705:      0b000 <<  6 |
   706:      0b010 <<  3 |
   707:      0b010),
   708:     //7d }
   709:     (0b100 << 12 |
   710:      0b010 <<  9 |
   711:      0b011 <<  6 |
   712:      0b010 <<  3 |
   713:      0b100),
   714:     //7e ~
   715:     (0b111 << 12 |
   716:      0b000 <<  9 |
   717:      0b000 <<  6 |
   718:      0b000 <<  3 |
   719:      0b000),
   720:   };
   721: */
   722:   //  perl misc/itoc.pl xeij/Indicator.java IND_ASCII_3X5
   723:   public static final char[] IND_ASCII_3X5 = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\u2482\u5a00\u5f7d\u3c9e\u5c9d\u6cae\u2400\u1491\u4494\u0aa8\u05d0\22\u01c0\2\u02a0\u7b6f\u2492\u73e7\u73cf\u5bc9\u79cf\u79ef\u7249\u7bef\u7bcf\u0410\u0412\u1511\u0e38\u4454\u6282\u2be3\u2bed\u6bae\u3923\u6b6e\u79e7\u79e4\u396b\u5bed\u7497\u124e\u5bad\u4927\u5fed\u6b6d\u2b6a\u6ba4\u2b7b\u6bad\u388e\u7492\u5b6f\u5b6a\u5bfd\u5aad\u5a92\u72a7\u3493\u0888\u6496\u2a00\7\u2200\u076b\u4d6e\u0723\u176b\u0773\u3e92\u3bce\u4d6d\u2092\u104e\u4bb5\u6492\u0dfd\u0d6d\u056a\u0d74\u0759\u0724\u068e\u2e91\u0b6b\u0b6a\u0bfb\u0a95\u0b54\u0e57\u1591\u2412\u44d4\u7000".toCharArray ();
   724: 
   725: }