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-***) |