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

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

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

今日実装した命令 5/29

JBE(76) JS(78) ADD(80 /0) OR(80 /1) ADC(80 /2) SBB(80 /3) AND(80 /4) SUB(80 /5) XOR(80 /6) CMP(80 /7) LOOPNE(E0) LOOPE(E1) LOOP(E2) 進んだ行数 250行ぐらい 現在の行数 4278行 昨日のバグが残っていたがデバッグ用のコードでEIPを進めてしまうこと…

買いたい本

Desireを予約済みでそろそろ手に入るはずなので、Android 2.1の本を買いたい。早く使いたいAndroid2.1プログラミングバイブル作者: 布留川英一出版社/メーカー: ソシム発売日: 2010/05メディア: 単行本購入: 6人 クリック: 163回この商品を含むブログ (26件)…

今日実装した命令 5/28

LEA(8D) RET(C3) 進んだ行数 250行ぐらい 現在の行数 4001行 過去に作ったPUSHとPOPで勘違いからバグを作ってしまったのとLEAが何をしているのかわかっていなかったため、思いのほか苦戦した。しかも、まだバグが残っている。IPLを抜けるのももうすぐなはず…

今日はお休み

今日は体調を崩したため、作業は進んでいない。昼間はずっと寝ていたので夜はそこそこ調子よかったが頭痛が続いていたため、作業はしなかった。昼間寝てしまったせいで、夜眠れそうもないという不健康な状態になっているが、そのうち寝れると思う。明日は自…

今日実装した命令 5/26

またブログを書く前に寝てしまったが、はてなダイアリーの設定でまだ日付が変わって無いので今日だ。 OR(08, 09, 0A, 0B) XOR(30, 31, 32, 33) DEC(48, 49, 4A, 4B, 4C, 4D, 4E, 4F) XCHG(86, 87, 90, 91, 92, 93, 94, 95, 96, 97) INT 0x13 ディスクリード(…

今日実装した命令 5/25

今日の(というか昨日だが)実装した命令を書き忘れたまま寝てしまい、今、たまたま目覚めたので書いておく。MOV系の命令を整理をして200行ぐらい削れた。MOVは命令数が多くてめんどい。またModRMの使い方にも微妙に差があったりするのでさらにめんどい。1つ…

今日実装した命令 5/24

ADD(04) MOV(C7 /0) 進んだ行数 80行ぐらい 現在の行数 3594行 今日は拡張INT13の修正とIN AL, 6の調査にだいぶ時間を費やしてしまった。拡張INT13の存在チェックってCLの0bit目も見てることに気づかなかった。INは全然わからず、番号的にDMA関係だと思われ…

『12ステップで作る組込みOS自作入門』がAmazonにでてた

12ステップで作る組込みOS自作入門作者: 坂井弘亮出版社/メーカー: カットシステム発売日: 2010/05メディア: 単行本購入: 24人 クリック: 252回この商品を含むブログ (37件) を見るこの本で扱っているマイコンボードはH8/3069Fネット対応マイコンLANボード(h…

今日実装した命令 5/23

今日実装した命令 JNE(75) JPO(7B) ADD(81 /0) OR(81 /1) ADC(81 /2) SBB(81 /3) AND(81 /4) SUB(81 /5) XOR(81 /6) CMP(81 /7) 進んだ行数 300行ぐらい 現在の行数 3515行 拡張INT13未対応のつもりだったが、間違えて対応にしてしまっていた。それならそれ…

今日実装した命令 5/22

今日進んだのはPUSHとPOPがほとんど。200行ぐらい削ったがそれは1命令ごとに1クラス用意していたのを、何命令かまとめたクラスを1つ用意することで、ほぼ同じ内容だったいくつかのクラスを消した。具体的には以下のような変更である変更前 instructions[0…

今日実装した命令 5/21

やる気を高めるためには、毎日ブログにどれぐらい進んだかを書くのがいいのでは?と思い、できるだけ書いていこうかと思う。実装した命令と1日の進んだ行数、現在の全体の行数あたりを書いていく。6月末あたりにプログラム課題として、このエミュレータを提…

拡張INT13

FedoraのライブCD版を読み込んでいたところ拡張INT13に遭遇。なんとなく未対応にしてしまったが、結構簡単そうだ。というかCHSよりLBAの方が計算が楽なので(まぁ、ちょっとした差だが…)拡張INT13の存在チェックで存在していることにしておこうか。拡張INT13…

文字表示のエミュレート...あれ?

今日は実は今までやっていなかった文字表示のエミュレートをした。リアルモードでint 0x10が来たときにAHが0x0EのときにALに入ってる文字を表示する。それで実際にやったスクリーンショットを載せる。フォントを設定してないからJavaデフォルトのフォントで…

タッチパネルが…

Arduinoで使うためにタッチパネルを購入したのだが、ある程度触っていたら接続部分が切れてしまった。買い直しか。まぁ、カラーLCDなんかとセットじゃなかったので安かったわけだが、今金がないだけに痛い。こうなったら前に買ったカラーLCDで遊ぶしかない。…

意味のある名前をつける

昨日書いたコードには気になるところがあった。以下がそのコードだ。 public class MoveRM16SReg implements Instruction{ public void execute(VM vm){ int modrm = vm.getCode8(1); int index = VMUtil.getRegOp(modrm); int value = vm.getSegReg(index);…

作り直し途中

x86エミュレータを作り直している途中で、前はどう作ればいいのかわからず、ビット演算とか思いついたまま書いていた。しかし、ビット演算がいろんなところにでてきてしまうので、なんとか整理しようと思い、変更。メソッドの名前がまだ適切な感じではないが…

作り直し

第四回カーネル/VM探検隊が終わったので、エミュレータを作り直すことにした。次はd-kami OSを動かそうかな?他のOSでもいいんだけどページングはやったことないから、どうエミュレートすればいいのかわからないからな〜。とりあえず今はライブラリの整理。…

ウインドウっぽいものを作りたい

せっかくVESA使ってるんだからウインドウを表示できるようにしたい。とりあえず四角形だけでウインドウっぽくしてみる。ある程度進んだら自作エミュレータでこいつを表示できるようにしたい

緊張は続くよどこまでも カーネルVM探検隊

昨日カーネルVM探検隊で発表してきた。LT枠で10分の発表で、タイトルは『x86エミュレータ実装中』で、予定にあった『〜まだできてないよ!〜』はレイアウトの都合上消した。出番はだいぶ後半の方で、それまでの発表を聞いて、内容とネタと共にレベルが高く…

Intelのマニュアルを読む

Intel VTのことを勉強しようと思いマニュアルを読んでいる。まぁ、Javaでx86エミュレータを作るために読んでたりもするが。それで、マニュアル(Intel 64 and IA-32 Architectures Software Developer's Manual)2Bの命令リファレンスの方を見たが説明が短く、…

ものすごく作り直したい

Mod R/MバイトやOperand Prefix、Address Prefixなど全然考慮していない作りだったので、ものすごく作り直したい気分。32bitモードのエミュレートも微妙なソースになってしまったので、ものすごく作り直したい。カーネルVM探検隊が終わったら作り直すとしよ…

32bitモードへ、OSへ

Haribote OSのエミュレートで、今まではブートローダのエミュレートだったが、ついにカーネル本体へ行くことができた。最後の実装はfar jump、CSレジスタを切り替えて32bitコードセグメントへ!実装命令数は100を超え(実行されてない命令もあるが…)、Mod R/M…

買った本

『H8マイコンによるネットワーク・プログラミング』という本を買った。でてくるマイコンボードが『H8/3067スタータキット』と、俺が持ってる『H8/3069Fネット対応マイコンLANボード』と微妙に違うが、イーサーネットコントローラがRTL8019ASという点で共通な…

5月の目標

x86エミュレータで某OS突入、割り込みのエミュレート d-kami OSを進める(GUIやHDD使えたらいいなぁ) H8マイコン用のOSを作る PICで遊ぶ あれ?俺の研究ってなんだっけ?