;------------------------------------------------------------------------------
; リアルタイム MIDI コントローラ MC-8
;------------------------------------------------------------------------------
; バージョン履歴
;
; Ver.3.31 2007/10/6 メジャーバージョン Ver.2.41
; テンキーの位置にあわせてボリュームの位置とLCD表示位置を変更(左下を0)
;
; Ver.3.30 2005/12/22 メジャーバージョン Ver.2.40
; 長年待ち望んでいたトラフィックメータを内蔵
;
; Ver.3.29 2005/12/18 メジャーバージョン Ver.2.32
; なんと、Ver.3.20で作成したルーチンにプログラムが停止するバグが発生したため、このコードを除去。
; マニュアルには書いていなかったため、機能は削除する。
;
; Ver.3.28 2005/11/5 メジャーバージョン Ver.2.31
; プログラムレベルでの空きピン処理(RA4)が間違っていたので修正
;
; Ver.3.27 2005/10/18 メジャーバージョン Ver.2.30
; ボリュームコントロールチェンジなどでクロスフェードが出来るように、逆カーブのFFコードを定義した
; FFコード新設のため、10~27にあったニブルデータ用のFFコードを20~37に移動した。
;
; Ver.3.26 2005/9/22
; PIR1-RCIFをクリアしている所が2ヶ所あったが、RCIF自体は読み出し専用のため、コードを削除した
;
; Ver.3.25 2005/5/30 メジャーバージョン Ver.2.22
; FFコードの0x40、0x41が覚えにくい(クリアは必ず先に来るのに何故後の0x41が使われているのか)を変更
; EEPROMメニューの表示文字を若干変更
;
; Ver.3.24 2005/2/18 メジャーバージョン Ver.2.21
; フリーランとバンクチェンジ送信の表示がわかりにくいので変更
; EEPROMメニューの見出しを若干変更
; 10進数表示でVRセーブをかけた時の表示方法を変更した
;
; Ver.3.23 2004/12/12 メジャーバージョン Ver.2.20
; 冗長コードの見直し
; カスタムフォントを登録できるようにした
; ボリュームレンジの設定範囲を拡大した
; キー入力ルーチンをページ1に移したため、全体的に修正
; 負の値が指定できるレンジのため、10進数にマイナスが出るようにした
;
; Ver.3.22 2004/9/25 メジャーバージョン Ver.2.10
; メモリダンプにメーカーIDと機種IDを付けるようにした
; MIDI to EEPROM時にアクティブセンシングのみの除去をリアルタイムメッセージ全体に拡張した
; チェックサムは処理が追いつかないため、今後実装する予定は無い
;
; Ver.3.21 2002/05/25 メジャーバージョン Ver.2.01
; データコピー等のエリア選択でSrc= Dst=表示からFrom= To=表示に変えた
;
; Ver.3.20 2002/04/06 メジャーバージョン Ver.2.00
; 通常動作時にMIDI IN端子からのバンクセレクトMSB信号で内部のバンクを切り替えられるようにした
;
; Ver 3.11 2002/03/26 メジャーバージョン Ver.1.00
; 無駄なプログラムバンク切り替えを取り除き、バンク切り替え時はLCALLマクロを使うようにした
;
; Ver 3.10 2002/03/25 メジャーバージョン Ver.1.00
; バンクコピー等の出力先を現在のバンクに指定すると、メイン画面に戻っても反映されないのを修正
; MIDIテストモードは名前がダサいのでMIDIデータマニュアル送信と呼ぶことにする
;
; Ver 3.9 2002/03/19 メジャーバージョン Ver.1.00β
; BANKDELETEルーチンを呼び出したときにTMP11のアドレスで消去をかけていたところを修正
; VRアサインエディットでオペレータ7が選択できなかった部分を修正
; VRレンジエディットでBキーが選択できなかった部分を修正
; dataareaselectで入力中にカーソルを表示するようにした
; MIDIテストモード終了時にパラメータ編集メニューに戻るようにした
; フリーランとバンク切り替え送信のメニューの表示形式を変更
; VRアサインエディットで割り当ての表示を2進数から点/ブロック表示に変更
;
; Ver.3.8 2002/03/18 メジャーバージョン Ver.1.00α
; COPY、MOVE、EXCHANGE、DELETEメニューが完成
; テスト版最終リリースのため、今後は最適化シフトに移る
; 基板の電源系統にレギュレータをバイパスして直接5[V]が入力できるようにした。
;
; Ver.3.7 2002/03/15 メジャーバージョン Ver.0.54
; FFコードに新しい値を定義、既存コードの変更
;
; Ver.3.6 2002/03/10 メジャーバージョン Ver.0.53
; 表示RADIX、フリーラン、バンク切り替え自動送信をバンクごとにセーブせずにシステムデータとした
;
; Ver.3.5 2001/10/06 メジャーバージョン Ver.0.52
; MIDI信号の受信時にもLEDが光るようにした
; バイナリエディタ、VRセーブ/ロードルーチンのバグFIX
; VRロード後すぐアナログデータが更新されないようロック機構をつけた
; RADIX変更をメニューの中から、メイン画面BACKキーに割り当て変更
;
; Ver.3.4 2001/09/21 メジャーバージョン Ver.0.50
; データコピー、移動、交換、クリア以外のメニューが完成し実用範囲になった
; EEPROMメニューにMIDI送信、受信、イニシャライズ、EEPROMテストを実装
;
; Ver.3.3
; キーパッドモードをMIDIテスターと改称しデータ編集メニューの一部にした
; EEPROMマップの若干の変更
; 現時点でアナログ入力を10進または16進で表示できるまでにこぎつけた
;
; Ver.3.2
; バンク間データ移動、コピー、入れ替え、消去コマンド定義
; メインスイッチON時のコンデンサチャージ時間が長く起動が不安定だったため、電源周りの回路を変更
; EEPROMメニュー考案
;
; Ver.3.1 MC-8(Programmable MIDI Controller)
; EEPROM保存マップ変更
; VR用データ64Bytes*8
; キー用データ64Bytes*16
; 各データを16バンク登録可能
; FFコード、VR読みこみ範囲フラグ考案
;
; Ver.3.0
; PIC16F877を使用
; EEPROM保存マップ完成
; VR用データ256Bytes*8
; キー用データ256Bytes*16
;
; Ver.2.1
; データ保存用に256Kbit EEPROM 24LC256を使用
; PIC16C74BがI2C通信のマスター機能を持っていないためボツ
; PIC16F877を見つけたのでVer.2系は終了
;
; Ver.2.0 MK-8(MIDI Knob Controller)
; PIC16C74Bを使用
; キーボード部回路完成
; 仕様
; アナログ8系統
; VRの変化で送信するリアルタイムモード
; キーの入力で送信するキーパッドモード
; EEPROMが内蔵されていないため電源を切る毎にデータ編集しなければいけない
; VR用データはPIC内RAMに保存(20Bytes*8)
; キー用データはLCD内DDRAMに保存(14Bytes*8)
; 複数のオペレータを持ちVR一つに複数の機能が割り当てられる
;
; Ver.1.0
; PIC16F84AとPIC16F711を使用したPIC版プロトタイプ考案
; 2個のPICを同期させるやり方がわからなかったためボツ
; 仕様
; アナログ入力4系統
; PIC16C711からLCD表示、アナログ入力
; PIC16F84Aからキー入力、MIDI出力
;
; Ver.0.1
; 3つのA/Dコンバータを8255で振り分け入力する。
; メインプログラムはマシン語、編集画面はBASICで記述する。
; A/DコンバータICが高価だったため計画倒れ。
; ポケコンのI/Oリソースが貧弱なためポケコン版終了。
; 仕様
; 変化のステップが設定できる
; VRの最大値、最小値、中央値が設定できる
; 連続、ワンショット転送モードが選択できる
;
; Ver.0.0
; コントローラにポケコンSHARP PC-G850を起用したもの。
; ロータリーエンコーダを3個使用する。
; ロータリーエンコーダの寿命が短い上に高価だったため計画倒れ。
; 仕様
; ロータリーエンコーダの値範囲は0-127
; 各ロータリーエンコーダにMIDIイベントが割り当てられる
; ニブルデータは非対応