PC-6001用カートリッジ作りの続きです。
約1年2か月ぶりに進展しました。もう細かいことを忘れてしまい、自分で作った気になっていたのですが、ブログを読み直すと、p6ers.netの記事を参考に作ってるだけでした。
とりあえず動いたレベルですが、製作過程を動画にしてみました。
プリント基板ができました。
板の厚みは1mmにしました。本来は1.6mmくらいがベストだと思うので、挿し込むとゆるいです。
フラッシュメモリは1Mbit(128KB)を使ってますが、8KBしか使いません。容量余りまくりです。
動作検証用のプログラムはp6ers.netからもらってきました。
Z80のアセンブラは何を使ったらいいのか皆目わからないのですが、T.Sagaeさんという方が開発した「AASM version 3.73」を使ってみました。マクロとラベルの記述のルールが違うので、そこだけ修正しています。
そのままHEXファイルをバイナリ出力すると、0番地から出力されてしまいます。そこで、付属のツール(hex_ut)を使って、0x0000~0x3FFF番地の中身を捨てて、0x4000番地から始まるようにします。p6hello.binというファイル名で出力しました。
バイナリファイルをPC-6001mkIIのエミュレータで実行すると、こうなります。PC-6001mkIIでも動くのか謎だったのですが、全く問題ないです。自動でPC-6001モードに切り替えるだけですね。
フラッシュメモリライターは以前作ったゲームボーイ用を改造して作りました。
50pinのカードエッジコネクタは千石電商で売ってます。
フラッシュメモリライターの実行画面です。
自分の回路はデコードなし、A0~A14までのアドレスバスを直結してるので、ROMイメージの0x0000~1FFF番地の内容を0x4000~5FFF番地に書き込みます。フラッシュメモリ内部の0x0000~0x3FFF番地がムダになってしまうので、そこがダサいですね。
書き込みが終わったら、カートリッジ基板をスロットに入れます。カートリッジを検出するスイッチがスロットの内側にあるので、onにする必要があります。
電源を入れ、「HELLO PC-6001」と表示されたら成功です。
フラッシュメモリの書き込みの途中、A10をつなぎ忘れるというパターンのミスを発見しました。ジャンパ線で対応しました。
作ってから改めて考えると、SRAMも載せたほうが良い感じがします。余力があったら、さらに改良版を作りたいです。
パターンを直した修正版を公開しています。
(2021/07/30追記)
カートリッジのガワ(シェル)を作ってみました。
秋月で売っているケースが丁度良かったので使ってみました。
ABS樹脂ケース(蝶番式・中薄型) 112−TSS: 電子工作便利商品 秋月電子通商-電子部品・ネット通販
ケースの底を丸ごと削り取ります。ヒンジも、合わせ部分のツメも削ります。フタが固定できなくなってしまうので、テープで貼り合わせてます。
基板の固定は、1cmのねじに5mmくらいに切ったストロー(コンビニでもらったやつ)を通して、ホットボンドでくっ付けてます。
挿し込むとこんな感じです。ホットボンドで付けてるだけなので、強度が足りないと思ったのですが、問題なかったです。
一発でストンと入らないで、どこかに衝突してしまいます。ちょっと下側に寄せると入ります。
(2021/08/01追記)PC-6001で動作チェックしてみましたが、問題なく動きました。
でも、mkIIの場合と違って、カートリッジのガワがコネクタに衝突してしまうので、両サイドを削りました。これは見た目が悪いですね。