1: //======================================================================================== 2: // SPC.java 3: // en:SCSI protocol controller 4: // ja:SCSIプロトコルコントローラ 5: // Copyright (C) 2003-2024 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: // 内蔵SCSIと拡張SCSIの兼用 15: // MB89352 16: //---------------------------------------------------------------------------------------- 17: 18: package xeij; 19: 20: import java.awt.event.*; //ActionEvent,ActionListener,ComponentAdapter,ComponentEvent,ComponentListener,FocusAdapter,FocusEvent,FocusListener,InputEvent,KeyAdapter,KeyEvent,KeyListener,MouseAdapter,MouseEvent,MouseListener,MouseMotionAdapter,MouseWheelEvent,WindowAdapter,WindowEvent,WindowListener,WindowStateListener 21: import java.io.*; //BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter,File,FileInputStream,FileNotFoundException,FileReader,InputStream,InputStreamReader,IOException,OutputStreamWriter,RandomAccessFile 22: import java.lang.*; //Boolean,Character,Class,Comparable,Double,Exception,Float,IllegalArgumentException,Integer,Long,Math,Number,Object,Runnable,SecurityException,String,StringBuilder,System 23: import java.util.*; //ArrayList,Arrays,Calendar,GregorianCalendar,HashMap,Map,Map.Entry,Timer,TimerTask,TreeMap 24: import javax.swing.*; //AbstractSpinnerModel,Box,ButtonGroup,DefaultListModel,ImageIcon,JButton,JCheckBox,JCheckBoxMenuItem,JDialog,JFileChooser,JFrame,JLabel,JList,JMenu,JMenuBar,JMenuItem,JPanel,JRadioButton,JScrollPane,JSpinner,JTextArea,JTextField,JTextPane,JViewport,ScrollPaneConstants,SpinnerListModel,SpinnerNumberModel,SwingConstants,SwingUtilities,UIManager,UIDefaults,UnsupportedLookAndFeelException 25: import javax.swing.event.*; //CaretListener,ChangeEvent,ChangeListener,DocumentEvent,DocumentListener,ListSelectionListener 26: 27: public class SPC { 28: 29: public static final boolean SPC_DEBUG_ON = false; 30: public static final boolean SPC_DEBUG_COMMAND = SPC_DEBUG_ON && true; 31: public static final boolean SPC_DEBUG_PHASE = SPC_DEBUG_ON && true; 32: public static final boolean SPC_DEBUG_PORT = SPC_DEBUG_ON && false; 33: 34: public static final boolean SPC_REPORT_UNIMPLEMENTED_COMMAND = true; 35: 36: public static final boolean SPC_REMOVABLE_HDD = true; //true=リムーバブル 37: 38: public static final int SPC_MAX_BYTES_PER_BLOCK = 2048; //セクタ長の上限 39: 40: //データインフェーズで残りが8バイトになったらステータスフェーズに切り替えてINTSのSRをセットする 41: //ACKがFalseになるのを待たずにステータスフェーズに移行するハードディスクを接続したときS_DATAINIが最後の数バイトを受け取り損ねるバグを露見させる 42: public static final boolean SPC_EXPOSE_DATAINI_BUG = false; 43: 44: //ベースアドレス 45: public static final int SPC_BASE_EX = 0x00ea0000; //拡張SCSIのSPCのベースアドレス 46: public static final int SPC_BASE_IN = 0x00e96020; //内蔵SCSIのSPCのベースアドレス 47: 48: //ROM起動ハンドル 49: public static final int SPC_HANDLE_EX = 0x00ea0020; //拡張SCSIのROM起動ハンドル 50: public static final int SPC_HANDLE_IN = 0x00fc0000; //内蔵SCSIのROM起動ハンドル 51: 52: //フェーズ 53: public static final int SPC_PHASE_MASK = 0b00000111; 54: public static final int SPC_DATA_OUT_PHASE = 0b00000000; //Data Out Phase。データアウトフェーズ 55: public static final int SPC_DATA_IN_PHASE = 0b00000001; //Data In Phase。データインフェーズ 56: public static final int SPC_COMMAND_PHASE = 0b00000010; //Command Phase。コマンドフェーズ 57: public static final int SPC_STATUS_PHASE = 0b00000011; //Status Phase。ステータスフェーズ 58: public static final int SPC_MESSAGE_OUT_PHASE = 0b00000110; //Message Out Phase。メッセージアウトフェーズ 59: public static final int SPC_MESSAGE_IN_PHASE = 0b00000111; //Message In Phase。メッセージインフェーズ 60: 61: //レジスタ 62: public static final int SPC_BDID = 0x01; //Bus Device ID。自分のID 63: public static final int SPC_BDID_I7 = 0b10000000; //ID 7 64: public static final int SPC_BDID_I6 = 0b01000000; //ID 6 65: public static final int SPC_BDID_I5 = 0b00100000; //ID 5 66: public static final int SPC_BDID_I4 = 0b00010000; //ID 4 67: public static final int SPC_BDID_I3 = 0b00001000; //ID 3 68: public static final int SPC_BDID_I2 = 0b00000100; //ID 2 69: public static final int SPC_BDID_I1 = 0b00000010; //ID 1 70: public static final int SPC_BDID_I0 = 0b00000001; //ID 0 71: public static final int SPC_SCTL = 0x03; //SPC Control 72: public static final int SPC_SCTL_RD = 0b10000000; //Reset & Disable。1=ハードウェアリセット 73: public static final int SPC_SCTL_CR = 0b01000000; //Control Reset。1=転送回路リセット 74: public static final int SPC_SCTL_DM = 0b00100000; //Diag Mode。1=自己診断モード 75: public static final int SPC_SCTL_AE = 0b00010000; //Arbitration Enable。0=アービトレーションフェーズなし(SASI),1=あり(SCSI) 76: public static final int SPC_SCTL_PE = 0b00001000; //Parity Enable。1=入力データのパリティをチェックする。出力データは常にパリティが付く 77: public static final int SPC_SCTL_SE = 0b00000100; //Select Enable。0=常にイニシエータ,1=セレクションフェーズが来たらターゲットになる 78: public static final int SPC_SCTL_RE = 0b00000010; //Reselect Enable。1=リセレクションフェーズに応答する 79: public static final int SPC_SCTL_IE = 0b00000001; //Interrupt Enable。0=割り込み禁止,1=許可。禁止されていてもINTSは変化する 80: public static final int SPC_SCMD = 0x05; //SPC Command 81: public static final int SPC_SCMD_CC = 0b11100000; //Command Code 82: public static final int SPC_SCMD_CC_BR = 0b00000000; //Bus Release。ターゲットのときバスフリーフェーズへ移行 83: public static final int SPC_SCMD_CC_SL = 0b00100000; //Select。セレクション/リセレクションを開始 84: public static final int SPC_SCMD_CC_RA = 0b01000000; //Reset ATN。ATNをクリア 85: public static final int SPC_SCMD_CC_SA = 0b01100000; //Set ATN。ATNをセット 86: public static final int SPC_SCMD_CC_TR = 0b10000000; //Transfer。転送開始 87: public static final int SPC_SCMD_CC_TP = 0b10100000; //Transfer Pause。転送中断 88: public static final int SPC_SCMD_CC_RR = 0b11000000; //Reset ACK/REQ。CPU転送のときACK/REQをクリア 89: public static final int SPC_SCMD_CC_SR = 0b11100000; //Set ACK/REQ。CPU転送のときACK/REQをセット 90: public static final int SPC_SCMD_RO = 0b00010000; //RST Out。1=SCSIバスリセット 91: public static final int SPC_SCMD_IT = 0b00001000; //Intercept Transfer。1=CPU転送時FIFOバッファの内容を保持 92: public static final int SPC_SCMD_PT = 0b00000100; //Program Transfer。0=DMA転送(DREQあり),1=CPU転送(DREQなし) 93: public static final int SPC_SCMD_TM = 0b00000001; //Termination Mode。イニシエータのとき0=カウント0で終了する,1=カウント0で終了しない(Padding)、ターゲットのとき0=パリティエラーがあってもカウント0まで転送する,1=パリティエラーがあると直ちに終了する 94: public static final int SPC_INTS = 0x09; //Interrupt Sense 95: public static final int SPC_INTS_SL = 0b10000000; //Selected。1=他のデバイスのセレクションフェーズで選択されてターゲットになった 96: public static final int SPC_INTS_RS = 0b01000000; //Reselected。1=他のデバイスのリセレクションフェーズで選択されてイニシエータになった 97: public static final int SPC_INTS_DC = 0b00100000; //Disconnected。1=バスフリーフェーズになった。バスを使うとき0に戻すこと 98: public static final int SPC_INTS_CC = 0b00010000; //Command Complete。1=SelectやTransferなどのコマンドが終了した。ターゲットのときパリティエラーで停止した 99: public static final int SPC_INTS_SR = 0b00001000; //Service Required。1=PCTLレジスタとバスのフェーズが一致しないんだけどどうにかして。入力中、送信の終わった相手がフェーズをさっさと切り替えた。受信するデータがまだFIFOに残っているのに 100: public static final int SPC_INTS_TO = 0b00000100; //Time Out。1=セレクション/リセレクションに応答がない。セレクションタイムアウトのときSELが1のままなのでTEMP=$00で復旧させる必要がある 101: public static final int SPC_INTS_HE = 0b00000010; //SPC Hard Error。1=なんかエラーが出た。SERRを見てくれ 102: public static final int SPC_INTS_RC = 0b00000001; //Reset Condition。1=SCSIバスがリセットされた(RST信号が1になった) 103: public static final int SPC_PSNS = 0x0b; //(Read) Phase Sense 104: public static final int SPC_PSNS_REQ = 0b10000000; //REQ 105: public static final int SPC_PSNS_ACK = 0b01000000; //ACK 106: public static final int SPC_PSNS_ATN = 0b00100000; //ATN 107: public static final int SPC_PSNS_SEL = 0b00010000; //SEL。1=セレクションフェーズ 108: public static final int SPC_PSNS_BSY = 0b00001000; //BSY 109: public static final int SPC_PSNS_MSG = 0b00000100; //MSG 110: public static final int SPC_PSNS_CD = 0b00000010; //C/D 111: public static final int SPC_PSNS_IO = 0b00000001; //I/O 112: public static final int SPC_SDGC = 0x0b; //(Write) SPC Diag Control 113: public static final int SPC_SDGC_REQ = 0b10000000; //Diag REQ 114: public static final int SPC_SDGC_ACK = 0b01000000; //Diag ACK 115: public static final int SPC_SDGC_XFER = 0b00100000; //Xfer Enable。CPU転送のとき1=データ転送割り込み許可 116: public static final int SPC_SDGC_BSY = 0b00001000; //Diag BSY 117: public static final int SPC_SDGC_MSG = 0b00000100; //Diag MSG 118: public static final int SPC_SDGC_CD = 0b00000010; //Diag C/D 119: public static final int SPC_SDGC_IO = 0b00000001; //Diag I/O 120: public static final int SPC_SSTS = 0x0d; //SPC Status 121: public static final int SPC_SSTS_INIT = 0b10000000; //Connected INIT。1=イニシエータ 122: public static final int SPC_SSTS_TARG = 0b01000000; //Connected TARG。1=ターゲット 123: public static final int SPC_SSTS_BUSY = 0b00100000; //SPC Busy。1=コマンド実行中 124: public static final int SPC_SSTS_TRIP = 0b00010000; //Transfer in Progress。1=DMA転送中 125: public static final int SPC_SSTS_SRIN = 0b00001000; //SCSI Reset In。RST信号の状態 126: public static final int SPC_SSTS_TC0 = 0b00000100; //TC=0。1=転送カウンタが0 127: public static final int SPC_SSTS_DF = 0b00000010; //DREG status Full。1=8バイトのFIFOが一杯 128: public static final int SPC_SSTS_DE = 0b00000001; //DREG status Empty。1=8バイトのFIFOが空 129: public static final int SPC_SERR = 0x0f; //SPC Error Status 130: public static final int SPC_SERR_DI = 0b10000000; //Data Error SCSI。1=入力データにパリティエラーがある 131: public static final int SPC_SERR_DO = 0b01000000; //Data Error SPC。1=出力データにパリティエラーがある 132: public static final int SPC_SERR_XO = 0b00100000; //Xfer Out。1=Xfer EnableのときData Request中 133: public static final int SPC_SERR_PE = 0b00001000; //TC Parity Error。1=転送カウンタにパリティエラーがある 134: public static final int SPC_SERR_ST = 0b00000010; //Short Transfer Period。1=REQ/ACKが速すぎてSPCが追従できない 135: public static final int SPC_PCTL = 0x11; //Phase Control 136: public static final int SPC_PCTL_IE = 0b10000000; //Busfree INT Enable。1=バスフリーフェーズを検出したらDisconnected割り込みを要求する 137: public static final int SPC_PCTL_TP = 0b00000111; //Transfer Phase。転送フェーズ 138: public static final int SPC_PCTL_MSG = 0b00000100; //MSG 139: public static final int SPC_PCTL_CD = 0b00000010; //C/D 140: public static final int SPC_PCTL_IO = 0b00000001; //I/O。0=Out,1=In 141: public static final int SPC_PCTL_SR = 0b00000001; //Selectコマンドのセレクション/リセレクション選択 142: public static final int SPC_PCTL_SR_R = 0b00000001; //Selectコマンドでリセレクションを開始 143: public static final int SPC_PCTL_SR_S = 0b00000000; //Selectコマンドでセレクションを開始 144: public static final int SPC_MBC = 0x13; //Modified Byte Counter 145: public static final int SPC_DREG = 0x15; //Data Register 146: public static final int SPC_TEMP = 0x17; //Temporary Register 147: public static final int SPC_TCH = 0x19; //Transfer Counter High 148: public static final int SPC_TCM = 0x1b; //Transfer Counter Mid 149: public static final int SPC_TCL = 0x1d; //Transfer Counter Low 150: 151: //ステータスバイト 152: public static final int SPC_GOOD = 0x00; 153: public static final int SPC_CHECK_CONDITION = 0x02; 154: public static final int SPC_CONDITION_MET = 0x04; 155: public static final int SPC_BUSY = 0x08; 156: public static final int SPC_INTERMEDIATE = 0x10; 157: public static final int SPC_INTERMEDIATE_CONDITION_MET = 0x14; 158: public static final int SPC_RESERVATION_CONFLICT = 0x18; 159: public static final int SPC_COMMAND_TERMINATED = 0x22; 160: public static final int SPC_QUEUE_FULL = 0x28; 161: 162: //メッセージコード 163: public static final int SPC_COMMAND_COMPLETE = 0x00; 164: public static final int SPC_EXTENDED_MESSAGE = 0x01; //拡張メッセージ長nとnバイトの拡張メッセージが続く 165: public static final int SPC_SAVE_DATA_POINTER = 0x02; 166: public static final int SPC_RESTORE_POINTERS = 0x03; 167: public static final int SPC_DISCONNECT = 0x04; 168: public static final int SPC_INITIATOR_DETECTED_ERROR = 0x05; 169: public static final int SPC_ABORT = 0x06; 170: public static final int SPC_MESSAGE_REJECT = 0x07; 171: public static final int SPC_NO_OPERATION = 0x08; 172: public static final int SPC_MESSAGE_PARITY_ERROR = 0x09; 173: public static final int SPC_LINKED_COMMAND_COMPLETE = 0x0a; 174: public static final int SPC_LINKED_COMMAND_COMPLETE_WITH_FLAG = 0x0b; 175: public static final int SPC_BUS_DEVICE_RESET = 0x0c; 176: public static final int SPC_ABORT_TAG = 0x0d; 177: public static final int SPC_CLEAR_QUEUE = 0x0e; 178: public static final int SPC_INITIATE_RECOVERY = 0x0f; 179: public static final int SPC_RELEASE_RECOVERY = 0x10; 180: public static final int SPC_TERMINATE_IO_PROCESS = 0x11; 181: public static final int SPC_SIMPLE_QUEUE_TAG = 0x20; //0x20-0x7fは2バイト 182: public static final int SPC_HEAD_OF_QUEUE_TAG = 0x21; 183: public static final int SPC_ORDERED_QUEUE_TAG = 0x22; 184: public static final int SPC_IGNORE_WIDE_RESIDUE = 0x23; 185: public static final int SPC_IDENTIFY = 0x80; 186: 187: //センスエラーコード[0] 188: public static final int SPC_INVALID_COMMAND = 0x20; 189: public static final int SPC_INVALID_SECTOR_ADDRESS = 0x21; 190: public static final int SPC_EXTENDED_SENSE = 0x70; //拡張センスデータ(8バイト以上)。[2]=センスキー,[7]=[8]以降の長さ 191: //センスキー[2] 192: public static final int SPC_NO_SENSE = 0x00; 193: public static final int SPC_RECOVERED_ERROR = 0x01; 194: public static final int SPC_NOT_READY = 0x02; 195: public static final int SPC_MEDIUM_ERROR = 0x03; 196: public static final int SPC_HARDWARE_ERROR = 0x04; 197: public static final int SPC_ILLEGAL_REQUEST = 0x05; 198: public static final int SPC_UNIT_ATTENTION = 0x06; 199: public static final int SPC_DATA_PROTECT = 0x07; 200: public static final int SPC_BLANK_CHECK = 0x08; 201: public static final int SPC_COPY_ABORTED = 0x0a; 202: public static final int SPC_ABORTED_COMMAND = 0x0b; 203: public static final int SPC_EQUAL = 0x0c; 204: public static final int SPC_VOLUME_OVERFLOW = 0x0d; 205: public static final int SPC_MISCOMPARE = 0x0e; 206: 207: //デバイスタイプ 208: // スタンダードInquiryデータの1バイト目の下位5bit 209: public static final int SPC_DIRECT_ACCESS_DEVICE = 0x00; //ダイレクトアクセスデバイス(HDD) 210: public static final int SPC_SEQUENCIAL_ACCESS_DEVICE = 0x01; //シーケンシャルアクセスデバイス(磁気テープ) 211: public static final int SPC_PRINTER_DEVICE = 0x02; //プリンタデバイス 212: public static final int SPC_PROCESSOR_DEVICE = 0x03; //プロセッサデバイス 213: public static final int SPC_WRITE_ONCE_DEVICE = 0x04; //ライトワンスデバイス(追記型光ディスク) 214: public static final int SPC_CDROM_DEVICE = 0x05; //CD-ROMデバイス 215: public static final int SPC_SCANNER_DEVICE = 0x06; //スキャナデバイス 216: public static final int SPC_OPTICAL_MEMORY_DEVICE = 0x07; //光メモリデバイス(消去可能光ディスク) 217: public static final int SPC_MEDIUM_CHANGER_DEVICE = 0x08; //メディアチェンジャデバイス(磁気テープライブラリ) 218: public static final int SPC_COMMUNICATION_DEVICE = 0x09; //コミュニケーションデバイス 219: 220: //コマンド名 221: // デバイスタイプ 222: // A 全デバイス共通 223: // D ダイレクトアクセスデバイス 224: // T シーケンシャルアクセスデバイス 225: // P プリンタデバイス 226: // G プロセッサデバイス 227: // W ライトワンスデバイス 228: // C CD-ROMデバイス 229: // S スキャナデバイス 230: // O 光メモリデバイス 231: // L メディアチェンジャデバイス 232: // N コミュニケーションデバイス 233: // サポート 234: // m 必須 235: // e 拡張仕様 236: // o オプション 237: // z タイプ依存 238: // v ベンダ固有 239: // r 予約 240: // 参考 SCSI-2詳細解説;菅谷誠一著;CQ出版社 241: public static final String[] SPC_COMMAND_NAME = ( 242: //グループ0 コマンド長6バイト | SCSI-1| SCSI-2 | 243: // |ADTPGWC|ADTPGWCSOLN| 244: "Test Unit Ready," + //$00|ooooooo|mmmmmmmmmmm| 245: "Rezero Unit/Rewind," + //$01| omvvoo| omvrooroor|DWCOL:Rezero Unit/T:Rewind 246: "," + //$02| vvvvvv| vvvvvvrrrr| 247: "Request Sense," + //$03|mmmmmmm|mmmmmmmmmmm| 248: "Format Unit," + //$04| mrovrr| mrorrrrorr|DO:Format Unit/P:Format 249: "Read Block Limits," + //$05| vevvvv| vmvvvvrrrr| 250: "," + //$06| vvvvvv| vvvvvvrrrr| 251: "Reassign Blocks/Initialize Element Status," + //$07| ovvvor| ovvrorroor|DWO:Reassign Blocks/L:Initialize Element Status 252: "Read(6)/Receive/Get Message(6)," + //$08| mmvooo| mmvooororo|DWCO:Read(6)/T:Read/G:Receive/N:Get Message(6) 253: "," + //$09| vvvvvv| vvvvvvrrrr| 254: "Write(6)/Print/Send/Send Message(6)," + //$0A| mmmmor| ommmorrorm|DWO:Write(6)/T:Write/P:Print/G:Send/N:Send Message(6) 255: "Seek(6)/Track Select/Slew and Print," + //$0B| ooovoo| ororoororr|DWCO:Seek(6)/T:(Track Select)/P:Slew and Print 256: "," + //$0C| vvvvvv| vvvvvvrrvr| 257: "," + //$0D| vvvvvv| vvvvvvrrrr| 258: "," + //$0E| vvvvvv| vvvvvvrrrr| 259: "Read Reverse," + //$0F| vovvvv| vovvvvrrrr| 260: "Write Filemarks/Synchronize Buffer," + //$10| vmovvv| vmovvvrrrr|T:Write Filemarks/P:Synchronize Buffer 261: "Space," + //$11| vovvvv| vmvvvvrrrr| 262: "Inquiry," + //$12|eeeeeee|mmmmmmmmmmm| 263: "Verify," + //$13| vovvvv| vovvvvrrrr| 264: "Recover Buffered Data," + //$14| voovvv| voovvvrrrr| 265: "Mode Select(6)," + //$15|zooovoo|zomoroooooo| 266: "Reserve Unit," + //$16| ooovoo| mmmrmmmmor|DWCOL:Reserve/TPS:Reserve Unit 267: "Release Unit," + //$17| ooovoo| mmmrmmmmor|DWCOL:Release/TPS:Release Unit 268: "Copy," + //$18|ooooooo|ooooooooorr| 269: "Erase," + //$19| vovrvv| vmvvvvrrrr| 270: "Mode Sense(6)," + //$1A|zoooroo|zomoroooooo| 271: "Start-Stop Unit/Load Unload/Stop Print/Scan," + //$1B| oooroo| oooroooorr|DWCO:Start-Stop Unit/T:Load Unload/T:Stop Print/S:Scan 272: "Receive Diagnostic Results," + //$1C|ooooooo|ooooooooooo| 273: "Send Diagnostic," + //$1D|ooooooo|mmmmmmmmmmm| 274: "Prevent-Allow Medium Removal," + //$1E| oorroo| oorrooroor| 275: "," + //$1F| rrrrrr| rrrrrrrrrr| 276: //グループ1 コマンド長10バイト | SCSI-1| SCSI-2 | 277: // |ADTPGWC|ADTPGWCSOLN| 278: "," + //$20| vrrrvv| vrrrvvrvrr| 279: "," + //$21| vrrrvv| vrrrvvrvrr| 280: "," + //$22| vrrrvv| vrrrvvrvrr| 281: "," + //$23| vrrrvv| vrrrvvrvrr| 282: "Set Window," + //$24| vrrrvv| vrrrvvmrrr| 283: "Read Capacity/Get Window," + //$25| errree| mrrrmmomrr|DWO:Read Capacity/C:Read CD-ROM Capacity/S:Get Window 284: "," + //$26| vrrrvv| vrrrvvrrrr| 285: "," + //$27| vrrrvv| vrrrvvrrrr| 286: "Read(10)/Get Message(10)," + //$28| errrmm| mrrrmmmmro|DWCO:Read(10)/S:Read/N:Get Message(10) 287: "Read Generation," + //$29| vrrrvv| vrrrvvrorr| 288: "Write(10)/Send/Send Message(10)," + //$2A| errrmr| orrrmromro|DWO:Write(10)/S:Send/N:Send Message(10) 289: "Seek(10)/Locate/Position to Element," + //$2B| oorroo| oorrooroor|DWCO:Seek(10)/T:Locate/L:Position to Element 290: "Erase(10)," + //$2C| vrrrrv| vrrrvrrorr| 291: "Read Updated Block," + //$2D| vrrrrv| vrrrvrrorr| 292: "Write and Verify(10)," + //$2E| orrror| orrrorrorr| 293: "Verify(10)," + //$2F| orrroo| orrroororr| 294: "Search Data High(10)," + //$30| orrroo| orrroororr| 295: "Search Data Equal(10)/Object Position," + //$31| orrroo| orrroooorr|DWCO:Search Data Equal(10)/S:Object Position 296: "Search Data Low(10)," + //$32| orrroo| orrroororr| 297: "Set Limits(10)," + //$33| orrroo| orrroororr| 298: "Pre-Fetch/Read Position/Get Data Buffer Status," + //$34| rrrrrr| oorroooorr|DWCO:Pre-Fetch/T:Read Position/S:Get Data Buffer Status 299: "Synchronize Cache," + //$35| rrrrrr| orrroororr| 300: "Lock-Unlock Cache," + //$36| rrrrrr| orrroororr| 301: "Read Defect Data(10)," + //$37| rrrrrr| orrrrrrorr| 302: "Medium Scan," + //$38| rrrrrr| rrrrorrorr| 303: "Compare," + //$39|oooo-oo|ooooooooorr| 304: "Copy and Verify," + //$3A|oooo-oo|ooooooooorr| 305: "Write Buffer," + //$3B|rrrrrrr|ooooooooooo| 306: "Read Buffer," + //$3C|rrrrrrr|ooooooooooo| 307: "Update Block," + //$3D| rrrrrr| rrrrrrrorr| 308: "Read Long," + //$3E| rrrrrr| orrroororr| 309: "Write Long," + //$3F| rrrrrr| orrrorrorr| 310: //グループ2 コマンド長10バイト | SCSI-1| SCSI-2 | 311: // |ADTPGWC|ADTPGWCSOLN| 312: "Change Definition," + //$40|rrrrrrr|ooooooooooo| 313: "Write Same," + //$41| rrrrrr| orrrrrrrrr| 314: "Read Sub-Channel," + //$42| rrrrrr| rrrrrorrrr| 315: "Read TOC," + //$43| rrrrrr| rrrrrorrrr| 316: "Read Header," + //$44| rrrrrr| rrrrrorrrr| 317: "Play Audio(10)," + //$45| rrrrrr| rrrrrorrrr| 318: "," + //$46| rrrrrr| rrrrrrrrrr| 319: "Play Audio MSF," + //$47| rrrrrr| rrrrrorrrr| 320: "Play Audio Track Index," + //$48| rrrrrr| rrrrrorrrr| 321: "Play Audio Track Relative(10)," + //$49| rrrrrr| rrrrrorrrr| 322: "," + //$4A| rrrrrr| rrrrrrrrrr| 323: "Pause Resume," + //$4B| rrrrrr| rrrrrorrrr| 324: "Log Select," + //$4C|rrrrrrr|ooooooooooo| 325: "Log Sense," + //$4D|rrrrrrr|ooooooooooo| 326: "," + //$4E| rrrrrr| rrrrrrrrrr| 327: "," + //$4F| rrrrrr| rrrrrrrrrr| 328: "," + //$50| rrrrrr| rrrrrrrrrr| 329: "," + //$51| rrrrrr| rrrrrrrrrr| 330: "," + //$52| rrrrrr| rrrrrrrrrr| 331: "," + //$53| rrrrrr| rrrrrrrrrr| 332: "," + //$54| rrrrrr| rrrrrrrrrr| 333: "Mode Select(10)," + //$55|rrrrrrr|zoooroooooo| 334: "," + //$56| rrrrrr| rrrrrrrrrr| 335: "," + //$57| rrrrrr| rrrrrrrrrr| 336: "," + //$58| rrrrrr| rrrrrrrrrr| 337: "," + //$59| rrrrrr| rrrrrrrrrr| 338: "Mode Sense(10)," + //$5A|rrrrrrr|zoooroooooo| 339: "," + //$5B| rrrrrr| rrrrrrrrrr| 340: "," + //$5C| rrrrrr| rrrrrrrrrr| 341: "," + //$5D| rrrrrr| rrrrrrrrrr| 342: "," + //$5E| rrrrrr| rrrrrrrrrr| 343: "," + //$5F| rrrrrr| rrrrrrrrrr| 344: //グループ3,4 予約 345: ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," + 346: //グループ5 コマンド長12バイト | SCSI-1| SCSI-2 | 347: // |ADTPGWC|ADTPGWCSOLN| 348: "," + //$A0| rrrrrr| rrrrrrrrrr| 349: "," + //$A1| rrrrrr| rrrrrrrrrr| 350: "," + //$A2| rrrrrr| rrrrrrrrrr| 351: "," + //$A3| rrrrrr| rrrrrrrrrr| 352: "," + //$A4| rrrrrr| rrrrrrrrrr| 353: "Play Audio(12)/Move Medium," + //$A5| rrrrrr| rrrrrorrmr|C:Play Audio(12)/L:Move Medium 354: "Exchange Medium," + //$A6| rrrrrr| rrrrrrrror| 355: "," + //$A7| rrrrrr| rrrrrrrrrr| 356: "Read(12)/Get Message(12)," + //$A8| rrrrrr| rrrroororo|WCO:Read(12)/N:Get Message(12) 357: "Play Audio Track Relative(12)," + //$A9| rrrrrr| rrrrrorrrr| 358: "Write(12)/Send Message(12)," + //$AA| rrrrrr| rrrrorroro|WO:Write(12)/N:Send Message(12) 359: "," + //$AB| rrrrrr| rrrrrrrrrr| 360: "Erase(12)," + //$AC| rrrrrr| rrrrrrrorr| 361: "," + //$AD| rrrrrr| rrrrrrrrrr| 362: "Write and Verify(12)," + //$AE| rrrrrr| rrrrorrorr| 363: "Verify(12)," + //$AF| rrrrrr| rrrroororr| 364: "Search Data High(12)," + //$B0| rrrrrr| rrrroororr| 365: "Search Data Equal(12)," + //$B1| rrrrrr| rrrroororr| 366: "Search Data Low(12)," + //$B2| rrrrrr| rrrroororr| 367: "Set Limits(12)," + //$B3| rrrrrr| rrrroororr| 368: "," + //$B4| rrrrrr| rrrrrrrrrr| 369: "Request Volume Element Address," + //$B5| rrrrrr| rrrrrrrror| 370: "Send Volume Tag," + //$B6| rrrrrr| rrrrrrrror| 371: "Read Defect Data(12)," + //$B7| rrrrrr| rrrrrrrorr| 372: "Read Element Status," + //$B8| rrrrrr| rrrrrrrror| 373: "," + //$B9| rrrrrr| rrrrrrrrrr| 374: "," + //$BA| rrrrrr| rrrrrrrrrr| 375: "," + //$BB| rrrrrr| rrrrrrrrrr| 376: "," + //$BC| rrrrrr| rrrrrrrrrr| 377: "," + //$BD| rrrrrr| rrrrrrrrrr| 378: "," + //$BE| rrrrrr| rrrrrrrrrr| 379: "," + //$BF| rrrrrr| rrrrrrrrrr| 380: //グループ6,7 ベンダ固有 381: ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,").split (",", 256); 382: 383: //レジスタ名 384: public static final String[] SPC_REGISTER_NAME = ( 385: //0 00 00 0000 00 00 00 11 11 11 11 11 11 11 11 386: //1 23 45 6789 ab cd ef 01 23 45 67 89 ab cd ef 387: ",BDID,,SCTL,,SCMD,,,,INTS,,PSNS,,SSTS,,SERR,,PCTL,,MBC,,DREG,,TEMP,,TCH,,TCM,,TCL,,").split (",", 32); 388: 389: //インタフェイスの有無 390: public static boolean spcSCSIEXRequest; //次回のリセットでspcSCSIEXOnに設定される値 391: public static boolean spcSCSIEXOn; //true=拡張SCSIポートあり 392: public static boolean spcSCSIINOn; //true=内蔵SCSIポートあり 393: 394: //インタフェイス 395: public static SPCChip spcSCSIEXChip; //拡張SCSIポート 396: public static SPCChip spcSCSIINChip; //内蔵SCSIポート 397: 398: //ユニット 399: public static SCUnit[] spcUnitArray; //SCSIユニットの配列 400: 401: //メニュー 402: public static JMenu spcMenu; 403: public static JCheckBoxMenuItem spcSCSIINMenuItem; 404: public static JCheckBoxMenuItem spcSCSIEXMenuItem; 405: 406: //ファイルフィルタ 407: public static javax.swing.filechooser.FileFilter spcFileFilter; //java.io.FileFilterと紛らわしい 408: 409: //開くダイアログ 410: public static OpenDialog spcOpenDialog; //開くダイアログ。null=作る前 411: public static int spcOpenUnit; //開くユニットの番号 412: public static ArrayList<File[]> spcOpenHistory; //作る前に追加されたヒストリ 413: 414: //フォーマットダイアログ 415: public static JDialog spcFormatDialog; //ダイアログ 416: public static JFileChooser2 spcFormatFileChooser; //ファイルチューザー 417: public static SpinnerNumberModel spcFormatModel; //容量のスピナーモデル 418: public static int spcFormatPartitionMegaBytes; //容量(MB)。1MB倍して32KB加えたサイズで作成する 419: public static int spcFormatBytesPerRecord; //1レコードあたりのバイト数(2の累乗) 420: public static JCheckBox spcFormatPartitioningCheckBox; //領域確保チェックボックス 421: public static boolean spcFormatPartitioningOn; //true=領域確保する 422: //protected static boolean spcFormatCopySystemFiles; //true=システム転送 423: public static JCheckBox spcFormatCopyHumanSysCheckBox; //HUMAN.SYSチェックボックス 424: public static JCheckBox spcFormatCopyCommandXCheckBox; //COMMAND.Xチェックボックス 425: public static boolean spcFormatCopyHumanSysOn; //true=HUMAN.SYSを書き込む 426: public static boolean spcFormatCopyCommandXOn; //true=COMMAND.Xを書き込む 427: public static javax.swing.filechooser.FileFilter spcFormatFilter; //SCSI HDイメージファイルフィルタ 428: 429: //spcInit () 430: // 初期化 431: public static void spcInit () { 432: 433: //インタフェイスの有無 434: spcSCSIEXRequest = Settings.sgsGetOnOff ("scsiex"); 435: spcSCSIEXOn = false; 436: spcSCSIINOn = false; 437: 438: //インタフェイス 439: spcSCSIEXChip = new SPCChip (true); //拡張SCSI 440: spcSCSIINChip = new SPCChip (false); //内蔵SCSI 441: 442: //ファイルフィルタ 443: // SCSIハードディスクのイメージファイルかどうかを調べる 444: // ファイルチューザーとドロップターゲットで使う 445: spcFileFilter = new javax.swing.filechooser.FileFilter () { //java.io.FileFilterと紛らわしい 446: @Override public boolean accept (File file) { 447: if (file.isDirectory ()) { 448: return true; 449: } 450: String path = file.getPath (); 451: if (spcIsInserted (path)) { //既に挿入されている 452: return false; 453: } 454: return spcIsHds (file, true) || spcIsIso (file); //拡張子がHDSで装置初期化されているか、拡張子がISO 455: } 456: @Override public String getDescription () { 457: return (Multilingual.mlnJapanese ? 458: "SCSI ハードディスクまたは CD-ROM のイメージファイル (*.HDS,*.ISO)" : 459: "SCSI hard disk or CD-ROM image files (*.HDS,*.ISO)"); 460: } 461: }; 462: 463: //開くダイアログ 464: spcOpenDialog = null; 465: spcOpenUnit = 0; 466: spcOpenHistory = new ArrayList<File[]> (); 467: for (int i = JFileChooser2.MAXIMUM_HISTORY_COUNT - 1; 0 <= i; i--) { 468: spcAddHistory (JFileChooser2.pathsToFiles (Settings.sgsGetString ("schistory" + i))); 469: } 470: 471: //ユニット 472: // ダイアログが書き込み禁止でもパラメータは:Rを付けなければ書き込み禁止にしない 473: spcUnitArray = new SCUnit[16]; 474: for (int u = 0; u < 16; u++) { 475: SCUnit unit = spcUnitArray[u] = new SCUnit (u, null); 476: String path = Settings.sgsGetString ("sc" + u); 477: String hdN = Settings.sgsGetString ("hd" + u); //SASIまたはSCSI 478: if (!hdN.equals ("")) { //hdNが指定されている 479: String hdNWithoutR = hdN.endsWith (":R") || hdN.endsWith (":r") ? hdN.substring (0, hdN.length () - 2) : hdN; //":R"を取り除く 480: File file = new File (hdNWithoutR); 481: if (spcIsHds (file, true) || 482: spcIsIso (file)) { //hdNはSCSI HD/CDらしい 483: path = hdN; 484: Settings.sgsPutString ("hd" + u, ""); //消しておく 485: } 486: } 487: boolean userWriteProtect = false; 488: if (path.toUpperCase ().endsWith (":R")) { //書き込み禁止モードで開く 489: path = path.substring (0, path.length () - 2); 490: userWriteProtect = true; 491: } 492: boolean hostWriteProtect = !new File (path).canWrite (); 493: if (path.length () != 0) { 494: unit.connect (true); //接続されていなければ接続する 495: if (unit.insert (path, 496: userWriteProtect || hostWriteProtect)) { //挿入できた 497: spcAddHistory (new File (path).getAbsoluteFile ()); 498: } 499: } 500: } 501: 502: //フォーマットダイアログ 503: spcFormatDialog = null; 504: spcFormatFileChooser = null; 505: spcFormatPartitionMegaBytes = 100; 506: spcFormatBytesPerRecord = 512; 507: spcFormatPartitioningCheckBox = null; 508: spcFormatPartitioningOn = true; 509: //spcFormatCopySystemFiles = true; 510: spcFormatCopyHumanSysCheckBox = null; 511: spcFormatCopyCommandXCheckBox = null; 512: spcFormatCopyHumanSysOn = true; 513: spcFormatCopyCommandXOn = true; 514: spcFormatFilter = new javax.swing.filechooser.FileFilter () { //java.io.FileFilterと紛らわしい 515: @Override public boolean accept (File file) { 516: if (file.isDirectory ()) { 517: return true; 518: } 519: String path = file.getPath (); 520: if (spcIsInserted (path)) { //既に挿入されている 521: return false; 522: } 523: return spcIsHds (file, false); //拡張子がHDSならばファイルが存在しなくてもよい 524: } 525: @Override public String getDescription () { 526: return (Multilingual.mlnJapanese ? 527: "SCSI ハードディスクのイメージファイル (*.HDS)" : 528: "SCSI hard disk image files (*.HDS)"); 529: } 530: }; 531: 532: } //spcInit() 533: 534: //spcReset () 535: public static void spcReset () { 536: //拡張SCSI 537: spcSCSIEXOn = spcSCSIEXRequest; 538: XEiJ.busSuper (spcSCSIEXOn ? MemoryMappedDevice.MMD_EXS : MemoryMappedDevice.MMD_NUL, 0x00ea0000, 0x00ea2000); //必要なときだけ接続する 539: //内蔵SCSI 540: // 内蔵SASIと同じページにあるので内蔵SCSIがなくてもページごと切り離すことはできない 541: spcSCSIINOn = XEiJ.currentModel.isSCSI (); 542: // 拡張 内蔵 unit0-7 unit8-15 543: // ----------------------------- 544: // 有効 有効 拡張 内蔵 545: // 有効 無効 拡張 無効 546: // 無効 有効 内蔵 無効 547: // 無効 無効 無効 無効 548: spcSCSIEXChip.spiReset (spcSCSIEXOn ? 0 : -8); 549: spcSCSIINChip.spiReset (spcSCSIINOn ? spcSCSIEXOn ? 8 : 0 : -8); 550: for (int u = 0; u < 16; u++) { 551: spcUnitArray[u].scuReset (u < 8 ? spcSCSIEXOn ? spcSCSIEXChip : spcSCSIINOn ? spcSCSIINChip : null : 552: spcSCSIEXOn && spcSCSIINOn ? spcSCSIINChip : null); 553: } 554: if (spcSCSIEXOn) { 555: MainMemory.mmrWb (0x00ed0070, MainMemory.mmrRbs (0x00ed0070) | 0x08); //拡張フラグをセットする 556: } else { 557: MainMemory.mmrWb (0x00ed0070, MainMemory.mmrRbs (0x00ed0070) & ~0x08); //拡張フラグをクリアする 558: } 559: } //spcReset() 560: 561: //spcTini () 562: // 後始末 563: public static void spcTini () { 564: spcSCSIEXChip.spiTini (); 565: spcSCSIINChip.spiTini (); 566: 567: //インタフェイスの有無 568: Settings.sgsPutOnOff ("scsiex", spcSCSIEXRequest); 569: 570: //開くダイアログ 571: // 開くダイアログを作らなかったときはパラメータを更新しない 572: if (spcOpenDialog != null) { 573: Settings.sgsPutOnOff ("screadonly", spcOpenDialog.getReadOnly ()); 574: Settings.sgsPutOnOff ("scappreboot", spcOpenDialog.getReboot ()); 575: ArrayList<String> pathsList = spcOpenDialog.getHistory (); 576: int n = pathsList.size (); 577: for (int i = 0; i < n; i++) { 578: Settings.sgsPutString ("schistory" + i, pathsList.get (i)); 579: } 580: for (int i = n; i < 16; i++) { 581: Settings.sgsPutString ("schistory" + i, ""); 582: } 583: } 584: 585: //ユニット 586: for (int u = 0; u < 16; u++) { 587: AbstractUnit unit = spcUnitArray[u]; 588: Settings.sgsPutString ( 589: "sc" + u, 590: unit.abuConnected && unit.abuInserted ? 591: unit.abuWriteProtected ? unit.abuPath + ":R" : unit.abuPath : 592: ""); 593: } 594: 595: } //spcTini() 596: 597: public static void spcMakeMenu () { 598: 599: //アクションリスナー 600: ActionListener listener = new ActionListener () { 601: @Override public void actionPerformed (ActionEvent ae) { 602: Object source = ae.getSource (); 603: String command = ae.getActionCommand (); 604: switch (command) { 605: case "Expansion SCSI port": //拡張 SCSI ポート 606: spcSCSIEXRequest = ((JCheckBoxMenuItem) source).isSelected (); 607: break; 608: case "Create new SCSI hard disk image files": //SCSI ハードディスクのイメージファイルの新規作成 609: spcOpenFormatDialog (); 610: break; 611: } 612: } 613: }; 614: 615: //SCSIメニュー 616: spcMenu = ComponentFactory.createMenu ("SCSI"); //横に長いとサブメニューを開きにくいので短くする 617: ComponentFactory.addComponents ( 618: spcMenu, 619: ComponentFactory.createHorizontalBox ( 620: Multilingual.mlnText ( 621: ComponentFactory.createLabel ("SCSI hard disk and CD-ROM"), 622: "ja", "SCSI ハードディスクと CD-ROM")), 623: ComponentFactory.createHorizontalSeparator () 624: ); 625: for (int u = 0; u < 16; u++) { 626: spcMenu.add (spcUnitArray[u].getMenuBox ()); 627: } 628: ComponentFactory.addComponents ( 629: spcMenu, 630: ComponentFactory.createHorizontalSeparator (), 631: spcSCSIINMenuItem = ComponentFactory.setEnabled ( 632: Multilingual.mlnText ( 633: ComponentFactory.createCheckBoxMenuItem (XEiJ.currentModel.isSCSI (), "Built-in SCSI port", listener), "ja", "内蔵 SCSI ポート"), 634: false), //機種の指定で内蔵SASIと内蔵SCSIを切り替えるので操作できないことにする 635: spcSCSIEXMenuItem = Multilingual.mlnText ( 636: ComponentFactory.createCheckBoxMenuItem (spcSCSIEXRequest, "Expansion SCSI port", listener), 637: "ja", "拡張 SCSI ポート"), 638: ComponentFactory.createHorizontalSeparator (), 639: Multilingual.mlnText (ComponentFactory.createMenuItem ("Create new SCSI hard disk image files", listener), 640: "ja", "SCSI ハードディスクのイメージファイルの新規作成") 641: ); 642: 643: } 644: 645: //inserted = spcIsInserted (path) 646: // パスで指定したファイルが既に挿入されているか調べる 647: public static boolean spcIsInserted (String path) { 648: for (SCUnit unit : spcUnitArray) { 649: if (unit != null && 650: unit.abuConnected && //接続されている 651: unit.abuInserted && //挿入されている 652: unit.abuPath.equals (path)) { //パスが一致している 653: return true; //既に挿入されている 654: } 655: } 656: return false; //まだ挿入されていない 657: } //spcIsInserted(String) 658: 659: static class OpenDialog extends AbstractOpenDialog { 660: public OpenDialog () { 661: super (XEiJ.frmFrame, 662: "Open SCSI hard disk or CD-ROM image files", 663: "SCSI ハードディスクまたは CD-ROM のイメージファイルを開く", 664: false, //ファイル 665: spcFileFilter); 666: } 667: @Override public void openFiles (File[] files, boolean reboot) { 668: spcOpenFiles (files, reboot); 669: } 670: } //class OpenDialog 671: 672: //spcOpenFiles (list, reset) 673: // 開くダイアログで選択されたファイルを開く 674: public static void spcOpenFiles (File[] list, boolean reset) { 675: boolean success = true; 676: for (int u = spcOpenUnit, k = 0; k < list.length; ) { 677: if (16 <= u) { //ユニットが足りない 678: success = false; //失敗 679: break; 680: } 681: SCUnit unit = spcUnitArray[u]; //ユニット 682: if (!unit.abuConnected) { //接続されていない 683: u++; 684: continue; 685: } 686: File file = list[k++]; //イメージファイル 687: if (!file.isFile ()) { //イメージファイルが存在しない 688: success = false; //失敗 689: continue; 690: } 691: if (!unit.insert (file.getPath (), 692: spcOpenDialog.getReadOnly () || !file.canWrite ())) { //挿入できない 693: success = false; //失敗 694: continue; 695: } 696: u++; 697: } 698: if (success) { //すべて挿入できた 699: spcAddHistory (list); //ヒストリに追加する 700: if (reset) { //ここから再起動 701: if (spcOpenUnit < 8) { 702: XEiJ.mpuReset (0xa000, SPC_HANDLE_EX + (spcOpenUnit << 2)); //拡張SCSIがなければ内蔵SCSIに読み替えられる 703: } 704: } 705: } 706: } //spcOpenFiles(File[],boolean) 707: 708: //spcMakeFormatDialog () 709: // フォーマットダイアログを作る 710: // コマンドラインのみ 711: public static void spcMakeFormatDialog () { 712: 713: //アクションリスナー 714: ActionListener listener = new ActionListener () { 715: @Override public void actionPerformed (ActionEvent ae) { 716: switch (ae.getActionCommand ()) { 717: case JFileChooser.APPROVE_SELECTION: 718: case "Start formatting": //フォーマットを開始する 719: { 720: File[] list = spcFormatFileChooser.getSelectedFiles (); 721: if (list.length > 0) { 722: spcFormatDialog.setVisible (false); 723: spcFormatFiles (list); 724: } 725: } 726: break; 727: case JFileChooser.CANCEL_SELECTION: 728: case "Cancel": //キャンセル 729: spcFormatDialog.setVisible (false); 730: break; 731: case "256 bytes": //256 バイト 732: spcFormatBytesPerRecord = 256; 733: break; 734: case "512 bytes": //512 バイト 735: spcFormatBytesPerRecord = 512; 736: break; 737: case "Partitioning": 738: spcFormatPartitioningOn = spcFormatPartitioningCheckBox.isSelected (); //領域確保 739: if (spcFormatPartitioningOn) { //領域確保する 740: spcFormatCopyHumanSysCheckBox.setEnabled (true); //HUMAN.SYSを書き込むかどうか選択できる 741: spcFormatCopyHumanSysCheckBox.setSelected (spcFormatCopyHumanSysOn); //HUMAN.SYSを書き込む/書き込まない 742: } else { //領域確保しない 743: spcFormatCopyHumanSysCheckBox.setEnabled (false); //HUMAN.SYSを書き込むかどうか選択できない 744: spcFormatCopyHumanSysCheckBox.setSelected (false); //HUMAN.SYSを書き込まない 745: } 746: if (spcFormatPartitioningOn && spcFormatCopyHumanSysOn) { //領域確保してHUMAN.SYSを書き込む 747: spcFormatCopyCommandXCheckBox.setEnabled (true); //COMMAND.Xを書き込むかどうか選択できる 748: spcFormatCopyCommandXCheckBox.setSelected (spcFormatCopyCommandXOn); //COMMAND.Xを書き込む/書き込まない 749: } else { //領域確保しないかHUMAN.SYSを書き込まない 750: spcFormatCopyCommandXCheckBox.setEnabled (false); //COMMAND.Xを書き込むかどうか選択できない 751: spcFormatCopyCommandXCheckBox.setSelected (false); //COMMAND.Xを書き込まない 752: } 753: break; 754: //case "Copy System Files": //システムファイルを転送する 755: // spcFormatCopySystemFiles = ((JCheckBox) ae.getSource ()).isSelected (); 756: // break; 757: case "HUMAN.SYS": 758: spcFormatCopyHumanSysOn = spcFormatCopyHumanSysCheckBox.isSelected (); //HUMAN.SYSを書き込む/書き込まない 759: if (spcFormatCopyHumanSysOn) { //HUMAN.SYSを書き込む 760: spcFormatCopyCommandXCheckBox.setEnabled (true); //COMMAND.Xを書き込むかどうか選択できる 761: spcFormatCopyCommandXCheckBox.setSelected (spcFormatCopyCommandXOn); //COMMAND.Xを書き込む/書き込まない 762: } else { //HUMAN.SYSを書き込まない 763: spcFormatCopyCommandXCheckBox.setEnabled (false); //COMMAND.Xを書き込むかどうか選択できない 764: spcFormatCopyCommandXCheckBox.setSelected (false); //COMMAND.Xを書き込まない 765: } 766: break; 767: case "COMMAND.X": 768: spcFormatCopyCommandXOn = spcFormatCopyCommandXCheckBox.isSelected (); //COMMAND.Xを書き込む/書き込まない 769: break; 770: } 771: } 772: }; 773: 774: //ファイルチューザー 775: spcMakeFormatFileChooser (); 776: spcFormatFileChooser.setFileFilter (spcFormatFilter); 777: spcFormatFileChooser.addActionListener (listener); 778: 779: //ダイアログ 780: spcFormatModel = new SpinnerNumberModel (spcFormatPartitionMegaBytes, 1, 2047, 1); 781: ButtonGroup sectorGroup = new ButtonGroup (); 782: spcFormatDialog = Multilingual.mlnTitle ( 783: ComponentFactory.createModalDialog ( 784: XEiJ.frmFrame, 785: "Create new SCSI hard disk image files", 786: ComponentFactory.createBorderPanel ( 787: 0, 0, 788: ComponentFactory.createVerticalBox ( 789: spcFormatFileChooser, 790: ComponentFactory.createHorizontalBox ( 791: Box.createHorizontalStrut (12), 792: Box.createHorizontalGlue (), 793: Multilingual.mlnText (ComponentFactory.createLabel ("Capacity (MB): "), "ja", "容量 (MB): "), 794: ComponentFactory.createNumberSpinner (spcFormatModel, 4, new ChangeListener () { 795: @Override public void stateChanged (ChangeEvent ce) { 796: spcFormatPartitionMegaBytes = spcFormatModel.getNumber ().intValue (); 797: } 798: }), 799: Box.createHorizontalGlue (), 800: Multilingual.mlnText (ComponentFactory.createLabel ("Sector size: "), "ja", "セクタサイズ: "), 801: Multilingual.mlnText (ComponentFactory.createRadioButtonMenuItem (sectorGroup, spcFormatBytesPerRecord == 256, "256 bytes", listener), "ja", "256 バイト"), 802: Multilingual.mlnText (ComponentFactory.createRadioButtonMenuItem (sectorGroup, spcFormatBytesPerRecord == 512, "512 bytes", listener), "ja", "512 バイト"), 803: Box.createHorizontalStrut (12), 804: Multilingual.mlnText (spcFormatPartitioningCheckBox = ComponentFactory.createCheckBox (spcFormatPartitioningOn, "Partitioning", listener), "ja", "領域確保"), 805: Box.createHorizontalGlue (), 806: Box.createHorizontalStrut (12) 807: ), 808: Box.createVerticalStrut (12), 809: ComponentFactory.createHorizontalBox ( 810: Box.createHorizontalStrut (12), 811: Box.createHorizontalGlue (), 812: //Multilingual.mlnText (ComponentFactory.createCheckBox (spcFormatCopySystemFiles, "Copy System Files", listener), "ja", "システムファイルを転送する"), 813: spcFormatCopyHumanSysCheckBox = ComponentFactory.setEnabled ( 814: ComponentFactory.createCheckBox (spcFormatCopyHumanSysOn, "HUMAN.SYS", listener), 815: spcFormatPartitioningOn), 816: Box.createHorizontalStrut (12), 817: spcFormatCopyCommandXCheckBox = ComponentFactory.setEnabled ( 818: ComponentFactory.createCheckBox (spcFormatCopyHumanSysOn && spcFormatCopyCommandXOn, "COMMAND.X", listener), 819: spcFormatPartitioningOn && spcFormatCopyHumanSysOn), 820: Box.createHorizontalGlue (), 821: Box.createHorizontalStrut (12), 822: Multilingual.mlnText (ComponentFactory.createButton ("Start formatting", KeyEvent.VK_F, listener), "ja", "フォーマットを開始する"), 823: Box.createHorizontalStrut (12), 824: Multilingual.mlnText (ComponentFactory.createButton ("Cancel", KeyEvent.VK_C, listener), "ja", "キャンセル"), 825: Box.createHorizontalStrut (12) 826: ), 827: Box.createVerticalStrut (12) 828: ) 829: ) 830: ), 831: "ja", "SCSI ハードディスクのイメージファイルの新規作成"); 832: 833: } //spcMakeFormatDialog() 834: 835: //spcMakeFormatFileChooser () 836: // フォーマットファイルチューザーを作る 837: public static void spcMakeFormatFileChooser () { 838: if (spcFormatFileChooser == null) { 839: spcFormatFileChooser = new JFileChooser2 (); 840: //spcFormatFileChooser.setMultiSelectionEnabled (true); //複数選択可能 841: spcFormatFileChooser.setControlButtonsAreShown (false); //デフォルトのボタンを消す 842: } 843: } 844: 845: //spcOpenFormatDialog () 846: // フォーマットダイアログを開く 847: public static void spcOpenFormatDialog () { 848: if (spcFormatDialog == null) { 849: spcMakeFormatDialog (); 850: } 851: spcFormatDialog.setVisible (true); 852: } //spcOpenFormatDialog() 853: 854: //success = spcFormatFiles (list) 855: // SCSIハードディスクのイメージファイルを作成する 856: // コマンドラインのみ 857: // spcFormatPartitionMegaBytes 858: // spcFormatBytesPerRecord 859: // //spcFormatCopySystemFiles 860: // spcFormatPartitioningOn 861: // spcFormatCopyHumanSysOn 862: // spcFormatCopyCommandXOn 863: // を設定しておくこと 864: public static boolean spcFormatFiles (File[] list) { 865: boolean success = true; 866: format: 867: { 868: SCMedia media = new SCMedia (spcFormatBytesPerRecord, //bytesPerRecord 869: (int) ((32768L + ((long) spcFormatPartitionMegaBytes << 20)) / spcFormatBytesPerRecord)); //diskEndRecord 870: //データの配列を作る 871: // セクタ0から先頭のパーティションのシステムファイルまでがすべて収まっている 872: // パーティションの手前に32KB、IPLが1KB、FATが最大で128KB、ルートディレクトリが16KB、HUMAN.SYSが58KB、COMMAND.Xが28KB 873: byte[] array = new byte[1024 * 512]; //データの配列。512KB 874: media.scmMakeFormatData (array, spcFormatPartitioningOn, spcFormatCopyHumanSysOn, spcFormatCopyCommandXOn); 875: //イメージファイルを作る 876: int u = 0; 877: for (File file : list) { 878: String path = file.getPath (); 879: if (!path.toUpperCase ().endsWith (".HDS")) { //適切な拡張子が指定されていない 880: path += path.endsWith (".") ? "HDS" : ".HDS"; //拡張子を付ける 881: file = new File (path); 882: } 883: if (spcIsInserted (path)) { //他のユニットに挿入されている 884: success = false; //失敗 885: break format; 886: } 887: //書き出す 888: if (!XEiJ.rscPutFile (path, array, 0, array.length, (int) media.humDiskEndByte)) { //書き出せない 889: success = false; //失敗 890: break format; 891: } 892: //空いているユニットがあれば挿入する 893: while (u < 16) { 894: SCUnit unit = spcUnitArray[u++]; //ユニット 895: if (unit.abuConnected && //接続されていて 896: !unit.abuInserted && //空いていて 897: unit.insert (path, 898: false)) { //挿入できた 899: //フォーマットしたディスクの書き込みを禁止しても意味がないのでここでは書き込みを禁止しない 900: break; 901: } 902: } 903: } 904: } //format 905: if (success) { //すべてフォーマットできた 906: spcAddHistory (list); //ヒストリに追加する 907: } 908: return success; 909: } //spcFormatFiles(File[]) 910: 911: //spcSetFat (bb, fatOffset, fat12, cluster, next) 912: // FATに書く 913: public static void spcSetFat (byte[] bb, int fatOffset, boolean fat12, int cluster, int next) { 914: if (fat12) { 915: int i = fatOffset + 3 * (cluster >> 1); 916: if ((cluster & 1) == 0) { //偶数クラスタ(HML→ML.H..) 917: bb[i ] = (byte) next; //ML。next&0x0ff 918: bb[i + 1] = (byte) (bb[i + 1] & 0xf0 | next >> 8 & 15); //.H。(next&0xf00)>>8 919: } else { //奇数クラスタ(hml→..l.hm) 920: bb[i + 1] = (byte) (next << 4 | bb[i + 1] & 15); //l.。(next&0x00f)<<4 921: bb[i + 2] = (byte) (next >> 4); //hm。(next&0xff0)>>4 922: } 923: } else { 924: int i = fatOffset + (cluster << 1); 925: bb[i ] = (byte) (next >> 8); 926: bb[i + 1] = (byte) next; 927: } 928: } //spcSetFat(byte[],int,boolean,int,int) 929: 930: 931: //spcAddHistory (file) 932: // ファイルをヒストリに追加する 933: public static void spcAddHistory (File file) { 934: spcAddHistory (new File[] { file }); 935: } 936: 937: //spcAddHistory (files) 938: // 複数のファイルをヒストリに追加する 939: public static void spcAddHistory (File[] files) { 940: if (spcOpenDialog == null) { 941: spcOpenHistory.add (files); 942: } else { 943: spcOpenDialog.addHistory (files); 944: } 945: spcMakeFormatFileChooser (); 946: spcFormatFileChooser.addHistory (files); 947: spcFormatFileChooser.selectLastFiles (); 948: } 949: 950: 951: //success = spcIsHds (file, formatted) 952: // ファイルはHDSか 953: // formatted true=拡張子がHDSでファイルが存在して装置初期化されていなければならない 954: // false=拡張子がHDSならばファイルが存在しなくてもよい 955: public static boolean spcIsHds (File file, boolean formatted) { 956: //拡張子がHDSか 957: String upperName = file.getName ().toUpperCase (); 958: if (!(upperName.endsWith (".HDS") || 959: upperName.endsWith (".DIM.001"))) { 960: return false; 961: } 962: //ファイルが存在するか 963: if (!formatted) { 964: return true; 965: } 966: if (!file.isFile ()) { 967: return false; 968: } 969: //ファイルサイズが64KB以上かつ256で割り切れるか 970: long longLength = file.length (); //ファイルサイズ 971: if (longLength < (long) (1024 * 64) || 972: (longLength & 255) != 0) { 973: return false; 974: } 975: //先頭512バイトを読み込む 976: byte[] bb = new byte[512]; 977: try (BufferedInputStream bis = new BufferedInputStream (new FileInputStream (file))) { 978: if (bis.read (bb, 0, 512) != 512) { 979: return false; 980: } 981: } catch (IOException ioe) { 982: return false; 983: } 984: //装置初期化されているか 985: // 0000 q X68SCSI1マジック 986: // 0008 w 1レコードあたりのバイト数(2の累乗) 987: // 000a l ディスクのレコード数 988: // 000e b Read(10),Write(10)が動作するか 989: // 000f b デバイスタイプ 990: if (ByteArray.byaRls (bb, 0) == ('X' << 24 | '6' << 16 | '8' << 8 | 'S') && 991: ByteArray.byaRls (bb, 4) == ('C' << 24 | 'S' << 16 | 'I' << 8 | '1')) { 992: //SxSIか 993: boolean sxsi = ByteArray.byaRls (bb, 42) == ('S' << 24 | 'x' << 16 | 'S' << 8 | 'I'); 994: //1レコードあたりのバイト数 995: int bytesPerRecord = ByteArray.byaRwz (bb, 8); 996: //1レコードあたりのバイト数が256または512か 997: if (bytesPerRecord != 256 && 998: bytesPerRecord != 512) { 999: return false; 1000: } 1001: //ディスクのレコード数 1002: long diskEndRecord = (long) ByteArray.byaRls (bb, 10) & 0xffffffffL; 1003: //SxSIは1レコードあたりのバイト数が512だがディスクのレコード数は1024で計算されている 1004: if (sxsi) { 1005: diskEndRecord <<= 1; 1006: } 1007: //ディスクのバイト数 1008: long diskEndByte = (long) bytesPerRecord * diskEndRecord; 1009: //ディスクのバイト数とファイルサイズが一致しているか 1010: // FORMAT.XはRead Capacityが返す最終論理ブロックアドレスを論理ブロック数と誤解して1ブロック少ない容量で装置初期化を行う 1011: return (longLength == diskEndByte || 1012: longLength == diskEndByte + (long) bytesPerRecord || 1013: longLength == diskEndByte + (long) (bytesPerRecord << 1)); 1014: } 1015: //IBMスーパーフロッピーか 1016: // 0000 b 0xeb 1017: // 01fe b 0x55 1018: // 01ff b 0xaa 1019: if (bb[0x0000] == (byte) 0xeb && 1020: bb[0x01fe] == (byte) 0x55 && 1021: bb[0x01ff] == (byte) 0xaa) { //IBMスーパーフロッピー 1022: return true; 1023: } 1024: return false; 1025: } //spcIsHds(File,boolean) 1026: 1027: //spcIsIso (file) 1028: // ファイルはISOか 1029: // 参考 1030: // http://euc.jp/periphs/iso9660.ja.html 1031: public static boolean spcIsIso (File file) { 1032: String upperName = file.getName ().toUpperCase (); 1033: if (upperName.endsWith (".ISO")) { //拡張子がISO 1034: if (file.isFile ()) { //ファイルが存在する 1035: long longLength = file.length (); //ファイルサイズ 1036: if (((int) longLength & 2047) == 0 && //ファイルサイズが2048で割り切れる 1037: (long) (2048 * 18) <= longLength) { //ファイルサイズが18セクタ以上 1038: try (DataInputStream dis = new DataInputStream (new BufferedInputStream (new FileInputStream (file)))) { 1039: dis.skipBytes (2048 * 16); //セクタ16まで読み飛ばす 1040: long id = dis.readLong (); //0 ボリューム記述子種別と規格識別子とボリューム記述子版数とボリュームフラグ 1041: dis.skipBytes (84 - 8); 1042: int diskEndRecord = dis.readInt (); //84 ボリュームのブロック数 1043: dis.skipBytes (130 - 88); 1044: int bytesPerRecord = (int) dis.readChar (); //130 ブロックのバイト数 1045: long diskEndByte = (long) bytesPerRecord * (long) diskEndRecord; //ボリュームのバイト数 1046: if (id >>> 8 == ((long) 0x01 << 48 | 1047: (long) 'C' << 40 | (long) 'D' << 32 | (long) '0' << 24 | (long) '0' << 16 | (long) '1' << 8 | 1048: (long) 0x01) && //ボリューム記述子種別と規格識別子とボリューム記述子版数が一致 1049: bytesPerRecord == 2048 && //ブロックのバイト数が2048 1050: 0 <= diskEndRecord && //ボリュームのブロック数が31bitに収まっている 1051: diskEndByte <= longLength) { //ボリュームのバイト数がファイルサイズ以下。一致しているとは限らない 1052: return true; 1053: } 1054: } catch (IOException ioe) { 1055: } 1056: } //if ファイルサイズ 1057: } //if ファイルが存在する 1058: } //if 拡張子がISO 1059: return false; 1060: } //spcIsIso(File) 1061: 1062: 1063: 1064: //======================================================================================== 1065: //SCSIフォーマットデータ 1066: // 無償公開されたHuman68k version 3.02のシステムディスクに入っているFORMAT.Xから抽出したデータを使う 1067: 1068: //---------------------------------------------------------------------------------------- 1069: //SCSIディスクID 1070: // SCSIディスクのセクタ0に書き込まれる 1071: /* 1072: public static final int[] SPC_DISK_ID_1 = { 1073: // perl -e "do'sjdump.pl';$p=0;$m=2;$o=0x3ce4;$l=8;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)" 1074: 0x58,0x36,0x38,0x53,0x43,0x53,0x49,0x31, //00000000 X68SCSI1 1075: }; 1076: */ 1077: // perl misc/itob.pl xeij/SPC.java SPC_DISK_ID_1 1078: public static final byte[] SPC_DISK_ID_1 = "X68SCSI1".getBytes (XEiJ.ISO_8859_1); 1079: /* 1080: public static final int[] SPC_DISK_ID_2 = { 1081: // perl -e "do'sjdump.pl';$p=0x10;$m=2;$o=0x669d;$l=35;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)" 1082: 0x48,0x75,0x6d,0x61,0x6e,0x36,0x38,0x4b,0x20,0x53,0x43,0x53,0x49,0x2d,0x44,0x49, //00000010 Human68K SCSI-DI 1083: 0x53,0x4b,0x20,0x62,0x79,0x20,0x4b,0x65,0x69,0x73,0x6f,0x6b,0x75,0x20,0x47,0x69, //00000020 SK by Keisoku Gi 1084: 0x6b,0x65,0x6e, //00000030 ken 1085: }; 1086: */ 1087: // perl misc/itob.pl xeij/SPC.java SPC_DISK_ID_2 1088: public static final byte[] SPC_DISK_ID_2 = "Human68K SCSI-DISK by Keisoku Giken".getBytes (XEiJ.ISO_8859_1); 1089: 1090: //---------------------------------------------------------------------------------------- 1091: //SCSIディスクIPL 1092: // SCSIディスクのセクタ1に書き込まれる 1093: // HELPキーが押されていたらメニューを表示する 1094: // 選択されたパーティションのパーティションIPLを読み込んで起動する 1095: /* 1096: public static final int[] SPC_DISK_IPL = { 1097: // perl -e "do'sjdump.pl';$p=0x400;$m=2;$o=0x77da;$l=0x7bc2-$o;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)" 1098: 0x60,0x00,0x00,0xca,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00000400 `..ハ............ 1099: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00000410 ................ 1100: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00000420 ................ 1101: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00000430 ................ 1102: 0x1a,0x1b,0x5b,0x36,0x3b,0x33,0x32,0x48,0x58,0x36,0x38,0x30,0x30,0x30,0x20,0x53, //00000440 ..[6;32HX68000 S 1103: 0x43,0x53,0x49,0x20,0x44,0x49,0x53,0x4b,0x20,0x49,0x50,0x4c,0x20,0x4d,0x45,0x4e, //00000450 CSI DISK IPL MEN 1104: 0x55,0x1b,0x5b,0x32,0x35,0x3b,0x32,0x32,0x48,0x83,0x4a,0x81,0x5b,0x83,0x5c,0x83, //00000460 U.[25;22Hカーソル 1105: 0x8b,0x83,0x4c,0x81,0x5b,0x82,0xc5,0x91,0x49,0x91,0xf0,0x82,0xb5,0x82,0xc4,0x83, //00000470 キーで選択してリ 1106: 0x8a,0x83,0x5e,0x81,0x5b,0x83,0x93,0x83,0x4c,0x81,0x5b,0x82,0xf0,0x89,0x9f,0x82, //00000480 ターンキーを押し 1107: 0xb5,0x82,0xc4,0x82,0xad,0x82,0xbe,0x82,0xb3,0x82,0xa2,0x00,0x1b,0x5b,0x32,0x36, //00000490 てください..[26 1108: 0x3b,0x32,0x38,0x48,0x91,0x49,0x91,0xf0,0x82,0xb5,0x82,0xbd,0x82,0xe0,0x82,0xcc, //000004a0 ;28H選択したもの 1109: 0x82,0xf0,0x8e,0xa9,0x93,0xae,0x8b,0x4e,0x93,0xae,0x82,0xc6,0x82,0xb5,0x82,0xc4, //000004b0 を自動起動として 1110: 0x93,0x6f,0x98,0x5e,0x82,0xb5,0x82,0xdc,0x82,0xb7,0x00,0x00,0x72,0x00,0x70,0x04, //000004c0 登録します..r.p. 1111: 0x4e,0x4f,0x08,0x00,0x00,0x01,0x67,0x02,0x4e,0x75,0x4f,0xfa,0xff,0x24,0x42,0x85, //000004d0 NO....g.NuO..$B. 1112: 0x70,0xf5,0x72,0x25,0x43,0xfa,0x03,0x02,0x4e,0x4f,0x4a,0x00,0x66,0x00,0x01,0x92, //000004e0 p.r%C...NOJ.f... 1113: 0x22,0x29,0x00,0x04,0xe0,0x89,0xe2,0x89,0x43,0xfa,0x02,0xea,0x22,0x81,0x74,0x02, //000004f0 ")..煢竕C..."》. 1114: 0x26,0x3c,0x00,0x00,0x04,0x00,0x43,0xfa,0x02,0xe0,0x61,0x00,0x02,0x3a,0x4a,0x00, //00000500 &<....C..濛..:J. 1115: 0x66,0x00,0x01,0x6e,0x43,0xfa,0x02,0xd2,0x47,0xfa,0xfe,0xea,0x0c,0x91,0x58,0x36, //00000510 f..nC..メG....噌6 1116: 0x38,0x4b,0x66,0x00,0x01,0x70,0x74,0x0e,0x42,0x43,0x42,0x47,0x42,0x86,0x43,0xe9, //00000520 8Kf..pt.BCBGB.C. 1117: 0x00,0x10,0x4a,0x11,0x67,0x16,0x52,0x46,0x26,0xc9,0x10,0x29,0x00,0x08,0x08,0x00, //00000530 ..J.g.RF&ノ.).... 1118: 0x00,0x00,0x66,0x08,0x52,0x43,0x4a,0x00,0x66,0x02,0x52,0x47,0x51,0xca,0xff,0xe0, //00000540 ..f.RCJ.f.RGQハ.濳 1119: 0x4a,0x43,0x67,0x00,0x01,0x46,0x72,0x0a,0x70,0x04,0x4e,0x4f,0x08,0x00,0x00,0x04, //00000550 Cg..Fr.p.NO.... 1120: 0x66,0x12,0x4a,0x47,0x67,0x0e,0x53,0x47,0x67,0x1c,0x43,0xfa,0xfe,0xd4,0x61,0x00, //00000560 f.JGg.SGg.C..ヤa. 1121: 0x01,0xc8,0x60,0x28,0x43,0xfa,0xfe,0xca,0x61,0x00,0x01,0xbe,0x43,0xfa,0xff,0x1e, //00000570 .ネ`(C..ハa..セC... 1122: 0x61,0x00,0x01,0xb6,0x60,0x14,0x47,0xfa,0xfe,0x7c,0x20,0x5b,0x24,0x28,0x00,0x08, //00000580 a..カ`.G..| [$(.. 1123: 0x4a,0x28,0x00,0x08,0x66,0xf4,0x60,0x00,0x00,0xc2,0x7a,0x02,0x42,0x43,0x45,0xfa, //00000590 J(..f.`..ツz.BCE. 1124: 0xfe,0x64,0x22,0x52,0x10,0x29,0x00,0x08,0x67,0x0a,0xb0,0x05,0x67,0x06,0x72,0x02, //000005a0 .d"R.)..g.ー.g.r. 1125: 0x61,0x00,0x01,0x7a,0x61,0x00,0x01,0x1a,0x58,0x8a,0x52,0x43,0xb6,0x46,0x65,0xe2, //000005b0 a..za...X崖CカFe秡 1126: 0x60,0x2a,0x61,0x00,0x01,0x0a,0x61,0x00,0x00,0xf6,0xb0,0x3c,0x00,0x1d,0x67,0x3a, //000005c0 *a...a...ー<..g: 1127: 0xb0,0x3c,0x00,0x35,0x67,0x0c,0xb0,0x3c,0x00,0x3c,0x67,0x1a,0xb0,0x3c,0x00,0x3e, //000005d0 ー<.5g.ー<.<g.ー<.> 1128: 0x66,0xe4,0x61,0x00,0x00,0xec,0x52,0x43,0xb6,0x46,0x65,0x02,0x42,0x43,0x61,0x00, //000005e0 f臑...RCカFe.BCa. 1129: 0x00,0xb6,0x66,0xf2,0x60,0xcc,0x61,0x00,0x00,0xd8,0x53,0x43,0x6a,0x04,0x36,0x06, //000005f0 .カf.`フa..リSCj.6. 1130: 0x53,0x43,0x61,0x00,0x00,0xa2,0x66,0xf2,0x60,0xb8,0x47,0xfa,0xfd,0xf8,0xe5,0x43, //00000600 SCa..「f.`クG...蕕 1131: 0x20,0x73,0x30,0x00,0x24,0x28,0x00,0x08,0x4a,0x05,0x67,0x3e,0x43,0xfa,0x01,0xd2, //00000610 s0.$(..J.g>C..メ 1132: 0x72,0x0e,0x43,0xe9,0x00,0x10,0x4a,0x29,0xff,0xf8,0x67,0x12,0x20,0x11,0x08,0x00, //00000620 r.C...J)..g. ... 1133: 0x00,0x18,0x66,0x0a,0x42,0x11,0xb4,0x80,0x67,0x04,0x12,0xbc,0x00,0x02,0x51,0xc9, //00000630 ..f.B.エ.g..シ..Qノ 1134: 0xff,0xe2,0x2f,0x02,0x74,0x02,0x26,0x3c,0x00,0x00,0x04,0x00,0x43,0xfa,0x01,0x9a, //00000640 ../.t.&<....C..啾 1135: 0x61,0x00,0x00,0xec,0x24,0x1f,0x4a,0x00,0x66,0x26,0xc4,0xbc,0x00,0xff,0xff,0xff, //00000650 ...$.J.f&トシ.... 1136: 0x26,0x3c,0x00,0x00,0x04,0x00,0x43,0xfa,0xfd,0x98,0xd3,0xfc,0x00,0x00,0x04,0x00, //00000660 &<....C..侖..... 1137: 0x61,0x00,0x00,0xd4,0x4a,0x00,0x66,0x08,0x0c,0x11,0x00,0x60,0x66,0x22,0x4e,0xd1, //00000670 a..ヤJ.f....`f"Nム 1138: 0x45,0xfa,0x00,0xea,0x43,0xfa,0x00,0xdc,0x61,0x00,0x00,0xae,0x22,0x4a,0x61,0x00, //00000680 E..鵑..ワa..ョ"Ja. 1139: 0x00,0xa8,0x60,0xfe,0x45,0xfa,0x00,0xf5,0x60,0xea,0x45,0xfa,0x01,0x0c,0x60,0xe4, //00000690 .ィ`.E...`鵙...`胼 1140: 0x45,0xfa,0x01,0x23,0x60,0xde,0x41,0xfa,0xfd,0x5c,0x20,0x03,0xe5,0x40,0x20,0x70, //000006a0 ..#`゙A..\ .蕁 p 1141: 0x00,0x00,0x10,0x28,0x00,0x08,0xb0,0x05,0x67,0x02,0x4a,0x00,0x4e,0x75,0x42,0x80, //000006b0 ...(..ー.g.J.NuB. 1142: 0x4e,0x4f,0xe0,0x48,0xb0,0x3c,0x00,0x4e,0x66,0x02,0x70,0x1d,0x4e,0x75,0x61,0x5a, //000006c0 NO潯ー<.Nf.p.NuaZ 1143: 0x43,0xfa,0xfd,0x32,0x30,0x03,0xe5,0x40,0x43,0xf1,0x00,0x00,0x22,0x51,0x72,0x24, //000006d0 C..20.蕁C..."Qr$ 1144: 0x74,0x09,0xd4,0x43,0x70,0x23,0x4e,0x4f,0x72,0x28,0x61,0x46,0x24,0x09,0x41,0xfa, //000006e0 t.ヤCp#NOr(aF$.A. 1145: 0x00,0xf8,0x94,0x88,0xe8,0x8a,0x84,0xfc,0x00,0x0a,0xd4,0xbc,0x00,0x30,0x00,0x30, //000006f0 ..蝿闃....ヤシ.0.0 1146: 0x72,0x20,0xb4,0x7c,0x00,0x30,0x67,0x02,0x32,0x02,0x61,0x26,0x48,0x42,0x32,0x02, //00000700 r エ|.0g.2.a&HB2. 1147: 0x61,0x20,0x72,0x29,0x61,0x1c,0x72,0x20,0x61,0x18,0x74,0x07,0x42,0x41,0x12,0x19, //00000710 a r)a.r a.t.BA.. 1148: 0x61,0x10,0x51,0xca,0xff,0xf8,0x72,0x03,0x60,0x02,0x72,0x0b,0x70,0x22,0x4e,0x4f, //00000720 a.Qハ..r.`.r.p"NO 1149: 0x4e,0x75,0x70,0x20,0x4e,0x4f,0x4e,0x75,0x70,0x21,0x4e,0x4f,0x4e,0x75,0x48,0xe7, //00000730 Nup NONup!NONuH轎 1150: 0x7c,0x00,0x72,0x22,0x60,0x06,0x48,0xe7,0x7c,0x00,0x72,0x21,0x2a,0x3a,0x00,0x96, //00000740 .r"`.H轎.r!*:.籾 1151: 0xe0,0x8b,0xea,0xab,0xe5,0x8a,0xea,0xaa,0x70,0xf5,0x4e,0x4f,0x4c,0xdf,0x00,0x3e, //00000750 苦ォ蜉.ェp.NOL゚.> 1152: 0x4e,0x75,0x1a,0x1b,0x5b,0x31,0x36,0x3b,0x33,0x33,0x48,0x00,0x20,0x20,0x82,0x72, //00000760 Nu..[16;33H. S 1153: 0x82,0x62,0x82,0x72,0x82,0x68,0x83,0x66,0x83,0x42,0x83,0x58,0x83,0x4e,0x82,0xaa, //00000770 CSIディスクが 1154: 0x93,0xc7,0x82,0xdf,0x82,0xdc,0x82,0xb9,0x82,0xf1,0x00,0x20,0x20,0x8a,0xc7,0x97, //00000780 読めません. 管理 1155: 0x9d,0x83,0x75,0x83,0x8d,0x83,0x62,0x83,0x4e,0x82,0xaa,0x89,0xf3,0x82,0xea,0x82, //00000790 ブロックが壊れて 1156: 0xc4,0x82,0xa2,0x82,0xdc,0x82,0xb7,0x00,0x20,0x20,0x8b,0x4e,0x93,0xae,0x89,0xc2, //000007a0 います. 起動可 1157: 0x94,0x5c,0x82,0xc8,0x97,0xcc,0x88,0xe6,0x82,0xaa,0x82,0xa0,0x82,0xe8,0x82,0xdc, //000007b0 能な領域がありま 1158: 0x82,0xb9,0x82,0xf1,0x00,0x82,0x68,0x82,0x6f,0x82,0x6b,0x83,0x75,0x83,0x8d,0x83, //000007c0 せん.IPLブロッ 1159: 0x62,0x83,0x4e,0x82,0xcc,0x93,0xe0,0x97,0x65,0x82,0xaa,0x88,0xd9,0x8f,0xed,0x82, //000007d0 クの内容が異常で 1160: 0xc5,0x82,0xb7,0x00,0x00,0x00,0x00,0x00, //000007e0 す..... 1161: }; 1162: */ 1163: // perl misc/itob.pl xeij/SPC.java SPC_DISK_IPL 1164: public static final byte[] SPC_DISK_IPL = "`\0\0\312\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\32\33[6;32HX68000 SCSI DISK IPL MENU\33[25;22H\203J\201[\203\\\203\213\203L\201[\202\305\221I\221\360\202\265\202\304\203\212\203^\201[\203\223\203L\201[\202\360\211\237\202\265\202\304\202\255\202\276\202\263\202\242\0\33[26;28H\221I\221\360\202\265\202\275\202\340\202\314\202\360\216\251\223\256\213N\223\256\202\306\202\265\202\304\223o\230^\202\265\202\334\202\267\0\0r\0p\4NO\b\0\0\1g\2NuO\372\377$B\205p\365r%C\372\3\2NOJ\0f\0\1\222\")\0\4\340\211\342\211C\372\2\352\"\201t\2&<\0\0\4\0C\372\2\340a\0\2:J\0f\0\1nC\372\2\322G\372\376\352\f\221X68Kf\0\1pt\16BCBGB\206C\351\0\20J\21g\26RF&\311\20)\0\b\b\0\0\0f\bRCJ\0f\2RGQ\312\377\340JCg\0\1Fr\np\4NO\b\0\0\4f\22JGg\16SGg\34C\372\376\324a\0\1\310`(C\372\376\312a\0\1\276C\372\377\36a\0\1\266`\24G\372\376| [$(\0\bJ(\0\bf\364`\0\0\302z\2BCE\372\376d\"R\20)\0\bg\n\260\5g\6r\2a\0\1za\0\1\32X\212RC\266Fe\342`*a\0\1\na\0\0\366\260<\0\35g:\260<\0005g\f\260<\0<g\32\260<\0>f\344a\0\0\354RC\266Fe\2BCa\0\0\266f\362`\314a\0\0\330SCj\0046\6SCa\0\0\242f\362`\270G\372\375\370\345C s0\0$(\0\bJ\5g>C\372\1\322r\16C\351\0\20J)\377\370g\22 \21\b\0\0\30f\nB\21\264\200g\4\22\274\0\2Q\311\377\342/\2t\2&<\0\0\4\0C\372\1\232a\0\0\354$\37J\0f&\304\274\0\377\377\377&<\0\0\4\0C\372\375\230\323\374\0\0\4\0a\0\0\324J\0f\b\f\21\0`f\"N\321E\372\0\352C\372\0\334a\0\0\256\"Ja\0\0\250`\376E\372\0\365`\352E\372\1\f`\344E\372\1#`\336A\372\375\\ \3\345@ p\0\0\20(\0\b\260\5g\2J\0NuB\200NO\340H\260<\0Nf\2p\35NuaZC\372\37520\3\345@C\361\0\0\"Qr$t\t\324Cp#NOr(aF$\tA\372\0\370\224\210\350\212\204\374\0\n\324\274\0000\0000r \264|\0000g\0022\2a&HB2\2a r)a\34r a\30t\7BA\22\31a\20Q\312\377\370r\3`\2r\13p\"NONup NONup!NONuH\347|\0r\"`\6H\347|\0r!*:\0\226\340\213\352\253\345\212\352\252p\365NOL\337\0>Nu\32\33[16;33H\0 \202r\202b\202r\202h\203f\203B\203X\203N\202\252\223\307\202\337\202\334\202\271\202\361\0 \212\307\227\235\203u\203\215\203b\203N\202\252\211\363\202\352\202\304\202\242\202\334\202\267\0 \213N\223\256\211\302\224\\\202\310\227\314\210\346\202\252\202\240\202\350\202\334\202\271\202\361\0\202h\202o\202k\203u\203\215\203b\203N\202\314\223\340\227e\202\252\210\331\217\355\202\305\202\267\0\0\0\0\0".getBytes (XEiJ.ISO_8859_1); 1165: 1166: //---------------------------------------------------------------------------------------- 1167: //SCSIデバイスドライバ 1168: // ROMのデバイスドライバが古いとき置き換えて使用する 1169: /* 1170: public static final int[] SPC_DEVICE_DRIVER = { 1171: // perl -e "do'sjdump.pl';$p=0xc00;$m=2;$o=0x7e88;$l=0xb1e0-$o;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)" 1172: 0xff,0xff,0xff,0xff,0x40,0x00,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x80,0x01,0x53, //00000c00 ....@....n.....S 1173: 0x43,0x48,0x44,0x49,0x53,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x46,0x00,0x00, //00000c10 CHDISK.......F.. 1174: 0x03,0x46,0x00,0x00,0x0d,0x0c,0x00,0x00,0x00,0xf8,0x00,0x00,0x07,0x9e,0x00,0x00, //00000c20 .F.............. 1175: 0x03,0xb0,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb8,0x00,0x00,0x08,0x14,0x00,0x00, //00000c30 .ー...ク...ク...... 1176: 0x08,0x06,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb8,0x00,0x00,0x01,0x2c,0x00,0x00, //00000c40 .....ク...ク...,.. 1177: 0x00,0x01,0x70,0x02,0x70,0x07,0x70,0x0c,0x70,0x08,0x00,0x01,0x70,0x0d,0x70,0x0c, //00000c50 ..p.p.p.p...p.p. 1178: 0x70,0x0c,0x70,0x0c,0x70,0x0c,0x70,0x0c,0x70,0x0c,0x70,0x0c,0x70,0x0c,0x48,0xe7, //00000c60 p.p.p.p.p.p.p.H. 1179: 0x00,0x02,0x4d,0xfa,0x0d,0xc8,0x2d,0x4d,0x00,0x00,0x4c,0xdf,0x40,0x00,0x4e,0x75, //00000c70 ..M..ネ-M..L゚@.Nu 1180: 0x48,0xe7,0x7f,0xfe,0x4d,0xfa,0x0d,0xb6,0x2a,0x6e,0x00,0x00,0x70,0x00,0x10,0x2d, //00000c80 H...M..カ*n..p..- 1181: 0x00,0x02,0x0c,0x00,0x00,0x0c,0x62,0x1a,0x22,0x6d,0x00,0x0e,0x41,0xfa,0xff,0x7c, //00000c90 ......b."m..A..| 1182: 0xd0,0x40,0xd0,0x40,0xd1,0xc0,0x20,0x50,0x20,0x08,0x41,0xfa,0xff,0x54,0xd1,0xc0, //00000ca0 ミ@ミ@ムタ P .A..Tムタ 1183: 0x4e,0xd0,0x30,0x3c,0x70,0x0c,0x60,0x02,0x42,0x40,0x32,0x00,0x1b,0x41,0x00,0x03, //00000cb0 Nミ0<p.`.B@2..A.. 1184: 0xe0,0x49,0x1b,0x41,0x00,0x04,0x4a,0x40,0x67,0x12,0x4a,0x6e,0x05,0xac,0x66,0x06, //00000cc0 潛.A..J@g.Jn.ャf. 1185: 0x4a,0x6e,0x05,0xae,0x67,0x06,0x3d,0x7c,0xff,0xff,0x05,0xb2,0x4c,0xdf,0x7f,0xfe, //00000cd0 Jn.ョg.=|...イL゚.. 1186: 0x4e,0x75,0x4a,0xae,0x05,0xca,0x67,0xca,0x22,0x6e,0x05,0xca,0x70,0x80,0x22,0x3c, //00000ce0 NuJョ.ハgハ"n.ハp."< 1187: 0x00,0x00,0x01,0xf5,0x4e,0x4f,0x60,0xba,0x20,0x6d,0x00,0x0e,0x20,0x2d,0x00,0x12, //00000cf0 ....NO`コ m.. -.. 1188: 0x0c,0x80,0x00,0x00,0x00,0x08,0x67,0x14,0x0c,0x80,0x00,0x00,0x00,0x04,0x66,0xa8, //00000d00 ......g.......fィ 1189: 0x30,0xee,0x05,0xc4,0x20,0x2e,0x05,0xa8,0x30,0x80,0x60,0x9c,0x30,0xee,0x05,0xc4, //00000d10 0..ト ..ィ0.`.0..ト 1190: 0x20,0x2e,0x05,0xa8,0x30,0xc0,0x20,0xae,0x05,0xc6,0x60,0x8c,0x20,0x6d,0x00,0x0e, //00000d20 ..ィ0タ ョ.ニ`. m.. 1191: 0x20,0x2d,0x00,0x12,0x0c,0x80,0x00,0x00,0x00,0x02,0x66,0x00,0xff,0x7c,0x3d,0x50, //00000d30 -........f..|=P 1192: 0x05,0xc4,0x60,0x00,0xff,0x74,0x0c,0x2d,0x00,0x17,0x00,0x16,0x64,0x00,0xff,0x64, //00000d40 .ト`..t.-....d..d 1193: 0x53,0x82,0x02,0x82,0x00,0x00,0x00,0x0f,0x2d,0x42,0x05,0xa8,0x05,0x39,0x00,0x00, //00000d50 S.......-B.ィ.9.. 1194: 0x0c,0xec,0x66,0x00,0xff,0x4e,0x61,0x00,0x1a,0xb8,0x2d,0x40,0x05,0xca,0x20,0x3c, //00000d60 ..f..Na..ク-@.ハ < 1195: 0x00,0x00,0x00,0xf5,0x72,0x24,0x28,0x2e,0x05,0xa8,0x4e,0x4f,0xb0,0xbc,0x00,0x00, //00000d70 ....r$(..ィNOーシ.. 1196: 0x00,0x00,0x67,0x64,0xb0,0xbc,0xff,0xff,0xff,0xff,0x67,0x00,0xff,0x56,0xb0,0xbc, //00000d80 ..gdーシ....g..Vーシ 1197: 0x00,0x00,0x00,0x08,0x67,0x50,0xb0,0xbc,0x00,0x00,0x00,0x02,0x66,0x00,0xff,0x44, //00000d90 ....gPーシ....f..D 1198: 0x20,0x3c,0x00,0x00,0x00,0xf5,0x72,0x2c,0x76,0x0e,0x28,0x2e,0x05,0xa8,0x43,0xee, //00000da0 <....r,v.(..ィC. 1199: 0x05,0xd2,0x4e,0x4f,0xb0,0xbc,0x00,0x00,0x00,0x00,0x66,0x00,0xff,0x26,0x43,0xee, //00000db0 .メNOーシ....f..&C. 1200: 0x05,0xd2,0x10,0x11,0x02,0x00,0x00,0x70,0x0c,0x00,0x00,0x70,0x66,0x00,0xff,0x14, //00000dc0 .メ.....p...pf... 1201: 0x10,0x29,0x00,0x02,0x67,0x10,0xb0,0x3c,0x00,0x01,0x67,0x0a,0xb0,0x3c,0x00,0x06, //00000dd0 .)..g.ー<..g.ー<.. 1202: 0x67,0x04,0x60,0x00,0xfe,0xfe,0x60,0x86,0x70,0xf5,0x72,0x2b,0x28,0x2e,0x05,0xa8, //00000de0 g.`...`.p.r+(..ィ 1203: 0x4e,0x4f,0x4a,0x80,0x66,0x00,0xfe,0xec,0x70,0xf5,0x72,0x25,0x28,0x2e,0x05,0xa8, //00000df0 NOJ.f...p.r%(..ィ 1204: 0x43,0xee,0x05,0xd2,0x4e,0x4f,0x4a,0x80,0x66,0x00,0xfe,0xd8,0x43,0xee,0x05,0xd2, //00000e00 C..メNOJ.f..リC..メ 1205: 0x22,0x29,0x00,0x04,0xb2,0xbc,0x00,0x00,0x04,0x00,0x67,0x18,0xb2,0xbc,0x00,0x00, //00000e10 ")..イシ....g.イシ.. 1206: 0x02,0x00,0x67,0x08,0x3d,0x7c,0x00,0x02,0x05,0xa0,0x60,0x0e,0x3d,0x7c,0x00,0x01, //00000e20 ..g.=|....`.=|.. 1207: 0x05,0xa0,0x60,0x06,0x3d,0x7c,0x00,0x00,0x05,0xa0,0xe0,0x89,0xe2,0x89,0x2d,0x41, //00000e30 ..`.=|....煢竕-A 1208: 0x05,0xa4,0x43,0xee,0x05,0xd2,0x2a,0x2e,0x05,0xa4,0x74,0x00,0xe5,0x8a,0xea,0xaa, //00000e40 .、C..メ*..、t.蜉.ェ 1209: 0x76,0x01,0xe5,0x8b,0xea,0xab,0x28,0x2e,0x05,0xa8,0x70,0xf5,0x72,0x21,0x4e,0x4f, //00000e50 v.蜍.ォ(..ィp.r!NO 1210: 0x4a,0x80,0x66,0x00,0xfe,0x7e,0x0c,0x91,0x58,0x36,0x38,0x53,0x66,0x00,0xfe,0x74, //00000e60 J.f..~.噌68Sf..t 1211: 0x0c,0xa9,0x43,0x53,0x49,0x31,0x00,0x04,0x66,0x00,0xfe,0x68,0x1d,0x69,0x00,0x0e, //00000e70 .ゥCSI1..f..h.i.. 1212: 0x05,0xb0,0x3d,0x7c,0x00,0x00,0x05,0xac,0x3d,0x7c,0x00,0x00,0x05,0xae,0x0c,0x29, //00000e80 .ー=|...ャ=|...ョ.) 1213: 0x00,0x01,0x00,0x0f,0x67,0x10,0x0c,0x29,0x00,0x02,0x00,0x0f,0x66,0x0e,0x3d,0x7c, //00000e90 ....g..)....f.=| 1214: 0xff,0xff,0x05,0xae,0x60,0x06,0x3d,0x7c,0xff,0xff,0x05,0xac,0x61,0x00,0x03,0xb6, //00000ea0 ...ョ`.=|...ャa..カ 1215: 0x4a,0x80,0x66,0x00,0xfe,0x2e,0x4a,0x46,0x67,0x00,0xfe,0x28,0x3d,0x7c,0x00,0x00, //00000eb0 J.f...JFg..(=|.. 1216: 0x05,0xb2,0x3d,0x46,0x05,0xb4,0x4a,0xae,0x05,0xca,0x67,0x06,0x41,0xfa,0x30,0x8a, //00000ec0 .イ=F.エJョ.ハg.A.0柿 1217: 0x60,0x04,0x41,0xfa,0x19,0x4c,0x2d,0x48,0x05,0xce,0xd1,0xfc,0x00,0x00,0x10,0x00, //00000ed0 .A..L-H.ホム..... 1218: 0x2b,0x48,0x00,0x0e,0x10,0x2d,0x00,0x16,0xd0,0x06,0x04,0x00,0x00,0x17,0x65,0x02, //00000ee0 +H...-..ミ.....e. 1219: 0x9c,0x00,0x1b,0x46,0x00,0x0d,0x41,0xee,0x05,0x44,0x2b,0x48,0x00,0x12,0x43,0xee, //00000ef0 ...F..A..D+H..C. 1220: 0x04,0x04,0x70,0x0e,0x20,0xc9,0x43,0xe9,0x00,0x14,0x51,0xc8,0xff,0xf8,0x1b,0x7a, //00000f00 ..p. ノC...Qネ...z 1221: 0xfd,0x06,0x00,0x16,0x70,0x0f,0x41,0xee,0x05,0x84,0x10,0xfc,0xff,0xff,0x51,0xc8, //00000f10 ....p.A.......Qネ 1222: 0xff,0xfa,0x24,0x2e,0x05,0xa8,0x05,0xf9,0x00,0x00,0x0c,0xec,0x70,0x00,0x3d,0x40, //00000f20 ..$..ィ......p.=@ 1223: 0x05,0xc4,0x2d,0x40,0x05,0xc6,0x2d,0x40,0x0d,0xd2,0x2d,0x40,0x0d,0xd6,0x61,0x00, //00000f30 .ト-@.ニ-@.メ-@.ヨa. 1224: 0x02,0xa6,0x60,0x00,0xfd,0x74,0x4a,0x6e,0x05,0xac,0x66,0x22,0x4a,0x6e,0x05,0xae, //00000f40 .ヲ`..tJn.ャf"Jn.ョ 1225: 0x66,0x1c,0x72,0x09,0x70,0xf5,0x4e,0x4f,0x02,0x00,0x00,0xc0,0x67,0x06,0x72,0x00, //00000f50 f.r.p.NO...タg.r. 1226: 0x70,0xf5,0x4e,0x4f,0x1b,0x7c,0x00,0x01,0x00,0x0e,0x60,0x00,0xfd,0x4c,0x61,0x00, //00000f60 p.NO.|....`..La. 1227: 0x01,0xea,0x4a,0x80,0x67,0x02,0x60,0x1c,0x70,0x00,0x10,0x2d,0x00,0x01,0x41,0xee, //00000f70 .鵯.g.`.p..-..A. 1228: 0x05,0x84,0x41,0xf0,0x00,0x00,0x4a,0x10,0x66,0x0a,0x1b,0x7c,0x00,0x01,0x00,0x0e, //00000f80 .Б...J.f..|.... 1229: 0x60,0x00,0xfd,0x26,0x70,0x00,0x10,0x2d,0x00,0x01,0x41,0xee,0x05,0x84,0x41,0xf0, //00000f90 `..&p..-..A..Б. 1230: 0x00,0x00,0x10,0xbc,0x00,0x00,0x1b,0x7c,0xff,0xff,0x00,0x0e,0x60,0x00,0xfd,0x0a, //00000fa0 ...シ...|....`... 1231: 0x4a,0x6e,0x05,0xac,0x66,0x40,0x4a,0x6e,0x05,0xae,0x66,0x3a,0x72,0x09,0x70,0xf5, //00000fb0 Jn.ャf@Jn.ョf:r.p. 1232: 0x4e,0x4f,0x02,0x00,0x00,0xc0,0x67,0x06,0x72,0x00,0x70,0xf5,0x4e,0x4f,0x0c,0x2d, //00000fc0 NO...タg.r.p.NO.- 1233: 0x00,0x08,0x00,0x0d,0x64,0x16,0x1b,0x7c,0x00,0x42,0x00,0x0d,0x4a,0x6e,0x05,0xc4, //00000fd0 ....d..|.B..Jn.ト 1234: 0x67,0x06,0x08,0xed,0x00,0x03,0x00,0x0d,0x60,0x00,0xfc,0xce,0x1b,0x7c,0xff,0xff, //00000fe0 g.......`..ホ.|.. 1235: 0x00,0x0d,0x60,0x00,0xfc,0xc4,0x10,0x2d,0x00,0x0d,0x67,0x2c,0xb0,0x3c,0x00,0x01, //00000ff0 ..`..ト.-..g,ー<.. 1236: 0x67,0x62,0xb0,0x3c,0x00,0x02,0x67,0x6e,0xb0,0x3c,0x00,0x03,0x67,0x00,0x00,0x88, //00001000 gbー<..gnー<..g..芦 1237: 0xb0,0x3c,0x00,0x06,0x67,0x70,0xb0,0x3c,0x00,0x07,0x67,0x00,0x00,0x90,0x1b,0x7c, //00001010 <..gpー<..g....| 1238: 0xff,0xff,0x00,0x0d,0x60,0x00,0xfc,0x92,0x61,0x00,0x01,0x30,0x4a,0x80,0x67,0x10, //00001020 ....`..誕..0J.g. 1239: 0x0c,0x40,0x00,0x01,0x67,0x0a,0x0c,0x40,0x70,0x02,0x67,0x1e,0x60,0x00,0xfc,0x7c, //00001030 .@..g..@p.g.`..| 1240: 0x4a,0x6e,0x0d,0xda,0x66,0x0a,0x1b,0x7c,0x00,0x02,0x00,0x0d,0x60,0x00,0x00,0xa2, //00001040 Jn.レf..|....`..「 1241: 0x1b,0x7c,0x00,0x0a,0x00,0x0d,0x60,0x00,0x00,0x98,0x1b,0x7c,0x00,0x04,0x00,0x0d, //00001050 .|....`....|.... 1242: 0x60,0x00,0x00,0x8e,0x4a,0xae,0x05,0xba,0x66,0xbe,0x4a,0xae,0x05,0xb6,0x66,0xb8, //00001060 `..捌ョ.コfセJョ.カfク 1243: 0x61,0x00,0x00,0xa6,0x60,0xe4,0x2d,0x7c,0xff,0xff,0xff,0xff,0x05,0xb6,0x4a,0xae, //00001070 a..ヲ`.-|.....カJョ 1244: 0x05,0xba,0x67,0x56,0x60,0xba,0x2d,0x7c,0xff,0xff,0xff,0xff,0x05,0xba,0x4a,0xae, //00001080 .コgV`コ-|.....コJョ 1245: 0x05,0xb6,0x67,0x46,0x60,0xaa,0x4a,0xae,0x05,0xb6,0x67,0xa4,0x2d,0x7c,0x00,0x00, //00001090 .カgF`ェJョ.カg、-|.. 1246: 0x00,0x00,0x05,0xb6,0x4a,0xae,0x05,0xba,0x67,0x1a,0x60,0x94,0x4a,0xae,0x05,0xba, //000010a0 ...カJョ.コg.`寧ョ.コ 1247: 0x67,0x8e,0x2d,0x7c,0x00,0x00,0x00,0x00,0x05,0xba,0x4a,0xae,0x05,0xb6,0x67,0x04, //000010b0 g.-|.....コJョ.カg. 1248: 0x60,0x00,0xff,0x7e,0x70,0xf5,0x72,0x32,0x28,0x2e,0x05,0xa8,0x76,0x00,0x4e,0x4f, //000010c0 `..~p.r2(..ィv.NO 1249: 0x4a,0x80,0x66,0x00,0xff,0x54,0x60,0x00,0xff,0x68,0x70,0xf5,0x72,0x32,0x28,0x2e, //000010d0 J.f..T`..hp.r2(. 1250: 0x05,0xa8,0x76,0x01,0x4e,0x4f,0x4a,0x80,0x66,0x00,0xff,0x3e,0x60,0x00,0xff,0x52, //000010e0 .ィv.NOJ.f..>`..R 1251: 0x4a,0x6e,0x05,0xc4,0x67,0x06,0x08,0xed,0x00,0x03,0x00,0x0d,0x4a,0xae,0x05,0xb6, //000010f0 Jn.トg.......Jョ.カ 1252: 0x67,0x06,0x08,0xed,0x00,0x04,0x00,0x0d,0x4a,0xae,0x05,0xba,0x67,0x06,0x08,0xed, //00001100 g.......Jョ.コg... 1253: 0x00,0x06,0x00,0x0d,0x60,0x00,0xfb,0xa2,0x4a,0x6e,0x05,0xac,0x66,0x08,0x4a,0x6e, //00001110 ....`..「Jn.ャf.Jn 1254: 0x05,0xae,0x66,0x28,0x4e,0x75,0x70,0x02,0x4e,0x4f,0x08,0x00,0x00,0x03,0x66,0x0e, //00001120 .ョf(Nup.NO....f. 1255: 0x70,0xf5,0x72,0x30,0x28,0x2e,0x05,0xa8,0x76,0x00,0x4e,0x4f,0x4e,0x75,0x70,0xf5, //00001130 p.r0(..ィv.NONup. 1256: 0x72,0x30,0x28,0x2e,0x05,0xa8,0x76,0x01,0x4e,0x4f,0x4e,0x75,0x70,0xf5,0x72,0x2f, //00001140 r0(..ィv.NONup.r/ 1257: 0x28,0x2e,0x05,0xa8,0x76,0x02,0x4e,0x4f,0x4e,0x75,0x48,0xe7,0x70,0xc0,0x70,0x7f, //00001150 (..ィv.NONuH輛タp. 1258: 0x4e,0x4f,0xb2,0xae,0x0d,0xd6,0x66,0x12,0x24,0x2e,0x0d,0xd2,0x26,0x00,0x96,0x82, //00001160 NOイョ.ヨf.$..メ&.魔 1259: 0x0c,0x83,0x00,0x00,0x00,0x64,0x65,0x00,0x00,0xe2,0x2d,0x40,0x0d,0xd2,0x2d,0x41, //00001170 .....de...-@.メ-A 1260: 0x0d,0xd6,0x72,0x09,0x70,0xf5,0x4e,0x4f,0x02,0x00,0x00,0xc0,0x67,0x06,0x72,0x00, //00001180 .ヨr.p.NO...タg.r. 1261: 0x70,0xf5,0x4e,0x4f,0x20,0x3c,0x00,0x00,0x00,0xf5,0x72,0x24,0x28,0x2e,0x05,0xa8, //00001190 p.NO <....r$(..ィ 1262: 0x4e,0x4f,0x4a,0x80,0x67,0x00,0x00,0x92,0xb0,0xbc,0x00,0x00,0x00,0x08,0x67,0xd2, //000011a0 NOJ.g..腸シ....gメ 1263: 0xb0,0xbc,0x00,0x00,0x00,0x02,0x66,0x00,0x00,0x8a,0x61,0x00,0x07,0x16,0x4a,0x40, //000011b0 ーシ....f..蛎...J@ 1264: 0x67,0xc0,0xb0,0x7c,0x00,0x01,0x66,0x70,0x70,0x0f,0x41,0xee,0x05,0x84,0x10,0xfc, //000011c0 gター|..fpp.A..... 1265: 0xff,0xff,0x51,0xc8,0xff,0xfa,0x61,0x00,0x01,0x26,0x4a,0x80,0x67,0x0c,0x3d,0x7c, //000011d0 ..Qネ..a..&J.g.=| 1266: 0xff,0xff,0x05,0xb2,0x60,0x5c,0x48,0xe7,0x70,0xc0,0x28,0x2e,0x05,0xa8,0x76,0x04, //000011e0 ...イ`\H輛タ(..ィv. 1267: 0x43,0xee,0x05,0xd2,0x74,0x3f,0x72,0x29,0x70,0xf5,0x4e,0x4f,0x4a,0x80,0x67,0x20, //000011f0 C..メt?r)p.NOJ.g 1268: 0x0c,0x80,0x00,0x00,0x00,0x08,0x67,0xe2,0x0c,0x80,0x00,0x00,0x00,0x02,0x66,0x32, //00001200 ......g.......f2 1269: 0x61,0x00,0x06,0xc0,0x4a,0x40,0x67,0xd2,0xb0,0x7c,0x00,0x01,0x66,0x1a,0x60,0xa8, //00001210 a..タJ@gメー|..f.`ィ 1270: 0x08,0x29,0x00,0x07,0x00,0x02,0x67,0x08,0x3d,0x7c,0xff,0xff,0x0d,0xda,0x60,0x06, //00001220 .)....g.=|...レ`. 1271: 0x3d,0x7c,0x00,0x00,0x0d,0xda,0x70,0x01,0x2d,0x40,0x0d,0xdc,0x4c,0xdf,0x03,0x0e, //00001230 =|...レp.-@.ワL゚.. 1272: 0x4e,0x75,0x2d,0x7c,0x00,0x00,0x00,0x00,0x0d,0xd2,0x2d,0x7c,0x00,0x00,0x00,0x00, //00001240 Nu-|.....メ-|.... 1273: 0x0d,0xd6,0x70,0xff,0x4c,0xdf,0x03,0x0e,0x4e,0x75,0x20,0x2e,0x0d,0xdc,0x4c,0xdf, //00001250 .ヨp.L゚..Nu ..ワL゚ 1274: 0x03,0x0e,0x4e,0x75,0x43,0xee,0x05,0xd2,0x2a,0x2e,0x05,0xa4,0x74,0x02,0xe5,0x8a, //00001260 ..NuC..メ*..、t.蜉 1275: 0xea,0xaa,0x76,0x01,0xe5,0x8b,0xea,0xab,0x28,0x2e,0x05,0xa8,0x70,0xf5,0x72,0x21, //00001270 .ェv.蜍.ォ(..ィp.r! 1276: 0x4e,0x4f,0x4a,0x80,0x66,0x76,0x0c,0x91,0x58,0x36,0x38,0x4b,0x66,0x6c,0x26,0x49, //00001280 NOJ.fv.噌68Kfl&I 1277: 0x45,0xee,0x04,0x04,0x7c,0x00,0x7e,0x0e,0x47,0xeb,0x00,0x10,0x4a,0x13,0x67,0x52, //00001290 E...|.~.G...J.gR 1278: 0x0c,0x93,0x48,0x75,0x6d,0x61,0x66,0x4a,0x0c,0xab,0x6e,0x36,0x38,0x6b,0x00,0x04, //000012a0 .滴umafJ.ォn68k.. 1279: 0x66,0x40,0x10,0x2b,0x00,0x08,0x08,0x00,0x00,0x00,0x66,0x36,0x24,0x2b,0x00,0x08, //000012b0 f@.+......f6$+.. 1280: 0x43,0xee,0x00,0x04,0x2a,0x2e,0x05,0xa4,0xe5,0x8a,0xea,0xaa,0x76,0x01,0xe5,0x8b, //000012c0 C...*..、蜉.ェv.蜍 1281: 0xea,0xab,0x28,0x2e,0x05,0xa8,0x70,0xf5,0x72,0x21,0x4e,0x4f,0x4a,0x80,0x66,0x1c, //000012d0 .ォ(..ィp.r!NOJ.f. 1282: 0x43,0xe9,0x00,0x12,0x4a,0x51,0x67,0x0a,0x72,0x04,0x24,0xd9,0x51,0xc9,0xff,0xfc, //000012e0 C...JQg.r.$ルQノ.. 1283: 0x52,0x46,0x51,0xcf,0xff,0xa4,0x70,0x00,0x4e,0x75,0x70,0xff,0x4e,0x75,0x43,0xee, //000012f0 RFQマ.、p.Nup.NuC. 1284: 0x05,0xd2,0x2a,0x2e,0x05,0xa4,0x74,0x02,0xe5,0x8a,0xea,0xaa,0x76,0x01,0xe5,0x8b, //00001300 .メ*..、t.蜉.ェv.蜍 1285: 0xea,0xab,0x28,0x2e,0x05,0xa8,0x70,0xf5,0x72,0x21,0x4e,0x4f,0x4a,0x80,0x66,0xdc, //00001310 .ォ(..ィp.r!NOJ.fワ 1286: 0x0c,0x91,0x58,0x36,0x38,0x4b,0x66,0xd2,0x26,0x49,0x45,0xee,0x04,0x04,0x7c,0x00, //00001320 .噌68Kfメ&IE...|. 1287: 0x7e,0x0e,0x47,0xeb,0x00,0x10,0x4a,0x13,0x67,0x54,0x0c,0x93,0x48,0x75,0x6d,0x61, //00001330 ~.G...J.gT.滴uma 1288: 0x66,0x4c,0x0c,0xab,0x6e,0x36,0x38,0x6b,0x00,0x04,0x66,0x42,0x10,0x2b,0x00,0x08, //00001340 fL.ォn68k..fB.+.. 1289: 0x08,0x00,0x00,0x00,0x66,0x38,0x24,0x2b,0x00,0x08,0x43,0xee,0x00,0x04,0x2a,0x2e, //00001350 ....f8$+..C...*. 1290: 0x05,0xa4,0xea,0xaa,0xe5,0x8a,0x76,0x01,0xe5,0x8b,0xea,0xab,0x28,0x2e,0x05,0xa8, //00001360 .、.ェ蜉v.蜍.ォ(..ィ 1291: 0x70,0xf5,0x72,0x21,0x4e,0x4f,0x4a,0x80,0x66,0x82,0x43,0xe9,0x00,0x12,0x72,0x04, //00001370 p.r!NOJ.f.C...r. 1292: 0x20,0x19,0xb0,0x9a,0x66,0x00,0xff,0x74,0x51,0xc9,0xff,0xf6,0x52,0x46,0x51,0xcf, //00001380 .ー喃..tQノ..RFQマ 1293: 0xff,0xa2,0xbc,0x6e,0x05,0xb4,0x66,0x00,0xff,0x62,0x70,0x00,0x4e,0x75,0x3d,0x7c, //00001390 .「シn.エf..bp.Nu=| 1294: 0x00,0x08,0x05,0xc2,0x3d,0x7c,0x00,0x00,0x05,0xc0,0x4a,0x6e,0x05,0xb2,0x67,0x44, //000013a0 ...ツ=|...タJn.イgD 1295: 0x61,0x00,0xff,0x4c,0x4a,0x80,0x67,0x2c,0x0c,0x80,0xff,0xff,0xff,0xff,0x67,0x2c, //000013b0 a..LJ.g,......g, 1296: 0x0c,0x80,0x00,0x00,0x00,0x08,0x67,0xe8,0x0c,0x80,0x00,0x00,0x00,0x02,0x66,0x00, //000013c0 ......g.......f. 1297: 0xf8,0xe2,0x61,0x00,0x04,0xfe,0x4a,0x40,0x67,0x0a,0x0c,0x40,0x00,0x01,0x67,0xd0, //000013d0 .秣...J@g..@..gミ 1298: 0x60,0x00,0xf8,0xd8,0x3d,0x7c,0x00,0x00,0x05,0xb2,0x67,0x08,0x30,0x3c,0x70,0x07, //000013e0 `..リ=|...イg.0<p. 1299: 0x60,0x00,0xf8,0xc8,0x4a,0x2e,0x05,0xb0,0x66,0x06,0x72,0x21,0x60,0x00,0x00,0x8a, //000013f0 `..ネJ..ーf.r!`..較 1300: 0x72,0x26,0x60,0x00,0x01,0xec,0x3d,0x7c,0x00,0x08,0x05,0xc2,0x3d,0x7c,0xff,0xff, //00001400 &`...=|...ツ=|.. 1301: 0x05,0xc0,0x60,0x0c,0x3d,0x7c,0x00,0x08,0x05,0xc2,0x3d,0x7c,0x00,0x00,0x05,0xc0, //00001410 .タ`.=|...ツ=|...タ 1302: 0x4a,0x6e,0x05,0xc4,0x67,0x08,0x30,0x3c,0x70,0x0d,0x60,0x00,0xf8,0x8e,0x4a,0x6e, //00001420 Jn.トg.0<p.`..捌n 1303: 0x05,0xb2,0x67,0x44,0x61,0x00,0xfe,0xc8,0x4a,0x80,0x67,0x2c,0x0c,0x80,0xff,0xff, //00001430 .イgDa..ネJ.g,.... 1304: 0xff,0xff,0x67,0x2c,0x0c,0x80,0x00,0x00,0x00,0x08,0x67,0xe8,0x0c,0x80,0x00,0x00, //00001440 ..g,......g..... 1305: 0x00,0x02,0x66,0x00,0xf8,0x5e,0x61,0x00,0x04,0x7a,0x4a,0x40,0x67,0x0a,0xb0,0x7c, //00001450 ..f..^a..zJ@g.ー| 1306: 0x00,0x01,0x67,0xd0,0x60,0x00,0xf8,0x54,0x3d,0x7c,0x00,0x00,0x05,0xb2,0x67,0x08, //00001460 ..gミ`..T=|...イg. 1307: 0x30,0x3c,0x70,0x07,0x60,0x00,0xf8,0x44,0x4a,0x2e,0x05,0xb0,0x66,0x04,0x72,0x22, //00001470 0<p.`..DJ..ーf.r" 1308: 0x60,0x06,0x72,0x27,0x60,0x00,0x01,0x6a,0x2d,0x6d,0x00,0x0e,0x05,0x94,0x2d,0x6d, //00001480 `.r'`..j-m....-m 1309: 0x00,0x12,0x05,0x9c,0x70,0x00,0x10,0x2d,0x00,0x01,0xe5,0x88,0x41,0xee,0x05,0x44, //00001490 ...徘..-..蛻A..D 1310: 0xd1,0xc0,0x20,0x50,0x20,0x2d,0x00,0x16,0xd0,0xa8,0x00,0x10,0x2d,0x40,0x05,0x98, //000014a0 ムタ P -..ミィ..-@.. 1311: 0x3c,0x2e,0x05,0xa0,0x24,0x2e,0x05,0x98,0xed,0xaa,0x2e,0x2e,0x05,0x9c,0xed,0xaf, //000014b0 <...$..倆ェ...懦ッ 1312: 0x22,0x6e,0x05,0x94,0x26,0x07,0xb6,0xbc,0x00,0x00,0x01,0x00,0x63,0x06,0x26,0x3c, //000014c0 "n..&.カシ....c.&< 1313: 0x00,0x00,0x01,0x00,0x70,0xf5,0x28,0x2e,0x05,0xa8,0x2a,0x2e,0x05,0xa4,0x4e,0x4f, //000014d0 ....p.(..ィ*..、NO 1314: 0x4a,0x80,0x67,0x00,0x00,0xd2,0xb0,0xbc,0xff,0xff,0xff,0xff,0x67,0x00,0x00,0xea, //000014e0 J.g..メーシ....g... 1315: 0xb0,0xbc,0xff,0xff,0xff,0xfe,0x67,0x00,0x00,0xaa,0xb0,0xbc,0x00,0x00,0x00,0x08, //000014f0 ーシ....g..ェーシ.... 1316: 0x67,0x86,0xb0,0xbc,0x00,0x00,0x00,0x02,0x66,0x00,0xf7,0xa8,0x61,0x00,0x03,0xc4, //00001500 g.ーシ....f..ィa..ト 1317: 0x4a,0x40,0x67,0x00,0xff,0x74,0xb0,0x7c,0x00,0x01,0x67,0x00,0xff,0x6c,0x0c,0x40, //00001510 J@g..tー|..g..l.@ 1318: 0x70,0x07,0x66,0x00,0xf7,0x96,0x0c,0x81,0x00,0x00,0x00,0x22,0x66,0x00,0xf7,0x8c, //00001520 p.f........"f..靴 1319: 0x43,0xee,0x05,0xd2,0x08,0x11,0x00,0x07,0x67,0x00,0xf7,0x80,0x43,0xe9,0x00,0x03, //00001530 ..メ....g...C... 1320: 0x10,0x19,0xe1,0x88,0x10,0x19,0xe1,0x88,0x10,0x19,0xe1,0x88,0x10,0x19,0x2d,0x40, //00001540 ..瘉..瘉..瘉..-@ 1321: 0x0d,0xe0,0x61,0x00,0x03,0x5a,0x4a,0x80,0x67,0x00,0xff,0x2e,0xb0,0xbc,0xff,0xff, //00001550 .濛..ZJ.g...ーシ.. 1322: 0xff,0xff,0x67,0x74,0xb0,0xbc,0xff,0xff,0xff,0xfe,0x67,0x36,0xb0,0xbc,0x00,0x00, //00001560 ..gtーシ....g6ーシ.. 1323: 0x00,0x08,0x67,0xde,0xb0,0xbc,0x00,0x00,0x00,0x02,0x66,0x00,0xf7,0x36,0x61,0x00, //00001570 ..g゙ーシ....f..6a. 1324: 0x03,0x52,0x4a,0x40,0x67,0x00,0xff,0x02,0xb0,0x7c,0x00,0x01,0x67,0xc4,0x67,0x00, //00001580 .RJ@g...ー|..gトg. 1325: 0xf7,0x2a,0x52,0xae,0x05,0xc6,0x53,0x6e,0x05,0xc2,0x66,0x00,0xfe,0xec,0x60,0x00, //00001590 .*Rョ.ニSn.ツf...`. 1326: 0xf7,0x1a,0x52,0xae,0x05,0xc6,0x53,0x6e,0x05,0xc2,0x66,0x00,0xfe,0xdc,0x30,0x3c, //000015a0 ..Rョ.ニSn.ツf..ワ0< 1327: 0x70,0x0c,0x60,0x00,0xf7,0x06,0x20,0x03,0xe1,0x88,0xeb,0xa8,0xd3,0xc0,0xd4,0x83, //000015b0 p.`... .瘉.ィモタヤ. 1328: 0x9e,0x83,0x62,0x00,0xff,0x00,0x4a,0x6e,0x05,0xc0,0x66,0x00,0x01,0x68,0x3d,0x7c, //000015c0 档b...Jn.タf..h=| 1329: 0x00,0x00,0x05,0xbe,0x60,0x00,0xf6,0xe2,0x4a,0x6e,0x05,0xbe,0x66,0x00,0xf6,0xd4, //000015d0 ...セ`..祀n.セf..ヤ 1330: 0x72,0x00,0x70,0xf5,0x4e,0x4f,0x3d,0x7c,0xff,0xff,0x05,0xbe,0x60,0x00,0xfe,0x9a, //000015e0 r.p.NO=|...セ`... 1331: 0x2d,0x6d,0x00,0x0e,0x05,0x94,0x2d,0x6d,0x00,0x12,0x05,0x9c,0x70,0x00,0x10,0x2d, //000015f0 -m....-m...徘..- 1332: 0x00,0x01,0xe5,0x88,0x41,0xee,0x05,0x44,0xd1,0xc0,0x20,0x50,0x20,0x2d,0x00,0x16, //00001600 ..蛻A..Dムタ P -.. 1333: 0xd0,0xa8,0x00,0x10,0x2d,0x40,0x05,0x98,0x3c,0x2e,0x05,0xa0,0x24,0x2e,0x05,0x98, //00001610 ミィ..-@..<...$..倆 1334: 0xed,0xaa,0x26,0x2e,0x05,0x9c,0xed,0xab,0x22,0x6e,0x05,0x94,0x70,0xf5,0x28,0x2e, //00001620 ェ&..懦ォ"n.廃.(. 1335: 0x05,0xa8,0x2a,0x2e,0x05,0xa4,0x4e,0x4f,0x4a,0x80,0x67,0x00,0x00,0xd0,0xb0,0xbc, //00001630 .ィ*..、NOJ.g..ミーシ 1336: 0xff,0xff,0xff,0xff,0x67,0x00,0x00,0xd6,0xb0,0xbc,0xff,0xff,0xff,0xfe,0x67,0x00, //00001640 ....g..ヨーシ....g. 1337: 0x00,0xa8,0xb0,0xbc,0x00,0x00,0x00,0x08,0x67,0x96,0xb0,0xbc,0x00,0x00,0x00,0x02, //00001650 .ィーシ....g眠シ.... 1338: 0x66,0x00,0xf6,0x50,0x61,0x00,0x02,0x6c,0x4a,0x40,0x67,0x84,0xb0,0x7c,0x00,0x01, //00001660 f..Pa..lJ@g┣|.. 1339: 0x67,0x00,0xff,0x7e,0x0c,0x40,0x70,0x07,0x66,0x00,0xf6,0x40,0x0c,0x81,0x00,0x00, //00001670 g..~.@p.f..@.... 1340: 0x00,0x27,0x66,0x00,0xf6,0x36,0x43,0xee,0x05,0xd2,0x08,0x11,0x00,0x07,0x67,0x00, //00001680 .'f..6C..メ....g. 1341: 0xf6,0x2a,0x43,0xe9,0x00,0x03,0x10,0x19,0xe1,0x88,0x10,0x19,0xe1,0x88,0x10,0x19, //00001690 .*C.....瘉..瘉.. 1342: 0xe1,0x88,0x10,0x19,0x2d,0x40,0x0d,0xe0,0x61,0x00,0x02,0x04,0x4a,0x80,0x67,0x00, //000016a0 瘉..-@.濛...J.g. 1343: 0xff,0x40,0xb0,0xbc,0xff,0xff,0xff,0xff,0x67,0x62,0xb0,0xbc,0xff,0xff,0xff,0xfe, //000016b0 .@ーシ....gbーシ.... 1344: 0x67,0x36,0xb0,0xbc,0x00,0x00,0x00,0x08,0x67,0xde,0xb0,0xbc,0x00,0x00,0x00,0x02, //000016c0 g6ーシ....g゙ーシ.... 1345: 0x66,0x00,0xf5,0xe0,0x61,0x00,0x01,0xfc,0x4a,0x40,0x67,0x00,0xff,0x14,0xb0,0x7c, //000016d0 f..濛...J@g...ー| 1346: 0x00,0x01,0x67,0xc4,0x60,0x00,0xf5,0xd4,0x52,0xae,0x05,0xc6,0x53,0x6e,0x05,0xc2, //000016e0 ..gト`..ヤRョ.ニSn.ツ 1347: 0x66,0x00,0xfe,0xfe,0x60,0x00,0xf5,0xc4,0x52,0xae,0x05,0xc6,0x53,0x6e,0x05,0xc2, //000016f0 f...`..トRョ.ニSn.ツ 1348: 0x66,0x00,0xfd,0x86,0x30,0x3c,0x70,0x0c,0x60,0x00,0xf5,0xb0,0x3d,0x7c,0x00,0x00, //00001700 f...0<p.`..ー=|.. 1349: 0x05,0xbe,0x4a,0x6e,0x05,0xc0,0x66,0x1c,0x60,0x00,0xf5,0x9e,0x4a,0x6e,0x05,0xbe, //00001710 .セJn.タf.`..曷n.セ 1350: 0x66,0x00,0xf5,0x90,0x72,0x00,0x70,0xf5,0x4e,0x4f,0x3d,0x7c,0xff,0xff,0x05,0xbe, //00001720 f..甚.p.NO=|...セ 1351: 0x60,0x00,0xfe,0xbe,0x3d,0x7c,0x00,0x08,0x05,0xc2,0x2d,0x6d,0x00,0x0e,0x05,0x94, //00001730 `..セ=|...ツ-m.... 1352: 0x2d,0x6d,0x00,0x12,0x05,0x9c,0x70,0x00,0x10,0x2d,0x00,0x01,0xe5,0x88,0x41,0xee, //00001740 -m...徘..-..蛻A. 1353: 0x05,0x44,0xd1,0xc0,0x20,0x50,0x20,0x2d,0x00,0x16,0xd0,0xa8,0x00,0x10,0x2d,0x40, //00001750 .Dムタ P -..ミィ..-@ 1354: 0x05,0x98,0x3a,0x2e,0x05,0xa0,0x24,0x2e,0x05,0x98,0xeb,0xaa,0x2e,0x2e,0x05,0x9c, //00001760 ..:...$..俯ェ...罹 1355: 0xeb,0xaf,0x7c,0x04,0xeb,0xae,0x28,0x2e,0x05,0xa8,0x2a,0x2e,0x05,0xa4,0x24,0x6e, //00001770 ッ|..ョ(..ィ*..、$n 1356: 0x05,0x94,0xbe,0x86,0x64,0x04,0x26,0x07,0x60,0x02,0x26,0x06,0x22,0x6e,0x05,0xce, //00001780 .叛.d.&.`.&."n.ホ 1357: 0x72,0x21,0x70,0xf5,0x4e,0x4f,0x4a,0x80,0x67,0x00,0x00,0xc8,0xb0,0xbc,0xff,0xff, //00001790 r!p.NOJ.g..ネーシ.. 1358: 0xff,0xff,0x67,0x00,0x00,0xe4,0xb0,0xbc,0xff,0xff,0xff,0xfe,0x67,0x00,0x00,0xa0, //000017a0 ..g..莢シ....g... 1359: 0xb0,0xbc,0x00,0x00,0x00,0x08,0x67,0x00,0xff,0x7c,0xb0,0xbc,0x00,0x00,0x00,0x02, //000017b0 ーシ....g..|ーシ.... 1360: 0x66,0x00,0xf4,0xf0,0x61,0x00,0x01,0x0c,0x4a,0x40,0x67,0x00,0xff,0x68,0xb0,0x7c, //000017c0 f...a...J@g..hー| 1361: 0x00,0x01,0x67,0x00,0xff,0x60,0x0c,0x40,0x70,0x07,0x66,0x00,0xf4,0xde,0x43,0xee, //000017d0 ..g..`.@p.f..゙C. 1362: 0x05,0xd2,0x08,0x11,0x00,0x07,0x67,0x00,0xf4,0xd2,0x43,0xe9,0x00,0x03,0x10,0x19, //000017e0 .メ....g..メC..... 1363: 0xe1,0x88,0x10,0x19,0xe1,0x88,0x10,0x19,0xe1,0x88,0x10,0x19,0x2d,0x40,0x0d,0xe0, //000017f0 瘉..瘉..瘉..-@.濛 1364: 0x61,0x00,0x00,0xac,0x4a,0x80,0x67,0x00,0xfc,0x70,0xb0,0xbc,0xff,0xff,0xff,0xff, //00001800 ..ャJ.g..pーシ.... 1365: 0x67,0x76,0xb0,0xbc,0xff,0xff,0xff,0xfe,0x67,0x34,0xb0,0xbc,0x00,0x00,0x00,0x08, //00001810 gvーシ....g4ーシ.... 1366: 0x67,0xde,0xb0,0xbc,0x00,0x00,0x00,0x02,0x66,0x00,0xf4,0x88,0x61,0x00,0x00,0xa4, //00001820 g゙ーシ....f...a..、 1367: 0x4a,0x40,0x67,0xcc,0xb0,0x7c,0x00,0x01,0x67,0xc6,0x60,0x00,0xf4,0x7e,0x52,0xae, //00001830 J@gフー|..gニ`..~Rョ 1368: 0x05,0xc6,0x53,0x6e,0x05,0xc2,0x66,0x00,0xfe,0xec,0x60,0x00,0xf4,0x6e,0x52,0xae, //00001840 .ニSn.ツf...`..nRョ 1369: 0x05,0xc6,0x53,0x6e,0x05,0xc2,0x66,0x00,0xfc,0x30,0x30,0x3c,0x70,0x0c,0x60,0x00, //00001850 .ニSn.ツf..00<p.`. 1370: 0xf4,0x5a,0x20,0x03,0xe1,0x88,0xeb,0xa8,0x32,0x00,0x53,0x41,0xb5,0x09,0x66,0x30, //00001860 .Z .瘉.ィ2.SAオ.f0 1371: 0x51,0xc9,0xff,0xfa,0xd3,0xc0,0xd4,0x83,0x9e,0x83,0x62,0x00,0xff,0x06,0x3d,0x7c, //00001870 Qノ..モタヤ.档b...=| 1372: 0x00,0x00,0x05,0xbe,0x60,0x00,0xf4,0x32,0x4a,0x6e,0x05,0xbe,0x66,0x00,0xf4,0x24, //00001880 ...セ`..2Jn.セf..$ 1373: 0x72,0x00,0x70,0xf5,0x4e,0x4f,0x3d,0x7c,0xff,0xff,0x05,0xbe,0x60,0x00,0xfe,0x96, //00001890 r.p.NO=|...セ`... 1374: 0x3d,0x7c,0x00,0x00,0x05,0xbe,0x30,0x3c,0x70,0x0b,0x60,0x00,0xf4,0x0e,0x48,0xe7, //000018a0 =|...セ0<p.`...H. 1375: 0x10,0x40,0x20,0x2e,0x0d,0xe0,0x43,0xee,0x05,0xd2,0x32,0xfc,0x00,0x00,0x32,0xfc, //000018b0 .@ ..澆..メ2...2. 1376: 0x00,0x04,0x22,0xc0,0x43,0xee,0x05,0xd2,0x76,0x08,0x61,0x64,0x4c,0xdf,0x02,0x08, //000018c0 .."タC..メv.adL゚.. 1377: 0x4e,0x75,0x48,0xe7,0x40,0x40,0x70,0xf5,0x72,0x2c,0x28,0x2e,0x05,0xa8,0x76,0x0e, //000018d0 NuH蹇@p.r,(..ィv. 1378: 0x43,0xee,0x05,0xd2,0x4e,0x4f,0x4a,0x80,0x66,0x18,0x42,0x41,0x12,0x29,0x00,0x02, //000018e0 C..メNOJ.f.BA.).. 1379: 0xe3,0x49,0x43,0xfa,0xf3,0x5a,0x70,0x00,0x30,0x31,0x10,0x00,0x4c,0xdf,0x02,0x02, //000018f0 紵C..Zp.01..L゚.. 1380: 0x4e,0x75,0x30,0x3c,0x70,0x0c,0x4c,0xdf,0x02,0x02,0x4e,0x75,0x70,0x00,0x10,0x2d, //00001900 Nu0<p.L゚..Nup..- 1381: 0x00,0x01,0xe5,0x88,0x41,0xee,0x05,0x44,0xd1,0xc0,0x2b,0x48,0x00,0x12,0x20,0x50, //00001910 ..蛻A..Dムタ+H.. P 1382: 0x1b,0x68,0x00,0x0a,0x00,0x0d,0x60,0x00,0xf3,0x90,0x07,0x00,0x00,0x00,0x00,0x00, //00001920 .h....`......... 1383: 0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee,0x43,0xed, //00001930 NU..H躋p&IE..獷. 1384: 0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0,0x61,0x28, //00001940 ..r..レQノ..C...a( 1385: 0x4a,0x80,0x66,0x1a,0x22,0x4b,0x72,0x05,0x70,0xf5,0x4e,0x4f,0x0c,0x80,0xff,0xff, //00001950 J.f."Kr.p.NO.... 1386: 0xff,0xff,0x67,0x0a,0x61,0x4c,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x70,0xff, //00001960 ..g.aLL゚.JN]Nup. 1387: 0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x48,0xe7,0x68,0x00,0x32,0x3c,0x00,0x01, //00001970 L゚.JN]NuH輊.2<.. 1388: 0x72,0x01,0x70,0xf5,0x4e,0x4f,0x4a,0x80,0x67,0x06,0x51,0xca,0xff,0xf4,0x60,0x1a, //00001980 r.p.NOJ.g.Qハ..`. 1389: 0x48,0x44,0xeb,0x0c,0x89,0x29,0x00,0x01,0x72,0x03,0x70,0xf5,0x4e,0x4f,0x4a,0x80, //00001990 HD...)..r.p.NOJ. 1390: 0x66,0x08,0x70,0x00,0x4c,0xdf,0x00,0x16,0x4e,0x75,0x70,0xff,0x4c,0xdf,0x00,0x16, //000019a0 f.p.L゚..Nup.L゚.. 1391: 0x4e,0x75,0x43,0xed,0xff,0xff,0x72,0x06,0x70,0xf5,0x4e,0x4f,0x4a,0x80,0x66,0x1a, //000019b0 NuC...r.p.NOJ.f. 1392: 0x43,0xed,0xff,0xfe,0x72,0x07,0x70,0xf5,0x4e,0x4f,0x4a,0x80,0x66,0x0c,0x10,0x2d, //000019c0 C...r.p.NOJ.f..- 1393: 0xff,0xfe,0x48,0x40,0x10,0x2d,0xff,0xff,0x4e,0x75,0x70,0xff,0x4e,0x75,0x0d,0x0a, //000019d0 ..H@.-..Nup.Nu.. 1394: 0x53,0x43,0x53,0x49,0x20,0x44,0x49,0x53,0x4b,0x20,0x44,0x52,0x49,0x56,0x45,0x52, //000019e0 SCSI DISK DRIVER 1395: 0x20,0x66,0x6f,0x72,0x20,0x58,0x36,0x38,0x30,0x30,0x30,0x20,0x76,0x65,0x72,0x73, //000019f0 for X68000 vers 1396: 0x69,0x6f,0x6e,0x20,0x31,0x2e,0x30,0x34,0x0d,0x0a,0x43,0x6f,0x70,0x79,0x72,0x69, //00001a00 ion 1.04..Copyri 1397: 0x67,0x68,0x74,0x20,0x31,0x39,0x39,0x30,0x2d,0x39,0x32,0x20,0x53,0x48,0x41,0x52, //00001a10 ght 1990-92 SHAR 1398: 0x50,0x2f,0x46,0x69,0x72,0x73,0x74,0x20,0x43,0x6c,0x61,0x73,0x73,0x20,0x54,0x65, //00001a20 P/First Class Te 1399: 0x63,0x68,0x6e,0x6f,0x6c,0x6f,0x67,0x79,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, //00001a30 chnology........ 1400: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001a40 ................ 1401: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001a50 ................ 1402: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001a60 ................ 1403: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001a70 ................ 1404: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001a80 ................ 1405: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001a90 ................ 1406: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001aa0 ................ 1407: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ab0 ................ 1408: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ac0 ................ 1409: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ad0 ................ 1410: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ae0 ................ 1411: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001af0 ................ 1412: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b00 ................ 1413: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b10 ................ 1414: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b20 ................ 1415: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b30 ................ 1416: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b40 ................ 1417: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b50 ................ 1418: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b60 ................ 1419: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b70 ................ 1420: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b80 ................ 1421: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001b90 ................ 1422: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ba0 ................ 1423: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001bb0 ................ 1424: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001bc0 ................ 1425: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001bd0 ................ 1426: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001be0 ................ 1427: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001bf0 ................ 1428: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c00 ................ 1429: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c10 ................ 1430: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c20 ................ 1431: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c30 ................ 1432: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c40 ................ 1433: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c50 ................ 1434: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c60 ................ 1435: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c70 ................ 1436: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c80 ................ 1437: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001c90 ................ 1438: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ca0 ................ 1439: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001cb0 ................ 1440: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001cc0 ................ 1441: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001cd0 ................ 1442: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ce0 ................ 1443: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001cf0 ................ 1444: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d00 ................ 1445: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d10 ................ 1446: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d20 ................ 1447: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d30 ................ 1448: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d40 ................ 1449: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d50 ................ 1450: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d60 ................ 1451: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d70 ................ 1452: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d80 ................ 1453: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001d90 ................ 1454: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001da0 ................ 1455: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001db0 ................ 1456: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001dc0 ................ 1457: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001dd0 ................ 1458: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001de0 ................ 1459: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001df0 ................ 1460: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e00 ................ 1461: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e10 ................ 1462: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e20 ................ 1463: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e30 ................ 1464: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e40 ................ 1465: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e50 ................ 1466: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e60 ................ 1467: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e70 ................ 1468: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e80 ................ 1469: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001e90 ................ 1470: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ea0 ................ 1471: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001eb0 ................ 1472: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ec0 ................ 1473: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ed0 ................ 1474: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ee0 ................ 1475: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ef0 ................ 1476: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f00 ................ 1477: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f10 ................ 1478: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f20 ................ 1479: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f30 ................ 1480: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f40 ................ 1481: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f50 ................ 1482: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f60 ................ 1483: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f70 ................ 1484: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f80 ................ 1485: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001f90 ................ 1486: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001fa0 ................ 1487: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001fb0 ................ 1488: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001fc0 ................ 1489: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001fd0 ................ 1490: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001fe0 ................ 1491: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00001ff0 ................ 1492: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002000 ................ 1493: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002010 ................ 1494: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002020 ................ 1495: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002030 ................ 1496: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002040 ................ 1497: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002050 ................ 1498: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002060 ................ 1499: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002070 ................ 1500: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002080 ................ 1501: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002090 ................ 1502: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000020a0 ................ 1503: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000020b0 ................ 1504: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000020c0 ................ 1505: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000020d0 ................ 1506: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000020e0 ................ 1507: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000020f0 ................ 1508: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002100 ................ 1509: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002110 ................ 1510: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002120 ................ 1511: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002130 ................ 1512: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002140 ................ 1513: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002150 ................ 1514: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002160 ................ 1515: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002170 ................ 1516: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002180 ................ 1517: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002190 ................ 1518: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000021a0 ................ 1519: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000021b0 ................ 1520: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000021c0 ................ 1521: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000021d0 ................ 1522: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000021e0 ................ 1523: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000021f0 ................ 1524: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002200 ................ 1525: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002210 ................ 1526: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002220 ................ 1527: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002230 ................ 1528: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002240 ................ 1529: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002250 ................ 1530: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002260 ................ 1531: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002270 ................ 1532: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002280 ................ 1533: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002290 ................ 1534: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000022a0 ................ 1535: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000022b0 ................ 1536: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000022c0 ................ 1537: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000022d0 ................ 1538: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000022e0 ................ 1539: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000022f0 ................ 1540: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002300 ................ 1541: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002310 ................ 1542: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002320 ................ 1543: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002330 ................ 1544: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002340 ................ 1545: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002350 ................ 1546: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002360 ................ 1547: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002370 ................ 1548: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002380 ................ 1549: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002390 ................ 1550: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000023a0 ................ 1551: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000023b0 ................ 1552: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000023c0 ................ 1553: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000023d0 ................ 1554: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000023e0 ................ 1555: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000023f0 ................ 1556: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002400 ................ 1557: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002410 ................ 1558: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002420 ................ 1559: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002430 ................ 1560: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002440 ................ 1561: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002450 ................ 1562: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002460 ................ 1563: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002470 ................ 1564: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002480 ................ 1565: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002490 ................ 1566: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000024a0 ................ 1567: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000024b0 ................ 1568: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000024c0 ................ 1569: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000024d0 ................ 1570: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000024e0 ................ 1571: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000024f0 ................ 1572: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002500 ................ 1573: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002510 ................ 1574: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002520 ................ 1575: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002530 ................ 1576: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002540 ................ 1577: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002550 ................ 1578: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002560 ................ 1579: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002570 ................ 1580: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002580 ................ 1581: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002590 ................ 1582: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000025a0 ................ 1583: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000025b0 ................ 1584: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000025c0 ................ 1585: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000025d0 ................ 1586: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000025e0 ................ 1587: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000025f0 ................ 1588: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002600 ................ 1589: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002610 ................ 1590: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002620 ................ 1591: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002630 ................ 1592: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002640 ................ 1593: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002650 ................ 1594: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002660 ................ 1595: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002670 ................ 1596: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002680 ................ 1597: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002690 ................ 1598: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000026a0 ................ 1599: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000026b0 ................ 1600: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000026c0 ................ 1601: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000026d0 ................ 1602: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000026e0 ................ 1603: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000026f0 ................ 1604: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002700 ................ 1605: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002710 ................ 1606: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002720 ................ 1607: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002730 ................ 1608: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002740 ................ 1609: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002750 ................ 1610: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002760 ................ 1611: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002770 ................ 1612: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002780 ................ 1613: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002790 ................ 1614: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000027a0 ................ 1615: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000027b0 ................ 1616: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000027c0 ................ 1617: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000027d0 ................ 1618: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000027e0 ................ 1619: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000027f0 ................ 1620: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002800 ................ 1621: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002810 ................ 1622: 0x48,0xe7,0x08,0x00,0x70,0xf5,0x72,0x0a,0x4e,0x4f,0x0c,0x80,0x00,0x00,0x00,0x04, //00002820 H...p.r.NO...... 1623: 0x64,0x36,0x61,0x00,0x00,0xce,0x41,0xfa,0x01,0x1c,0x08,0x04,0x00,0x00,0x67,0x08, //00002830 d6a..ホA.......g. 1624: 0x20,0xbc,0x00,0xe9,0x60,0x20,0x60,0x0c,0x08,0x04,0x00,0x01,0x67,0x1a,0x20,0xbc, //00002840 シ.饒 `.....g. シ 1625: 0x00,0xea,0x00,0x00,0x70,0x80,0x22,0x3c,0x00,0x00,0x01,0xf5,0x43,0xfa,0x00,0xfa, //00002850 ....p."<....C... 1626: 0x4e,0x4f,0x4c,0xdf,0x00,0x10,0x4e,0x75,0x70,0x00,0x4c,0xdf,0x00,0x10,0x4e,0x75, //00002860 NOL゚..Nup.L゚..Nu 1627: 0x48,0xe7,0x00,0xa2,0x78,0x00,0x41,0xf9,0x00,0xfc,0x00,0x00,0x61,0x00,0x00,0x9e, //00002870 H..「x.A.....a..曷 1628: 0x4a,0x80,0x66,0x16,0x0c,0xa8,0x53,0x43,0x53,0x49,0x00,0x24,0x66,0x0c,0x0c,0x68, //00002880 .f..ィSCSI.$f..h 1629: 0x49,0x4e,0x00,0x28,0x66,0x04,0x08,0xc4,0x00,0x00,0x41,0xf9,0x00,0xea,0x00,0x20, //00002890 IN.(f..ト..A.... 1630: 0x61,0x7a,0x4a,0x80,0x66,0x16,0x0c,0xa8,0x53,0x43,0x53,0x49,0x00,0x24,0x66,0x0c, //000028a0 azJ.f..ィSCSI.$f. 1631: 0x0c,0x68,0x45,0x58,0x00,0x28,0x66,0x04,0x08,0xc4,0x00,0x01,0x13,0xfc,0x00,0x31, //000028b0 .hEX.(f..ト.....1 1632: 0x00,0xe8,0xe0,0x0d,0x0c,0x39,0x00,0x56,0x00,0xed,0x00,0x6f,0x67,0x18,0x13,0xfc, //000028c0 .鞨..9.V...og... 1633: 0x00,0x56,0x00,0xed,0x00,0x6f,0x13,0xfc,0x00,0x07,0x00,0xed,0x00,0x70,0x13,0xfc, //000028d0 .V...o.......p.. 1634: 0x00,0x00,0x00,0xed,0x00,0x71,0x08,0x04,0x00,0x00,0x66,0x08,0x08,0xf9,0x00,0x03, //000028e0 .....q....f..... 1635: 0x00,0xed,0x00,0x70,0x13,0xfc,0x00,0x00,0x00,0xe8,0xe0,0x0d,0x4c,0xdf,0x45,0x00, //000028f0 ...p.....鞨.L゚E. 1636: 0x4e,0x75,0x61,0x00,0xff,0x6c,0x08,0x39,0x00,0x03,0x00,0xed,0x00,0x70,0x66,0x06, //00002900 Nua..l.9.....pf. 1637: 0x08,0x84,0x00,0x01,0x4e,0x75,0x08,0x84,0x00,0x00,0x4e,0x75,0x2c,0x4f,0x43,0xfa, //00002910 ....Nu....Nu,OC. 1638: 0x00,0x28,0x24,0x79,0x00,0x00,0x00,0x08,0x23,0xc9,0x00,0x00,0x00,0x08,0x20,0x10, //00002920 .($y....#ノ.... . 1639: 0x08,0x00,0x00,0x00,0x66,0x12,0xb0,0xbc,0x00,0x20,0x00,0x00,0x65,0x0a,0x23,0xca, //00002930 ....f.ーシ. ..e.#ハ 1640: 0x00,0x00,0x00,0x08,0x70,0x00,0x4e,0x75,0x2e,0x4e,0x23,0xca,0x00,0x00,0x00,0x08, //00002940 ....p.Nu.N#ハ.... 1641: 0x70,0xff,0x4e,0x75,0x00,0xe9,0x60,0x20,0x48,0xe7,0x50,0x62,0xb2,0xbc,0x00,0x00, //00002950 p.Nu.饒 H躅bイシ.. 1642: 0x00,0x10,0x65,0x18,0xb2,0xbc,0x00,0x00,0x00,0x20,0x65,0x40,0xb2,0xbc,0x00,0x00, //00002960 ..e.イシ... e@イシ.. 1643: 0x00,0x40,0x65,0x0e,0xb2,0xbc,0x00,0x00,0x00,0x20,0x65,0x30,0x45,0xfa,0x00,0x3a, //00002970 .@e.イシ... e0E..: 1644: 0x60,0x16,0x92,0xbc,0x00,0x00,0x00,0x20,0x45,0xfa,0x00,0x6e,0x60,0x0a,0x92,0xbc, //00002980 `.直... E..n`.直 1645: 0x00,0x00,0x00,0x40,0x45,0xfa,0x00,0xe2,0xe5,0x89,0x2c,0x7a,0xff,0xb8,0x22,0x32, //00002990 ...@E..粢.,z.ク"2 1646: 0x10,0x00,0xd5,0xc1,0x4e,0x92,0x4c,0xdf,0x46,0x0a,0x4e,0x75,0x70,0xff,0x4c,0xdf, //000029a0 ..ユチN鱈゚F.Nup.L゚ 1647: 0x46,0x0a,0x4e,0x75,0x70,0xff,0x4e,0x75,0x00,0x00,0x0a,0x08,0x00,0x00,0x0b,0x08, //000029b0 F.Nup.Nu........ 1648: 0x00,0x00,0x0a,0xe8,0x00,0x00,0x0c,0x16,0x00,0x00,0x01,0x56,0x00,0x00,0x01,0x00, //000029c0 ...........V.... 1649: 0x00,0x00,0x0d,0x18,0x00,0x00,0x0d,0x64,0x00,0x00,0x0d,0xb0,0x00,0x00,0x0d,0xfa, //000029d0 .......d...ー.... 1650: 0x00,0x00,0x0e,0x0e,0x00,0x00,0x0c,0xce,0x00,0x00,0x0c,0x84,0xff,0xff,0xff,0xfc, //000029e0 .......ホ........ 1651: 0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xfc,0x00,0x00,0x01,0x76,0x00,0x00,0x03,0x00, //000029f0 ...........v.... 1652: 0x00,0x00,0x03,0x6e,0x00,0x00,0x04,0xde,0x00,0x00,0x0f,0x4e,0x00,0x00,0x10,0x0a, //00002a00 ...n...゙...N.... 1653: 0x00,0x00,0x03,0xe0,0x00,0x00,0x04,0x4c,0x00,0x00,0x04,0xca,0x00,0x00,0x02,0x12, //00002a10 .......L...ハ.... 1654: 0x00,0x00,0x02,0x64,0x00,0x00,0x0f,0x6c,0x00,0x00,0x01,0xc4,0x00,0x00,0x05,0xe2, //00002a20 ...d...l...ト.... 1655: 0x00,0x00,0x0f,0x8a,0x00,0x00,0x05,0x60,0x00,0x00,0x05,0xa0,0x00,0x00,0x02,0xb6, //00002a30 .......`.......カ 1656: 0x00,0x00,0x05,0x20,0xff,0xff,0xff,0xbc,0xff,0xff,0xff,0xbc,0xff,0xff,0xff,0xbc, //00002a40 ... ...シ...シ...シ 1657: 0x00,0x00,0x06,0x2c,0x00,0x00,0x06,0x80,0x00,0x00,0x06,0xce,0x00,0x00,0x07,0x1a, //00002a50 ...,.......ホ.... 1658: 0xff,0xff,0xff,0xbc,0xff,0xff,0xff,0xbc,0xff,0xff,0xff,0xbc,0xff,0xff,0xff,0xbc, //00002a60 ...シ...シ...シ...シ 1659: 0xff,0xff,0xff,0xbc,0xff,0xff,0xff,0xbc,0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c, //00002a70 ...シ...シ...<...< 1660: 0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c, //00002a80 ...<...<...<...< 1661: 0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c, //00002a90 ...<...<...<...< 1662: 0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c, //00002aa0 ...<...<...<...< 1663: 0xff,0xff,0xff,0x3c,0xff,0xff,0xff,0x3c,0x48,0xe7,0x00,0x02,0x2c,0x7a,0xfe,0x96, //00002ab0 ...<...<H...,z.. 1664: 0x10,0x2e,0x00,0x09,0x08,0x00,0x00,0x05,0x66,0x38,0x10,0x2e,0x00,0x0b,0x08,0x00, //00002ac0 ........f8...... 1665: 0x00,0x07,0x67,0xec,0x02,0x00,0x00,0x07,0xb0,0x3c,0x00,0x00,0x66,0x1a,0x61,0x00, //00002ad0 ..g.....ー<..f.a. 1666: 0x06,0x94,0x48,0x40,0x66,0x06,0x4c,0xdf,0x40,0x00,0x4e,0x75,0x4a,0x40,0x67,0x08, //00002ae0 .禰@f.L゚@.NuJ@g. 1667: 0x48,0x40,0x4c,0xdf,0x40,0x00,0x4e,0x75,0x10,0x2e,0x00,0x0b,0x4c,0xdf,0x40,0x00, //00002af0 H@L゚@.Nu....L゚@. 1668: 0x4e,0x75,0x61,0x00,0x08,0xbc,0x70,0xff,0x4c,0xdf,0x40,0x00,0x4e,0x75,0x48,0xe7, //00002b00 Nua..シp.L゚@.NuH. 1669: 0x00,0x02,0x2c,0x7a,0xfe,0x40,0x10,0x2e,0x00,0x09,0x08,0x00,0x00,0x05,0x66,0x3c, //00002b10 ..,z.@........f< 1670: 0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xec,0x02,0x00,0x00,0x07,0x02,0x00, //00002b20 ........g....... 1671: 0x00,0x07,0xb0,0x3c,0x00,0x01,0x66,0x1a,0x61,0x00,0x06,0x46,0x48,0x40,0x66,0x06, //00002b30 ..ー<..f.a..FH@f. 1672: 0x4c,0xdf,0x40,0x00,0x4e,0x75,0x4a,0x40,0x67,0x08,0x48,0x40,0x4c,0xdf,0x40,0x00, //00002b40 L゚@.NuJ@g.H@L゚@. 1673: 0x4e,0x75,0x10,0x2e,0x00,0x0b,0x4c,0xdf,0x40,0x00,0x4e,0x75,0x61,0x00,0x08,0x62, //00002b50 Nu....L゚@.Nua..b 1674: 0x70,0xff,0x4c,0xdf,0x40,0x00,0x4e,0x75,0x12,0x00,0x00,0x00,0x00,0x00,0x4e,0x55, //00002b60 p.L゚@.Nu......NU 1675: 0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee,0x43,0xed,0xff,0xf0, //00002b70 ..H躋p&IE..獷... 1676: 0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0,0x13,0x43,0x00,0x04, //00002b80 r..レQノ..C....C.. 1677: 0x61,0x00,0x0e,0xb8,0x4a,0x80,0x66,0x00,0x05,0xd2,0x22,0x4b,0x61,0x00,0x0a,0xe8, //00002b90 a..クJ.f..メ"Ka... 1678: 0x0c,0x80,0xff,0xff,0xff,0xff,0x67,0x00,0x05,0xc2,0x61,0x00,0x0e,0xea,0x4c,0xdf, //00002ba0 ......g..ツa..鶚゚ 1679: 0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x03,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0, //00002bb0 .JN]Nu......NU.. 1680: 0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee,0x43,0xed,0xff,0xf0,0x72,0x05, //00002bc0 H躋p&IE..獷...r. 1681: 0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0,0x13,0x43,0x00,0x04,0x61,0x00, //00002bd0 .レQノ..C....C..a. 1682: 0x0e,0x6a,0x4a,0x80,0x66,0x00,0x05,0x84,0x22,0x4b,0x61,0x00,0x0a,0x9a,0x0c,0x80, //00002be0 .jJ.f..."Ka..... 1683: 0xff,0xff,0xff,0xff,0x67,0x00,0x05,0x74,0x61,0x00,0x0e,0x9c,0x4c,0xdf,0x0e,0x4a, //00002bf0 ....g..ta..廰゚.J 1684: 0x4e,0x5d,0x4e,0x75,0x1a,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7, //00002c00 N]Nu......NU..H躋 1685: 0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda, //00002c10 p&IE..獷...r..レ 1686: 0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0,0x13,0x43,0x00,0x04,0x13,0x42,0x00,0x02, //00002c20 Qノ..C....C...B.. 1687: 0x61,0x00,0x0e,0x18,0x4a,0x80,0x66,0x00,0x05,0x32,0x22,0x4b,0x61,0x00,0x0a,0x48, //00002c30 a...J.f..2"Ka..H 1688: 0x0c,0x80,0xff,0xff,0xff,0xff,0x67,0x00,0x05,0x22,0x61,0x00,0x0e,0x4a,0x4c,0xdf, //00002c40 ......g.."a..JL゚ 1689: 0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x15,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0, //00002c50 .JN]Nu......NU.. 1690: 0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee,0x43,0xed,0xff,0xf0,0x72,0x05, //00002c60 H躋p&IE..獷...r. 1691: 0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0,0x13,0x43,0x00,0x04,0x13,0x42, //00002c70 .レQノ..C....C...B 1692: 0x00,0x01,0x61,0x00,0x0d,0xc6,0x4a,0x80,0x66,0x00,0x04,0xe0,0x22,0x4b,0x61,0x00, //00002c80 ..a..ニJ.f..."Ka. 1693: 0x09,0xac,0x0c,0x80,0xff,0xff,0xff,0xff,0x67,0x00,0x04,0xd0,0x61,0x00,0x0d,0xf8, //00002c90 .ャ......g..ミa... 1694: 0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x07,0x00,0x00,0x00,0x00,0x00,0x4e,0x55, //00002ca0 L゚.JN]Nu......NU 1695: 0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee,0x43,0xed,0xff,0xf0, //00002cb0 ..H躋p&IE..獷... 1696: 0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0,0x61,0x00,0x0d,0x7c, //00002cc0 r..レQノ..C...a..| 1697: 0x4a,0x80,0x66,0x00,0x04,0x96,0x22,0x4b,0x61,0x00,0x09,0x62,0x0c,0x80,0xff,0xff, //00002cd0 J.f..."Ka..b.... 1698: 0xff,0xff,0x67,0x00,0x04,0x86,0x61,0x00,0x0d,0xae,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d, //00002ce0 ..g...a..ョL゚.JN] 1699: 0x4e,0x75,0x08,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70, //00002cf0 Nu......NU..H躋p 1700: 0x26,0x49,0x45,0xfa,0xff,0xee,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9, //00002d00 &IE..獷...r..レQノ 1701: 0xff,0xfc,0x2c,0x02,0x43,0xed,0xff,0xf0,0x13,0x46,0x00,0x03,0xe0,0x8e,0x13,0x46, //00002d10 ..,.C....F..燻.F 1702: 0x00,0x02,0xe0,0x8e,0x13,0x46,0x00,0x01,0x13,0x43,0x00,0x04,0x61,0x00,0x0d,0x1c, //00002d20 ..燻.F...C..a... 1703: 0x4a,0x80,0x66,0x00,0x04,0x36,0xe1,0x8b,0xeb,0xab,0x22,0x4b,0x61,0x00,0xfd,0xd0, //00002d30 J.f..6瘠.ォ"Ka..ミ 1704: 0x0c,0x80,0xff,0xff,0xff,0xff,0x67,0x00,0x04,0x22,0x0c,0x80,0xff,0xff,0xff,0xfe, //00002d40 ......g.."...... 1705: 0x67,0x00,0x01,0x54,0x61,0x00,0x0d,0x40,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75, //00002d50 g..Ta..@L゚.JN]Nu 1706: 0x0a,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49, //00002d60 ......NU..H躋p&I 1707: 0x45,0xfa,0xff,0xee,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc, //00002d70 E..獷...r..レQノ.. 1708: 0x2c,0x02,0x43,0xed,0xff,0xf0,0x13,0x46,0x00,0x03,0xe0,0x8e,0x13,0x46,0x00,0x02, //00002d80 ,.C....F..燻.F.. 1709: 0xe0,0x8e,0x13,0x46,0x00,0x01,0x13,0x43,0x00,0x04,0x61,0x00,0x0c,0xae,0x4a,0x80, //00002d90 燻.F...C..a..ョJ. 1710: 0x66,0x00,0x03,0xc8,0xe1,0x8b,0xeb,0xab,0x22,0x4b,0x61,0x00,0xfd,0x0c,0x0c,0x80, //00002da0 f..ネ瘠.ォ"Ka..... 1711: 0xff,0xff,0xff,0xff,0x67,0x00,0x03,0xb4,0x0c,0x80,0xff,0xff,0xff,0xfe,0x67,0x00, //00002db0 ....g..エ......g. 1712: 0x00,0xe6,0x61,0x00,0x0c,0xd2,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x28,0x00, //00002dc0 .訛..メL゚.JN]Nu(. 1713: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70, //00002dd0 ........NU..H躋p 1714: 0x26,0x49,0x43,0xed,0xff,0xf0,0x45,0xfa,0xff,0xe6,0x72,0x09,0x12,0xda,0x51,0xc9, //00002de0 &IC...E..誡..レQノ 1715: 0xff,0xfc,0x2c,0x03,0x43,0xed,0xff,0xf0,0x23,0x42,0x00,0x02,0x13,0x43,0x00,0x08, //00002df0 ..,.C...#B...C.. 1716: 0xe0,0x8b,0x13,0x43,0x00,0x07,0x61,0x00,0x0c,0x42,0x4a,0x80,0x66,0x00,0x03,0x5c, //00002e00 煖.C..a..BJ.f..\. 1717: 0x26,0x06,0xe1,0x8b,0xeb,0xab,0x22,0x4b,0x61,0x00,0xfc,0xf4,0x0c,0x80,0xff,0xff, //00002e10 &.瘠.ォ"Ka....... 1718: 0xff,0xff,0x67,0x00,0x03,0x46,0x0c,0x80,0xff,0xff,0xff,0xfe,0x67,0x78,0x61,0x00, //00002e20 ..g..F......gxa. 1719: 0x0c,0x66,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x2a,0x00,0x00,0x00,0x00,0x00, //00002e30 .fL゚.JN]Nu*..... 1720: 0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x45,0xfa,0xff,0xec, //00002e40 ....NU..H躋pE... 1721: 0x26,0x49,0x43,0xed,0xff,0xf0,0x72,0x09,0x12,0xda,0x51,0xc9,0xff,0xfc,0x2c,0x03, //00002e50 &IC...r..レQノ..,. 1722: 0x43,0xed,0xff,0xf0,0x23,0x42,0x00,0x02,0x13,0x43,0x00,0x08,0xe0,0x8b,0x13,0x43, //00002e60 C...#B...C..煖.C 1723: 0x00,0x07,0x61,0x00,0x0b,0xd6,0x4a,0x80,0x66,0x00,0x02,0xf0,0x26,0x06,0xe1,0x8b, //00002e70 ..a..ヨJ.f...&.瘠 1724: 0xeb,0xab,0x22,0x4b,0x61,0x00,0xfc,0x32,0x0c,0x80,0xff,0xff,0xff,0xff,0x67,0x00, //00002e80 .ォ"Ka..2......g. 1725: 0x02,0xda,0x0c,0x80,0xff,0xff,0xff,0xfe,0x67,0x0c,0x61,0x00,0x0b,0xfa,0x4c,0xdf, //00002e90 .レ......g.a...L゚ 1726: 0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x61,0x00,0x0b,0xee,0x4a,0x80,0x66,0x02,0x70,0xfe, //00002ea0 .JN]Nua..珵.f.p. 1727: 0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00002eb0 L゚.JN]Nu/....... 1728: 0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x45,0xfa,0xff,0xec,0x60,0x80, //00002ec0 ..NU..H躋pE...`. 1729: 0x04,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x45,0xfa, //00002ed0 ......NU..H躋pE. 1730: 0xff,0xf0,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed, //00002ee0 ..C...r..レQノ..C. 1731: 0xff,0xf0,0x13,0x43,0x00,0x04,0xe0,0x8b,0x13,0x43,0x00,0x03,0x61,0x00,0x0b,0x4c, //00002ef0 ...C..煖.C..a..L 1732: 0x4a,0x80,0x66,0x00,0x02,0x66,0x61,0x00,0x0b,0x8e,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d, //00002f00 J.f..fa..鮫゚.JN] 1733: 0x4e,0x75,0x1e,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70, //00002f10 Nu......NU..H躋p 1734: 0x45,0xfa,0xff,0xf0,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc, //00002f20 E...C...r..レQノ.. 1735: 0x43,0xed,0xff,0xf0,0x02,0x03,0x00,0x01,0x13,0x43,0x00,0x04,0x61,0x00,0x0b,0x0c, //00002f30 C........C..a... 1736: 0x4a,0x80,0x66,0x00,0x02,0x26,0x61,0x00,0x0b,0x4e,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d, //00002f40 J.f..&a..NL゚.JN] 1737: 0x4e,0x75,0x1b,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70, //00002f50 Nu......NU..H躋p 1738: 0x45,0xfa,0xff,0xf0,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc, //00002f60 E...C...r..レQノ.. 1739: 0x43,0xed,0xff,0xf0,0x02,0x03,0x00,0x03,0x13,0x43,0x00,0x04,0x61,0x00,0x0a,0xcc, //00002f70 C........C..a..フ 1740: 0x4a,0x80,0x66,0x00,0x01,0xe6,0x61,0x00,0x0b,0x0e,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d, //00002f80 J.f..訛...L゚.JN] 1741: 0x4e,0x75,0xc1,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70, //00002f90 Nuチ.....NU..H躋p 1742: 0x45,0xfa,0xff,0xf0,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc, //00002fa0 E...C...r..レQノ.. 1743: 0x43,0xed,0xff,0xf0,0x02,0x03,0x00,0x01,0x13,0x43,0x00,0x04,0x76,0x06,0x61,0x00, //00002fb0 C........C..v.a. 1744: 0x0a,0x8a,0x4a,0x80,0x66,0x00,0x01,0xa4,0x61,0x00,0x0a,0xcc,0x4c,0xdf,0x0e,0x4a, //00002fc0 .開.f..、a..フL゚.J 1745: 0x4e,0x5d,0x4e,0x75,0x0b,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7, //00002fd0 N]Nu......NU..H躋 1746: 0x52,0x70,0x45,0xfa,0xff,0xf0,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9, //00002fe0 pE...C...r..レQノ 1747: 0xff,0xfc,0x2c,0x02,0x43,0xed,0xff,0xf0,0x13,0x46,0x00,0x03,0xe0,0x8e,0x13,0x46, //00002ff0 ..,.C....F..燻.F 1748: 0x00,0x02,0xe0,0x8e,0x13,0x46,0x00,0x01,0x61,0x00,0x0a,0x40,0x4a,0x80,0x66,0x00, //00003000 ..燻.F..a..@J.f. 1749: 0x01,0x5a,0x61,0x00,0x0a,0x82,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0xc2,0x00, //00003010 .Za...L゚.JN]Nuツ. 1750: 0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa, //00003020 ....NU..H躋p&IE. 1751: 0xff,0xee,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x22,0x03, //00003030 .獷...r..レQノ..". 1752: 0x43,0xed,0xff,0xf0,0x13,0x41,0x00,0x05,0x76,0x06,0x61,0x00,0x09,0xfe,0x4a,0x80, //00003040 C....A..v.a...J. 1753: 0x66,0x00,0x01,0x18,0x26,0x01,0x22,0x4b,0x61,0x00,0x05,0xe2,0x0c,0x80,0xff,0xff, //00003050 f...&."Ka....... 1754: 0xff,0xff,0x67,0x00,0x01,0x06,0x61,0x00,0x0a,0x2e,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d, //00003060 ..g...a...L゚.JN] 1755: 0x4e,0x75,0x06,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70, //00003070 Nu......NU..H躋p 1756: 0x45,0xfa,0xff,0xf0,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc, //00003080 E...C...r..レQノ.. 1757: 0x43,0xed,0xff,0xf0,0x2c,0x02,0x13,0x46,0x00,0x03,0xe0,0x8e,0x13,0x46,0x00,0x02, //00003090 C...,..F..燻.F.. 1758: 0xe0,0x8e,0x13,0x46,0x00,0x01,0x13,0x43,0x00,0x04,0x61,0x00,0x09,0x9e,0x4a,0x80, //000030a0 燻.F...C..a..曷. 1759: 0x66,0x00,0x00,0xb8,0x61,0x00,0x09,0xe0,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75, //000030b0 f..クa..澂゚.JN]Nu 1760: 0x07,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x45,0xfa, //000030c0 ......NU..H躋pE. 1761: 0xff,0xf0,0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed, //000030d0 ..C...r..レQノ..C. 1762: 0xff,0xf0,0x2c,0x02,0x13,0x46,0x00,0x03,0xe0,0x8e,0x13,0x46,0x00,0x02,0xe0,0x8e, //000030e0 ..,..F..燻.F..燻 1763: 0x13,0x46,0x00,0x01,0x13,0x43,0x00,0x04,0x61,0x00,0x09,0x50,0x4a,0x80,0x66,0x6a, //000030f0 .F...C..a..PJ.fj 1764: 0x61,0x00,0x09,0x94,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x0e,0x00,0x00,0x00, //00003100 a..猫゚.JN]Nu.... 1765: 0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee, //00003110 ..NU..H躋p&IE..獷 1766: 0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0, //00003120 ...r..レQノ..C... 1767: 0x2c,0x02,0x13,0x46,0x00,0x03,0xe0,0x8e,0x13,0x46,0x00,0x02,0xe0,0x8e,0x13,0x46, //00003130 ,..F..燻.F..燻.F 1768: 0x00,0x01,0x13,0x43,0x00,0x04,0x61,0x00,0x09,0x02,0x4a,0x80,0x66,0x1c,0x76,0x04, //00003140 ...C..a...J.f.v. 1769: 0x22,0x4b,0x61,0x00,0x04,0xe8,0x0c,0x80,0xff,0xff,0xff,0xff,0x67,0x0c,0x61,0x00, //00003150 "Ka.........g.a. 1770: 0x09,0x36,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x70,0xff,0x4c,0xdf,0x0e,0x4a, //00003160 .6L゚.JN]Nup.L゚.J 1771: 0x4e,0x5d,0x4e,0x75,0x2f,0x0b,0x47,0xfa,0x00,0xd8,0x61,0x38,0x26,0x5f,0x4e,0x75, //00003170 N]Nu/.G..リa8&_Nu 1772: 0x2f,0x0b,0x47,0xfa,0x01,0xa8,0x61,0x2c,0x48,0xe7,0xc0,0x00,0x10,0x39,0x00,0xe8, //00003180 /.G..ィa,H鄲..9.鞨 1773: 0xe0,0x0b,0xe8,0x08,0x0c,0x00,0x00,0x0e,0x64,0x12,0x4e,0x7a,0x00,0x02,0x22,0x00, //00003190 .......d.Nz..". 1774: 0x08,0xc0,0x00,0x0b,0x4e,0x7b,0x00,0x02,0x4e,0x7b,0x10,0x02,0x4c,0xdf,0x00,0x03, //000031a0 .タ..N{..N{..L゚.. 1775: 0x26,0x5f,0x4e,0x75,0x48,0xe7,0x00,0x60,0x10,0x2e,0x00,0x0b,0x02,0x00,0x00,0x07, //000031b0 &_NuH..`........ 1776: 0x1d,0x40,0x00,0x11,0x20,0x03,0x1d,0x40,0x00,0x1d,0xe0,0x88,0x1d,0x40,0x00,0x1b, //000031c0 .@.. ..@..煦.@.. 1777: 0xe0,0x88,0x1d,0x40,0x00,0x19,0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xf6, //000031d0 煦.@..........g. 1778: 0x45,0xf9,0x00,0xe8,0x40,0x40,0x15,0x7c,0x00,0xff,0x00,0x00,0x35,0x7c,0x00,0x00, //000031e0 E..錙@.|....5|.. 1779: 0x00,0x1a,0x15,0x7c,0x00,0x80,0x00,0x04,0x15,0x7c,0x00,0x04,0x00,0x06,0x41,0xee, //000031f0 ...|.....|....A. 1780: 0x00,0x15,0x25,0x48,0x00,0x14,0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xf6, //00003200 ..%H..........g. 1781: 0x1d,0x7c,0x00,0x80,0x00,0x05,0x4e,0x93,0x4a,0x80,0x66,0x26,0x08,0x2e,0x00,0x03, //00003210 .|....N笛.f&.... 1782: 0x00,0x09,0x66,0x12,0x08,0x2e,0x00,0x04,0x00,0x09,0x67,0xf0,0x08,0xee,0x00,0x04, //00003220 ..f.......g..... 1783: 0x00,0x09,0x70,0x00,0x60,0x0c,0x08,0xee,0x00,0x03,0x00,0x09,0x70,0xfd,0x60,0x02, //00003230 ..p.`.......p.`. 1784: 0x70,0xff,0x25,0x7c,0x00,0xe9,0x60,0x01,0x00,0x14,0x4c,0xdf,0x06,0x00,0x4e,0x75, //00003240 p.%|.饒...L゚..Nu 1785: 0x48,0xe7,0x7c,0x40,0x15,0x7c,0x00,0x31,0x00,0x05,0x28,0x03,0xb6,0xbc,0x00,0x00, //00003250 H轎@.|.1..(.カシ.. 1786: 0x01,0x00,0x63,0x08,0x2a,0x3c,0x00,0x00,0x01,0x00,0x60,0x02,0x2a,0x03,0x25,0x49, //00003260 ..c.*<....`.*.%I 1787: 0x00,0x0c,0x35,0x45,0x00,0x0a,0x08,0x2e,0x00,0x03,0x00,0x09,0x66,0x00,0x00,0x98, //00003270 ..5E........f... 1788: 0x08,0x2e,0x00,0x00,0x00,0x0d,0x67,0xee,0x08,0x2e,0x00,0x03,0x00,0x09,0x66,0x00, //00003280 ......g.......f. 1789: 0x00,0x86,0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xec,0x70,0x00,0x10,0x2e, //00003290 ..........g.p... 1790: 0x00,0x19,0xe1,0x88,0x10,0x2e,0x00,0x1b,0xe1,0x88,0x10,0x2e,0x00,0x1d,0x22,0x04, //000032a0 ..瘉....瘉....". 1791: 0x92,0x80,0x70,0x00,0x30,0x2a,0x00,0x0a,0x24,0x05,0x94,0x80,0x92,0x82,0x67,0x08, //000032b0 逐p.0*..$.楳窒g. 1792: 0xd3,0xaa,0x00,0x0c,0x93,0x6a,0x00,0x0a,0x14,0xbc,0xff,0xff,0x15,0x7c,0x00,0x80, //000032c0 モェ..屠...シ...|.. 1793: 0x00,0x07,0x4e,0x71,0x4e,0x71,0x4e,0x71,0x4e,0x71,0x4e,0x71,0x08,0x2e,0x00,0x03, //000032d0 ..NqNqNqNqNq.... 1794: 0x00,0x09,0x66,0x32,0x08,0x2e,0x00,0x04,0x00,0x09,0x66,0x06,0x08,0x12,0x00,0x07, //000032e0 ..f2......f..... 1795: 0x67,0xea,0x08,0x2a,0x00,0x01,0x00,0x01,0x66,0x00,0xff,0x7c,0x4a,0x2a,0x00,0x01, //000032f0 g..*....f..|J*.. 1796: 0x66,0x18,0x4a,0x6a,0x00,0x0a,0x66,0x12,0xd3,0xc5,0x98,0x85,0x96,0x85,0x66,0x00, //00003300 f.Jj..f.モナ..妹f. 1797: 0xff,0x4c,0x70,0x00,0x60,0x10,0x70,0xfd,0x60,0x06,0x70,0xfe,0x60,0x02,0x70,0xff, //00003310 .Lp.`.p.`.p.`.p. 1798: 0x15,0x7c,0x00,0x10,0x00,0x07,0x4c,0xdf,0x02,0x3e,0x4e,0x75,0x48,0xe7,0x7c,0x40, //00003320 .|....L゚.>NuH轎@ 1799: 0x15,0x7c,0x00,0xb1,0x00,0x05,0xb6,0xbc,0x00,0x00,0x01,0x00,0x63,0x08,0x2a,0x3c, //00003330 .|.ア..カシ....c.*< 1800: 0x00,0x00,0x01,0x00,0x60,0x02,0x2a,0x03,0x25,0x49,0x00,0x0c,0x35,0x45,0x00,0x0a, //00003340 ....`.*.%I..5E.. 1801: 0x08,0x2e,0x00,0x03,0x00,0x09,0x66,0x52,0x08,0x2e,0x00,0x00,0x00,0x0d,0x66,0xf0, //00003350 ......fR......f. 1802: 0x14,0xbc,0xff,0xff,0x15,0x7c,0x00,0x80,0x00,0x07,0x4e,0x71,0x4e,0x71,0x4e,0x71, //00003360 .シ...|....NqNqNq 1803: 0x4e,0x71,0x4e,0x71,0x08,0x2e,0x00,0x03,0x00,0x09,0x66,0x2e,0x08,0x2e,0x00,0x04, //00003370 NqNq......f..... 1804: 0x00,0x09,0x66,0x06,0x08,0x12,0x00,0x07,0x67,0xea,0x08,0x2a,0x00,0x01,0x00,0x01, //00003380 ..f.....g..*.... 1805: 0x66,0xbe,0x4a,0x2a,0x00,0x01,0x66,0x16,0x4a,0x6a,0x00,0x0a,0x66,0x10,0xd3,0xc5, //00003390 fセJ*..f.Jj..f.モナ 1806: 0x98,0x85,0x96,0x85,0x66,0x90,0x70,0x00,0x60,0x10,0x70,0xfd,0x60,0x06,0x70,0xfe, //000033a0 ..妹f壬.`.p.`.p. 1807: 0x60,0x02,0x70,0xff,0x15,0x7c,0x00,0x10,0x00,0x07,0x4c,0xdf,0x02,0x3e,0x4e,0x75, //000033b0 `.p..|....L゚.>Nu 1808: 0x48,0xe7,0x40,0x42,0x2c,0x7a,0xf5,0x8e,0x1d,0x7c,0x00,0x90,0x00,0x03,0x10,0x39, //000033c0 H蹇B,z...|.....9 1809: 0x00,0xed,0x00,0x6f,0x0c,0x00,0x00,0x56,0x67,0x3a,0x13,0xfc,0x00,0x31,0x00,0xe8, //000033d0 ...o...Vg:...1.鞨 1810: 0xe0,0x0d,0xbd,0xfc,0x00,0xe9,0x60,0x20,0x66,0x0a,0x13,0xfc,0x00,0x07,0x00,0xed, //000033e0 .ス..饒 f....... 1811: 0x00,0x70,0x60,0x08,0x13,0xfc,0x00,0x0f,0x00,0xed,0x00,0x70,0x13,0xfc,0x00,0x00, //000033f0 .p`........p.... 1812: 0x00,0xed,0x00,0x71,0x13,0xfc,0x00,0x56,0x00,0xed,0x00,0x6f,0x13,0xfc,0x00,0x00, //00003400 ...q...V...o.... 1813: 0x00,0xe8,0xe0,0x0d,0x10,0x39,0x00,0xed,0x00,0x70,0x02,0x00,0x00,0x07,0x1d,0x40, //00003410 .鞨..9...p.....@ 1814: 0x00,0x01,0x70,0x00,0x1d,0x40,0x00,0x05,0x1d,0x40,0x00,0x11,0x1d,0x40,0x00,0x19, //00003420 ..p..@...@...@.. 1815: 0x1d,0x40,0x00,0x1b,0x1d,0x40,0x00,0x1d,0x1d,0x40,0x00,0x17,0x70,0x80,0xbd,0xfc, //00003430 .@...@...@..p.ス. 1816: 0x00,0xe9,0x60,0x20,0x66,0x04,0x72,0x6c,0x60,0x06,0x22,0x3c,0x00,0x00,0x00,0xf6, //00003440 .饒 f.rl`."<.... 1817: 0x43,0xfa,0x00,0x38,0x4e,0x4f,0x1d,0x7c,0x00,0x10,0x00,0x03,0x1d,0x7c,0x00,0x00, //00003450 C..8NO.|.....|.. 1818: 0x00,0x0b,0x70,0x02,0x61,0x00,0x06,0x58,0x1d,0x7c,0x00,0x10,0x00,0x05,0x70,0x05, //00003460 ..p.a..X.|....p. 1819: 0x61,0x00,0x06,0x4c,0x1d,0x7c,0x00,0x00,0x00,0x05,0x20,0x3c,0x00,0x00,0x9c,0x40, //00003470 a..L.|.... <..廖 1820: 0x61,0x00,0x06,0x3c,0x4c,0xdf,0x42,0x02,0x4e,0x75,0x48,0xe7,0xc0,0x02,0x2c,0x7a, //00003480 a..<L゚B.NuH鄲.,z 1821: 0xf4,0xc4,0x10,0x2e,0x00,0x09,0x1d,0x40,0x00,0x09,0x4c,0xdf,0x40,0x03,0x4e,0x73, //00003490 .ト.....@..L゚@.Ns 1822: 0x48,0xe7,0x09,0x02,0x2c,0x7a,0xf4,0xae,0x1d,0x7c,0x00,0x00,0x00,0x11,0x10,0x2e, //000034a0 H...,z.ョ.|...... 1823: 0x00,0x0d,0x02,0x00,0x00,0xf8,0x66,0xf6,0x1d,0x7c,0x00,0x60,0x00,0x05,0x60,0x18, //000034b0 ......f..|.`..`. 1824: 0x48,0xe7,0x09,0x02,0x2c,0x7a,0xf4,0x8e,0x1d,0x7c,0x00,0x00,0x00,0x11,0x10,0x2e, //000034c0 H...,z...|...... 1825: 0x00,0x0d,0x02,0x00,0x00,0xf8,0x66,0xf6,0x02,0x44,0x00,0x07,0x10,0x3c,0x00,0x01, //000034d0 ......f..D...<.. 1826: 0xe9,0x28,0x09,0x39,0x00,0xed,0x00,0x71,0x66,0x0c,0x80,0x2e,0x00,0x01,0x1d,0x7c, //000034e0 .(.9...qf......| 1827: 0x00,0x10,0x00,0x03,0x60,0x06,0x1d,0x7c,0x00,0x00,0x00,0x03,0x1d,0x40,0x00,0x17, //000034f0 ....`..|.....@.. 1828: 0x30,0x3c,0x09,0xc4,0x1d,0x40,0x00,0x1b,0xe0,0x48,0x1d,0x40,0x00,0x19,0x1d,0x7c, //00003500 0<.ト.@..潯.@...| 1829: 0x00,0x03,0x00,0x1d,0x1d,0x6e,0x00,0x09,0x00,0x09,0x1d,0x7c,0x00,0x20,0x00,0x05, //00003510 .....n.....|. .. 1830: 0x70,0x01,0x61,0x00,0x05,0x9a,0x10,0x2e,0x00,0x09,0x66,0x08,0x1d,0x7c,0x00,0x05, //00003520 p.a.......f..|.. 1831: 0x00,0x0d,0x66,0xf2,0x10,0x2e,0x00,0x0d,0x08,0x00,0x00,0x07,0x67,0x9a,0x10,0x2e, //00003530 ..f.........g... 1832: 0x00,0x09,0x67,0xf0,0xb0,0x3c,0x00,0x04,0x67,0x26,0x1d,0x40,0x00,0x09,0xb0,0x3c, //00003540 ..g.ー<..g&.@..ー< 1833: 0x00,0x10,0x67,0x0c,0x48,0x40,0x10,0x2e,0x00,0x0b,0x4c,0xdf,0x40,0x90,0x4e,0x75, //00003550 ..g.H@....L゚@侵u 1834: 0x70,0x00,0x4c,0xdf,0x40,0x90,0x4e,0x75,0x70,0xff,0x4c,0xdf,0x40,0x90,0x4e,0x75, //00003560 p.L゚@侵up.L゚@侵u 1835: 0x70,0x01,0x61,0x00,0x05,0x4a,0x1d,0x7c,0x00,0x00,0x00,0x17,0x20,0x3c,0x00,0x00, //00003570 p.a..J.|.... <.. 1836: 0x02,0x58,0x1d,0x40,0x00,0x1d,0xe0,0x88,0x1d,0x40,0x00,0x1b,0xe0,0x88,0x1d,0x40, //00003580 .X.@..煦.@..煦.@ 1837: 0x00,0x19,0x1d,0x7c,0x00,0x04,0x00,0x09,0x70,0x02,0x61,0x00,0x05,0x22,0x10,0x2e, //00003590 ...|....p.a..".. 1838: 0x00,0x09,0x67,0xfa,0x1d,0x40,0x00,0x09,0xb0,0x3c,0x00,0x04,0x67,0x08,0xb0,0x3c, //000035a0 ..g..@..ー<..g.ー< 1839: 0x00,0x10,0x67,0xac,0x60,0x9e,0x08,0x2e,0x00,0x05,0x00,0x0d,0x66,0xf8,0x1d,0x6e, //000035b0 ..gャ`.......f..n 1840: 0x00,0x09,0x00,0x09,0x08,0x2e,0x00,0x07,0x00,0x0d,0x66,0x94,0x60,0x86,0x48,0xe7, //000035c0 ..........f覗.H. 1841: 0x10,0x02,0x2c,0x7a,0xf3,0x80,0x10,0x11,0x02,0x00,0x00,0xe0,0x0c,0x00,0x00,0x00, //000035d0 ..,z............ 1842: 0x67,0x0e,0xb0,0x3c,0x00,0x20,0x67,0x0c,0xb0,0x3c,0x00,0xa0,0x67,0x0a,0x60,0x0a, //000035e0 g.ー<. g.ー<..g.`. 1843: 0x76,0x06,0x60,0x06,0x76,0x0a,0x60,0x02,0x76,0x0c,0x10,0x2e,0x00,0x09,0x08,0x00, //000035f0 v.`.v.`.v....... 1844: 0x00,0x05,0x66,0x2c,0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xec,0x02,0x00, //00003600 ..f,........g... 1845: 0x00,0x07,0x0c,0x00,0x00,0x02,0x66,0x0e,0x61,0x00,0x02,0xa6,0x48,0x40,0x66,0x06, //00003610 ......f.a..ヲH@f. 1846: 0x4c,0xdf,0x40,0x08,0x4e,0x75,0x10,0x2e,0x00,0x0b,0x4c,0xdf,0x40,0x08,0x4e,0x75, //00003620 L゚@.Nu....L゚@.Nu 1847: 0x61,0x00,0xfd,0x8e,0x70,0xff,0x4c,0xdf,0x40,0x08,0x4e,0x75,0x48,0xe7,0x00,0x02, //00003630 a..姿.L゚@.NuH... 1848: 0x2c,0x7a,0xf3,0x12,0x10,0x2e,0x00,0x09,0x08,0x00,0x00,0x05,0x66,0x2c,0x10,0x2e, //00003640 ,z..........f,.. 1849: 0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xec,0x02,0x00,0x00,0x07,0xb0,0x3c,0x00,0x00, //00003650 ......g.....ー<.. 1850: 0x66,0x0e,0x61,0x00,0x01,0x66,0x48,0x40,0x66,0x06,0x4c,0xdf,0x40,0x00,0x4e,0x75, //00003660 f.a..fH@f.L゚@.Nu 1851: 0x10,0x2e,0x00,0x0b,0x4c,0xdf,0x40,0x00,0x4e,0x75,0x61,0x00,0xfd,0x44,0x70,0xff, //00003670 ....L゚@.Nua..Dp. 1852: 0x4c,0xdf,0x40,0x00,0x4e,0x75,0x48,0xe7,0x00,0x02,0x2c,0x7a,0xf2,0xc8,0x10,0x2e, //00003680 L゚@.NuH...,z.ネ.. 1853: 0x00,0x09,0x08,0x00,0x00,0x05,0x66,0x2c,0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07, //00003690 ......f,........ 1854: 0x67,0xec,0x02,0x00,0x00,0x07,0xb0,0x3c,0x00,0x01,0x66,0x0e,0x61,0x00,0x01,0x9c, //000036a0 g.....ー<..f.a..廩 1855: 0x48,0x40,0x66,0x06,0x4c,0xdf,0x40,0x00,0x4e,0x75,0x10,0x2e,0x00,0x0b,0x4c,0xdf, //000036b0 @f.L゚@.Nu....L゚ 1856: 0x40,0x00,0x4e,0x75,0x61,0x00,0xfc,0xfa,0x70,0xff,0x4c,0xdf,0x40,0x00,0x4e,0x75, //000036c0 @.Nua...p.L゚@.Nu 1857: 0x48,0xe7,0x10,0x02,0x2c,0x7a,0xf2,0x7e,0x10,0x2e,0x00,0x09,0x08,0x00,0x00,0x05, //000036d0 H...,z.~........ 1858: 0x66,0x2e,0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xec,0x02,0x00,0x00,0x07, //000036e0 f.........g..... 1859: 0xb0,0x3c,0x00,0x03,0x66,0x10,0x76,0x01,0x61,0x00,0x02,0x06,0x48,0x40,0x66,0x06, //000036f0 ー<..f.v.a...H@f. 1860: 0x4c,0xdf,0x40,0x08,0x4e,0x75,0x10,0x2e,0x00,0x0b,0x4c,0xdf,0x40,0x08,0x4e,0x75, //00003700 L゚@.Nu....L゚@.Nu 1861: 0x61,0x00,0xfc,0xae,0x70,0xff,0x4c,0xdf,0x40,0x08,0x4e,0x75,0x48,0xe7,0x10,0x02, //00003710 a..ョp.L゚@.NuH... 1862: 0x2c,0x7a,0xf2,0x32,0x10,0x2e,0x00,0x09,0x08,0x00,0x00,0x05,0x66,0x2e,0x10,0x2e, //00003720 ,z.2........f... 1863: 0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xec,0x02,0x00,0x00,0x07,0xb0,0x3c,0x00,0x07, //00003730 ......g.....ー<.. 1864: 0x66,0x10,0x76,0x01,0x61,0x00,0x01,0xba,0x48,0x40,0x66,0x06,0x4c,0xdf,0x40,0x08, //00003740 f.v.a..コH@f.L゚@. 1865: 0x4e,0x75,0x10,0x2e,0x00,0x0b,0x4c,0xdf,0x40,0x08,0x4e,0x75,0x61,0x00,0xfc,0x62, //00003750 Nu....L゚@.Nua..b 1866: 0x70,0xff,0x4c,0xdf,0x40,0x08,0x4e,0x75,0x48,0xe7,0x10,0x02,0x2c,0x7a,0xf1,0xe6, //00003760 p.L゚@.NuH...,z.. 1867: 0x10,0x2e,0x00,0x09,0x08,0x00,0x00,0x05,0x66,0x2c,0x10,0x2e,0x00,0x0b,0x08,0x00, //00003770 ........f,...... 1868: 0x00,0x07,0x67,0xec,0x02,0x00,0x00,0x07,0xb0,0x3c,0x00,0x06,0x66,0x0e,0x76,0x01, //00003780 ..g.....ー<..f.v. 1869: 0x61,0x38,0x48,0x40,0x66,0x06,0x4c,0xdf,0x40,0x08,0x4e,0x75,0x10,0x2e,0x00,0x0b, //00003790 a8H@f.L゚@.Nu.... 1870: 0x4c,0xdf,0x40,0x08,0x4e,0x75,0x61,0x00,0xfc,0x18,0x70,0xff,0x4c,0xdf,0x40,0x08, //000037a0 L゚@.Nua...p.L゚@. 1871: 0x4e,0x75,0x48,0xe7,0x00,0x02,0x2c,0x7a,0xf1,0x9c,0x70,0x00,0x10,0x2e,0x00,0x0b, //000037b0 NuH...,z.徘..... 1872: 0x4c,0xdf,0x40,0x00,0x4e,0x75,0x70,0x04,0x4e,0x75,0x48,0xe7,0x10,0x40,0x20,0x03, //000037c0 L゚@.Nup.NuH..@ . 1873: 0x1d,0x40,0x00,0x1d,0xe0,0x88,0x1d,0x40,0x00,0x1b,0xe0,0x88,0x1d,0x40,0x00,0x19, //000037d0 .@..煦.@..煦.@.. 1874: 0x10,0x2e,0x00,0x0b,0x02,0x00,0x00,0x07,0x1d,0x40,0x00,0x11,0x10,0x2e,0x00,0x0b, //000037e0 .........@...... 1875: 0x08,0x00,0x00,0x07,0x67,0xf6,0x1d,0x6e,0x00,0x09,0x00,0x09,0x1d,0x7c,0x00,0x80, //000037f0 ....g..n.....|.. 1876: 0x00,0x05,0x10,0x2e,0x00,0x0d,0x02,0x00,0x00,0xf0,0xb0,0x3c,0x00,0x70,0x67,0x06, //00003800 ..........ー<.pg. 1877: 0xb0,0x3c,0x00,0xb0,0x66,0xec,0x4a,0x2e,0x00,0x09,0x66,0x10,0x08,0x2e,0x00,0x01, //00003810 ー<.ーf.J...f..... 1878: 0x00,0x0d,0x66,0xf2,0x1d,0x59,0x00,0x15,0x53,0x83,0x66,0xea,0x10,0x2e,0x00,0x09, //00003820 ..f..Y..Sデ..... 1879: 0x67,0xfa,0x1d,0x40,0x00,0x09,0xb0,0x3c,0x00,0x10,0x67,0x06,0x4c,0xdf,0x02,0x08, //00003830 g..@..ー<..g.L゚.. 1880: 0x4e,0x75,0x70,0x00,0x4c,0xdf,0x02,0x08,0x4e,0x75,0x48,0xe7,0x10,0x40,0x10,0x2e, //00003840 Nup.L゚..NuH..@.. 1881: 0x00,0x0b,0x02,0x00,0x00,0x07,0x1d,0x40,0x00,0x11,0x20,0x03,0x1d,0x40,0x00,0x1d, //00003850 .......@.. ..@.. 1882: 0xe0,0x88,0x1d,0x40,0x00,0x1b,0xe0,0x88,0x1d,0x40,0x00,0x19,0x1d,0x6e,0x00,0x09, //00003860 煦.@..煦.@...n.. 1883: 0x00,0x09,0x1d,0x7c,0x00,0x80,0x00,0x05,0x10,0x2e,0x00,0x0d,0x02,0x00,0x00,0xf0, //00003870 ...|............ 1884: 0xb0,0x3c,0x00,0x70,0x67,0x06,0xb0,0x3c,0x00,0xb0,0x66,0xec,0x4a,0x2e,0x00,0x09, //00003880 ー<.pg.ー<.ーf.J... 1885: 0x66,0x10,0x08,0x2e,0x00,0x00,0x00,0x0d,0x66,0xf2,0x12,0xee,0x00,0x15,0x53,0x83, //00003890 f.......f.....Sデ 1886: 0x66,0xea,0x10,0x2e,0x00,0x09,0x67,0xfa,0x1d,0x40,0x00,0x09,0xb0,0x3c,0x00,0x10, //000038a0 .....g..@..ー<.. 1887: 0x67,0x06,0x4c,0xdf,0x02,0x08,0x4e,0x75,0x70,0x00,0x4c,0xdf,0x02,0x08,0x4e,0x75, //000038b0 g.L゚..Nup.L゚..Nu 1888: 0x48,0xe7,0x10,0x40,0x10,0x2e,0x00,0x0b,0x02,0x00,0x00,0x07,0x1d,0x40,0x00,0x11, //000038c0 H..@.........@.. 1889: 0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xf6,0x1d,0x59,0x00,0x17,0x1d,0x7c, //000038d0 ........g..Y...| 1890: 0x00,0xec,0x00,0x05,0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x66,0xf6,0x1d,0x7c, //000038e0 ............f..| 1891: 0x00,0xcc,0x00,0x05,0x53,0x83,0x66,0xcc,0x70,0x00,0x4c,0xdf,0x02,0x08,0x4e,0x75, //000038f0 .フ..Sデフp.L゚..Nu 1892: 0x48,0xe7,0x10,0x40,0x10,0x2e,0x00,0x0b,0x02,0x00,0x00,0x07,0x1d,0x40,0x00,0x11, //00003900 H..@.........@.. 1893: 0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x67,0xf6,0x1d,0x7c,0x00,0xec,0x00,0x05, //00003910 ........g..|.... 1894: 0x10,0x2e,0x00,0x0b,0x08,0x00,0x00,0x07,0x66,0xf6,0x12,0xee,0x00,0x17,0x1d,0x7c, //00003920 ........f......| 1895: 0x00,0xcc,0x00,0x05,0x53,0x83,0x66,0xcc,0x70,0x00,0x4c,0xdf,0x02,0x08,0x4e,0x75, //00003930 .フ..Sデフp.L゚..Nu 1896: 0x00,0x00,0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x45,0xfa, //00003940 ......NU..H躋pE. 1897: 0xff,0xf0,0x61,0x00,0x01,0x2c,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x01,0x00, //00003950 ..a..,L゚.JN]Nu.. 1898: 0x00,0x00,0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x45,0xfa,0xff,0xf0, //00003960 ....NU..H躋pE... 1899: 0x61,0x00,0x01,0x0e,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x08,0x00,0x00,0x00, //00003970 a...L゚.JN]Nu.... 1900: 0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49,0x45,0xfa,0xff,0xee, //00003980 ..NU..H躋p&IE..獷 1901: 0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x2c,0x02,0x43,0xed, //00003990 ...r..レQノ..,.C. 1902: 0xff,0xf0,0x13,0x46,0x00,0x03,0xe0,0x8e,0x13,0x46,0x00,0x02,0xe0,0x8e,0x13,0x46, //000039a0 ...F..燻.F..燻.F 1903: 0x00,0x01,0x13,0x43,0x00,0x04,0x61,0x00,0x00,0x92,0x4a,0x80,0x66,0x00,0x00,0x82, //000039b0 ...C..a..谷.f..ゃ 1904: 0xe1,0x8b,0xeb,0xab,0x22,0x4b,0x61,0x00,0xf1,0x46,0x0c,0x80,0xff,0xff,0xff,0xff, //000039c0 躯ォ"Ka..F...... 1905: 0x67,0x6e,0x0c,0x80,0xff,0xff,0xff,0xfe,0x67,0x0c,0x61,0x00,0x00,0xba,0x4c,0xdf, //000039d0 gn......g.a..コL゚ 1906: 0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x61,0x00,0x00,0xae,0x4a,0x80,0x66,0x02,0x70,0xfe, //000039e0 .JN]Nua..ョJ.f.p. 1907: 0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //000039f0 L゚.JN]Nu%....... 1908: 0x00,0x00,0x4e,0x55,0xff,0xf0,0x48,0xe7,0x52,0x70,0x26,0x49,0x43,0xed,0xff,0xf0, //00003a00 ..NU..H躋p&IC... 1909: 0x45,0xfa,0xff,0xe6,0x72,0x09,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0, //00003a10 E..誡..レQノ..C... 1910: 0x61,0x28,0x4a,0x80,0x66,0x1a,0x22,0x4b,0x76,0x08,0x61,0x00,0xfc,0x5a,0x0c,0x80, //00003a20 a(J.f."Kv.a..Z.. 1911: 0xff,0xff,0xff,0xff,0x67,0x0a,0x61,0x5e,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75, //00003a30 ....g.a^L゚.JN]Nu 1912: 0x70,0xff,0x4c,0xdf,0x0e,0x4a,0x4e,0x5d,0x4e,0x75,0x48,0xe7,0x48,0x00,0x32,0x3c, //00003a40 p.L゚.JN]NuH踪.2< 1913: 0x00,0x01,0x61,0x00,0xfa,0x6c,0x4a,0x80,0x67,0x06,0x51,0xc9,0xff,0xf6,0x60,0x18, //00003a50 ..a..lJ.g.Qノ..`. 1914: 0x48,0x44,0xeb,0x0c,0x89,0x29,0x00,0x01,0x61,0x00,0xfb,0x64,0x4a,0x80,0x66,0x08, //00003a60 HD...)..a..dJ.f. 1915: 0x70,0x00,0x4c,0xdf,0x00,0x12,0x4e,0x75,0x70,0xff,0x4c,0xdf,0x00,0x12,0x4e,0x75, //00003a70 p.L゚..Nup.L゚..Nu 1916: 0x43,0xed,0xff,0xf0,0x72,0x05,0x12,0xda,0x51,0xc9,0xff,0xfc,0x43,0xed,0xff,0xf0, //00003a80 C...r..レQノ..C... 1917: 0x61,0xb8,0x4a,0x80,0x66,0x24,0x43,0xed,0xff,0xff,0x61,0x00,0xfc,0x34,0x4a,0x80, //00003a90 aクJ.f$C...a..4J. 1918: 0x66,0x18,0x43,0xed,0xff,0xfe,0x61,0x00,0xfc,0x74,0x4a,0x80,0x66,0x0c,0x10,0x2d, //00003aa0 f.C...a..tJ.f..- 1919: 0xff,0xfe,0x48,0x40,0x10,0x2d,0xff,0xff,0x4e,0x75,0x70,0xff,0x4e,0x75,0x48,0xe7, //00003ab0 ..H@.-..Nup.NuH鈞 1920: 0xe0,0x80,0x41,0xf9,0x00,0xe8,0x80,0x23,0x72,0x00,0x12,0x10,0x12,0x10,0x74,0x00, //00003ac0 .A..閠#r.....t. 1921: 0x14,0x10,0xb4,0x10,0x65,0xf8,0x92,0x42,0x64,0x04,0xd2,0x7c,0x00,0xc8,0xc3,0x42, //00003ad0 ..エ.e.達d.メ|.ネテB 1922: 0x90,0x82,0x62,0xea,0x4c,0xdf,0x01,0x07,0x4e,0x75,0x48,0xe7,0xf8,0x42,0x70,0x80, //00003ae0 垂b鶚゚..NuH鋩Bp. 1923: 0x32,0x3c,0x01,0x40,0x43,0xfa,0x00,0xc6,0x4e,0x4f,0x21,0xc0,0x0c,0xc0,0x70,0x80, //00003af0 2<.@C..ニNO!タ.タp. 1924: 0x32,0x3c,0x01,0x41,0x43,0xfa,0x02,0x92,0x4e,0x4f,0x21,0xc0,0x0c,0xc4,0x70,0x80, //00003b00 2<.AC..誰O!タ.トp. 1925: 0x32,0x3c,0x01,0x43,0x43,0xfa,0x03,0x04,0x4e,0x4f,0x21,0xc0,0x0c,0xc8,0x70,0x80, //00003b10 2<.CC...NO!タ.ネp. 1926: 0x32,0x3c,0x01,0x44,0x43,0xfa,0x00,0xdc,0x4e,0x4f,0x21,0xc0,0x0c,0xcc,0x70,0x80, //00003b20 2<.DC..ワNO!タ.フp. 1927: 0x32,0x3c,0x01,0x45,0x43,0xfa,0x01,0xdc,0x4e,0x4f,0x21,0xc0,0x0c,0xd0,0x70,0x80, //00003b30 2<.EC..ワNO!タ.ミp. 1928: 0x32,0x3c,0x01,0x46,0x43,0xfa,0x01,0xbe,0x4e,0x4f,0x21,0xc0,0x0c,0xd4,0x70,0x80, //00003b40 2<.FC..セNO!タ.ヤp. 1929: 0x32,0x3c,0x01,0x47,0x43,0xfa,0x00,0x74,0x4e,0x4f,0x21,0xc0,0x0c,0xd8,0x70,0x80, //00003b50 2<.GC..tNO!タ.リp. 1930: 0x32,0x3c,0x01,0x48,0x43,0xfa,0x00,0x72,0x4e,0x4f,0x21,0xc0,0x0c,0xdc,0x70,0x80, //00003b60 2<.HC..rNO!タ.ワp. 1931: 0x32,0x3c,0x01,0x4b,0x43,0xfa,0x00,0x70,0x4e,0x4f,0x21,0xc0,0x0c,0xe0,0x70,0x80, //00003b70 2<.KC..pNO!タ.瀾. 1932: 0x32,0x3c,0x01,0x4d,0x43,0xfa,0x00,0x6e,0x4e,0x4f,0x21,0xc0,0x0c,0xe4,0x70,0x80, //00003b80 2<.MC..nNO!タ.舊. 1933: 0x32,0x3c,0x01,0x4f,0x43,0xfa,0x00,0xca,0x4e,0x4f,0x21,0xc0,0x0c,0xe8,0x32,0x3c, //00003b90 2<.OC..ハNO!タ..2< 1934: 0x80,0x00,0x74,0x0f,0x22,0x7c,0x00,0x00,0x00,0x00,0x61,0x00,0x02,0x6e,0xd2,0x7c, //00003ba0 ..t."|....a..nメ| 1935: 0x01,0x00,0x51,0xca,0xff,0xf0,0x4c,0xdf,0x42,0x1f,0x4e,0x75,0x2f,0x38,0x0c,0xc0, //00003bb0 ..Qハ..L゚B.Nu/8.タ 1936: 0x48,0xe7,0x48,0x04,0x4b,0xfa,0xf4,0x14,0x60,0x48,0x2f,0x38,0x0c,0xd8,0x48,0xe7, //00003bc0 H踪.K...`H/8.リH踪 1937: 0x48,0x04,0x4b,0xfa,0xfd,0x90,0x60,0x3a,0x2f,0x38,0x0c,0xdc,0x48,0xe7,0x48,0x04, //00003bd0 .K..秦:/8.ワH踪. 1938: 0x4b,0xfa,0xf5,0x30,0x60,0x2c,0x2f,0x38,0x0c,0xe0,0x48,0xe7,0x48,0x04,0x4b,0xfa, //00003be0 K..0`,/8.潯踪.K. 1939: 0xf4,0xd6,0x60,0x1e,0x2f,0x38,0x0c,0xe4,0x48,0xe7,0x48,0x04,0x4b,0xfa,0xf4,0x7a, //00003bf0 .ヨ`./8.腥踪.K..z 1940: 0x60,0x10,0x2f,0x38,0x0c,0xcc,0x48,0xe7,0x48,0x04,0x4b,0xfa,0xfd,0x3a,0x60,0x00, //00003c00 `./8.フH踪.K..:`. 1941: 0x00,0x02,0x78,0x00,0x38,0x01,0x02,0x41,0xf0,0x00,0xb2,0x7c,0x80,0x00,0x66,0x3a, //00003c10 ..x.8..A..イ|..f: 1942: 0xe0,0x4c,0xe2,0x4c,0x64,0x04,0x08,0xc4,0x00,0x10,0x02,0x44,0x00,0x07,0x09,0x39, //00003c20 澂祗d..ト...D...9 1943: 0x00,0xed,0x00,0x71,0x67,0x24,0x4e,0x95,0x02,0x80,0xff,0xff,0xff,0x1e,0x4a,0x80, //00003c30 ...qg$N.......J. 1944: 0x66,0x0a,0x70,0x00,0x4c,0xdf,0x20,0x12,0x58,0x8f,0x4e,0x75,0x00,0x80,0xff,0xff, //00003c40 f.p.L゚ .X蒐u.... 1945: 0xff,0x00,0x4c,0xdf,0x20,0x12,0x58,0x8f,0x4e,0x75,0x4c,0xdf,0x20,0x12,0x4e,0x75, //00003c50 ..L゚ .X蒐uL゚ .Nu 1946: 0x2f,0x38,0x0c,0xe8,0x48,0xe7,0x7f,0x48,0x78,0x00,0x38,0x01,0x02,0x41,0xf0,0x00, //00003c60 /8.鍠..Hx.8..A.. 1947: 0xb2,0x7c,0x80,0x00,0x66,0x6e,0x22,0x04,0xe0,0x4c,0xe2,0x4c,0x64,0x04,0x08,0xc4, //00003c70 イ|..fn".澂祗d..ト 1948: 0x00,0x10,0x02,0x44,0x00,0x07,0x09,0x39,0x00,0xed,0x00,0x71,0x67,0x4e,0x49,0xf9, //00003c80 ...D...9...qgNI. 1949: 0x00,0x00,0x09,0xfe,0x20,0x01,0xe0,0x58,0xc0,0xbc,0x00,0x00,0x00,0x0f,0xd9,0xc0, //00003c90 .... .濆タシ....ルタ 1950: 0x10,0x14,0x08,0x00,0x00,0x07,0x66,0x34,0xc0,0x3c,0x00,0x7f,0x67,0x2e,0x24,0x3c, //00003ca0 ......f4タ<..g.$< 1951: 0x00,0x01,0x56,0x60,0x43,0xfa,0x02,0x84,0xb0,0x3c,0x00,0x14,0x67,0x1a,0x24,0x3c, //00003cb0 ..V`C..┣<..g.$< 1952: 0x00,0x02,0xac,0xc0,0x43,0xfa,0x02,0x88,0xb0,0x3c,0x00,0x28,0x67,0x0a,0x24,0x3c, //00003cc0 ..ャタC..芦<.(g.$< 1953: 0x00,0x00,0xaf,0x50,0x43,0xfa,0x02,0x50,0x61,0x00,0xf3,0x00,0x4c,0xdf,0x12,0xfe, //00003cd0 ..ッPC..Pa...L゚.. 1954: 0x58,0x8f,0x4e,0x75,0x4c,0xdf,0x12,0xfe,0x4e,0x75,0x02,0x41,0xf0,0x00,0xb2,0x7c, //00003ce0 X蒐uL゚..Nu.A..イ| 1955: 0x80,0x00,0x66,0x0a,0x4c,0xdf,0x00,0x02,0x58,0x8f,0x70,0x00,0x4e,0x75,0x4c,0xdf, //00003cf0 ..f.L゚..X術.NuL゚ 1956: 0x00,0x02,0x4e,0x75,0x2f,0x38,0x0c,0xd4,0x48,0xe7,0x7e,0x64,0x4b,0xfa,0xef,0xea, //00003d00 ..Nu/8.ヤH轜dK..鸛 1957: 0x60,0x10,0x2f,0x38,0x0c,0xd0,0x48,0xe7,0x7e,0x64,0x4b,0xfa,0xf0,0x4a,0x60,0x00, //00003d10 ./8.ミH轜dK..J`. 1958: 0x00,0x02,0x78,0x00,0x38,0x01,0x02,0x41,0xf0,0x00,0xb2,0x7c,0x80,0x00,0x66,0x62, //00003d20 ..x.8..A..イ|..fb 1959: 0xe0,0x4c,0xe2,0x4c,0x64,0x04,0x08,0xc4,0x00,0x10,0x02,0x44,0x00,0x07,0x09,0x39, //00003d30 澂祗d..ト...D...9 1960: 0x00,0xed,0x00,0x71,0x67,0x4c,0x2c,0x03,0x26,0x06,0xd6,0xbc,0x00,0x00,0x00,0xff, //00003d40 ...qgL,.&.ヨシ.... 1961: 0xe0,0x8b,0xb6,0xbc,0x00,0x00,0x01,0x00,0x63,0x06,0x26,0x3c,0x00,0x00,0x01,0x00, //00003d50 煖カシ....c.&<.... 1962: 0x7a,0x00,0x4e,0x95,0x02,0x80,0xff,0xff,0xff,0x1e,0x4a,0x80,0x66,0x16,0xd4,0x83, //00003d60 z.N.......J.f.ヤ. 1963: 0x22,0x03,0xe1,0x89,0xd3,0xc1,0x9c,0x81,0x62,0xce,0x4c,0xdf,0x26,0x7e,0x58,0x8f, //00003d70 ".瘟モチ怐bホL゚&~X術 1964: 0x70,0x00,0x4e,0x75,0x4c,0xdf,0x26,0x7e,0x58,0x8f,0x00,0x80,0xff,0xff,0xff,0x00, //00003d80 .NuL゚&~X....... 1965: 0x4e,0x75,0x4c,0xdf,0x26,0x7e,0x4e,0x75,0x4e,0x54,0xff,0x00,0x48,0xe7,0x7e,0x60, //00003d90 NuL゚&~NuNT..H轜` 1966: 0x78,0x00,0x38,0x01,0x02,0x41,0xf0,0x00,0xb2,0x7c,0x80,0x00,0x66,0x60,0x22,0x04, //00003da0 x.8..A..イ|..f`". 1967: 0xe0,0x4c,0xe2,0x4c,0x64,0x04,0x08,0xc4,0x00,0x10,0x02,0x44,0x00,0x07,0x09,0x39, //00003db0 澂祗d..ト...D...9 1968: 0x00,0xed,0x00,0x71,0x67,0x48,0x24,0x49,0x2c,0x03,0x26,0x06,0xb6,0xbc,0x00,0x00, //00003dc0 ...qgH$I,.&.カシ.. 1969: 0x01,0x00,0x65,0x06,0x26,0x3c,0x00,0x00,0x01,0x00,0x43,0xec,0xff,0x00,0x61,0x00, //00003dd0 ..e.&<....C...a. 1970: 0xff,0x24,0x2a,0x03,0x53,0x85,0xb5,0x09,0x66,0x14,0x51,0xcd,0xff,0xfa,0x52,0x82, //00003de0 .$*.S.オ.f.Qヘ..R. 1971: 0x9c,0x83,0x62,0xd6,0x4c,0xdf,0x06,0x7e,0x4e,0x5c,0x70,0x00,0x4e,0x75,0x70,0xfe, //00003df0 怎bヨL゚.~N\p.Nup. 1972: 0x4c,0xdf,0x06,0x7e,0x4e,0x5c,0x00,0x80,0xff,0xff,0xff,0x00,0x4e,0x75,0x4c,0xdf, //00003e00 L゚.~N\......NuL゚ 1973: 0x06,0x7e,0x4e,0x5c,0x2f,0x38,0x0c,0xc4,0x4e,0x75,0x4e,0x54,0xff,0x00,0x48,0xe7, //00003e10 .~N\/8.トNuNT..H輾 1974: 0x78,0x44,0x78,0x00,0x38,0x01,0x02,0x41,0xf0,0x00,0xb2,0x7c,0x80,0x00,0x66,0x46, //00003e20 Dx.8..A..イ|..fF 1975: 0xe0,0x4c,0xe2,0x4c,0x64,0x04,0x08,0xc4,0x00,0x10,0x02,0x44,0x00,0x07,0x09,0x39, //00003e30 澂祗d..ト...D...9 1976: 0x00,0xed,0x00,0x71,0x67,0x30,0x20,0x09,0x67,0x38,0x76,0x0a,0x61,0x00,0xf1,0xd6, //00003e40 ...qg0 .g8v.a..ヨ 1977: 0x02,0x80,0xff,0xff,0xff,0x1e,0x4a,0x80,0x66,0x0e,0x61,0x00,0x00,0x8c,0x70,0x00, //00003e50 ......J.f.a..継. 1978: 0x4c,0xdf,0x22,0x1e,0x4e,0x5c,0x4e,0x75,0x00,0x80,0xff,0xff,0xff,0x00,0x4c,0xdf, //00003e60 L゚".N\Nu......L゚ 1979: 0x22,0x1e,0x4e,0x5c,0x4e,0x75,0x4c,0xdf,0x22,0x1e,0x4e,0x5c,0x2f,0x38,0x0c,0xc8, //00003e70 ".N\NuL゚".N\/8.ネ 1980: 0x4e,0x75,0x76,0x0a,0x43,0xfa,0x00,0xb4,0x61,0x00,0xf1,0x9a,0x02,0x80,0xff,0xff, //00003e80 Nuv.C..エa....... 1981: 0xff,0x1e,0x4a,0x80,0x66,0xd2,0x43,0xec,0xff,0x00,0x74,0x04,0x76,0x01,0x7a,0x00, //00003e90 ..J.fメC...t.v.z. 1982: 0x61,0x00,0xee,0x56,0x02,0x80,0xff,0xff,0xff,0x1e,0x4a,0x80,0x66,0xba,0x45,0xec, //00003ea0 a.皞......J.fコE. 1983: 0xff,0x00,0x43,0xfa,0x00,0x68,0x0c,0xaa,0x58,0x36,0x38,0x4b,0x00,0x00,0x66,0xa8, //00003eb0 ..C..h.ェX68K..fィ 1984: 0x43,0xfa,0x00,0x5a,0x20,0x2a,0x00,0x04,0xb0,0xbc,0x00,0x00,0x9f,0xd9,0x65,0x00, //00003ec0 C..Z *..ーシ..渟e. 1985: 0xff,0x7a,0x43,0xe9,0x00,0x14,0xb0,0xbc,0x00,0x01,0x3d,0x1d,0x65,0x00,0xff,0x6c, //00003ed0 .zC...ーシ..=.e..l 1986: 0x43,0xe9,0x00,0x14,0x60,0x00,0xff,0x64,0x4b,0xf9,0x00,0x00,0x09,0xfe,0x20,0x01, //00003ee0 C...`..dK..... . 1987: 0xe0,0x58,0xc0,0xbc,0x00,0x00,0x00,0x0f,0xdb,0xc0,0x10,0x3c,0x00,0x28,0x0c,0x29, //00003ef0 濆タシ....ロタ.<.(.) 1988: 0x00,0x07,0x00,0x03,0x67,0x10,0x10,0x3c,0x00,0x14,0x0c,0x29,0x00,0x02,0x00,0x04, //00003f00 ....g..<...).... 1989: 0x67,0x04,0x10,0x3c,0x00,0x0a,0x1a,0x80,0x42,0x80,0x4e,0x75,0x01,0x01,0x00,0x03, //00003f10 g..<....B.Nu.... 1990: 0x01,0x35,0x80,0x00,0x00,0x00,0x01,0x01,0x00,0x03,0x01,0x54,0x80,0x00,0x00,0x00, //00003f20 .5.........T.... 1991: 0x01,0x01,0x00,0x03,0x02,0x66,0x80,0x00,0x00,0x00,0x01,0x01,0x00,0x03,0x02,0x98, //00003f30 .....f.......... 1992: 0x80,0x00,0x00,0x00,0x01,0x01,0x00,0x07,0x02,0x66,0x80,0x00,0x00,0x00,0x01,0x01, //00003f40 .........f...... 1993: 0x00,0x07,0x02,0x98,0x80,0x00,0x00,0x00, //00003f50 ........ 1994: }; 1995: */ 1996: // perl misc/itob.pl xeij/SPC.java SPC_DEVICE_DRIVER 1997: public static final byte[] SPC_DEVICE_DRIVER = "\377\377\377\377@\0\0\0\0n\0\0\0\200\1SCHDISK\0\0\0\0\0\0\1F\0\0\3F\0\0\r\f\0\0\0\370\0\0\7\236\0\0\3\260\0\0\0\270\0\0\0\270\0\0\b\24\0\0\b\6\0\0\0\270\0\0\0\270\0\0\1,\0\0\0\1p\2p\7p\fp\b\0\1p\rp\fp\fp\fp\fp\fp\fp\fp\fH\347\0\2M\372\r\310-M\0\0L\337@\0NuH\347\177\376M\372\r\266*n\0\0p\0\20-\0\2\f\0\0\fb\32\"m\0\16A\372\377|\320@\320@\321\300 P \bA\372\377T\321\300N\3200<p\f`\2B@2\0\33A\0\3\340I\33A\0\4J@g\22Jn\5\254f\6Jn\5\256g\6=|\377\377\5\262L\337\177\376NuJ\256\5\312g\312\"n\5\312p\200\"<\0\0\1\365NO`\272 m\0\16 -\0\22\f\200\0\0\0\bg\24\f\200\0\0\0\4f\2500\356\5\304 .\5\2500\200`\2340\356\5\304 .\5\2500\300 \256\5\306`\214 m\0\16 -\0\22\f\200\0\0\0\2f\0\377|=P\5\304`\0\377t\f-\0\27\0\26d\0\377dS\202\2\202\0\0\0\17-B\5\250\59\0\0\f\354f\0\377Na\0\32\270-@\5\312 <\0\0\0\365r$(.\5\250NO\260\274\0\0\0\0gd\260\274\377\377\377\377g\0\377V\260\274\0\0\0\bgP\260\274\0\0\0\2f\0\377D <\0\0\0\365r,v\16(.\5\250C\356\5\322NO\260\274\0\0\0\0f\0\377&C\356\5\322\20\21\2\0\0p\f\0\0pf\0\377\24\20)\0\2g\20\260<\0\1g\n\260<\0\6g\4`\0\376\376`\206p\365r+(.\5\250NOJ\200f\0\376\354p\365r%(.\5\250C\356\5\322NOJ\200f\0\376\330C\356\5\322\")\0\4\262\274\0\0\4\0g\30\262\274\0\0\2\0g\b=|\0\2\5\240`\16=|\0\1\5\240`\6=|\0\0\5\240\340\211\342\211-A\5\244C\356\5\322*.\5\244t\0\345\212\352\252v\1\345\213\352\253(.\5\250p\365r!NOJ\200f\0\376~\f\221X68Sf\0\376t\f\251CSI1\0\4f\0\376h\35i\0\16\5\260=|\0\0\5\254=|\0\0\5\256\f)\0\1\0\17g\20\f)\0\2\0\17f\16=|\377\377\5\256`\6=|\377\377\5\254a\0\3\266J\200f\0\376.JFg\0\376(=|\0\0\5\262=F\5\264J\256\5\312g\6A\3720\212`\4A\372\31L-H\5\316\321\374\0\0\20\0+H\0\16\20-\0\26\320\6\4\0\0\27e\2\234\0\33F\0\rA\356\5D+H\0\22C\356\4\4p\16 \311C\351\0\24Q\310\377\370\33z\375\6\0\26p\17A\356\5\204\20\374\377\377Q\310\377\372$.\5\250\5\371\0\0\f\354p\0=@\5\304-@\5\306-@\r\322-@\r\326a\0\2\246`\0\375tJn\5\254f\"Jn\5\256f\34r\tp\365NO\2\0\0\300g\6r\0p\365NO\33|\0\1\0\16`\0\375La\0\1\352J\200g\2`\34p\0\20-\0\1A\356\5\204A\360\0\0J\20f\n\33|\0\1\0\16`\0\375&p\0\20-\0\1A\356\5\204A\360\0\0\20\274\0\0\33|\377\377\0\16`\0\375\nJn\5\254f@Jn\5\256f:r\tp\365NO\2\0\0\300g\6r\0p\365NO\f-\0\b\0\rd\26\33|\0B\0\rJn\5\304g\6\b\355\0\3\0\r`\0\374\316\33|\377\377\0\r`\0\374\304\20-\0\rg,\260<\0\1gb\260<\0\2gn\260<\0\3g\0\0\210\260<\0\6gp\260<\0\7g\0\0\220\33|\377\377\0\r`\0\374\222a\0\0010J\200g\20\f@\0\1g\n\f@p\2g\36`\0\374|Jn\r\332f\n\33|\0\2\0\r`\0\0\242\33|\0\n\0\r`\0\0\230\33|\0\4\0\r`\0\0\216J\256\5\272f\276J\256\5\266f\270a\0\0\246`\344-|\377\377\377\377\5\266J\256\5\272gV`\272-|\377\377\377\377\5\272J\256\5\266gF`\252J\256\5\266g\244-|\0\0\0\0\5\266J\256\5\272g\32`\224J\256\5\272g\216-|\0\0\0\0\5\272J\256\5\266g\4`\0\377~p\365r2(.\5\250v\0NOJ\200f\0\377T`\0\377hp\365r2(.\5\250v\1NOJ\200f\0\377>`\0\377RJn\5\304g\6\b\355\0\3\0\rJ\256\5\266g\6\b\355\0\4\0\rJ\256\5\272g\6\b\355\0\6\0\r`\0\373\242Jn\5\254f\bJn\5\256f(Nup\2NO\b\0\0\3f\16p\365r0(.\5\250v\0NONup\365r0(.\5\250v\1NONup\365r/(.\5\250v\2NONuH\347p\300p\177NO\262\256\r\326f\22$.\r\322&\0\226\202\f\203\0\0\0de\0\0\342-@\r\322-A\r\326r\tp\365NO\2\0\0\300g\6r\0p\365NO <\0\0\0\365r$(.\5\250NOJ\200g\0\0\222\260\274\0\0\0\bg\322\260\274\0\0\0\2f\0\0\212a\0\7\26J@g\300\260|\0\1fpp\17A\356\5\204\20\374\377\377Q\310\377\372a\0\1&J\200g\f=|\377\377\5\262`\\H\347p\300(.\5\250v\4C\356\5\322t?r)p\365NOJ\200g \f\200\0\0\0\bg\342\f\200\0\0\0\2f2a\0\6\300J@g\322\260|\0\1f\32`\250\b)\0\7\0\2g\b=|\377\377\r\332`\6=|\0\0\r\332p\1-@\r\334L\337\3\16Nu-|\0\0\0\0\r\322-|\0\0\0\0\r\326p\377L\337\3\16Nu .\r\334L\337\3\16NuC\356\5\322*.\5\244t\2\345\212\352\252v\1\345\213\352\253(.\5\250p\365r!NOJ\200fv\f\221X68Kfl&IE\356\4\4|\0~\16G\353\0\20J\23gR\f\223HumafJ\f\253n68k\0\4f@\20+\0\b\b\0\0\0f6$+\0\bC\356\0\4*.\5\244\345\212\352\252v\1\345\213\352\253(.\5\250p\365r!NOJ\200f\34C\351\0\22JQg\nr\4$\331Q\311\377\374RFQ\317\377\244p\0Nup\377NuC\356\5\322*.\5\244t\2\345\212\352\252v\1\345\213\352\253(.\5\250p\365r!NOJ\200f\334\f\221X68Kf\322&IE\356\4\4|\0~\16G\353\0\20J\23gT\f\223HumafL\f\253n68k\0\4fB\20+\0\b\b\0\0\0f8$+\0\bC\356\0\4*.\5\244\352\252\345\212v\1\345\213\352\253(.\5\250p\365r!NOJ\200f\202C\351\0\22r\4 \31\260\232f\0\377tQ\311\377\366RFQ\317\377\242\274n\5\264f\0\377bp\0Nu=|\0\b\5\302=|\0\0\5\300Jn\5\262gDa\0\377LJ\200g,\f\200\377\377\377\377g,\f\200\0\0\0\bg\350\f\200\0\0\0\2f\0\370\342a\0\4\376J@g\n\f@\0\1g\320`\0\370\330=|\0\0\5\262g\b0<p\7`\0\370\310J.\5\260f\6r!`\0\0\212r&`\0\1\354=|\0\b\5\302=|\377\377\5\300`\f=|\0\b\5\302=|\0\0\5\300Jn\5\304g\b0<p\r`\0\370\216Jn\5\262gDa\0\376\310J\200g,\f\200\377\377\377\377g,\f\200\0\0\0\bg\350\f\200\0\0\0\2f\0\370^a\0\4zJ@g\n\260|\0\1g\320`\0\370T=|\0\0\5\262g\b0<p\7`\0\370DJ.\5\260f\4r\"`\6r\'`\0\1j-m\0\16\5\224-m\0\22\5\234p\0\20-\0\1\345\210A\356\5D\321\300 P -\0\26\320\250\0\20-@\5\230<.\5\240$.\5\230\355\252..\5\234\355\257\"n\5\224&\7\266\274\0\0\1\0c\6&<\0\0\1\0p\365(.\5\250*.\5\244NOJ\200g\0\0\322\260\274\377\377\377\377g\0\0\352\260\274\377\377\377\376g\0\0\252\260\274\0\0\0\bg\206\260\274\0\0\0\2f\0\367\250a\0\3\304J@g\0\377t\260|\0\1g\0\377l\f@p\7f\0\367\226\f\201\0\0\0\"f\0\367\214C\356\5\322\b\21\0\7g\0\367\200C\351\0\3\20\31\341\210\20\31\341\210\20\31\341\210\20\31-@\r\340a\0\3ZJ\200g\0\377.\260\274\377\377\377\377gt\260\274\377\377\377\376g6\260\274\0\0\0\bg\336\260\274\0\0\0\2f\0\3676a\0\3RJ@g\0\377\2\260|\0\1g\304g\0\367*R\256\5\306Sn\5\302f\0\376\354`\0\367\32R\256\5\306Sn\5\302f\0\376\3340<p\f`\0\367\6 \3\341\210\353\250\323\300\324\203\236\203b\0\377\0Jn\5\300f\0\1h=|\0\0\5\276`\0\366\342Jn\5\276f\0\366\324r\0p\365NO=|\377\377\5\276`\0\376\232-m\0\16\5\224-m\0\22\5\234p\0\20-\0\1\345\210A\356\5D\321\300 P -\0\26\320\250\0\20-@\5\230<.\5\240$.\5\230\355\252&.\5\234\355\253\"n\5\224p\365(.\5\250*.\5\244NOJ\200g\0\0\320\260\274\377\377\377\377g\0\0\326\260\274\377\377\377\376g\0\0\250\260\274\0\0\0\bg\226\260\274\0\0\0\2f\0\366Pa\0\2lJ@g\204\260|\0\1g\0\377~\f@p\7f\0\366@\f\201\0\0\0\'f\0\3666C\356\5\322\b\21\0\7g\0\366*C\351\0\3\20\31\341\210\20\31\341\210\20\31\341\210\20\31-@\r\340a\0\2\4J\200g\0\377@\260\274\377\377\377\377gb\260\274\377\377\377\376g6\260\274\0\0\0\bg\336\260\274\0\0\0\2f\0\365\340a\0\1\374J@g\0\377\24\260|\0\1g\304`\0\365\324R\256\5\306Sn\5\302f\0\376\376`\0\365\304R\256\5\306Sn\5\302f\0\375\2060<p\f`\0\365\260=|\0\0\5\276Jn\5\300f\34`\0\365\236Jn\5\276f\0\365\220r\0p\365NO=|\377\377\5\276`\0\376\276=|\0\b\5\302-m\0\16\5\224-m\0\22\5\234p\0\20-\0\1\345\210A\356\5D\321\300 P -\0\26\320\250\0\20-@\5\230:.\5\240$.\5\230\353\252..\5\234\353\257|\4\353\256(.\5\250*.\5\244$n\5\224\276\206d\4&\7`\2&\6\"n\5\316r!p\365NOJ\200g\0\0\310\260\274\377\377\377\377g\0\0\344\260\274\377\377\377\376g\0\0\240\260\274\0\0\0\bg\0\377|\260\274\0\0\0\2f\0\364\360a\0\1\fJ@g\0\377h\260|\0\1g\0\377`\f@p\7f\0\364\336C\356\5\322\b\21\0\7g\0\364\322C\351\0\3\20\31\341\210\20\31\341\210\20\31\341\210\20\31-@\r\340a\0\0\254J\200g\0\374p\260\274\377\377\377\377gv\260\274\377\377\377\376g4\260\274\0\0\0\bg\336\260\274\0\0\0\2f\0\364\210a\0\0\244J@g\314\260|\0\1g\306`\0\364~R\256\5\306Sn\5\302f\0\376\354`\0\364nR\256\5\306Sn\5\302f\0\37400<p\f`\0\364Z \3\341\210\353\2502\0SA\265\tf0Q\311\377\372\323\300\324\203\236\203b\0\377\6=|\0\0\5\276`\0\3642Jn\5\276f\0\364$r\0p\365NO=|\377\377\5\276`\0\376\226=|\0\0\5\2760<p\13`\0\364\16H\347\20@ .\r\340C\356\5\3222\374\0\0002\374\0\4\"\300C\356\5\322v\badL\337\2\bNuH\347@@p\365r,(.\5\250v\16C\356\5\322NOJ\200f\30BA\22)\0\2\343IC\372\363Zp\00001\20\0L\337\2\2Nu0<p\fL\337\2\2Nup\0\20-\0\1\345\210A\356\5D\321\300+H\0\22 P\33h\0\n\0\r`\0\363\220\7\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374C\355\377\360a(J\200f\32\"Kr\5p\365NO\f\200\377\377\377\377g\naLL\337\16JN]Nup\377L\337\16JN]NuH\347h\0002<\0\1r\1p\365NOJ\200g\6Q\312\377\364`\32HD\353\f\211)\0\1r\3p\365NOJ\200f\bp\0L\337\0\26Nup\377L\337\0\26NuC\355\377\377r\6p\365NOJ\200f\32C\355\377\376r\7p\365NOJ\200f\f\20-\377\376H@\20-\377\377Nup\377Nu\r\nSCSI DISK DRIVER for X68000 version 1.04\r\nCopyright 1990-92 SHARP/First Class Technology\r\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\347\b\0p\365r\nNO\f\200\0\0\0\4d6a\0\0\316A\372\1\34\b\4\0\0g\b \274\0\351` `\f\b\4\0\1g\32 \274\0\352\0\0p\200\"<\0\0\1\365C\372\0\372NOL\337\0\20Nup\0L\337\0\20NuH\347\0\242x\0A\371\0\374\0\0a\0\0\236J\200f\26\f\250SCSI\0$f\f\fhIN\0(f\4\b\304\0\0A\371\0\352\0 azJ\200f\26\f\250SCSI\0$f\f\fhEX\0(f\4\b\304\0\1\23\374\0001\0\350\340\r\f9\0V\0\355\0og\30\23\374\0V\0\355\0o\23\374\0\7\0\355\0p\23\374\0\0\0\355\0q\b\4\0\0f\b\b\371\0\3\0\355\0p\23\374\0\0\0\350\340\rL\337E\0Nua\0\377l\b9\0\3\0\355\0pf\6\b\204\0\1Nu\b\204\0\0Nu,OC\372\0($y\0\0\0\b#\311\0\0\0\b \20\b\0\0\0f\22\260\274\0 \0\0e\n#\312\0\0\0\bp\0Nu.N#\312\0\0\0\bp\377Nu\0\351` H\347Pb\262\274\0\0\0\20e\30\262\274\0\0\0 e@\262\274\0\0\0@e\16\262\274\0\0\0 e0E\372\0:`\26\222\274\0\0\0 E\372\0n`\n\222\274\0\0\0@E\372\0\342\345\211,z\377\270\"2\20\0\325\301N\222L\337F\nNup\377L\337F\nNup\377Nu\0\0\n\b\0\0\13\b\0\0\n\350\0\0\f\26\0\0\1V\0\0\1\0\0\0\r\30\0\0\rd\0\0\r\260\0\0\r\372\0\0\16\16\0\0\f\316\0\0\f\204\377\377\377\374\377\377\377\374\377\377\377\374\0\0\1v\0\0\3\0\0\0\3n\0\0\4\336\0\0\17N\0\0\20\n\0\0\3\340\0\0\4L\0\0\4\312\0\0\2\22\0\0\2d\0\0\17l\0\0\1\304\0\0\5\342\0\0\17\212\0\0\5`\0\0\5\240\0\0\2\266\0\0\5 \377\377\377\274\377\377\377\274\377\377\377\274\0\0\6,\0\0\6\200\0\0\6\316\0\0\7\32\377\377\377\274\377\377\377\274\377\377\377\274\377\377\377\274\377\377\377\274\377\377\377\274\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377<H\347\0\2,z\376\226\20.\0\t\b\0\0\5f8\20.\0\13\b\0\0\7g\354\2\0\0\7\260<\0\0f\32a\0\6\224H@f\6L\337@\0NuJ@g\bH@L\337@\0Nu\20.\0\13L\337@\0Nua\0\b\274p\377L\337@\0NuH\347\0\2,z\376@\20.\0\t\b\0\0\5f<\20.\0\13\b\0\0\7g\354\2\0\0\7\2\0\0\7\260<\0\1f\32a\0\6FH@f\6L\337@\0NuJ@g\bH@L\337@\0Nu\20.\0\13L\337@\0Nua\0\bbp\377L\337@\0Nu\22\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\23C\0\4a\0\16\270J\200f\0\5\322\"Ka\0\n\350\f\200\377\377\377\377g\0\5\302a\0\16\352L\337\16JN]Nu\3\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\23C\0\4a\0\16jJ\200f\0\5\204\"Ka\0\n\232\f\200\377\377\377\377g\0\5ta\0\16\234L\337\16JN]Nu\32\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\23C\0\4\23B\0\2a\0\16\30J\200f\0\0052\"Ka\0\nH\f\200\377\377\377\377g\0\5\"a\0\16JL\337\16JN]Nu\25\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\23C\0\4\23B\0\1a\0\r\306J\200f\0\4\340\"Ka\0\t\254\f\200\377\377\377\377g\0\4\320a\0\r\370L\337\16JN]Nu\7\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374C\355\377\360a\0\r|J\200f\0\4\226\"Ka\0\tb\f\200\377\377\377\377g\0\4\206a\0\r\256L\337\16JN]Nu\b\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374,\2C\355\377\360\23F\0\3\340\216\23F\0\2\340\216\23F\0\1\23C\0\4a\0\r\34J\200f\0\0046\341\213\353\253\"Ka\0\375\320\f\200\377\377\377\377g\0\4\"\f\200\377\377\377\376g\0\1Ta\0\r@L\337\16JN]Nu\n\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374,\2C\355\377\360\23F\0\3\340\216\23F\0\2\340\216\23F\0\1\23C\0\4a\0\f\256J\200f\0\3\310\341\213\353\253\"Ka\0\375\f\f\200\377\377\377\377g\0\3\264\f\200\377\377\377\376g\0\0\346a\0\f\322L\337\16JN]Nu(\0\0\0\0\0\0\0\0\0NU\377\360H\347Rp&IC\355\377\360E\372\377\346r\t\22\332Q\311\377\374,\3C\355\377\360#B\0\2\23C\0\b\340\213\23C\0\7a\0\fBJ\200f\0\3\\&\6\341\213\353\253\"Ka\0\374\364\f\200\377\377\377\377g\0\3F\f\200\377\377\377\376gxa\0\ffL\337\16JN]Nu*\0\0\0\0\0\0\0\0\0NU\377\360H\347RpE\372\377\354&IC\355\377\360r\t\22\332Q\311\377\374,\3C\355\377\360#B\0\2\23C\0\b\340\213\23C\0\7a\0\13\326J\200f\0\2\360&\6\341\213\353\253\"Ka\0\3742\f\200\377\377\377\377g\0\2\332\f\200\377\377\377\376g\fa\0\13\372L\337\16JN]Nua\0\13\356J\200f\2p\376L\337\16JN]Nu/\0\0\0\0\0\0\0\0\0NU\377\360H\347RpE\372\377\354`\200\4\0\0\0\0\0NU\377\360H\347RpE\372\377\360C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\23C\0\4\340\213\23C\0\3a\0\13LJ\200f\0\2fa\0\13\216L\337\16JN]Nu\36\0\0\0\0\0NU\377\360H\347RpE\372\377\360C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\2\3\0\1\23C\0\4a\0\13\fJ\200f\0\2&a\0\13NL\337\16JN]Nu\33\0\0\0\0\0NU\377\360H\347RpE\372\377\360C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\2\3\0\3\23C\0\4a\0\n\314J\200f\0\1\346a\0\13\16L\337\16JN]Nu\301\0\0\0\0\0NU\377\360H\347RpE\372\377\360C\355\377\360r\5\22\332Q\311\377\374C\355\377\360\2\3\0\1\23C\0\4v\6a\0\n\212J\200f\0\1\244a\0\n\314L\337\16JN]Nu\13\0\0\0\0\0NU\377\360H\347RpE\372\377\360C\355\377\360r\5\22\332Q\311\377\374,\2C\355\377\360\23F\0\3\340\216\23F\0\2\340\216\23F\0\1a\0\n@J\200f\0\1Za\0\n\202L\337\16JN]Nu\302\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374\"\3C\355\377\360\23A\0\5v\6a\0\t\376J\200f\0\1\30&\1\"Ka\0\5\342\f\200\377\377\377\377g\0\1\6a\0\n.L\337\16JN]Nu\6\0\0\0\0\0NU\377\360H\347RpE\372\377\360C\355\377\360r\5\22\332Q\311\377\374C\355\377\360,\2\23F\0\3\340\216\23F\0\2\340\216\23F\0\1\23C\0\4a\0\t\236J\200f\0\0\270a\0\t\340L\337\16JN]Nu\7\0\0\0\0\0NU\377\360H\347RpE\372\377\360C\355\377\360r\5\22\332Q\311\377\374C\355\377\360,\2\23F\0\3\340\216\23F\0\2\340\216\23F\0\1\23C\0\4a\0\tPJ\200fja\0\t\224L\337\16JN]Nu\16\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374C\355\377\360,\2\23F\0\3\340\216\23F\0\2\340\216\23F\0\1\23C\0\4a\0\t\2J\200f\34v\4\"Ka\0\4\350\f\200\377\377\377\377g\fa\0\t6L\337\16JN]Nup\377L\337\16JN]Nu/\13G\372\0\330a8&_Nu/\13G\372\1\250a,H\347\300\0\209\0\350\340\13\350\b\f\0\0\16d\22Nz\0\2\"\0\b\300\0\13N{\0\2N{\20\2L\337\0\3&_NuH\347\0`\20.\0\13\2\0\0\7\35@\0\21 \3\35@\0\35\340\210\35@\0\33\340\210\35@\0\31\20.\0\13\b\0\0\7g\366E\371\0\350@@\25|\0\377\0\0005|\0\0\0\32\25|\0\200\0\4\25|\0\4\0\6A\356\0\25%H\0\24\20.\0\13\b\0\0\7g\366\35|\0\200\0\5N\223J\200f&\b.\0\3\0\tf\22\b.\0\4\0\tg\360\b\356\0\4\0\tp\0`\f\b\356\0\3\0\tp\375`\2p\377%|\0\351`\1\0\24L\337\6\0NuH\347|@\25|\0001\0\5(\3\266\274\0\0\1\0c\b*<\0\0\1\0`\2*\3%I\0\f5E\0\n\b.\0\3\0\tf\0\0\230\b.\0\0\0\rg\356\b.\0\3\0\tf\0\0\206\20.\0\13\b\0\0\7g\354p\0\20.\0\31\341\210\20.\0\33\341\210\20.\0\35\"\4\222\200p\0000*\0\n$\5\224\200\222\202g\b\323\252\0\f\223j\0\n\24\274\377\377\25|\0\200\0\7NqNqNqNqNq\b.\0\3\0\tf2\b.\0\4\0\tf\6\b\22\0\7g\352\b*\0\1\0\1f\0\377|J*\0\1f\30Jj\0\nf\22\323\305\230\205\226\205f\0\377Lp\0`\20p\375`\6p\376`\2p\377\25|\0\20\0\7L\337\2>NuH\347|@\25|\0\261\0\5\266\274\0\0\1\0c\b*<\0\0\1\0`\2*\3%I\0\f5E\0\n\b.\0\3\0\tfR\b.\0\0\0\rf\360\24\274\377\377\25|\0\200\0\7NqNqNqNqNq\b.\0\3\0\tf.\b.\0\4\0\tf\6\b\22\0\7g\352\b*\0\1\0\1f\276J*\0\1f\26Jj\0\nf\20\323\305\230\205\226\205f\220p\0`\20p\375`\6p\376`\2p\377\25|\0\20\0\7L\337\2>NuH\347@B,z\365\216\35|\0\220\0\3\209\0\355\0o\f\0\0Vg:\23\374\0001\0\350\340\r\275\374\0\351` f\n\23\374\0\7\0\355\0p`\b\23\374\0\17\0\355\0p\23\374\0\0\0\355\0q\23\374\0V\0\355\0o\23\374\0\0\0\350\340\r\209\0\355\0p\2\0\0\7\35@\0\1p\0\35@\0\5\35@\0\21\35@\0\31\35@\0\33\35@\0\35\35@\0\27p\200\275\374\0\351` f\4rl`\6\"<\0\0\0\366C\372\08NO\35|\0\20\0\3\35|\0\0\0\13p\2a\0\6X\35|\0\20\0\5p\5a\0\6L\35|\0\0\0\5 <\0\0\234@a\0\6<L\337B\2NuH\347\300\2,z\364\304\20.\0\t\35@\0\tL\337@\3NsH\347\t\2,z\364\256\35|\0\0\0\21\20.\0\r\2\0\0\370f\366\35|\0`\0\5`\30H\347\t\2,z\364\216\35|\0\0\0\21\20.\0\r\2\0\0\370f\366\2D\0\7\20<\0\1\351(\t9\0\355\0qf\f\200.\0\1\35|\0\20\0\3`\6\35|\0\0\0\3\35@\0\0270<\t\304\35@\0\33\340H\35@\0\31\35|\0\3\0\35\35n\0\t\0\t\35|\0 \0\5p\1a\0\5\232\20.\0\tf\b\35|\0\5\0\rf\362\20.\0\r\b\0\0\7g\232\20.\0\tg\360\260<\0\4g&\35@\0\t\260<\0\20g\fH@\20.\0\13L\337@\220Nup\0L\337@\220Nup\377L\337@\220Nup\1a\0\5J\35|\0\0\0\27 <\0\0\2X\35@\0\35\340\210\35@\0\33\340\210\35@\0\31\35|\0\4\0\tp\2a\0\5\"\20.\0\tg\372\35@\0\t\260<\0\4g\b\260<\0\20g\254`\236\b.\0\5\0\rf\370\35n\0\t\0\t\b.\0\7\0\rf\224`\206H\347\20\2,z\363\200\20\21\2\0\0\340\f\0\0\0g\16\260<\0 g\f\260<\0\240g\n`\nv\6`\6v\n`\2v\f\20.\0\t\b\0\0\5f,\20.\0\13\b\0\0\7g\354\2\0\0\7\f\0\0\2f\16a\0\2\246H@f\6L\337@\bNu\20.\0\13L\337@\bNua\0\375\216p\377L\337@\bNuH\347\0\2,z\363\22\20.\0\t\b\0\0\5f,\20.\0\13\b\0\0\7g\354\2\0\0\7\260<\0\0f\16a\0\1fH@f\6L\337@\0Nu\20.\0\13L\337@\0Nua\0\375Dp\377L\337@\0NuH\347\0\2,z\362\310\20.\0\t\b\0\0\5f,\20.\0\13\b\0\0\7g\354\2\0\0\7\260<\0\1f\16a\0\1\234H@f\6L\337@\0Nu\20.\0\13L\337@\0Nua\0\374\372p\377L\337@\0NuH\347\20\2,z\362~\20.\0\t\b\0\0\5f.\20.\0\13\b\0\0\7g\354\2\0\0\7\260<\0\3f\20v\1a\0\2\6H@f\6L\337@\bNu\20.\0\13L\337@\bNua\0\374\256p\377L\337@\bNuH\347\20\2,z\3622\20.\0\t\b\0\0\5f.\20.\0\13\b\0\0\7g\354\2\0\0\7\260<\0\7f\20v\1a\0\1\272H@f\6L\337@\bNu\20.\0\13L\337@\bNua\0\374bp\377L\337@\bNuH\347\20\2,z\361\346\20.\0\t\b\0\0\5f,\20.\0\13\b\0\0\7g\354\2\0\0\7\260<\0\6f\16v\1a8H@f\6L\337@\bNu\20.\0\13L\337@\bNua\0\374\30p\377L\337@\bNuH\347\0\2,z\361\234p\0\20.\0\13L\337@\0Nup\4NuH\347\20@ \3\35@\0\35\340\210\35@\0\33\340\210\35@\0\31\20.\0\13\2\0\0\7\35@\0\21\20.\0\13\b\0\0\7g\366\35n\0\t\0\t\35|\0\200\0\5\20.\0\r\2\0\0\360\260<\0pg\6\260<\0\260f\354J.\0\tf\20\b.\0\1\0\rf\362\35Y\0\25S\203f\352\20.\0\tg\372\35@\0\t\260<\0\20g\6L\337\2\bNup\0L\337\2\bNuH\347\20@\20.\0\13\2\0\0\7\35@\0\21 \3\35@\0\35\340\210\35@\0\33\340\210\35@\0\31\35n\0\t\0\t\35|\0\200\0\5\20.\0\r\2\0\0\360\260<\0pg\6\260<\0\260f\354J.\0\tf\20\b.\0\0\0\rf\362\22\356\0\25S\203f\352\20.\0\tg\372\35@\0\t\260<\0\20g\6L\337\2\bNup\0L\337\2\bNuH\347\20@\20.\0\13\2\0\0\7\35@\0\21\20.\0\13\b\0\0\7g\366\35Y\0\27\35|\0\354\0\5\20.\0\13\b\0\0\7f\366\35|\0\314\0\5S\203f\314p\0L\337\2\bNuH\347\20@\20.\0\13\2\0\0\7\35@\0\21\20.\0\13\b\0\0\7g\366\35|\0\354\0\5\20.\0\13\b\0\0\7f\366\22\356\0\27\35|\0\314\0\5S\203f\314p\0L\337\2\bNu\0\0\0\0\0\0NU\377\360H\347RpE\372\377\360a\0\1,L\337\16JN]Nu\1\0\0\0\0\0NU\377\360H\347RpE\372\377\360a\0\1\16L\337\16JN]Nu\b\0\0\0\0\0NU\377\360H\347Rp&IE\372\377\356C\355\377\360r\5\22\332Q\311\377\374,\2C\355\377\360\23F\0\3\340\216\23F\0\2\340\216\23F\0\1\23C\0\4a\0\0\222J\200f\0\0\202\341\213\353\253\"Ka\0\361F\f\200\377\377\377\377gn\f\200\377\377\377\376g\fa\0\0\272L\337\16JN]Nua\0\0\256J\200f\2p\376L\337\16JN]Nu%\0\0\0\0\0\0\0\0\0NU\377\360H\347Rp&IC\355\377\360E\372\377\346r\t\22\332Q\311\377\374C\355\377\360a(J\200f\32\"Kv\ba\0\374Z\f\200\377\377\377\377g\na^L\337\16JN]Nup\377L\337\16JN]NuH\347H\0002<\0\1a\0\372lJ\200g\6Q\311\377\366`\30HD\353\f\211)\0\1a\0\373dJ\200f\bp\0L\337\0\22Nup\377L\337\0\22NuC\355\377\360r\5\22\332Q\311\377\374C\355\377\360a\270J\200f$C\355\377\377a\0\3744J\200f\30C\355\377\376a\0\374tJ\200f\f\20-\377\376H@\20-\377\377Nup\377NuH\347\340\200A\371\0\350\200#r\0\22\20\22\20t\0\24\20\264\20e\370\222Bd\4\322|\0\310\303B\220\202b\352L\337\1\7NuH\347\370Bp\2002<\1@C\372\0\306NO!\300\f\300p\2002<\1AC\372\2\222NO!\300\f\304p\2002<\1CC\372\3\4NO!\300\f\310p\2002<\1DC\372\0\334NO!\300\f\314p\2002<\1EC\372\1\334NO!\300\f\320p\2002<\1FC\372\1\276NO!\300\f\324p\2002<\1GC\372\0tNO!\300\f\330p\2002<\1HC\372\0rNO!\300\f\334p\2002<\1KC\372\0pNO!\300\f\340p\2002<\1MC\372\0nNO!\300\f\344p\2002<\1OC\372\0\312NO!\300\f\3502<\200\0t\17\"|\0\0\0\0a\0\2n\322|\1\0Q\312\377\360L\337B\37Nu/8\f\300H\347H\4K\372\364\24`H/8\f\330H\347H\4K\372\375\220`:/8\f\334H\347H\4K\372\3650`,/8\f\340H\347H\4K\372\364\326`\36/8\f\344H\347H\4K\372\364z`\20/8\f\314H\347H\4K\372\375:`\0\0\2x\08\1\2A\360\0\262|\200\0f:\340L\342Ld\4\b\304\0\20\2D\0\7\t9\0\355\0qg$N\225\2\200\377\377\377\36J\200f\np\0L\337 \22X\217Nu\0\200\377\377\377\0L\337 \22X\217NuL\337 \22Nu/8\f\350H\347\177Hx\08\1\2A\360\0\262|\200\0fn\"\4\340L\342Ld\4\b\304\0\20\2D\0\7\t9\0\355\0qgNI\371\0\0\t\376 \1\340X\300\274\0\0\0\17\331\300\20\24\b\0\0\7f4\300<\0\177g.$<\0\1V`C\372\2\204\260<\0\24g\32$<\0\2\254\300C\372\2\210\260<\0(g\n$<\0\0\257PC\372\2Pa\0\363\0L\337\22\376X\217NuL\337\22\376Nu\2A\360\0\262|\200\0f\nL\337\0\2X\217p\0NuL\337\0\2Nu/8\f\324H\347~dK\372\357\352`\20/8\f\320H\347~dK\372\360J`\0\0\2x\08\1\2A\360\0\262|\200\0fb\340L\342Ld\4\b\304\0\20\2D\0\7\t9\0\355\0qgL,\3&\6\326\274\0\0\0\377\340\213\266\274\0\0\1\0c\6&<\0\0\1\0z\0N\225\2\200\377\377\377\36J\200f\26\324\203\"\3\341\211\323\301\234\201b\316L\337&~X\217p\0NuL\337&~X\217\0\200\377\377\377\0NuL\337&~NuNT\377\0H\347~`x\08\1\2A\360\0\262|\200\0f`\"\4\340L\342Ld\4\b\304\0\20\2D\0\7\t9\0\355\0qgH$I,\3&\6\266\274\0\0\1\0e\6&<\0\0\1\0C\354\377\0a\0\377$*\3S\205\265\tf\24Q\315\377\372R\202\234\203b\326L\337\6~N\\p\0Nup\376L\337\6~N\\\0\200\377\377\377\0NuL\337\6~N\\/8\f\304NuNT\377\0H\347xDx\08\1\2A\360\0\262|\200\0fF\340L\342Ld\4\b\304\0\20\2D\0\7\t9\0\355\0qg0 \tg8v\na\0\361\326\2\200\377\377\377\36J\200f\16a\0\0\214p\0L\337\"\36N\\Nu\0\200\377\377\377\0L\337\"\36N\\NuL\337\"\36N\\/8\f\310Nuv\nC\372\0\264a\0\361\232\2\200\377\377\377\36J\200f\322C\354\377\0t\4v\1z\0a\0\356V\2\200\377\377\377\36J\200f\272E\354\377\0C\372\0h\f\252X68K\0\0f\250C\372\0Z *\0\4\260\274\0\0\237\331e\0\377zC\351\0\24\260\274\0\1=\35e\0\377lC\351\0\24`\0\377dK\371\0\0\t\376 \1\340X\300\274\0\0\0\17\333\300\20<\0(\f)\0\7\0\3g\20\20<\0\24\f)\0\2\0\4g\4\20<\0\n\32\200B\200Nu\1\1\0\3\0015\200\0\0\0\1\1\0\3\1T\200\0\0\0\1\1\0\3\2f\200\0\0\0\1\1\0\3\2\230\200\0\0\0\1\1\0\7\2f\200\0\0\0\1\1\0\7\2\230\200\0\0\0".getBytes (XEiJ.ISO_8859_1); 1998: 1999: //---------------------------------------------------------------------------------------- 2000: //SCSIパーティションIPL 2001: // 各パーティションの先頭に書き込まれる 2002: // HUMAN.SYSを読み込んで起動する 2003: /* 2004: public static final int[] SPC_PARTITION_IPL = { 2005: // perl -e "do'sjdump.pl';$p=0x8000;$m=2;$o=0x7bc2;$l=0x7e88-$o;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)" 2006: 0x60,0x24,0x53,0x48,0x41,0x52,0x50,0x2f,0x4b,0x47,0x20,0x20,0x20,0x20,0x31,0x2e, //00008000 `$SHARP/KG 1. 2007: 0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //00008010 00.............. 2008: 0x00,0x00,0x00,0x00,0x00,0x00,0x4f,0xfa,0xff,0xd8,0x4e,0x56,0xff,0xfc,0x70,0xf5, //00008020 ......O..リNV..p. 2009: 0x72,0x25,0x43,0xfa,0x02,0x92,0x4e,0x4f,0x22,0x29,0x00,0x04,0xe0,0x89,0xe2,0x89, //00008030 r%C..誰O")..煢竕 2010: 0x2d,0x41,0xff,0xfc,0x74,0x01,0xd4,0xba,0xff,0xda,0x26,0x3c,0x00,0x00,0x04,0x00, //00008040 -A..t.ヤコ.レ&<.... 2011: 0x43,0xfa,0x02,0x74,0x61,0x00,0x00,0xf2,0xb0,0xbc,0x00,0x00,0x00,0x00,0x66,0x00, //00008050 C..ta...ーシ....f. 2012: 0x01,0x0a,0x42,0x81,0x12,0x3a,0xff,0xaf,0x42,0x82,0x34,0x3a,0xff,0xaa,0x42,0x83, //00008060 ..B..:.ッB.4:.ェB. 2013: 0x16,0x3a,0xff,0xab,0x42,0x85,0x3a,0x3a,0xff,0xa0,0xc2,0xc3,0xd4,0x81,0xd4,0xba, //00008070 .:.ォB.::..ツテヤ.ヤコ 2014: 0xff,0xa2,0x43,0xfa,0x02,0x42,0x26,0x3c,0x00,0x00,0x04,0x00,0x61,0x00,0x00,0xba, //00008080 .「C..B&<....a..コ 2015: 0x4a,0x80,0x66,0x00,0x00,0xd6,0x3c,0x3c,0x00,0x1f,0x24,0x49,0x47,0xfa,0x02,0x06, //00008090 J.f..ヨ<<..$IG... 2016: 0x7e,0x0a,0x10,0x1a,0x80,0x3c,0x00,0x20,0xb0,0x1b,0x66,0x06,0x51,0xcf,0xff,0xf4, //000080a0 ~....<. ー.f.Qマ.. 2017: 0x60,0x22,0xd3,0xfc,0x00,0x00,0x00,0x20,0x51,0xce,0xff,0xe0,0x43,0xfa,0x01,0x59, //000080b0 `"モ.... Qホ.澆..Y 2018: 0x2f,0x09,0x43,0xfa,0x00,0xe3,0x61,0x00,0x00,0xba,0x22,0x5f,0x61,0x00,0x00,0xb4, //000080c0 /.C..綢..コ"_a..エ 2019: 0x70,0xfe,0x4e,0x4f,0xea,0x8d,0xd4,0x85,0x7a,0x00,0x3a,0x29,0x00,0x1a,0xe0,0x5d, //000080d0 p.NO鼾ヤ.z.:)..濔 2020: 0x55,0x85,0x10,0x3a,0xff,0x30,0xca,0xc0,0xd4,0x85,0x48,0xe7,0x70,0x00,0x43,0xfa, //000080e0 U..:.0ハタヤ.H輛.C. 2021: 0x01,0xd6,0x26,0x3c,0x00,0x00,0x04,0x00,0x61,0x4e,0x4c,0xdf,0x00,0x0e,0x43,0xfa, //000080f0 .ヨ&<....aNL゚..C. 2022: 0x01,0xc6,0x0c,0x59,0x48,0x55,0x66,0x6a,0x54,0x89,0x0c,0x99,0x00,0x00,0x68,0x00, //00008100 .ニ.YHUfjT.....h. 2023: 0x66,0x68,0x2f,0x19,0x26,0x19,0xd6,0x99,0x2f,0x03,0x2f,0x19,0x22,0x7c,0x00,0x00, //00008110 fh/.&.ヨ././."|.. 2024: 0x67,0xc0,0xd6,0xbc,0x00,0x00,0x00,0x40,0x61,0x1e,0x22,0x1f,0x24,0x1f,0x22,0x5f, //00008120 gタヨシ...@a.".$."_ 2025: 0x4a,0x80,0x66,0x36,0x41,0xf9,0x00,0x00,0x68,0x00,0xd1,0xc2,0x53,0x81,0x65,0x04, //00008130 J.f6A...h.ムツS‘. 2026: 0x42,0x18,0x60,0xf8,0x4e,0x5e,0x4e,0xd1,0x48,0xe7,0x3c,0x00,0x2a,0x2e,0xff,0xfc, //00008140 B.`.N^NムH.<.*... 2027: 0xd6,0xbc,0x00,0x00,0x03,0xff,0xe0,0x8b,0xea,0xab,0xe5,0x8a,0xea,0xaa,0x70,0xf5, //00008150 ヨシ....煖.ォ蜉.ェp. 2028: 0x72,0x21,0x4e,0x4f,0x4c,0xdf,0x00,0x3c,0x4e,0x75,0x43,0xfa,0x00,0xcf,0x60,0x00, //00008160 r!NOL゚.<NuC..マ`. 2029: 0xff,0x50,0x43,0xfa,0x00,0xe6,0x60,0x00,0xff,0x48,0x43,0xfa,0x01,0x00,0x60,0x00, //00008170 .PC..訌..HC...`. 2030: 0xff,0x40,0x70,0x21,0x4e,0x4f,0x4e,0x75,0x1a,0x53,0x43,0x53,0x49,0x20,0x49,0x50, //00008180 .@p!NONu.SCSI IP 2031: 0x4c,0x20,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x31,0x39,0x39,0x30, //00008190 L Copyright 1990 2032: 0x20,0x53,0x48,0x41,0x52,0x50,0x00,0x1b,0x5b,0x34,0x37,0x6d,0x1b,0x5b,0x31,0x33, //000081a0 SHARP..[47m.[13 2033: 0x3b,0x32,0x36,0x48,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, //000081b0 ;26H 2034: 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, //000081c0 2035: 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, //000081d0 2036: 0x20,0x1b,0x5b,0x31,0x34,0x3b,0x32,0x36,0x48,0x20,0x20,0x20,0x20,0x20,0x20,0x20, //000081e0 .[14;26H 2037: 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, //000081f0 2038: 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, //00008200 2039: 0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x1b,0x5b,0x31,0x34,0x3b,0x33,0x35,0x48,0x48, //00008210 ..[14;35HH 2040: 0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,0x73,0x20,0x82,0xaa,0x20,0x8c,0xa9,0x82,0xc2, //00008220 uman.sys が 見つ 2041: 0x82,0xa9,0x82,0xe8,0x82,0xdc,0x82,0xb9,0x82,0xf1,0x00,0x1b,0x5b,0x31,0x34,0x3b, //00008230 かりません..[14; 2042: 0x33,0x38,0x48,0x83,0x66,0x83,0x42,0x83,0x58,0x83,0x4e,0x82,0xaa,0x81,0x40,0x93, //00008240 38Hディスクが 読 2043: 0xc7,0x82,0xdf,0x82,0xdc,0x82,0xb9,0x82,0xf1,0x00,0x1b,0x5b,0x31,0x34,0x3b,0x33, //00008250 めません..[14;3 2044: 0x36,0x48,0x48,0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,0x73,0x20,0x82,0xaa,0x20,0x89, //00008260 6HHuman.sys が 壊 2045: 0xf3,0x82,0xea,0x82,0xc4,0x82,0xa2,0x82,0xdc,0x82,0xb7,0x00,0x1b,0x5b,0x31,0x34, //00008270 れています..[14 2046: 0x3b,0x33,0x33,0x48,0x48,0x75,0x6d,0x61,0x6e,0x2e,0x73,0x79,0x73,0x20,0x82,0xcc, //00008280 ;33HHuman.sys の 2047: 0x20,0x83,0x41,0x83,0x68,0x83,0x8c,0x83,0x58,0x82,0xaa,0x88,0xd9,0x8f,0xed,0x82, //00008290 アドレスが異常で 2048: 0xc5,0x82,0xb7,0x00,0x68,0x75,0x6d,0x61,0x6e,0x20,0x20,0x20,0x73,0x79,0x73,0x00, //000082a0 す.human sys. 2049: 0x53,0x43,0x53,0x49,0x20,0x49,0x50,0x4c,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e, //000082b0 SCSI IPL version 2050: 0x20,0x31,0x2e,0x30,0x31,0x00, //000082c0 1.01. 2051: }; 2052: */ 2053: // perl misc/itob.pl xeij/SPC.java SPC_PARTITION_IPL 2054: public static final byte[] SPC_PARTITION_IPL = "`$SHARP/KG 1.00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O\372\377\330NV\377\374p\365r%C\372\2\222NO\")\0\4\340\211\342\211-A\377\374t\1\324\272\377\332&<\0\0\4\0C\372\2ta\0\0\362\260\274\0\0\0\0f\0\1\nB\201\22:\377\257B\2024:\377\252B\203\26:\377\253B\205::\377\240\302\303\324\201\324\272\377\242C\372\2B&<\0\0\4\0a\0\0\272J\200f\0\0\326<<\0\37$IG\372\2\6~\n\20\32\200<\0 \260\33f\6Q\317\377\364`\"\323\374\0\0\0 Q\316\377\340C\372\1Y/\tC\372\0\343a\0\0\272\"_a\0\0\264p\376NO\352\215\324\205z\0:)\0\32\340]U\205\20:\3770\312\300\324\205H\347p\0C\372\1\326&<\0\0\4\0aNL\337\0\16C\372\1\306\fYHUfjT\211\f\231\0\0h\0fh/\31&\31\326\231/\3/\31\"|\0\0g\300\326\274\0\0\0@a\36\"\37$\37\"_J\200f6A\371\0\0h\0\321\302S\201e\4B\30`\370N^N\321H\347<\0*.\377\374\326\274\0\0\3\377\340\213\352\253\345\212\352\252p\365r!NOL\337\0<NuC\372\0\317`\0\377PC\372\0\346`\0\377HC\372\1\0`\0\377@p!NONu\32SCSI IPL Copyright 1990 SHARP\0\33[47m\33[13;26H \33[14;26H \0\33[14;35HHuman.sys \202\252 \214\251\202\302\202\251\202\350\202\334\202\271\202\361\0\33[14;38H\203f\203B\203X\203N\202\252\201@\223\307\202\337\202\334\202\271\202\361\0\33[14;36HHuman.sys \202\252 \211\363\202\352\202\304\202\242\202\334\202\267\0\33[14;33HHuman.sys \202\314 \203A\203h\203\214\203X\202\252\210\331\217\355\202\305\202\267\0human sys\0SCSI IPL version 1.01\0".getBytes (XEiJ.ISO_8859_1); 2055: 2056: 2057: 2058: //======================================================================================== 2059: //$$SPI SCSIポート 2060: public static final class SPCChip { 2061: 2062: public boolean spiExpansion; //false=内蔵SCSI,true=拡張SCSI 2063: public int spiDMAChannel; //使用するDMAのチャンネル。1=内蔵SCSI,2=拡張SCSI 2064: 2065: //レジスタ 2066: // ゼロ拡張 2067: public int spiBdid; //0x01 2068: public int spiSctl; //0x03 2069: public int spiScmd; //0x05 2070: public int spiInts; //0x09 2071: public int spiPsns; //0x0b 2072: public int spiSsts; //0x0d 2073: public int spiSerr; //0x0f 2074: public int spiPctl; //0x11 2075: public int spiMbc; //0x13 2076: public int spiDreg; //0x15 2077: public int spiTemp; //0x17 2078: public int spiTchTcmTcl; //0x19,0x1b,0x1d 2079: 2080: public int spiTargetBase; //現在のspcUnitArrayの開始番号。リセット時に設定される。-8=ユニットなし 2081: public SCUnit spiTargetUnit; //現在のターゲット。null=バスフリー 2082: 2083: public byte[] spiReadHandle; //転送(ターゲット→イニシエータ)の対象の配列 2084: public byte[] spiWriteHandle; //転送(イニシエータ→ターゲット)の対象の配列 2085: public int spiBufferIndex; //次に転送する位置 2086: public int spiBufferLimit; //転送を終了する位置 2087: public int spiBufferCount; //バッファの充填または排出を行う残り回数 2088: public final byte[] spiCommandBuffer = new byte[12]; //コマンドバッファ 2089: public final byte[] spiStatusBuffer = new byte[1]; //ステータスバッファ 2090: public final byte[] spiMessageOutBuffer = new byte[1]; //メッセージアウトバッファ 2091: public final byte[] spiMessageInBuffer = new byte[1]; //メッセージインバッファ 2092: public final byte[] spiSenseBuffer = new byte[8]; //センスバッファ 2093: public final byte[] spiDataInBuffer = new byte[804]; //データインバッファ(Inquiry/Mode Sense(6)/Read Capacity/Read TOC) 2094: public final byte[] spiDataOutBuffer = new byte[255]; //データアウトバッファ(Mode Select(6)) 2095: 2096: public SPCChip (boolean expansion) { 2097: 2098: spiExpansion = expansion; 2099: spiDMAChannel = expansion ? 2 : 1; 2100: 2101: spiReset (-8); 2102: 2103: } //SPCChip(int) 2104: 2105: //spcChip.spiReset (targetBase) 2106: // SPCリセット 2107: public void spiReset (int targetBase) { 2108: 2109: spiTargetBase = targetBase; 2110: 2111: spiBdid = SPC_BDID_I7; //自分のSCSI-IDは7 2112: spiSctl = SPC_SCTL_RD; //ハードウェアリセット 2113: spiScmd = 0; 2114: spiInts = 0; 2115: spiPsns = 0; 2116: spiSsts = 0; 2117: spiSerr = 0; 2118: spiPctl = 0; 2119: spiMbc = 0; 2120: spiDreg = 0; 2121: spiTemp = 0; 2122: spiTchTcmTcl = 0; 2123: spiUpdateSSTS (); 2124: 2125: spiTargetUnit = null; 2126: 2127: spiReadHandle = null; 2128: spiWriteHandle = null; 2129: spiBufferIndex = 0; 2130: spiBufferLimit = 0; 2131: 2132: } //spiReset(int) 2133: 2134: //spiTini () 2135: // 後始末 2136: public void spiTini () { 2137: 2138: //イメージファイルに書き出す 2139: for (SCUnit unit : SPC.spcUnitArray) { 2140: unit.scuTini (); 2141: } 2142: 2143: } //spiTini() 2144: 2145: //d = spcChip.spiPeek (a) 2146: // SPCポートピーク 2147: // ゼロ拡張 2148: public int spiPeek (int a) { 2149: int d = 0; 2150: switch (a & 31) { 2151: case SPC_BDID: //0x01 2152: d = spiBdid; //8bitで読み出す 2153: break; 2154: case SPC_SCTL: //0x03 2155: d = spiSctl; 2156: break; 2157: case SPC_SCMD: //0x05 2158: d = spiScmd; 2159: break; 2160: case SPC_INTS: //0x09 2161: d = spiInts; 2162: break; 2163: case SPC_PSNS: //0x0b 2164: d = spiPsns; 2165: break; 2166: case SPC_SSTS: //0x0d 2167: d = spiSsts; 2168: break; 2169: case SPC_SERR: //0x0f 2170: d = spiSerr; 2171: break; 2172: case SPC_PCTL: //0x11 2173: d = spiPctl; 2174: break; 2175: case SPC_MBC: //0x13 2176: d = spiMbc; 2177: break; 2178: case SPC_DREG: //0x15 2179: d = spiDreg; 2180: break; 2181: case SPC_TEMP: //0x17 2182: d = spiTemp; 2183: break; 2184: case SPC_TCH: //0x19 2185: d = spiTchTcmTcl >>> 16; 2186: break; 2187: case SPC_TCM: //0x1b 2188: d = (char) spiTchTcmTcl >>> 8; 2189: break; 2190: case SPC_TCL: //0x1d 2191: d = spiTchTcmTcl & 255; 2192: break; 2193: } 2194: if (SPC_DEBUG_PORT) { 2195: System.out.printf ("%08x spiPeek(0x%08x(%s))=0x%02x\n", XEiJ.regPC0, a, SPC_REGISTER_NAME[a & 31], d); 2196: } 2197: return d; 2198: } //spiPeek(int) 2199: 2200: //d = spcChip.spiRead (a) 2201: // SPCポートリード 2202: // ゼロ拡張 2203: public int spiRead (int a) { 2204: int d = 0; 2205: switch (a & 31) { 2206: case SPC_BDID: //0x01 2207: d = spiBdid; //8bitで読み出す 2208: break; 2209: case SPC_SCTL: //0x03 2210: d = spiSctl; 2211: break; 2212: case SPC_SCMD: //0x05 2213: d = spiScmd; 2214: break; 2215: case SPC_INTS: //0x09 2216: d = spiInts; 2217: break; 2218: case SPC_PSNS: //0x0b 2219: d = spiPsns; 2220: break; 2221: case SPC_SSTS: //0x0d 2222: d = spiSsts; 2223: break; 2224: case SPC_SERR: //0x0f 2225: d = spiSerr; 2226: break; 2227: case SPC_PCTL: //0x11 2228: d = spiPctl; 2229: break; 2230: case SPC_MBC: //0x13 2231: d = spiMbc; 2232: break; 2233: case SPC_DREG: //0x15 2234: if ((spiSsts & SPC_SSTS_TRIP) != 0 && spiTchTcmTcl != 0) { //転送中 2235: if (spiReadHandle != null && spiBufferIndex < spiBufferLimit) { 2236: spiDreg = spiReadHandle[spiBufferIndex++] & 255; //データを入力する 2237: if (spiBufferIndex == spiBufferLimit && spiBufferCount != 0) { //バッファを再充填する必要がある 2238: spiTargetUnit.scuReadImage (); 2239: spiBufferCount--; 2240: spiBufferIndex = 0; 2241: } 2242: } 2243: spiTchTcmTcl--; //0でなかったのだから負になることはない 2244: spiUpdateSSTS (); 2245: if (spiBufferCount == 0) { //最後のバッファ 2246: if (spiTchTcmTcl == 0) { //転送終了 2247: spiTransferComplete (); 2248: } else if (SPC_EXPOSE_DATAINI_BUG && 2249: spiTchTcmTcl == 8 && //残りが8バイトになった 2250: (spiPsns & SPC_PHASE_MASK) == SPC_DATA_IN_PHASE) { //データインフェーズ 2251: spiPsns = (spiPsns & ~SPC_PHASE_MASK) | SPC_STATUS_PHASE; //ステータスフェーズに切り替える 2252: spiSetInterruptStatus (SPC_INTS_SR); //INTSのSRをセットする 2253: } 2254: } 2255: } 2256: d = spiDreg; 2257: break; 2258: case SPC_TEMP: //0x17 2259: d = spiTemp; 2260: break; 2261: case SPC_TCH: //0x19 2262: d = spiTchTcmTcl >>> 16; 2263: break; 2264: case SPC_TCM: //0x1b 2265: d = (char) spiTchTcmTcl >>> 8; 2266: break; 2267: case SPC_TCL: //0x1d 2268: d = spiTchTcmTcl & 255; 2269: break; 2270: } 2271: if (SPC_DEBUG_PORT) { 2272: System.out.printf ("%08x spiRead(0x%08x(%s))=0x%02x\n", XEiJ.regPC0, a, SPC_REGISTER_NAME[a & 31], d); 2273: } 2274: return d; 2275: } //spiRead(int) 2276: 2277: //d = spcChip.spiWrite (a, d) 2278: // SPCポートライト 2279: public void spiWrite (int a, int d) { 2280: d &= 255; 2281: if (SPC_DEBUG_PORT) { 2282: System.out.printf ("%08x spiWrite(0x%08x(%s),0x%02x)\n", XEiJ.regPC0, a, SPC_REGISTER_NAME[a & 31], d & 255); 2283: } 2284: switch (a & 31) { 2285: case SPC_BDID: //0x01 2286: spiBdid = 1 << (d & 7); //3bitで書き込む 2287: break; 2288: case SPC_SCTL: //0x03 2289: spiSctl = d; 2290: break; 2291: case SPC_SCMD: //0x05 2292: spiScmd = d; 2293: switch (spiScmd & SPC_SCMD_CC) { 2294: case SPC_SCMD_CC_BR: //Bus Release。ターゲットのときバスフリーフェーズへ移行 2295: if (spiTargetUnit != null) { 2296: spiBusFreePhase (); //バスフリーフェーズに移行する 2297: } 2298: break; 2299: case SPC_SCMD_CC_SL: //Select。セレクション/リセレクションを開始 2300: { 2301: if ((spiPctl & SPC_PCTL_SR) == SPC_PCTL_SR_R) { //リセレクション 2302: //!!! 2303: if (SPC_REPORT_UNIMPLEMENTED_COMMAND) { 2304: System.out.println (String.format ("%08x Unimplemented Command: Reselection\n", XEiJ.regPC0)); 2305: } 2306: spiSetInterruptStatus (SPC_INTS_RC); //Reset Conditionで強制終了 2307: break; 2308: } 2309: int u = 0; 2310: SCUnit unit = null; 2311: boolean timeOut = false; 2312: if (spiTargetBase < 0) { //接続するユニットが存在しない 2313: timeOut = true; 2314: } else { 2315: u = Integer.numberOfTrailingZeros (spiTemp & ~spiBdid); //ターゲットのID 2316: if (u > 7) { //ターゲットのIDが指定されていないか、自分のSCSI-IDと衝突している 2317: timeOut = true; 2318: } else { 2319: unit = SPC.spcUnitArray[spiTargetBase + u]; //ターゲットのユニット 2320: if (!unit.isConnected ()) { //ユニットは存在するが接続されていない 2321: timeOut = true; 2322: } 2323: } 2324: } 2325: if (timeOut) { 2326: //ユニットが存在しないときセレクションフェーズを開始して直ちにタイムアウトにする 2327: spiSsts |= SPC_SSTS_INIT | SPC_SSTS_BUSY; 2328: spiPsns |= SPC_PSNS_SEL; 2329: spiTchTcmTcl = 0; 2330: spiSetInterruptStatus (SPC_INTS_TO); //Time Out 2331: spiUpdateSSTS (); 2332: break; 2333: } 2334: spiTargetUnit = unit; //接続する 2335: spiSsts |= SPC_SSTS_INIT; //自分がイニシエータになる 2336: spiSetInterruptStatus (SPC_INTS_CC); //コマンド終了 2337: if ((spiPsns & SPC_PSNS_ATN) != 0) { //ATN=1 2338: spiMessageOutPhase (); //メッセージアウトフェーズに移行する 2339: } else { 2340: spiCommandPhase (); //コマンドフェーズに移行する 2341: } 2342: } 2343: break; 2344: case SPC_SCMD_CC_RA: //Reset ATN。ATNをクリア 2345: spiPsns &= ~SPC_PSNS_ATN; 2346: break; 2347: case SPC_SCMD_CC_SA: //Set ATN。ATNをセット 2348: spiPsns |= SPC_PSNS_ATN; 2349: break; 2350: case SPC_SCMD_CC_TR: //Transfer。転送開始 2351: spiUpdateSSTS (); 2352: spiSsts |= SPC_SSTS_BUSY | SPC_SSTS_TRIP; //転送開始 2353: break; 2354: case SPC_SCMD_CC_TP: //Transfer Pause。転送中断 2355: //!!! 2356: if (SPC_REPORT_UNIMPLEMENTED_COMMAND) { 2357: System.out.println (String.format ("%08x Unimplemented Command: Transfer Pause\n", XEiJ.regPC0)); 2358: } 2359: break; 2360: case SPC_SCMD_CC_RR: //Reset ACK/REQ。CPU転送のときACK/REQをクリア 2361: if ((spiPsns & SPC_PSNS_IO) == 0) { //Out 2362: if (spiWriteHandle == null) { //転送中ではない 2363: break; 2364: } 2365: spiPsns &= ~SPC_PSNS_ACK; //イニシエータがACKを0にする 2366: if (spiBufferIndex < spiBufferLimit) { //継続 2367: spiPsns |= SPC_PSNS_REQ; //ターゲットがREQを1にする 2368: HD63450.dmaFallPCL (spiDMAChannel); 2369: break; 2370: } 2371: spiTransferComplete (); //転送終了 2372: } else { //In 2373: if (spiReadHandle == null) { //転送中ではない 2374: break; 2375: } 2376: spiPsns &= ~SPC_PSNS_REQ; //イニシエータがREQを0にする 2377: if (spiBufferIndex < spiBufferLimit) { //継続 2378: spiPsns |= SPC_PSNS_REQ; //ターゲットがREQを1にする 2379: HD63450.dmaFallPCL (spiDMAChannel); 2380: break; 2381: } 2382: spiTransferComplete (); //転送終了 2383: } 2384: break; 2385: case SPC_SCMD_CC_SR: //Set ACK/REQ。CPU転送のときACK/REQをセット 2386: if ((spiPsns & SPC_PSNS_IO) == 0) { //Out 2387: if (spiWriteHandle == null) { //転送中ではない 2388: break; 2389: } 2390: spiPsns |= SPC_PSNS_ACK; //イニシエータがACKを1にする。spiTempに出力データの準備ができている 2391: if (spiBufferIndex < spiBufferLimit) { 2392: spiWriteHandle[spiBufferIndex++] = (byte) spiTemp; //データを出力する 2393: if (spiBufferIndex == spiBufferLimit && spiBufferCount != 0) { //バッファから排出する必要がある 2394: //!!! ディスクイメージ以外のバッファは溢れてはならない 2395: spiTargetUnit.scuWriteImage (); 2396: if (--spiBufferCount != 0) { 2397: spiBufferIndex = 0; 2398: } 2399: } 2400: spiUpdateSSTS (); 2401: } 2402: spiPsns &= ~SPC_PSNS_REQ; //ターゲットがREQを0にする 2403: } else { //In 2404: if (spiReadHandle == null) { //転送中ではない 2405: break; 2406: } 2407: spiPsns |= SPC_PSNS_ACK; //イニシエータがACKを1にする。spiReadHandle[spiBufferIndex]に入力データの準備ができている 2408: if (spiBufferIndex < spiBufferLimit) { 2409: spiTemp = spiReadHandle[spiBufferIndex++] & 255; //データを入力する 2410: if (spiBufferIndex == spiBufferLimit && spiBufferCount != 0) { //バッファを再充填する必要がある 2411: spiTargetUnit.scuReadImage (); 2412: spiBufferCount--; 2413: spiBufferIndex = 0; 2414: } 2415: spiUpdateSSTS (); 2416: } 2417: spiPsns &= ~SPC_PSNS_REQ; //ターゲットがREQを0にする 2418: } 2419: break; 2420: } 2421: break; 2422: case SPC_INTS: //0x09 2423: //1を書き込んだビットだけ0クリアする 2424: // move.b INTS,INTSでクリアできる 2425: if ((spiPsns & SPC_PSNS_SEL) != 0 && //セレクションフェーズで 2426: (spiInts & d & SPC_INTS_TO) != 0) { //Time Outをクリアするとき 2427: spiInts &= ~d; 2428: if (spiTchTcmTcl != 0) { //TCH,TCM,TCLが0でないとき 2429: //再びタイムアウトにする 2430: spiTchTcmTcl = 0; 2431: spiSetInterruptStatus (SPC_INTS_TO); //Time Out 2432: } else { //TCH,TCM,TCLが0のとき 2433: //セレクションフェーズを終了する 2434: spiPsns &= ~SPC_PSNS_SEL; 2435: spiSsts &= ~(SPC_SSTS_INIT | SPC_SSTS_BUSY); 2436: spiUpdateSSTS (); 2437: } 2438: } else { 2439: spiInts &= ~d; 2440: } 2441: break; 2442: case SPC_PSNS: //0x0b 2443: spiPsns = d; 2444: break; 2445: case SPC_SSTS: //0x0d 2446: //Readのみ 2447: break; 2448: case SPC_SERR: //0x0f 2449: //Readのみ 2450: break; 2451: case SPC_PCTL: //0x11 2452: spiPctl = d; 2453: break; 2454: case SPC_MBC: //0x13 2455: //Readのみ 2456: break; 2457: case SPC_DREG: //0x15 2458: spiDreg = d; 2459: if ((spiSsts & SPC_SSTS_TRIP) != 0 && spiTchTcmTcl != 0) { //転送中 2460: if (spiWriteHandle != null && spiBufferIndex < spiBufferLimit) { 2461: spiWriteHandle[spiBufferIndex++] = (byte) spiDreg; //データを出力する 2462: if ((spiPctl & SPC_PCTL_TP) == SPC_COMMAND_PHASE && //コマンドフェーズの 2463: spiBufferIndex == 1) { //1バイト目 2464: // グループ76543210 2465: spiBufferLimit = 0x11c11aa6 >>> ((spiCommandBuffer[0] & 255) >> 5 << 2) & 15; //CDB(Command Descriptor Block)の長さ 2466: } 2467: //!!! ディスクイメージ以外のバッファは溢れてはならない 2468: if (spiBufferIndex == spiBufferLimit && spiBufferCount != 0) { //バッファから排出する必要がある 2469: spiTargetUnit.scuWriteImage (); 2470: if (--spiBufferCount != 0) { 2471: spiBufferIndex = 0; 2472: } 2473: } 2474: } 2475: spiTchTcmTcl--; //0でなかったのだから負になることはない 2476: spiUpdateSSTS (); 2477: if (spiTchTcmTcl == 0 || spiBufferIndex == spiBufferLimit) { //転送終了。最後のブロックでなければspiBufferIndexは巻き戻されている 2478: spiTransferComplete (); 2479: } 2480: } 2481: break; 2482: case SPC_TEMP: //0x17 2483: spiTemp = d; 2484: break; 2485: case SPC_TCH: //0x19 2486: spiTchTcmTcl = d << 16 | (char) spiTchTcmTcl; 2487: spiUpdateSSTS (); 2488: break; 2489: case SPC_TCM: //0x1b 2490: spiTchTcmTcl = spiTchTcmTcl & 0xff00ff | d << 8; 2491: spiUpdateSSTS (); 2492: break; 2493: case SPC_TCL: //0x1d 2494: spiTchTcmTcl = spiTchTcmTcl & 0xffff00 | d; 2495: spiUpdateSSTS (); 2496: break; 2497: } 2498: } //spiWrite(int,int) 2499: 2500: //spiTransferComplete () 2501: // 転送終了 2502: public void spiTransferComplete () { 2503: if ((spiSsts & SPC_SSTS_TRIP) != 0) { 2504: spiSetInterruptStatus (SPC_INTS_CC); //転送終了 2505: spiSsts &= ~(SPC_SSTS_BUSY | SPC_SSTS_TRIP); 2506: } 2507: switch (spiPctl & SPC_PCTL_TP) { //転送フェーズ 2508: case SPC_DATA_OUT_PHASE: //データアウトフェーズの転送が終了した 2509: { 2510: int oc = spiCommandBuffer[0] & 255; //オペレーションコード 2511: if (oc == 0x15) { //Mode Select(6) 2512: if (SPC_REPORT_UNIMPLEMENTED_COMMAND) { //未実装コマンドを表示する 2513: StringBuilder sb = new StringBuilder (); 2514: sb.append (String.format ("%08x DataOutPhaseComplete(0x%02x(%s)) [", XEiJ.regPC0, oc, SPC_COMMAND_NAME[oc])); 2515: for (int i = 0; i < spiBufferLimit; i++) { 2516: if (i > 0) { 2517: sb.append (','); 2518: } 2519: sb.append (String.format ("0x%02x", spiDataOutBuffer[i] & 255)); 2520: } 2521: sb.append (']'); 2522: System.out.println (sb.toString ()); 2523: } 2524: } 2525: } 2526: spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 2527: break; 2528: case SPC_DATA_IN_PHASE: //データインフェーズの転送が終了した 2529: spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 2530: break; 2531: case SPC_COMMAND_PHASE: //コマンドフェーズの転送が終了した 2532: { 2533: int oc = spiCommandBuffer[0] & 255; //オペレーションコード 2534: if (spiBufferIndex == 1) { 2535: // グループ76543210 2536: spiBufferLimit = 0x11c11aa6 >>> (oc >> 5 << 2) & 15; //CDB(Command Descriptor Block)の長さ 2537: if (spiBufferIndex < spiBufferLimit) { 2538: //次のデータを要求する 2539: spiPsns |= SPC_PSNS_REQ; //ターゲットがREQを1にする 2540: HD63450.dmaFallPCL (spiDMAChannel); 2541: break; 2542: } 2543: } 2544: spiTargetUnit.scuCommand (oc); //コマンドを実行する 2545: } 2546: break; 2547: case SPC_STATUS_PHASE: //ステータスフェーズの転送が終了した 2548: spiMessageInPhase (); //メッセージインフェーズに移行する 2549: break; 2550: case SPC_MESSAGE_OUT_PHASE: //メッセージアウトフェーズの転送が終了した 2551: spiCommandPhase (); //コマンドフェーズに移行する 2552: break; 2553: case SPC_MESSAGE_IN_PHASE: //メッセージインフェーズの転送が終了した 2554: spiBusFreePhase (); //バスフリーフェーズに移行する 2555: break; 2556: } 2557: } //spiTransferComplete() 2558: 2559: //spiBusFreePhase () 2560: // バスフリーフェーズに移行する 2561: public void spiBusFreePhase () { 2562: if (SPC_DEBUG_PHASE) { 2563: System.out.printf ("%08x spiBusFreePhase()\n", XEiJ.regPC0); 2564: } 2565: spiWriteHandle = null; 2566: spiReadHandle = null; 2567: spiSsts &= ~SPC_SSTS_INIT; //自分がイニシエータではなくなる 2568: spiPsns = 0; 2569: spiTargetUnit = null; 2570: if ((spiPctl & SPC_PCTL_IE) != 0) { 2571: spiSetInterruptStatus (SPC_INTS_DC); 2572: } 2573: } //spiBusFreePhase() 2574: 2575: //spiCommandPhase () 2576: // コマンドフェーズに移行する 2577: public void spiCommandPhase () { 2578: if (SPC_DEBUG_PHASE) { 2579: System.out.printf ("%08x spiCommandPhase()\n", XEiJ.regPC0); 2580: } 2581: spiWriteHandle = spiCommandBuffer; 2582: spiReadHandle = null; 2583: spiBufferIndex = 0; 2584: spiBufferLimit = 1; 2585: spiUpdateSSTS (); 2586: spiPsns = SPC_PSNS_REQ | SPC_COMMAND_PHASE; 2587: HD63450.dmaFallPCL (spiDMAChannel); 2588: } //spiCommandPhase() 2589: 2590: //spiDataInPhase (handle, index, limit, count) 2591: // データインフェーズに移行する 2592: public void spiDataInPhase (byte[] handle, int index, int limit, int count) { 2593: if (SPC_DEBUG_PHASE) { 2594: System.out.printf ("%08x spiDataInPhase(handle,0x%08x,0x%08x,0x%08x)\n", XEiJ.regPC0, index, limit, count); 2595: } 2596: spiWriteHandle = null; 2597: spiReadHandle = handle; 2598: spiBufferIndex = index; 2599: spiBufferLimit = limit; 2600: spiBufferCount = count; 2601: spiUpdateSSTS (); 2602: spiPsns = SPC_PSNS_REQ | SPC_DATA_IN_PHASE; 2603: HD63450.dmaFallPCL (spiDMAChannel); 2604: } //spiDataInPhase(byte[],int,int,int) 2605: 2606: //spiDataOutPhase (handle, index, limit, count) 2607: // データアウトフェーズに移行する 2608: public void spiDataOutPhase (byte[] handle, int index, int limit, int count) { 2609: if (SPC_DEBUG_PHASE) { 2610: System.out.printf ("%08x spiDataOutPhase(handle,0x%08x,0x%08x,0x%08x)\n", XEiJ.regPC0, index, limit, count); 2611: } 2612: spiWriteHandle = handle; 2613: spiReadHandle = null; 2614: spiBufferIndex = index; 2615: spiBufferLimit = limit; 2616: spiBufferCount = count; 2617: spiUpdateSSTS (); 2618: spiPsns = SPC_PSNS_REQ | SPC_DATA_OUT_PHASE; 2619: HD63450.dmaFallPCL (spiDMAChannel); 2620: } //spiDataOutPhase(byte[],int,int,int) 2621: 2622: //spiStatusPhase (status, message) 2623: // ステータスフェーズに移行する 2624: // status 2=センスデータあり。spiSenseBufferを設定しておくこと 2625: // message 常に0 2626: public void spiStatusPhase (int status, int message) { 2627: if (SPC_DEBUG_PHASE) { 2628: System.out.printf ("%08x spiStatusPhase(0x%02x)\n", XEiJ.regPC0, status); 2629: } 2630: spiStatusBuffer[0] = (byte) status; 2631: spiMessageInBuffer[0] = (byte) message; 2632: spiWriteHandle = null; 2633: spiReadHandle = spiStatusBuffer; 2634: spiBufferIndex = 0; 2635: spiBufferLimit = 1; 2636: spiTemp = spiStatusBuffer[0] & 255; 2637: spiUpdateSSTS (); 2638: spiPsns = SPC_PSNS_REQ | SPC_STATUS_PHASE; 2639: HD63450.dmaFallPCL (spiDMAChannel); 2640: } //spiStatusPhase(int,int) 2641: 2642: //spiMessageInPhase () 2643: // メッセージインフェーズに移行する 2644: public void spiMessageInPhase () { 2645: if (SPC_DEBUG_PHASE) { 2646: System.out.printf ("%08x spiMessageInPhase(0x%02x)\n", XEiJ.regPC0, spiMessageInBuffer[0] & 255); 2647: } 2648: spiWriteHandle = null; 2649: spiReadHandle = spiMessageInBuffer; 2650: spiBufferIndex = 0; 2651: spiBufferLimit = 1; 2652: spiTemp = spiMessageInBuffer[0] & 255; 2653: spiUpdateSSTS (); 2654: spiPsns = SPC_PSNS_REQ | SPC_MESSAGE_IN_PHASE; 2655: HD63450.dmaFallPCL (spiDMAChannel); 2656: } //spiMessageInPhase() 2657: 2658: //spiMessageOutPhase () 2659: // メッセージアウトフェーズに移行する 2660: public void spiMessageOutPhase () { 2661: if (SPC_DEBUG_PHASE) { 2662: System.out.printf ("%08x spiMessageOutPhase(0x%02x)\n", XEiJ.regPC0, spiMessageOutBuffer[0] & 255); 2663: } 2664: spiWriteHandle = spiMessageOutBuffer; 2665: spiReadHandle = null; 2666: spiBufferIndex = 0; 2667: spiBufferLimit = 1; 2668: spiUpdateSSTS (); 2669: spiPsns = SPC_PSNS_REQ | SPC_MESSAGE_OUT_PHASE; 2670: HD63450.dmaFallPCL (spiDMAChannel); 2671: } //spiMessageOutPhase() 2672: 2673: //spiSetInterruptStatus (ints) 2674: public void spiSetInterruptStatus (int ints) { 2675: //int oldInts = spiInts; 2676: if ((ints & ~SPC_INTS_TO) != 0) { //TO以外をセットするとき 2677: spiInts &= ~SPC_INTS_TO; //TOをクリア 2678: } 2679: spiInts |= ints; 2680: if (//oldInts != spiInts && //0→1 2681: (spiSctl & SPC_SCTL_IE) != 0) { //Interrupt Enable 2682: if (spiExpansion) { 2683: XEiJ.eb2Interrupt (XEiJ.EB2_SPC_REQUEST); 2684: } else { 2685: IOInterrupt.ioiSpcFall (); 2686: IOInterrupt.ioiSpcRise (); 2687: } 2688: } 2689: } //spiSetInterruptStatus(int) 2690: 2691: //spiUpdateSSTS () 2692: // SSTSのTC0,DF,DEを更新する 2693: public void spiUpdateSSTS () { 2694: spiSsts = (spiSsts & ~(SPC_SSTS_TC0 | SPC_SSTS_DF | SPC_SSTS_DE) | 2695: ((spiPctl & SPC_PCTL_IO) == 0 ? //Out 2696: (spiTchTcmTcl == 0 ? SPC_SSTS_TC0 : 0) | 2697: SPC_SSTS_DE //出力のときFIFOは常にEmptyでFullになることはない 2698: : //In 2699: (spiTchTcmTcl != 0 ? 0 : SPC_SSTS_TC0 | SPC_SSTS_DE) | //入力のとき残りが0バイトでなければFIFOはEmptyではない 2700: (spiTchTcmTcl < 8 ? 0 : SPC_SSTS_DF))); //入力のとき残りが8バイト未満ならばFIFOはFullではない 2701: } //spiUpdateSSTS () 2702: 2703: } //class SPCChip 2704: 2705: 2706: 2707: //======================================================================================== 2708: //$$SCU SCSI HDユニット 2709: // SCSIハードディスクのユニット 2710: public static class SCUnit extends AbstractUnit { 2711: 2712: public SPCChip scuChip; //接続されているSCSIポート 2713: public int scuMode; //動作モード。1=SCSI-1,3=SCSI-2 2714: public RandomAccessFile scuRaf; 2715: public int scuBytesPerRecord; //1レコードあたりのバイト数(2の累乗) 2716: public int scuDiskEndRecord; //ディスクのレコード数。0=挿入されていない 2717: public long scuDiskEndByte; //ディスクのバイト数 2718: public byte[] scuRecordImage; 2719: 2720: //new SCUnit (number, chip) 2721: // コンストラクタ 2722: public SCUnit (int number, SPCChip chip) { 2723: super (number); 2724: scuChip = chip; 2725: scuMode = 1; //リセレクションがないのでSCSI-1 2726: scuRaf = null; 2727: scuBytesPerRecord = 512; 2728: scuDiskEndRecord = 0; 2729: scuDiskEndByte = 0L; 2730: scuRecordImage = new byte[SPC_MAX_BYTES_PER_BLOCK]; 2731: } 2732: 2733: public void scuReset (SPCChip chip) { 2734: scuChip = chip; 2735: }; //scuReset 2736: 2737: //numberOfModes = unit.abuGetNumberOfModes () 2738: // モードの数を返す 2739: // モードボタンを表示するときオーバーライドする 2740: @Override public int abuGetNumberOfModes () { 2741: return 2; 2742: } //unit.abuGetNumberOfModes() 2743: 2744: //image = unit.abuGetModeIcon (mode, enabled) 2745: // モードボタンのアイコンを返す 2746: // モードボタンを表示するときオーバーライドする 2747: @Override public ImageIcon abuGetModeIcon (int mode, boolean enabled) { 2748: return (enabled ? 2749: mode == 0 ? LnF.LNF_HD_ICON : LnF.LNF_CD_ICON : 2750: mode == 0 ? LnF.LNF_HD_DISABLED_ICON : LnF.LNF_CD_DISABLED_ICON); 2751: } //unit.abuGetModeIcon(int,boolean) 2752: 2753: //text = unit.abuGetModeTextEn (mode, enabled) 2754: // モードボタンの英語のツールチップテキストを返す 2755: // モードボタンを表示するときオーバーライドする 2756: @Override public String abuGetModeTextEn (int mode, boolean enabled) { 2757: return (enabled ? 2758: mode == 0 ? "Hard disk mode → CD-ROM mode" : "CD-ROM mode → Hard disk mode" : 2759: null); 2760: } //unit.abuGetModeTextEn(int,boolean) 2761: 2762: //text = unit.abuGetModeTextJa (mode, enabled) 2763: // モードボタンの日本語のツールチップテキストを返す 2764: // モードボタンを表示するときオーバーライドする 2765: @Override public String abuGetModeTextJa (int mode, boolean enabled) { 2766: return (enabled ? 2767: mode == 0 ? "ハードディスクモード → CD-ROM モード" : "CD-ROM モード → ハードディスクモード" : 2768: null); 2769: } //unit.abuGetModeTextJa(int,boolean) 2770: 2771: //unit.connect (disconnectable) 2772: // 接続する 2773: @Override protected void connect (boolean disconnectable) { 2774: super.connect (disconnectable); 2775: } 2776: 2777: //unit.disconnect () 2778: // 切り離す 2779: @Override protected void disconnect () { 2780: super.disconnect (); 2781: } 2782: 2783: //success = unit.eject () 2784: // イジェクトする 2785: @Override protected boolean eject () { 2786: if (scuRaf != null) { //クローズする 2787: try { 2788: scuRaf.close (); 2789: } catch (IOException ioe) { 2790: } 2791: scuRaf = null; 2792: } 2793: String path = abuPath; //イジェクトされたイメージファイルのパス。super.eject()を呼び出す前にコピーすること 2794: if (!super.eject ()) { //イジェクトする 2795: return false; 2796: } 2797: if (path.length () != 0) { //挿入されていたとき 2798: spcAddHistory (new File (path).getAbsoluteFile ()); 2799: System.out.println (Multilingual.mlnJapanese ? 2800: path + " を sc" + abuNumber + " から切り離しました" : 2801: path + " was removed from sc" + abuNumber); 2802: } 2803: scuDiskEndRecord = 0; 2804: scuDiskEndByte = 0L; 2805: return true; 2806: } 2807: 2808: //success = unit.open () 2809: // 開くダイアログを開く 2810: @Override protected boolean open () { 2811: if (!super.open ()) { 2812: return false; 2813: } 2814: SPC.spcOpenUnit = abuNumber; 2815: if (SPC.spcOpenDialog == null) { 2816: SPC.spcOpenDialog = new OpenDialog (); 2817: SPC.spcOpenDialog.setReadOnly (Settings.sgsGetOnOff ("screadonly")); 2818: SPC.spcOpenDialog.setReboot (Settings.sgsGetOnOff ("scappreboot")); 2819: for (File[] files : SPC.spcOpenHistory) { 2820: SPC.spcOpenDialog.addHistory (files); 2821: } 2822: SPC.spcOpenHistory.clear (); 2823: } 2824: SPC.spcOpenDialog.rescanCurrentDirectory (); //挿入されているファイルが変わると選択できるファイルも変わるのでリストを作り直す 2825: SPC.spcOpenDialog.setVisible (true); 2826: return true; 2827: } //unit.open() 2828: 2829: //success = unit.insert (path, writeProtected) 2830: // 挿入する 2831: @Override protected boolean insert (String path, boolean writeProtected) { 2832: if (SPC.spcIsInserted (path)) { //既に挿入されている 2833: return false; 2834: } 2835: if (!super.insert (path, writeProtected)) { //挿入できなかった 2836: return false; 2837: } 2838: return true; 2839: } //unit.insert(String) 2840: 2841: //loaded = unit.load (path) 2842: // 読み込む 2843: @Override protected boolean load (String path) { 2844: File file = new File (path); 2845: if (SPC.spcIsHds (file, true)) { //拡張子がHDSで装置初期化されている 2846: abuSetMode (0); 2847: } else if (SPC.spcIsIso (file)) { //拡張子がISO 2848: abuSetMode (1); 2849: protect (false); //開くときに書き込みを禁止した場合はイジェクトするまで書き込みを許可できない 2850: } else { 2851: return false; 2852: } 2853: try { 2854: scuRaf = new RandomAccessFile (file, abuWriteProtected ? "r" : "rw"); //RandomAccessFileに"w"というモードはない 2855: } catch (IOException ioe) { 2856: return false; //開けなかった。SPC.spcIsHdsまたはSPC.spcIsISOのチェックを通っても書き込みモードでは開けない可能性がある 2857: } 2858: if (abuCurrentMode == 0) { //ハードディスク 2859: byte[] bb = new byte[512]; 2860: scuDiskEndRecord = 0; 2861: try { 2862: scuRaf.seek (0L); 2863: scuRaf.read (bb, 0, 512); //セクタ0を読み込む 2864: if (ByteArray.byaRls (bb, 0) == ('X' << 24 | '6' << 16 | '8' << 8 | 'S') && 2865: ByteArray.byaRls (bb, 4) == ('C' << 24 | 'S' << 16 | 'I' << 8 | '1')) { //X68SCSI1マジックがある 2866: scuBytesPerRecord = ByteArray.byaRwz (bb, 8); //1レコードあたりのバイト数(2の累乗) 2867: scuDiskEndRecord = ByteArray.byaRls (bb, 10); //ディスクのレコード数 2868: if (ByteArray.byaRls (bb, 42) == ('S' << 24 | 'x' << 16 | 'S' << 8 | 'I')) { //SxSI 2869: scuDiskEndRecord <<= 1; 2870: } 2871: } else if (bb[0x0000] == (byte) 0xeb && 2872: bb[0x01fe] == (byte) 0x55 && 2873: bb[0x01ff] == (byte) 0xaa) { //IBMスーパーフロッピー 2874: scuBytesPerRecord = 0x0200; //1レコードあたりのバイト数(2の累乗) 2875: scuDiskEndRecord = (int) (scuRaf.length () / scuBytesPerRecord); //ディスクのレコード数 2876: } 2877: } catch (IOException ioe) { 2878: } 2879: if (scuDiskEndRecord == 0) { 2880: try { 2881: scuRaf.close (); 2882: } catch (IOException ioe) { 2883: } 2884: scuRaf = null; 2885: return false; 2886: } 2887: scuDiskEndByte = (long) scuBytesPerRecord * scuDiskEndRecord; //ディスクのバイト数 2888: } else { //CD-ROM 2889: byte[] bb = new byte[2048]; 2890: try { 2891: scuRaf.seek (2048L * 16); 2892: scuRaf.read (bb, 0, 2048); //セクタ16を読み込む 2893: } catch (IOException ioe) { 2894: try { 2895: scuRaf.close (); 2896: } catch (IOException ioe2) { 2897: } 2898: scuRaf = null; 2899: return false; //セクタ16を読み込めなかった 2900: } 2901: scuBytesPerRecord = ByteArray.byaRwz (bb, 130); //ブロックのバイト数 2902: scuDiskEndRecord = ByteArray.byaRls (bb, 84); //ボリュームのブロック数 2903: scuDiskEndByte = (long) scuBytesPerRecord * scuDiskEndRecord; //ボリュームのバイト数。整合性はSPC.spcIsIsoで確認済みなのでチェックは省略する 2904: } 2905: System.out.println (Multilingual.mlnJapanese ? 2906: path + " を sc" + abuNumber + " に接続しました" : 2907: path + " was connected to sc" + abuNumber); 2908: return true; 2909: } 2910: 2911: //scuTini () 2912: // 後始末 2913: public void scuTini () { 2914: if (scuRaf != null) { 2915: try { 2916: scuRaf.close (); 2917: } catch (IOException ioe) { 2918: } 2919: scuRaf = null; 2920: } 2921: } //scuTini() 2922: 2923: //scuCommand (oc) 2924: // コマンドを実行する 2925: // セレクションフェーズに成功したのだから装置は接続されているはず 2926: // ロジカルユニットは存在しない可能性がある 2927: public void scuCommand (int oc) { 2928: if (SPC_DEBUG_COMMAND) { 2929: System.out.printf ("%08x scuCommand(0x%02x(%s)) [", XEiJ.regPC0, oc, SPC_COMMAND_NAME[oc]); 2930: for (int i = 0; i < scuChip.spiBufferLimit; i++) { 2931: if (i > 0) { 2932: System.out.print (','); 2933: } 2934: System.out.printf ("0x%02x", scuChip.spiCommandBuffer[i] & 255); 2935: } 2936: System.out.println (']'); 2937: } 2938: int lun = scuChip.spiCommandBuffer[1] >> 5 & 7; //LUN 2939: if (lun != 0) { 2940: scuDoInvalid (); 2941: return; 2942: } 2943: switch (oc) { 2944: case 0x00: //Test Unit Ready 2945: scuDoTestUnitReady (); 2946: break; 2947: case 0x01: //Rezero Unit 2948: scuDoRezeroUnit (); 2949: break; 2950: case 0x03: //Request Sense 2951: scuDoRequestSense (); 2952: break; 2953: case 0x04: //Format Unit 2954: scuDoFormatUnit (); 2955: break; 2956: //case 0x06: //Format Block(SASI) 2957: //case 0x07: //Bad Track Format(SASI) 2958: case 0x08: //Read(6) 2959: scuDoRead6 (); 2960: break; 2961: case 0x0a: //Write(6) 2962: scuDoWrite6 (); 2963: break; 2964: case 0x0b: //Seek(6) 2965: scuDoSeek6 (); 2966: break; 2967: //case 0x0e: //Assign Track(SASI) 2968: case 0x12: //Inquiry 2969: scuDoInquiry (); 2970: break; 2971: case 0x15: //Mode Select(6) 2972: scuDoModeSelect6 (); 2973: break; 2974: //case 0x18: //Copy 2975: case 0x1a: //Mode Sense(6) 2976: scuDoModeSense6 (); 2977: break; 2978: case 0x1b: //Start-Stop Unit 2979: scuStartStopUnit (); 2980: break; 2981: //case 0x1c: //Receive Diagnostic Results 2982: //case 0x1d: //Send Diagnostic 2983: case 0x1e: //Prevent-Allow Medium Removal 2984: scuDoPreventAllowMediumRemoval (); 2985: break; 2986: case 0x25: //Read Capacity 2987: scuDoReadCapacity (); 2988: break; 2989: case 0x28: //Read(10) 2990: scuDoRead10 (); 2991: break; 2992: case 0x2a: //Write(10) 2993: scuDoWrite10 (); 2994: break; 2995: case 0x2b: //Seek(10) 2996: scuDoSeek10 (); 2997: break; 2998: case 0x2e: //Write and Verify(10) 2999: scuDoWriteAndVerify10 (); 3000: break; 3001: case 0x43: //Read TOC 3002: scuDoReadTOC (); 3003: break; 3004: //case 0x2f: //Verify(10) 3005: //case 0x30: //Search Data High(10) 3006: //case 0x31: //Search Data Equal(10) 3007: //case 0x32: //Search Data Low(10) 3008: //case 0x33: //Set Limits(10) 3009: //case 0x34: //Pre-Fetch 3010: //case 0x35: //Synchronize Cache 3011: //case 0x36: //Lock-Unlock Cache 3012: //case 0x37: //Read Defect Data(10) 3013: //case 0x39: //Compare 3014: //case 0x3a: //Copy and Verify 3015: //case 0x3b: //Write Buffer 3016: //case 0x3c: //Read Buffer 3017: //case 0x3e: //Read Long 3018: //case 0x3f: //Write Long 3019: //case 0x40: //Change Definition 3020: //case 0x41: //Write Same 3021: //case 0x4c: //Log Select 3022: //case 0x4d: //Log Sense 3023: //case 0x55: //Mode Select(10) 3024: //case 0x5a: //Mode Sense(10) 3025: //case 0xc1: //Load/Unload SHARP MO 3026: //case 0xc2: //Assign Drive(SASI) 3027: default: //Invalid 3028: if (SPC_REPORT_UNIMPLEMENTED_COMMAND) { //未実装コマンドを表示する 3029: StringBuilder sb = new StringBuilder (); 3030: sb.append (String.format ("%08x scuCommand(0x%02x(%s)) [", XEiJ.regPC0, oc, SPC_COMMAND_NAME[oc])); 3031: for (int i = 0; i < scuChip.spiBufferLimit; i++) { 3032: if (i > 0) { 3033: sb.append (','); 3034: } 3035: sb.append (String.format ("0x%02x", scuChip.spiCommandBuffer[i] & 255)); 3036: } 3037: sb.append (']'); 3038: System.out.println (sb.toString ()); 3039: } 3040: scuDoInvalid (); 3041: } 3042: } //scuCommand(int) 3043: 3044: //scuDoTestUnitReady () 3045: // [0] 0x00 3046: // [1] |LUN###|-----| 3047: // [5] |..|----|Flag|Link| 3048: public void scuDoTestUnitReady () { 3049: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3050: } //scuDoTestUnitReady() 3051: 3052: //scuDoRezeroUnit () 3053: // [0] 0x01 3054: // [1] |LUN###|-----| 3055: // [5] |..|----|Flag|Link| 3056: public void scuDoRezeroUnit () { 3057: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3058: } //scuDoRezeroUnit() 3059: 3060: //scuDoPreventAllowMediumRemoval () 3061: // [0] 0x1e 3062: // [1] |LUN###|-----| 3063: // [4] |-------|Prevent| 3064: // [5] |..|----|Flag|Link| 3065: public void scuDoPreventAllowMediumRemoval () { 3066: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3067: scuUnitAttention (); 3068: return; 3069: } 3070: int prevent = scuChip.spiCommandBuffer[4] & 1; //0=イジェクト許可,1=イジェクト禁止 3071: if (prevent == 0) { //イジェクト許可 3072: allow (); 3073: } else { //イジェクト禁止 3074: prevent (); 3075: } 3076: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3077: } //scuDoPreventAllowMediumRemoval() 3078: 3079: //scuDoRequestSense () 3080: // [0] 0x03 3081: // [1] |LUN###|-----| 3082: // [4] アロケーション長 3083: // [5] |..|----|Flag|Link| 3084: // センスデータを最大nバイトまで転送してからクリアする 3085: // nが0x00のときSCSI-1は4バイトだけ転送するがSCSI-2は転送しない 3086: public void scuDoRequestSense () { 3087: int n = scuChip.spiCommandBuffer[4] & 255; 3088: if (scuMode > 1 && n == 0) { 3089: scuChip.spiSenseBuffer[0] = 0; 3090: scuChip.spiSenseBuffer[2] = 0; 3091: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3092: return ; 3093: } 3094: scuChip.spiDataInPhase (scuChip.spiSenseBuffer, 0, Math.min (n, scuMode == 1 ? 4 : 8), 0); //データインフェーズに移行する 3095: } //scuDoRequestSense() 3096: 3097: //scuDoFormatUnit () 3098: // [0] 0x04 3099: // [1] |LUN###|FmtData|CmpLst|ディフェクトリスト形式###| 3100: // [2] ベンダ固有 3101: // [3][4] インタリーブ 3102: // [5] |..|----|Flag|Link| 3103: public void scuDoFormatUnit () { 3104: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3105: scuUnitAttention (); 3106: return; 3107: } 3108: if (abuWriteProtected) { //書き込みが禁止されている 3109: scuDataProtect (); 3110: return; 3111: } 3112: if (true) { 3113: //イメージファイルをゼロクリアする 3114: final int step = 1024 * 256; //256KB 3115: byte[] zero = new byte[step]; 3116: Arrays.fill (zero, (byte) 0); 3117: try { 3118: scuRaf.seek (0L); 3119: long pos; 3120: for (pos = 0L; pos + step <= scuDiskEndByte; pos += step) { 3121: scuRaf.write (zero); 3122: } 3123: if (pos < scuDiskEndByte) { 3124: scuRaf.write (zero, 0, (int) (scuDiskEndByte - pos)); 3125: } 3126: } catch (IOException ioe) { 3127: } 3128: } 3129: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3130: } //scuDoFormatUnit() 3131: 3132: //scuDoRead6 () 3133: // [0] 0x08 3134: // [1][2][3] LUN<<21|論理ブロックアドレス 3135: // [4] 論理ブロック数 3136: // [5] |..|----|Flag|Link| 3137: public void scuDoRead6 () { 3138: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3139: scuUnitAttention (); 3140: return; 3141: } 3142: int a = ByteArray.byaRls (scuChip.spiCommandBuffer, 0) & 0x001fffff; //論理ブロックアドレス 3143: int n = scuChip.spiCommandBuffer[4] & 255; //論理ブロック数 3144: if (n == 0) { 3145: n = 256; 3146: } 3147: if (scuDiskEndRecord < a + n) { //範囲外 3148: scuDoInvalid (); 3149: return; 3150: } 3151: try { 3152: scuRaf.seek ((long) scuBytesPerRecord * a); 3153: scuRaf.read (scuRecordImage, 0, scuBytesPerRecord); 3154: } catch (IOException ioe) { 3155: } 3156: scuChip.spiDataInPhase (scuRecordImage, 0, scuBytesPerRecord, n - 1); //データインフェーズに移行する 3157: } //scuDoRead6() 3158: 3159: //scuReadImage () 3160: public void scuReadImage () { 3161: try { 3162: scuRaf.read (scuRecordImage, 0, scuBytesPerRecord); 3163: } catch (IOException ioe) { 3164: } 3165: } //scuReadImage() 3166: 3167: //scuDoWrite6 () 3168: // [0] 0x0a 3169: // [1][2][3] LUN<<21|論理ブロックアドレス 3170: // [4] 論理ブロック数 3171: // [5] |..|----|Flag|Link| 3172: public void scuDoWrite6 () { 3173: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3174: scuUnitAttention (); 3175: return; 3176: } 3177: if (abuWriteProtected) { //書き込みが禁止されている 3178: scuDataProtect (); 3179: return; 3180: } 3181: int a = ByteArray.byaRls (scuChip.spiCommandBuffer, 0) & 0x001fffff; //論理ブロックアドレス 3182: int n = scuChip.spiCommandBuffer[4] & 255; //論理ブロック数 3183: if (n == 0) { 3184: n = 256; 3185: } 3186: if (scuDiskEndRecord < a + n) { //範囲外 3187: scuDoInvalid (); 3188: return; 3189: } 3190: try { 3191: scuRaf.seek ((long) scuBytesPerRecord * a); 3192: } catch (IOException ioe) { 3193: } 3194: scuChip.spiDataOutPhase (scuRecordImage, 0, scuBytesPerRecord, n); //データアウトフェーズに移行する 3195: } //scuDoWrite6() 3196: 3197: //scuWriteImage () 3198: public void scuWriteImage () { 3199: int oc = scuChip.spiCommandBuffer[0] & 255; 3200: if (oc == 0x0a || //Write(6) 3201: oc == 0x2a || //Write(10) 3202: oc == 0x2e) { //Write and Verify(10) 3203: try { 3204: scuRaf.write (scuRecordImage, 0, scuBytesPerRecord); 3205: } catch (IOException ioe) { 3206: } 3207: } 3208: } //scuWriteImage() 3209: 3210: //scuDoSeek6 () 3211: // [0] 0x0b 3212: // [1][2][3] LUN<<21|論理ブロックアドレス 3213: // [5] |..|----|Flag|Link| 3214: public void scuDoSeek6 () { 3215: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3216: scuUnitAttention (); 3217: return; 3218: } 3219: int a = ByteArray.byaRls (scuChip.spiCommandBuffer, 0) & 0x001fffff; //論理ブロックアドレス 3220: if (scuDiskEndRecord < a) { //範囲外 3221: scuDoInvalid (); 3222: return; 3223: } 3224: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3225: } //scuDoSeek6() 3226: 3227: //scuDoInquiry () 3228: // [0] 0x12 3229: // [1] |LUN###|----|EVPD| 3230: // [2] ページコード 3231: // [4] アロケーション長 3232: // [5] |..|----|Flag|Link| 3233: //!!! EVPD==0のみ対応 3234: // 例 3235: // 0000 05 クォリファイア=0,デバイスタイプコード=5 3236: // 0001 80 RMB=1(リムーバブル),デバイスタイプ修飾子=0 3237: // 0002 02 ISOバージョン=0,ECMAバージョン=0,ANSIバージョン=2 3238: // 0003 02 AENC=0,TermlOP=0,レスポンスデータ形式=2 3239: // 0004 1f 追加データ長=31 3240: // 0005 00 3241: // 0006 00 3242: // 0007 18 RelAdr=0,WBus32=0,WBus16=0,Sync=1,Linked=1,CmdQue=0,SftRe=0 3243: // 0008 53 4f 4e 59 20 20 20 20 ベンダID="SONY " 3244: // 0010 43 44 2d 52 4f 4d 20 43 44 55 2d 35 35 53 20 20 プロダクトID="CD-ROM CDU-55S " 3245: // 0020 31 2e 30 74 プロダクト版数="1.0t" 3246: public void scuDoInquiry () { 3247: int evpd = scuChip.spiCommandBuffer[1] & 1; 3248: int pagecode = scuChip.spiCommandBuffer[2] & 255; //ページコード 3249: int n = scuChip.spiCommandBuffer[4] & 255; //アロケーション長 3250: if (evpd == 0) { //スタンダードInquiry情報 3251: scuChip.spiDataInBuffer[0] = (byte) (abuCurrentMode == 0 ? SPC_DIRECT_ACCESS_DEVICE : //ダイレクトアクセスデバイス。クォリファイアは0 3252: SPC_CDROM_DEVICE); //CD-ROMデバイス 3253: scuChip.spiDataInBuffer[1] = (byte) (SPC_REMOVABLE_HDD ? 1 << 7 : 0); //0=固定,1=リムーバブル 3254: scuChip.spiDataInBuffer[2] = (byte) (scuMode == 1 ? 1 : 2); //ISO/ECMA/ANSIバージョン。SCSI-1/SCSI-2 3255: scuChip.spiDataInBuffer[3] = (byte) (scuMode == 1 ? 1 : 2); //レスポンスデータ形式。SCSI-1/SCSI-2 3256: scuChip.spiDataInBuffer[4] = 31; //追加データ長 3257: scuChip.spiDataInBuffer[5] = 0; //予約 3258: scuChip.spiDataInBuffer[6] = 0; //予約 3259: scuChip.spiDataInBuffer[7] = 0; //サポート機能なし 3260: ByteArray.byaWstr (scuChip.spiDataInBuffer, 8, ( 3261: abuCurrentMode == 0 ? //ハードディスク 3262: // 111111 3263: //123456789012345 3264: "XEiJ " + //ベンダID(ASCII 8文字) 3265: "Hard Disk " + //プロダクトID(ASCII 16文字)。ASCIIに限られるがイメージファイル名を入れてもよい 3266: "1.0 " //プロダクト版数(ASCII 4文字) 3267: : //CD-ROM 3268: "XEiJ " + //ベンダID(ASCII 8文字) 3269: "CD-ROM " + //プロダクトID(ASCII 16文字)。ASCIIに限られるがイメージファイル名を入れてもよい 3270: "1.0 ")); //プロダクト版数(ASCII 4文字) 3271: scuChip.spiDataInPhase (scuChip.spiDataInBuffer, 0, Math.min (36, n), 0); //データインフェーズに移行する 3272: } else { //VPD情報 3273: //!!! 3274: if (SPC_REPORT_UNIMPLEMENTED_COMMAND) { 3275: System.out.println (String.format ("%08x Inquiry with EVPD==1\n", XEiJ.regPC0)); 3276: } 3277: scuDoInvalid (); 3278: } 3279: } //scuDoInquiry() 3280: 3281: //scuDoModeSelect6 () 3282: // [0] 0x15 3283: // [1] |LUN###|PF|---|SP| 3284: // [4] パラメータリスト長 3285: // [5] コントロールバイト 3286: public void scuDoModeSelect6 () { 3287: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3288: scuUnitAttention (); 3289: return; 3290: } 3291: int n = scuChip.spiCommandBuffer[4] & 255; //パラメータリスト長 3292: scuChip.spiDataOutPhase (scuChip.spiDataOutBuffer, 0, n, 0); //データアウトフェーズに移行する 3293: } //scuDoModeSelect6() 3294: 3295: //scuDoModeSense6 () 3296: // [0] 0x1a 3297: // [1] |LUN###|R|DBD|---| 3298: // [2] |PC##|ページコード######| 3299: // [4] アロケーション長 3300: // [5] |..|----|Flag|Link| 3301: public void scuDoModeSense6 () { 3302: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3303: scuUnitAttention (); 3304: return; 3305: } 3306: int page = scuChip.spiCommandBuffer[2] & 63; //ページコード 3307: if (!(page == 0x00 || page == 0x3f)) { 3308: scuDoInvalid (); 3309: return; 3310: } 3311: int n = scuChip.spiCommandBuffer[4] & 255; //アロケーション長 3312: scuChip.spiDataInBuffer[0] = 12 - 1; //センスデータ長 3313: scuChip.spiDataInBuffer[1] = 0; //メディアタイプ 3314: scuChip.spiDataInBuffer[2] = (byte) (abuWriteProtected ? 1 << 7 : 0 << 7); //ライトプロテクト 3315: scuChip.spiDataInBuffer[3] = 8; //ブロックディスクリプタ長 3316: //ブロックディスクリプタ1 3317: ByteArray.byaWl (scuChip.spiDataInBuffer, 4, 0 << 24 | scuDiskEndRecord); //デンシティコード,ブロック数 3318: ByteArray.byaWl (scuChip.spiDataInBuffer, 8, scuBytesPerRecord); //ブロック長 3319: scuChip.spiDataInPhase (scuChip.spiDataInBuffer, 0, Math.min (12, n), 0); //データインフェーズに移行する 3320: } //scuDoModeSense6() 3321: 3322: //scuStartStopUnit () 3323: // [0] 0x1b 3324: // [1] |LUN###|-----| 3325: // [4] |------|LoEj|Start| 3326: // [5] |..|----|Flag|Link| 3327: public void scuStartStopUnit () { 3328: int loejStart = scuChip.spiCommandBuffer[4] & 3; //LoEj|Start 3329: if (loejStart == 2) { //イジェクト 3330: eject (); 3331: } 3332: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3333: } //scuStartStopUnit() 3334: 3335: //scuDoReadCapacity () 3336: // [0] 0x25 3337: // [1] |LUN###|----|RelAdr| 3338: // [2][3][4][5] 論理ブロックアドレス 3339: // [8] |-------|PMI| 3340: // [9] |..|----|Flag|Link| 3341: // 3342: // 本来の仕様 3343: // Read Capacityが返す値は論理ブロック数ではなくて最終論理ブロックアドレスである 3344: // 論理ブロックアドレスは0から始まるので、論理ブロック数は最終論理ブロックアドレス+1に等しい 3345: // FORMAT.XのSCSIハードディスクに関する動作 3346: // 装置初期化 3347: // 先頭セクタの+10にRead Capacityが返した値を書き込む 3348: // 領域確保 3349: // 先頭セクタの+10に書かれている値またはRead Capacityが返した値を論理ブロック数と見なして容量を計算する 3350: // すなわち、FORMAT.XはRead Capacityが返す最終論理ブロックアドレスを論理ブロック数と誤解している 3351: // 結論 3352: // 他の機種では先頭セクタに最終論理ブロックアドレスが書かれていることが多いが、 3353: // X68000のSCSIハードディスクの先頭セクタの+10に書かれている値は最終論理ブロックアドレスではなくて論理ブロック数である 3354: // 辻褄合わせ 3355: // Read Capacityが返す値は、実行中のプロセスがFORMAT.Xならば論理ブロック数、それ以外は最終論理ブロックアドレスとする 3356: public void scuDoReadCapacity () { 3357: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3358: scuUnitAttention (); 3359: return; 3360: } 3361: int pmi = scuChip.spiCommandBuffer[8] & 1; //0=全体の末尾,1=指定されたアドレスから連続してアクセスできる領域の末尾 3362: int pmm = MainMemory.mmrHumanPmm (); //Human68kの実行中のプロセスのメモリ管理テーブルのアドレス 3363: boolean formatx = (pmi == 0 && //_S_READCAPは0 3364: 0 <= pmm && //Human68kのバージョンと実行中のプロセスのメモリ管理テーブルのアドレスの確認 3365: ((MC68060.mmuPeekByteSign (pmm + 0x64, 5) == 2 && //FORMAT2.Xのモジュール番号 3366: MC68060.mmuPeekLong (pmm + 0x30, 5) - (pmm + 256) == 68088 && //FORMAT2.X version 2.31のtext+dataのサイズ 3367: "FORMAT.X".equalsIgnoreCase (MC68060.mmuPeekStringZ (pmm + 0xc4, 5))) || //実行ファイル名 3368: (MC68060.mmuPeekLong (pmm + 0x30, 5) - (pmm + 256) == 0x6076 + 0x0004 && //SCSIFORMAT.Xのtext+dataのサイズ 3369: "SCSIFORMAT.X".equalsIgnoreCase (MC68060.mmuPeekStringZ (pmm + 0xc4, 5))))); //実行ファイル名 3370: ByteArray.byaWl (scuChip.spiDataInBuffer, 0, formatx ? scuDiskEndRecord : scuDiskEndRecord - 1); //実行中のプロセスがFORMAT.XまたはSCSIFORMAT.Xならば論理ブロック数、それ以外は最終論理ブロックアドレスを返す 3371: ByteArray.byaWl (scuChip.spiDataInBuffer, 4, scuBytesPerRecord); //ブロック長 3372: scuChip.spiDataInPhase (scuChip.spiDataInBuffer, 0, 8, 0); //データインフェーズに移行する 3373: } //scuDoReadCapacity 3374: 3375: //scuDoRead10 () 3376: // [0] 0x28 3377: // [1] |LUN###|DPO|FUA|--|RelAdr| 3378: // [2][3][4][5] 論理ブロックアドレス 3379: // [7][8] 論理ブロック数 3380: // [9] |..|----|Flag|Link| 3381: public void scuDoRead10 () { 3382: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3383: scuUnitAttention (); 3384: return; 3385: } 3386: int a = ByteArray.byaRls (scuChip.spiCommandBuffer, 2); //論理ブロックアドレス 3387: int n = ByteArray.byaRwz (scuChip.spiCommandBuffer, 7); //論理ブロック数 3388: if (scuDiskEndRecord < a + n) { //範囲外 3389: scuDoInvalid (); 3390: return; 3391: } 3392: if (n == 0) { 3393: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3394: return; 3395: } 3396: try { 3397: scuRaf.seek ((long) scuBytesPerRecord * a); 3398: scuRaf.read (scuRecordImage, 0, scuBytesPerRecord); 3399: } catch (IOException ioe) { 3400: } 3401: scuChip.spiDataInPhase (scuRecordImage, 0, scuBytesPerRecord, n - 1); //データインフェーズに移行する 3402: } //scuDoRead10() 3403: 3404: //scuDoWrite10 () 3405: // [0] 0x2a 3406: // [1] |LUN###|DPO|FUA|--|RelAdr| 3407: // [2][3][4][5] 論理ブロックアドレス 3408: // [7][8] 論理ブロック数 3409: // [9] |..|----|Flag|Link| 3410: public void scuDoWrite10 () { 3411: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3412: scuUnitAttention (); 3413: return; 3414: } 3415: if (abuWriteProtected) { //書き込みが禁止されている 3416: scuDataProtect (); 3417: return; 3418: } 3419: int a = ByteArray.byaRls (scuChip.spiCommandBuffer, 2); //論理ブロックアドレス 3420: int n = ByteArray.byaRwz (scuChip.spiCommandBuffer, 7); //論理ブロック数 3421: if (scuDiskEndRecord < a + n) { //範囲外 3422: scuDoInvalid (); 3423: return; 3424: } 3425: if (n == 0) { 3426: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3427: return; 3428: } 3429: try { 3430: scuRaf.seek ((long) scuBytesPerRecord * a); 3431: } catch (IOException ioe) { 3432: } 3433: scuChip.spiDataOutPhase (scuRecordImage, 0, scuBytesPerRecord, n); //データアウトフェーズに移行する 3434: } //scuDoWrite10() 3435: 3436: //scuDoSeek10 () 3437: // [0] 0x2b 3438: // [1] |LUN###|DPO|FUA|--|RelAdr| 3439: // [2][3][4][5] 論理ブロックアドレス 3440: // [9] |..|----|Flag|Link| 3441: public void scuDoSeek10 () { 3442: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3443: scuUnitAttention (); 3444: return; 3445: } 3446: int a = ByteArray.byaRls (scuChip.spiCommandBuffer, 2); //論理ブロックアドレス 3447: if (scuDiskEndRecord < a) { //範囲外 3448: scuDoInvalid (); 3449: return; 3450: } 3451: scuChip.spiStatusPhase (SPC_GOOD, SPC_COMMAND_COMPLETE); //エラーなしでステータスフェーズに移行する 3452: } //scuDoSeek10() 3453: 3454: //scuDoWriteAndVerify10 () 3455: // [0] 0x2e 3456: // [1] |LUN###|DPO|Reserved##|BytChk|RelAdr| 3457: // [2][3][4][5] 論理ブロックアドレス 3458: // [7][8] 論理ブロック数 3459: // [9] |..|----|Flag|Link| 3460: public void scuDoWriteAndVerify10 () { 3461: scuDoWrite10 (); 3462: } //scuDoWriteAndVerify10 3463: 3464: //scuDoReadTOC () 3465: // [0] 0x43 3466: // [1] |LUN###|---|MSF|-| 3467: // [6] 開始トラック 3468: // [7][8] アロケーション長 3469: // [9] コントロールバイト 3470: // 例: 3471: // MSF=0 3472: // 01: 00 3a 01 06 00 14 01 00 00 00 00 00 3473: // 02: 00 32 01 06 00 10 02 00 00 02 76 b0 3474: // 03: 00 2a 01 06 00 10 03 00 00 02 bf 7e 3475: // 04: 00 22 01 06 00 10 04 00 00 03 0e 3b 3476: // 05: 00 1a 01 06 00 10 05 00 00 03 96 3c 3477: // 06: 00 12 01 06 00 10 06 00 00 03 d2 e0 3478: // aa: 00 0a 01 06 00 10 aa 00 00 04 1b d2 3479: // MSF=1 3480: // 01: 00 3a 01 06 00 14 01 00 00 00 02 00 (0x00*60+(0x02-2))*75+0x00=0x000000 3481: // 02: 00 32 01 06 00 10 02 00 00 23 36 38 (0x23*60+(0x36-2))*75+0x38=0x0276b0 3482: // 03: 00 2a 01 06 00 10 03 00 00 28 03 13 (0x28*60+(0x03-2))*75+0x13=0x02bf7e 3483: // 04: 00 22 01 06 00 10 04 00 00 2c 20 01 (0x2c*60+(0x20-2))*75+0x01=0x030e3b 3484: // 05: 00 1a 01 06 00 10 05 00 00 34 10 12 (0x34*60+(0x10-2))*75+0x12=0x03963c 3485: // 06: 00 12 01 06 00 10 06 00 00 37 2b 11 (0x37*60+(0x2b-2))*75+0x11=0x03d2e0 3486: // aa: 00 0a 01 06 00 10 aa 00 00 3b 34 10 (0x3b*60+(0x34-2))*75+0x10=0x041bd2 3487: public void scuDoReadTOC () { 3488: if (abuCurrentMode == 0) { //ハードディスク 3489: scuDoInvalid (); 3490: return; 3491: } 3492: if (!abuInserted || scuDiskEndRecord == 0) { //挿入されていない 3493: scuUnitAttention (); 3494: return; 3495: } 3496: boolean msf = (scuChip.spiCommandBuffer[1] & 2) != 0; //true=MSFアドレス形式,false=論理ブロックアドレス形式 3497: int startTrack = scuChip.spiCommandBuffer[6] & 255; //開始トラック 3498: int allocLength = ByteArray.byaRwz (scuChip.spiCommandBuffer, 7); //アロケーション長 3499: if (startTrack == 0) { 3500: startTrack = 1; 3501: } 3502: int dataLength; 3503: if (startTrack <= 1) { //データトラックとリードアウトトラック 3504: dataLength = 4 + 8 * 2; //データの長さ。自分を含む 3505: ByteArray.byaWw (scuChip.spiDataInBuffer, 0, 2 + 8 * 2); //TOCデータ長。要求されたサイズに関わらず最後までの長さを返す。自分を含まない 3506: scuChip.spiDataInBuffer[2] = 1; //先頭トラック番号 3507: scuChip.spiDataInBuffer[3] = 1; //最終トラック番号 3508: scuChip.spiDataInBuffer[4] = 0; //Reserved 3509: scuChip.spiDataInBuffer[5] = 0x14; //カレントポジションデータ,データトラック 3510: scuChip.spiDataInBuffer[6] = 1; //トラック番号 3511: scuChip.spiDataInBuffer[7] = 0; //Reserved 3512: ByteArray.byaWl (scuChip.spiDataInBuffer, 8, 0); //アブソリュートCD-ROMアドレス 3513: scuChip.spiDataInBuffer[12] = 0; //Reserved 3514: scuChip.spiDataInBuffer[13] = 0x10; //カレントポジションデータ 3515: scuChip.spiDataInBuffer[14] = (byte) 0xaa; //トラック番号 3516: scuChip.spiDataInBuffer[15] = 0; //Reserved 3517: ByteArray.byaWl (scuChip.spiDataInBuffer, 16, msf ? scuDiskEndRecord / 4500 << 16 | scuDiskEndRecord / 75 % 60 + 2 << 8 | scuDiskEndRecord % 75 : scuDiskEndRecord); //アブソリュートCD-ROMアドレス 3518: } else if (startTrack <= 0xaa) { //リードアウトトラック 3519: dataLength = 4 + 8 * 1; //データの長さ。自分を含む 3520: ByteArray.byaWw (scuChip.spiDataInBuffer, 0, 2 + 8 * 1); //TOCデータ長。要求されたサイズに関わらず最後までの長さを返す。自分を含まない 3521: scuChip.spiDataInBuffer[2] = 1; //先頭トラック番号 3522: scuChip.spiDataInBuffer[3] = 1; //最終トラック番号 3523: scuChip.spiDataInBuffer[4] = 0; //Reserved 3524: scuChip.spiDataInBuffer[5] = 0x10; //カレントポジションデータ 3525: scuChip.spiDataInBuffer[6] = (byte) 0xaa; //トラック番号 3526: scuChip.spiDataInBuffer[7] = 0; //Reserved 3527: ByteArray.byaWl (scuChip.spiDataInBuffer, 8, msf ? scuDiskEndRecord / 4500 << 16 | scuDiskEndRecord / 75 % 60 + 2 << 8 | scuDiskEndRecord % 75 : scuDiskEndRecord); //アブソリュートCD-ROMアドレス 3528: } else { //開始トラック番号が範囲外 3529: scuDoInvalid (); 3530: return; 3531: } 3532: scuChip.spiDataInPhase (scuChip.spiDataInBuffer, 0, Math.min (dataLength, allocLength), 0); //データインフェーズに移行する 3533: } //scuDoReadTOC() 3534: 3535: //scuDoInvalid () 3536: public void scuDoInvalid () { 3537: if (scuMode == 1) { //SCSI-1 3538: scuChip.spiSenseBuffer[0] = (byte) SPC_INVALID_COMMAND; 3539: } else { //SCSI-2 3540: scuChip.spiSenseBuffer[0] = (byte) SPC_EXTENDED_SENSE; 3541: scuChip.spiSenseBuffer[2] = (byte) SPC_ILLEGAL_REQUEST; 3542: } 3543: scuChip.spiStatusPhase (SPC_CHECK_CONDITION, SPC_COMMAND_COMPLETE); 3544: } //scuDoInvalid() 3545: 3546: //scuUnitAttention () 3547: public void scuUnitAttention () { 3548: if (scuMode == 1) { //SCSI-1 3549: scuChip.spiSenseBuffer[0] = (byte) SPC_INVALID_COMMAND; 3550: } else { //SCSI-2 3551: scuChip.spiSenseBuffer[0] = (byte) SPC_EXTENDED_SENSE; 3552: scuChip.spiSenseBuffer[2] = (byte) SPC_UNIT_ATTENTION; 3553: } 3554: scuChip.spiStatusPhase (SPC_CHECK_CONDITION, SPC_COMMAND_COMPLETE); 3555: } //scuUnitAttention() 3556: 3557: //scuDataProtect () 3558: public void scuDataProtect () { 3559: if (scuMode == 1) { //SCSI-1 3560: scuChip.spiSenseBuffer[0] = (byte) SPC_INVALID_COMMAND; 3561: } else { //SCSI-2 3562: scuChip.spiSenseBuffer[0] = (byte) SPC_EXTENDED_SENSE; 3563: scuChip.spiSenseBuffer[2] = (byte) SPC_DATA_PROTECT; 3564: } 3565: scuChip.spiStatusPhase (SPC_CHECK_CONDITION, SPC_COMMAND_COMPLETE); 3566: } //scuDataProtect() 3567: 3568: } //class SCUnit 3569: 3570: 3571: 3572: } //class SPC 3573: 3574: 3575: