アダルト・ヴァイオリン May the force be with you..

2009年2月24日

i8086のコンパイラ

Filed under: Weblog — い~ぐる @ 3:14 PM

デモ用の記述を整理している時に、i8086のコンパイラを探したが、オープンソースのコンパイラでは、i8086向けのものはあまりない。いくつかのサイトを見ていると、旧ボーランドが、古いソフトをパーソナルユース向けに無償でダウンロードできるようにしているらしい。

Turbo C 2.01

がとりあえず目についたが、ふと、サイトを散策すると、

Turbo Pascal 1.0

なんてのも見つかる。おお!懐しい!。

実は、Turbo Pascalのこの初期のころのバージョンは私は大好きだったのだ。
あっという間に完了するコンパイル、エティタと統合された開発環境、値段の安さ等、当時のコンパイラの常識を引っくり返した優れものだった。
これには、いくらか秘密があり、高速コンパイルの一番の理由は、固定番地のライブラリルーチンにあったと思う。(もちろん、Pascalの言語仕様も貢献しているが…)

独立したツールを作ることを考えると、固定されたライブラリ(10kBくらいだったか?)が、当時の小さなフロッピー容量を圧迫したが、それにも代えがたいありがたいツールであった。

おそらく、世界中のPascalユーザ数増加に大きな役割を果したと思う、このソフト、今でも、簡単なプログラム練習用には、充分通用するのでは?

追記:

さて、i8086命令互換CPUのバスタイミングを整理して、BIUをきれいにしたので、シリアルコントローラやRAMを接続して、FPGAに載せてみようと作業をしてみた。

が、手持ちのボードには、若干入らなかった(;-p)。

レジスタファイルや演算回りを整理すれば、まだかなり論理を圧縮できそうだけれど、i8086としては、2000スライスで実現できているのは、小さい方かも?
論理を削る作業は棚上げして、他のボードを調達するか…

Device utilization summary:
---------------------------
Selected Device : 3s200ft256-5
Number of Slices:                     2008  out of   1920   104% (*)
Number of Slice Flip Flops:            614  out of   3840    15%
Number of 4 input LUTs:               3882  out of   3840   101% (*)
Number of IOs:                          42
Number of bonded IOBs:                  37  out of    173    21%
Number of BRAMs:                         8  out of     12    66%
Number of GCLKs:                         1  out of      8    12%
Number of DCMs:                          1  out of      4    25%

ちなみに、HD-LAB社の商用IP8086コアで、2300スライスなので、大きさ的には、こんなものかもしれない。今回、ISEが報告した周波数が非常に低い(10MHz)ので、長いパスを見直して、周波数アップを図った方がよさそうだが、そこまでやるか…?
10MHzでも、充分使い道はあるので、悩み所。

わが家の緑たち

Filed under: 日記 — い~ぐる @ 7:24 AM

ちっとも葉の増えない、色白ポトス君に加えて、昨夜、もう一つ緑が増えた。青々と元気に育ってくれるかな?R0010405.JPG

Powered by WordPress