NEC PC98のメモリマップと割り込み
NEC PC98のメモリマップ・割り込みについて。
基準とする機種はPC-9801VX。
○システムメモリマップ
| アドレス | サイズ | 割り当て種別 | 説明 |
| 0x000000 - 0x0003FF | 1KB | メインRAM | IVT(割り込みベクターテーブル) |
| 0x000400 - 0x0005FF | 512B | メインRAM | BDA(BIOSデータエリア) |
| 0x000600 - 0x07FFFF | 510KB | メインRAM | コンベンショナルメモリ |
| 0x080000 - 0x09FFFF | 128KB | メインRAM | コンベンショナルメモリ(一部の機種では切り離し可) |
| 0x0A0000 - 0x0A3FFF | 16KB | サブRAM | テキスト用ビデオメモリ |
| 0x0A4000 - 0x0A4FFF | 4KB | サブRAM | CGウィンドウ |
| 0x0A5000 - 0x0A7FFF | 12KB | (予約) | 予約領域 |
| 0x0A8000 - 0x0BFFFF | 96KB | サブRAM | グラフィック用ビデオメモリ |
| 0x0C0000 - 0x0C3FFF | 16KB | ROM(予約) | ユーザー拡張ROM予約領域 |
| 0x0C4000 - 0x0DFFFF | 112KB | ROM(予約) | システム拡張ROM予約領域 |
| 0x0E0000 - 0x0E7FFF | 32KB | サブRAM | グラフィック用ビデオメモリ |
| 0x0E8000 - 0x0FFFFF | 96KB | ROM | システムROM(BIOS、BASICなど) |
| 0x100000 - 0xEFFFFF | 14MB | メインRAM | プロテクトメモリ |
| 0xF00000 - 0xF9FFFF | 640KB | (予約) | 予約領域 |
| 0xFA0000 - 0xFFFFFF | 384KB | - | 0x0A0000 - 0x0FFFFF のミラー |
| 0x1000000 - ? | - | メインRAM | プロテクトメモリ(機種によって搭載可能メモリ容量は異なる) |
| 0xFFF00000 - 0xFFFFFFFF | 1MB | - | 0xF00000 - 0xFFFFFFのミラー |
○MS-DOS Ver.5.0におけるメモリマップ(0000:0000 - FFFF:FFFF)
| アドレス | サイズ | 割り当て | 説明 |
| 0x000000 - 0x0003FF | 1KB | システム | IVT(割り込みベクターテーブル) |
| 0x000400 - 0x0005FF | 512B | システム | BDA(BIOSデータエリア) |
| 0x000600 - ? | 15KB | MS-DOS | IO.SYS |
| ? - ? | 5KB | MS-DOS | MSDOS.SYS |
| ? - ? | 19KB | MS-DOS | デバイスドライバ |
| ? - ? | 22KB | MS-DOS | システムテーブル |
| ? - ? | 3KB | MS-DOS | COMMAND.COM |
| ? - 0x09FFFF | 575KB | MS-DOS | 空きプログラムメモリ領域 |
| 0x0A0000 - 0x0A4FFF | 20KB | システム | テキストVRAM等 |
| 0x0A5000 - 0x0A7FFF | 12KB | (空き) | 空き(UMB領域) |
| 0x0A8000 - 0x0AFFFF | 32KB | システム | グラフィックVRAM |
| 0x0B0000 - 0x0BFFFF | 64KB | EMSウィンドウ | ハードウェアEMS/グラフィックVRAM |
| 0x0C0000 - 0x0CFFFF | 64KB | EMSウィンドウ | ソフトウェアEMS/拡張ROM |
| 0x0D0000 - 0x0DFFFF | 64KB | システム | 拡張ROM領域 |
| 0x0E0000 - 0x0E7FFF | 32KB | システム | グラフィックVRAM |
| 0x0E8000 - 0x0FFFFF | 96KB | システム | システムROM |
| 0x100000 - 0x10FFEF | 64KB | MS-DOS | HMA領域 |
○拡張ボードの標準設定における使用メモリアドレス
| アドレス | サイズ | 使用例 |
| 0xC4000 - 0xC5FFF | 8KB | BRANCH4680(PC-98XL2-04) |
| 0xC8000 - 0xC9FFF | 8KB | BRANCH4680(PC-9867) |
| 0xCA000 - 0xCBFFF | 8KB | 通信回線(PC-9866,PC-9801-59) |
| 0xCC000 - 0xCDFFF | 8KB | サウンド(PC-9801-26) |
| 0xD0000 - 0xD3FFF | 16KB | RS-232C(PC-9861),BRANCH4670(PC-9864) |
| 0xD2000 - 0xD3FFF | 8KB | BRANCH4680(PC-9801-83),R8100(PC-9801-88) |
| 0xD4000 - 0xD5FFF | 8KB | GP-IB(PC-9801-29) |
| 0xD6000 - 0xD6FFF | 4KB | 640KB FD I/F(PC-9801-08,-09) |
| 0xD7000 - 0xD7FFF | 4KB | 1MB FD I/F(PC-9801-15), SASI HD I/F(PC-9801-27) |
| 0xD8000 - 0xDBFFF | 16KB | IDE HD I/F,RAMドライブ |
| 0xDC000 - 0xDCFFF | 4KB | SCSI I/F(PC-9801-55,-92) |
| 0xDC000 - 0xDDFFF | 8KB | SCSI I/F(PC-9801-50) |
○システム割り込み(ハードウェア割り込み)
| デバイス | IRQ番号 | 用途 |
| 8259A マスター |
0 | システムタイマー |
| 1 | キーボード | |
| 2 | CRTV(画面垂直同期(VSYNC)) | |
| 3 | 拡張バス(INT0) | |
| 4 | RS-232C | |
| 5 | 拡張バス(INT1) | |
| 6 | 拡張バス(INT2) | |
| 7 | スレーブ(IRQ8-IRQ15) | |
| 8259A スレーブ |
8 | プリンター(V30)/数値データプロセッサー(80286) |
| 9 | 拡張バス(INT3) | |
| 10 | 拡張バス(INT41) | |
| 11 | 拡張バス(INT42) | |
| 12 | 拡張バス(INT5) | |
| 13 | 拡張バス(INT6) | |
| 14 | 数値データプロセッサー(V30)/無(80286) | |
| 15 | (システムタイマ) |
○ソフトウェア割り込みベクター(リアルモード時)
| 割り込み番号 | 用途 |
| 00h | ゼロ除算エラー |
| 01h | シングルステップ |
| 02h | NMI |
| 03h | INT3 |
| 04h | オーバーフロー |
| 05h | COPYキー |
| 06h | STOPキー |
| 07h | インターバルタイマー |
| 08h | IRQ 0 |
| 09h | IRQ 1 |
| 0Ah | IRQ 2 |
| 0Bh | IRQ 3 |
| 0Ch | IRQ 4 |
| 0Dh | IRQ 5 |
| 0Eh | IRQ 6 |
| 0Fh | IRQ 7 |
| 10h | IRQ 8 |
| 11h | IRQ 9 |
| 12h | IRQ 10 |
| 13h | IRQ 11 |
| 14h | IRQ 12 |
| 15h | IRQ 13 |
| 16h | IRQ 14 |
| 17h | IRQ 15 |
| 18h | キーボード/CRT BIOS |
| 19h | RS-232C BIOS |
| 1Ah | プリンター BIOS |
| 1Bh | DISK BIOS |
| 1Ch | カレンダー BIOS |
| 1Dh | 予約 |
| 1Eh | N88-BASIC(86) |
| 1Fh | 予約 |
| 20-3Fh | 予約 |
| 40-7Fh | ユーザー用 |
○拡張ボードの標準設定における割り込み
| 割り込み番号 | 拡張ボード |
| INT0 | ファクシミリボード(PC-9801-37) |
| RS-232C 2CH(PC-9861) | |
| 通信制御アダプタ(PC-9862) | |
| ネットワークI/F(PC-9864) | |
| タッチ(PC-9873) | |
| INT1 | R8100I/F(PC-9801-88) |
| CMT(PC-9801-13) | |
| ImPP(PC-98XL-02) | |
| B4680 I/F(PC-9801-83) | |
| INT2 | ODA I/F(PC-9801-05) |
| CGMT I/F(PC-9801-36) | |
| INT3 | SASI I/F(PC-9801-27) |
| SCSI I/F(PC-9801-50,-55) | |
| INT4 | 高速回線アダプタ(PC-9801-59) |
| INT41 | 640KB FD I/F(PC-9801-09) |
| INT42 | 1MB FD I/F(PC-9801-15) |
| INT5 | サウンド(PC-9801-26) |
| GP-IB(PC-9801-29) | |
| RS-232C 3CH(PC-9861) | |
| B4680 I/F(PC-98XL2-04) | |
| B4680 I/F(PC-9867) | |
| INT6 | サウンド(PC-9801-14) |
| 68000(PC-9801-16) | |
| マウスI/F(PC-9871) | |
| PC-UXボード(PS98-144-***) |