日立MB-S1に関する情報

ロジカル・メモリ・マップ

1234567...F0
0000窓2
(主に変数・文字)
グラフィックRAMテキスト領域
44KB
単純変数
MAX
8KB

文字列
44KB

文字列
44KB
窓1マシン語領域
52KB
-
1000配列

44KB
2000窓1
(主にテキスト)
窓2
3000
4000テキストVRAM
(窓3としても使用)
テキストVRAM窓3
5000ROMBASIC
(窓3としても使用)
IG/CG未使用
6000ROMBASICグラフィック
追加機能
RAMDISK
参照窓
7000DISK BASIC
システムコール
拡張用
8000DISK BASIC
基本処理
システム
イニシャライズ
割り込み処理(2)
9000グラフィック
追加機能
(窓4としても使用)
A000
B000-エディタROM BASICROM BASICフィールド・バッファ


DSB.FCB
DSB.FCB
FIELD BUFFER

最大8KB
拡張ワーク・エリア
C000拡張ワーク・エリア
スタック

スタック
D000
スタック

スタック

スタック

スタック

スタック

スタック

スタック
E000システム・ワークシステム・ワークシステム・ワークシステム・ワークシステム・ワークシステム・ワークシステム・ワークシステム・ワークシステム・ワーク
F000割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理
割り込み処理(1)
メモリ管理

メモリ管理

S1のメモリ空間は、1MBです。しかし68B09Eは8ビットなので、直接アクセスできるメモリ空間は64KBで、1MBのメモリ空間をダイレクトにアクセスする事はできません。
S1は、ハードウェア上では1MBのメモリ・マップを構成し、ソフトウェア上では論理的な操作により64KBのロジカル・メモリ・マップ上でメモリを管理することにより、1MBのメモリ空間をアクセスできるようにします。
また、メモリ空間は、空間0のメモリ管理、システム・コールによって行います。上部にハードウェア・メモリ・マップ(以下実メモリ・マップと称します)、下部にロジカル・メモリ・マップを示します。

メモリ空間

メモリ管理を理解するには、まず空間を理解しなければなりません。メモリ管理の諸機能は、すべてこの空間を操作するものです。
空間とは、CPUがアクセス可能な64KBのメモリ空間の構成内容を定義するもので、下部に示すように、空間0〜$Fの最大16種類が定義できます。
そして空間は、CPUがアクセスできる空間(64KB)と実メモリの対応付けを行うマップ・イメージと、メモリの種類を識別するためのメモリ識別情報により定義されます。
実メモリを4KB単位に0〜$FFの256ページに分割し、任意の16ページ(64KB)を集めてCPUのアドレスを構成したものがマップ・イメージです。
実際にアクセスされる実メモリのアドレス1MB(0〜$FFFFF)は、空間のマップ・イメージとCPUのアクセスする64KB(0〜$FFFF)によって一義的に定まります。
図3で、空間mの$1000〜$1FFF番地の4KBに実メモリの$70ページが対応してる場合、空間mの$1000〜$1FFF番地をアクセスする事は、実際には実メモリの$70000〜$70FFF番地をアクセスする事になります。
同じように、空間nの$2000〜$2FFF番地の$KBに実メモリの$B2ページが対応してる場合、空間nの$2000〜$2FFF番地をアクセスすると、実メモリの$B2000〜$B2FFF番地をアクセスする事になります。
マップ・イメージは空間を定義した後にメモリ割り当て、窓ロケートなどのメモリ管理機能を使用して変更することができます。

ハードウェア・メモリ・マップ

物理アドレス
00000(1)メモリ拡張領域
80000(12)予約領域
84000(2)システムRAM
90000(12)予約領域
A0000
B0000(3)グラフィックRAM(赤)
B4000(3)グラフィックRAM(緑)
B8000(3)グラフィックRAM(青)
BC000(4)文字表示用RAM
文字表示用カラーRAM
BC800(5)イメージジェネレータ用RAM(赤)(緑)(青)
BD000(5)文字フォント格納RAM
BE000
C0000(12)予約領域
D0000漢字辞書用ROM
モデル20,40のみ
D8000(12)予約領域
E0000(6)S1 ROM BASIC
EFE00(7)システムI/O-2
EFFF0(8)割り込みベクタ(システムモードA)
F0000(システムRAMのイメージ)
FA000(9)LEVEL-3 ROM BASIC
FFF00(10)システムI/O-1
FFFF0(11)割り込みベクタ(システムモードB)
内容備考
00共通領域拡張ワークシステムがメモリ(RAM)の割り当て/解放を行う。
ユーザーは定義のみ可能。
01テキスト境域
02変数/配列境域
03文字境域
04ユーザーマシン語境域
05フィールド・バッファ
06DISK BASIC
07〜08漢字DISK BASIC
09〜0Fシステムで予約
10〜8Fユーザー使用可ユーザーが自由に定義し、メモリの割り当て/解放ができる。
FF固定領域メモリの割り当て/解放は不可。
$0000
$D000$85$D〜$Fページには特定の実メモリに対応する固定領域
$E000$84
$F000$EF
マップイメージ
空間xyz
空間x
の0〜5
ページに
メモリ割当
xyz
空間y
の9〜$B
ページの
メモリ解放
xyz
0BFBF767B7B767B7B76
1BFBF777C7C777C7C77
2BFBF787D7D787D7D78
3BFBF797E7E797E7E79
4BFBF7A7F7F7A7F7F7A
5BFBFBF8787BF8787BF
6BFBFBFBFBFBFBFBFBF
7BFBFBFBFBFBFBFBFBF
8BFBFBFBFBFBFBFBFBF
970757570757570BFBF
A71BFBF71BFBF71BFBF
B72BFBF72BFBF72BFBF
C737474737474737474
D858585858585858585
E848484848484848484
FEFEFEFEFEFEFEFEFEF
$BFはメモリが未割り当て状態を示す。

メモリ識別

空間xyzxyz
0101012ワーク1ワーク1ワーク2
1101012
2101012
3101012
4101012
5101012
6101012
7101012
8101012
9FF1111P1ワーク3ワーク3
AFF1111
BFF1111
CFFFFFFP2P2

メモリ識別情報は複数空間の間で同一メモリを管理するための情報で、共通領域コードと固定領域コードに大別されます。
共通領域は複数の空間で共用するメモリで、ワークRAMを割り当てて使用します。
メモリ管理ルーチンでは、空間ページの位置とメモリ識別情報(共通領域コード)が一致するものを同一メモリとみなし、メモリの割り当て/解放操作時に同じマップ・イメージを作成します。
固定領域は、あらかじめマップ・イメージが定められている領域で、メモリの割り当て/解放操作を行ってもマップ・イメージは変化しません(割り当て/解放は不可)。
メモリ識別情報は、空間の定義時に作成され、その後は変化しません。メモリ意識別情報の分類を参照してください。
また、全空間において$D〜$Fページは共通領域になっていて($D〜$Fページのマップ・イメージ参照)、マップ・イメージではすべて同一に、特定の実メモリと対応しており、空間の定義(マップ・イメージ、メモリ識別)は、0〜$Cページについてのみ可能です。
メモリ割り当ての実例)は3つの空間x,y,zのマップ・イメージ、メモリ識別の定義状態、メモリ割り当て、および解放によるマップ・イメージの変化を示したものです。
左の状態ではワーク1は、空間xとyの共通領域、ワーク3は空間yとzの共通領域、ワーク2は空間zでのワーク領域として定義してあります。
例えばここで、ワーク1に情報を書くために6ページのメモリが必要となり、左のマップ・イメージに対して、空間xの0〜5ページにメモリ割り当てシステム・コールにより、RAMメモリを割り当てたとします。
システム・コールは実メモリの未割り当てRAMより6ページ分を確保し、空間xの0〜5ページに割り当てを行いますが、この時空間yにも同一のメモリ識別情報($10)が定義されているため、空間yの0〜5ページにも同一のRAMを割り当てる事になります。
同様に空間yのワーク3(9〜$Bページ)のメモリを解放した場合、空間zにも同一のメモリ識別情報($11)が定義されているため空間zの9〜$Bページも同時にメモリ解放を行う事になります。
ここで$BFはメモリは割り当てがない事を示します。

実メモリの実装

0123456789ABCDEF
0ワークRAM
(拡張RAM)
未使用予約領域グラフィックRAM
※NEW ON 1または
3を指定した場合は
通常のワークRAM
として使用
拡張ROM予約領域S1 BASIC ROML3 BASIC ROM
1
2
3
4システムワーク
スタック
5
6拡張ワーク
7ワークRAM
(RAM標準装備)
8
9
A
B
Cテキスト
VRAM
DIG
CG
E
FNMI発生

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます