ひとまずアセンブラもどき試作完成

なんとかできました。4日くらいかかりました。今回いろいろと初めてだったので、ソースに構造化のかけらもない。。。
また1から書き直すことになりそうですが、とりあえず動くようになったので今は良しとします。


以下ソースコードです。
http://uguu.jp/upload2/src/up0112.cpp


やはり見直してみるとテキストの扱いが荒すぎますね、もっと綺麗な扱い方考えないと。

タイトル更新2

ブログのタイトルを変更しました。更新というのはおかしい気がしますが、前回の記事にあわせてそのまま使いました。


実は前回の記事を書いたとき、もうFPGAとかいじってパソコン的なものを作ることはないかなと思っていたのです。
しかし、運命のめぐりあわせか、またそのようなことをする機会を得たのでこのままでは不適切なんじゃないのかと思いました。
ただ、今となってはパソコン製作がメインというわけではやはりないので、そのまま名前を戻すのもどうかな、と思いこのような名前になりました。
とりあえず当面は続けることを目標にやりたいと思います。

XMLパーサー

某t氏(t氏率たかいな・・・)のCPU向けのアセンブラのようななにかを作ってます。
俺が使うのじゃないので命令をxmlで読み込ませようとしたのですが、なかなかに大変でした。
MSXMLを使おうとしたのですが、MSDNが英語だったので避けてほかのをパーサーを探したのですが、結局それを動かすためにおそらくMSDNを読む以上に英語を読むことになったので無駄な足掻きでしたw
やっぱり最近よく思うのですが、どんなものでも正規のマニュアルを読むのが1番近道だとおもいます。適当なサイトをみてなにかやろうとして上手くいかなくて結局オフィシャルみたら普通に書いてあったとかありますからね。


それで、最終的にexpatというパーサーを使いました。ただこのパーサー、日本語の文字コードに対応していないので、あまりお勧めできません。
オフィシャルサイトは以下からです。
http://expat.sourceforge.net/
今回VC*1の無料版を使いました。ただ、初めてだったのでライブラリのパスとかの追加の仕方がわからず、直接VCのライブラリディレクトリなどにライブラリをコピーして使いました。
使い方は付属のレファレンス*2のOverviewを参考にしました。
それによると、4つの関数を並べるだけで90%の機能がつかえるそうです。
自分は以下のような感じで実装しました。*3

*1:VisualC++

*2:e.g.C:/Program Files (x86)/Expat 2.0.1/Doc/reference.html

*3:ソースは間違っている可能性が大きいです。信用しないでください。保障もしません。

続きを読む

WDのばかやろー!

えーっと、HDD不良の続編。
今朝、危なさを感じてデータの退避を試みようとしたところバッドセクタが300に増えていて、ファイルのリストさえ取得できなくなりました。
いろいろとデータが吹っ飛んだ感じです。。。
初WDだったのにまさかこんな不良にひっかかるとはっ
もうWDは買わない。もちろんたまたまだとおもうけど買わないっ(ぐわぁあああああん)

DE0買いました

1日遅れながら、DE0を買っていじったのでそれについて。


DE0というのはAlteraのFPGA、CycloneIIIを実装したFPGAボードです。メーカーの製品のページは以下です。
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=364
このボードは定価でも1万円程度、学割なら7000円程度と非常に安価でかつSDRAM8Mbyte、フラッシュ4MByte、さらにVGAPS2、SDカード端子と必要なものはがっちりそろっているので初めての方(俺です俺)にもってこいのボードです。
といっても、日本円で支払いたかったので、アカデミーは諦めてデジキーで一般価格で買いました。デジキーの商品のページは以下です。
http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=2621773&k=DE0
送料セットで1万2千円程度でした。今回銀行振り込みで購入したのですが、このサイト、驚いたのが振り込みが商品が到着してからになっています。それまであまり音沙汰が無かったので不安になってましたw
それで、これが実際に届いたものです。

第一印象はその大きさでした。かなり小さいです。マイナーな話で悪いですが、カシオのEX-word*1とほとんど同じサイズです。
動かすのは簡単で、Alteraのサイトから開発ツール(Quartus II)を落としてインストールすると一緒に入るドライバー*2を使います。
届いたらまずハードウェアチェックのために付属のコントロールツール*3から一通りデバイスの動作チェックができるのでやってみるといいかもしれません。


自分はAlteraもVerilogHDLが今回初めてだったのでかなり迷いながら(某t氏にいろいろ教えてもらいつつ)7セグを使ったカウンターを書いてみました。
書いてて困ったのはチャッタリングでした。押したときも離したときも両方ディレイを取れば安定した出力が得られました。
でも慣れてみたら結構わかりやすくていい言語だとおもいます。次はディスプレイに出力する回路を書く予定。
ソースを以下に掲載します。また、ツールの使い方に関してはまた後日時間を見つけてレポートに起こす予定です。

*1:B6よりすこし小さいくらい

*2:e.g. C:\altera\91sp1\quartus\drivers\usb-blaster

*3:DE0_ControlPanel.exe

続きを読む