最終更新:ID:rE3FVXywHA 2014年12月24日(水) 15:17:07履歴
メモリ空間 | 0 |
---|---|
ルーチン番号 | 1 |
AccAに格納されているメモリ空間番号をAccBに格納されているページ位置から、ペース数分の実メモリを割り当てます。MMSTPGと異なり割り当てる実メモリはシステムが管理して自動的に割り当てます。
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バイトが割り当てられています。
第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
コメントをかく