2019年8月31日から2019年8月25日までの日記を表示中
2019年 8月31日 (土)
■基板
PAL16L8についてしつこく調べた結果、MMI PAL Handbook 3rd edition (1983) という本に書かれていることを発見。見てみたところ、11.75Vと5Vを使い分けて2KByteほどの情報を読み出すようですな。こりゃ自分で作るのはちょっと大変そうというか、そもそもこういう2電圧を細々切り替える回路はどういう部品を使って組めばいいのか。あー、やっぱりTopMax II欲しいなぁw
[コメントを書く]
■ビール
[コメントを書く]
2019年 8月30日 (金)
■基板
PAL16L8、自力で読んでやろうと思って色々調べているんですが、なかなか読み書きの仕方が書かれた文献が見つかりません。くそー、TopMax IIを買うしか無いのかw
[コメントを書く]
2019年 8月29日 (木)
■基板
一昨日作ったテトリスのJEDファイル、ATF16V8に書き込むと動くのに、GAL16V8に書き込んだ場合に動かないことが判明。なぜ・・・
プログラマを変えてもダメ。書き込んだ後、再度ダンプすると得られる真理値表は正しい。となると一体何が・・・。
色々試行錯誤した結果、出力ポートの出力条件 (OE) が全部VCCになっていたのがまずかったようで、他のB-SYSTEMと同様に13番ピンのみ出力条件を 16番と17番のAND にしたら動くようになりました。うおー、そういうことか。
いやしかし、なんでATF16V8で動いてたんだろうw
[コメントを書く]
2019年 8月28日 (水)
■基板
せっかくなので、マスターオブウェポンの基板も引っ張り出してきました。テトリスと完全に一致。
ちゃんと動きました。ふぅw
テトリスの基板からマスターオブウェポンの基板にROMとPALを移植してみたところ、普通に起動。まあそりゃそうかw
[コメントを書く]
2019年 8月27日 (火)
■基板
2枚あるので万一ミスって破損させても何とかなる(かもしれない)阿修羅ブラスターのPAL16L8の中身を、昨日の方法でJEDファイルにしてATF16V8に書き込んで動かしてみました。
無事動作。やったね。
では本番行きます。タイトー版のテトリス(マスターオブウェポンベースの方)。真理値表を取り出して、JEDファイルにして、ATF16V8に書き込んで置き換えて・・・
きたー!動きました!
というわけで、ひとまずうまく行ったようです。
[コメントを書く]
2019年 8月26日 (月)
■基板
今日もPAL16L8に挑戦継続。WinCUPLで真理値表からPALのコンフィギュレーションを生成してたんですが、生成されたJEDファイルをjedutilで確認してみると、何かおかしい感じです。結果が丁度論理反転してる感じ。docファイルに書き出される論理式は正しいのに・・・。
オプションを色々と変更して実験した結果、どうも真理値表を、コンパイラオプションでド・モルガンを有効にして積和形式で出力しようとすると、JEDファイルに出力の論理が反転した状態のコンフィギュレーションが書き出されてしまうことがわかりました。何なんだこのバグは・・・。
さらに、TABLEで真理値表を作ってコンパイルすると論理が反転するものの、普通に論理式を書いてコンパイルする分には論理が反転しないことも判明。これを利用して、ド・モルガン設定を有効にしたまま真理値表をコンパイルして、docファイルに書き出された式を再度ソースコードに取り込み、真理値表の方はコメントアウトした上で、改めてコンパイルをかけることで、積和形式になった論理反転していないJEDファイルを生成できるようになりました。あー、よかった。
というわけで、これで何とかPALを外から叩いて真理値表を作って、それをコンパイルしてJEDファイルを生成するまでの流れが完成。実際にATF16V8に書いて再度真理値表を作ってみましたが、同じものができたので、ひとまずは問題ないはず。
[コメントを書く]
2019年 8月25日 (日)
■基板
昨日の続きで、PAL16L8のダンプに挑戦継続中。ChipMaxでPAL16L8が読めないのはなぜなのか。VMware上の32bit Windowsから叩いてるのがダメなのかと思い、試しに32bit版Windowsをネイティブインストールして環境を作ってみましたが、相変わらずダメでした。読もうとすると、「Incorrect device ID. 」と出て、その後いきなり最初のReadで弾かれるようで、「Read error. Fail address: 0(0h)」とのメッセージが。そもそもIDチェックを外しているのに何でだろう。デバイスとして「PALCE16VH8 as 16L8」を選んでるけど、実は互換性が無い系? ちなみにPALCE16VH8は読めますな。
仕方がないので作戦変更。かつて黒往生のGALを修理したときと同じように、真理値表を作って、そこから回路を合成してみます。当時使ったソフトウェアはWinCUPL。調べたら、今でもあるようなので、インストール。真理値表取得のためのダンプは、Arduinoで。
ひとまず中身がわかっているCPS1のPALで試してみたところ、あっさり真理値表の生成に成功。後はこれを合成するだけ・・・って、何かうまくWinCUPLでコンパイルできないぞ・・・?というか、かつてコンパイルできたはずの、黒往生のGALのコンパイルも「excessive number of product terms: "variable"」とかいうcode 0006ccなるエラーが出て通らないんですけど、これは一体・・・。
と思ったら、Minimization設定をQuine-McCluskeyに変更することで黒往生のGALのコンパイルが通るようになりました。そして今回ダンプしたやつもコンパイルが通りました。うーん、デフォルトでこれくらいオンにしておいて欲しい・・・。
[コメントを書く]
2019年8月31日から2019年8月25日までの日記を表示中
当方でもTopMax IIでTAITOのテトリスC12-01 PALはリードが正常に読み込み出来なかったです。
SUM:0000になります。
MAX2のデバイス一覧でAMDとAMD(MMI)2種類あるのですが、PAL16L8BCNがどれに該当するのか?
AMDのPAL16L8-4とか-5とかで選択するとSUMの値が変わるのは何故かわかりません。
C12-01ということは、ラスタンサーガ2 がベースの方でしょうか。
マスターオブウェポンベースの方のC35-06はTopMax IIで読み出すことができました。
デバイスは AMD(MMI) PAL16L8B ですね。
確か、AMDのPAL16L8はMMIのと全然違った覚えがあるので、チップにMMIのロゴが入っていたら
迷わずAMD(MMI)の方を指定するのがよいのかな、と。
機会があったらうちのラスタンサーガ2ベースの方も見てみたいと思います。