日記 (2002年如月)

日記の表紙前月(睦月)翌月(弥生)
2002年2月1日(金)
晴れ。

o 電話級。 局免は切らしたまんまだな…。

o C200 の HDD をベタでバックアップすると 2.4GB コースだ…。 要る部分だけにするか…。

2002年2月2日(土)
曇後雨。

o NetBSD/hp700 が動きだしているらしい。

o 10m の RS-232C クロスケーブル(DB9-DB9)を作成。コンソール用(笑)。 1-7, 2-3, 3-2, 4-6&8, 5-5, 6&8-4, 7-1 (9 は NC)

o C180 は 20kg くらいあるらしい。重いっす。C200 は放熱器が大きいからさらに重い?

2002年2月3日(日)
朝早く雨。のち曇。

o とりあえず C200 の HP-UX を設定してマルチユーザになるようにする。 あ、root のパスワードを変えるの忘れた。su できん。仕方ないので sync 連打して電源スイッチをぽちっとな…。

…… shutdown が走るんかい。ぺけろくみたいだ(笑)。電源スイッチ ON 状態でソフトで電源を落とせない所も。

o PA-RISC は整数除算命令を持っていなくて、 引き放し法(non-restoring)での商 1bit 分を計算する命令(ds)を並べるらしい。

2002年2月4日(月)
晴れ。

o H-IIA の打ち上げを見たり。H-IIA は軽いので、費用が安く済むのが売りらしい。

o HP で UFS (FFS & LFS)読み込みルーチンをコンパイルしてみた… 3KB くらいか。 さすが RISC は大きくなるのう。

2002年2月5日(火)
曇後雨。

o PA-RISC で strcmp は 7word (28byte)で書けた。

o C200 に挿さっていた、部品面に A2874-66005、ハンダ面に A2874-26005 と書いてある GSC なボードは、どうやら wide differential SCSI らしい。使えねー(笑)。

A1658-62024 は wide differential SCSI のターミネータ、 A1658-62070 は wide single-ended SCSI のターミネータらしい。型番似すぎ。

o 明日は休暇にしちゃえ。

2002年2月6日(水)
晴れて暖かい。

o 病院に行ってみたり。よう分からん言われた…。

薬が出たのだが、副作用でだるだるー。

o PA-RISC 1.0 は整数乗算命令を持っていなくて、 PA-RISC 1.1 も FPU の固定小数点乗算命令しか無いらしい。 というわけで、generic なコードは乗算のライブラリコールをするので作成。

8命令(32byte)で書けた。nullify は便利だけど訳分からんようになるな…。

2002年2月7日(木)
曇。

o NTT 西の明細が来たので見たらフレッツ・ISDN が 1割引になっていた。 基本料も割引しないかねー。

o memcpy/memmove (11命令)も書いてリンクできるように。まだ 2KB ほど余裕があるな…。

「艦長、動きません」

ダメぢゃん。再起動が遅いよう…。

2002年2月8日(金)
晴時々曇。

o よう分からんが動くようになった。super block が読めた。 スタックが足らなかった?

o HP-UX の ld は _edata_end のシンボルの値を埋めてくれるのだが、 どこからも参照されないと作ってくれないようだ。

2002年2月9日(土)
曇時々晴。

o 本日のハマり1: HP-UX の ld は symbol-$global$(%dp) のようなアドレッシングを絶対アドレスに変換してしまうことがある。 それ、リロケータブルにならないってば…。 $global$ を他のものに置き換えればこの変換ををしなくなる。

本日のハマり2: 2の補数間違えんなよボケ(←…)。 そのせいでスタックの 64byte alignment ができていなかった。

o FFS, LFS が読めるようになった。

TODO: console 入力を実装して起動パーティションを選べるようにするのと、 実行を移すところを書く。

2002年2月10日(日)
曇一時雪。寒い。

o やあ3迎撃に出撃。撃墜するかね(ぉぃ)。

11時過ぎに出撃。電車内でコンソール入力をごりごりアセンブリで書く。

o 1307 出町柳に到着。しばらくしてやあ3発見。初めましてです。 1335 本隊(鬼、すぱ、げんじ、将軍、づ)と合流。叡電で2駅。

ガラムマサラでみみなちゃんと合流。総勢8人。 ちょっと待ってカレー。チキン。ウマー。

北バチで腹ごなし。

1540 天一本店へ。こってりにんにく入り。ウマー。ぽなかいっぱい。

o 京阪特急で大阪北浜へ。そこから地下鉄。私は共立に行くために恵美須町まで。18時。 共立でケーブル&工具類。

o 裏道移動で天狗へ。今回はテーブル席ですか。 20時頃におさかなさんが合流。

	 げんじ  やあ3 FIRST 将軍
	■■■■■■■■■■■■■■■
	私 みみな  ばしし NOZ Pri's

(北←)

2500円オール。2140。

o 22時近くなったので離脱。休日最終ルートで帰還。2326。

2002年2月11日(月)
曇時々雪。

o FDD ケーブルを買ってきたので C200 に……艦長、電源コネクタが合いません(←馬鹿)。 手持ちの変換ケーブルは逆方向のしかない…。

次回の買い物: 5'' 電源の延長コネクタ or 5''→3'' 変換ケーブル

o ハングさせまくったりしてハマりつつ、コンソール入力ができるようになった。 せっかくあるドキュメントは読もう(汗)。

Interact with IPL (Y, N, Q)?> y のときにパーティションを聞くようにしてみた。

2002年2月12日(火)
曇時々晴。

o fdc/fic でキャッシュのフラッシュをして制御を移すコードを追加。 ファイルを読んで実行できることを確認。

2002年2月13日(水)
晴時々曇。

o IPL の起動時は narrow (32bit) mode のようだ。 Linux の palo は明示的に W bit を落としてるな…。 試しに wide mode にしてみるか…動かんな。

o シェンムーを久しぶりに1日分進めてみたり。

2002年2月14日(木)
朝のうち雨。曇後晴。

o 64bit モードの規約は、 sp の alignment が 16byte (32bit モードは 64byte)だったり、 レジスタ渡しの数が 8 (32bit モードは 4) だったり、 スタック渡しのパラメータを詰む順序が 32bit モードと逆順だったり、 argument pointer という、 スタック渡しの引数の先頭を指すのを渡さないといけなかったり、 いろいろと変わっている。

32bit モードの規約で書いたプログラムは、それ自身完結している限り wide mode でもそのまま動くはず……多分(ぉぃ)。 firmware が 64bit なら、そこで変換が必要。

o つうわけで primary boot に wide mode な firmware のためのコードを追加。 テストする環境が無い…。

2002年2月15日(金)
曇時々晴。

o 部屋を掃除ついでに C200 を部屋の向こう隅に追いやる。

結論: やかましいもんはやかましい。

o IPL 起動時は sr レジスタは全部 0 が入っているらしい。 まあ、MMU 効いてないときは関係ないか。

2002年2月16日(土)
晴れ。

o SPARC に持っていくときに disklabel を書き戻すのが面倒なので、 hp700 と sparc の disklabel も強引に共存させてみた。 LIF で使う部分はたまたま SPARC の disklabel 中の未使用部分になるので、checksum を合わせるだけ。

o 12時過ぎに出撃。1340 ぽんばし着。 DISCPIER に寄りつつ南下していつもの場所へ。吉田@HZ さんと合流。

共立で FDD 用ケーブル&電源の変換コネクタを GET。 J&Pテクノランドの無線 LAN で状況確認したり。

吉田@HZ さんのブツを探索して適当に北上。ソフマップ(これは私が DDS2 メディアを買った)、BEST DO、DOSパラ、TWO-TOP、工房、ONE's。

堺筋を渡って TWO-TOP VIP 館内のエセ Necca へ。名前だけだな。 一応ネタのために会員登録して PC を使ってみたり。 鬼いたん合流。たかださん一瞬出現。ばし師合流。

戻ったりしつつ、いつもの二次集合。

o いつもの天狗。座敷。主賓いないけどかんぱーい。げんじさん合流。

1930頃、桜井くん出現。

	 じぇ  吉田@HZ
	■■■■■■■■
	 私    ばし師
	おさかな FIRST
	■■■■■■■■
	 げんじ さくらi

なんとなくサラリーマンの愚痴テーブルだったような気が(笑)。

3500円。

o 2130頃離脱。 いつもの次の快速急行に乗ったのだが、土曜ルートには 6分差で間に合わないらしく (駅員さんに聞いた)、結局もう 1本後の時と同じ休日ルート。2325帰寮。

2002年2月17日(日)
曇後雨。

o 電源変換コネクタも GET したので、C180 に FDD を付けてみる。 HP-UX で fdc と pflop ドライバを追加したカーネルを作成(sam で(←弱))したところ、 /dev/rfloppy/c0t1d0 なんかで見えるようになった。

が、どうやら起動デバイスとしては使えなさそう。使えネー。 この起動 FD 使ってくだちいぐさ、って訳にはいかないのか…。

で、昨日買った電源変換コネクタは HDD とぶつかるので使えないことが分かった… (C180 の HDD は 1'' height なのでなんとか使えるが C200 はダメ)。 違うのを買ってこなきゃ…。

o C180/C200 の変なビデオ出力コネクタは Enhanced Video Connector (EVC) とかいうやつで Digital Visual Interface (DVI) とはまた別の規格らしい。なにゅー。

2002年2月18日(月)
曇時々雨。寒い。

o ニセが急に忙しい。

o HP の IT resource center に登録してみた。更新ファームが入手できるようだ。

o リンク先直 PDF につき注意。

PA-RISC 2.0 Firmware Architecture Reference Specification (の一部) 見ると wide mode の calling convention は 64-Bit Runtime Architecture for PA-RISC 2.0 のを使ってると書いてあるのだが、書いてある内容が完全に違う。おいおい。 前者は明らかな誤記もあるし、こっちが間違いか?

みんな困ってないのかなあ(←そんなに読む人いません)。

o うーむ、C180 は PA-RISC 2.0 なはずなんだがどうやっても wide mode で IODC が呼べない。うーむ、分からん。

2002年2月19日(火)
曇時々晴。時折雪がぱらぱらと…。

o C180, C200, C240, C360, J200, J210, J2240 は PA-RISC 2.0 のくせに PDC/IODC は 32bit only らしい。なにゅー。

hp-ux11 移行確認シート(注: PDF)を眺めると正しくは C160, C180, C180XP, C200, C240, C360, J280, J282, J2240 のような気がするけどあまり根拠なし。

2002年2月20日(水)
晴れ。急に暖かくなった。

お休み。

o 国会中継おもろいな。いいところ(笑)だけど予約があるので病院へ。

o 10時過ぎに病院着。 待って、診察受けて、血抜かれて、X 化光^H^H線を浴びる。

o 結果は 3時間後、ということで、食事して、商店街をまわって100円ショップを漁る。 AM ラジオを買ってみたり。

o 14時過ぎに病院に戻る。しばらく待って説明を聞く。 いろいろとパラメータを説明されるが、所見なしですか。うーむ。

支払いを済ませたら15時過ぎ。バス停にダッシュ。

2002年2月21日(木)
快晴。

o 105円の AM ラジオは窓際でしか使えんな。キャプチャ(違)用にするか。 電解コンデンサの耐圧的に大丈夫そうだったので、 拾った AC アダプタ(4.9V)をそのまま食わせてみたら問題なく鳴った。

配線&ノイズ対策が大変そうだな…。

2002年2月22日(金)
朝のうち雨。夕方には晴れた。

o GNU ld と格闘。

dp (r27)からの差分のアドレシングが、シンボルが .text (code) セグメントだと勝手に絶対値に直されて relocatable なコードでなくなってしまう。 HP-UX の ld のように $global$ を別のシンボルに書換える技は効かない(エラーになる(ELF がしょぼいから(笑)))。 仕方ないのでコードを全て .data セグメントに置いた(笑)。

ある section で使っている .align のうち一番大きい値が、 その section の開始 alignment だけでなくサイズにまで効いてしまう。 .align 2048 とかしていると、次の *.o ファイルとの間に巨大な空きが…。

.text セグメントは空なのだが、なぜか ld の出力の .data セグメントの最初に 4096 バイトの 0 が入り込む。-Ttext 0 -Tdata 0 しても無駄。激謎。 仕方ないので dd で削るようにしたけど、将来変わりそうで嫌だな…。 ちうか padding の計算ミスしてるに 10カノッサ。

結論: GNU binutils 使えねー(ぉぃ)。

o bb,< って書いてアセンブルして objdump で逆アセンブルすると bb,*< になる(汗)。全然違うダロー。困るよー。 32bit コードと 64bit コードを間違えてないか確認してるのに…。

結論: GNU binutils 使えねー(ぉぃ)。

2002年2月23日(土)
晴れ。

o w3m は Shift_JIS で来た cookie を EUC で送り返してしまうようだ。 ヘッダの解析前に内部コードに変換しているかららしい。

つうか、Shift_JIS 生で送ってくるなよー。 w3m-0.2.1 をいじってヘッダの文字コード変換をしないようにして回避。

o ラジオに AC アダプタと出力を配線。音が割れるな…。さすが安物。

o あ、mic を unmute したときも power up しないとだめか。

o ヘッダ部分のデータ構造をアセンブラで作るのに、

というわけで結局 .origin を使うのが一番簡単だったり。

2002年2月24日(日)
晴れ。

o むむ、HP-UX の cc / c89 と gcc とで .leave の場所が違うぞ。 アセンブラや runtime architecture を見ると、当然のように HP-UX のやつが正しい。 うーむ、怪しいなあ。

まあ、C で使っている限りは unwind できなくてもあまり困らないのだが…。

o determination でも消滅とか終了の意味もありますな(笑)。

2002年2月25日(月)
晴れ。

o ぽめれちょー

ちうか、読んだのカー(笑)。やるなあ(おい)。

o HP は VCCI class B だけあって確かに EMI はほとんど無いのだが、 テスト用につないでいる緑電子(笑)の HDD がノイズばりばりだな…。

o ん、ad1848.c を使うデバイス(wss とか)で ADPCM 使えてる? なんか DMA アドレスを間違っているような変な動作が…。

2002年2月26日(火)
曇。

休暇。

o おや、フレッツ・ISDN 切れてた。

Feb 26 03:32:12 fmv pppd[205]: Modem hangup
Feb 26 03:32:12 fmv pppd[205]: Connection terminated.
Feb 26 03:32:12 fmv pppd[205]: Connect time 144415.5 minutes.
Feb 26 03:32:12 fmv pppd[205]: Sent 395586670 bytes, received 1458236708 bytes.
Feb 26 03:32:48 fmv pppd[205]: Serial connection established.

100日か。

o ym いじり。 mic まわりにデバッグ、mixerctl の ++, -- に対応。 イコライザを真中(128)で flat になるように変更。

adpcm は今は使えないのが正しいのかな(ぉぃ)。

テストも面倒だけど、やはり commit メッセージが一番面倒(笑)。

2002年2月27日(水)
曇。夕方から時々雨。

o ym(4) の pr をチェックしていたのだが、再現しないなあ。

o YMF711 (OPL3-SA2) のデータシートを整理(順番がばらばらになっていた)しつつ見たり。 SA2 は partial power-down と 3D enhanced control が無い。あとは SA3 と同じ?

chip version は SA3 が 4 以上 (データシートには 4 と書いてあるが手許のマシンでは 5)なのに対して SA2 は 1。 これで区別すれってことかな。

2002年2月28日(木)
雨。

o 元ネタの人の chip version は 1 か。SA2 だな。にや(←?)。

SA2 も master clock と OPL3 だけは部分的に電源落とせるが、 使うレジスタが違うらしい。 SA2 は hardware volume control で割込みが起きないらしい。

あとイコライザが無い。SA3 との違いは(ym ドライバが使う範囲では)そんなもん?

日記の表紙前月(睦月)翌月(弥生)
ITOH Yasufumi