マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

2010-03-01から1ヶ月間の記事一覧

最近買った本

最近買った本といっても一冊しかなかったが書いておく。センサ活用の素という本。2冊あるが、1の方を買った。PICの本だが、PICをあまり知らないのと、他の本を読んでないのもあり、どうなのかはわからないけど、センサ以外にもPICのことが少しだけ書いてあ…

Arduino イーサネットシールドもAmazonで買う時代らしい

Arduinoでネットに繋ぐための拡張モジュール(?)であるイーサネットシールドがAmazonのマーケットプレイスで売られていた。4200円はArduino本体より高く買いにくいが、センサとの組み合わせなどを考えるだけでも楽しい感じはする。Arduinoイーサネット・シー…

BIOSを使って画面を塗りつぶすプログラムをエミュレートした

前回は、一部の命令だけエミュレートし、BIOS使って画面に関する操作をするINT 0x10を無視したので、画面の変化はなかった。しかし、今回、色は固定であるもののドットを表示するという命令をエミュレートしたため、画面に変化を加えることができた。ただし…

俺の買ったCeleron

Intel Celeron E3300 2.50GHzというやつ。デュアルコアで、Windowsから確認すると何故かPentium IIIと表示されている。Intel VT対応でマーケットプレイスで買った。マーケットプレイスの出品者が何故かAmazonで、Amazonで普通に買うよりやっぱり安い。現時点…

何事も一歩から

x86エミュレータを作りたいと前にブログに書いたが、何をすればいいかわからなかった。しかし、とりあえず以前書いたプログラムを実行できればいいなと思い、先頭から8バイトぐらいまで実行できるようにしてみた。とりあえず、512バイト読み込んで、でてきた…

VMXってなんぞや

VMXってなんぞや 最近始めたばかりだがIntel VTの勉強をしている。今まで興味がなかったので全く勉強をしていなかったため苦労している。それでVT-xというのにVMXという動作モードがあるらしい。VMXは特権レベルのring0などとは別にVMX rootとVMX non-rootと…

もっと勉強を

最近、勉強が足りてないんじゃないかと思うことが多かったので勉強時間を増やしたい。とりあえずIntel VTのこと知りたいのでIntelのマニュアルを読む。何故だか英語版の本のやつ読んでるけど…まぁ、英語の勉強にもなっていいのではないだろうか?あとLinuxの…

カレンダー作るぞ!

GWTでカレンダー作ろうと思う。カレンダーと言っても小型のWidgetで日付を選ぶタイプのものではなく、スケジュールを書きこむようなWebアプリケーション。マウスで書きこみたい日付選んでキーボードでスケジュール編集みたいな。でもキーボードだけでも操作…

ブートセクタでアセンブる!

なんとなく突然ブートセクタ内でどこまで、できるかやりたくなってアセンブラの練習も兼ねてやってみることにした。まず最初に作ったのは、こんな模様。 以下ソース、qemuで動けばいいと思って作ったので、実機で動かすにはおまじないが必要なはず…。使った…

簡単なことだった。ただ実体がなかっただけだった

C++を使っていて、リンク時にstaticなメンバ変数が見つからないという問題にあったが、ただ実体を用意していないだけだった。 char* TextVRAM::buff = (char*)0xB8000; こんな感じで実体を用意してあげればいい。馬鹿でした、ごめんなさい

すさまじいミス

プロテクトモード移行のところでミスしてた。下の部分の話だがANDにするはずのところでORにしてる… MOV EAX, CR0 ;CR0を読み込む OR EAX, 0x7fFFffFF OR EAX, 0x00000001 ;プロテクトモード移行用のビットを1にする MOV CR0, EAX 正しくは下のとおりだった…

作り直しでエラー

OSを作り直そうと思ってアセンブラで書いたブートローダからC++で書いたカーネルへ突撃!といきたいところだったが、カーネルのリンク時にエラー。TextVRAM.cpp:4: undefined reference to `TextVRAM::buff'こんなエラーがずらーっと、参照できねーよって怒…

KeyCodeEvent#getNativeKeyCodeの値

KeyCodeEvent#getNativeKeyCodeの値が気になっている。キーボードのDが押されたとき'D'(小文字のときは'd')が返ってくると思ったら違うようだ。数字のときは'0'などが返ってくるようだが…しかたがないのでWindow.alertなどで確認して、その値を打ち込んで比…

コンテキストメニューを表示させない

ページの一部にコンテキストメニューを表示させたくないという状態になったので、GWTで表示させない方法を調べてみた。ContextMenuEventとContextMenuHandlerというものが見つかったがaddDomHandlerとかで登録するんだろうか?addDomHandlerはprotectedなの…

x86エミュレータ作ってみたい

x86エミュレータを作ってみたいと思っている。思っているだけ。何やればいいのかわからんのでインテルのマニュアル読むことにした。きっと挫折するだろう

Formのsubmit禁止

前回リンク禁止をやったが、今回はFormのsubmit禁止をやろうと思ったら、それらしいメソッドをすぐに発見。FormPanel.SubmitEvent#cancel()がそうだった。onSubmitの引数で渡されるFormPanel.SubmitEventでcancelを呼び出せばGETだろうがPOSTだろうが止めら…

リンク無効

GWTでページのリンクを無効にするにはLabelなどのWidjetに置き換えるという手もあるが、ClickHandlerのonClickでClickEventの(DomEventの)preventDefault()を呼び出せばクリックされたときの処理を書きながらリンクを止めることができる。研究で使う予定

文字列の表示を整理

d-kami OS(というかブートローダ)ではアセンブラの部分に関しては全然わかってない状態で作っていた。今もわかってないが、ちょっと整理して新しいブートローダへ。まず文字列表示部分をサブルーチンにしてみた。SIに文字列の先頭アドレスを入れてこいつ呼び…

ついに作り直しが始まった

ずっと作り直すという決意はあったが、やっていなかった。しかし、教授に薦められたKVMによって、やる気がでてきたようだ。家のパソコンのCPUもIntel VT対応のCeleron E3300になりパワーアップして作業再開。まずはBIOSの力を借りて、メッセージ表示とディス…

圧電スピーカ

秋月で100円の圧電スピーカを買ったので早速Arduinoで試してみることに。HIGHとLOWを切り替えることによって音をだすらしい。で、その切り替える速さによって、音が変わるとか。最初は適当に切り替えるタイミングをソースに埋め込んでいたが、3軸加速度セン…

Fedoraで使うために

LinuxでArduino IDEを使おうとしたらerror: avr/io.h: No such file or directoryと怒られたのでhttp://www.arduino.cc/playground/Linux/Fedoraを参考にyum install avr-gcc avr-gcc-c++ avr-binutils avrdude avr-gdb uisp avr-libcを実行。これで怒られな…

バイナリエディタを目指して その5

前回までは表示しかしてなかったので、今回は編集できるようにしてみた。そして、今までスクリーンショットを載せてなかったことに気づいたので、載せておくそれで編集機能を加えるにあたって修正したのはCaretクラスとHexEditorクラス。今の方法だと、キャ…

3軸加速度センサを使ってみた

LEDピカピカだけでは今日は終われなかったので3軸加速度センサを使ってみた。参考にしたのは建築発明工作ゼミ2008。ブレッドボードが動くとLEDが光る。これは面白い。ソースは↓ void setup(){ pinMode(13, OUTPUT); }void loop(){ int x = analogRead(0); if…

念願のArduinoを手に入れたぞ

今日、Arduinoが届いたので、早速LEDさしてピカピカさせた。簡単すぎる…すごい!でもIDEがなんかみためしょぼい。まぁ、簡単に使えるのでよし。さて次は何をしよう

GWTCanvasのキーボードイベント拾いたい

以前、GWTCanvasのマウスイベントを拾うことに成功したが、キーボードイベントは拾えなかった。addDomHandler使えばいいと思ったけど駄目だった。Focusable実装すればいけると思ったのだが、実装の仕方が悪かったのか、イベントを拾えなかった。仕方ないので…

バイナリエディタを目指して その4

今回は前回のやつをちょっと整理する。キャレットのところを除けばほぼパッケージをわけたぐらい。それで、キャレットに関する変更を説明する。まず、描画専用のHighlighterというクラスを作った。実際、これはinterfaceで、これを実装したクラスが描画を行…

最近購入したもの、読んだもの

最近買ったものをまとめてみる。まずJavaの本。これは前から読みたいと思ってたので購入。あまり気にする必要はないと思うが、クラスファイルの形式などが気になったので読みたいと思った。Java仮想マシン仕様 (The Java series)作者: ティムリンドホルム,フ…

バイナリエディタを目指して その3

前回はとりあえず表示は行ったものの、キャレットの位置が変なところにいったり、スクロールバーがなかったりだったが今回追加した。キャレットの位置はキャレット用のクラスを作り、そこで制御している。そのため、1行に表示する文字数を指定する必要があ…

バイナリエディタを目指して その2

前回はデータを格納する部分だけを作ったので、今回は簡単に表示する部分を作成した。ファイルを適当に読み込んで表示している。そしてキーイベントでのカーソルの移動が手抜き。以下ソース。表示用コンポーネントのプログラムとそのテスト用のプログラムを…

バイナリエディタを目指して その1

なんとなくバイナリエディタを作ってみたくなったので、作成中。まずはデータを格納するクラスを作成。set(byte data, int index)でindex番目をdataに書き換えてget(int index)でindex番目を返すみたいなクラスを作った。データを格納する配列型のcontentsは…