ザビタン開発日記
2009
| 01
11月 28 (水曜日) 2007 | ||
22:38
|
さらば?どうせすぐ新たに旅立つクセに
|
|
VESA1.2対応、あきらめますた!!!
決定打なのが、OSASKやMonaでもこれに対応するために仮想86モードを導入していることが解ったから。 Kタンやひげぽんさんがこの手法を使っているのだから、たぶんオイラが妄想している 「なんとかプロテクトモードからバンクを切り替える」 のが無理なのだろうという結論に達しました・・・ orz ・・・ この段階で、オイラ程度のスキルで仮想86モードにまで手を出すのは単に無謀だろうと。 ただでさえあちこち穴だらけなんですからねぇ・・・。もちろん、 そうは言っても!!! なので、いつかもう少し勉強して仮想86モードが十分に扱えるようになったらその暁には・・・とは思っております。 いや〜。なにかと勉強になったです〜。 |
||
19:57
|
ハーデス編最後までやれよ!
|
|
・・・妙なことに気が付いた。
昨日の写真をみてほしい。画面の途中までしか色が出てないでしょ? (横方向はワザと。じゃなくて縦方向。) オイラてっきり、実験で0xa0000からすこししか書き込んでいないのでこうだと思っていたんだけど・・・ その後、いくら書き込むアドレスを増やしても状況が変わらない。つまり、画面全体を真っ白にとかができない。 もしやと思い、ちょっと計算してみた。この画面ではどうやら1ドット=1バイトらしいので 640 × 480 × 1バイト = 307,200バイト。 キロバイトに換算すると300KB。 ・・・300KB!?? VRAMは0xa0000〜0xaffffまでの64KBしかない! 画面全体の1/5くらいしか容量がないじゃん!!! (今画面を大雑把に定規で測ってみたら、たしかに1/5くらいで描画が止まっている!??) うむむむ!??? もしかして、この画面モードの場合、残りの部分を担当するVRAMがどこか別の場所に用意されている・・・のかな??? VESAコマンドを改良して、WindowAだとかそういうのの値をちょっと調べてみよう! ・・・うーむ。違うみたい・・・ WindowA、WindowBどちらも0となってしまう・・・ ・・・やはりダメなのかなぁ・・・ ここからは単なる予想だけど、多分、バンク切り替えを行うともっと下のほうを描画できるんだろうなぁ・・・ でも、バンクを切り替えるためにはBIOSをコールしないといけない。 くっそぉぉぉ・・・・ ここまでがんばったけど、ここらあたりが限界なのかなぁ・・・ |
||
11月 27 (火曜日) 2007 | ||
22:55
|
おはよう 素バンク
|
|
20:40
|
リタ〜ン!(チェックチェックチェーク♪)
|
|
vesaコマンドを少し改良したよ。
これではりぼて上で行われているチェック項目は網羅できたかな。 さっそくGT475でVESAの状態を見てみよう!!! ・・・ orz ・・・
・・・なんつーか・・・・ ことごとくはりぼてにはじかれる要素達・・・ ほんとにこんなの、どうにかなるのか?? VGAのコード書いたほうがまだ楽なんてことないのか・・・ リビジョン101 え”っ! うそ・・・・。まさか、バンク切り替え式(ノンリニアフレームバッファ)の場合って、BIOSで切り替えるの??? それじゃ、プロテクトモード上じゃ利用できないの?? いやそんな・・・ まさか!!! |
||
11:58
|
平行進化の奇跡ですね!(いや十分説明になっとります!)
|
|
各種の穴の修理と平行して、VESAの1.2について調べているのだが、なかなかはかどらないっす・・・(T T)
ウチのノートはVESA1.2だと分かったのはまあいいとして。 VESA1.2でも、インフォメーションを見る限りでは 0x101(640x480x256)や 0x105(1024x768x256)を サポートしているふうである。 またこのノートでWin95を動かした場合はちゃんと 640x480x256 になる。 (つまり、液晶がこの能力を持っているわけである) うーーーーん・・・・ はりぼてはなぜVESA1.2を採用していないのか。いろいろ調べると、 Linux等でも同じような感じが見受けられる。いったいなぜ・・・ よーし! アンズよりグミは安いという格言もある。 いっそ、試してみるか!!! 沢山人がいる。その中に1人、侍がおる。どうすれば分かるだろう? なに簡単だ。聞いてみればいいのだ! 「お前やろ!」 「僕は違います」 「お前やろ!」 「俺は違いぞ」 「お前やろ!」 「私じゃありません」 「お前やろ!」 「拙者は」 「おまえや〜〜〜〜〜〜〜〜〜〜・・・・・」 ・・・でも長くなりそうなのでここいらへんに移動・・・ |
||
11:37
|
12の悪いクセ
|
|
vesaコマンドの修理完了〜。 原因は二段構えなのだ (^^; まず最初。vesaコマンドの内部で豪華に char aaa[256]; とかをいっぱいやってたのね。 こんなのが3つも4つもあれば、そりゃあっと言う間にスタックがあふれちゃう。 で、それじゃあってんで、 api_malloc を使ったんだけど、今度は Makefile内で指定するのを忘れてたのでエラー吐きまくり。 さらに、ある部分で、
なんてふうにして、aaaを直接出力しようとしたんだけど、これが NG!! ・・・そんなわけでとりあえずは直ったかなぁと・・・ いや〜。勉強になった。ノーミソがくすぐったくてかなわん! リビジョン100
|
||
11月 26 (月曜日) 2007 | ||
14:41
|
ムーミン谷は穴だらけ
|
|
・・・たははは・・・
いろいろやり過ぎたかなぁ。なんかあっちこっちで穴だらけですよ。 えーーっと。まず。
・・・こんなところかなぁ。 えーっと。まずは「1」ね。解決。リビジョン99 くっそぉ・・・わっからねぇなぁ・・・。 「2」なんだけど、解像度を上げるとなにもなかったように表示する。 しかし、320x200だとダメだなぁ・・・。文字そのものは表示しようとしている みたいなんだけど、前景色が白になっちゃうようだ。しかも、これはタスクバーのシート内で一度でもboxfill8を使うと起こる。 (boxfill8を全部コメントアウトするとちゃんと文字が出る) ・・・なんでじゃ〜??? 他のウィンドゥでも同じ現象がおこるなぁ・・・ |
||
13:35
|
おっしゃ!こんなもんかな・・・
|
|
00:34
|
決戦! Xポイント!
|
|
無事、VESAからにインフォメーションを受け取れるようになったんだけど、ナゾがナゾを呼んでいる!
(おーい 早く来いよ〜 ) ここ見てもらえるとわかるんだけど、 受け取ったインフォメーションの頭から6バイト目。 OEMベンダー名へのポインタっての。 ・・・これ、なにをどうすればいいんだろう??? qemuではこれは、
こうなってる。で、さらにOS-Wikiのページだと、 「seg:ofs16」と書かれている・・・ 0xc000 * 16 + 0078など等、いろいろな組み合わせでやってみたんだけど、 これらの数字から導き出せるアドレス(ポインタ先?)には0だのなんだの、 とても文字とは思えないデータしか入っていないんだよなぁ・・・ いや〜。こまった・・・ いったいどう使うんだろう? この数字??? |
||
11月 25 (日曜日) 2007 | ||
20:16
|
セグメント ペーバーズ ロンリーハート
|
|
たはははは・・・
そうだよそうだよソースだよ! (GPLかい!) 16ビットモード(リアルモード)上で[aa:bb]という形式で指定された アドレスは、絶対番地に換算すると aa×16 + bbになるんだよぉ! ・・・ってことは逆に考えれば、0xe00(絶対番地)をリアルモードで 指定したい場合は、ES = 0xe0 DI = 0 と、こうしなきゃダメなんじゃん!!! とほほほほ・・・・ いまさらこんなのに引っかかるとは・・・ うーん。でも、それでもやっぱり0x9000はダメだなぁ。 ここ、誰が書き換えてるんだろう・・・・ |
||
1 2 3 (4) 5 6 7 8 9 10 11 12 13 »  |
PopnupBlog V3 Denali created by Bluemoon inc. |