サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
3: 2008-04-26 (土) 11:00:43 ソース 現: 2024-01-08 (月) 12:58:41 ゲスト ソース
Line 1: Line 1:
-* ぐいぐい01に関するメモ-01+TITLE:x 
 +* ぐいぐい01に関するメモ-01 [#icded939]
-(by [[K]], 2008.04.25) -(by [[K]], 2008.04.25)
-メモのうち重要な部分をそのうちまとめてまともなページを作る -メモのうち重要な部分をそのうちまとめてまともなページを作る
-*** (5) KHBIOSとの関係+*** (5) KHBIOSとの関係 [#mfa77f8c]
-何かにつけて「ぐいぐい01」はKHBIOSの影響で改良に成功とか言っている気がするので、少し詳しく説明しておく。他の人から見たら、「ぐいぐい01」がKHBIOSの影響を受けているのはちっとも自明ではない気がするので。 -何かにつけて「ぐいぐい01」はKHBIOSの影響で改良に成功とか言っている気がするので、少し詳しく説明しておく。他の人から見たら、「ぐいぐい01」がKHBIOSの影響を受けているのはちっとも自明ではない気がするので。
-「ぐいぐい00」では、第一にIA-32にとって最良のAPIとは何かから出発して設計していた。まあこれで本当にIA-32にとって最良の設計に到達できていれば何も問題はなかったのだが、実際はそうではなかった(今になって思えば)。 -「ぐいぐい00」では、第一にIA-32にとって最良のAPIとは何かから出発して設計していた。まあこれで本当にIA-32にとって最良の設計に到達できていれば何も問題はなかったのだが、実際はそうではなかった(今になって思えば)。
-KHBIOSを作るにあたり、KHBIOSはIA-32のみならず、どんなCPUにとっても合理的な設計でありたいと強く思った。これはKHBIOSが一つのディスクでAT/TOWNS/PC98のどれでも起動できるような仕様にしたいと思ったのに関連して、PowerPCのMacやそのほかのアーキテクチャのコンピュータも意識し始めて、それで特定のCPUのみならず、過去現在未来のアーキテクチャまで含めてベストを目指そうと、より深いレベルから設計を考えた。 -KHBIOSを作るにあたり、KHBIOSはIA-32のみならず、どんなCPUにとっても合理的な設計でありたいと強く思った。これはKHBIOSが一つのディスクでAT/TOWNS/PC98のどれでも起動できるような仕様にしたいと思ったのに関連して、PowerPCのMacやそのほかのアーキテクチャのコンピュータも意識し始めて、それで特定のCPUのみならず、過去現在未来のアーキテクチャまで含めてベストを目指そうと、より深いレベルから設計を考えた。
-そうして目が肥えてくると、「ぐいぐい00」を見たときに、なんとまあ今までいい加減なレベルで満足していたんだと思うくらいに問題点が出てきた。それで、KHBIOSの設計を反映させてAPIを作り直したのである。 -そうして目が肥えてくると、「ぐいぐい00」を見たときに、なんとまあ今までいい加減なレベルで満足していたんだと思うくらいに問題点が出てきた。それで、KHBIOSの設計を反映させてAPIを作り直したのである。
-*** (6) APIの基本構造(1)+*** (6) APIの基本構造(1) [#q5a11441]
-(ここの話はアセンブラでギチギチに最適化されたアプリを読み書きするときしか必要ない知識で、introシリーズ感覚でCでプログラムするときはこんなことを全く理解していなくて問題ない) -(ここの話はアセンブラでギチギチに最適化されたアプリを読み書きするときしか必要ない知識で、introシリーズ感覚でCでプログラムするときはこんなことを全く理解していなくて問題ない)
-「ぐいぐい00」では基本のデータ型は32bitの整数であった。これに対し「ぐいぐい01」の基本のデータ型はない。ただよく出てくるデータ型というのはある、それは4bit整数である。もちろんすべての数値を4bitで表せるなんて事はめったにないので、4bitで表せない数値は2倍長の8bitや3倍長の12bit、もちろんそれより長い16、20、24、28・・・といくらでも伸ばせる。多倍長の場合、エンディアンはビッグである。インテルでおなじみのリトルではない。これらは何ヶ月(というか1年以上?)どうするのが一番いいのかを考えた末の[[K]]なりの結論である。 -「ぐいぐい00」では基本のデータ型は32bitの整数であった。これに対し「ぐいぐい01」の基本のデータ型はない。ただよく出てくるデータ型というのはある、それは4bit整数である。もちろんすべての数値を4bitで表せるなんて事はめったにないので、4bitで表せない数値は2倍長の8bitや3倍長の12bit、もちろんそれより長い16、20、24、28・・・といくらでも伸ばせる。多倍長の場合、エンディアンはビッグである。インテルでおなじみのリトルではない。これらは何ヶ月(というか1年以上?)どうするのが一番いいのかを考えた末の[[K]]なりの結論である。
Line 31: Line 32:
-しかし「ぐいぐい01」ではパラメータを可変長にしてあるので、こういう問題は生じない。またもし16bit環境用にAPIを用意することになっても、それはそういう短い形式を多用すればいいだけだ。またたとえ32bitや64bit環境でも必要のないゼロ拡張をしなくて済む(たとえばこのファイルは明らかにファイルサイズが16bit以内で表せると分かっているのに、わざわざ64bitで表現しなくてもいい、グラフィックのボックスのサイズが1024x128なのでこれを超える座標を指定することはありえないのに、わざわざ32bitにしなくても済むということ)。これらはアプリを小さく書けることに貢献している。 -しかし「ぐいぐい01」ではパラメータを可変長にしてあるので、こういう問題は生じない。またもし16bit環境用にAPIを用意することになっても、それはそういう短い形式を多用すればいいだけだ。またたとえ32bitや64bit環境でも必要のないゼロ拡張をしなくて済む(たとえばこのファイルは明らかにファイルサイズが16bit以内で表せると分かっているのに、わざわざ64bitで表現しなくてもいい、グラフィックのボックスのサイズが1024x128なのでこれを超える座標を指定することはありえないのに、わざわざ32bitにしなくても済むということ)。これらはアプリを小さく書けることに貢献している。
-またフォーマット変更ファンクションを最初に一度だけ使って32bitの整数モードにしてしまえば、後は「ぐいぐい00」感覚で使うことも可能である。これによりアプリのサイズで「ぐいぐい00」よりも悪くなるケースはほぼないと思われる。 -またフォーマット変更ファンクションを最初に一度だけ使って32bitの整数モードにしてしまえば、後は「ぐいぐい00」感覚で使うことも可能である。これによりアプリのサイズで「ぐいぐい00」よりも悪くなるケースはほぼないと思われる。
-*** (7) APIの基本構造(2)+*** (7) APIの基本構造(2) [#faeacef4]
-(ここの話はアセンブラでギチギチに最適化されたアプリを読み書きするときしか必要ない知識で、introシリーズ感覚でCでプログラムするときはこんなことを全く理解していなくて問題ない) -(ここの話はアセンブラでギチギチに最適化されたアプリを読み書きするときしか必要ない知識で、introシリーズ感覚でCでプログラムするときはこんなことを全く理解していなくて問題ない)
--「ぐいぐい01」のAPIデータ列の仕様は、「ぐいぐい00」の頃のような単純に数値として意味のあるものと数値のエンコード法を記述する部分との混在になっている。たとえば以下はhellok0.g01内で実際に使われているAPI列である。+-「ぐいぐい01」のAPIデータ列の仕様は、「ぐいぐい00」の頃のような単純に数値として意味のあるものと数値のエンコード法を記述する部分との混在になっている。たとえば以下はhellok1.g01内で実際に使われているAPI列である。
 35 01 24 8D 68 65 6C 6C 6F 2C 20 77 6F 72 6C 64 0A 44 03  35 01 24 8D 68 65 6C 6C 6F 2C 20 77 6F 72 6C 64 0A 44 03
-これを分解しつつマークをつけるとこうなる。 -これを分解しつつマークをつけるとこうなる。
Line 39: Line 40:
--(x)は純粋にエンコード法を記述するためのもの(基本的にeh4) --(x)は純粋にエンコード法を記述するためのもの(基本的にeh4)
--[x]は基本的にはエンコード法の記述だが、データとしても意味のあるもの(基本的にeh4) --[x]は基本的にはエンコード法の記述だが、データとしても意味のあるもの(基本的にeh4)
--必ず最初は(x)で始まる。最初の(3)はデフォルトのエンコード法(ここではeh4)のまま、有効なデータが2個継続するということを表す。この2という数字は、3-1で求めた。+-必ず最初は(x)で始まる。最初の(3)はデフォルトのエンコード法(ここではgh4)のまま、有効なデータが2個継続するということを表す。この2という数字は、3-1で求めた。
-そして、5と0という数値が来る。これは純粋なAPIファンクションのデータで、詳細は「(8) APIの基本構造(3)」で説明する。 -そして、5と0という数値が来る。これは純粋なAPIファンクションのデータで、詳細は「(8) APIの基本構造(3)」で説明する。
-そして5と0を読み終わったことで、先の指定による「2個」が切れたので、再び(x)が来ることが予想される。ということで1つeh4でデコードすると、(1)だった。1-1=0なので0個のデータが継続するといいたいところだが、0個というのは意味不明であって、ここではエンコード法の変更を意味している。 -そして5と0を読み終わったことで、先の指定による「2個」が切れたので、再び(x)が来ることが予想される。ということで1つeh4でデコードすると、(1)だった。1-1=0なので0個のデータが継続するといいたいところだが、0個というのは意味不明であって、ここではエンコード法の変更を意味している。
--ちなみに(0)を指定した場合は、0-1=-1で-1個のデータが継続するというさらに不可解なことになるが、これは単なるNOPである。 --ちなみに(0)を指定した場合は、0-1=-1で-1個のデータが継続するというさらに不可解なことになるが、これは単なるNOPである。
-次の(2 4)は、2が「一時的なエンコード法の変更で、以降は符号なしで、かつ後続する継続データ数そのものもデータとして扱う」を意味し、その後ろの4が、2^(4-1)=8で、符号なし8bitエンコードモードであることを表している。 -次の(2 4)は、2が「一時的なエンコード法の変更で、以降は符号なしで、かつ後続する継続データ数そのものもデータとして扱う」を意味し、その後ろの4が、2^(4-1)=8で、符号なし8bitエンコードモードであることを表している。
---一時的というのは、この符号なし8bitが終わったら、またもとのeh4に戻るという意味で、これを永続的にしていると、以後は符号なし8bitがデフォルトになり継続する。+--一時的というのは、この符号なし8bitが終わったら、またもとのgh4に戻るという意味で、これを永続的にしていると、以後は符号なし8bitがデフォルトになり継続する。
--2のベキではない長さのデータ長を指定する方法はまた別の機会に。 --2のベキではない長さのデータ長を指定する方法はまた別の機会に。
--2^(0-1)のときはeh4を意味する。 --2^(0-1)のときはeh4を意味する。
--次の8Dはeh4で0xd=13を意味するが、この13はAPIのデータでもあるし、符号なし8bitのエンコードが続く長さでもある。+-次の8Dはgh4で0xd=13を意味するが、この13はAPIのデータでもあるし、符号なし8bitのエンコードが続く長さでもある。
-(4)は4-1=3で3個のデータが継続するという意味になる。 -(4)は4-1=3で3個のデータが継続するという意味になる。
---- ----
Line 59: Line 60:
-これはこうなる。 -これはこうなる。
 (5) 5 0 1 8A (4) 4 0 3  (5) 5 0 1 8A (4) 4 0 3
-*** (8) APIの基本構造(3)+*** (8) APIの基本構造(3) [#y0a97769]
-(ここの話はアセンブラでギチギチに最適化されたアプリを読み書きするときしか必要ない知識で、introシリーズ感覚でCでプログラムするときはこんなことを全く理解していなくて問題ない) -(ここの話はアセンブラでギチギチに最適化されたアプリを読み書きするときしか必要ない知識で、introシリーズ感覚でCでプログラムするときはこんなことを全く理解していなくて問題ない)
-以後はフォーマット指定はすべて無視して読むこと。 -以後はフォーマット指定はすべて無視して読むこと。
Line 73: Line 74:
-(つづく) -(つづく)
-* こめんと欄 +* こめんと欄 [#f9b90650] 
-#comment+- メモ: (7)で初出のchars0.g01は[OSASK 00102]にある。 -- [[K]] &new{2008-04-28 (月) 08:32:54}; 
 +//- Luv9jb  <a href="http://mybsrioviyua.com/">mybsrioviyua</a>, [url=http://jgflwxreguoq.com/]jgflwxreguoq[/url], [link=http://fsuqludylhlh.com/]fsuqludylhlh[/link], http://cxprpeagpdxf.com/ -- ''yyhndmgwiwn'' &new{2012-10-17 (水) 02:29:50}; 
 +//- grjdlmhc, http://teesauto.com viagra precio oficial,  qbtngvqr, http://expert-travel.org viagra,  evtgijmp, http://astralrentacar.com viagra,  spswsddq, http://zerodelta.org cialis,  yaozavir, -- ''viagra original'' &new{2012-10-23 (火) 19:59:58}; 
 +//- aqgcwnfv, http://tonnompartout.com viagra,  oiljhtmq, http://charlotte-parker.com viagra generique,  owbwwyif, http://shop4harry.com achat viagra en france,  mqhovjkt, http://zerodelta.org cialis Generieke,  ynqlfdkq, -- ''come acquistare viagra'' &new{2012-10-24 (水) 00:27:18}; 
 +//- zuxwersr, http://impacthostingsolutions.com viagra in italia,  oxmoeszz, http://tonnompartout.com viagra pharmacie en ligne,  tbqjiruc, http://astralrentacar.com Viagra prijzen,  zuodcoqm, -- ''comprar viagra portugal'' &new{2012-10-24 (水) 04:57:10}; 
 +//- lsbteyou, http://shop4harry.com viagra homme,  flvjkfty, http://andre-lavoie.com acquistare cialis,  bhrktupo, http://thefrenchgolfexperience.com online cialis,  xooryisy, -- ''viagra bestellen'' &new{2012-10-24 (水) 09:18:20}; 
 +//- fathlggd, http://abingenieriaygestion.com cialis,  jiftvppz, http://canamrally.com acheter du viagra sur internet,  gxztzayl, http://alfonsoaguirre.com viagra en espana,  xdjhgswn, http://nigeljames.com cialis generique sildenafil,  creoilbn, -- ''cialis générique'' &new{2012-10-30 (火) 23:39:35}; 
 +//- sbwgcyhk, http://surfatjob.com prix viagra france,  auxzxurl, http://canamrally.com viagra commander,  kjoltmmk, http://abingenieriaygestion.com cialis farmacia,  cukwochb, http://nigeljames.com cialis en ligne,  wjekdukg, -- ''cialis sur internet'' &new{2012-10-31 (水) 05:31:03}; 
 +//- ssazqafe, http://canamrally.com viagra pharmacie,  ihcumgsm, http://abingenieriaygestion.com comprar cialis españa,  oywwvuuw, http://nigeljames.com cialis moins cher,  xufzruxv, -- ''viagra generique france'' &new{2012-10-31 (水) 10:39:06}; 
 +//- virljoyb, http://surfatjob.com générique viagra,  gedwrngp, http://abingenieriaygestion.com genericos cialis,  lugruzgn, http://qualitykitchensdirect.net pilule cialis,  nevvbrmf, -- ''vente viagra'' &new{2012-11-15 (木) 22:54:52}; 
 +//- lscgciqb, http://rome-limousine-airport.com viagra,  gakrhero, http://gennaroborriello.com cialis 20 mg,  fflzjbfs, http://adscrunch.com viagra precio oficial,  nndmjuke, http://arminsheibani.com cialis costi,  uvgaczbv, -- ''comprare il cialis'' &new{2012-11-16 (金) 04:13:03}; 
 +//- qwcjgdac, http://rome-limousine-airport.com viagra quanto costa,  mgnqwcve, http://gennaroborriello.com generico del cialis,  vduuhaam, http://saesrl.com acquisto viagra,  mekyktox, -- ''precios cialis'' &new{2012-11-16 (金) 09:25:03}; 
 +//- gcaveofa, http://australianinnovation.com viagra online pharmacy,  xswvquoz, http://madridistasdelasafor.com cialis barato,  wctsynii, http://saesrl.com viagra quanto costa,  ebkrlanz, -- ''generic viagra softtabs'' &new{2012-11-16 (金) 14:40:35}; 
 +//- ivkjqdoy, http://findmeacar.org farmacia online,  jxpyzqay, http://adscrunch.com viagra en españa,  gltjfcrq, http://arminsheibani.com cialis,  lydmzple, -- ''acquistare cialis'' &new{2012-11-29 (木) 21:59:41}; 
 +//- zMWiVolG -- ''dgrzafs'' &new{2012-12-01 (土) 22:56:35}; 
 + 
 +//#comment

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01
  • GUIGUI01/​memo01
2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。