ET解析記事 その1 増補版 『 おきて破りのET−BIOS内部解析(1) 』   著作:E.Kako ######## # はじめに # ########  ETのBIOS−ROMの内部を探って分かったことを毎回少しずつ書いて いきたいと思います。この記事により、BIOSを使わないで直接ハードにア クセスする方法も紹介されますが、ROMのバージョンの違いによってソフト が動かないというリスクもありますので、あまりお勧めできません。注意して この記事をご利用ください。この記事に関して不利益が発生しても、著者は免 責とします。 ######## # エントリ # ########  ご存知のとおり、ETのBIOSはRST30Hにて呼び出されます。そし て、0030Hには0B3EHへのJP命令が書かれています。そこから各B IOSの処理に分岐します。 (※ROMのバージョン1.01のものを調べました。)  分岐先が存在するバンクにより、BIOSは3つのグループに分けられます。 1つは00H〜67H,1つは68H〜C8H,もう1つはC9H〜FFHで、 それぞれ以下のようなバンクに存在します。   00H〜67H : バンク00H              バンクウィンドウは0000H〜3FFFH(固定)   68H〜C8H : バンク01H              バンクウィンドウはC000H〜FFFFH(BW2)   C9H〜FFH : バンク02H              バンクウィンドウはC000H〜FFFFH(BW2)  バンクの切り替えには普通はBIOSを使います。ハードウェア的にはI/O ポート(20h),(21H)がBR1,BR2となっています。  ただし、モニタからこのポートに出力してもバンクは変更できません。バンク レジスタの値をBIOSのワークエリアに保存しているからです。 ですから、 このワークをモニタで書き換えると、モニタのSコマンドと同じ働きをします。   I/Oポート(20H) : バンク・レジスタ BR1   I/Oポート(21H) : バンク・レジスタ BR2   4011H : BR1の値を保存しているBIOSワーク   4012H : BR2の値を保存しているBIOSワーク ################ # 各BIOSの先頭アドレス # ################ BIOS番号:アドレスの一覧表です。 例えば、BIOS 00H の「メインメニュー呼び出し」のアドレスは、0BA2Hです。 (1)BIOS 00H〜67Hのアドレス 00H:0BA2H 01H:0BF0H 02H:0C05H 03H:0C12H 04H:0A93H 05H:0A98H 06H:1938H 07H:0AC0H 08H:1941H 09H:31BFH 0AH:31C4H 0BH:314AH 0CH:321CH 0DH:3FA0H 0EH:3FB8H 0FH:3FC0H 10H:3EB4H 11H:3EDBH 12H:3F2CH 13H:3EC2H 14H:3F82H 15H:0A75H 16H:0A77H 17H:0A5EH 18H:1963H 19H:1A8AH 1AH:17C9H 1BH:17C3H 1CH:181CH 1DH:1876H 1EH:18BCH 1FH:1855H 20H:1C87H 21H:1ACFH 22H:3852H 23H:2137H 24H:17B6H 25H:20FBH 26H:1EB3H 27H:2FE2H 28H:2F94H 29H:30FDH 2AH:30E9H 2BH:153CH 2CH:0C1FH 2DH:1398H 2EH:0C3BH 2FH:0C47H 30H:0C53H 31H:0D1EH 32H:0D0FH 33H:0D08H 34H:0C66H 35H:146CH 36H:14D5H 37H:0C37H 38H:1449H 39H:148EH 3AH:0EC6H 3BH:0F30H 3CH:0F86H 3DH:106FH 3EH:1029H 3FH:0FF0H 40H:1D21H 41H:1D6BH 42H:1D7AH 43H:1D7EH 44H:1E0CH 45H:1E27H 46H:1E69H 47H:1E77H 48H:1D40H 49H:1EABH 4AH:1E9AH 4BH:1E9DH 4CH:0C4BH 4DH:145EH 4EH:1480H 4FH:18EFH 50H:256CH 51H:260AH 52H:2554H 53H:2F83H 54H:21EBH 55H:2221H 56H:2648H 57H:26BEH 58H:2702H 59H:215BH 5AH:21A2H 5BH:21DAH 5CH:21DDH 5DH:2504H 5EH:2326H 5FH:23B7H 60H:23BFH 61H:2467H 62H:23E1H 63H:2332H 64H:233AH 65H:22D9H 66H:22AAH 67H:2345H (2)BIOS 68H〜C8Hのアドレス (BANK-WINDOW2:C000H-FFFFH BANK #01) 68H:C0C2H 69H:C0C2H 6AH:C0C2H 6BH:C0C2H 6CH:C0C2H 6DH:C0C2H 6EH:C0C2H 6FH:C0C2H 70H:C0C4H 71H:C0C9H 72H:C0CDH 73H:C1EAH 74H:C106H 75H:C1DDH 76H:C2A5H 77H:C1ABH 78H:C14FH 79H:E312H 7AH:E329H 7BH:E356H 7CH:E378H 7DH:E391H 7EH:E419H 7FH:E488H 80H:C7C5H 81H:C7EDH 82H:C8B5H 83H:C8FEH 84H:C921H 85H:C909H 86H:C7B6H 87H:C775H 88H:E4CCH 89H:E50EH 8AH:E573H 8BH:E5FAH 8CH:C0C2H 8DH:E64CH 8EH:E6FAH 8FH:E667H 90H:E6AFH 91H:E782H 92H:E8C0H 93H:E8BCH 94H:E943H 95H:E966H 96H:F0E1H 97H:F08EH 98H:EF8DH 99H:EBF1H 9AH:EF5FH 9BH:EF6CH 9CH:EC5FH 9DH:ED34H 9EH:F320H 9FH:C0C2H A0H:D8D8H A1H:D9D0H A2H:F220H A3H:E9EBH A4H:D4EFH A5H:D757H A6H:D1B9H A7H:D28FH A8H:E137H A9H:E04EH AAH:C5D2H ABH:C0C2H ACH:F5EAH ADH:F5ACH AEH:F42BH AFH:F46EH B0H:F45EH B1H:F42EH B2H:F47AH B3H:F4CAH B4H:FD32H B5H:DDFBH B6H:C0C2H B7H:C0C2H B8H:C9BCH B9H:C96DH BAH:CB04H BBH:CB8CH BCH:CA8EH BDH:CADDH BEH:CA2AH BFH:CA59H C0H:C75BH C1H:CC93H C2H:D0E1H C3H:D7D6H C4H:D869H C5H:D87FH C6H:D8A8H C7H:C7D5H C8H:C86DH (2)BIOS C9H〜FFHのアドレス (BANK-WINDOW2:C000H-FFFFH BANK #02) C9H:C6EDH CAH:C6DFH CBH:C6E3H CCH:C2A3H CDH:C2A3H CEH:C7ECH CFH:C8ADH D0H:D333H D1H:D338H D2H:D341H D3H:D350H D4H:D479H D5H:D503H D6H:D57BH D7H:D5C6H D8H:D698H D9H:D713H DAH:D7D5H DBH:D87DH DCH:D893H DDH:D469H DEH:D4DFH DFH:D975H E0H:DAA4H E1H:DAE1H E2H:DB0FH E3H:D205H E4H:D287H E5H:D2E7H E6H:C2A3H E7H:DB82H E8H:CC98H E9H:CCA4H EAH:CCAEH EBH:CCABH ECH:CCDCH EDH:CCEAH EEH:CEC4H EFH:D02EH F0H:C2A3H F1H:C749H F2H:C6F6H F3H:C6C8H F4H:C690H F5H:C64BH F6H:CADCH F7H:C5A6H F8H:C609H F9H:CC0DH FAH:CB4DH FBH:CB96H FCH:CBC9H FDH:CBD6H FEH:C2BEH FFH:C479H ######### # 次回の予告 # #########  現在のところ、他に分かっているのはMUSIC関係だけです。これは次回 詳しく説明します。   I/Oポート(41H) : 00Hを出力するとブザー電圧Low                 01Hを出力するとブザー電圧Hi   418CH : TBASE のBIOSワーク   418EH : Key Of LENgth のBIOSワーク [EOF]