Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: "kanzaki" Newsgroups: playstation.ny.program.beginner Subject: =?ISO-2022-JP?B?UmU6IBskQiVhJWIlajZ1NFYbKEo=?= Date: 10 Sep 1997 09:06:39 GMT Organization: PlayStation Net Yarouze Lines: 106 Message-ID: <01bcbdc8$c540d300$c60d84d2@NIGHTMEA> References: <01bcbc85$3a0af480$d10d84d2@NIGHTMEA> <01bcbd2f$f8835380$fe0d84d2@NIGHTMEA> <5v43t2$m70@news1.scei.co.jp> NNTP-Posting-Host: 210.132.13.198 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 8bit X-Newsreader: Microsoft Internet News 4.70.1161 こんにちは、kanzakiです。 細かく有り難うございます。 > 過去記事いわく > > GPU パケット等ではアドレスの上位8ビットを0x80と決め付・・ > > ポリゴン等が00090000〜001fff00に移したとたん全く表示され > > なくなりました。 > > らしいです。注意しましょう。 こんなこともあるんですか。何でなんでしょう(^^;; これは、経験してないと見つからないですよね、こういうこと。 注意します。 > 4 byte(= 32 bit)、と思い込んで使ってます。 > 1 byte では 00 から FF まで、というか 8 bit 格納できます。 これが訂正にあったやつですね。4 byteではなく1 byte 格納できる ということですよね。 理解できました。 > ゴミ追加すると 過去に話があったように リトルエンディアン > ですので 1 byte 毎に順序が変わり、例えば > //_______________________________ temp.c > #include > main(){ u_long *PTR = (u_long *)0x00150000; > *PTR = 0x410070FF; /* メモリに書き込み */ > return 0; (中略) > とすると、0x00150000 の内容が temp.tmp に入ります。 > BZエディタ等で temp.tmp 見た時に FF 70 00 41 となってる。 > ( dsave は黄本 P193 、BZ エディタ は今もあるなら > http://www.vector.co.jp/vpack/browse/software/sn034987.html) > # 普通は上のようなことしちゃ駄目です。malloc 等しましょう。 > # だって 0x00150000 が何かにつかわれてたら、ハングする可能性も > 参考にさせていただきます。ちゃんとmallocつかって(^^;;; BZエディタは使ったことないんですが、使いやすいんですか? 私はC++のエディタを引用して使ってます。 色々なサーチの機能があって使いやすいです。 関数の定義したときも色も変わりますし。 思い込みだったらすいません。一応確認しにいってみます。 BZエディタ。 > 無能な僕には質問の意図するところがわかりませんでした。 (x_x)_ す、すいません。説明が悪かったです。 過去にあったやつで、baltex.h 解説にあったことで、 ボールパターンについてちょっと説明がありましたよね。 これなんですけど、サンプルのヘッダファイルの解説の 図が難しかったので、、、。でもこれは、普通は作るのが 大変なのでしないのようなことがあったので。 抽象的な聞き方をしてしまい、混乱されたと思います(^^;; > 僕の妄想によればカーネルは OS のなかで中心となる存在です。 > おそらく、他の GPU とかを制御するやつで、BIOS を内装しメモリ > 内どこでもアクセスできて、ユーザーモードのプログラムがハング > したりするとカーネルモードのプログラムに後始末させる。 > とかいう便利なものかなぁ?(完全に妄想) そういう役割なんですか。これによって、ずいぶん問題が起こったので 何なんだこいつはって思っていたところです。 > スタックはデータを一時的にほうり込む所です。 > 平積みの本のように、一番最初においたものが一番したになり > とりだせるのは通常、一番上のデータだけです。 > > 僕の知る場合、あるポインタ(通常レジスタ使用 Stack Pointer)に > 自由に使えるメモリ領域の最後尾のアドレスをセットしておき、 > データを入れたら その分だけポインタを減らす。とかやってました。 > データ を出したらポインタを増やします。データサイズに合わせて > ポインタはたくさん増えたり減ったりします。この結果Stack Pointer > は平積みのデータの最上部のアドレスを示します。 はい。汎用レジスタの第29のやつですね。SPって、Stack Pointer の略だったんですね。関係ありませんが(^^; > あるCコンパイラでは関数呼び出しのときにスタックを使います。 > printf("NetYarouze %d",a); とかやると、"NetYarouze" の先頭アド > レスと、a のアドレスが、スタックに一時保存されたかな・・。 知らず知らずスタックと関わりがあったのですか。 なにぶん初心者(^^;;なもので、、、。 > また 黄本 P13 によると、自動変数などの一時的な作業領域は > スタック中に確保されるように思えます。 > > > > 最後に説明有り難うございました。 > > 駄文ですみません。今度、僕が困ってたら助けてくださいね。(^^; いえいえ。大変参考になりました。PSのマニュアルよりぜんぜん(^^;; YAROUZEの人たちが作ったほうが、良いマニュアルができそうな気がします(笑) 有り難うございました。どんどん勉強して少しでもお役に立てるようがんばります 。 及ばずながら、援助させてください(^^;;; kanzaki