機械語配列の処理
MC-8の様なSequencerではループを使って
配列データを使い、また、Dataは、ここでは3Byteごと、note、Step-time、gate-timeと言う、3Byteごとに、それぞれの配列に読み込むための、基本となるProgramです
Z80については、インターネット上に資料が載せられていますので、参考にしながら、動作を追ってみてください。
機械語配列に書く
Aレジスタに書き込みデータ
Cレジスタに配列番号(0~0FFh)
HLに配列先頭アドレス
LD B,0
LD HL,0A000h(先頭アドレス[任意])
ADD HL,BC
LD A,(HL)
機械語配列から読み出す
AレジスタにDataが読み出される
Cレジスタに配列番号(0~0FFh)
HLに配列先頭アドレス(先頭アドレス[任意])
LD B,0
LD HL,0A000h(先頭アドレス[任意])
ADD HL,BC
LD (HL),A
複数のData読み出しの仕方
HLレジスタにData-Addressの入っている先頭アドレス
CレジスタにDataのナンバー(チャンネルなど)
0A000hが配列Dataの先頭アドレス1
0A100hが配列Dataの先頭アドレス2
0A200hが配列Dataの先頭アドレス3
LD B,0
LD HL,08000h Data-Addressの入っている先頭番地
ADD HL,BC Data-AddressをDEレジスタにSet
ADD HL,BC
PUSH HL
LD E,(HL)
INC HL
LD D,(HL)
LD A,(DE) DATAをAレジスタにSet
LD HL,0A000h はじめのDataを、1番目の配列へ
ADD HL,BC
LD (HL),A
INC DE
LD A,(DE)
LD (HL),A
LD HL,0A100h 次のDataを、2番目の配列へ
ADD HL,BC
LD (HL),A
INC DE
LD A,(DE)
LD (HL),A
LD HL,0A200h 次のDataを、3番目の配列へ
ADD HL,BC
LD A,(DE)
LD (HL),A
INC DE 次のデータ読み出しに備える
POP HL
LD (HL),E
INC HL
LD (HL),D
まず、上記のプログラムを追いかけて習得してください。