日立MB-S1に関する情報

メモリ空間0
ルーチン番号6

機能

デフォルトで設定されていない、メモリ空間のロジカル・マップとシステム・コールを登録します。

解説

AccAに格納されているロジカル・メモリ空間のメモリ・マップを、AccBに格納されているメモリ空間上のXが示すアドレスにより記録されている、パラメータに従って登録します。

入力情報

AccA:登録する空間メモリ$8〜$D
AccB:登録時に必要なパラメータが格納されているメモリ空間番号
X:登録時に必要なパラメータが格納されているメモリ空間上での先頭アドレス
先頭アドレス:
U--------D7D6D5D4D3D2D1D0
登録するジャンプ・テーブルのエントリ数

パラメータ・エリア:最初の4バイト

2バイト2バイト
登録するチェイン・テーブルの内容を格納されているメモリ空間上のアドレス登録するシステム・コールのジャンプ・テーブルの先頭アドレス
ロジカル・メモリ・マップの登録だけの場合には、ジャンプ・テーブルの先頭アドレスをすべて0としておきます。ロジカル・メモリ同士でプログラムをリンクさせる場合に必要になります。

チェイン・テーブル情報:次の13バイト

バイト12345678910111213
登録するメモリ空間上の0ページに対応するメモリ識別番号
チェイン・テーブルに登録するメモリ識別番号
メモリ識別番号内容
$00拡張ワーク
$01テキスト
$02変数/配列
$03文字列
$04マシン後領域
$05フィールド・バッファ
$06〜$0Fリザーブ領域(DISK BASIC、ユーティリティなどで使用)
$10〜$8F未使用領域(ユーザーが自由に定義して使用可能)
$90〜$FF実メモリのページ番号

サンプルプログラム

内容

メモリ空間8を、メモリ空間6と同じ内容で、メモリ・マップの登録を行います。
 0           0000   MMAMAP  EQU  *          --SAMPLE OF "MMAMAP" ROUTINE--
 1 C000                     ORG  $C000
 2 C000   20 13             BRA  EXEC
 3 C002      08     MAPNO   FCB  $08        トウロク MEMORY MAP NO=8
 4 C003      0F     PRMMAP  FCB  $0F        CURRENT MEMORY MAP=15
 5           C004   PARM    EQU  *          ** PARM. TABLE **
 6 C004      0000           FDB  $0000      TOP ADDR. OF CHAIN TABLE
 7 C006      0000           FDB  $0000      TOP ADDR. OF JUMP TABLE
 8           C008   CHAIN   EQU  *          ** CHAIN TABLE IMAGE **
 9 C008      0303           FDB  $0303
10 C00A      0303           FDB  $0303
11 C00C      0303           FDB  $0303
12 C00E      0303           FDB  $0303
13 C010      0303           FDB  $0303
14 C012      0305           FDB  $0305
15 C014      05             FCB  $05
16           C015   EXEC    EQU  *          PROGRAM START
17 C015   30 8CEC           LEAX PARM,PCR   X:TOP ADDR. OF PARM. TABLE
18 C018   31 04             LEAY 4,X        Y:TOP ADDR. OF CHAIN TABLE IMAGE
19 C01A 10AF 84             STY  ,X
20 C01D   4F                CLRA
21 C01E   5F                CLRB
22 C01F   1F 03             TFR  D,U        U:JUMP TABLE ENTRY COUNT - 1
23 C021   A6 8CDE           LDA  MAPNO,PCR  A:トウロク MEMORY MAP NO
24 C024   E6 8CDC           LDB  PRMMAP,PCR B:CURRENT MEMORY MAP NO
25 C027 103F                SWI2            CALL "MMAMAP" ROUTINE
26 C029      40             FCB  $40        MAP NO=0 ROUTINE NO=6
27 C02A      06             FCB  $06
28 C02B      39             RTS
29 
                         END

実行結果

プログラム実行後、メモリ空間8とメモリ空間6の実メモリ割り当てを確認します。
*MAPP
CURRENT MAP = 08
*XP
0=BF 1=BF 2=BF 3=BF 4=BF 5=BF 6=BF 7=BF 8=BF 9=BF A=40 B=45 C=BF D=85 E=84 F=EF
*MAP
CURRENT MAP = 08
              06
CURRENT MAP = 06
*XP
0=BF 1=BF 2=BF 3=BF 4=BF 5=BF 6=BF 7=BF 8=BF 9=BF A=40 B=45 C=BF D=85 E=84 F=EF
*
サンプル・プログラム実行後のメモリ空間8の内容は現在のメモリ空間6の内容と同じになります。

コメントをかく


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

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

どなたでも編集できます