#目的
ちょっと前に、CNCで作製したプリント基板にFPGAを乗せて、CP/Mを動作させた。
このCPUはZ80なので8ビットなのだ。
8ビットを制覇したので、次は16ビットに挑戦するぞ。
16ビットだとすると、やっぱりあれだな。
◆◆◆ そうだ、FPGAでDOSを動かそう ◆◆◆
規模が大きくなるけど、まあ大丈夫だろうと気楽に考えよう。
#経緯
DOSは通常はディテクオペレーティングシステムの略称。 Microsoft社のMSDOSが代表的な存在。
MSDOSを使うにはライセンスが必要だが、現在では機能互換のフリーの物も存在する。
DOSシステムを構築するには、8086cpu又は互換cpuにメモリ等の周辺回路を繋げる。
これにの上でソフト(DOS)をブート出来れば完成だ。
今回ターゲットにするのは、「next186」と称されているものであり、80186をcpuとしている。
next186でDOSシステムを動かすと言っても、今回はハードウェア環境を構築するだけである。
FPGAとしてはXilinx社製のxc6lx9を使う。
選定理由は、はんだ付け可能(TQFP144)の中で大容量と言う事だが、一番は値段が安いことだな。
xc6lx9を使ったDOSシステムは既に先例が有り、確実に動く筈と言うのも大きな要因だ。
ソフトが既存で信頼できても、ハードが動作する保証は無いので、次のようなステップを踏む。
Step-1 市販FPGA(xc6lx9)基板にメモリ、IO等を繋ぎ、CP/Mで動かしハード動作を確認。
※CP/Mでも、メインメモリはスタティックでは無くDRAMで構成する。
但し、バーストアクセスは行わないので、不具合検証はやり易い。
Step-2 上記ハード上で、DOSシステムとして動作させる。
※実際の所、メモリ(DRAM)が正常に動作せず、ここで数か月足踏みした。しくしく。
Step-3 CNCでプリント基板を作成し、先にCP/Mでハードの動作検証を行い、その後DOSシステムを動作させる。
#前提条件
以下のハード・ソフトを必要に応じ、予め準備してね。(購入先、金額は参考)
1. FPGA-board XC6SLX9 Mini Board(AliExpressで購入、三千円ぐらい)
2. 外部メモリ W9825G6KH 32MBSDRAM (EBayで購入、500円位)
3. 基板試作用部品 FPGAやその他部品は適当に調達(値段は時価)
4. 基板設計ソフト EAGLEを使用(無料、動作が軽快なので7.2を使っているが最新版でも多分問題ない)
5. 切削データ作成 pcb-gcodeを使用(無料、ver 3.6.2.4)
6. Xilinx ISE14.7 FPGAのプログラムの開発、変更に使用(無料)。ISE14.7が最後。
※しかし、windows10用対応としてソフト更新はされているので、今でも使える。
7. 書き込み器 FPGA書き込み機( Download Cableの名称でAmazonでコンパチ品を売っている、五千円円位か)
#製作
ハード作成は前回と殆ど同じなので、やり方はそちらを見てくれ。
使用するハード/ソフトを参考までに下記に格納している。
lx9-Step-1-io Step-1,2で使用する拡張基盤。市販基板に刺して動作させる。
※動作確認時に色々弄ったが、結局問題はソフトに有り、ハードは無罪。
MAIN-BOARD FPGAとDRAMを乗せた基盤。
PMOD-IO SDカードとキーボードを繋ぐ基板。MAIN-BOARDに刺す。
PMOD-VGA6 VGAディスプレイ出力。MAIN-BOARDに刺す。
lx9-Step1-CPM80 CP/Mを動作させる為の回路(verilog)
lx9-Next186_SoC DOSを動作させるための回路(verilog)
#動作
SDカードを入れ、リセットすれば動く筈だが、そうは問屋が卸さないだろう。
SDカードは「SD2G_Dos_F.zip」を解凍し、win32diskimagerなんかで書き込めば出来上がるはず。
このカードデータはdosboxを使って、FreeDosで構成した。その後、最終番地(8KB)にBIOSを書込んだ。
カードの最後位置に8KBのBIOSが必要だが、最終位置が異なった場合はHxDなんか使って書き換えが必要かもしれない。
この画面が出ない場合、画像出力が異常か、CPUが真っ当に動作していない可能性が高い。
※配線不良やショートを疑う必要が有る。
出た場合、cpuは動作しているが、BIOSが読めておらず、恐らく下記の何れかだろう。
1.SDカードが読めていない。 SDカードの信号(特にdat0)を確認すべき。
2.カードの内容が正しくない。 SDカードをダンプして、内容確認すべし。
Starting MS-DOS... が出れば後は多分大丈夫だろう。ご苦労様。
CNCで作った基板でDOSが動いたぞ。こんな簡素なハードで動くなんて。 その昔数十万円で買った大きなパソコンは何だったのだろうな。 これも時代の流れなんだろう。 まあ、二層基盤にTQFP乗せている時点で、既に遅れているのだろうが。 でもまあ、この辺が分相応かな。 なお、もし追試する奇特な方がおられた場合、上記記載内容は無保証であり、各自の責任においてご利用願います。