アナログレコードをハイレゾで楽む~導入編
2020.04.21
新型コロナで騒がしい中ですが、久々にオーディオのブログ投稿をしたいと思います。

これまで、時代の主流のCD、SACDをレトロな自作真空管アンプで楽しんできました。真空管アンプは、スピーカーとの組み合わせと、真空管や回路の種類・組み合わせにより、適度な歪と出力インピーダンスによって、微妙な臨場感・音色を醸し出しています。

一方、CD、SACDは、マスター音源をデジタル技術を通して、ミキシングエンジニアがこれが良いのではないかと考えた再生音源に再現性高く提供してくれます。この再生音源を真空管アンプとスピーカーによる色付けで楽しんできたことになります。CDの20KHz以上の欠落周波数帯の問題の回答として、SACDが発売され、周波数帯の欠落がない良い音ではありますが、再現性が高いが故にマスター音源の良し悪しを引きついで、ある意味面白みが少ない再生音源になっているように感じられてしかたがありません。そこで、音源として色付けの範囲が広いアナログレコードを試してみることにしました。

アナログレコードもオーディオの常でピンキリの世界です。最小限の原資と自己努力(自己満足)が活かせ、お手軽に楽しめる導入計画を練りました。

まず条件を考えてみました。
①アナログ技術が成熟していた往年の機器であること
②機械的な劣化が致命傷になりにくい技術であること
③レコードカートリッジの針が入手できること
④CDのように手軽な操作・メンテナンスができること
⑤デジタル技術で、基本性能の評価を行い、良い音にできること

以上より、ヤフオクなど調べると、ターンテーブルの成熟期に各社が発売したリニアトラッキング方式 レコードプレーヤーがお手軽であることがわかりました。特に、ジャケットサイズのTechnicsのSL-10は、成熟したDDドライブとカートリッジを採用し省スペースで魅力的でした。ところが問題は、MCカートリッジであるため、レコード針の交換ができません。そこで、レコード針の入手性が良いMMカートリッジを搭載したTechnicsのSL-7にターゲットを絞りました。リニアトラッキング方式の場合、T4P規格というメーカー間の互換性が高いカートリッジが使われていますので、この点も評価できます。(反面、高級なカートリッジではありませんが、お手軽さには合っています。)

このSL-7は、MMカートリッジ(EPC-P202C)を採用していますが、ボロンカンチレバーのEPS-202EDが入手できないので、周波数特性を考えると、MCカートリッジも非常に気になりました。各社のリニアトラッキング方式 レコードプレーヤーを調べていくと、MCカートリッジを採用したKenwoodの機種が見つかりました。針交換可能なMCカートリッジ(V-57、AT312EPのOEM)を採用したKP-727です。交換用の針は、eBayで入手可能でした。EVGのPM2323Dですが、中身はAudio Technicaのオリジナルのようです。

それぞれ、ヤフオクとメルカリから動作不良のジャンク品を中古カートリッジ価格相当で入手しました。以上で、①~④が実現できます。⑤については、Ortofonの「Test Record」を使い、パソコンのサウンドキャプチャ機能+「WaveSpectra」で解析することにしました。
TK-80サブボード基板の製作(モニターアップデート編)
2019.05.09
TK-80サブボード用モニターV0.90の不具合修正・新機能追加を行いましたので、改めてベータ2版V0.91(ZIPファイル)を公開します。

修正点:
①サブルーチンSRIOT(027CH)、SRIIN(02A0H)、INPUT(0223H)に問題がある。
②アセンブラがPOP, CPE、STAXを生成できない。
③アセンブラが正しいレジスタオペランドを生成できないケースがある。
④相対アドレス入力のための {READ INCR}key、{READ DECR}keyの設定が誤っていた。

新機能:
プログラムを簡易アセンブラで入力してみると、プログラムの移動ができないため、プログラム修正が結構大変でした。
①MOVEアセンブラコマンドの追加(現在のアドレスがdestination)
 MOVE{sp}{source address}{sp}{length}{sp}
②FILLアセンブラコマンドの追加(現在のアドレスがdestination)
 FILL{sp}{byte data}{sp}{length}{sp}
③オペランド入力状態がわかりにくいため、3桁目の少数点を点灯するようにした。

お試しください。
TK-80サブボード基板の製作(モニター公開編)
2019.05.03
少し手間取りましたが、TK-80サブボード用モニターの動作確認がとれましたので、公開します。
非商用の範囲で自己責任でご使用ください。なお、オリジナル・改訂版を含め、再配布される場合は、ソースコード・ライセンス条件を同梱していただけるようお願いします。

今回のモニターは、C言語(Small-C)で作成しましたので、サイズが約8KBとオリジナルに比べると大きくなりましたが、下記の特徴を備えています。

①SBC8080 2・3MHz、SBC8085 2・3・4・5MHzに対応(4・5MHz動作には高速メモリが必要)
②簡易アセンブラを搭載
③ブレーク時にレジスタ内容の参照・修正が簡単
④自動トレース機能(0.5秒/命令で自動実行)

①SBC8080 2・3MHz、SBC8085 2・3・4・5MHzに対応

電源立ち上げ時のLED表示
8080 2.0MHz 1-Wait "8080" "2.0-1" (TK-80オリジナル設定)
8080 2.0MHz 0-Wait "8080" "2.0-0" (SBC8080標準設定)
8080 3.0MHz "8085" "3.0 "
8085 2.0MHz "8085" "2.0 "
8085 3.0MHz "8085" "3.0 " (SBC8085標準設定)
8085 4.0MHz "8085" "4.0 "
8085 5.0MHz "8085" "5.0 "

CPUが変わってもモニター内のタイマーの待ち時間が変わらないように自動切り替えします。

②簡易アセンブラを搭載

下記のようにキーボードにアルファベット文字をオーバーレイさせることで、

C D E F {ADRS SET} --> V W X Y Z
8 9 A B {READ INCR} --> Q R S T U
4 5 6 7 {READ DECR} --> L M N O P
0 1 2 3 {WRITE INCR} --> G H I J K

{LOAD DATA} --> {sp}(区切り記号)

下記は、キーボードにオーバーレイシールを貼った例です。


8080/8085のプログラムをニーモニックで入力できるようになります。
下記が基本入力フォーマットです。
1) {opcode}{sp}
2) {opcode}{sp}{register operand}
3) {opcode}{sp}{data address perand}{sp}
ここで、オペランド部の区切り記号","は、入力不要です。

なお、オペランドの種類は、

{dd} 8 bit data
{rp}{dddd} regiter pair, 16 bit data
{d}{dd} distination register, 8 bit data
{dddd} 16 bit data
{aaaa} 16 bit address({READ INCR},{READ DECR}keyで相対指定)
{s} source register
{d} destination register
{d}{s} source, distination register
{rp} register pair
{rp} register pair for PUSH/POP
{rp} B or D register
{n} 0-7 number
none no operand

また、16ビットアドレスは、命令アドレスに近い範囲であれば、相対入力が可能にしています。誤った入力を検出するとLEDに「....」が表示されます。

③ブレーク時にレジスタ内容の参照・修正が簡単

TK-80は、ブレーク機能でデバックやプログラム動作を学習できる機能がありますが、命令実行前後のレジスタの設定・確認は、絶対メモリアドレスしか使えないので手間がかかり、使い勝手が良くありません。そこで、この領域は、アドレス表示ではなく16bitレジスタ名表示で、設定・確認ができるようにしました。併せてブレークアドレス・回数も簡単に設定できるようにしてみました。

具体的には、ブレーク停止直後に下記のように、{READ INCR}key,{READ DECR}keyで表示できます。さらに、{READ INCR}key,{READ DECR}keyで、アップ・ダウンできます。内容を変更する場合は、{WRITE INCR}keyで可能です。

Program Counter "PC"
Stack Pointer "SP"
HL register "HL" <-- {READ INCR} keyで表示
DE register "DE"
BC register "BC"
Processor Status word "PS"
Break Address "BA"
break Address Counter "AC" <-- {READ DECR} keyで表示

④自動トレース機能(0.5秒/命令で自動実行)

一旦、ステップ状態でブレークさせ、上記のbreak Address Counter=FFと設定後、{RET}keyで、0.5秒/命令で実行中のアドレスを表示しながら動作を確認できます。実行中に適当なキーを押し続けると、break Address Counter=0となり、再ブレークします。

現在、ベータ版として、V0.90(ZIPファイル)を公開します。
不具合があれば、随時修正していきたいと思います。

併せて、Twitter(jr2xzy)を始めましたので、必要な方は、フォローしていただけます。

- CafeNote -