ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
11月 25 (日曜日) 2007
20:16
セグメント ペーバーズ ロンリーハート
 
たはははは・・・

そうだよそうだよソースだよ! (GPLかい!)

16ビットモード(リアルモード)上で[aa:bb]という形式で指定された
アドレスは、絶対番地に換算すると aa×16 + bbになるんだよぉ!

・・・ってことは逆に考えれば、0xe00(絶対番地)をリアルモードで
指定したい場合は、ES = 0xe0 DI = 0 と、こうしなきゃダメなんじゃん!!!

とほほほほ・・・・  いまさらこんなのに引っかかるとは・・・

うーん。でも、それでもやっぱり0x9000はダメだなぁ。
ここ、誰が書き換えてるんだろう・・・・


 
30日を過ぎたBlogにはコメントできません。
15:44
隣のインド人・・・なにしてる〜の?
 
あっれえぇぇぇぇ??

おっかしいなぁ。0x9000を読み出してみたけどなんか値が違うなぁ・・・
試しにアセンブラでこんなことしてみたけど

MOV AX,0x9000
MOV ES,AX
MOV DI,0
MOV AX,0x4f00
INT 0x10
;test
MOV BX,'A'
MOV [ES:DI],BX

CMP AX,0x004f
JNE scrn320

やっぱり値が違う・・・0x9000って、なにかで使われてる?? もしかして??

あーー! 違う違う! そうかぁ!!

その後に、他のVESAの情報をゲットするために0x4f01とかをコールしてるんだよ!
で、そいつらもES:DIに書き込むから別の値になっちゃってるのか!??

・・・いや・・・違うなぁ・・・。やっぱりだれかが書き換えているようだ・・・

まいったなぁ。黒猫本読んでみたけど、誰が書き換えてるかわからんなぁ・・・
やむをえん。とりあえずVESAの情報が書き込まれるアドレスを0xe00に移動するか・・・(誰もつかってないよね?ここ。大丈夫かなぁ・・・)

あっれえぇぇぇぇ????
なんか勘違いしてる? 

MOV AX,0xe00
MOV ES,AX
MOV DI,0
MOV AL,'A'
MOV [ES:DI],AL

たとえばこうした後に32bit化したとして、0xe00を読み出すとAが・・・じゃないの??? [ES:DI]という指定って・・・





 
30日を過ぎたBlogにはコメントできません。
10:28
教えて アルムの森の木よ
 
やぁ〜んば らぇあぇあ〜♪ やぁ〜んば らぇあぇあ〜♪

はりぼてでは起動時、VESAをちょこっとだけ検査して切り替えてるよね?
いろいろと調べてみたら、VESAはもっといろいろな情報を返してくるらしいぞ?

そーゆーのを表示してみたいので古いはりぼてを弄ってたんだけど、
大問題。qemuって、BIOSでの文字列表示とかがヤワらしくてまともに
表示してくれないんだよなぁ・・・
(しかもアセンブラでしょ? なんかツライ・・・)

そこでザビたんですよ!

考えてみれば、32bitだわ日本語は表示できるわのザビたんだけど、
それでも起動はMS-DOS並みに早いよね? (OSASKにゃ勝てないけど・・・(^^; )
だったら、コイツの起動時(16bit時)にそういう処理を搭載して、
コマンドかなんかで表示させたってそう大差ないじゃない?

いや大有り。なんたってプログラムが楽じゃんねぇ??(^^

こういう拡張なら、別に無理に後で引っ込ぬく必要もないだろうしね。

つーーーわけで、vesaコマンド(vesaの各種情報を表示する)の
搭載開始〜

ふむふむ・・・
はりぼてではasmhead.nas内で起動時にVESA(VBE)の検査をしてるよね?
ここで、2.0サポートかそうでないかの判断だけしてジャンプしちゃってるけど、
実はこの段階でいろいろな情報がもたらされているらしい。
その情報はES:DIが指し示すアドレスに書き込まれるらしい。
はりぼてでもこれはちゃんと行っているみたい。
ええと・・・ようするに、0x9000番地に情報が書き込まれているんだね?
あれ〜????
メモリマップで見る限り、ここはその後廃墟扱いで使われていないの??
・・・っということは、ここにデータが残っている???
こりゃシメた!!!!
さっそくここいらヘンを読み込むapiかコマンドを乗せてみよう。
・・・おっと! その前に!
VESAからどんな情報がもたらされるのか、ここらあたりにまとめておくか・・・
 
30日を過ぎたBlogにはコメントできません。

Referer  (1)
00:23
ベサメムーチョ
 
・・・ところで、VESA規格って1.1やら1.2やら2.0やら。いろいろあるみたいだよね?

はりぼてはVESA2.0にしか対応していないみたいだけど、なんでだろう???

また、1.2等古い規格って、純粋に上位下位互換なのかな?。それとも単なる名前?
(コロナとコロナマークⅡはなんの関係もないんだぜぃ!)

オイラの現時点での予測。

  • VESA2.0くらいでないと、資料がぜんぜん出てきていない
  • Kタンにとって1.2は縁起が悪い数字だった!(^^;
  • 1.2等でも高解像度は可能だが、アクセス法が極端に煩雑なのではりぼてへの採用を見送った(今回分かったVGAの煩雑さとかね)
  • 実は極端に採用数が少ない、VESAの歴史の中では仇花のような存在だった(VESA界のMeタン!)


ふむ〜・・・・・

時に!。ウチのGT475のビデオチップ。Chips 65520という型らしい。
で、ある資料に、コイツはVESA2.0をサポートしてると書かれていたのだが・・・
これ、まちがいじゃないかなぁ〜。
どうやっても320x200にしかならんのだがなぁ・・・。

まぁいいや。ちょっとVESAについてオベンキョしてみることにしよう。
 
30日を過ぎたBlogにはコメントできません。
(1) 

PopnupBlog V3 Denali created by Bluemoon inc.