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

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

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

プロテクトモード突入

CR0に値を設定してついにプロテクトモードに突入した。OS突入と同時にCSレジスタを切り替えるのだがまだそこにはいってない。DSやESなどのセグメントレジスタはすでに切り替えてるので、あとはCSレジスタのみ。レジスタダンプをしてるところのスクリーンショ…

GDTも読み込めた、あとはCR0を切り替えれば…

GDTも読み込めた、あとはCR0を切り替えればプロテクトモード突入だ。CSレジスタを切り替えて32bit突入も目の前。そしてOSへ〜。一応GUIなOSをエミュレートしてるので、画面の変化まで持っていきたい

プロテクトモードへのカウントダウン

某OSのエミュレートしてたらついにLGDT命令がでてきた。これを処理してCR0を切り替えればプロテクトモード突入。そして32bitの世界へGO。カーネルVM探検隊のときまでにデモができる状況になるといいなぁ

Gridを使ってみる

SwingでいうところのJTableにあたるGridを使ってみることにした。、まだExt GWTに慣れてないので新しくでてくるクラスの名前に戸惑っている感じ。一体どこから実装すればいいのかがまだわかってない。とりあえず少しずつ進めていくために今回はGridを使って…

地味に進む

VESAに対応してるかどうか、あるOSのブートローダに聞かれたのでNO!にして先に進む。今度はキーボードの状態を聞かれたので、何も押されてないことを通知。そしてそれらの情報をメモリに書いてるらしい。もうすぐプロテクトモードに突入すると思われる。これ…

買いたい本

今、書いたい本は2冊ある。現在、PICを使っているのでPIC関係の本だ。それが以下の2冊。USBとネットワーク接続機器の本。PICで今はLEDを光らせてるだけなので、これからいろいろなセンサを試していこうと思っている。ある程度、センサを使ったら次はUSBや…

prefix

いつも通り作業してたところ、0x66というコードがでてきた。命令リファレンスには載ってなかったので、EIPの値を間違えてないか確認したが間違って無さそうだった。とりあえずGoogleで「0x66 機械語」と検索したら、Operand Prefixというのがでてきた。16bit…

バーチャルコンソールにメタルマックスだと?!

これはやるしかないじゃないか。しかし金がない!5月まで待つか。しかし、これはメタルマックス3がでる影響か?この勢いでテッドブロイラーにも再会させて欲しい

無理だった

Twitterでお気に入りに追加されたぶんだけ命令を実装するキャンペーンは見事失敗に終わった。当初の予定では30命令ぐらいを想定していたのだが、最後は85まで伸びたようだ。ムリムリ…。結局45命令実装して、いくつか バグがあったので潰した所、Haribote OS…

死亡フラグ

全てはこれが物語っている→ http://favotter.net/status.php?id=12562641776 …はい、無謀ですね…でもやるだけやります… とりあえず今まで実装した命令を載せておく 04 ib ADD AL, imm8 imm8 を AL に加算する。 05 iw ADD AX, imm16 imm16 を AX に加算する…

状況

あるOSのバイナリ読み込んで、知らない命令が来たら止めて実装→再開→止めて実装→再開...を繰り返して33命令(MOV系多し)実装した。ビット演算にはある程度慣れていたから、苦しくはないが、16進数見てどのビットが立っているか、ちょっと時間がかかるときがあ…

HTML5のCanvasを使って何か作る その3

今回はマウスカーソルがマップの端に行ったときにオートスクロールするようにした。そして全体図をつけてみた。スクリーンショットの右上のものが全体図。ここまでやるとさすがに重い。Firefoxだとスクロールがかなり重くなる。Chromeだとだいぶ軽くなるが、…

研究室内勉強会に向けて前進

今日は研究室内でやる勉強会に向けて前進した。読む本(30日でできる! OS自作入門)をどのように進めるかを数人で相談した。まだメンバーの募集などはやっておらず、今日Skypeの研究室のメンバーが集まってるチャットで告知。そのうち正式な決定をメールを流す…

プログラム課題

就職活動中とある場所でプログラム課題がだされたので、『HTML5を使って何か作る』のやつを提出しようかと思う。期限はないらしいが5月中に提出が望ましいらしい。現時点で、自作OSはただ表示するだけなので動きがなくてつまらないだろうし、x86エミュレー…

HTML5のCanvasを使って何か作る その2

前回はレイヤー一つしか持っていなかったが、今回は上レイヤーと下レイヤーに分けてみた。表示するレイヤーと編集するレイヤーを指定できるようにした。表示については、屋根の部分の背景が透過されて、下レイヤーの地面の部分が表示されている。下レイヤー…

HTML5のCanvasを使って何か作る

HTML5を使って何かを作ろうとしたが、実用性を考えると何もできない俺なので、役に立ちそうもないものでもいいから作ってみることにした。まぁ、すでに過去に何か作っていた気がするが気にしないでおこう。それで作ろうと思っていたものはマップエディタ。別…

四角形を表示

自作OSでグラフィックに挑戦。画面モード切り替えて、リニアフレームバッファの位置などを取得して、その情報を元にメモリへ書きこんだ。四角形しか表示してないが、ただ塗りつぶすだけだとつまらないので、半透明っぽくしてみた。今は文字が表示できないの…

スーパーマリオギャラクシー2の発売は5月27日らしい

前にあった仮称のやつとは別にAmazonにあった。スーパーマリオギャラクシー 2(「はじめてのスーパーマリオギャラクシー 2」同梱)というのがあった。公式ページもできていた。前作がファイアマリオが頼もしく感じたので、今回も活躍の場があるといいな。ファ…

作り直し

レジスタの管理方法で、今まではレジスタごとに変数を用意してたが、今回から配列で管理することにした。レジスタ番号でアクセスする命令が沢山ありそうなので、こういうふうにした。レジスタごとに変数だとレジスタ間転送などで全通りの組み合わせを用意し…

少し分かった

ModR/Mバイトのregister/opecodeの部分は命令によってregisterになったりopecodeになったりする。0x81の場合、opecodeになり、ここが0だとADD、7だとCMPになる。この場合はオペランドがレジスターと即値になっている。演算系命令の場合、レジスタがEAXの場合…

研究室で勉強会を開きたい…と思っている

昨年度は研究室で『カーネル読書会』というのをやっていて、参加者で『詳解Linuxカーネル』を読んでいた。今年度も何かやりたいと思い、何をやるか考え中。研究室の分野的にカーネルとかVMとかデバイスドライバあたりがいいのではないかと考えている。そして…

第4回カーネル/VM探検隊参加登録はじまる

第4回カーネル/VM探検隊の参加登録が始まったので登録してきた。紹介ページと登録ページhttp://atnd.org/events/3984がある。俺も何かLTで話すかもしれない…

レジスタ同士の演算

Intelのマニュアルでわかってなかった部分がわかったので書いておく。それはレジスタ同士の演算である。例えばNASMで ADD AX, BX のような計算である。とあるOSでオペコード0x31がでてきたので、マニュアルを見た。そしたらXORであることがわかった。0x31の…

Color LCDシールドが使えた

スイッチサイエンスで買ったColor LCDシールドの使い方がわからずに困っていたが、今日なんとか動かすことに成功した。必要なのはhttps://www.sparkfun.com/commerce/product_info.php?products_id=9363のページにあるExample Codeのリンク先のファイル。こ…

今日は誕生日だ

年齢が1つ上がった。いつもと変わらない日を過ごすんだろうが、何か気分を変えてもいいかもね。誕生日とは関係ないけど、今年は飛躍の年になるといいなぁ。勉強したいことは沢山ある。中でもIntel VTについて勉強したい。最近は何故かIA-32勉強してたりする…

クラス分けその2

今回は前回の[Java][x86エミュレータ]クラス分けを更に進めて、VMの本体のクラスからifを一部消すことにした。今までは if(code == 0x04){ ... }else if(code == 0x3C){ ... }else if(...){ }... という感じだったが、今回の変更で以下のようになった。Instr…

初めての回路へ

今までキットを組み立てたことはあったが、自分で作るのは今回が初めてだ。しかも、今まではプリント基板だったが、今回はユニバーサル基板だ。半田付けや、回路設計にかなり不安がある。しかし、気づいた。コンデンサが足りない、そして買ったはずのセラロ…

あえてちょっと高めのCPUを見てみる

AmazonでIntel Celeron E3300 2.50GHzを4400円くらいで買った俺だがCore i7やCore i5で人気のやつの値段が気になり調べてみた。あくまでAmazonの値段だが。Core i7では『Intel Boxed Core i7 i7-860 2.80GHz 8M LGA1156』というのが人気らしい。値段は現時点…

4bitカラーを表示できるようになった

前の[x86エミュレータ]BIOSを使って画面を塗りつぶすプログラムをエミュレートしたでは、BIOSの4bitカラーのカラーパレットを知らず特定の1色しかだせなかった。しかし、Twitterで@7shiさんからEnhanced Graphics Adapterのページを教えてもらい、カラーパレ…

とにかく遊ぶ

http://www.saturn.dti.ne.jp/~hsakai/kozos/index.htmlを見ながらH8/3069Fネット対応マイコンLANボードで遊んでいる。自分でOS作ってマイコンで動かせたら面白そうだねと思いながら遊ぶ。LANボードなんだからネットワークに繋ぎたい。そして、こ…