日立MB-S1に関する情報

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

機能

実メモリをロジカル・マップのメモリ空間に割り当てます。

解説

AccAに格納されているメモリ空間番号をAccBに格納されているページ位置から、ペース数分の実メモリを割り当てます。MMSTPGと異なり割り当てる実メモリはシステムが管理して自動的に割り当てます。

入力情報

AccA:実メモリを割り当てる、メモリ空間番号$00〜$0F
AccB:
D7D6D5D4D3D2D1D0
ページ位置
$00〜$0C
ページ数
$01〜$0D(ページ位置+ページ数≦$0D)

出力情報

AccB:メモリ不足のため割り当てできなかったページ数$01〜$0D

サンプルプログラム

 0           0000 MMASIGN EQU *          --SAMPLE OF "MMASGN" ROUTINE--
 1 C000                   ORG $C000
 2 C000   20 14           BRA STEP1
 3 C002      08   MAPNO   FCB $08        MAP NO=8(REGIST MEMORY MAP)
 4 C003      08   PAGEP   FCB 8          PAGE POSITION = 8
 5 C004      02   PAGEC   FCB 2          PAGE COUNT = 2
 6           C005 PARAM   EQU *          ** PARM. TABLE **
 7 C005      0000 CINTBL  FDB $0000      TOP ADDR. OF CHAIN TABLE IMAGE
 8 C007      0000 JMPTBL  FDB $0000      TOP ADDR. OF JUMP TABLE
 9           C009 CHAIN   EQU *          ** CHAIN TABLE IMAGE **
10 C009      10           FCB $10
11 C00A      10           FCB $10
12 C00B      10           FCB $10
13 C00C      10           FCB $10
14 C00D      10           FCB $10
15 C00E      10           FCB $10
16 C00F      10           FCB $10
17 C010      10           FCB $10
18 C011      10           FCB $10
19 C012      10           FCB $10
20 C013      10           FCB $10
21 C014      10           FCB $10
22 C015      10           FCB $10
23           C016 STEP1   EQU *          ---- MEMORY MAP REGIST ----
24 C016   30 8CEC         LEAX PARM,PCR  X:TOP ADDR. OF PARM. TABLE
25 C019   31 04           LEAY 4,X       Y:TOP ADDR. OF CHAIN TABLE IMAGE
26 C01B 10AF 84           STY  ,X
27 C01E   4F              CLRA
28 C01F   5F              CLRB
29 C020   1F 03           TFR  D,U       U:JUMP TABLE ENTRY COUNT - 1
30 C022   A6 8CDD         LDA  MAPNO,PCR A:REGIST. MAP NO
31 C025   C6 0F           LDB  #$0F      B:CURRENT MAP NO
32 C027 103F              SWI2           CALL "MMAMAP" ROUTINE
33 C029      40           FCB  $40
34 C02A      06           FCB  $06
35           C02B STEP2   EQU  *         --- MEMORY ASSIGN (n PAGE) 
36 C02B   A6 8CD4         LDA  MAPNO,PCR A:MEMORY MAP NO
37 C02E   5F              CLRB           B:CLEAR
38 C02F   E6 8CD1         LDB  PAGEP,PCR B:PAGE POSITION
39 C032   59              ROLB
40 C033   59              ROLB
41 C034   59              ROLB
42 C035   59              ROLB           B(b4-b7):PAGE POSITION
43 C036   EA 8CCB         ORB  PAGEC,PCR B(b0-b3):PAGE COUNT
44 C039 103F              SWI2           CALL "MMASGN" ROUTINE
45 C03B      40           FCB  $40       MAP NO=0 ROUTINE NO=1
46 C03C      01           FCB  $01
47 C03D   39              RTS
48                        END

実行結果

まずサンプル・プログラムを、メモリ空間$Fのアドレス$C000に格納します。
第8空間の8ページ・9ページは$BFとなっており、メモリが割り当てられていないことが分かります。
プログラムを実行した後に、モニタ・コマンドでメモリ空間の8ページ目と9ページ目に実メモリが割り当てられていることを確認します。
第8空間の8ページには$8E000、9ページには$8F000からの4Kバイトが割り当てられています。
Ready
EXEC &HC000

Ready
MON
*MAP
CURRENT MAP = 0F
              80
CURRENT MAP = 08
*X
0=BF 1=BF 2=BF 3=BF 4=BF 5=BF 6=BF 7=BF 8=88 9=89 A=BF B=BF C=BF D=85 E=84 F=EF 

コメントをかく


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

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

どなたでも編集できます