SBC6303ルーズキット

スイッチサイエンスさんのマーケットプレイスでSBC6303ルーズキット(550円+税)の販売を開始しました。商品ページはこちらになります。お気に召しましたらご利用ください。
この商品の補充予定や新製品の開発情報はツイッターでお知らせしております

SBC6303は1978年時点の最先端マイクロプロセッサ、日立製作所HD63A03RPまたはモトローラMC68A03Pを取り付け可能なシングルボードコンピュータです。単独で動作してパソコンの端末ソフトから操作できるほか、拡張コネクタのバスとポートに、メモリ、周辺IC、LED、スイッチなどを増設することができます。完成後の外観を下に示します。

SBC6303

SBC6303ルーズキットはプリント基板だけを提供してあとは作る側の努力に頼る同人風味の組み立てキットです。本商品は下のプリント基板1枚です。ほかに、本体の部品、ACアダプタ、USB-シリアル変換ケーブルをご自身で揃えていただく必要があります。なお、本体の部品のうちEPROMは別売りのSBC6303用LILbug ROMをご利用いただけます。

SBC6303pcb

組み立てかたは技術資料で説明しています。当面必要なソフトウェアはデータパックに含まれます。技術資料とデータパックは下に示すリンクからダウンロードしてください。

SBC6303技術資料
SBC6303データパック

SBC6303ルーズキットは歴史マニアやビンテージICコレクタの皆さんにネットで自慢できるようなコンピュータを完成させてもらうことが目的です。一般の方だと、頑張れば乗り越えられる程度の難関があります。あらかじめ技術資料をお読みの上、うまく作れそうな場合にご利用いただければ幸いです。

広告
カテゴリー: 6800 | 12件のコメント

SBC6303用LILbug ROM

スイッチサイエンスさんのマーケットプレイスでSBC6303用LILbug ROM(750円+税)の販売を開始しました。商品ページはこちらです。お気に召しましたらご利用ください。
この商品の補充予定や新製品の開発情報はツイッターでお知らせしております

SBC6303用LILbug ROMはモトローラMC6801/MC6803の標準モニタLILbugを書き込んだEPROMです。EPROMをご自身で書き込みできるかたは必要がありません。紫外線消去型EPROMのイレーサや書き込み装置をお持ちでない場合にご利用ください。

sbc6303_lilbug_rom

SBC6303用LILbug ROMをSBC6303に取り付けるとプログラムの読み込み、編集、実行、デバッグが可能になります。詳細は下のリンクのマニュアル(英文)をご覧ください。また、SBC6303の技術資料に操作例、データパックにサンプルプログラムがあります。

LILbugマニュアル(英文)
SBC6303技術資料
SBC6303データパック

使用するEPROM は新品の27C256 型で、書き込み後、動作確認をした上で遮光シールに緑の印を付けて出荷します。EPROMのメーカーや品番は出荷時期により異なります。書き込みや動作確認の工程で目立たない程度の傷がつく場合があります。

カテゴリー: 6800 | コメントをどうぞ

SBC6303ブートローダの開発を中断

SBC6303ブートローダは設計の誤りを正すたびに動きかたがおかしくなり、これこそ大丈夫と思われた3代めのプリント基板でとうとうウンともスンともいわなくなった。すでに目標とした完成時期を1か月も過ぎ、後ろがつかえているので、現状をまとめた上で開発をいったん中断する。動かない製作例を紹介したところで当人以外に意味がないが、間違い探しのクイズとでも思って楽しんでもらえたらありがたい。

sbc6303bl

ブートローダはマイクロSDのHEXファイルまたはSファイルでSBC6303を起動させる。SBC6303と二段重ねにしたときマイクロSDが抜き差しならなくなるのを防ぐため、マイクロSDブレークアウトをプリント基板の裏表どちらにも取り付けられるようになっている。製作例は裏に取り付けてあり、取り付けを忘れたから動かないというわけではない。

sbc6303bl_sd

回路図を下に示す(クリックで拡大表示します)。ブートローダはArduino Pro miniを積んでいて、通電するとすぐこれがSBC6303にリセットをかけ、RAMにプログラムを転送してから解除する。この間、SBC6303のバスはすべてハイZでなければならないが、データバスは仕様上ハイZにならないので74HC245を入れた。

sbc6303bl_sch

RAMのスライドスイッチはデータバスに74HC245を入れていない段階でRAMをただの増設RAMとして使えるようにしたもの。74HC245を入れた回路ではデータバスの信号が競合してそんな風に使えないが(あれ、そうでもないか?)、うっかり取り外すのを忘れてしまった。とはいえ、スライドスイッチがRAMのCSをArduino Pro Miniの側につなぐ設定になっていればブートローダとしての働きに影響はないはずだ。

Arduino Pro Miniのスケッチは、このブログがZIPを拒否するため、PDFの形式でご覧いただきたい。マイクロSDの読み出し、バイナリへの変換、RAMへの書き込みなどは個別のテストで正常。たぶん、ブートローダがSBC6303へバスを引き渡す過程でおかしなことが起きているのだと思う。いったん別の仕事をやってまた考えたら案外つまらないミスが見付かるかもしれない。

カテゴリー: 6800 | 11件のコメント

8080の回路図を更新

インテルの8080が最初に動いた約2年前、嬉しさのあまりCPUボードの回路図をよく校正しないまま掲載し、さらにはあちこちへ転載して、数人からお叱りのご連絡をいただいた。ごめんなさい、ありがとう。当該の投稿「8080が動いた」に訂正を書き加えました。ということで、本来なら正しい回路図を再掲載するべきだろうが、その後ちまちまと改良を加えたので最新の回路図を公開する。
sbc8080sch
別窓でPDFの回路図を開く

更新したのは次の4点。第1に、HOLDとHLDAをあるべき形に配線してDMAに対応。第2に、12V電源回路の半固定抵抗と電流制限抵抗を廃止。第3に、-5V電源をTK-80方式に変更して反転ICを廃止。第4に、リセットスイッチとパイロットランプを追加。ヤバイのは-5V電源で、実測-4Vしか出ていない。しかし、現実に8080が正しく動作しているし、毎月1800台が捌けたTK-80で特段の問題を生じていないことからこれでよしとする。取り急ぎご報告まで。

カテゴリー: 8080 | 8件のコメント

6809と6309を判別する方法

6309の偽造品が横行している件、現在は中身が6309Eだからすぐわかるが、今後、手口が巧妙化して6809が使われたとき見破るのが難しい。そこで、SBC6809で動いて63~と68~を判別するプログラムCHK309を作った(OneDriveのCHK309.zip)。参考にしたのはChris Burkeの著書THE 6309 BOOK(PDF)。機械語の$1043が、6309だとCOMD、6809だとNOP+COMAになることを応用している。まずはHD468A09EPで実行、はいOK。

chk309_68

続いてマーキングがHD63C09PのやつをHD63C09EPとして実行。これもOK。偽造品には違いないがHD6809EPで偽造するのに比べたら良心的。というのも、本来、HD63C09PとHD63C09EPは工場出荷価格が同じであり、むしろマーキングの書き換えに余計な手間がかかるから、とうていうまい仕事とはいえない。たぶんE付きがだぶついて処分に困ったものが安く出回っているのだと思うが、それにしても大した儲けは出ていないはずだ。

chk309_63

これでたいていの偽造品は判別できる状況ができた。あともうひとつ63B~と63C~を判別したい。できるかどうかわからないが、やってるぞという姿勢を示すことが偽造品の撲滅につながるだろう。

カテゴリー: 6809, 世間話 | 15件のコメント

SBC6809を改造して6809Eを動かす

困ったことにマーキングが6809で中身が6809Eという偽造品が横行している。それとおぼしきものがとうとうボクの手もとにもやってきた。部品店に「これ偽造品ですよ」というからにはそれなりの確証がいる。本物の6809はSBC6809で動くからすぐわかる。動かなかったとき、ただの不良品なのか中身が6809Eなのかを知るため、SBC6809を6809E対応に改造。PIC12F1822で間に合わせのクロックジェネレータを作って空中配線。

sbc6809_e

PIC12F1822のプログラムをGitHubに置いておく。素人臭いソースだが、確実に動き、これでも500kHzのクロックを出力する。下に示す接続でHD468A09EPが動作。TSC、E、Qは接続先変更、5VとGNDは配線追加、Xは切断、あとは現状維持。GrantのMS-BASIC(ソースとバイナリはこちら)がちゃんと走った。ちなみに、500kHzがことさら遅いわけではない。Altair680なんか500kHzの6800だからね。

sbc6809_e_sch

改造したSBC6809に怪しいHD63C09Pを取り付けてみたら、あらら、動いちゃったよ。つまりこのHD63C09Pは中身がHD63C09EP、いやそれでは偽造する側にメリットがないからHD63B09EPか、ことによったらHD6809EPだ。どうせならEなしで偽造すればバレにくいのに、そこまでの知識はないということか。6809に偽装品が目立つのは、E付きで偽造しちゃったせいでバレやすいというだけなのかもしれない。

hd63c09p_fake

今後は6809で偽造した6309が増えるだろう。両者の違いはネイティブモードへ入れてみればわかるから、いずれ偽造品判定プログラムを書いてみたい。まあボクの「いずれやる」は「やらない」と同義なんだけど。

カテゴリー: 6809 | 18件のコメント

ボクのわがままを許して

HD6303のマニュアルですっかり見落としていたのが下の表(クリックで拡大します)。付け加えると、tomi9jpさんやtendai22plusさんから指摘があったにもかかわらず、しばらくは気が付かなくてたぶんお二人をイライラさせたやつ。この表によれば、SBC6303(マルチプレックスモード)をリセットし続けた場合、アドレスバスはハイインピーダンスになるが、データバスはハイインピーダンスにならない。ブートローダを正しく動かすには両方ともハイインピーダンスにする必要がある、というのが今回のテーマ。

hd6303_hiz

この表の脚注を見ると「次の(1)または(2)の対策を行なってください」と書いてある。英語のマニュアルだと「(1) and (2)」なんだけど日本語のほうをとってどちらか一方でいいと解釈。だから(2)にしたがいAS端子にプルダウン抵抗4.7kΩを付加してみた。AS端子はGNDとほどよい距離にあって抵抗の取り付けは簡単。

hd6303_hiz_r

この状態で電源を入れ、リセットスイッチを押し続けて、データバスにつないだLEDが点灯しなければ成功なのだが、結果は点灯。つまり、データバスはハイインピーダンスになっていない。まあそうだろうな。そもそもAS端子にプルダウン抵抗をつなぐ意味がわからない。ボツに決定。それでも、この試みでアドレスバスがハイインピーダンスになっていることは確認できたからまったくの徒労に終わったわけではない、としておこう。

hd6303_hiz_led

で、今後どうするかということ。すでにtendai22plusさんからユニークな解決方法が提案されていて、tomi9jpさんが検証してくれる流れになっている。そういう状況で、ちょっと勇気がいるのだけれど、正直な気持ちをいっておきたい。SBC6303は過去9回の修正で幅広いソフトウェアに対応し、かつ最小限の部品で動くように練り上げた。その過程を見守ってくれた人たちもいる。土壇場になってブートローダを必要としない人には関係のない機能を盛り込むことはやや抵抗がある。

tendai22plusさんの解決方法はとても面白いし、何より一緒に考えてくれたことに深く感謝している。それはそれとして、ブートローダの問題はブートローダの側で解決したい。tomi9jpさんが指摘してくれたデータバスがハイインピーダンスにならない件はブートローダに3ステートバッファを追加して何とかしようと思う。ごめんね、これがボクの流儀なんだ。ありがとう、みんなの技術に負けないように頑張る。

カテゴリー: 6800 | 4件のコメント