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

QLOOK ANALYTICS