FDMedia.java
     1: //========================================================================================
     2: //  FDMedia.java
     3: //    en:Floppy disk media
     4: //    ja:フロッピーディスクメディア
     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: //----------------------------------------------------------------------------------------
    14: //フロッピーディスクのメディアの種類
    15: //
    16: //  シリンダ
    17: //    ここではシリンダとトラックと明確に区別する(トラックの項目を参照)
    18: //    シリンダ数は一般的なメディアでは77または80
    19: //    シリンダ番号は最も外側が0、最も内側が(シリンダ数-1)
    20: //      アドレスヘッダのC,H,S,NのC
    21: //
    22: //  サイド
    23: //    サイド数は片面ディスクが1、両面ディスクが2
    24: //    サイド番号は表面が0、裏面が1。2HDEは最初のセクタを除いて表面が128、裏面が129
    25: //      ヘッドアドレスとも呼ばれる
    26: //      アドレスヘッダのC,H,S,NのH
    27: //
    28: //  トラック
    29: //    トラック数は(サイド数*シリンダ数)
    30: //    トラック番号は(サイド数*シリンダ番号+サイド番号)
    31: //    トラック番号はアクセスする順序で数えたトラックの通し番号であり、シリンダ番号とは異なる
    32: //      フロッピーディスクが片面しかなかった時代の名残でシリンダとトラックを明確に区別していない資料もあるが、
    33: //      両面ディスクは1つのシリンダに2つのトラックがあり、トラックを特定できない番号(シリンダ番号)をトラック番号と呼ぶべきではない
    34: //      シリンダとトラックを区別していてもトラック0はシリンダ0にあるのでTrack0信号やトラック0へのシークはそのままになっていたりする
    35: //
    36: //  セクタ
    37: //    セクタ番号はトラックの先頭が1、末尾がEOT。2HSは最初のセクタを除いてトラックの先頭が10、末尾が18
    38: //      レコード番号とも呼ばれる
    39: //      アドレスヘッダのC,H,S,NのS
    40: //    セクタサイズは1セクタあたりのバイト数
    41: //    セクタスケールは(log2(セクタサイズ)-7)
    42: //      アドレスヘッダのC,H,S,NのN
    43: //    セクタサイズと1トラックあたりのセクタ数(EOT)はメディアの種類によって大きく異なる
    44: //! ここで言うセクタはOSレベル(BPB)の論理セクタではなくてIOCSレベルの物理セクタである
    45: //! Human68kではフロッピーディスクの論理セクタと物理セクタのサイズが同じなので区別が曖昧になっている
    46: //
    47: //  セクタの順序
    48: //    シリンダ0サイド0(トラック0)セクタ1、…、シリンダ0サイド0(トラック0)セクタEOT、
    49: //    シリンダ0サイド1(トラック1)セクタ1、…、シリンダ0サイド1(トラック1)セクタEOT、
    50: //    シリンダ1サイド0(トラック2)セクタ1、…、シリンダ1サイド0(トラック2)セクタEOT、
    51: //    シリンダ1サイド1(トラック3)セクタ1、…、シリンダ1サイド1(トラック3)セクタEOT、…
    52: //
    53: //  トラックフォーマット
    54: //    Index Pulseは12cmディスクの場合は円盤に空いている穴で検出される。そこから1回転で1トラック
    55: //        ┏━━━━━━┓                                                                                ┏━━━━━━┓
    56: //        ┃Index Pulse ┃                                                                                ┃            ┃
    57: //    ━━┛            ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛            ┗━
    58: //        │        │        │Index Mark │        │            │            │            │         │
    59: //        │ Gap4a  │  Sync  │    IAM    │  Gap1  │  Sector1   │     …     │ SectorEOT  │  Gap4b  │
    60: //    FM  │$4E x 40│$00 x 6 │    $FC    │$4E x 26│            │            │            │         │
    61: //    MFM │$4E x 80│$00 x 12│$C2 x 3,$FC│$4E x 50│            │            │            │         │
    62: //
    63: //  セクタフォーマット
    64: //    SectorEOTにはGap3がなく、Dataの直後にGap4bが続く
    65: //        │                   ID Field                    │        │                    Data Field                     │         │
    66: //        │        │AddressMark│     Address Header     │        │        │DataAddressMark│         Data           │         │
    67: //        │  Sync  │   IDAM    │ C , H , S , N │  CRC  │  Gap2  │  Sync  │   DAM/DDAM    │               │  CRC  │  Gap3   │
    68: //    FM  │$00 x 6 │    $FE    │$xx,$xx,$xx,$xx│$xx x 2│$4E x 11│$00 x 6 │    $FB/$F8    │$xx x (128<<N) │$xx x 2│$4E x GPL│
    69: //    MFM │$00 x 12│$A1 x 3,$FE│$xx,$xx,$xx,$xx│$xx x 2│$4E x 22│$00 x 12│$A1 x 3,$FB/$F8│$xx x (128<<N) │$xx x 2│$4E x GPL│
    70: //
    71: //  IBMフォーマット
    72: //               N  EOT  GPL  GSL
    73: //    FM    128  0   26   27    7
    74: //          256  1   15   42   14
    75: //          512  2    8   58   27
    76: //    MFM   256  1   26   54   14
    77: //          512  2   15   84   27  2HC
    78: //         1024  3    8  116   53  2HD
    79: //
    80: //  ECMAフォーマット
    81: //               N  EOT  GPL  GSL
    82: //    FM    128  0   16   24    7
    83: //          256  1    9   38   14
    84: //    MFM   256  1   16   50   14
    85: //----------------------------------------------------------------------------------------
    86: 
    87: package xeij;
    88: 
    89: import java.io.*;  //BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter,File,FileInputStream,FileNotFoundException,FileReader,InputStream,InputStreamReader,IOException,OutputStreamWriter,RandomAccessFile
    90: import java.lang.*;  //Boolean,Character,Class,Comparable,Double,Exception,Float,IllegalArgumentException,Integer,Long,Math,Number,Object,Runnable,SecurityException,String,StringBuilder,System
    91: import java.util.*;  //ArrayList,Arrays,Calendar,GregorianCalendar,HashMap,Map,Map.Entry,Timer,TimerTask,TreeMap
    92: import java.util.zip.*;  //CRC32,Deflater,GZIPInputStream,GZIPOutputStream,ZipEntry,ZipInputStream
    93: 
    94: public final class FDMedia extends HumanMedia {
    95: 
    96:   //  メディアの種類
    97:   //    最初の5種類(2HD/2HC/2DD8/2DD9/2HQ)はFDDEVICE.XとFORMAT.Xに合わせる
    98:   //    資料として参考にしたもの(動作を確認したものではない)
    99:   //      FDDEVICE.X 1.00 (SHARP/Hudson)
   100:   //      FORMAT.X:FORMAT1.X 2.20 (SHARP/Hudson)
   101:   //      FORMAT.X:FORMAT2.X 2.31 (SHARP/Hudson)
   102:   //      9SCDRV.X 3.14+2 (6no8rouさん)
   103:   //      9SCFMT.X 3.14+2 (6no8rouさん)
   104:   //      DIFC.X 1.19+8 (GUNさん)
   105:   //      DIMG.X 1.10 (H.ATAさん)
   106:   //      dpack.x 1.32.6 (feelさん、m.matsuoさん、SiNさん)
   107:   //      vfic.exe 010621 (REDさん)
   108:   //      READFD.X 1.1 (yamamaさん)
   109:   //    メモ
   110:   //      XDFファイルを作るREADFD.Xは2HDのみの対応なのでXDFは2HDのみと考えられるが、
   111:   //      ここではHuman68kが標準で(FDDEVICE.Xで)対応していてファイルサイズで区別することができる2HD/2HC/2DD8/2DD9/2HQの5種類について、
   112:   //      拡張子がXDFでよいことにする
   113:   //    mediaByte
   114:   //      メディアバイト
   115:   //      FDDEVICE.Xの中のBPBテーブルに書かれている値
   116:   //      メディア判別を行う度にBPBテーブルごとHuman68kに渡され、DPBが作られて_GETDPBで返される
   117:   //    fatID
   118:   //      FDDEVICE.Xの中のメディア判別コードとFORMAT.Xの中のBPBテーブルに書かれている値
   119:   //      IPLの中のBPBテーブルとFAT領域の先頭に書き込まれる
   120:   public static final FDMedia[] FDM_ARRAY = {
   121:     //               -------------論理仕様(BPB)-------------  -------物理仕様(IOCS)------
   122:     //                          rootEntries          sectorsPerTrack tracksPerCylinder
   123:     //                reservedSectors| mediaByte       sectorScale|  |cylindersPerDisk
   124:     //                   fatCount|   |     |  partitionSectors|   |  |   |doubleDensity
   125:     //       sectorsPerCluster|  |   |     |    fatSectors|   |   |  |   |    |
   126:     //       bytesPerSector|  |  |   |     |   fatID |    |   |   |  |   |    |
   127:     //          番号   |   |  |  |   |     |     |   |    |   |   |  |   |    |         名前               拡張子               IOCS
   128:     new FDMedia ( 0, 1024, 1, 2, 1, 192, 0xfe, 0xfe, 2, 1232, 3,  8, 2, 77, false, "2HD (1232KB)", "2HD,HDM,XDF"         ),  //$9xxx
   129:     new FDMedia ( 1,  512, 1, 2, 1, 224, 0xfd, 0xf9, 7, 2400, 2, 15, 2, 80, false, "2HC (1200KB)", "2HC,FS,HD5,XDF"      ),  //$9xxx
   130:     new FDMedia ( 2,  512, 2, 2, 1, 112, 0xfb, 0xfb, 2, 1280, 2,  8, 2, 80, true , "2DD (640KB)",  "2DD,2DD8,DD8,DD6,XDF"),  //$1xxx
   131:     new FDMedia ( 3,  512, 2, 2, 1, 112, 0xfc, 0xf9, 3, 1440, 2,  9, 2, 80, true , "2DD (720KB)",  "2DD,2DD9,DD9,XDF"    ),  //$3xxx
   132:     new FDMedia ( 4,  512, 1, 2, 1, 224, 0xfa, 0xf0, 9, 2880, 2, 18, 2, 80, false, "2HQ (1440KB)", "2HQ,HD4,XDF"         ),  //$7xxx
   133:     new FDMedia ( 5,  512, 2, 2, 1, 112, 0xe0, 0xe0, 3, 1600, 2, 10, 2, 80, true,  "2DD (800KB)",  "2DD,2DD10,DDA"       ),
   134:     new FDMedia ( 6, 1024, 1, 2, 1, 192, 0xec, 0xf8, 3, 1440, 3,  9, 2, 80, false, "2HDE(1440KB)", "2HDE,2HE"            ),
   135:     new FDMedia ( 7, 1024, 1, 1, 1, 192, 0xeb, 0xfb, 3, 1440, 3,  9, 2, 80, false, "2HS (1440KB)", "2HS"                 ),
   136:   };
   137:   public static final FDMedia FDM_2HD   = FDM_ARRAY[0];
   138:   public static final FDMedia FDM_2HC   = FDM_ARRAY[1];
   139:   public static final FDMedia FDM_2DD8  = FDM_ARRAY[2];
   140:   public static final FDMedia FDM_2DD9  = FDM_ARRAY[3];
   141:   public static final FDMedia FDM_2HQ   = FDM_ARRAY[4];
   142:   public static final FDMedia FDM_2DD10 = FDM_ARRAY[5];
   143:   public static final FDMedia FDM_2HDE  = FDM_ARRAY[6];
   144:   public static final FDMedia FDM_2HS   = FDM_ARRAY[7];
   145:   public static final int FDM_BUFFER_SIZE = 256 + 1024 * 1600 + 16;  //FDM_ARRAYにあるfdmBytesPerDiskの最大値+256よりも少し大きい値
   146: 
   147:   public static final byte[] fdmCache = new byte[FDM_BUFFER_SIZE];
   148: 
   149:   //media = fdmPathToMedia (path, bb)
   150:   //  パスに合うメディアを返す。null=見つからない
   151:   //  バッファを指定したときはそこにコピーする
   152:   public static FDMedia fdmPathToMedia (String path, byte[] bb) {
   153:     byte[] array = XEiJ.rscGetFile (path);
   154:     if (array == null) {  //読み込めない
   155:       return null;
   156:     }
   157:     FDMedia outputMedia = null;
   158:     byte[] outputArray = null;
   159:     int dotIndex = path.lastIndexOf ('.');
   160:     String upperExt = dotIndex < 0 ? "" : path.substring (dotIndex + 1).toUpperCase ();
   161:     if (upperExt.equals ("DIM")) {  //*.DIM
   162:       if (array.length < 256) {  //短すぎる
   163:         System.out.println (Multilingual.mlnJapanese ?
   164:                             path + " は短すぎます" :
   165:                             path + " is too short");
   166:         return null;
   167:       }
   168:       if (!new String (array, 171, 13, XEiJ.ISO_8859_1).equals ("DIFC HEADER  ")) {  //マジックが一致しない
   169:         System.out.println (Multilingual.mlnJapanese ?
   170:                             path + " に DIFC HEADER がありません" :
   171:                             path + " does not have DIFC HEADER");
   172:         return null;
   173:       }
   174:       //形式を確認する
   175:       switch (array[0]) {
   176:       case 0x00:
   177:         outputMedia = FDM_2HD;
   178:         break;
   179:       case 0x01:
   180:         outputMedia = FDM_2HS;
   181:         break;
   182:       case 0x02:
   183:         outputMedia = FDM_2HC;
   184:         break;
   185:       case 0x03:
   186:         outputMedia = FDM_2HDE;
   187:         break;
   188:       case 0x09:
   189:         outputMedia = FDM_2HQ;
   190:         break;
   191:       default:  //未対応の形式
   192:         System.out.println (Multilingual.mlnJapanese ?
   193:                             path + " のフォーマットが不明です" :
   194:                             "Format of " + path + " is unclear");
   195:         return null;
   196:       }
   197:       //その他のヘッダ情報を確認する
   198:       int tracksPerDisk = outputMedia.fdmTracksPerDisk;  //本来のトラック数
   199:       if (array[0x00FF] != 0x00 &&
   200:           array[0x00FF] != tracksPerDisk) {  //オーバートラック
   201:         System.out.println (Multilingual.mlnJapanese ?
   202:                             path + " のトラック数が違います" :
   203:                             path + " has wrong number of tracks");
   204:         return null;
   205:       }
   206:       for (int i = 0; i < tracksPerDisk; i++) {
   207:         if (array[0x0001 + i] != 0x00 &&
   208:             array[0x0001 + i] != 0x01) {  //存在するトラックの保存状態が0x00または0x01でない
   209:           System.out.println (Multilingual.mlnJapanese ?
   210:                               path + " に不明なトラックがあります" :
   211:                               path + " has unclear tracks");
   212:           return null;
   213:         }
   214:       }
   215:       for (int i = tracksPerDisk; i < 170; i++) {  //存在しないトラックの保存状態が0x00でない
   216:         if (array[0x0001 + i] != 0x00) {
   217:           System.out.println (Multilingual.mlnJapanese ?
   218:                               path + " に不明なトラックがあります" :
   219:                               path + " has unclear tracks");
   220:           return null;
   221:         }
   222:       }
   223:       //トラック保存状態をコピーする
   224:       byte[] savedFlag = new byte[tracksPerDisk];
   225:       System.arraycopy (array, 1, savedFlag, 0, tracksPerDisk);
   226:       //保存されているトラックの数を確認する
   227:       int savedTracks = 0;
   228:       for (int track = 0; track < tracksPerDisk; track++) {
   229:         if (savedFlag[track] == 0x01) {  //保存されている
   230:           savedTracks++;
   231:         }
   232:       }
   233:       int bytesPerTrack = outputMedia.fdmBytesPerSector * outputMedia.fdmSectorsPerTrack;
   234:       if (array.length != 256 + bytesPerTrack * savedTracks) {  //ファイルサイズが一致しない
   235:         System.out.println (Multilingual.mlnJapanese ?
   236:                             path + " のファイルサイズが違います" :
   237:                             path + " has wrong file size");
   238:         return null;
   239:       }
   240:       //保存されているトラックを再配置する
   241:       outputArray = new byte[outputMedia.fdmBytesPerDisk];
   242:       int srcTrack = 0;
   243:       for (int dstTrack = 0; dstTrack < tracksPerDisk; dstTrack++) {
   244:         if (savedFlag[dstTrack] == 0x01) {  //保存されているトラック
   245:           System.arraycopy (array, 256 + bytesPerTrack * srcTrack, outputArray, bytesPerTrack * dstTrack, bytesPerTrack);  //コピーする
   246:           srcTrack++;
   247:         } else {  //保存されていないトラック
   248:           Arrays.fill (outputArray, bytesPerTrack * dstTrack, bytesPerTrack * (dstTrack + 1), (byte) 0xe5);  //0xe5で埋める
   249:         }
   250:       }
   251:     } else {  //*.DIM以外
   252:       //メディアを探す
   253:       //  最初にファイルサイズと拡張子が一致したもの、なければ最初にファイルサイズが一致したもの
   254:     checkMedia:
   255:       for (FDMedia media : FDMedia.FDM_ARRAY) {
   256:         if (media.fdmBytesPerDisk == array.length) {  //ファイルサイズが一致
   257:           if (outputMedia == null) {
   258:             outputMedia = media;
   259:           }
   260:           for (String mediaExt : media.fdmExtensionArray) {
   261:             if (upperExt.equals (mediaExt)) {  //ファイルサイズと拡張子が一致
   262:               outputMedia = media;
   263:               break checkMedia;
   264:             }
   265:           }
   266:         }
   267:       }
   268:       if (outputMedia == null) {  //不明
   269:         System.out.println (Multilingual.mlnJapanese ?
   270:                             path + " はフロッピーディスクのイメージファイルではありません" :
   271:                             path + " is not a floppy disk image file");
   272:         return null;
   273:       }
   274:       outputArray = array;
   275:     }
   276:     System.out.println (Multilingual.mlnJapanese ?
   277:                         path + " は " + outputMedia.fdmName + " です" :
   278:                         path + " is " + outputMedia.fdmName);
   279:     if (bb != null) {  //バッファが指定された
   280:       System.arraycopy (outputArray, 0, bb, 0, outputArray.length);
   281:     }
   282:     return outputMedia;
   283:   }  //fdmPathToMedia(String,byte[])
   284: 
   285:   public int fdmNumber;  //番号
   286:   public int fdmSectorScale;  //セクタスケール=log2(セクタサイズ)-7。0=128バイト,1=256バイト,2=512バイト,3=1024バイト
   287:   public int fdmSectorsPerTrack;  //セクタ数=セクタ/トラック
   288:   public int fdmTracksPerCylinder;  //サイド数=トラック/シリンダ
   289:   public int fdmCylindersPerDisk;  //シリンダ数=シリンダ/ディスク
   290:   public boolean fdmDoubleDensity;  //false=高密度(8MHz,2HD/2HC/2HQ/2HDE/2HS),true=倍密度(4MHz,2DD8/2DD9/2DD10)
   291:   public int fdmTracksPerDisk;  //総トラック数=トラック/ディスク
   292:   public int fdmSectorsPerDisk;  //総セクタ数=セクタ/ディスク
   293:   public int fdmBytesPerSector;  //セクタサイズ=バイト/セクタ=128<<セクタスケール
   294:   public int fdmBytesPerDisk;  //ディスクサイズ=バイト/ディスク=セクタサイズ*セクタ数*サイド数*シリンダ数
   295:   public int fdmTwoSide;  //Two Side信号。0=片面,FDC.FDC_ST3_TS=両面
   296:   public String fdmName;  //名前
   297:   public String[] fdmExtensionArray;  //拡張子
   298:   public int fdmRootStartSector;  //ルートディレクトリの先頭セクタ番号
   299:   public int fdmDataStartSector;  //データ領域の先頭セクタ番号
   300: 
   301:   public FDMedia (int number,
   302:                   int bytesPerSector, int sectorsPerCluster, int fatCount, int reservedSectors,
   303:                   int rootEntries, int mediaByte, int fatID, int fatSectors, int partitionSectors,
   304:                   int sectorScale, int sectorsPerTrack, int tracksPerCylinder, int cylindersPerDisk,
   305:                   boolean doubleDensity,
   306:                   String name, String extensions) {
   307:     //super (ByteArray.byaRiwz (FDM_DISK_BPB, (number << 5) + 0x0000),  //bytesPerSector
   308:     //       ByteArray.byaRbz ( FDM_DISK_BPB, (number << 5) + 0x0002),  //sectorsPerCluster
   309:     //       ByteArray.byaRbz ( FDM_DISK_BPB, (number << 5) + 0x0005),  //fatCount
   310:     //       ByteArray.byaRiwz (FDM_DISK_BPB, (number << 5) + 0x0003),  //reservedSectors
   311:     //       ByteArray.byaRiwz (FDM_DISK_BPB, (number << 5) + 0x0006),  //rootEntries
   312:     //       ByteArray.byaRbz ( FDM_DISK_BPB, (number << 5) + 0x000a),  //fatID
   313:     //       ByteArray.byaRbz ( FDM_DISK_BPB, (number << 5) + 0x000b),  //fatSectors
   314:     //       (long) ((128 << sectorScale) * sectorsPerTrack * tracksPerCylinder * cylindersPerDisk));  //diskEndByte
   315:     super (bytesPerSector, sectorsPerCluster, fatCount, reservedSectors,
   316:            rootEntries, mediaByte, fatID, fatSectors, (long) bytesPerSector * partitionSectors);
   317:     fdmNumber = number;  //番号
   318:     fdmSectorScale = sectorScale;  //セクタスケール=log2(セクタサイズ)-7
   319:     fdmSectorsPerTrack = sectorsPerTrack;  //1トラックあたりのセクタ数
   320:     fdmTracksPerCylinder = tracksPerCylinder;  //サイド数=1シリンダあたりのトラック数
   321:     fdmCylindersPerDisk = cylindersPerDisk;  //シリンダ数
   322:     fdmDoubleDensity = doubleDensity;  //高密度/倍密度
   323:     fdmTracksPerDisk = tracksPerCylinder * cylindersPerDisk;  //総トラック数
   324:     fdmSectorsPerDisk = sectorsPerTrack * fdmTracksPerDisk;  //総セクタ数
   325:     fdmBytesPerSector = 128 << sectorScale;  //セクタサイズ=1セクタあたりのバイト数
   326:     fdmBytesPerDisk = fdmBytesPerSector * fdmSectorsPerDisk;  //ディスクサイズ
   327:     fdmTwoSide = tracksPerCylinder == 2 ? FDC.FDC_ST3_TS : 0;  //片面/両面
   328:     fdmName = name;  //名前
   329:     fdmExtensionArray = extensions.split (",");  //拡張子
   330:     fdmRootStartSector = (int) (humRootStartByte >> 7 + fdmSectorScale);  //ルートディレクトリの先頭セクタ番号
   331:     fdmDataStartSector = (int) (humDataStartByte >> 7 + fdmSectorScale);  //データ領域の先頭セクタ番号
   332:     if (FDC.FDC_DEBUG_TRACE && FDC.fdcDebugLogOn) {
   333:       fdmPrintInfo ();
   334:     }
   335:   }  //new FDMedia(...)
   336: 
   337:   //success = media.fdmMakeFormatData (bb, copySystemFiles, x86SafeOn)
   338:   //success = media.fdmMakeFormatData (bb, humanSysOn, commandXOn, x86SafeOn)
   339:   //  フロッピーディスクのフォーマットデータを作る
   340:   //public boolean fdmMakeFormatData (byte[] bb, boolean copySystemFiles, boolean x86SafeOn) {
   341:   public boolean fdmMakeFormatData (byte[] bb, boolean humanSysOn, boolean commandXOn, boolean x86SafeOn) {
   342:     Arrays.fill (bb, 0, (int) humDataStartByte, (byte) 0x00);  //データ領域以外は0x00で埋める
   343:     Arrays.fill (bb, (int) humDataStartByte, (int) humDiskEndByte, (byte) 0xe5);  //データ領域は0xe5で埋める
   344:     //フロッピーディスクIPLを書き込む
   345:     if (this == FDM_2HDE) {
   346:       System.arraycopy (FDM_2HDE_IPL, 0, bb, 0x00000000, FDM_2HDE_IPL.length);
   347:     } else if (this == FDM_2HS) {
   348:       System.arraycopy (FDM_2HS_IPL, 0, bb, 0x00000000, FDM_2HS_IPL.length);
   349:     } else {
   350:       System.arraycopy (FDM_DISK_IPL, 0, bb, 0x00000000, FDM_DISK_IPL.length);
   351:       //x86セーフ
   352:       //  2HQフローピーディスクのIPLの先頭3バイトを0xeb,0xfe,0x90にする
   353:       //  0xeb,0xfe,0x90は8086の命令でJMP(*);NOP
   354:       //  x86系のPCの起動ディスクではないディスクのIPLの先頭3バイトを0xeb,0xfe,0x90にしておくと、誤ってx86系のPCで起動しようとしても余計なことをする前に無限ループに落ちるので安全(ということらしい)
   355:       //  先頭が0x60でないのでX68000でも起動できなくなる
   356:       //  FORMAT.Xの場合
   357:       //    FORMAT.X /4    x86セーフにする
   358:       //    FORMAT.X /4/i  x86セーフにしない
   359:       if (this == FDM_2HQ && x86SafeOn) {  //2HQでx86セーフにするとき
   360:         bb[0] = (byte) 0xeb;
   361:         bb[1] = (byte) 0xfe;
   362:         //bb[2] = (byte) 0x90;  //元々0x90なので不要
   363:       }
   364:       //フロッピーディスクIPLにBPBを埋め込む
   365:       if (false) {
   366:         System.arraycopy (FDM_DISK_BPB,  fdmNumber << 5      , bb, 0x00000000 + (0x200b - 0x2000), 18);
   367:         System.arraycopy (FDM_DISK_BPB, (fdmNumber << 5) + 18, bb, 0x00000000 + (0x2162 - 0x2000), 14);
   368:       } else {
   369:         ByteArray.byaWiw (bb, 0x00000000 + (0x200b - 0x2000) +  0, humBytesPerSector);
   370:         ByteArray.byaWb ( bb, 0x00000000 + (0x200b - 0x2000) +  2, humSectorsPerCluster);
   371:         ByteArray.byaWiw (bb, 0x00000000 + (0x200b - 0x2000) +  3, humReservedSectors);
   372:         ByteArray.byaWb ( bb, 0x00000000 + (0x200b - 0x2000) +  5, humFatCount);
   373:         ByteArray.byaWiw (bb, 0x00000000 + (0x200b - 0x2000) +  6, humRootEntries);
   374:         ByteArray.byaWiw (bb, 0x00000000 + (0x200b - 0x2000) +  8, humPartitionSectors);
   375:         ByteArray.byaWb ( bb, 0x00000000 + (0x200b - 0x2000) + 10, humFatID);
   376:         ByteArray.byaWb ( bb, 0x00000000 + (0x200b - 0x2000) + 11, humFatSectors);
   377:         ByteArray.byaWw ( bb, 0x00000000 + (0x200b - 0x2000) + 12, fdmSectorsPerTrack);
   378:         ByteArray.byaWw ( bb, 0x00000000 + (0x200b - 0x2000) + 14, fdmTracksPerCylinder);
   379:         ByteArray.byaWb ( bb, 0x00000000 + (0x200b - 0x2000) + 16, 0);
   380:         ByteArray.byaWb ( bb, 0x00000000 + (0x200b - 0x2000) + 17, 0);
   381:         ByteArray.byaWl ( bb, 0x00000000 + (0x2162 - 0x2000) +  0, fdmBytesPerSector);  //1セクタあたりのバイト数
   382:         ByteArray.byaWl ( bb, 0x00000000 + (0x2162 - 0x2000) +  4,
   383:                      fdmSectorScale << 24 |
   384:                      0 << 16 |
   385:                      fdmRootStartSector / fdmSectorsPerTrack << 8 |
   386:                      1 + fdmRootStartSector % fdmSectorsPerTrack);  //ルートディレクトリの位置
   387:         ByteArray.byaWw ( bb, 0x00000000 + (0x2162 - 0x2000) +  8, fdmSectorsPerTrack);  //1トラックあたりのセクタ数
   388:         ByteArray.byaWw ( bb, 0x00000000 + (0x2162 - 0x2000) + 10, (fdmBytesPerSector >> 5) - 1);  //humEntriesPerSector-1。1セクタあたりのエントリ数-1
   389:         ByteArray.byaWw ( bb, 0x00000000 + (0x2162 - 0x2000) + 12, fdmDataStartSector - 2);  //データ領域の先頭セクタ番号-2
   390:         if (FDC.FDC_DEBUG_TRACE && FDC.fdcDebugLogOn) {
   391:           if (fdmNumber < 5) {
   392:             System.out.printf ("fdmNumber=%d\n", fdmNumber);
   393:             for (int k = 0; k < 2; k++) {
   394:               int l = k == 0 ? 18 : 14;
   395:               int b1 = (fdmNumber << 5) + (k == 0 ? 0 : 18);
   396:               int b2 = (k == 0 ? 0x200b : 0x2162) - 0x2000;
   397:               System.out.printf ("%04x ", b1);
   398:               for (int i = 0; i < l; i++) {
   399:                 System.out.printf (" %02x", FDM_DISK_BPB[b1 + i] & 255);
   400:               }
   401:               System.out.println ();
   402:               System.out.printf ("%04x ", b2);
   403:               boolean match = true;
   404:               for (int i = 0; i < l; i++) {
   405:                 System.out.printf (" %02x", bb[b2 + i] & 255);
   406:                 match = match && FDM_DISK_BPB[b1 + i] == bb[b2 + i];
   407:               }
   408:               System.out.println (match ? "  OK" : "  ERROR");
   409:             }
   410:           }
   411:         }
   412:       }
   413:     }
   414:     //FAT領域の先頭にFATマーカーを書き込む
   415:     humWriteFatMarker (bb);
   416:     //システムファイルを転送する
   417:     //if (copySystemFiles) {
   418:     //  if (!humCopyHumanSys (bb) ||
   419:     //      !humCopyCommandX (bb)) {
   420:     //    return false;
   421:     //  }
   422:     //}
   423:     if (humanSysOn) {
   424:       if (!humCopyHumanSys (bb)) {
   425:         return false;
   426:       }
   427:       if (commandXOn) {
   428:         if (!humCopyCommandX (bb)) {
   429:           return false;
   430:         }
   431:       }
   432:     }
   433:     if (false) {
   434:       humDumpFat (bb);
   435:     }
   436:     return true;
   437:   }  //media.fdmMakeFormatData(byte[],boolean)
   438: 
   439:   //dimSize = media.fdmMakeDimImage (dimBuffer, diskImage)
   440:   //  *.DIMのイメージを作る
   441:   //  dimSize    *.DIMのサイズ
   442:   //  dimBuffer  *.DIMのイメージ
   443:   //  diskImage  ディスクイメージ
   444:   //
   445:   //  DIFCヘッダ
   446:   //  $0000   .b              メディアタイプ($00=2HD,$01=2HS,$02=2HC,$03=2HDE,$09=2HQ,$11=N88)
   447:   //  $0001   .b[170]         トラック保存状態($00=なし,$01=あり)
   448:   //  $00AB   .b[15]  'DIFC HEADER  ',$00,$00
   449:   //  $00BA   .l              ファイル作成日付(_DATEGET)
   450:   //  $00BA   .b              ファイル作成曜日(0~6)
   451:   //  $00BB   .b              ファイル作成西暦年-$1980(BCD)
   452:   //  $00BC   .b              ファイル作成月(BCD)
   453:   //  $00BD   .b              ファイル作成月通日(BCD)
   454:   //  $00BE   .l              ファイル作成時刻(_TIMEGET)
   455:   //  $00BE   .b      $01     $00=12時間計,$01=24時間計
   456:   //  $00BF   .b              ファイル作成時(BCD)
   457:   //  $00C0   .b              ファイル作成分(BCD)
   458:   //  $00C1   .b              ファイル作成秒(BCD)
   459:   //  $00C2   .b[60]          コメント。残りは$00。空白を含むときは/*~*/で囲む
   460:   //  $00FE   .b      $19     DIFC.Xのバージョン(BCD)($19=1.19)
   461:   //  $00FF   .b      $00     オーバートラック($00=NO,その他=/Bのトラック数)
   462:   public int fdmMakeDimImage (byte[] dimImage, byte[] diskImage) {
   463:     if (this == FDM_2HD) {
   464:       dimImage[0x0000] = 0x00;  //メディアタイプ
   465:     } else if (this == FDM_2HS) {
   466:       dimImage[0x0000] = 0x01;
   467:     } else if (this == FDM_2HC) {
   468:       dimImage[0x0000] = 0x02;
   469:     } else if (this == FDM_2HDE) {
   470:       dimImage[0x0000] = 0x03;
   471:     } else if (this == FDM_2HQ) {
   472:       dimImage[0x0000] = 0x09;
   473:     } else {
   474:       return -1;  //非対応
   475:     }
   476:     //                                              111 1 11
   477:     //                                    0123456789012 3 45
   478:     ByteArray.byaWstr (dimImage, 0x00ab, "DIFC HEADER  \0\0");  //マジック
   479:     long dttm = DnT.dntDttmNow ();  //現在の日時。ここではRTCの日時ではなくてホストマシンの日時を使う
   480:     dimImage[0x00ba] = (byte) DnT.dntWdayDttm (dttm);  //曜日
   481:     dimImage[0x00bb] = (byte) XEiJ.fmtBcd4 (DnT.dntYearDttm (dttm) - 1980);  //西暦年-1980。DIFC.Xは20xx年を正しく表示できない
   482:     dimImage[0x00bc] = (byte) XEiJ.fmtBcd4 (DnT.dntMontDttm (dttm));  //月
   483:     dimImage[0x00bd] = (byte) XEiJ.fmtBcd4 (DnT.dntMdayDttm (dttm));  //月通日
   484:     dimImage[0x00be] = 0x01;  //$00=12時間計,$01=24時間計
   485:     dimImage[0x00bf] = (byte) XEiJ.fmtBcd4 (DnT.dntHourDttm (dttm));  //時
   486:     dimImage[0x00c0] = (byte) XEiJ.fmtBcd4 (DnT.dntMinuDttm (dttm));  //分
   487:     dimImage[0x00c1] = (byte) XEiJ.fmtBcd4 (DnT.dntSecoDttm (dttm));  //秒
   488:     Arrays.fill (dimImage, 0x00c2, 0x00c2 + 60, (byte) 0x00);  //コメント
   489:     dimImage[0x00fe] = 0x19;  //DIFC.Xのバージョン
   490:     dimImage[0x00ff] = 0x00;  //オーバートラック
   491:     //
   492:     int bytesPerTrack = (128 << fdmSectorScale) * fdmSectorsPerTrack;  //1トラックあたりのバイト数
   493:     int tracksPerDisk = fdmTracksPerCylinder * fdmCylindersPerDisk;  //総トラック数
   494:     Arrays.fill (dimImage, 0x0001, 0x0001 + 170, (byte) 0x00);  //トラックの保存状態
   495:     int diskPointer = 0;  //ディスクイメージの読み出し位置
   496:     int dimPointer = 256;  //*.DIMのイメージの書き込み位置
   497:     for (int trackNumber = 0; trackNumber < tracksPerDisk; trackNumber++) {  //すべてのトラックについて
   498:       for (int offset = 0; offset < bytesPerTrack; offset++) {  //トラックのすべてのデータについて
   499:         if (diskImage[diskPointer + offset] != (byte) 0xe5) {  //0xe5以外のデータがあるとき。符号に注意
   500:           dimImage[0x0001 + trackNumber] = 0x01;  //トラックの保存状態
   501:           System.arraycopy (diskImage, diskPointer, dimImage, dimPointer, bytesPerTrack);  //トラックをコピーする
   502:           dimPointer += bytesPerTrack;
   503:           break;
   504:         }
   505:       }
   506:       diskPointer += bytesPerTrack;
   507:     }
   508:     return dimPointer;
   509:   }  //media.fdmMakeDimImage(byte[],byte[])
   510: 
   511:   //media.fdmReviveFiles (bb)
   512:   //  削除ファイルを復元する
   513:   public void fdmReviveFiles (byte[] bb) {
   514:     //int code = Arrays.hashCode (bb);  //Arrays.hashCode()は1.5から。Arrays.hashCode()は範囲を指定できないので配列の長さとメディアの種類が合っていないと使えない
   515:     CRC32 crc32 = new CRC32 ();
   516:     crc32.reset ();
   517:     crc32.update (bb, 0, (int) humDiskEndByte);
   518:     int code = (int) crc32.getValue ();
   519:     switch (code) {
   520:     case 0x6930fe0f:  //HUMAN302.XDF(crc32=0x6930fe0f,hashCode=0xbcebaa12)
   521:       humUndel (bb, 1024 * 110 + 32 * 20, 'O');  //SYS/OPMDRV3.X
   522:       humUndel (bb, 1024 * 418 + 32 * 11, 'D');  //BIN/DUMP.X
   523:       break;
   524:       //case 0x7b0d5df3:  //SXTOOLS.XDF(crc32=0x7b0d5df3,hashCode=0x70cd3082)
   525:       //break;
   526:     case 0x14c461bf:  //SXWIN311.XDF(crc32=0x14c461bf,hashCode=0xd6d3e7cd)
   527:       humUndel (bb, 1024 *  98 + 32 *  7, 'S');  //SHELL/SXCON.X
   528:       humUndel (bb, 1024 * 556 + 32 *  6, 'O');  //SYS/OPMDRV3.X
   529:       break;
   530:     case 0x08c4fe7c:  //SXWIN312.XDF(crc32=0x08c4fe7c,hashCode=0x7da348d8)
   531:       humUndel (bb, 1024 *   5 + 32 *  4, 0x8373 >> 8);  //ピンボール.X
   532:       break;
   533:     case 0x479edc8e:  //SXWIN313.XDF(crc32=0x479edc8e,hashCode=0x0eb43290)
   534:       humUndel (bb, 1024 *   5 + 32 *  1, 'S');  //SAMPLE
   535:       humUndel (bb, 1024 *  11 + 32 *  2, 'S');  //SAMPLE/Sample.PCM
   536:       humUndel (bb, 1024 *  11 + 32 *  3, 'X');  //SAMPLE/X68K.OPM
   537:       humUndel (bb, 1024 *  11 + 32 *  4, 'A');  //SAMPLE/ANGEL.PIX
   538:       humUndel (bb, 1024 *  11 + 32 *  5, 0xcc);  //SAMPLE/フェニックス.PIC
   539:       humUndel (bb, 1024 *  11 + 32 *  6, 0x90c2 >> 8);  //SAMPLE/青空.PIC
   540:       humUndel (bb, 1024 *  11 + 32 *  7, 0xcf);  //SAMPLE/マグカップ.PIC
   541:       humUndel (bb, 1024 *  11 + 32 *  8, 0x8946 >> 8);  //SAMPLE/宇宙.PIC
   542:       humUndel (bb, 1024 *  11 + 32 *  9, 0x9190 >> 8);  //SAMPLE/草原.JPG
   543:       humUndel (bb, 1024 *  11 + 32 * 10, 0x9356 >> 8);  //SAMPLE/天球儀.CGA
   544:       humUndel (bb, 1024 *  11 + 32 * 11, 0xb6);  //SAMPLE/カタログ.PEN
   545:       break;
   546:       //case 0x9ff5ea29:  //SXWIN315.XDF(crc32=0x9ff5ea29,hashCode=0x56f1f53b)
   547:       //break;
   548:     case 0x1b1ac738:  //SXWIN316.XDF(crc32=0x1b1ac738,hashCode=0x36952122)
   549:       humUndel (bb, 1024 *   5 + 32 *  1, 0xb2);  //インストーラ.X
   550:       humUndel (bb, 1024 *   5 + 32 *  2, 0xb2);  //インストーラ.LB
   551:       humUndel (bb, 1024 *   5 + 32 *  3, 'S');  //SX31_HD.INS
   552:       humUndel (bb, 1024 *   5 + 32 *  4, 'S');  //SX31_FD.INS
   553:       humUndel (bb, 1024 *   5 + 32 *  5, 'S');  //SX31INST.LB
   554:       break;
   555:       //case 0x4b3d5e26:  //SXWORK1.XDF(crc32=0x4b3d5e26,hashCode=0x38c9ee13)
   556:       //break;
   557:       //case 0x4046ff76:  //SXWORK2.XDF(crc32=0x4046ff76,hashCode=0x19fa34e1)
   558:       //break;
   559:       //case 0x80775dd1:  //SXWORK3.XDF(crc32=0x80775dd1,hashCode=0x040501a3)
   560:       //break;
   561:       //case 0x89ff5558:  //XC2101.XDF(crc32=0x89ff5558,hashCode=0x18b24c6d)
   562:       //break;
   563:     case 0xd90f9821:  //XC2102.XDF(crc32=0xd90f9821,hashCode=0x5ce5ffc2)
   564:       humUndel (bb, 1024 *   5 + 32 *  3, 'B');  //BC
   565:       humUndel (bb, 1024 * 438 + 32 * 12, 'G');  //BASIC2/GPIB.FNC
   566:       humUndel (bb, 1024 * 542 + 32 *  2, 'B');  //BC/BC.X
   567:       humUndel (bb, 1024 * 542 + 32 *  3, 'B');  //BC/BASIC.CNF
   568:       humUndel (bb, 1024 * 542 + 32 *  4, 'A');  //BC/AUDIO.DEF
   569:       humUndel (bb, 1024 * 542 + 32 *  5, 'B');  //BC/BASIC.DEF
   570:       humUndel (bb, 1024 * 542 + 32 *  6, 'G');  //BC/GRAPH.DEF
   571:       humUndel (bb, 1024 * 542 + 32 *  7, 'I');  //BC/IMAGE.DEF
   572:       humUndel (bb, 1024 * 542 + 32 *  8, 'M');  //BC/MOUSE.DEF
   573:       humUndel (bb, 1024 * 542 + 32 *  9, 'M');  //BC/MUSIC.DEF
   574:       humUndel (bb, 1024 * 542 + 32 * 10, 'M');  //BC/MUSIC3.DEF
   575:       humUndel (bb, 1024 * 542 + 32 * 11, 'S');  //BC/SPRITE.DEF
   576:       humUndel (bb, 1024 * 542 + 32 * 12, 'S');  //BC/STICK.DEF
   577:       humUndel (bb, 1024 * 542 + 32 * 13, 'G');  //BC/GPIB.DEF
   578:       break;
   579:     case 0x68f09cf0:  //XC2103.XDF(crc32=0x68f09cf0,hashCode=0x809478d0)
   580:       humUndel (bb, 1024 *   5 + 32 *  1, 'S');  //SAMPLE
   581:       humUndel (bb, 1024 *   5 + 32 *  2, 'M');  //MUSIC
   582:       humUndel (bb, 1024 *   5 + 32 *  4, 'S');  //SOURCE
   583:       humUndel (bb, 1024 *  11 + 32 *  2, 'S');  //SAMPLE/SAMPLE.DOC
   584:       humUndel (bb, 1024 *  11 + 32 *  3, 'M');  //SAMPLE/MESH.C
   585:       humUndel (bb, 1024 *  11 + 32 *  4, 'D');  //SAMPLE/DEF.BAS
   586:       humUndel (bb, 1024 *  11 + 32 *  5, 'D');  //SAMPLE/DEF.HLP
   587:       humUndel (bb, 1024 *  11 + 32 *  6, 'S');  //SAMPLE/SCSI1.C
   588:       humUndel (bb, 1024 *  11 + 32 *  7, 'S');  //SAMPLE/SCSI2.C
   589:       humUndel (bb, 1024 *  11 + 32 *  8, 'M');  //SAMPLE/MAKEFILE
   590:       humUndel (bb, 1024 *  69 + 32 *  2, 'O');  //MUSIC/OPMDRV2.X
   591:       humUndel (bb, 1024 *  69 + 32 *  3, 'B');  //MUSIC/BASIC2.CNF
   592:       humUndel (bb, 1024 *  69 + 32 *  4, 'A');  //MUSIC/AUDIO.FNC
   593:       humUndel (bb, 1024 *  69 + 32 *  5, 'M');  //MUSIC/MUSIC2.FNC
   594:       humUndel (bb, 1024 *  69 + 32 *  6, 'B');  //MUSIC/BC.CNF
   595:       humUndel (bb, 1024 *  69 + 32 *  7, 'M');  //MUSIC/MUSIC2.DEF
   596:       humUndel (bb, 1024 *  69 + 32 *  8, 'M');  //MUSIC/MUSIC.H
   597:       humUndel (bb, 1024 *  69 + 32 *  9, 'M');  //MUSIC/MUSIC2.H
   598:       humUndel (bb, 1024 *  69 + 32 * 10, 'B');  //MUSIC/BASLIB.L
   599:       humUndel (bb, 1024 *  69 + 32 * 11, 'B');  //MUSIC/BASLIB.ARC
   600:       humUndel (bb, 1024 * 401 + 32 *  2, 'C');  //SOURCE/CLIB.ARC
   601:       humUndel (bb, 1024 * 401 + 32 *  3, 'B');  //SOURCE/BASLIB.ARC
   602:       humUndel (bb, 1024 * 401 + 32 *  4, 'D');  //SOURCE/DOSLIB.ARC
   603:       humUndel (bb, 1024 * 401 + 32 *  5, 'I');  //SOURCE/IOCSLIB.ARC
   604:       break;
   605:     }  //switch(code)
   606:   }  //fdmReviveFiles(byte[])
   607: 
   608:   //media.fdmPrintInfo ()
   609:   public void fdmPrintInfo () {
   610:     humPrintInfo ();
   611:     System.out.printf ("             fdmNumber=  %12d\n", fdmNumber);
   612:     System.out.printf ("        fdmSectorScale=  %12d\n", fdmSectorScale);
   613:     System.out.printf ("    fdmSectorsPerTrack=  %12d\n", fdmSectorsPerTrack);
   614:     System.out.printf ("  fdmTracksPerCylinder=  %12d\n", fdmTracksPerCylinder);
   615:     System.out.printf ("   fdmCylindersPerDisk=  %12d\n", fdmCylindersPerDisk);
   616:     System.out.printf ("      fdmDoubleDensity=  %12b\n", fdmDoubleDensity);
   617:     System.out.printf ("      fdmTracksPerDisk=  %12d\n", fdmTracksPerDisk);
   618:     System.out.printf ("     fdmSectorsPerDisk=  %12d\n", fdmSectorsPerDisk);
   619:     System.out.printf ("     fdmBytesPerSector=  %12d\n", fdmBytesPerSector);
   620:     System.out.printf ("       fdmBytesPerDisk=  %12d\n", fdmBytesPerDisk);
   621:     System.out.printf ("            fdmTwoSide=  %12d\n", fdmTwoSide);
   622:     System.out.printf ("               fdmName=\"%s\"\n", fdmName);
   623:     System.out.printf ("     fdmExtensionArray=\"%s\"\n", String.join (",", fdmExtensionArray));
   624:     System.out.printf ("    fdmRootStartSector=  %12d\n", fdmRootStartSector);
   625:     System.out.printf ("    fdmDataStartSector=  %12d\n", fdmDataStartSector);
   626:     if (humBytesPerSector != fdmBytesPerSector) {
   627:       System.out.printf ("FDM_ARRAY[%d]: humBytesPerSector(%d) != fdmBytesPerSector(%d)\n",
   628:                          fdmNumber, humBytesPerSector, fdmBytesPerSector);
   629:     }
   630:     if (humPartitionSectors != fdmSectorsPerDisk) {
   631:       System.out.printf ("FDM_ARRAY[%d]: humPartitionSectors(%d) != fdmSectorsPerDisk(%d)\n",
   632:                          fdmNumber, humPartitionSectors, fdmSectorsPerDisk);
   633:     }
   634:     if (humRootStartSector != fdmRootStartSector) {
   635:       System.out.printf ("FDM_ARRAY[%d]: humRootStartSector(%d) != fdmRootStartSector(%d)\n",
   636:                          fdmNumber, humRootStartSector, fdmRootStartSector);
   637:     }
   638:     if (humDataStartSector != fdmDataStartSector) {
   639:       System.out.printf ("FDM_ARRAY[%d]: humDataStartSector(%d) != fdmDataStartSector(%d)\n",
   640:                          fdmNumber, humDataStartSector, fdmDataStartSector);
   641:     }
   642:   }  //media.fdmPrintInfo()
   643: 
   644:   //========================================================================================
   645:   //フロッピーディスクフォーマットデータ
   646:   //  無償公開されたHuman68k version 3.02のシステムディスクに入っているFORMAT.Xから抽出したIPLデータを使う
   647: 
   648:   //----------------------------------------------------------------------------------------
   649:   //フロッピーディスクIPL
   650:   //  フロッピーディスクのセクタ0に書き込まれる
   651:   //  HUMAN.SYSを読み込んで起動する
   652: /*
   653:   public static final int[] FDM_DISK_IPL = {
   654:     //  perl -e "do'sjdump.pl';$p=0;$m=1;$o=0x76e;$l=512;open IN,'HUMAN302.XDF'or die;binmode IN;seek IN,1024*592,0;read IN,$b,64;seek IN,1024*592+vec($b,15,32)+32*$m,0;read IN,$b,32;seek IN,1024*592+vec($b,7,32)+64+$o,0;read IN,$b,$l;close IN;sjdumpcode($b,0,$l,$p)"
   655:     0x60,0x3c,0x90,0x58,0x36,0x38,0x49,0x50,0x4c,0x33,0x30,0x00,0x04,0x01,0x01,0x00,  //00000000  `<森68IPL30.....
   656:     0x02,0xc0,0x00,0xd0,0x04,0xfe,0x02,0x00,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,  //00000010  .タ.ミ............
   657:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,  //00000020  ...........     
   658:     0x20,0x20,0x20,0x20,0x20,0x20,0x46,0x41,0x54,0x31,0x32,0x20,0x20,0x20,0x4f,0xfa,  //00000030        FAT12   O.
   659:     0xff,0xc0,0x4d,0xfa,0x01,0xb8,0x4b,0xfa,0x00,0xe0,0x49,0xfa,0x00,0xea,0x43,0xfa,  //00000040  .タM..クK..潛..鵑.
   660:     0x01,0x20,0x4e,0x94,0x70,0x8e,0x4e,0x4f,0x7e,0x70,0xe1,0x48,0x8e,0x40,0x26,0x3a,  //00000050  . N廃晒O~p瓸察&:
   661:     0x01,0x02,0x22,0x4e,0x24,0x3a,0x01,0x00,0x32,0x07,0x4e,0x95,0x66,0x28,0x22,0x4e,  //00000060  .."N$:..2.N蒜("N
   662:     0x32,0x3a,0x00,0xfa,0x20,0x49,0x45,0xfa,0x01,0x78,0x70,0x0a,0x00,0x10,0x00,0x20,  //00000070  2:.. IE..xp.... 
   663:     0xb1,0x0a,0x56,0xc8,0xff,0xf8,0x67,0x38,0xd2,0xfc,0x00,0x20,0x51,0xc9,0xff,0xe6,  //00000080  ア.Vネ..g8メ.. Qノ.襴
   664:     0x45,0xfa,0x00,0xe0,0x60,0x10,0x45,0xfa,0x00,0xfa,0x60,0x0a,0x45,0xfa,0x01,0x10,  //00000090   ..濮.E...`.E...
   665:     0x60,0x04,0x45,0xfa,0x01,0x28,0x61,0x00,0x00,0x94,0x22,0x4a,0x4c,0x99,0x00,0x06,  //000000a0  `.E..(a..."JL...
   666:     0x70,0x23,0x4e,0x4f,0x4e,0x94,0x32,0x07,0x70,0x4f,0x4e,0x4f,0x70,0xfe,0x4e,0x4f,  //000000b0  p#NON.2.pONOp.NO
   667:     0x74,0x00,0x34,0x29,0x00,0x1a,0xe1,0x5a,0xd4,0x7a,0x00,0xa4,0x84,0xfa,0x00,0x9c,  //000000c0  t.4)..畛ヤz.、...怱
   668:     0x84,0x7a,0x00,0x94,0xe2,0x0a,0x64,0x04,0x08,0xc2,0x00,0x18,0x48,0x42,0x52,0x02,  //000000d0   z.披.d..ツ..HBR.
   669:     0x22,0x4e,0x26,0x3a,0x00,0x7e,0x32,0x07,0x4e,0x95,0x34,0x7c,0x68,0x00,0x22,0x4e,  //000000e0  "N&:.~2.N.4|h."N
   670:     0x0c,0x59,0x48,0x55,0x66,0xa6,0x54,0x89,0xb5,0xd9,0x66,0xa6,0x2f,0x19,0x20,0x59,  //000000f0  .YHUfヲT卸ルfヲ/. Y
   671:     0xd1,0xd9,0x2f,0x08,0x2f,0x11,0x32,0x7c,0x67,0xc0,0x76,0x40,0xd6,0x88,0x4e,0x95,  //00000100  ムル/./.2|gタv@ヨ.N.
   672:     0x22,0x1f,0x24,0x1f,0x22,0x5f,0x4a,0x80,0x66,0x00,0xff,0x7c,0xd5,0xc2,0x53,0x81,  //00000110  ".$."_J.f..|ユツS‘
   673:     0x65,0x04,0x42,0x1a,0x60,0xf8,0x4e,0xd1,0x70,0x46,0x4e,0x4f,0x08,0x00,0x00,0x1e,  //00000120   .B.`.NムpFNO....
   674:     0x66,0x02,0x70,0x00,0x4e,0x75,0x70,0x21,0x4e,0x4f,0x4e,0x75,0x72,0x0f,0x70,0x22,  //00000130  f.p.Nup!NONur.p"
   675:     0x4e,0x4f,0x72,0x19,0x74,0x0c,0x70,0x23,0x4e,0x4f,0x61,0x08,0x72,0x19,0x74,0x0d,  //00000140  NOr.t.p#NOa.r.t.
   676:     0x70,0x23,0x4e,0x4f,0x76,0x2c,0x72,0x20,0x70,0x20,0x4e,0x4f,0x51,0xcb,0xff,0xf8,  //00000150  p#NOv,r p NOQヒ..
   677:     0x4e,0x75,0x00,0x00,0x04,0x00,0x03,0x00,0x00,0x06,0x00,0x08,0x00,0x1f,0x00,0x09,  //00000160  Nu..............
   678:     0x1a,0x00,0x00,0x22,0x00,0x0d,0x48,0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,0x73,0x20,  //00000170  ..."..Human.sys 
   679:     0x82,0xaa,0x20,0x8c,0xa9,0x82,0xc2,0x82,0xa9,0x82,0xe8,0x82,0xdc,0x82,0xb9,0x82,  //00000180  が 見つかりません
   680:     0xf1,0x00,0x00,0x25,0x00,0x0d,0x83,0x66,0x83,0x42,0x83,0x58,0x83,0x4e,0x82,0xaa,  //00000190   ..%..ディスクが
   681:     0x81,0x40,0x93,0xc7,0x82,0xdf,0x82,0xdc,0x82,0xb9,0x82,0xf1,0x00,0x00,0x00,0x23,  //000001a0   読めません...#
   682:     0x00,0x0d,0x48,0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,0x73,0x20,0x82,0xaa,0x20,0x89,  //000001b0  ..Human.sys が 壊
   683:     0xf3,0x82,0xea,0x82,0xc4,0x82,0xa2,0x82,0xdc,0x82,0xb7,0x00,0x00,0x20,0x00,0x0d,  //000001c0   れています.. ..
   684:     0x48,0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,0x73,0x20,0x82,0xcc,0x20,0x83,0x41,0x83,  //000001d0  Human.sys の アド
   685:     0x68,0x83,0x8c,0x83,0x58,0x82,0xaa,0x88,0xd9,0x8f,0xed,0x82,0xc5,0x82,0xb7,0x00,  //000001e0   レスが異常です.
   686:     0x68,0x75,0x6d,0x61,0x6e,0x20,0x20,0x20,0x73,0x79,0x73,0x00,0x00,0x00,0x00,0x00,  //000001f0  human   sys.....
   687:   };
   688: */
   689:   //  perl misc/itob.pl xeij/FDMedia.java FDM_DISK_IPL
   690:   public static final byte[] FDM_DISK_IPL = "`<\220X68IPL30\0\4\1\1\0\2\300\0\320\4\376\2\0\b\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0           FAT12   O\372\377\300M\372\1\270K\372\0\340I\372\0\352C\372\1 N\224p\216NO~p\341H\216@&:\1\2\"N$:\1\0002\7N\225f(\"N2:\0\372 IE\372\1xp\n\0\20\0 \261\nV\310\377\370g8\322\374\0 Q\311\377\346E\372\0\340`\20E\372\0\372`\nE\372\1\20`\4E\372\1(a\0\0\224\"JL\231\0\6p#NON\2242\7pONOp\376NOt\0004)\0\32\341Z\324z\0\244\204\372\0\234\204z\0\224\342\nd\4\b\302\0\30HBR\2\"N&:\0~2\7N\2254|h\0\"N\fYHUf\246T\211\265\331f\246/\31 Y\321\331/\b/\0212|g\300v@\326\210N\225\"\37$\37\"_J\200f\0\377|\325\302S\201e\4B\32`\370N\321pFNO\b\0\0\36f\2p\0Nup!NONur\17p\"NOr\31t\fp#NOa\br\31t\rp#NOv,r p NOQ\313\377\370Nu\0\0\4\0\3\0\0\6\0\b\0\37\0\t\32\0\0\"\0\rHuman.sys \202\252 \214\251\202\302\202\251\202\350\202\334\202\271\202\361\0\0%\0\r\203f\203B\203X\203N\202\252\201@\223\307\202\337\202\334\202\271\202\361\0\0\0#\0\rHuman.sys \202\252 \211\363\202\352\202\304\202\242\202\334\202\267\0\0 \0\rHuman.sys \202\314 \203A\203h\203\214\203X\202\252\210\331\217\355\202\305\202\267\0human   sys\0\0\0\0\0".getBytes (XEiJ.ISO_8859_1);
   691: 
   692: /*
   693:   public static final int[] FDM_2HDE_IPL = {
   694:     //  perl sjdump.pl 2hde.2hde 0 0x1000 2
   695:     0x60,0x20,0x32,0x48,0x44,0x45,0x20,0x76,0x31,0x2e,0x31,0x00,0x00,0x04,0x01,0x01,  //00000000  ` 2HDE v1.1.....
   696:     0x00,0x02,0xc0,0x00,0xa0,0x05,0x03,0x03,0x00,0x09,0x00,0x02,0x00,0x00,0x00,0x00,  //00000010  ..タ.............
   697:     0x90,0x70,0x60,0x00,0x03,0x5a,0x08,0x01,0x00,0x0c,0x66,0x08,0x4d,0xfa,0xff,0xd2,  //00000020  壬`..Z....f.M..メ
   698:     0x2c,0x56,0x4e,0xd6,0x61,0x00,0x00,0xba,0x48,0xe7,0x4f,0x00,0x61,0x00,0x02,0xf0,  //00000030  ,VNヨa..コH躇.a...
   699:     0x61,0x00,0x00,0xc4,0x08,0x00,0x00,0x1b,0x66,0x4e,0xc2,0x3c,0x00,0xc0,0x82,0x3c,  //00000040  a..ト....fNツ<.タ.<
   700:     0x00,0x06,0x61,0x00,0x00,0xd0,0xe1,0x9a,0x54,0x88,0x20,0xc2,0xe0,0x9a,0x10,0xc2,  //00000050  ..a..ミ癩T. ツ燠.ツ
   701:     0x10,0xc7,0x10,0x86,0x61,0x00,0x00,0xf0,0x41,0xf8,0x09,0xee,0x70,0x08,0x61,0x00,  //00000060  .ヌ..a...A..綠.a.
   702:     0x01,0x0c,0x61,0x00,0x01,0x42,0x61,0x00,0x01,0x60,0x61,0x00,0x01,0x7a,0x08,0x00,  //00000070  ..a..Ba..`a..z..
   703:     0x00,0x0e,0x66,0x0c,0x08,0x00,0x00,0x1e,0x67,0x26,0x08,0x00,0x00,0x1b,0x66,0x08,  //00000080  ..f.....g&....f.
   704:     0x61,0x00,0x01,0x7a,0x51,0xcc,0xff,0xbc,0x4c,0xdf,0x00,0xf2,0x4a,0x38,0x09,0xe1,  //00000090  a..zQフ.シL゚..J8.疊
   705:     0x67,0x0c,0x31,0xf8,0x09,0xc2,0x09,0xc4,0x11,0xfc,0x00,0x40,0x09,0xe1,0x4e,0x75,  //000000a0   .1..ツ.ト...@.甎u
   706:     0x08,0x00,0x00,0x1f,0x66,0xe2,0xd3,0xc5,0x96,0x85,0x63,0xdc,0x20,0x04,0x48,0x40,  //000000b0  ....f簽ナ妹cワ .H@
   707:     0x38,0x00,0x30,0x3c,0x00,0x09,0x52,0x02,0xb0,0x02,0x64,0x86,0x14,0x3c,0x00,0x01,  //000000c0  8.0<..R.ー.d..<..
   708:     0x0a,0x42,0x01,0x00,0x08,0x02,0x00,0x08,0x66,0x00,0xff,0x78,0xd4,0xbc,0x00,0x01,  //000000d0  .B......f..xヤシ..
   709:     0x00,0x00,0x61,0x00,0x01,0xb8,0x08,0x00,0x00,0x1b,0x66,0xac,0x60,0x00,0xff,0x64,  //000000e0  ..a..ク....fャ`..d
   710:     0x08,0x38,0x00,0x07,0x09,0xe1,0x66,0x0c,0x48,0xe7,0xc0,0x00,0x61,0x00,0x01,0x46,  //000000f0  .8...畴.H鄲.a..F
   711:     0x4c,0xdf,0x00,0x03,0x4e,0x75,0x70,0x00,0x78,0x00,0x08,0x01,0x00,0x05,0x67,0x08,  //00000100  L゚..Nup.x.....g.
   712:     0x78,0x09,0x48,0x44,0x38,0x3c,0x00,0x09,0x08,0x01,0x00,0x04,0x67,0x04,0x61,0x00,  //00000110  x.HD8<......g.a.
   713:     0x01,0x7c,0x4e,0x75,0x2f,0x01,0x41,0xf8,0x09,0xee,0x10,0x81,0xe0,0x99,0xc2,0x3c,  //00000120  .|Nu/.A....≒卍<
   714:     0x00,0x03,0x08,0x02,0x00,0x08,0x67,0x04,0x08,0xc1,0x00,0x02,0x11,0x41,0x00,0x01,  //00000130  ......g..チ...A..
   715:     0x22,0x1f,0x4e,0x75,0x13,0xfc,0x00,0xff,0x00,0xe8,0x40,0x00,0x13,0xfc,0x00,0x32,  //00000140  ".Nu.....錙....2
   716:     0x00,0xe8,0x40,0x05,0x60,0x10,0x13,0xfc,0x00,0xff,0x00,0xe8,0x40,0x00,0x13,0xfc,  //00000150  .錙.`......錙...
   717:     0x00,0xb2,0x00,0xe8,0x40,0x05,0x23,0xc9,0x00,0xe8,0x40,0x0c,0x33,0xc5,0x00,0xe8,  //00000160  .イ.錙.#ノ.錙.3ナ.錙
   718:     0x40,0x0a,0x13,0xfc,0x00,0x80,0x00,0xe8,0x40,0x07,0x4e,0x75,0x48,0xe7,0x40,0x60,  //00000170   ......錙.NuH蹇`
   719:     0x43,0xf9,0x00,0xe9,0x40,0x01,0x45,0xf9,0x00,0xe9,0x40,0x03,0x40,0xe7,0x00,0x7c,  //00000180  C..顱.E..顱.@..|
   720:     0x07,0x00,0x12,0x11,0x08,0x01,0x00,0x04,0x66,0xf8,0x12,0x11,0x08,0x01,0x00,0x07,  //00000190  ........f.......
   721:     0x67,0xf8,0x08,0x01,0x00,0x06,0x66,0xf2,0x14,0x98,0x51,0xc8,0xff,0xee,0x46,0xdf,  //000001a0  g.....f..浪ネ.珖゚
   722:     0x4c,0xdf,0x06,0x02,0x4e,0x75,0x10,0x39,0x00,0xe8,0x40,0x00,0x08,0x00,0x00,0x04,  //000001b0  L゚..Nu.9.錙.....
   723:     0x66,0x0e,0x10,0x39,0x00,0xe9,0x40,0x01,0xc0,0x3c,0x00,0x1f,0x66,0xf4,0x4e,0x75,  //000001c0  f..9.顱.タ<..f.Nu
   724:     0x10,0x39,0x00,0xe8,0x40,0x01,0x4e,0x75,0x10,0x39,0x00,0xe8,0x40,0x00,0x08,0x00,  //000001d0  .9.錙.Nu.9.錙...
   725:     0x00,0x07,0x66,0x08,0x13,0xfc,0x00,0x10,0x00,0xe8,0x40,0x07,0x13,0xfc,0x00,0xff,  //000001e0  ..f......錙.....
   726:     0x00,0xe8,0x40,0x00,0x4e,0x75,0x30,0x01,0xe0,0x48,0xc0,0xbc,0x00,0x00,0x00,0x03,  //000001f0  .錙.Nu0.潯タシ....
   727:     0xe7,0x40,0x41,0xf8,0x0c,0x90,0xd1,0xc0,0x20,0x10,0x4e,0x75,0x2f,0x00,0xc0,0xbc,  //00000200  蹇A..績タ .Nu/.タシ
   728:     0x00,0x35,0xff,0x00,0x67,0x2a,0xb8,0x3c,0x00,0x05,0x64,0x24,0x2f,0x38,0x09,0xee,  //00000210  .5..g*ク<..d$/8..
   729:     0x2f,0x38,0x09,0xf2,0x3f,0x38,0x09,0xf6,0x61,0x00,0x00,0xc4,0x70,0x64,0x51,0xc8,  //00000220  /8..?8..a..トpdQネ
   730:     0xff,0xfe,0x61,0x68,0x31,0xdf,0x09,0xf6,0x21,0xdf,0x09,0xf2,0x21,0xdf,0x09,0xee,  //00000230  ..ah1゚..!゚..!゚..
   731:     0x20,0x1f,0x4e,0x75,0x30,0x01,0xe0,0x48,0x4a,0x00,0x67,0x3c,0xc0,0x3c,0x00,0x03,  //00000240   .Nu0.潯J.g<タ<..
   732:     0x80,0x3c,0x00,0x80,0x08,0xf8,0x00,0x07,0x09,0xe1,0x13,0xc0,0x00,0xe9,0x40,0x07,  //00000250  .<.........タ.顱.
   733:     0x08,0xf8,0x00,0x06,0x09,0xe1,0x66,0x18,0x31,0xf8,0x09,0xc2,0x09,0xc4,0x61,0x00,  //00000260  .....畴.1..ツ.トa.
   734:     0x00,0x90,0x08,0x00,0x00,0x1d,0x66,0x08,0x0c,0x78,0x00,0x64,0x09,0xc4,0x64,0xee,  //00000270  ......f..x.d.トd.
   735:     0x08,0xb8,0x00,0x06,0x09,0xe1,0x4e,0x75,0x4a,0x38,0x09,0xe1,0x67,0x0c,0x31,0xf8,  //00000280  .ク...甎uJ8.疊.1.
   736:     0x09,0xc2,0x09,0xc4,0x11,0xfc,0x00,0x40,0x09,0xe1,0x4e,0x75,0x61,0x12,0x08,0x00,  //00000290  .ツ.ト...@.甎ua...
   737:     0x00,0x1b,0x66,0x26,0x48,0x40,0x48,0x42,0xb4,0x00,0x67,0x1a,0x48,0x42,0x61,0x3e,  //000002a0  ..f&H@HBエ.g.HBa>
   738:     0x2f,0x01,0x12,0x3c,0x00,0x0f,0x61,0x00,0xfe,0x6c,0x48,0x42,0x11,0x42,0x00,0x02,  //000002b0  /..<..a..lHB.B..
   739:     0x48,0x42,0x70,0x02,0x60,0x08,0x48,0x42,0x48,0x40,0x4e,0x75,0x2f,0x01,0x61,0x00,  //000002c0  HBp.`.HBH@Nu/.a.
   740:     0xfe,0xac,0x61,0x00,0xfe,0xee,0x22,0x1f,0x30,0x01,0xe0,0x48,0xc0,0xbc,0x00,0x00,  //000002d0  .ャa...".0.潯タシ..
   741:     0x00,0x03,0xe7,0x40,0x41,0xf8,0x0c,0x90,0xd1,0xc0,0x20,0x10,0x4e,0x75,0x2f,0x01,  //000002e0  ..蹇A..績タ .Nu/.
   742:     0x12,0x3c,0x00,0x07,0x61,0x00,0xfe,0x2e,0x70,0x01,0x61,0xd0,0x22,0x1f,0x4e,0x75,  //000002f0  .<..a...p.aミ".Nu
   743:     0x2f,0x01,0x12,0x3c,0x00,0x04,0x61,0x00,0xfe,0x1c,0x22,0x1f,0x70,0x01,0x61,0x00,  //00000300  /..<..a...".p.a.
   744:     0xfe,0x6c,0x10,0x39,0x00,0xe9,0x40,0x01,0xc0,0x3c,0x00,0xd0,0xb0,0x3c,0x00,0xd0,  //00000310  .l.9.顱.タ<.ミー<.ミ
   745:     0x66,0xf0,0x70,0x00,0x10,0x39,0x00,0xe9,0x40,0x03,0xe0,0x98,0x4e,0x75,0x53,0x02,  //00000320  f.p..9.顱.燔NuS.
   746:     0x7e,0x00,0x3a,0x02,0xe0,0x5d,0x4a,0x05,0x67,0x04,0x06,0x45,0x08,0x00,0xe0,0x4d,  //00000330  ~.:.濔J.g..E..潼
   747:     0x48,0x42,0x02,0x82,0x00,0x00,0x00,0xff,0xe9,0x8a,0xd4,0x45,0x0c,0x42,0x00,0x04,  //00000340  HB......驫ヤE.B..
   748:     0x65,0x02,0x54,0x42,0x84,0xfc,0x00,0x12,0x48,0x42,0x3e,0x02,0x8e,0xfc,0x00,0x09,  //00000350  e.TB....HB>.周..
   749:     0x48,0x47,0xe1,0x4f,0xe0,0x8f,0x34,0x07,0x06,0x82,0x03,0x00,0x80,0x01,0x2a,0x3c,  //00000360  HG甍熄4.......*<
   750:     0x00,0x00,0x04,0x00,0x3c,0x3c,0x00,0xff,0x3e,0x3c,0x09,0x28,0x4e,0x75,0x4f,0xfa,  //00000370  ....<<..><.(NuO.
   751:     0xfc,0x80,0x43,0xfa,0xfc,0xa2,0x4d,0xfa,0xfc,0x78,0x2c,0xb9,0x00,0x00,0x05,0x18,  //00000380  ..C..「M..x,ケ....
   752:     0x23,0xc9,0x00,0x00,0x05,0x18,0x43,0xfa,0x00,0xda,0x4d,0xfa,0xfc,0x68,0x2c,0xb9,  //00000390  #ノ....C..レM..h,ケ
   753:     0x00,0x00,0x05,0x14,0x23,0xc9,0x00,0x00,0x05,0x14,0x43,0xfa,0x01,0x6e,0x4d,0xfa,  //000003a0  ....#ノ....C..nM.
   754:     0xfc,0x58,0x2c,0xb9,0x00,0x00,0x05,0x04,0x23,0xc9,0x00,0x00,0x05,0x04,0x24,0x3c,  //000003b0  .X,ケ....#ノ....$<
   755:     0x03,0x00,0x00,0x04,0x20,0x3c,0x00,0x00,0x00,0x8e,0x4e,0x4f,0x12,0x00,0xe1,0x41,  //000003c0  .... <...晒O..瓣
   756:     0x12,0x3c,0x00,0x70,0x33,0xc1,0x00,0x00,0x00,0x66,0x26,0x3c,0x00,0x00,0x04,0x00,  //000003d0  .<.p3チ...f&<....
   757:     0x43,0xfa,0x00,0x20,0x61,0x04,0x60,0x00,0x01,0xec,0x48,0xe7,0x78,0x40,0x70,0x46,  //000003e0  C.. a.`...H輾@pF
   758:     0x4e,0x4f,0x08,0x00,0x00,0x1e,0x66,0x02,0x70,0x00,0x4c,0xdf,0x02,0x1e,0x4e,0x75,  //000003f0  NO....f.p.L゚..Nu
   759:     0xf8,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000400  ................
   760:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000410  ................
   761:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000420  ................
   762:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000430  ................
   763:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000440  ................
   764:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000450  ................
   765:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000460  ................
   766:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000470  ................
   767:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000480  ................
   768:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000490  ................
   769:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004a0  ................
   770:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004b0  ................
   771:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004c0  ................
   772:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004d0  ................
   773:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004e0  ................
   774:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004f0  ................
   775:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000500  ................
   776:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000510  ................
   777:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000520  ................
   778:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000530  ................
   779:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000540  ................
   780:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000550  ................
   781:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000560  ................
   782:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000570  ................
   783:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000580  ................
   784:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000590  ................
   785:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005a0  ................
   786:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005b0  ................
   787:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005c0  ................
   788:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005d0  ................
   789:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005e0  ................
   790:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005f0  ................
   791:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000600  ................
   792:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000610  ................
   793:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000620  ................
   794:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000630  ................
   795:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000640  ................
   796:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000650  ................
   797:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000660  ................
   798:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000670  ................
   799:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000680  ................
   800:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000690  ................
   801:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006a0  ................
   802:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006b0  ................
   803:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006c0  ................
   804:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006d0  ................
   805:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006e0  ................
   806:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006f0  ................
   807:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000700  ................
   808:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000710  ................
   809:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000720  ................
   810:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000730  ................
   811:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000740  ................
   812:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000750  ................
   813:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000760  ................
   814:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000770  ................
   815:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000780  ................
   816:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000790  ................
   817:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007a0  ................
   818:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007b0  ................
   819:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007c0  ................
   820:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007d0  ................
   821:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007e0  ................
   822:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007f0  ................
   823:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000800  ................
   824:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000810  ................
   825:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000820  ................
   826:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000830  ................
   827:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000840  ................
   828:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000850  ................
   829:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000860  ................
   830:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000870  ................
   831:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000880  ................
   832:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000890  ................
   833:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008a0  ................
   834:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008b0  ................
   835:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008c0  ................
   836:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008d0  ................
   837:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008e0  ................
   838:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008f0  ................
   839:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000900  ................
   840:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000910  ................
   841:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000920  ................
   842:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000930  ................
   843:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000940  ................
   844:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000950  ................
   845:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000960  ................
   846:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000970  ................
   847:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000980  ................
   848:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000990  ................
   849:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009a0  ................
   850:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009b0  ................
   851:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009c0  ................
   852:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009d0  ................
   853:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009e0  ................
   854:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009f0  ................
   855:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a00  ................
   856:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a10  ................
   857:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a20  ................
   858:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a30  ................
   859:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a40  ................
   860:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a50  ................
   861:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a60  ................
   862:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a70  ................
   863:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a80  ................
   864:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a90  ................
   865:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000aa0  ................
   866:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ab0  ................
   867:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ac0  ................
   868:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ad0  ................
   869:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ae0  ................
   870:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000af0  ................
   871:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b00  ................
   872:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b10  ................
   873:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b20  ................
   874:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b30  ................
   875:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b40  ................
   876:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b50  ................
   877:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b60  ................
   878:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b70  ................
   879:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b80  ................
   880:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b90  ................
   881:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ba0  ................
   882:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bb0  ................
   883:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bc0  ................
   884:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bd0  ................
   885:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000be0  ................
   886:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bf0  ................
   887:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c00  ................
   888:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c10  ................
   889:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c20  ................
   890:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c30  ................
   891:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c40  ................
   892:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c50  ................
   893:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c60  ................
   894:     0x08,0x01,0x00,0x0c,0x66,0x08,0x4d,0xfa,0xfb,0x8a,0x2c,0x56,0x4e,0xd6,0x61,0x00,  //00000c70  ....f.M...,VNヨa.
   895:     0xfc,0x6e,0x48,0xe7,0x4f,0x00,0x61,0x00,0xfe,0xa4,0x61,0x00,0xfc,0x78,0x08,0x00,  //00000c80  .nH躇.a..、a..x..
   896:     0x00,0x1b,0x66,0x30,0xc2,0x3c,0x00,0xc0,0x82,0x3c,0x00,0x05,0x60,0x08,0x30,0x3c,  //00000c90  ..f0ツ<.タ.<..`.0<
   897:     0x01,0xac,0x51,0xc8,0xff,0xfe,0x61,0x00,0x00,0xfc,0x08,0x00,0x00,0x1e,0x67,0x2c,  //00000ca0  .ャQネ..a.......g,
   898:     0x08,0x00,0x00,0x1b,0x66,0x0e,0x08,0x00,0x00,0x11,0x66,0x08,0x61,0x00,0xfd,0x4c,  //00000cb0  ....f.....f.a..L
   899:     0x51,0xcc,0xff,0xe4,0x4c,0xdf,0x00,0xf2,0x4a,0x38,0x09,0xe1,0x67,0x0c,0x31,0xf8,  //00000cc0  Qフ.膈゚..J8.疊.1.
   900:     0x09,0xc2,0x09,0xc4,0x11,0xfc,0x00,0x40,0x09,0xe1,0x4e,0x75,0x08,0x00,0x00,0x1f,  //00000cd0  .ツ.ト...@.甎u....
   901:     0x66,0xe2,0xd3,0xc5,0x96,0x85,0x63,0xdc,0x20,0x04,0x48,0x40,0x38,0x00,0x30,0x3c,  //00000ce0  f簽ナ妹cワ .H@8.0<
   902:     0x00,0x09,0x52,0x02,0xb0,0x02,0x64,0xae,0x14,0x3c,0x00,0x01,0x0a,0x42,0x01,0x00,  //00000cf0  ..R.ー.dョ.<...B..
   903:     0x08,0x02,0x00,0x08,0x66,0x98,0xd4,0xbc,0x00,0x01,0x00,0x00,0x61,0x00,0xfd,0x8c,  //00000d00  ....f儘シ....a...
   904:     0x08,0x00,0x00,0x1b,0x66,0xae,0x60,0x8e,0x08,0x01,0x00,0x0c,0x66,0x08,0x4d,0xfa,  //00000d10  ....fョ`.....f.M.
   905:     0xfa,0xde,0x2c,0x56,0x4e,0xd6,0x61,0x00,0xfb,0xc6,0x48,0xe7,0x4f,0x00,0x61,0x00,  //00000d20  .゙,VNヨa..ニH躇.a.
   906:     0xfd,0xfc,0x61,0x00,0xfb,0xd0,0x08,0x00,0x00,0x1b,0x66,0x24,0xc2,0x3c,0x00,0xc0,  //00000d30  ..a..ミ....f$ツ<.タ
   907:     0x82,0x3c,0x00,0x11,0x61,0x5e,0x08,0x00,0x00,0x0a,0x66,0x14,0x08,0x00,0x00,0x1e,  //00000d40  .<..a^....f.....
   908:     0x67,0x16,0x08,0x00,0x00,0x1b,0x66,0x08,0x61,0x00,0xfc,0xb0,0x51,0xcc,0xff,0xe6,  //00000d50  g.....f.a..ーQフ.覘
   909:     0x4c,0xdf,0x00,0xf2,0x60,0x00,0xfb,0x34,0x08,0x00,0x00,0x1f,0x66,0xf2,0xd3,0xc5,  //00000d60   ゚..`..4....f.モナ
   910:     0x96,0x85,0x63,0xec,0x20,0x04,0x48,0x40,0x38,0x00,0x30,0x3c,0x00,0x09,0x52,0x02,  //00000d70  妹c. .H@8.0<..R.
   911:     0xb0,0x02,0x64,0xc0,0x14,0x3c,0x00,0x01,0x0a,0x42,0x01,0x00,0x08,0x02,0x00,0x08,  //00000d80  ー.dタ.<...B......
   912:     0x66,0xb2,0xd4,0xbc,0x00,0x01,0x00,0x00,0x61,0x00,0xfd,0x00,0x08,0x00,0x00,0x1b,  //00000d90  fイヤシ....a.......
   913:     0x66,0xbe,0x60,0xa0,0x61,0x00,0xfb,0x7c,0xe1,0x9a,0x54,0x88,0x20,0xc2,0xe0,0x9a,  //00000da0  fセ`.a..|癩T. ツ燠
   914:     0x10,0xc2,0x10,0xc7,0x10,0x86,0x61,0x00,0xfb,0x8a,0x41,0xf8,0x09,0xee,0x70,0x08,  //00000db0  .ツ.ヌ..a..晦..綠.
   915:     0x61,0x00,0xfb,0xb8,0x61,0x00,0xfb,0xee,0x61,0x00,0xfc,0x0c,0x61,0x00,0xfc,0x26,  //00000dc0  a..クa..礼...a..&
   916:     0x4e,0x75,0x43,0xfa,0x01,0x8c,0x61,0x00,0x01,0x76,0x24,0x3c,0x03,0x00,0x00,0x06,  //00000dd0  NuC..径..v$<....
   917:     0x32,0x39,0x00,0x00,0x00,0x66,0x26,0x3c,0x00,0x00,0x04,0x00,0x43,0xf8,0x28,0x00,  //00000de0  29...f&<....C.(.
   918:     0x61,0x00,0xfd,0xf6,0x4a,0x80,0x66,0x00,0x01,0x20,0x43,0xf8,0x28,0x00,0x49,0xfa,  //00000df0  a...J.f.. C.(.I.
   919:     0x01,0x54,0x78,0x1f,0x24,0x49,0x26,0x4c,0x7a,0x0a,0x10,0x1a,0x80,0x3c,0x00,0x20,  //00000e00  .Tx.$I&Lz....<. 
   920:     0xb0,0x1b,0x66,0x06,0x51,0xcd,0xff,0xf4,0x60,0x0c,0x43,0xe9,0x00,0x20,0x51,0xcc,  //00000e10  ー.f.Qヘ..`.C.. Qフ
   921:     0xff,0xe4,0x66,0x00,0x00,0xf4,0x30,0x29,0x00,0x1a,0xe1,0x58,0x55,0x40,0xd0,0x7c,  //00000e20  .臟...0)..畊U@ミ|
   922:     0x00,0x0b,0x34,0x00,0xc4,0x7c,0x00,0x07,0x52,0x02,0xe8,0x48,0x64,0x04,0x84,0x7c,  //00000e30  ..4.ト|..R.鍠d.л
   923:     0x01,0x00,0x48,0x42,0x34,0x3c,0x03,0x00,0x14,0x00,0x48,0x42,0x26,0x29,0x00,0x1c,  //00000e40  ..HB4<....HB&)..
   924:     0xe1,0x5b,0x48,0x43,0xe1,0x5b,0x43,0xf8,0x67,0xc0,0x61,0x00,0xfd,0x8c,0x0c,0x51,  //00000e50  畆HC畆C.gタa....Q
   925:     0x48,0x55,0x66,0x00,0x00,0xb4,0x4b,0xf8,0x68,0x00,0x49,0xfa,0x00,0x4c,0x22,0x4d,  //00000e60  HUf..エK.h.I..L"M
   926:     0x43,0xf1,0x38,0xc0,0x2c,0x3c,0x00,0x04,0x00,0x00,0x0c,0x69,0x4e,0xd4,0xff,0xd2,  //00000e70  C.8タ,<.....iNヤ.メ
   927:     0x66,0x36,0x0c,0xad,0x4c,0x5a,0x58,0x20,0x00,0x04,0x66,0x16,0x2b,0x46,0x00,0x04,  //00000e80  f6.ュLZX ..f.+F..
   928:     0x2b,0x4d,0x00,0x08,0x42,0xad,0x00,0x20,0x51,0xf9,0x00,0x00,0x07,0x9c,0x4e,0xed,  //00000e90  +M..Bュ. Q....廸.
   929:     0x00,0x02,0x0c,0x6d,0x4e,0xec,0x00,0x1a,0x66,0x0e,0x0c,0x6d,0x4e,0xea,0x00,0x2a,  //00000ea0  ...mN...f..mN..*
   930:     0x66,0x06,0x43,0xfa,0x01,0x20,0x60,0x64,0x10,0x3c,0x00,0xc0,0x41,0xf8,0x68,0x00,  //00000eb0  f.C.. `d.<.タA.h.
   931:     0x36,0x3c,0xff,0xff,0xb0,0x18,0x67,0x26,0x51,0xcb,0xff,0xfa,0x43,0xf8,0x68,0x00,  //00000ec0  6<..ー.g&Qヒ..C.h.
   932:     0x4a,0x39,0x00,0x00,0x07,0x9c,0x67,0x14,0x41,0xf8,0x67,0xcc,0x24,0x18,0xd4,0x98,  //00000ed0  J9...徃.A.gフ$.ヤ.
   933:     0x22,0x10,0xd1,0xc2,0x53,0x81,0x65,0x04,0x42,0x18,0x60,0xf8,0x4e,0xd1,0x0c,0x10,  //00000ee0  ".ムツS‘.B.`.Nム..
   934:     0x00,0x04,0x66,0xd0,0x52,0x88,0x0c,0x10,0x00,0xd0,0x66,0xc8,0x52,0x88,0x0c,0x10,  //00000ef0  ..fミR....ミfネR...
   935:     0x00,0xfe,0x66,0xc0,0x52,0x88,0x0c,0x10,0x00,0x02,0x66,0xb8,0x57,0x88,0x30,0xfc,  //00000f00  ..fタR.....fクW.0.
   936:     0x05,0x9e,0x10,0xbc,0x00,0xfb,0x60,0xac,0x43,0xfa,0x00,0x93,0x2f,0x09,0x43,0xfa,  //00000f10  ...シ..`ャC.../.C.
   937:     0x00,0x48,0x61,0x2a,0x43,0xfa,0x00,0x47,0x61,0x24,0x43,0xfa,0x00,0x53,0x61,0x1e,  //00000f20  .Ha*C..Ga$C..Sa.
   938:     0x43,0xfa,0x00,0x44,0x61,0x18,0x43,0xfa,0x00,0x47,0x61,0x12,0x22,0x5f,0x61,0x0e,  //00000f30  C..Da.C..Ga."_a.
   939:     0x32,0x39,0x00,0x00,0x00,0x66,0x70,0x4f,0x4e,0x4f,0x70,0xfe,0x4e,0x4f,0x70,0x21,  //00000f40  29...fpONOp.NOp!
   940:     0x4e,0x4f,0x4e,0x75,0x68,0x75,0x6d,0x61,0x6e,0x20,0x20,0x20,0x73,0x79,0x73,0x00,  //00000f50  NONuhuman   sys.
   941:     0x32,0x48,0x44,0x45,0x49,0x50,0x4c,0x00,0x1b,0x5b,0x34,0x37,0x6d,0x1b,0x5b,0x31,  //00000f60  2HDEIPL..[47m.[1
   942:     0x33,0x3b,0x32,0x36,0x48,0x00,0x1b,0x5b,0x31,0x34,0x3b,0x32,0x36,0x48,0x00,0x20,  //00000f70  3;26H..[14;26H. 
   943:     0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  //00000f80                  
   944:     0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  //00000f90                  
   945:     0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x1b,0x5b,0x31,  //00000fa0              ..[1
   946:     0x34,0x3b,0x33,0x34,0x48,0x48,0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,0x73,0x20,0x82,  //00000fb0  4;34HHuman.sys の
   947:     0xcc,0x93,0xc7,0x82,0xdd,0x8d,0x9e,0x82,0xdd,0x83,0x47,0x83,0x89,0x81,0x5b,0x82,  //00000fc0   読み込みエラーで
   948:     0xc5,0x82,0xb7,0x00,0x1b,0x5b,0x31,0x34,0x3b,0x33,0x34,0x48,0x4c,0x5a,0x58,0x2e,  //00000fd0   す..[14;34HLZX.
   949:     0x58,0x20,0x82,0xcc,0x83,0x6f,0x81,0x5b,0x83,0x57,0x83,0x87,0x83,0x93,0x82,0xaa,  //00000fe0  X のバージョンが
   950:     0x8c,0xc3,0x82,0xb7,0x82,0xac,0x82,0xdc,0x82,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ff0  古すぎます......
   951:   };
   952: */
   953:   //  perl misc/itob.pl xeij/FDMedia.java FDM_2HDE_IPL
   954:   public static final byte[] FDM_2HDE_IPL = "` 2HDE v1.1\0\0\4\1\1\0\2\300\0\240\5\3\3\0\t\0\2\0\0\0\0\220p`\0\3Z\b\1\0\ff\bM\372\377\322,VN\326a\0\0\272H\347O\0a\0\2\360a\0\0\304\b\0\0\33fN\302<\0\300\202<\0\6a\0\0\320\341\232T\210 \302\340\232\20\302\20\307\20\206a\0\0\360A\370\t\356p\ba\0\1\fa\0\1Ba\0\1`a\0\1z\b\0\0\16f\f\b\0\0\36g&\b\0\0\33f\ba\0\1zQ\314\377\274L\337\0\362J8\t\341g\f1\370\t\302\t\304\21\374\0@\t\341Nu\b\0\0\37f\342\323\305\226\205c\334 \4H@8\0000<\0\tR\2\260\2d\206\24<\0\1\nB\1\0\b\2\0\bf\0\377x\324\274\0\1\0\0a\0\1\270\b\0\0\33f\254`\0\377d\b8\0\7\t\341f\fH\347\300\0a\0\1FL\337\0\3Nup\0x\0\b\1\0\5g\bx\tHD8<\0\t\b\1\0\4g\4a\0\1|Nu/\1A\370\t\356\20\201\340\231\302<\0\3\b\2\0\bg\4\b\301\0\2\21A\0\1\"\37Nu\23\374\0\377\0\350@\0\23\374\0002\0\350@\5`\20\23\374\0\377\0\350@\0\23\374\0\262\0\350@\5#\311\0\350@\f3\305\0\350@\n\23\374\0\200\0\350@\7NuH\347@`C\371\0\351@\1E\371\0\351@\3@\347\0|\7\0\22\21\b\1\0\4f\370\22\21\b\1\0\7g\370\b\1\0\6f\362\24\230Q\310\377\356F\337L\337\6\2Nu\209\0\350@\0\b\0\0\4f\16\209\0\351@\1\300<\0\37f\364Nu\209\0\350@\1Nu\209\0\350@\0\b\0\0\7f\b\23\374\0\20\0\350@\7\23\374\0\377\0\350@\0Nu0\1\340H\300\274\0\0\0\3\347@A\370\f\220\321\300 \20Nu/\0\300\274\0005\377\0g*\270<\0\5d$/8\t\356/8\t\362?8\t\366a\0\0\304pdQ\310\377\376ah1\337\t\366!\337\t\362!\337\t\356 \37Nu0\1\340HJ\0g<\300<\0\3\200<\0\200\b\370\0\7\t\341\23\300\0\351@\7\b\370\0\6\t\341f\0301\370\t\302\t\304a\0\0\220\b\0\0\35f\b\fx\0d\t\304d\356\b\270\0\6\t\341NuJ8\t\341g\f1\370\t\302\t\304\21\374\0@\t\341Nua\22\b\0\0\33f&H@HB\264\0g\32HBa>/\1\22<\0\17a\0\376lHB\21B\0\2HBp\2`\bHBH@Nu/\1a\0\376\254a\0\376\356\"\0370\1\340H\300\274\0\0\0\3\347@A\370\f\220\321\300 \20Nu/\1\22<\0\7a\0\376.p\1a\320\"\37Nu/\1\22<\0\4a\0\376\34\"\37p\1a\0\376l\209\0\351@\1\300<\0\320\260<\0\320f\360p\0\209\0\351@\3\340\230NuS\2~\0:\2\340]J\5g\4\6E\b\0\340MHB\2\202\0\0\0\377\351\212\324E\fB\0\4e\2TB\204\374\0\22HB>\2\216\374\0\tHG\341O\340\2174\7\6\202\3\0\200\1*<\0\0\4\0<<\0\377><\t(NuO\372\374\200C\372\374\242M\372\374x,\271\0\0\5\30#\311\0\0\5\30C\372\0\332M\372\374h,\271\0\0\5\24#\311\0\0\5\24C\372\1nM\372\374X,\271\0\0\5\4#\311\0\0\5\4$<\3\0\0\4 <\0\0\0\216NO\22\0\341A\22<\0p3\301\0\0\0f&<\0\0\4\0C\372\0 a\4`\0\1\354H\347x@pFNO\b\0\0\36f\2p\0L\337\2\36Nu\370\377\377\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\0\0\0\0\0\0\0\0\0\0\0\0\b\1\0\ff\bM\372\373\212,VN\326a\0\374nH\347O\0a\0\376\244a\0\374x\b\0\0\33f0\302<\0\300\202<\0\5`\b0<\1\254Q\310\377\376a\0\0\374\b\0\0\36g,\b\0\0\33f\16\b\0\0\21f\ba\0\375LQ\314\377\344L\337\0\362J8\t\341g\f1\370\t\302\t\304\21\374\0@\t\341Nu\b\0\0\37f\342\323\305\226\205c\334 \4H@8\0000<\0\tR\2\260\2d\256\24<\0\1\nB\1\0\b\2\0\bf\230\324\274\0\1\0\0a\0\375\214\b\0\0\33f\256`\216\b\1\0\ff\bM\372\372\336,VN\326a\0\373\306H\347O\0a\0\375\374a\0\373\320\b\0\0\33f$\302<\0\300\202<\0\21a^\b\0\0\nf\24\b\0\0\36g\26\b\0\0\33f\ba\0\374\260Q\314\377\346L\337\0\362`\0\3734\b\0\0\37f\362\323\305\226\205c\354 \4H@8\0000<\0\tR\2\260\2d\300\24<\0\1\nB\1\0\b\2\0\bf\262\324\274\0\1\0\0a\0\375\0\b\0\0\33f\276`\240a\0\373|\341\232T\210 \302\340\232\20\302\20\307\20\206a\0\373\212A\370\t\356p\ba\0\373\270a\0\373\356a\0\374\fa\0\374&NuC\372\1\214a\0\1v$<\3\0\0\00629\0\0\0f&<\0\0\4\0C\370(\0a\0\375\366J\200f\0\1 C\370(\0I\372\1Tx\37$I&Lz\n\20\32\200<\0 \260\33f\6Q\315\377\364`\fC\351\0 Q\314\377\344f\0\0\3640)\0\32\341XU@\320|\0\0134\0\304|\0\7R\2\350Hd\4\204|\1\0HB4<\3\0\24\0HB&)\0\34\341[HC\341[C\370g\300a\0\375\214\fQHUf\0\0\264K\370h\0I\372\0L\"MC\3618\300,<\0\4\0\0\fiN\324\377\322f6\f\255LZX \0\4f\26+F\0\4+M\0\bB\255\0 Q\371\0\0\7\234N\355\0\2\fmN\354\0\32f\16\fmN\352\0*f\6C\372\1 `d\20<\0\300A\370h\0006<\377\377\260\30g&Q\313\377\372C\370h\0J9\0\0\7\234g\24A\370g\314$\30\324\230\"\20\321\302S\201e\4B\30`\370N\321\f\20\0\4f\320R\210\f\20\0\320f\310R\210\f\20\0\376f\300R\210\f\20\0\2f\270W\2100\374\5\236\20\274\0\373`\254C\372\0\223/\tC\372\0Ha*C\372\0Ga$C\372\0Sa\36C\372\0Da\30C\372\0Ga\22\"_a\01629\0\0\0fpONOp\376NOp!NONuhuman   sys\0002HDEIPL\0\33[47m\33[13;26H\0\33[14;26H\0                                             \0\33[14;34HHuman.sys \202\314\223\307\202\335\215\236\202\335\203G\203\211\201[\202\305\202\267\0\33[14;34HLZX.X \202\314\203o\201[\203W\203\207\203\223\202\252\214\303\202\267\202\254\202\334\202\267\0\0\0\0\0\0".getBytes (XEiJ.ISO_8859_1);
   955: 
   956: /*
   957:   public static final int[] FDM_2HS_IPL = {
   958:     //  perl sjdump.pl 2hs.2hs 0 0x1000 2
   959:     0x60,0x1e,0x39,0x53,0x43,0x46,0x4d,0x54,0x20,0x49,0x50,0x4c,0x20,0x76,0x31,0x2e,  //00000000  `.9SCFMT IPL v1.
   960:     0x30,0x32,0x04,0x00,0x01,0x03,0x00,0x01,0x00,0xc0,0x05,0xa0,0xfb,0x01,0x90,0x70,  //00000010  02.......タ....壬
   961:     0x60,0x00,0x03,0x5a,0x08,0x01,0x00,0x0c,0x66,0x08,0x4d,0xfa,0xff,0xd4,0x2c,0x56,  //00000020  `..Z....f.M..ヤ,V
   962:     0x4e,0xd6,0x61,0x00,0x00,0xba,0x48,0xe7,0x4f,0x00,0x61,0x00,0x02,0xf0,0x61,0x00,  //00000030  Nヨa..コH躇.a...a.
   963:     0x00,0xc4,0x08,0x00,0x00,0x1b,0x66,0x4e,0xc2,0x3c,0x00,0xc0,0x82,0x3c,0x00,0x06,  //00000040  .ト....fNツ<.タ.<..
   964:     0x61,0x00,0x00,0xd0,0xe1,0x9a,0x54,0x88,0x20,0xc2,0xe0,0x9a,0x10,0xc2,0x10,0xc7,  //00000050  a..ミ癩T. ツ燠.ツ.ヌ
   965:     0x10,0x86,0x61,0x00,0x00,0xf0,0x41,0xf8,0x09,0xee,0x70,0x08,0x61,0x00,0x01,0x0c,  //00000060  ..a...A..綠.a...
   966:     0x61,0x00,0x01,0x42,0x61,0x00,0x01,0x60,0x61,0x00,0x01,0x7a,0x08,0x00,0x00,0x0e,  //00000070  a..Ba..`a..z....
   967:     0x66,0x0c,0x08,0x00,0x00,0x1e,0x67,0x26,0x08,0x00,0x00,0x1b,0x66,0x08,0x61,0x00,  //00000080  f.....g&....f.a.
   968:     0x01,0x7a,0x51,0xcc,0xff,0xbc,0x4c,0xdf,0x00,0xf2,0x4a,0x38,0x09,0xe1,0x67,0x0c,  //00000090  .zQフ.シL゚..J8.疊.
   969:     0x31,0xf8,0x09,0xc2,0x09,0xc4,0x11,0xfc,0x00,0x40,0x09,0xe1,0x4e,0x75,0x08,0x00,  //000000a0  1..ツ.ト...@.甎u..
   970:     0x00,0x1f,0x66,0xe2,0xd3,0xc5,0x96,0x85,0x63,0xdc,0x20,0x04,0x48,0x40,0x38,0x00,  //000000b0  ..f簽ナ妹cワ .H@8.
   971:     0x30,0x3c,0x00,0x12,0x52,0x02,0xb0,0x02,0x64,0x86,0x14,0x3c,0x00,0x0a,0x0a,0x42,  //000000c0  0<..R.ー.d..<...B
   972:     0x01,0x00,0x08,0x02,0x00,0x08,0x66,0x00,0xff,0x78,0xd4,0xbc,0x00,0x01,0x00,0x00,  //000000d0  ......f..xヤシ....
   973:     0x61,0x00,0x01,0xb8,0x08,0x00,0x00,0x1b,0x66,0xac,0x60,0x00,0xff,0x64,0x08,0x38,  //000000e0  a..ク....fャ`..d.8
   974:     0x00,0x07,0x09,0xe1,0x66,0x0c,0x48,0xe7,0xc0,0x00,0x61,0x00,0x01,0x46,0x4c,0xdf,  //000000f0  ...畴.H鄲.a..FL゚
   975:     0x00,0x03,0x4e,0x75,0x70,0x00,0x78,0x00,0x08,0x01,0x00,0x05,0x67,0x08,0x78,0x09,  //00000100  ..Nup.x.....g.x.
   976:     0x48,0x44,0x38,0x3c,0x00,0x09,0x08,0x01,0x00,0x04,0x67,0x04,0x61,0x00,0x01,0x7c,  //00000110  HD8<......g.a..|
   977:     0x4e,0x75,0x2f,0x01,0x41,0xf8,0x09,0xee,0x10,0x81,0xe0,0x99,0xc2,0x3c,0x00,0x03,  //00000120  Nu/.A....≒卍<..
   978:     0x08,0x02,0x00,0x08,0x67,0x04,0x08,0xc1,0x00,0x02,0x11,0x41,0x00,0x01,0x22,0x1f,  //00000130  ....g..チ...A..".
   979:     0x4e,0x75,0x13,0xfc,0x00,0xff,0x00,0xe8,0x40,0x00,0x13,0xfc,0x00,0x32,0x00,0xe8,  //00000140  Nu.....錙....2.錙
   980:     0x40,0x05,0x60,0x10,0x13,0xfc,0x00,0xff,0x00,0xe8,0x40,0x00,0x13,0xfc,0x00,0xb2,  //00000150   .`......錙....イ
   981:     0x00,0xe8,0x40,0x05,0x23,0xc9,0x00,0xe8,0x40,0x0c,0x33,0xc5,0x00,0xe8,0x40,0x0a,  //00000160  .錙.#ノ.錙.3ナ.錙.
   982:     0x13,0xfc,0x00,0x80,0x00,0xe8,0x40,0x07,0x4e,0x75,0x48,0xe7,0x40,0x60,0x43,0xf9,  //00000170  .....錙.NuH蹇`C.
   983:     0x00,0xe9,0x40,0x01,0x45,0xf9,0x00,0xe9,0x40,0x03,0x40,0xe7,0x00,0x7c,0x07,0x00,  //00000180  .顱.E..顱.@..|..
   984:     0x12,0x11,0x08,0x01,0x00,0x04,0x66,0xf8,0x12,0x11,0x08,0x01,0x00,0x07,0x67,0xf8,  //00000190  ......f.......g.
   985:     0x08,0x01,0x00,0x06,0x66,0xf2,0x14,0x98,0x51,0xc8,0xff,0xee,0x46,0xdf,0x4c,0xdf,  //000001a0  ....f..浪ネ.珖゚L゚
   986:     0x06,0x02,0x4e,0x75,0x10,0x39,0x00,0xe8,0x40,0x00,0x08,0x00,0x00,0x04,0x66,0x0e,  //000001b0  ..Nu.9.錙.....f.
   987:     0x10,0x39,0x00,0xe9,0x40,0x01,0xc0,0x3c,0x00,0x1f,0x66,0xf4,0x4e,0x75,0x10,0x39,  //000001c0  .9.顱.タ<..f.Nu.9
   988:     0x00,0xe8,0x40,0x01,0x4e,0x75,0x10,0x39,0x00,0xe8,0x40,0x00,0x08,0x00,0x00,0x07,  //000001d0  .錙.Nu.9.錙.....
   989:     0x66,0x08,0x13,0xfc,0x00,0x10,0x00,0xe8,0x40,0x07,0x13,0xfc,0x00,0xff,0x00,0xe8,  //000001e0  f......錙......錙
   990:     0x40,0x00,0x4e,0x75,0x30,0x01,0xe0,0x48,0xc0,0xbc,0x00,0x00,0x00,0x03,0xe7,0x40,  //000001f0   .Nu0.潯タシ....蹇
   991:     0x41,0xf8,0x0c,0x90,0xd1,0xc0,0x20,0x10,0x4e,0x75,0x2f,0x00,0xc0,0xbc,0x00,0x35,  //00000200  A..績タ .Nu/.タシ.5
   992:     0xff,0x00,0x67,0x2a,0xb8,0x3c,0x00,0x05,0x64,0x24,0x2f,0x38,0x09,0xee,0x2f,0x38,  //00000210  ..g*ク<..d$/8../8
   993:     0x09,0xf2,0x3f,0x38,0x09,0xf6,0x61,0x00,0x00,0xc4,0x70,0x64,0x51,0xc8,0xff,0xfe,  //00000220  ..?8..a..トpdQネ..
   994:     0x61,0x68,0x31,0xdf,0x09,0xf6,0x21,0xdf,0x09,0xf2,0x21,0xdf,0x09,0xee,0x20,0x1f,  //00000230  ah1゚..!゚..!゚.. .
   995:     0x4e,0x75,0x30,0x01,0xe0,0x48,0x4a,0x00,0x67,0x3c,0xc0,0x3c,0x00,0x03,0x80,0x3c,  //00000240  Nu0.潯J.g<タ<...<
   996:     0x00,0x80,0x08,0xf8,0x00,0x07,0x09,0xe1,0x13,0xc0,0x00,0xe9,0x40,0x07,0x08,0xf8,  //00000250  .........タ.顱...
   997:     0x00,0x06,0x09,0xe1,0x66,0x18,0x31,0xf8,0x09,0xc2,0x09,0xc4,0x61,0x00,0x00,0x90,  //00000260  ...畴.1..ツ.トa...
   998:     0x08,0x00,0x00,0x1d,0x66,0x08,0x0c,0x78,0x00,0x64,0x09,0xc4,0x64,0xee,0x08,0xb8,  //00000270  ....f..x.d.トd..ク
   999:     0x00,0x06,0x09,0xe1,0x4e,0x75,0x4a,0x38,0x09,0xe1,0x67,0x0c,0x31,0xf8,0x09,0xc2,  //00000280  ...甎uJ8.疊.1..ツ
  1000:     0x09,0xc4,0x11,0xfc,0x00,0x40,0x09,0xe1,0x4e,0x75,0x61,0x12,0x08,0x00,0x00,0x1b,  //00000290  .ト...@.甎ua.....
  1001:     0x66,0x26,0x48,0x40,0x48,0x42,0xb4,0x00,0x67,0x1a,0x48,0x42,0x61,0x3e,0x2f,0x01,  //000002a0  f&H@HBエ.g.HBa>/.
  1002:     0x12,0x3c,0x00,0x0f,0x61,0x00,0xfe,0x6c,0x48,0x42,0x11,0x42,0x00,0x02,0x48,0x42,  //000002b0  .<..a..lHB.B..HB
  1003:     0x70,0x02,0x60,0x08,0x48,0x42,0x48,0x40,0x4e,0x75,0x2f,0x01,0x61,0x00,0xfe,0xac,  //000002c0  p.`.HBH@Nu/.a..ャ
  1004:     0x61,0x00,0xfe,0xee,0x22,0x1f,0x30,0x01,0xe0,0x48,0xc0,0xbc,0x00,0x00,0x00,0x03,  //000002d0  a...".0.潯タシ....
  1005:     0xe7,0x40,0x41,0xf8,0x0c,0x90,0xd1,0xc0,0x20,0x10,0x4e,0x75,0x2f,0x01,0x12,0x3c,  //000002e0  蹇A..績タ .Nu/..<
  1006:     0x00,0x07,0x61,0x00,0xfe,0x2e,0x70,0x01,0x61,0xd0,0x22,0x1f,0x4e,0x75,0x2f,0x01,  //000002f0  ..a...p.aミ".Nu/.
  1007:     0x12,0x3c,0x00,0x04,0x61,0x00,0xfe,0x1c,0x22,0x1f,0x70,0x01,0x61,0x00,0xfe,0x6c,  //00000300  .<..a...".p.a..l
  1008:     0x10,0x39,0x00,0xe9,0x40,0x01,0xc0,0x3c,0x00,0xd0,0xb0,0x3c,0x00,0xd0,0x66,0xf0,  //00000310  .9.顱.タ<.ミー<.ミf.
  1009:     0x70,0x00,0x10,0x39,0x00,0xe9,0x40,0x03,0xe0,0x98,0x4e,0x75,0x53,0x02,0x7e,0x00,  //00000320  p..9.顱.燔NuS.~.
  1010:     0x3a,0x02,0xe0,0x5d,0x4a,0x05,0x67,0x04,0x06,0x45,0x08,0x00,0xe0,0x4d,0x48,0x42,  //00000330  :.濔J.g..E..潼HB
  1011:     0x02,0x82,0x00,0x00,0x00,0xff,0xe9,0x8a,0xd4,0x45,0x0c,0x42,0x00,0x04,0x65,0x02,  //00000340  ......驫ヤE.B..e.
  1012:     0x53,0x42,0x84,0xfc,0x00,0x12,0x48,0x42,0x3e,0x02,0x8e,0xfc,0x00,0x09,0x48,0x47,  //00000350  SB....HB>.周..HG
  1013:     0xe1,0x4f,0xe0,0x8f,0x34,0x07,0x06,0x82,0x03,0x00,0x00,0x0a,0x2a,0x3c,0x00,0x00,  //00000360  甍熄4.......*<..
  1014:     0x04,0x00,0x3c,0x3c,0x00,0xff,0x3e,0x3c,0x09,0x28,0x4e,0x75,0x4f,0xfa,0xfc,0x82,  //00000370  ..<<..><.(NuO...
  1015:     0x43,0xfa,0xfc,0xa2,0x4d,0xfa,0xfc,0x7a,0x2c,0xb9,0x00,0x00,0x05,0x18,0x23,0xc9,  //00000380  C..「M..z,ケ....#ノ
  1016:     0x00,0x00,0x05,0x18,0x43,0xfa,0x00,0xda,0x4d,0xfa,0xfc,0x6a,0x2c,0xb9,0x00,0x00,  //00000390  ....C..レM..j,ケ..
  1017:     0x05,0x14,0x23,0xc9,0x00,0x00,0x05,0x14,0x43,0xfa,0x01,0x6e,0x4d,0xfa,0xfc,0x5a,  //000003a0  ..#ノ....C..nM..Z
  1018:     0x2c,0xb9,0x00,0x00,0x05,0x04,0x23,0xc9,0x00,0x00,0x05,0x04,0x24,0x3c,0x03,0x00,  //000003b0  ,ケ....#ノ....$<..
  1019:     0x00,0x04,0x20,0x3c,0x00,0x00,0x00,0x8e,0x4e,0x4f,0x12,0x00,0xe1,0x41,0x12,0x3c,  //000003c0  .. <...晒O..瓣.<
  1020:     0x00,0x70,0x33,0xc1,0x00,0x00,0x00,0x64,0x26,0x3c,0x00,0x00,0x04,0x00,0x43,0xfa,  //000003d0  .p3チ...d&<....C.
  1021:     0x00,0x20,0x61,0x04,0x60,0x00,0x01,0xf0,0x48,0xe7,0x78,0x40,0x70,0x46,0x4e,0x4f,  //000003e0  . a.`...H輾@pFNO
  1022:     0x08,0x00,0x00,0x1e,0x66,0x02,0x70,0x00,0x4c,0xdf,0x02,0x1e,0x4e,0x75,0x4e,0x75,  //000003f0  ....f.p.L゚..NuNu
  1023:     0xfb,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000400  ................
  1024:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000410  ................
  1025:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000420  ................
  1026:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000430  ................
  1027:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000440  ................
  1028:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000450  ................
  1029:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000460  ................
  1030:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000470  ................
  1031:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000480  ................
  1032:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000490  ................
  1033:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004a0  ................
  1034:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004b0  ................
  1035:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004c0  ................
  1036:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004d0  ................
  1037:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004e0  ................
  1038:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000004f0  ................
  1039:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000500  ................
  1040:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000510  ................
  1041:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000520  ................
  1042:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000530  ................
  1043:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000540  ................
  1044:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000550  ................
  1045:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000560  ................
  1046:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000570  ................
  1047:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000580  ................
  1048:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000590  ................
  1049:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005a0  ................
  1050:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005b0  ................
  1051:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005c0  ................
  1052:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005d0  ................
  1053:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005e0  ................
  1054:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000005f0  ................
  1055:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000600  ................
  1056:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000610  ................
  1057:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000620  ................
  1058:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000630  ................
  1059:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000640  ................
  1060:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000650  ................
  1061:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000660  ................
  1062:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000670  ................
  1063:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000680  ................
  1064:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000690  ................
  1065:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006a0  ................
  1066:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006b0  ................
  1067:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006c0  ................
  1068:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006d0  ................
  1069:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006e0  ................
  1070:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000006f0  ................
  1071:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000700  ................
  1072:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000710  ................
  1073:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000720  ................
  1074:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000730  ................
  1075:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000740  ................
  1076:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000750  ................
  1077:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000760  ................
  1078:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000770  ................
  1079:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000780  ................
  1080:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000790  ................
  1081:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007a0  ................
  1082:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007b0  ................
  1083:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007c0  ................
  1084:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007d0  ................
  1085:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007e0  ................
  1086:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000007f0  ................
  1087:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000800  ................
  1088:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000810  ................
  1089:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000820  ................
  1090:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000830  ................
  1091:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000840  ................
  1092:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000850  ................
  1093:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000860  ................
  1094:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000870  ................
  1095:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000880  ................
  1096:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000890  ................
  1097:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008a0  ................
  1098:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008b0  ................
  1099:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008c0  ................
  1100:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008d0  ................
  1101:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008e0  ................
  1102:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000008f0  ................
  1103:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000900  ................
  1104:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000910  ................
  1105:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000920  ................
  1106:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000930  ................
  1107:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000940  ................
  1108:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000950  ................
  1109:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000960  ................
  1110:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000970  ................
  1111:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000980  ................
  1112:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000990  ................
  1113:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009a0  ................
  1114:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009b0  ................
  1115:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009c0  ................
  1116:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009d0  ................
  1117:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009e0  ................
  1118:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //000009f0  ................
  1119:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a00  ................
  1120:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a10  ................
  1121:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a20  ................
  1122:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a30  ................
  1123:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a40  ................
  1124:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a50  ................
  1125:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a60  ................
  1126:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a70  ................
  1127:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a80  ................
  1128:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000a90  ................
  1129:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000aa0  ................
  1130:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ab0  ................
  1131:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ac0  ................
  1132:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ad0  ................
  1133:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ae0  ................
  1134:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000af0  ................
  1135:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b00  ................
  1136:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b10  ................
  1137:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b20  ................
  1138:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b30  ................
  1139:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b40  ................
  1140:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b50  ................
  1141:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b60  ................
  1142:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b70  ................
  1143:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b80  ................
  1144:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000b90  ................
  1145:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000ba0  ................
  1146:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bb0  ................
  1147:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bc0  ................
  1148:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bd0  ................
  1149:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000be0  ................
  1150:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000bf0  ................
  1151:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c00  ................
  1152:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c10  ................
  1153:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c20  ................
  1154:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c30  ................
  1155:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c40  ................
  1156:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c50  ................
  1157:     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //00000c60  ................
  1158:     0x08,0x01,0x00,0x0c,0x66,0x08,0x4d,0xfa,0xfb,0x8c,0x2c,0x56,0x4e,0xd6,0x61,0x00,  //00000c70  ....f.M...,VNヨa.
  1159:     0xfc,0x6e,0x48,0xe7,0x4f,0x00,0x61,0x00,0xfe,0xa4,0x61,0x00,0xfc,0x78,0x08,0x00,  //00000c80  .nH躇.a..、a..x..
  1160:     0x00,0x1b,0x66,0x30,0xc2,0x3c,0x00,0xc0,0x82,0x3c,0x00,0x05,0x60,0x08,0x30,0x3c,  //00000c90  ..f0ツ<.タ.<..`.0<
  1161:     0x01,0xac,0x51,0xc8,0xff,0xfe,0x61,0x00,0x01,0x00,0x08,0x00,0x00,0x1e,0x67,0x2c,  //00000ca0  .ャQネ..a.......g,
  1162:     0x08,0x00,0x00,0x1b,0x66,0x0e,0x08,0x00,0x00,0x11,0x66,0x08,0x61,0x00,0xfd,0x4c,  //00000cb0  ....f.....f.a..L
  1163:     0x51,0xcc,0xff,0xe4,0x4c,0xdf,0x00,0xf2,0x4a,0x38,0x09,0xe1,0x67,0x0c,0x31,0xf8,  //00000cc0  Qフ.膈゚..J8.疊.1.
  1164:     0x09,0xc2,0x09,0xc4,0x11,0xfc,0x00,0x40,0x09,0xe1,0x4e,0x75,0x08,0x00,0x00,0x1f,  //00000cd0  .ツ.ト...@.甎u....
  1165:     0x66,0xe2,0xd3,0xc5,0x96,0x85,0x63,0xdc,0x20,0x04,0x48,0x40,0x38,0x00,0x30,0x3c,  //00000ce0  f簽ナ妹cワ .H@8.0<
  1166:     0x00,0x12,0x52,0x02,0xb0,0x02,0x64,0xae,0x14,0x3c,0x00,0x0a,0x0a,0x42,0x01,0x00,  //00000cf0  ..R.ー.dョ.<...B..
  1167:     0x08,0x02,0x00,0x08,0x66,0x98,0xd4,0xbc,0x00,0x01,0x00,0x00,0x61,0x00,0xfd,0x8c,  //00000d00  ....f儘シ....a...
  1168:     0x08,0x00,0x00,0x1b,0x66,0xae,0x60,0x8e,0x08,0x01,0x00,0x0c,0x66,0x08,0x4d,0xfa,  //00000d10  ....fョ`.....f.M.
  1169:     0xfa,0xe0,0x2c,0x56,0x4e,0xd6,0x61,0x00,0xfb,0xc6,0x48,0xe7,0x4f,0x00,0x61,0x00,  //00000d20  ..,VNヨa..ニH躇.a.
  1170:     0xfd,0xfc,0x61,0x00,0xfb,0xd0,0x08,0x00,0x00,0x1b,0x66,0x24,0xc2,0x3c,0x00,0xc0,  //00000d30  ..a..ミ....f$ツ<.タ
  1171:     0x82,0x3c,0x00,0x11,0x61,0x62,0x08,0x00,0x00,0x0a,0x66,0x14,0x08,0x00,0x00,0x1e,  //00000d40  .<..ab....f.....
  1172:     0x67,0x16,0x08,0x00,0x00,0x1b,0x66,0x08,0x61,0x00,0xfc,0xb0,0x51,0xcc,0xff,0xe6,  //00000d50  g.....f.a..ーQフ.覘
  1173:     0x4c,0xdf,0x00,0xf2,0x60,0x00,0xfb,0x34,0x08,0x00,0x00,0x1f,0x66,0xf2,0xd3,0xc5,  //00000d60   ゚..`..4....f.モナ
  1174:     0x96,0x85,0x63,0xec,0x20,0x04,0x48,0x40,0x38,0x00,0x30,0x3c,0x00,0x12,0x30,0x3c,  //00000d70  妹c. .H@8.0<..0<
  1175:     0x00,0x12,0x52,0x02,0xb0,0x02,0x64,0xbc,0x14,0x3c,0x00,0x0a,0x0a,0x42,0x01,0x00,  //00000d80  ..R.ー.dシ.<...B..
  1176:     0x08,0x02,0x00,0x08,0x66,0xae,0xd4,0xbc,0x00,0x01,0x00,0x00,0x61,0x00,0xfc,0xfc,  //00000d90  ....fョヤシ....a...
  1177:     0x08,0x00,0x00,0x1b,0x66,0xba,0x60,0x9c,0x61,0x00,0xfb,0x78,0xe1,0x9a,0x54,0x88,  //00000da0  ....fコ`彗..x癩T.
  1178:     0x20,0xc2,0xe0,0x9a,0x10,0xc2,0x10,0xc7,0x10,0x86,0x61,0x00,0xfb,0x86,0x41,0xf8,  //00000db0   ツ燠.ツ.ヌ..a...A.
  1179:     0x09,0xee,0x70,0x08,0x61,0x00,0xfb,0xb4,0x61,0x00,0xfb,0xea,0x61,0x00,0xfc,0x08,  //00000dc0  .綠.a..エa..鸞...
  1180:     0x61,0x00,0xfc,0x22,0x4e,0x75,0x43,0xfa,0x01,0x8c,0x61,0x00,0x01,0x76,0x24,0x3c,  //00000dd0  a.."NuC..径..v$<
  1181:     0x03,0x00,0x00,0x06,0x32,0x39,0x00,0x00,0x00,0x64,0x26,0x3c,0x00,0x00,0x04,0x00,  //00000de0  ....29...d&<....
  1182:     0x43,0xf8,0x28,0x00,0x61,0x00,0xfd,0xf2,0x4a,0x80,0x66,0x00,0x01,0x20,0x43,0xf8,  //00000df0  C.(.a...J.f.. C.
  1183:     0x28,0x00,0x49,0xfa,0x01,0x54,0x78,0x1f,0x24,0x49,0x26,0x4c,0x7a,0x0a,0x10,0x1a,  //00000e00  (.I..Tx.$I&Lz...
  1184:     0x80,0x3c,0x00,0x20,0xb0,0x1b,0x66,0x06,0x51,0xcd,0xff,0xf4,0x60,0x0c,0x43,0xe9,  //00000e10  .<. ー.f.Qヘ..`.C.
  1185:     0x00,0x20,0x51,0xcc,0xff,0xe4,0x66,0x00,0x00,0xf4,0x30,0x29,0x00,0x1a,0xe1,0x58,  //00000e20  . Qフ.臟...0)..畊
  1186:     0x55,0x40,0xd0,0x7c,0x00,0x0b,0x34,0x00,0xc4,0x7c,0x00,0x07,0x52,0x02,0xe8,0x48,  //00000e30  U@ミ|..4.ト|..R.鍠
  1187:     0x64,0x04,0x84,0x7c,0x01,0x00,0x48,0x42,0x34,0x3c,0x03,0x00,0x14,0x00,0x48,0x42,  //00000e40  d.л..HB4<....HB
  1188:     0x26,0x29,0x00,0x1c,0xe1,0x5b,0x48,0x43,0xe1,0x5b,0x43,0xf8,0x67,0xc0,0x61,0x00,  //00000e50  &)..畆HC畆C.gタa.
  1189:     0xfd,0x88,0x0c,0x51,0x48,0x55,0x66,0x00,0x00,0xb4,0x4b,0xf8,0x68,0x00,0x49,0xfa,  //00000e60  ...QHUf..エK.h.I.
  1190:     0x00,0x4c,0x22,0x4d,0x43,0xf1,0x38,0xc0,0x2c,0x3c,0x00,0x04,0x00,0x00,0x0c,0x69,  //00000e70  .L"MC.8タ,<.....i
  1191:     0x4e,0xd4,0xff,0xd2,0x66,0x36,0x0c,0xad,0x4c,0x5a,0x58,0x20,0x00,0x04,0x66,0x16,  //00000e80  Nヤ.メf6.ュLZX ..f.
  1192:     0x2b,0x46,0x00,0x04,0x2b,0x4d,0x00,0x08,0x42,0xad,0x00,0x20,0x51,0xf9,0x00,0x00,  //00000e90  +F..+M..Bュ. Q...
  1193:     0x07,0x9e,0x4e,0xed,0x00,0x02,0x0c,0x6d,0x4e,0xec,0x00,0x1a,0x66,0x0e,0x0c,0x6d,  //00000ea0  .朦....mN...f..m
  1194:     0x4e,0xea,0x00,0x2a,0x66,0x06,0x43,0xfa,0x01,0x1f,0x60,0x64,0x10,0x3c,0x00,0xc0,  //00000eb0  N..*f.C...`d.<.タ
  1195:     0x41,0xf8,0x68,0x00,0x36,0x3c,0xff,0xff,0xb0,0x18,0x67,0x26,0x51,0xcb,0xff,0xfa,  //00000ec0  A.h.6<..ー.g&Qヒ..
  1196:     0x43,0xf8,0x68,0x00,0x4a,0x39,0x00,0x00,0x07,0x9e,0x67,0x14,0x41,0xf8,0x67,0xcc,  //00000ed0  C.h.J9...枷.A.gフ
  1197:     0x24,0x18,0xd4,0x98,0x22,0x10,0xd1,0xc2,0x53,0x81,0x65,0x04,0x42,0x18,0x60,0xf8,  //00000ee0  $.ヤ.".ムツS‘.B.`.
  1198:     0x4e,0xd1,0x0c,0x10,0x00,0x04,0x66,0xd0,0x52,0x88,0x0c,0x10,0x00,0xd0,0x66,0xc8,  //00000ef0  Nム....fミR....ミfネ
  1199:     0x52,0x88,0x0c,0x10,0x00,0xfe,0x66,0xc0,0x52,0x88,0x0c,0x10,0x00,0x02,0x66,0xb8,  //00000f00  R.....fタR.....fク
  1200:     0x57,0x88,0x30,0xfc,0x05,0xa1,0x10,0xbc,0x00,0xfb,0x60,0xac,0x43,0xfa,0x00,0x92,  //00000f10  W.0..。.シ..`ャC...
  1201:     0x2f,0x09,0x43,0xfa,0x00,0x47,0x61,0x2a,0x43,0xfa,0x00,0x46,0x61,0x24,0x43,0xfa,  //00000f20  /.C..Ga*C..Fa$C.
  1202:     0x00,0x52,0x61,0x1e,0x43,0xfa,0x00,0x43,0x61,0x18,0x43,0xfa,0x00,0x46,0x61,0x12,  //00000f30  .Ra.C..Ca.C..Fa.
  1203:     0x22,0x5f,0x61,0x0e,0x32,0x39,0x00,0x00,0x00,0x64,0x70,0x4f,0x4e,0x4f,0x70,0xfe,  //00000f40  "_a.29...dpONOp.
  1204:     0x4e,0x4f,0x70,0x21,0x4e,0x4f,0x4e,0x75,0x68,0x75,0x6d,0x61,0x6e,0x20,0x20,0x20,  //00000f50  NOp!NONuhuman   
  1205:     0x73,0x79,0x73,0x00,0x39,0x53,0x43,0x49,0x50,0x4c,0x00,0x1b,0x5b,0x34,0x37,0x6d,  //00000f60  sys.9SCIPL..[47m
  1206:     0x1b,0x5b,0x31,0x33,0x3b,0x32,0x36,0x48,0x00,0x1b,0x5b,0x31,0x34,0x3b,0x32,0x36,  //00000f70  .[13;26H..[14;26
  1207:     0x48,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  //00000f80  H.              
  1208:     0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,  //00000f90                  
  1209:     0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,  //00000fa0                 .
  1210:     0x1b,0x5b,0x31,0x34,0x3b,0x33,0x34,0x48,0x48,0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,  //00000fb0  .[14;34HHuman.sy
  1211:     0x73,0x20,0x82,0xcc,0x93,0xc7,0x82,0xdd,0x8d,0x9e,0x82,0xdd,0x83,0x47,0x83,0x89,  //00000fc0  s の読み込みエラ
  1212:     0x81,0x5b,0x82,0xc5,0x82,0xb7,0x00,0x1b,0x5b,0x31,0x34,0x3b,0x33,0x34,0x48,0x4c,  //00000fd0  ーです..[14;34HL
  1213:     0x5a,0x58,0x2e,0x58,0x20,0x82,0xcc,0x83,0x6f,0x81,0x5b,0x83,0x57,0x83,0x87,0x83,  //00000fe0  ZX.X のバージョン
  1214:     0x93,0x82,0xaa,0x8c,0xc3,0x82,0xb7,0x82,0xac,0x82,0xdc,0x82,0xb7,0x00,0x00,0x00,  //00000ff0   が古すぎます...
  1215:   };
  1216: */
  1217:   //  perl misc/itob.pl xeij/FDMedia.java FDM_2HS_IPL
  1218:   public static final byte[] FDM_2HS_IPL = "`\369SCFMT IPL v1.02\4\0\1\3\0\1\0\300\5\240\373\1\220p`\0\3Z\b\1\0\ff\bM\372\377\324,VN\326a\0\0\272H\347O\0a\0\2\360a\0\0\304\b\0\0\33fN\302<\0\300\202<\0\6a\0\0\320\341\232T\210 \302\340\232\20\302\20\307\20\206a\0\0\360A\370\t\356p\ba\0\1\fa\0\1Ba\0\1`a\0\1z\b\0\0\16f\f\b\0\0\36g&\b\0\0\33f\ba\0\1zQ\314\377\274L\337\0\362J8\t\341g\f1\370\t\302\t\304\21\374\0@\t\341Nu\b\0\0\37f\342\323\305\226\205c\334 \4H@8\0000<\0\22R\2\260\2d\206\24<\0\n\nB\1\0\b\2\0\bf\0\377x\324\274\0\1\0\0a\0\1\270\b\0\0\33f\254`\0\377d\b8\0\7\t\341f\fH\347\300\0a\0\1FL\337\0\3Nup\0x\0\b\1\0\5g\bx\tHD8<\0\t\b\1\0\4g\4a\0\1|Nu/\1A\370\t\356\20\201\340\231\302<\0\3\b\2\0\bg\4\b\301\0\2\21A\0\1\"\37Nu\23\374\0\377\0\350@\0\23\374\0002\0\350@\5`\20\23\374\0\377\0\350@\0\23\374\0\262\0\350@\5#\311\0\350@\f3\305\0\350@\n\23\374\0\200\0\350@\7NuH\347@`C\371\0\351@\1E\371\0\351@\3@\347\0|\7\0\22\21\b\1\0\4f\370\22\21\b\1\0\7g\370\b\1\0\6f\362\24\230Q\310\377\356F\337L\337\6\2Nu\209\0\350@\0\b\0\0\4f\16\209\0\351@\1\300<\0\37f\364Nu\209\0\350@\1Nu\209\0\350@\0\b\0\0\7f\b\23\374\0\20\0\350@\7\23\374\0\377\0\350@\0Nu0\1\340H\300\274\0\0\0\3\347@A\370\f\220\321\300 \20Nu/\0\300\274\0005\377\0g*\270<\0\5d$/8\t\356/8\t\362?8\t\366a\0\0\304pdQ\310\377\376ah1\337\t\366!\337\t\362!\337\t\356 \37Nu0\1\340HJ\0g<\300<\0\3\200<\0\200\b\370\0\7\t\341\23\300\0\351@\7\b\370\0\6\t\341f\0301\370\t\302\t\304a\0\0\220\b\0\0\35f\b\fx\0d\t\304d\356\b\270\0\6\t\341NuJ8\t\341g\f1\370\t\302\t\304\21\374\0@\t\341Nua\22\b\0\0\33f&H@HB\264\0g\32HBa>/\1\22<\0\17a\0\376lHB\21B\0\2HBp\2`\bHBH@Nu/\1a\0\376\254a\0\376\356\"\0370\1\340H\300\274\0\0\0\3\347@A\370\f\220\321\300 \20Nu/\1\22<\0\7a\0\376.p\1a\320\"\37Nu/\1\22<\0\4a\0\376\34\"\37p\1a\0\376l\209\0\351@\1\300<\0\320\260<\0\320f\360p\0\209\0\351@\3\340\230NuS\2~\0:\2\340]J\5g\4\6E\b\0\340MHB\2\202\0\0\0\377\351\212\324E\fB\0\4e\2SB\204\374\0\22HB>\2\216\374\0\tHG\341O\340\2174\7\6\202\3\0\0\n*<\0\0\4\0<<\0\377><\t(NuO\372\374\202C\372\374\242M\372\374z,\271\0\0\5\30#\311\0\0\5\30C\372\0\332M\372\374j,\271\0\0\5\24#\311\0\0\5\24C\372\1nM\372\374Z,\271\0\0\5\4#\311\0\0\5\4$<\3\0\0\4 <\0\0\0\216NO\22\0\341A\22<\0p3\301\0\0\0d&<\0\0\4\0C\372\0 a\4`\0\1\360H\347x@pFNO\b\0\0\36f\2p\0L\337\2\36NuNu\373\377\377\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\0\0\0\0\0\0\0\0\0\0\0\0\b\1\0\ff\bM\372\373\214,VN\326a\0\374nH\347O\0a\0\376\244a\0\374x\b\0\0\33f0\302<\0\300\202<\0\5`\b0<\1\254Q\310\377\376a\0\1\0\b\0\0\36g,\b\0\0\33f\16\b\0\0\21f\ba\0\375LQ\314\377\344L\337\0\362J8\t\341g\f1\370\t\302\t\304\21\374\0@\t\341Nu\b\0\0\37f\342\323\305\226\205c\334 \4H@8\0000<\0\22R\2\260\2d\256\24<\0\n\nB\1\0\b\2\0\bf\230\324\274\0\1\0\0a\0\375\214\b\0\0\33f\256`\216\b\1\0\ff\bM\372\372\340,VN\326a\0\373\306H\347O\0a\0\375\374a\0\373\320\b\0\0\33f$\302<\0\300\202<\0\21ab\b\0\0\nf\24\b\0\0\36g\26\b\0\0\33f\ba\0\374\260Q\314\377\346L\337\0\362`\0\3734\b\0\0\37f\362\323\305\226\205c\354 \4H@8\0000<\0\0220<\0\22R\2\260\2d\274\24<\0\n\nB\1\0\b\2\0\bf\256\324\274\0\1\0\0a\0\374\374\b\0\0\33f\272`\234a\0\373x\341\232T\210 \302\340\232\20\302\20\307\20\206a\0\373\206A\370\t\356p\ba\0\373\264a\0\373\352a\0\374\ba\0\374\"NuC\372\1\214a\0\1v$<\3\0\0\00629\0\0\0d&<\0\0\4\0C\370(\0a\0\375\362J\200f\0\1 C\370(\0I\372\1Tx\37$I&Lz\n\20\32\200<\0 \260\33f\6Q\315\377\364`\fC\351\0 Q\314\377\344f\0\0\3640)\0\32\341XU@\320|\0\0134\0\304|\0\7R\2\350Hd\4\204|\1\0HB4<\3\0\24\0HB&)\0\34\341[HC\341[C\370g\300a\0\375\210\fQHUf\0\0\264K\370h\0I\372\0L\"MC\3618\300,<\0\4\0\0\fiN\324\377\322f6\f\255LZX \0\4f\26+F\0\4+M\0\bB\255\0 Q\371\0\0\7\236N\355\0\2\fmN\354\0\32f\16\fmN\352\0*f\6C\372\1\37`d\20<\0\300A\370h\0006<\377\377\260\30g&Q\313\377\372C\370h\0J9\0\0\7\236g\24A\370g\314$\30\324\230\"\20\321\302S\201e\4B\30`\370N\321\f\20\0\4f\320R\210\f\20\0\320f\310R\210\f\20\0\376f\300R\210\f\20\0\2f\270W\2100\374\5\241\20\274\0\373`\254C\372\0\222/\tC\372\0Ga*C\372\0Fa$C\372\0Ra\36C\372\0Ca\30C\372\0Fa\22\"_a\01629\0\0\0dpONOp\376NOp!NONuhuman   sys\09SCIPL\0\33[47m\33[13;26H\0\33[14;26H\0                                             \0\33[14;34HHuman.sys \202\314\223\307\202\335\215\236\202\335\203G\203\211\201[\202\305\202\267\0\33[14;34HLZX.X \202\314\203o\201[\203W\203\207\203\223\202\252\214\303\202\267\202\254\202\334\202\267\0\0\0".getBytes (XEiJ.ISO_8859_1);
  1219: 
  1220:   //----------------------------------------------------------------------------------------
  1221:   //フロッピーディスクBPB
  1222:   //  フロッピーディスクIPLに埋め込まれる
  1223: /*
  1224:   public static final int[] FDM_DISK_BPB = {
  1225:     //  perl -e "do'sjdump.pl';$p=0;$m=1;$o=0xb6e;$l=160;open IN,'HUMAN302.XDF'or die;binmode IN;seek IN,1024*592,0;read IN,$b,64;seek IN,1024*592+vec($b,15,32)+32*$m,0;read IN,$b,32;seek IN,1024*592+vec($b,7,32)+64+$o,0;read IN,$b,$l;close IN;sjdumpcode($b,0,$l,$p)"
  1226:     //bytesPerSector
  1227:     //  |sectorsPerCluster               partitionSectors    sectorsPerTrack
  1228:     //  |       |reservedSectors rootEntries    |       fatSectors  |
  1229:     //  |       |      |   fatCount   |         |    fatID   |      | tracksPerCylinder
  1230:     //--+---- --+- ----+---- --+- ----+---- ----+---- --+- --+- ----+---- ----+----
  1231:     0x00,0x04,0x01,0x01,0x00,0x02,0xc0,0x00,0xd0,0x04,0xfe,0x02,0x00,0x08,0x00,0x02,  //00000000  ......タ.ミ.......
  1232:     0x00,0x00,0x00,0x00,0x04,0x00,0x03,0x00,0x00,0x06,0x00,0x08,0x00,0x1f,0x00,0x09,  //00000010  ................
  1233:     //+- --+- ---------+--------- ---------+--------- ----+---- ----+---- ----+----
  1234:     //PDA  |     bytesPerSector      rootPosition  sectorsPerTrack  | dataStartSector-2
  1235:     // ejectFlag                                            entriesPerSector-1
  1236:     0x00,0x02,0x01,0x01,0x00,0x02,0xe0,0x00,0x60,0x09,0xf9,0x07,0x00,0x0f,0x00,0x02,  //00000020  ........`.......
  1237:     0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x01,0x01,0x00,0x0f,0x00,0x0f,0x00,0x1b,  //00000030  ................
  1238:     0x00,0x02,0x02,0x01,0x00,0x02,0x70,0x00,0x00,0x05,0xfb,0x02,0x00,0x08,0x00,0x02,  //00000040  ......p.........
  1239:     0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x06,0x00,0x08,0x00,0x0f,0x00,0x0a,  //00000050  ................
  1240:     0x00,0x02,0x02,0x01,0x00,0x02,0x70,0x00,0xa0,0x05,0xf9,0x03,0x00,0x09,0x00,0x02,  //00000060  ......p.........
  1241:     0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x08,0x00,0x09,0x00,0x0f,0x00,0x0c,  //00000070  ................
  1242:     0x00,0x02,0x01,0x01,0x00,0x02,0xe0,0x00,0x40,0x0b,0xf0,0x09,0x00,0x12,0x00,0x02,  //00000080  ........@.......
  1243:     0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x01,0x02,0x00,0x12,0x00,0x0f,0x00,0x1f,  //00000090  ................
  1244:   };
  1245: */
  1246:   //  perl misc/itob.pl xeij/FDMedia.java FDM_DISK_BPB
  1247:   public static final byte[] FDM_DISK_BPB = "\0\4\1\1\0\2\300\0\320\4\376\2\0\b\0\2\0\0\0\0\4\0\3\0\0\6\0\b\0\37\0\t\0\2\1\1\0\2\340\0`\t\371\7\0\17\0\2\0\0\0\0\2\0\2\0\1\1\0\17\0\17\0\33\0\2\2\1\0\2p\0\0\5\373\2\0\b\0\2\0\0\0\0\2\0\2\0\0\6\0\b\0\17\0\n\0\2\2\1\0\2p\0\240\5\371\3\0\t\0\2\0\0\0\0\2\0\2\0\0\b\0\t\0\17\0\f\0\2\1\1\0\2\340\0@\13\360\t\0\22\0\2\0\0\0\0\2\0\2\0\1\2\0\22\0\17\0\37".getBytes (XEiJ.ISO_8859_1);
  1248:   //MS-DOSの2HDディスクのセクタ0の先頭
  1249:   //                                                             sectorsPerCluster
  1250:   //    JMP(*);NOP                  "NEC  5.0"             bytesPerSector|reservedSectors
  1251:   //  -------+------ -------------------+------------------- ----+---- --+- ----+----
  1252:   //  0xeb,0x3c,0x90,0x4e,0x45,0x43,0x20,0x20,0x35,0x2e,0x30,0x00,0x04,0x01,0x01,0x00,
  1253:   //  0x02,0xc0,0x00,0xd0,0x04,0xfe,0x02,0x00,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
  1254:   //  --+- ----+---- ----+---- --+- ----+---- ----+---- ----+---- ----+----
  1255:   //    | rootEntries    |    fatID fatSectors    | tracksPerCylinder |
  1256:   //  fatCount    partitionSectors         sectorsPerTrack       hiddenSectors
  1257: 
  1258: }  //class FDMedia
  1259: 
  1260: 
  1261: