<先月へ2010年8月来月へ>
一番下へ
2010/8/20 23:28
で、24時間稼働のメビウスノートがさすがに2kのサポート終了後も運用し続ける訳にもいかないので、
レッツノートを買った。CF-R4。無論中古。


とりあえずHDDをSSDとかに換装したいわけだが、こいつに乗っているのはロジック3.3V、モーター5V(逆かも)という、微妙にレアなもの。


まあちょっとググれば、HDDへの供給電圧の変更はジャンパー設定で簡単にできることはわかる。
が、本当にそれでいいのか?
IDEコントローラーに5Vの信号かけていいのか?と。


まあこれに関しては、以前PT1のPCI規格を調べたときに、あまりにも5Vトレラントというものを理解してない人が世の中多すぎる。
よって、これ系の動作報告はあてにならん。

つまり、まあ調べるしか無いですよね、と。

まあさくっと調べてみると、IDEコントローラーはintelの82801FBMが乗ってる。

http://ark.intel.com/Product.aspx?id=27677
こいつですねー。

ここからデータシートも落とせるので、確認してみると、
736ページ(DC特性のあたり)に、
IDE Signalsは5V tolerantですよー、と書いてある。

というわけで大丈夫そうという結論。


ところで、データシート見る限り、SATAとかPCI-Expressとか頑張ったら乗るのか?
BIOS書き換えないととかBGAから信号引き出さないととか現実的にかなり無理くさいけど。

2010/8/7 6:25
やっぱりC言語って難しい。
(裕之はC言語に関しては結構初心者レベルです)


C言語を始めると、まずポインタにつまずくって言うけど、
ポインタの概念はアセンブラとか組めるので全然気にならない。

むしろよくわからないのが「型」の定義。
たとえば、MSDNから丸々引用してくると、
HWND CreateWindowEx(
  DWORD
LPCTSTR
LPCTSTR
DWORD
int
int
int
int
HWND
HMENU
HINSTANCE
LPVOID
dwExStyle,
lpClassName,
lpWindowName,
dwStyle,
x,
y,
nWidth,
nHeight,
hWndParent,
hMenu,
hInstance,
lpParam
//拡張ウィンドウスタイル
//登録されているクラス名
//ウィンドウ名
//ウィンドウスタイル
//ウィンドウの横方向の位置
//ウィンドウの縦方向の位置
//ウィンドウの幅
//ウィンドウの高さ
//親ウィンドウまたはオーナーウィンドウのハンドル
//メニューハンドルまたは子識別子
//アプリケーションインスタンスのハンドル
//ウィンドウ作成データ
);
と、書かれているわけですよ。

で、問題なのはこの「型」。ここにあるだけでも、
DWORD,LPCTSTR,int,HWND,HMENU,HINSTANCE,LPVOID
がある。

アセンブラ的解釈で言えば、これは全部「32bitの値」というだけで、それ以上の型は持たないわけですよ。
まあ、たとえば、「LPCTSTR」は「文字列が収納されている先頭アドレスの32bit値」という意味なんだけども、
なんでここまで型が区別されているのか、というか、なんで中途半端に区別されているか、という。

(32bitWindows以外はとりあえず置いておくとして)
intといえば、「符号付32bit数値」、DWORDといえば「符号無し32bit数値」。
で、たとえば、「ウィンドウの幅」は「int、すなわち、符号付32bit数値」として定義されているのであり、
「ウィンドウ幅を示す32bit数値」という「型」は無いのである。
でも、「HWND」は「ウィンドウハンドルを示す32bit数値」という「型」が定義されているあたりが中途半端。
結局のところ、型がよくわからないが、内部的にはどれも32bit数値、という事で、「文句言われたらキャストする」という、
実に根本を理解していないような気がする書き方をしてる状況。
確かに、その「32bit数値」が何を意味してるか、というのは当然把握はしてるんだけどねえ。


ホームに戻る