ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
11月 27 (火曜日) 2007
22:55
おはよう 素バンク
 
・・・なんかかなり濃厚になってきたぞ・・・

VESA 1.2ではバンク切り替えで色を表現するが、そのバンク切り替えという作業そのものはBIOSコールにて行われるのでプロテクトモードに移行した後はできない。ゆえに色を出すことができない

という疑念・・・・




・・・あっれぇ? ちょっと待てよ?・・・・・

むりやりグラフィックモードを変更して、0xa0000に強制的に
データを書き込んで見たんだけど・・・・
色、出るじゃん!

ヒデェやひでぇや! 助さんも格さんも!
アッシにゃぁもう、なんがなんだか!!!

こうなったらもう、寝てやるぅ!!!
 
30日を過ぎたBlogにはコメントできません。
20:40
リタ〜ン!(チェックチェックチェーク♪)
 
vesaコマンドを少し改良したよ。

これではりぼて上で行われているチェック項目は網羅できたかな。
さっそくGT475でVESAの状態を見てみよう!!!

・・・ orz ・・・

VESA Ver 1.20 VRAM= 15KB
Vender:CHIPS 65520/525/530 Flat Panel VGA
Support SVGA Mode
100 101 102 103 104 105 110 111
1Pix= 0Bits Mem Model is DirectColor.linear FB is NO!


・・・なんつーか・・・・
ことごとくはりぼてにはじかれる要素達・・・

ほんとにこんなの、どうにかなるのか?? 
VGAのコード書いたほうがまだ楽なんてことないのか・・・

リビジョン101



え”っ! うそ・・・・。まさか、バンク切り替え式(ノンリニアフレームバッファ)の場合って、BIOSで切り替えるの??? それじゃ、プロテクトモード上じゃ利用できないの?? いやそんな・・・ まさか!!! 
 
30日を過ぎたBlogにはコメントできません。
11:58
平行進化の奇跡ですね!(いや十分説明になっとります!)
 
各種の穴の修理と平行して、VESAの1.2について調べているのだが、なかなかはかどらないっす・・・(T T)

ウチのノートはVESA1.2だと分かったのはまあいいとして。
VESA1.2でも、インフォメーションを見る限りでは 0x101(640x480x256)や 0x105(1024x768x256)を
サポートしているふうである。
またこのノートでWin95を動かした場合はちゃんと 640x480x256 になる。
(つまり、液晶がこの能力を持っているわけである)

うーーーーん・・・・

はりぼてはなぜVESA1.2を採用していないのか。いろいろ調べると、
Linux等でも同じような感じが見受けられる。いったいなぜ・・・

よーし! アンズよりグミは安いという格言もある。
いっそ、試してみるか!!!

沢山人がいる。その中に1人、侍がおる。どうすれば分かるだろう?
なに簡単だ。聞いてみればいいのだ!
「お前やろ!」 「僕は違います」
「お前やろ!」 「俺は違いぞ」
「お前やろ!」 「私じゃありません」
「お前やろ!」 「拙者は」
「おまえや〜〜〜〜〜〜〜〜〜〜・・・・・」


・・・でも長くなりそうなのでここいらへんに移動・・・
 
30日を過ぎたBlogにはコメントできません。
11:37
12の悪いクセ
 

  1. VESA対応機にて高解像度にならず落ちてしまう
  2. なぜか320x200モード時、タスクバーの文字が書かれない
  3. コマンド実行後、カーソルが点滅しなくなる
  4. 起動直後、他のウィンドゥもアクティブ状態になる
  5. タスクバーにはウィンドゥがかからないようにすべきでは?
  6. タスクバーをクリックすると他の窓が非アクティブになる
  7. dir2コマンドが古い
  8. type3はもういらないのでは?
  9. apiでseekが搭載されていない
  10. memdumpコマンドが絶対番地に対応していない
  11. FDアクセスで、4e等古いAPIが残っている
  12. vesaコマンドが実機ではStackのエラー?を起こす


vesaコマンドの修理完了〜。
原因は二段構えなのだ (^^;

まず最初。vesaコマンドの内部で豪華に char aaa[256]; とかをいっぱいやってたのね。
こんなのが3つも4つもあれば、そりゃあっと言う間にスタックがあふれちゃう。
で、それじゃあってんで、 api_malloc を使ったんだけど、今度は
Makefile内で指定するのを忘れてたのでエラー吐きまくり。
さらに、ある部分で、

char *aaa;
aaa = api_malloc(256);
///// aaa にデータを入れた ///
sprintf(s,"ahahaha! %s",aaa);

なんてふうにして、aaaを直接出力しようとしたんだけど、これが
NG!!

・・・そんなわけでとりあえずは直ったかなぁと・・・

いや〜。勉強になった。ノーミソがくすぐったくてかなわん!

リビジョン100
 
30日を過ぎたBlogにはコメントできません。
(1) 

PopnupBlog V3 Denali created by Bluemoon inc.