Yamamoto's Laboratory
Lesson
   1.Numbers
   2.Memory
   3.RAM
   4.Ports
   5.Timer
   6.ROM
   7.8085A
   8.Instruction
   9.Monitor
Appendix
 1.List

Appendix 1Program ListingsMM-8000 のモニタープログラムリスト

Elenco Electronics社のコンピュータートレーニングボード MICRO-MASTER MM-8000 の Appendix 1 に関するメモです.ここでは,モニタープログラムのソースコード示します.(参照:MM-8000のマニュアルのAPPENDIX 1).

目次


PROGRAM 1

表1に示すプログラム 1 は,モニタープログラムの初期化のセクションです.LESSON 10 で学習する内容で,その図 1 にフローチャートが示されています.また,Appendix 2PROGRAM 1 に動作の詳細の説明があります.

プログラム 1
名前 ステップ アドレス(16進, 2進) ニーモニック コード(16進, 2進) コメント
START 10-1 0000 0000 0000 0000 0000 JMP C3 1100 0011 INITへジャンプ
0001 0000 0000 0000 0001 INIT 60 0110 0000
0002 0000 0000 0000 0010 00 0000 0000
アドレス0040-004Fのパターン表とアドレス0050-005Fのファンクション表について,Appendix 1の後半のページを参照ください.
INIT 10-2 0060 0000 0000 0110 0000 LXI DE 11 0001 0001 RAMにコピーするROMの最初のアドレスをD-Eレジスターにロードする.
0061 0000 0000 0110 0001 0A 0000 1010
0062 0000 0000 0110 0010 01 0000 0001
10-3 0063 0000 0000 0110 0011 LXI HL 21 0010 0001 RAMの最初のアドレスをH-Lにロード.
0064 0000 0000 0110 0100 DC 1101 1100
0065 0000 0000 0110 0101 80 1000 0000
COPY 10-4 0066 0000 0000 0110 0110 LDAX DE 1A 0001 1010 ROMから1バイトをAにコピー.
10-5 0067 0000 0000 0110 0111 MOV MA 77 0111 0111 RAMにストアー.
10-6 0068 0000 0000 0110 1000 INX HL 13 0001 0011 H-LとD-Eをひとつ増加.
0069 0000 0000 0110 1001 INX DE 23 0010 0011
10-7 006A 0000 0000 0110 1010 MOV AL 7D 0111 1101 RAMのアドレスがコピーされるアドレスを超えた場合,Zフラグをセット.
006B 0000 0000 0110 1011 CPI FE 1111 1110
006C 0000 0000 0110 1100 00 0000 0000
10-8 006D 0000 0000 0110 1101 JNZ C2 1100 0010 Zフラグをセットされていなければ,後ろに戻り次のバイトをコピー.
006E 0000 0000 0110 1110 COPY 66 0110 0110
006F 0000 0000 0110 1111 00 0000 0000
10-9 0070 0000 0000 0111 0000 MVI A 3E 0011 1110 セット:
ポートA:入力(キーボード)
ポートB:出力(ディスプレイ)
ポートC:出力(キーボード)
0071 0000 0000 0111 0001 0E 0000 1110
0072 0000 0000 0111 0010 OUT D3 1101 0011
0073 0000 0000 0111 0011 80 1000 0000
10-10* 0074 0000 0000 0111 0100 HLT 76 0111 0110 停止.

* この命令はプログラム1のみで使われる.プログラム2のアドレス0074によって,置き換えられる.

PROGRAM 2

以下プログラムは,Lesson 11の「遅延/ディスプレイルーチン」で学習する内容です.フォローチャートは,Lesson 11図3に示されています.

プログラム 2
名前 ステップ アドレス(16進, 2進) ニーモニック コード(16進, 2進) コメント
Link 0074 0000 0000 0111 0100 JMP C3 1100 0011 この命令はプログラム1と2をリンクする.プログラム1の 0074 HLT と置き換わる.
0075 0000 0000 0111 0101 Delay EC 1110 1100
0076 0000 0000 0111 0110 80 1000 0000
DISP 11B-1 0077 0000 0000 0111 0111 LHLD 2A 0010 1010 HL レジスターに MODE H と MODE L をロードする.
0078 0000 0000 0111 1000 FA 1111 1010
0079 0000 0000 0111 1001 80 1000 0000
007A 0000 0000 0111 1010 INP DB 1101 1011 ポート C から入力
007B 0000 0000 0111 1011 83 1000 0011
007C 0000 0000 0111 1100 XRI EE 1110 1110 ディスプレイを変えるためにビット0のみ反転
007D 0000 0000 0111 1101 01 0000 0001
007E 0000 0000 0111 1110 MOV BA 47 0100 0111 ポートCをレジスターBに
11B-2a 007F 0000 0000 0111 1111 XRA L AD 1010 1101 C0=1:[DA∧DISP1]∨ [AL∧DISP2]∨[AH∧DISP1]
0080 0000 0000 1000 0000 MOV CA 4F 0100 1111
11B-2b 0081 0000 0000 1000 0001 MOV AL 7D 0111 1101 A0=1:AL∨AH
0082 0000 0000 1000 0010 RRC 0F 0000 1111
0083 0000 0000 1000 0011 ADC H 8C 1000 1100
11B-2c 0084 0000 0000 1000 0100 ANA C A1 1010 0001 A0=1:[AL∧DISP2]∨[AH∧DISP1]
11B-2d 0085 0000 0000 1000 0101 CMA 2F 0010 1111 Aの補数
11B-2e 0086 0000 0000 1000 0110 ANI E6 1110 0110 A0を除いてマスク.A0=1:DA∨[AL∧DISP1]∨[AH∧DISP2]
0087 0000 0000 1000 0111 01 0000 0001
0088 0000 0000 1000 1000 NOP 00 0000 0000
0089 0000 0000 1000 1001 MOV CA 4F 0100 1111 レジスタGに小数点バイトを保管
11B-3 008A 0000 0000 1000 1010 MOV AB 78 0111 1000 出力する左側のデジットのフラグ
008B 0000 0000 1000 1011 RRC 0F 0000 1111
11B-4 008C 0000 0000 1000 1100 MOV AM 7E 0111 1110 ディスプレイバイトの取得
11B-5 008D 0000 0000 1000 1101 JNC D2 1101 0010 ディスプレイ2(右)のディジットが出力ならば RDIG に.ディジットの交換はしない.
008E 0000 0000 1000 1110 RDIG 94 1001 0100
008F 0000 0000 1000 1111 00 0000 0000
0090 0000 0000 1001 0000 RRC 0F 0000 1111 左右のディジットの交換
0091 0000 0000 1001 0001 RRC 0F 0000 1111
0092 0000 0000 1001 0010 RRC 0F 0000 1111
0093 0000 0000 1001 0011 RRC 0F 0000 1111
RDIG 11B-6 0094 0000 0000 1001 0100 ANI E6 1110 0110 ビットA4-A7をマスク
0095 0000 0000 1001 0101 0F 0000 1111
11B-7 0096 0000 0000 1001 0110 ORI F6 1111 0110 パターン表のベースアドレスのマージ
0097 0000 0000 1001 0111 40 0100 0000
0098 0000 0000 1001 1000 MOV LA 6F 0110 1111 パターン表アドレス(L)をLレジスターに
0099 0000 0000 1001 1001 MVI H 26 0010 0110 パターン表アドレス(H)をHレジスターに
009A 0000 0000 1001 1010 00 0000 0000
11B-8 009B 0000 0000 1001 1011 MOV AM 7E 0111 1110 パターンをAレジスターに取得
11B-9 009C 0000 0000 1001 1100 ORA C B1 1011 0001 小数点ポイントのマージ
11B-10 009D 0000 0000 1001 1101 OUT B D3 1101 0011 ポートBにパターンを出力
009E 0000 0000 1001 1110 82 1000 0010
11B-11 009F 0000 0000 1001 1111 MOV AB 78 0111 1000 新しいポートCをAに取得
00A0 0000 0000 1010 0000 OUT C D3 1101 0011 ポートCに出力
00A1 0000 0000 1010 0001 83 1000 0011
11B-12* 00A2 0000 0000 1010 0010 JMP C3 1100 0011 Delay にジャンプ
00A3 0000 0000 1010 0011 Delay EC 1110 1100
00A4 0000 0000 1010 0100 80 1000 0000

* この命令はプログラム 2 のみで使われる.プログラム 3 のアドレス 00A2 から 00A4 によって,置き換えられる.

PROGRAM 3

プログラム 3
名前 ステップ アドレス(16進, 2進) ニーモニック コード(16進, 2進) コメント
Scan 12A-1 00A2 0000 0000 1010 0010 MVI E 1E 0001 1110 Eレジスターに00を設定(D CNT)
00A3 0000 0000 1010 0011 00 0000 0000
00A4 0000 0000 1010 0100 MVI L 2E 0010 1110 Lレジスターに28を設定(F CNT)
00A5 0000 0000 1010 0101 28 0010 1000
00A6 0000 0000 1010 0110 MVI B 06 0000 0110 Bレジスターに02を設定(RDI=1)
00A7 0000 0000 1010 0111 02 0000 0010
New DRV 12A-2 00A8 0000 0000 1010 1000 MVI C 0E 0000 1110 設定:D/F CNT=2
00A9 0000 0000 1010 1001 02 0000 0010
00AA 0000 0000 1010 1010 MVI D 16 0001 0110 設定:D COL CNT=4(Dレジスター)
00AB 0000 0000 1010 1011 04 0000 0100
00AC 0000 0000 1010 1100 MVI H 26 0010 0110 設定:F COL CNT=2(Hレジスター)
00AD 0000 0000 1010 1101 02 0000 0010
12A-3 00AE 0000 0000 1010 1110 INP C DB 1101 1011 入力ポートC
00AF 0000 0000 1010 1111 83 1000 0011
00B0 0000 0000 1011 0000 ANI E6 1110 0110 1-4のビットをマスク
00B1 0000 0000 1011 0001 E1 1110 0001
00B2 0000 0000 1011 0010 ORA B B0 1011 0000 新規列ドライブビットをマージ(?)
00B3 0000 0000 1011 0011 OUT C D3 1101 0011 ポートCに新ドライブビット出力
00B4 0000 0000 1011 0100 83 1000 0011
12A-4 00B5 0000 0000 1011 0101 INP A DB 1101 1011 ポートAから列の入力
00B6 0000 0000 1011 0110 81 1000 0001
TST Key 12A-5a 00B7 0000 0000 1011 0111 RLC 07 0000 0111 キーが押されたらCYフラグをセット
12A-5b 00B8 0000 0000 1011 1000 JC DA 1101 1010 キーが押されたら(CYフラグセット) K FNDへ
00B9 0000 0000 1011 1001 K FND D4 1101 0100
00BA 0000 0000 1011 1010 00 0000 0000
12A-5c 00BB 0000 0000 1011 1011 INR E 1C 0001 1100 キーが見つからない.増加(+1):D CNT (F CNT) 減少(-1):D COL CNT (F COL CNT)
00BC 0000 0000 1011 1100 DCR D 15 0001 0101
12A-5d 00BD 0000 0000 1011 1101 JNZ C2 1100 0010 D COL CNT (F COL CNT) がゼロでない場合,元に戻り次の列
00BE 0000 0000 1011 1110 TST key B7 1011 0111
00BF 0000 0000 1011 1111 00 0000 0000
12A-6 00C0 0000 0000 1100 0000 XCHG EB 1110 1011 DEとHLレジスターのデータの交換
00C1 0000 0000 1100 0001 DCR C 0D 0000 1101 減少(-1) D/F CNTR
00C2 0000 0000 1100 0010 JNZ C2 1100 0010 D/F CNTRがゼロでない場合,元に戻り,FCOL0とFCOL1をテスト
00C3 0000 0000 1100 0011 TST key B7 1011 0111
00C4 0000 0000 1100 0100 00 0000 0000
12A-7 00C5 0000 0000 1100 0101 MOV AB 78 0111 1000 列スキャン完了.次の行ドライブビット(Bレジスター)にセット
00C6 0000 0000 1100 0110 RLC 07 0000 0111
00C7 0000 0000 1100 0111 MOV BA 47 0100 0111
12A-8 00C8 0000 0000 1100 1000 SUI D6 1101 0110 行ドライブビット(Aレジスターのビット5)がゼロならば,スキャン完了
00C9 0000 0000 1100 1001 20 0010 0000
00CA 0000 0000 1100 1010 JNZ C2 1100 0010 スキャンが未完ならば,元に戻り,新規行ドライブビット出力
00CB 0000 0000 1100 1011 New DRV A8 1010 1000
00CC 0000 0000 1100 1100 00 0000 0000
12A-9 00CD 0000 0000 1100 1101 CMA 2F 0010 1111 キーが見つからないで,スキャン完了.ENKPにFFをセット.
00CE 0000 0000 1100 1110 STA 32 0011 0010
00CF 0000 0000 1100 1111 FF 1111 1111
00D0 0000 0000 1101 0000 80 1000 0000
12A-10 00D1 0000 0000 1101 0001 JMP C3 1100 0011 ディレイへジャンプ.新しいプログラムサイクルで開始.
00D2 0000 0000 1101 0010 Delay EC 1110 1100
00D3 0000 0000 1101 0011 80 1000 0000
K FND 12B-1 00D4 0000 0000 1101 0100 LXI HL 21 0010 0001 ENKPのアドレスをHLレジスターにロード
00D5 0000 0000 1101 0101 FF 1111 1111
00D6 0000 0000 1101 0110 80 1000 0000
00D7 0000 0000 1101 0111 MOV AM 7E 0111 1110 ENKPの値をAレジスターに
12B-2 00D8 0000 0000 1101 1000 RRC 0F 0000 1111 ENKPがセットの場合,C8フラグをセット
00D9 0000 0000 1101 1001 JNC D2 1101 0010 ENKPがセットされていなければ,Delayへ
00DA 0000 0000 1101 1010 Delay EC 1110 1100
00DB 0000 0000 1101 1011 80 1000 0000
12B-3 00DC 0000 0000 1101 1100 MVI M 36 0011 0110 ENKPをゼロクリアー
00DD 0000 0000 1101 1101 00 0000 0000
12B-4 00DE 0000 0000 1101 1110 DCR C 0D 0000 1101 減少(-1) D/F CNT
00DF 0000 0000 1101 1111 JZ CA 1100 1010 ファンクションキーの場合,F FNDへジャンプ.(D/F CNT went to 00)??
00E0 0000 0000 1110 0000 F FND F1 1111 0001
00E1 0000 0000 1110 0001 00 0000 0000
D FND 12C-1 00E2 0000 0000 1110 0010 LHLD 2A 0010 1010 MODE HとMODE LをHLレジスターにロード
00E3 0000 0000 1110 0011 FA 1111 1010
00E4 0000 0000 1110 0100 80 1000 0000
00E5 0000 0000 1110 0101 MOV AM 7E 0111 1110 DDA/DAL/DAHをレジスターに
12C-2 00E6 0000 0000 1110 0110 RLC 07 0000 0111 左にローテート
00E7 0000 0000 1110 0111 RLC 07 0000 0111
00E8 0000 0000 1110 1000 RLC 07 0000 0111
00E9 0000 0000 1110 1001 RLC 07 0000 0111
12C-3 00EA 0000 0000 1110 1010 ANI E6 1110 0110 右のデジットをクリアー
00EB 0000 0000 1110 1011 F0 1111 0000
00EC 0000 0000 1110 1100 ORA C B3 1011 0011 右側のデジット位置に新デジットを挿入
12C-4 00ED 0000 0000 1110 1101 MOV MA 77 0111 0111 DDA/DAL/DALに新バイトを挿入
12C-5 00EE 0000 0000 1110 1110 JMP C3 1100 0011 Delayへジャンプ
00EF 0000 0000 1110 1111 Delay EC 1110 1100
00F0 0000 0000 1111 0000 80 1000 0000

PROGRAM 4

プログラム 4
名前 ステップ アドレス(16進, 2進) ニーモニック コード(16進, 2進) コメント
F FND 13A-1 00F1 0000 0000 1111 0001 MOV AE 7B 0111 1011 F CNTをAに.機能表アドレスの低オーダーバイトを得るために2倍し,Lにストア
00F2 0000 0000 1111 0010 RLC 07 0000 0111
00F3 0000 0000 1111 0011 MOV LA 6F 0110 1111
00F4 0000 0000 1111 0100 MVI H 26 0010 0110 機能表アドレスの高オーダーバイト(00)をHに
00F5 0000 0000 1111 0101 00 0000 0000
13A-2 00F6 0000 0000 1111 0110 MOV EM 5E 0101 1110 機能表のファンクションルーチンの開始アドレスをDEレジスターにコピー
00F7 0000 0000 1111 0111 INX HL 23 0010 0011
00F8 0000 0000 1111 1000 MOV DM 56 0101 0110
13A-3 00F9 0000 0000 1111 1001 LHLD 2A 0010 1010 DAHとDALをHLレジスターに
00FA 0000 0000 1111 1010 FD 1111 1101
00FB 0000 0000 1111 1011 80 1000 0000
13A-4 00FC 0000 0000 1111 1100 MVI A 3E 0011 1110 DAH(FE)のアドレスをAレジスターに
00FD 0000 0000 1111 1101 FE 1111 1110
13A-5 00FE 0000 0000 1111 1110 XCHG EB 1110 1011 ファンクションアドレスをHAレジスターに
13A-6 00FF 0000 0000 1111 1111 PCHL E9 1110 1001 HLをPCに;ファンクションルーチンへ
FGO 13B-1 0100 0000 0001 0000 0000 XCHG EB 1110 1011 DAHとDALをHLに
13B-2 0101 0000 0001 0000 0001 PCHL E9 1110 1001 DAHとDALのアドレスにジャンプ
FR 13C-1 0102 0000 0001 0000 0010 XCHG EB 1110 1011 DAHとDALをDEからHLにもどす
0103 0000 0001 0000 0011 MOV AM 7E 0111 1110 HLが示すアドレスのデータをAに
0104 0000 0001 0000 0100 STA 32 0011 0010 ディスプレイに表示されるDDAで読まれるバイトをストアー
0105 0000 0001 0000 0101 FC 1111 1100
0106 0000 0001 0000 0110 80 1000 0000
13C-2 0107 0000 0001 0000 0111 JMP C3 1100 0011 読み込みファンクションを完了させるためにFRAへジャンプ
0108 0000 0001 0000 1000 FRA E1 1110 0001
0109 0000 0001 0000 1001 80 1000 0000

PROGRAM SEGMENT COPIED ROM TO RAM

Program segment.初期化のルーチンでROMのデータがRAMにコピーされる.
ROMアドレス(16進, 2進) コード(16進, 2進) RAMアドレス(16進, 2進)
010A 0000 0001 0000 1010 EB 1110 1011 80DC 1000 0000 1101 1100
010B 0000 0001 0000 1011 3A 0011 1010 80DD 1000 0000 1101 1101
010C 0000 0001 0000 1100 FC 1111 1100 80DE 1000 0000 1101 1110
010D 0000 0001 0000 1101 80 1000 0000 80DF 1000 0000 1101 1111
010E 0000 0001 0000 1110 77 0111 0111 80E0 1000 0000 1110 0000
010F 0000 0001 0000 1111 23 0010 0011 80E1 1000 0000 1110 0001
0110 0000 0001 0001 0000 22 0010 0010 80E2 1000 0000 1110 0010
0111 0000 0001 0001 0001 FD 1111 1101 80E3 1000 0000 1110 0011
0112 0000 0001 0001 0010 80 1000 0000 80E4 1000 0000 1110 0100
0113 0000 0001 0001 0011 3E 0011 1110 80E5 1000 0000 1110 0101
0114 0000 0001 0001 0100 FE 1111 1110 80E6 1000 0000 1110 0110
0115 0000 0001 0001 0101 3D 0011 1101 80E7 1000 0000 1110 0111
0116 0000 0001 0001 0110 3D 0011 1101 80E8 1000 0000 1110 1000
0117 0000 0001 0001 0111 32 0011 0010 80E9 1000 0000 1110 1001
0118 0000 0001 0001 1000 FA 1111 1010 80EA 1000 0000 1110 1010
0119 0000 0001 0001 1001 80 1000 0000 80EB 1000 0000 1110 1011
011A 0000 0001 0001 1010 21 0010 0001 80EC 1000 0000 1110 1100
011B 0000 0001 0001 1011 00 0000 0000 80ED 1000 0000 1110 1101
011C 0000 0001 0001 1100 05 0000 0101 80EE 1000 0000 1110 1110
011D 0000 0001 0001 1101 2D 0010 1101 80EF 1000 0000 1110 1111
011E 0000 0001 0001 1110 C2 1100 0010 80F0 1000 0000 1111 0000
011F 0000 0001 0001 1111 EF 1110 1111 80F1 1000 0000 1111 0001
0120 0000 0001 0010 0000 80 1000 0000 80F2 1000 0000 1111 0010
0121 0000 0001 0010 0001 25 0010 0101 80F3 1000 0000 1111 0011
0122 0000 0001 0010 0010 C2 1100 0010 80F4 1000 0000 1111 0100
0123 0000 0001 0010 0011 EF 1110 1111 80F5 1000 0000 1111 0101
0124 0000 0001 0010 0100 80 1000 0000 80F6 1000 0000 1111 0110
0125 0000 0001 0010 0101 C3 1100 0011 80F7 1000 0000 1111 0111
0126 0000 0001 0010 0110 77 0111 0111 80F8 1000 0000 1111 1000
0127 0000 0001 0010 0111 00 0000 0000 80F9 1000 0000 1111 1001
0128 0000 0001 0010 1000 FC 1111 1100 80FA 1000 0000 1111 1010
0129 0000 0001 0010 1001 80 1000 0000 80FB 1000 0000 1111 1011
012A 0000 0001 0010 1010 00 0000 0000 80FC 1000 0000 1111 1100
012B 0000 0001 0010 1011 00 0000 0000 80FD 1000 0000 1111 1101
012C 0000 0001 0010 1100 00 0000 0000 80FE 1000 0000 1111 1110
012D 0000 0001 0010 1101 FF 1111 1111 80FF 1000 0000 1111 1111

PROGRAM 4 COPIED FROM ROM

前節「PROGRAM SEGMENT COPIED ROM TO RAM」で示したアドレス 010A — 012D のデータは ROM に入れられる.それは,初期化ルーチン「PROGRAM 1」で RAM にコピーされる.そのコピーされた内容のうち PROGRAM 4 に関係するものを以下に示す.

ROMからコピーされるプログラム 4
名前 ステップ アドレス(16進, 2進) ニーモニック コード(16進, 2進) コメント
FST 13B-1 80DC 1000 0000 1101 1100 XCHG EB 1110 1011 DAHとDALをDEからHLにもどす
80DD 1000 0000 1101 1101 LDA 3A 0011 1010 DDAからストアーされるバイトをAレジスターに
80DE 1000 0000 1101 1110 FC 1111 1100
80DF 1000 0000 1101 1111 80 1000 0000
80E0 1000 0000 1110 0000 MOV MA 77 0111 0111 HLが示すアドレスのデータAに
FRA 13B-2 80E1 1000 0000 1110 0001 INX HL 23 0010 0011 HL中のDAHとDALを増加(+1)
13B-3 80E2 1000 0000 1110 0010 SHLD 22 0010 0010 新しいDAHとDALをストアー
80E3 1000 0000 1110 0011 FD 1111 1101
80E4 1000 0000 1110 0100 80 1000 0000
SET DA 13B-4a 80E5 1000 0000 1110 0101 MVI A 3E 0011 1110 AHモードのMODE Lコード(FE)をAレジスターに
80E6 1000 0000 1110 0110 FE 1111 1110
FDA 13B-4b 80E7 1000 0000 1110 0111 DCR A 3D 0011 1101 モードLコードを減少(-1)
FAL 13B-4c 80E8 1000 0000 1110 1000 DCR A 3D 0011 1101 モードLコードを減少(-1)
FAH 13B-4d 80E9 1000 0000 1110 1001 STA 32 0011 0010 新しいMODE LをMODE Lにストアー
80EA 1000 0000 1110 1010 FA 1111 1010
80EB 1000 0000 1110 1011 80 1000 0000

PROGRAM 2 COPIED FROM ROM

前節「PROGRAM SEGMENT COPIED ROM TO RAM」で示したアドレス 010A — 012D のデータは ROM に入れられる.それは,初期化ルーチン「PROGRAM 1」で RAM にコピーされる.そのコピーされた内容のうち PROGRAM 2 に関係するものを以下に示す.

ROMからコピーされるプログラム 2
名前 ステップ アドレス(16進, 2進) ニーモニック コード(16進, 2進) コメント
Delay 11A-1 80EC 1000 0000 1110 1100 LXI HL 21 0010 0001 ディレイ定数をHLレジスターにロード
80ED 1000 0000 1110 1101 00 0000 0000
80EE 1000 0000 1110 1110 C5 1100 0101
D Loop 11A-2 80EF 1000 0000 1110 1111 DCR L 2D 0010 1101 Lを減少(-1)
11A-3 80F0 1000 0000 1111 0000 JNZ C2 1100 0010 Lがゼロでないならば,元に戻り,再び減少(-1)
80F1 1000 0000 1111 0001 D Loop EF 1110 1111
80F2 1000 0000 1111 0010 80 1000 0000
11A-4 80F3 1000 0000 1111 0011 DCR H 25 0010 0101 Hを減少(-1)
11A-5 80F4 1000 0000 1111 0100 JNZ C2 1100 0010 Hがゼロでないならば,元に戻り,再び減少(-1)
80F5 1000 0000 1111 0101 D Loop EF 1110 1111
80F6 1000 0000 1111 0110 80 1000 0000
11A-6 80F7 1000 0000 1111 0111 JMP C3 1100 0011 ディレイ完了.ディスプレイに戻る.
80F8 1000 0000 1111 1000 DISP 77 0111 0111
80F9 1000 0000 1111 1001 00 0000 0000

PARAMETERS COPIED FROM ROM

前節「PROGRAM SEGMENT COPIED ROM TO RAM」で示したアドレス 010A — 012D のデータは ROM に入れられる.それは,初期化ルーチン「PROGRAM 1」で RAM にコピーされる.そのコピーされた内容のうち,変数に関係するものを以下に示す.

ROMからコピーされるパラメーター
名前 ステップ アドレス(16進, 2進) ニーモニック コード(16進, 2進) コメント
MODE L 80FA 1000 0000 1111 1010 FC 1111 1100 ROMからコピーされる初期値
MODE H 80FB 1000 0000 1111 1011 80 1000 0000
DDA 80FC 1000 0000 1111 1100 00 0000 0000
DAL 80FD 1000 0000 1111 1101 00 0000 0000
DAH 80FE 1000 0000 1111 1110 00 0000 0000
ENKP 80FF 1000 0000 1111 1111 FF 1111 1111

PATTERN TABLE

パターン表
アドレス(16進, 2進) ディスプレイ コード(16進, 2進)
0040 0000 0000 0100 0000 0 80 1000 0000
0041 0000 0000 0100 0001 1 F2 1111 0010
0042 0000 0000 0100 0010 2 48 0100 1000
0043 0000 0000 0100 0011 3 60 0110 0000
0044 0000 0000 0100 0100 4 32 0011 0010
0045 0000 0000 0100 0101 5 24 0010 0100
0046 0000 0000 0100 0110 6 04 0000 0100
0047 0000 0000 0100 0111 7 F0 1111 0000
0048 0000 0000 0100 1000 8 00 0000 0000
0049 0000 0000 0100 1001 9 30 0011 0000
004A 0000 0000 0100 1010 A 10 0001 0000
004B 0000 0000 0100 1011 B 06 0000 0110
004C 0000 0000 0100 1100 C 8C 1000 1100
004D 0000 0000 0100 1101 D 42 0100 0010
004E 0000 0000 0100 1110 E 0C 0000 1100
004F 0000 0000 0100 1111 F 1C 0001 1100

FUNCTION TABLE

ファンクションテーブル(機能表)
アドレス(16進, 2進) ファンクション コード開始アドレス
(16進, 2進)
0050 0000 0000 0101 0000 FX2 00 0000 0000
0051 0000 0000 0101 0001 00 0000 0000
0052 0000 0000 0101 0010 FR 02 0000 0010
0053 0000 0000 0101 0011 01 0000 0001
0054 0000 0000 0101 0100 FX1 00 0000 0000
0055 0000 0000 0101 0101 00 0000 0000
0056 0000 0000 0101 0110 FDA E7 1110 0111
0057 0000 0000 0101 0111 80 1000 0000
0058 0000 0000 0101 1000 FGO 00 0000 0000
0059 0000 0000 0101 1001 01 0000 0001
005A 0000 0000 0101 1010 FAL E8 1110 1000
005B 0000 0000 0101 1011 80 1000 0000
005C 0000 0000 0101 1100 FST DC 1101 1100
005D 0000 0000 0101 1101 80 1000 0000
005E 0000 0000 0101 1110 FAH E9 1110 1001
005F 0000 0000 0101 1111 80 1000 0000

ページ作成情報

参考資料

  1. MM-8000のマニュアルのAPPENDIX 1

更新履歴

2014年01月01日 ページの新規作成


no counter