TK80/BSの
シンセシステムを復活/拡張したい〜
その44
SBC8080ボードを使った
TK80BS互換機の作製
本家のメモリエラー修理
2019年
11月2日
この週末は強制有給で4連休になりました。先週の続きです。TK80BS互換機のアドレスリマップ機能を確認します。リマップ無しのL−2のBASIC選択時はアドレスの変換は行ないません。

続いて、L−1のBASIC選択時です。Exxxをアクセスすると緑枠のように6xxxに変換します。良いようです。

BSのビデオを実装します。14.32MHz(NTSCサブキャリアの4倍)のクロックを生成します。IPカタログのFPGA機能からクロッキング・ウイザードを選びます。

出力を14.32MHzに設定してIPを生成し、IPのソースディレクトリのveoファイルから信号線リストをコピーします。


トップモジュールに上記の信号線リストをペーストしてモジュール呼び出し形式に修正します。

11月3日
ここの次ページにあるNTSCの同期信号生成ロジックのverilogソースを参考に、飛び越し走査無しのロジックに変更して組み込みます。

上記の同期信号発生ロジックをトップモジュールに追加します。

11月4日
まだ、VRAMの読み出し側が無いので、ロジックで正方形を画面左上に出力する、ダミーを追加します。

コ
ンポジット信号は輝度信号と同期信号をミックスする必要があります。ここにある”Programming 16-bit Microcontroller in
C”というPICのドキュメントにミックスする方法が載っています。輝度と同期の2つの信号はHCT32でバッファして、120オームの抵抗2個と680オームの抵抗を使って同期信号が下側になるようにミックスします。下の波形は画面左上に正方形を出力している信号です。
前側に垂直同期があり、後ろの8本の縦線が正方形の部分です。

垂直同期の部分を拡大します。元は飛び越し走査の同期信号なので0.5Hで構成されます。前から等価パルスが3H分、切り込みパルス(垂直同期)が3H分、再度、等価パルスが3H分です。

上記の信号をLCDモニタに接続して表示の確認しました。出力マークが正方形でないのはロジックが間違えているからです。クロックが倍速なので、8ビット分の正方形を表示させるには8クロックではなく16クロックが必要でした。

本家のTK80BSのメモリエラーの修理です。エラーのエリアは9400〜97FFとAC00〜AFFFの2つのエリアです。

はじめにAC00〜AFFFです。このエリアは自作の12Kメモリボード上にあり、アドレスからデバイスに位置が特定できます。2114メモリを交換しました。


交換後、メモリボードを本体に戻して、簡易ICEでメモリテストを行います。このエリアのエラーは無くなりました。9400〜97FFのエリアは上位の4ビット側だけがエラーになっていることが分かります。

9400〜97FFエリアはBSボード上のメモリですが、ボードを筐体から外して分解しなくても、フロントパネル側から交換できる位置にありました。

下の赤枠が9400〜97FFの上位側の2114メモリです。細いマイナスドライバで外して交換しました。

交換後、上位RAMの全面でエラーは無くなりました。下位側のメモリもテストを行うと、5800〜5FFFにエラーが見つかりました。このエリアは筐体の外にあるメモリボードなので、直ぐに直せると思います。

手持ちの富士通製2114メモリの互換品です。残りが4個になりました。ただ、取り外したデバイスもソケットの接触不良の場合もあり、壊れていない可能性もあります。

簡易8チャンネルミキサの電源をFPGAシンセから取り出します。±5V電源を引き出してミキサに接続し、動作確認を行いました。良好です。


11月5日
BS互換のビデオの続きです。LCDモニタでは問題なかったビデオ出力ですが、グリーンCRTモニタに接続すると、画面が歪んで表示されます。

原因を調べるために、Vivadoのシミュレーションを行いました。最後の水平同期の間が0.5Hになっていました。クロックが倍速になっているので、ロジックを間違えていました。

ロジックを修正し、再度シミュレーションを行います。正しく、1Hになっていることを確認します。

グリーンCRTモニタに接続して再確認します。今度は正しく表示されました。ダミーの正方形の幅も16クロックに修正したので、正しく正方形になっています。

念のため、LCDモニタでも確認します。問題ありません。

ROMライターで読み込んだBSのキャラクタジェネレータのデータをcoeファイル(Vivadoのメモリ初期化ファイル)に変換するプログラムを作成しました。BSのキャラクタジェネレータは4Kバイトで、JISモードとASCIIモードの2セット(合計512文字)が入っています。左が生成したcoeファイルです。右はフォントパターンの確認のためにOとスペースで作成したファイルです。キャラクタジェネレータROMを2732に変換するアダプタが怪しいので、このファイルでフォントパターンが正しいことを確認しました。


11月10日
今週末の土曜は午前中に1198SPの整備の後、午後からガレージに来ました。TK80BS互換機のVRAMの続きです。読み出し側のビデオ出力の作成と調整を行いました。

VRAMの初期化ファイルの先頭の00〜1Fを同じデータで初期化して合成/インプリし、VRAMで指定したフォントが正しい位置に表示されることを確認します。

簡易ICEを使って、CPU側からVRAMのアクセスを行い、正しくフォントが表示されることを確認しました。下は簡易ICEでメモリテストしたところです。

一応、LCDディスプレイでも表示テストを行い、問題が無いことを確認しておきます。

FPGAシンセでBWV029(シンフォニア)を録音してみました。2つの音色で8チャンネルで出力しています。画像をクリックすると約3.7Mバイトのmp3ファイルをダウンロードします。


