PCのキーで音階を生成する
⏩
このサンプルプログラムは機械語で制作し、カセットテープに記録していたものを読み解いて、アセンブル言語に翻訳したものである⏪
(denonv1.asm, denonv1.LST, denonv1.S)
1. 制作当時の機種
*MEK6800 DII(MOTOROLA)
*ROM,RAM基板
*VRAM基板
*パラレルキーボード(YEC製、TOUCH KEYBOARD)
*静電プリンタ(関東電子機器、MODEL TSP-7706B)
|
1978年 |
2. SBC6800+IOとMEK6800 DIIのメモリ構成
図のSWTBUGにはDUMPコマンドなどを追加した当Blogの【MIXDBUG】を使用している。
3. 当Blog環境と条件
★PC:
win10に次のコマンドをインストール:
TeraTerm
dasmx
mbhconv
★SBCシリーズの製作:
SBC6800 (スイッチサイエンス) *32KBRAMの実装で試験
SBC6800 Adapter Rev.02 (ORANGE pico)
SBC-IO Rev.02 (ORANGE pico) *16KBRAM、MC68B21、MC68B50の実装
SBC-BUS Rev.02 (ORANGE pico)
★稼働時の消費電流:
4.83V 0.22A
参照記事:
「電脳伝説さん」の【ホームページ】
「レトロな雰囲気さん」の【SBC6800/SBC6809ルーズキットを動かす】
「kuni-netさん」の【CPUボード(SBC6800)で電大版TinyBASICを動かす】
当Blog の製作記事【SBC6800+SBC-IOで走るプログラム】
4. SBC6800への転送
- MEK6800 DIIのカセットインターフェースに使用しているACIA MC6850のTXD,GNDをSBC-IOのシリアル入力コネクタのRXD,GNDに接続。
|
SBC-IO Rev.2回路図の一部 |
- MIXEDBUGのカンサスシティスタンダードデータ入力サブルーチンで、MEK6800DIIのプログラムをSBC6800のメモリに取り込む。
- SBC6800のPコマンドで、PCにモトローラSフォーマットで送り込む。
- SフォーマットデータをCopy&Pasteでテキストファイルにする。-->denonv1.S
- Sフォーマットをバイナリ変換する。--> denonv1.bin
- Binaryファイルをディスアセンブルする。
- Binaryファイルをdasmxで逆アセンブル
- dasmx -a -o先頭番地 -c6800 denonv1bin
- dasmxはググってインストール
- -o先頭番地はプログラムの先頭アドレスで0x1234など
- denonv1.asmを出力
- アセンブル出力を読み解く。
5. 電子音楽サンプルプログラム
denonv1.zip(denonv1.asm, denonv1.LST, denonv1.S)
- プログラム開始番地 $0100
- プログラム領域 $0100-$02BE
- メロディ記録領域 $0400-$0800
- 音階データ領域 $025A- ソースリストの306行目以降
このデータを変更すればPITCHが変わる。
- PIA ポートB アドレス $8052.$8053 を使い、CB2をON/OFFしてAUDIO出力します。
- 同時にレジスタアドレス $8000 にPITCHデータが書き込まれ、4個のLEDが音階に合わせて点滅します、
- CB2(J3 pin 26) とGND(J3 pin 6) にアンプを接続すればメロディが出力されます。
★ 使用法
PCのキーで音階を生成する。
0-9 :音痴な音階
P :プレイモード
E :プレイ中のストップ
★ 電子音楽プログラム(denonv1.s)
S1130100CE0400DF08CE0800DF0CBD0248BD022883
S11301108D627F000396014C97019105273EBD0235
S11301203524EF861F9702BD01B99C0C2A2E8D64DD
S1130130BD023524DD80309702BD01DB9600D60474
S11301408D5C7C0001BD0235815027108030910206
S113015027EA8D659C0C2A048D3A20B686409704C4
S1130160CE8000BD0224BD01EF259F96044627ECF6
S1130170970420EC8650DE08A700089C0C26F94F53
S1130180CE8052A7014AA7008604A70086409704A0
S1130190DE08DF064F97009701970297033937C6A9
S11301A03EF78053165A26FDC636F78053165A2654
S11301B0FD335A2AE9B7800039DE0696028AC0A7C1
S11301C000089601A70008DF0639DE06A600843F72
S11301D0970208A600970108DF06399602CE025856
S11301E009088C027727034A2AF7A600970039DE0C
S11301F006DF0A8D9B8DD39C0A27198DDE96013666
S1130200D60496008D98324A26F5368D33814527DB
S11302100D3220E1368D2981452703320C39320D08
S113022039CE10000926FD39B680184724FAB68065
S113023019BDE1D139B6801847B68019BDE1D1396D
S1130240B6801847B6801939CE02782004BDE1D1B2
S113025008A600810426F63940AA96887C6C60586A
S11302605548403830282018FFF8F0E8E0D8D0C8C6
S1130270C0B8B0A8A09890010D0A20504C45415335
S113028045204B455920494E3F202020203A302D0F
S1130290390D0A205020202020202020203A504CC4
S11302A041590D0A204520202020202020203A53A7
S11002B0544F5020504C41590D0A2D3E046E
S9030000FC
以上