メインページに戻る

4月前半は、操作パネルの換装をしただけ

部品の実装は4月早々に終了したのですが、問題はプログラム入力用のパネルです。
このパネルは、前作で使用していたものをそのまま流用したため、トグルスイッチが壊れかかっています(酷使しすぎてバネが弱っている)。元々このパネルは露光に失敗したPCBを適当に切って作成した「仮パネル」です。

本格的にソフトを作成する前に、まずはこのパネルを作り直すことにしました。



【上の小さな写真の左上】硬質塩ビ版(厚さ3mm)に穴をあける。柔らかいので大型ドリルではなく、リューターで充分。
【同右上】テーパーリーマーでSWに合う大きさに穴を広げる。側板は丈夫なコの字型のアルミ材を使用。
【同左下】裏面の配線中。トグルスイッチは一個千円前後はするであろう高級品を、数年前に某オークションで、80個1万円ほどで落札したものを使用。
【同右上】完成したパネル。手前のアルミ部分にあるDsub9pinコネクタは外部からプログラムをロード/セーブするためのもの(詳細は別途紹介予定)


【画像左】新しいパネルに換装した所。最終的にはLED用のパネルも作り直し、全体を透明アクリル板で覆う予定。奥に見えるのは空調用ファン。
【同右】背面も透明アクリル板で覆う予定。 しかしハードの試験が終わるまでは基板は覆わず、両サイドに補強用金具を仮設置しハンダ面の露出を維持する。また、ひっくり返して試験をする際に、トグルスイッチ等が机(作業台)に接触して破損するのを防ぐためのゴム足も仮設。

4月後半は、大容量プログラミングへの対策を実装しました

「大容量」といっても、せいぜい数万ステップです。しかしトグルスイッチを操作して入力できるプログラムは100ステップ程度が(精神的に)限界です。

そこで、RETROF-16では、Windowsパソコン上で作った機械語コードをRETROF-16の主メモリに転送する仕組を用意しています。

具体的にはFT245RLというICを使い、WindowsパソコンのUSB出力をTTLレベルのデジタル信号に変換します。FT245は1チップで最大8bitのデジタル信号を生成できます。その中の1bitをRETROF-16のクロックに接続し、もう1bitをシフトレジスタでもあるアキュムレータに接続しました。これだけでWindowsパソコンからRETROF-16のアキュムレータに任意の値を転送できます。

更にFT245RLの残りのビットを「アキュムレータからアドレス指定レジスタへの転送要求」と「主メモリのWR(Write Request)信号」に割り当てました。
これによりWindows側に組んだ制御用のプログラムで各ビットを適切にON/OFFすれば、任意のデータをRETROF-16の主メモリに落とせる様になりました。

 上の画像は秋月のFT245キットを実装した、RETROF-16本体との接続コネクタです。緑色のLEDはWindowsからビットのON/OFFが正しくできるかを確認するためのものです。(「ぶたどん」とあるシールは子供のいたずらですので気にしないでください)

FT245RLはビットバンモードでブロック転送しています。64Kワードのプログラムの転送時間は4秒ほどで完了します。
ライブラリはFT245RLを開発したFTDI社が提供するD2XXを使用しました。

インベーダー出現

Windowsパソコンからプログラムを組めるようになったので、トグルスイッチの操作によるプログラミングからは解放されました。
とは言うものの、アセンブラもコンパイラも作っていません。機械語を延々と「メモ帳」に16進で記述し、それをFT245RLのビット出力に変換する簡単なプログラムを作っただけです。それでもインベーダーを表示する(動きません、静止画です)プログラム等は簡単に走らせることができます。

左の画像は4月末時点での状況です。
Windows上で作った「インベーダーを表示する機械語」を転送し、実行した所です。前作の作成を途中で放り出した原因である「画像表示回路の設計ミス」のリベンジを果たす事ができました。


次は自作言語の自作コンパイラに挑戦します。

機械語(16進文字列)の羅列によるプログラムでは、1000ステップ程度が限界です。
専用のOSや、インベーダプログラムの開発には、コンパイラが不可欠です。 そこで2013年5月からは、2012年10月に中断したままになっているRETROF-16専用コンパイラ「Cξ」の作成を再開することにしました。 詳細は順次UPしたく思います。

「Cξ」は「Cくさい」と読みます。
「C++」でも「C#」でもない「C臭い」言語です。


メインページに戻る