PIA に接続する他の回路、つまりキーボード入力ポートや K68-VDG の垂直同期信号入力ポートなどもこの回路図に含まれます。図の中央付近がテープレコーダ録音再生のための変復調回路ですが、面白いのはカセットテープから再生された音声信号をパルス幅測定に適した波形に加工する復調回路です。入力音声信号をクランプ回路でクリップしたあとでコンパレータを通して矩形波に整形するのですが、Λ-1 の設計ではコンパレータとしてオーディオレベルメータ用 IC の三洋 LB1405 を使います。レベルメータ LED を見ながら入力レベルを調節できます。
カセットデッキは SONY のエントリレベルモデルを中古で入手しました。今となっては 3 ヘッドの中堅機あたりでも中古価格は大差ないのでしょうが[注 1]、メカや回路がシンプルな方がメンテナンスが容易になり、またデータ信号波形に余計な色がつかなくて良いのではと考えました。当然ドルビー NR は無効にして録音します。
当時オシロは高価な機器だったため、専門家以外が簡単に使えるものではありませんでした。こういったアナログ絡みの回路をオシロの助けなしに上手く動作させるには長時間のカットアンドトライが必要になったはずです。Λ-1 のカセットインターフェイス回路に LED レベルメータが組み込まれているのも、調整作業が少しでも簡単になるようにという配慮があってのことと思われます。
旧 CPU カードと同じ要領で部品を組み付けます(今回も配線ミスがありジャンパが必要になりました)。最初に CPU カードのみテストします。まず SRAMSEL ピンをプルアップして CPU カード単体で SRAM を常時有効にします。その後、旧 CPU カードと入れ替える形でバススロットに装着します。この時点で Lambda-2022 システムには 64KB フル RAM を実装した新 CPU カードと DMA カードが接続されています。
***
* memtest $0000-$7fff
***
*
* set val to write
val equ $55 ; test val
erradr equ $8100 ; address where test failed
mstart equ $0000 ; mem test start addr
mend equ $8000 ; mem test end addr + 1
*
org mend
start ldx #mstart-1
stx erradr ; if (erradr)=mstart-1, test succeeded; otherwize test failed
inx
ldaa #val
loop staa 0,X
cmpa 0,X
beq ok
stx erradr
bra endl ; test failed, end prog
ok inx
cpx #mend
bne loop
endl bra endl
*
end
MikBug の L コマンドを使って S19 データを流し込み、Hello World プログラムを実行しました。シリアルコンソールと L コマンドがこんなに有り難く感じたことはありません。フロントパネルスイッチをパチパチと操作して 1 バイトずつ入力する作業に比べると数段楽です。まあ、そのパチパチ操作のために Λ-1 を作ったのですから本末転倒する感想ではありますが、シリアルコンソールとモニタ ROM が動いた時点でフロントパネル DMA の必要性が失われてしまうのは事実です。
MikBug のコンソールが動いたので ACIA はテスト済みとみなします。次に PIA について 2 つのテストを行います。
PA / PB ポート:L チカ
PIA0 に MC6821 PIA をセットします。PIA0 のレジスタにはアドレス $f008-$f00b でアクセスできますので、全ポートを出力に設定した上で適当なループタイマを挟んで PortA と PortB の両方に $00 と $ff を交互に書き込みます。20 回繰り返したらプログラムを終了します。
「L チカ」と称する以上は適当なドライブ回路を PIA ポートに接続して LED を点滅させるのが筋ですが、面倒なので PIA ポート出力をロジアナで直接測定します。下の画面では D0 が PA0、D4 が PB0 に接続されており残りのチャネルは未接続です。
当時の状況ではこれは大事業でした。大半のユーザは既製品のマイコンシステムが手元になかったので、各種の機材や開発環境がない状態でシステムを作り上げる必要がありました。たとえばアセンブラ処理系がない初期段階ではプログラムをハンドアセンブルで仕上げる必要があります。また外部記憶装置を得るためにまずカセットインターフェイスのハードウェアを作ります。その後 ROM ライタ回路を作り、ROM 書き込み用コードを書くとようやくモニタ ROM が作成できるのでした[1]。
「マイコン手づくり塾」単行本の内容は雑誌掲載時と若干順序が入れ替わっているのですが、この単行本に準拠すると後半部は VDG 回路 > キーボード回路 > カセットインターフェイス > ROM ライタ > Chick-Bug モニタ ROM の順番で製作が進行します。当時の開発環境事情に照らし合わせるとこの制作順しかほぼ方法がなく、壮大なブートストラップ手順と言うほかありません[2]。
しかし現代の開発環境があれば上記のような制約は問題になりません。モダン OS 上で高速なクロスアセンブラやディスアセンブラが使え、豊富なプラグイン機能が揃ったエディタもあります。ROM ライタもかつてとは比較にならないほど安価に入手できます。