goo blog サービス終了のお知らせ 

日本橋電気街徘徊日誌

いいとしのおっさんがジャンク屋で買ったものをいじったり電子工作したりします。

ファミリーベーシック改造(その4)

2011-07-06 17:52:42 | 電子工作


ファミリーベーシックV2(V2しかみたことない)はメモリが2キロバイトしかなく、
ちょっと複雑なことをしようと思うと入りきらないということがよくあるように思います。

そこで、今ごろファミリーベーシックを実機でいじろうとしているごく少数の方向けに
メモリを2キロバイトから8キロバイト(ベーシック用4キロバイト・機械語用4キロバイト)に
増設する方法についてまとめました。作業を思い出しながら書いているので間違っていた場合はこめんなさい。

V2のカセットをあけると、MB8416Aという24ピンのSRAMが基板左上に見えます。
この24ピンSRAMを比較的手に入りやすい28ピンの32キロバイトSRAM(例ではTC55257)と
置き換える上で何が共通で何が共通でないか確認すると以下のようになります。


赤で囲った部分は両者で共通のピンですのでそのまま接続できます。
共通でない以下のピンはピンをL時に下り、以下のように接続します。

 1 A14 GNDに接続します。
 2 A12 ROMにA12がありますので接続します。
23 A11 ROMにA11がありますので接続します。
26 A13 GNDに接続します。
27 RW  基板側21番ピンに接続します。
28 VDD 基板の適当なところから電源をとります。


これでハードウェア的には$6000から8キロバイト使用できますが、ファミリーベーシックは
いつもの通り2キロバイトしか認識しませんし、リセットしても初期化もされないようですが、
メモリバックアップの対象にはなっています。終了時ベーシックの保存方法を間違えて、
ベーシックのリストが消えてしまってもともと存在していない領域は初期化されないようです。

ベーシックのフリーエリアを増やす場合はベーシック起動後POKE 4,&H7Fでフリーエリアが
だいたい4キロバイトになります。$6000からの4キロバイトは機械語で使用するしかないようです。


じっさいに改造する場合のコツとしては、けちけちしないということがあります。
もともとついている24ピンのSRAMをきれいに外して、後で元に戻せるようにしたいと
考えると思いますが、なれていないと外す過程で基板を壊す可能性が高いので
けちけちせずにニッパで足を切って外すべきです。

 


ファミリーベーシック改造(その3)

2011-05-10 12:18:29 | 電子工作


ファミリーベーシックのメイン側にsramをつけた話の続き。
$5000から4キロバイト*8バンクで使えるようにしたけど、
カートリッジからプログラムrom 2つの22番(/OE)へのパターンをカットして、
CPLDからの出力を入れるようにしました。
$4043のビット3が1だったらsram、0だったらromが接続されるようにして
basic romの裏ramを実現しました。

あらかじめpeek pokeでbasic romを裏ramにコピーしておいて、

裏ramにコピーしたbasicにパッチ適用。

$8570はV2.1Aでのbasicフリーエリアの初期値ということなんだけど、V2.0Aでも同じみたい。

そして、リセットすると・・・

めでたくリセット後から4030バイトつかえるようになりました。

2キロだとちょっと小さいけど、4キロあれば、まあちょっとしたことはできるね。

$6000から$FFFFまでの40キロバイト連続したramがあるのでけっこういろいろできそう。

ここまできたら次はPPU側のキャラクタROMに裏ramをつけて、グラフィックとかさわれるようにしたいな。

 

 

 

 

 

 

 

 

 


ファミリーベーシック改造(その2)

2011-05-09 12:22:22 | 電子工作


ファミリーベーシック改造がかなりすすんだので更新。
前回はファミリーベーシックから引き出した線をCPLD(XC9572XL)につないで、
特定アドレスに書き込んだらLEDのON/OFFができるようになるところまでできた。
その後特定アドレスを読んだら特定のデータを返せるようになったので、
信号レベルのところはうまくいっていることがわかったので、いよいよ
32キロバイトのsramを接続しました。
メモリマップが空いていないので、$5000番地から4キロ*8バンクでつないでます。
バンク切り替えは$4043に書き込む値で制御します。

 

基板全景。CPLDを使用しているから、配線は最低限になっているんだけど、やっぱりすごい量になってる。

このくらいの配線量だとそろそろプリント基板をつくりたくなってくる。

sramのところのアップ。

 

次はrom部分にパターンカットして、basic romとramを切り替えるようにしたい。

それで、basicにパッチあてできるようにしたら、本体部分の改造は一旦おしまいで、

次はキャラクタrom側の改造に着手する予定です。

 

 

 

 

 

 


ファミリーベーシック改造(その1)

2011-05-06 12:40:53 | 電子工作

ものすごく間が空きましたが、ようやく公開できるようなネタができたので書き込みます。

某掲示板の昔のpc板でファミリーベーシックの2キロバイトsramを32キロバイトsramに
交換して、4キロバイト8バンク?にする試みが出ていたのに興味がでてきて、わざわざ日本橋で
ファミリーベーシックを探して買ってきました。
ファミリーベーシックは比較的見かけるものなのですが、時期が悪かったのか、店頭で見かけて
入手できるまで1ヶ月以上かかりました。

ぐぐってみるとenri氏のウェブページでファミコンやファミリーベーシックのかなり詳細な
解析資料をみつけることができました。

enri氏の資料のおかげで、ファミリーベーシックのsramを大容量品と交換することは非常に簡単でした。
もともとは$6000から$7FFFに2キロバイトのsramが、デコードをケチる関係でイメージありの状態で
接続されていたのを、ちょっともったいないのですが32キロバイトsramと交換し、8キロバイトを有効としました。

某掲示板の情報で4番地に&h7fをpokeすればフリーエリアが増えると書いてあったので、
さっそくやってみたところ、print freeで表示される数値が増えました。なんとなく問題なさそうです。
$6000~$6FFFはファミリーベーシックは全くアクセスされないようで、かつバッテリーにバックアップされるので、
この領域に機械語のツールでもおいておけば便利そうなきがしました。

ここまでは非常に順調でした。
この後、ファミリーベーシックのプログラムromの裏に32キロバイトのramを置いて、
ベーシックにパッチをあてて使用できるようにすればもっと便利な気がしましたし、
メモリが40キロバイトともなれば立派な8ビットパソコンといえるのでやってみることにしました。

ここからが苦難のはじまりで、ユニバーサル基板上のCPLDに正しくロジックが書き込めないのです。
どのような状況かというと、JTAGでロジックを書き込みときに、デバイスのID CODEを確認するのですが、
なぜだか1ビット化けていて書き込めないのです。基板の配線をやり直したり、パスコンの位置や数を
調整してみましたが動きません。わかってみればあたりまえのはなしですが、JTAG線の電源をつないで
いませんでした。私の使用しているライターはJTAG線の電源線から電気をとって動くので、考えれば
当たり前の話ですが、中途半端に動作しているので原因にたどりつくまで時間がかかりました。
やはり初心者は躓くと山を越えるまでが長いです。電子工作クラブのようなものが近くにあれば
よいのですが・・・。

で、CPLDの部分に書き込めるようになってきたので配線をすすめて、ファミリーベーシックのカートリッジと
合体させてみました。

 

 

 

全景です。

 

 

本体とカートリッジです。

 

カートリッジです。

 

カートリッジのアップです。

 

配線がすごいですがCPLDなんでまだましです。

 

カートリッジとユニバーサル基板を外したところです。

プログラムROMの上にICソケットを載せて、そこからA13~A0、D7~D0をとっています。

我ながら邪道すぎる。

 

&H4040番地に0を書くとユニバーサル基板のLEDが点いて、1を書くと消えます。

次はデータの入力をやって(XC9572XLを使用しているので出力がちゃんとファミコンに届くか心配)、

romの切り離しとメモリマッパー、最後がキャラクタROMのSRAM化をやりたいな。

あとシリアル入出力もつけたい。

先はまだまだながいな・・・。

 

 

 

 

 


XC9572XL基板その後

2011-02-22 12:36:28 | 電子工作
この前のXC9572XL基板の続き。
デジットのFT245RL基板を使うあてもなく買って積んであったので、
組み合わせてUSB-BLASTERのパチモノを作ってみました。



yacc様のページ(http://www.geocities.co.jp/Technopolis/9382/index.html)を
ほぼそのままの構成でデジットFT245RL基板とXC9572、TC74VHC9541Pの組み合わせでつくりました。
yacc様ありがとうございます。



基板裏。
どんな順序で作っていって、どのへんから気力が尽きてきたか、たいへんわかりやすい基板となっています。
みにくいけどこげていることろは、最初9541に電源は3.3VをFT245から与えていた部分を、途中から
JTAGのターゲットからとるように変更した部分です。

FR60のUSB-BLASTERもどきはconfigにパラレルポート接続と同じような時間がかかっていたけど、
このFT245とXC9572XLの構成だと一瞬でconfigが終わるので速さにおどろきました。
また、AS/PSでもたぶんconfigできるはずなのであとでFLEX6000でも動作確認しよう。




XC9572XLをユニバーサル基板にのせてみた

2011-02-14 12:26:47 | 電子工作
いまさらですがデジットでXC9572XLを買ってきたので、ユニバーサル基板に載せてみました。



上にあるのはisp(jtag?)の配線で中央の2本のピンは電源。




アップ。




イマイチなハンダ面。
電源ラインはもうちょっと考えて引き回したほうがよかったかも。


いちおうLEDチカチカは正常に動きました。
xc9572は電源の三端子レギュレータがほかほかになってびっくりしたけど、
これは全く問題なさそうです。データシートの電流の項目も確認したけど、USBの電源でも問題なくつかえそう。



デザインウェーブマガジン2007年7月号付録

2011-02-02 12:04:55 | 電子工作


デザインウェーブマガジン2007年7月号付録(spartan3e xc3s250e)をベースにつくった評価環境。
urlは失ったけど、どこかでEPM7256A付録基板にピンソケットをつけて、
周りにソルダレスブレッドボードを置いた評価環境をみかけて、
便利そうだと思って作ったのがこれ。


JTAG基板とRS232C変換基板はトラ技2008年1月号の付録で、
それに加えてモノクロビデオ出力基板と7セグLED基板、sram基板を追加した。

これをつくったのは2008年か2009年だったか。
2007年7月号を買ってからすぐにさわりだしたのだけど、電子工作遊びをはじめて
まだ間もなかったので、コンフィグ用の参考回路をそのまま作ったつもりなのだけど
全然動かせなくて、10月くらいにストロベリーリナックスのxilinx/altera両対応
パラレルjtag基板を買ってようやく動かせたんだったかな。

fz80+ブロックram+シリアル出力+モノクロビデオ出力を構成して、sdccで動かすところ
まではいったけど、外部sramをどう駆動していいか理解できなくてそのまま挫折したんだったかな。

ezdv(acex 1k搭載)改造の自作評価基板の方で一山越えたので、落ち着いたらこっちも
どうにかしよう。