::log.1998

[ TOP | Recently ]

Xlib(のみ)での X の resource の拾い方 / [xk]term の underline のゴミ / ruriclock / shape extention / KV-29SF1 のパラメータ調整コマンド / KV-29SF1 / BSD/OS の grep が SEGV / junk の NEWS5000X ゲット / GB 開発用 EPROM カートリッジ作成 / misc / Accelerated X その 2 / Accelerated X その 1 / Accelerated X その 0 / NetBSD で RL5C465 動いた / NetBSD で RL5C465 動かす / NetBSD で RL5C465 動かず / VAIO505 / GBDK-2.0 / GameBoy Developer's Kit (GBDK)

1998-08-20 Xlib(のみ)での X の resource の拾い方


X の resource を読むにはどうしたらいいかわからなかったので明倫館書店に寄る。
Xlib の本を買おうと思ったけど英語のしか無かったので立ち読みだけで済ます。
#や、英語の買ってもよかったんだけど、
#さらっと内容を眺めてたら目的の部分が見つかってしまったので...

XrmDatabase xrmdb;
XrmValue value;
char *strtype;

XrmInitialize();
xrmdb = XrmGetStringDatabase(XResourceManagerString(display));
XrmGetResource(xrmdb,"ruriclock.costume","Ruriclock.Costume",&strtype,&value);

printf("%s\n",value.addr);      /* hit! */

でいいみたい。

1998-08-15 [xk]term の underline のゴミ


気がついたのは一年くらい前だけど、今思い出したので書いておく。

[xk]term上で

#!/usr/local/bin/perl

for (0..10){
	print "\x1b[${_};1H\x1b[4mXXXX\n";
}

for (0..10){
	print "\x1b[${_};1H\x1b[m    \n";
}

とすると、underline のゴミが残る。
(やってることは、underline で文字描いて、同じ長さ分の space を上描きしてるだけ)
rxvt は平気だった。

underline の長さががフォントのサイズを越えている?
screen.c の UNDERLINE のところを

XDrawLine(screen-\>display, TextWindow(screen), 
    gc, x, y+1, x+n*FontWidth(screen) - 1 , y+1);

みたいに -1 かましてやればとりあえず平気。

n*FontWidth(screen) でも問題ないような気がするが、なんで 1dot 残るんだ?
GC の線が太さを持っているから?

1998-07-24 ruriclock


shape window は bitmap(1) で作っておけば XCreatePixmapFromBitmapData のおかげでプラス 3 行で済む...

#include "maskdata.xbm"

shape_mask = XCreatePixmapFromBitmapData( display, window, mask_bits, mask_width, mask_height, BlackPixel(di
XShapeCombineMask( display, window, ShapeBounding, 0, 0, shape_mask, ShapeSet );

思いのほか楽だったので、ナデシコで行こう vol.1 からデータ吸いだした後、
発作的に針をつける...むふー。

誰か lain xdm 作れ。

1998-07-22 shape extention


故あって久々に X11 の program。

shape なんて使ったことねーぞ...とか思って man したら中身が無かった。
しょうがないので 8mm テープの中の X11R6 の xc を展開して
oclock のソース見て 120 ナノ秒ほどで理解。

5 秒でできる shape window の作り方。

#include <X11/extensions/shape.h>

Pixmap shape_mask;
GC shape_gc;

/* depth 1 の pixmap を作る */
shape_mask = XCreatePixmap( display, window, width, height, 1 );
shape_gc = XCreateGC( display, shape_mask, 0, 0 );

/* clear */
XSetForeground( display, shape_gc, 0 );
XFillRectangle( display, shape_mask, shape_gc, 0, 0, width, height );

XSetForeground( display, shape_gc, 1 );
/* マスク形状(見えるほう) を shape_mask に書く */
/* XFillArc( display, shape_mask, shape_gc, 0, 0, width, height, 0, 360*64 ); */

XShapeCombineMask( display, window, ShapeBounding, 0, 0, shape_mask, ShapeSet );

WindowManager に resize させなくするのってどうやるんだっけ...。

1998-05-13 KV-29SF1 のパラメータ調整コマンド


先日買った KV-29SF1 の隠しコマンド発見。
とゆーか、試しに Profeel PRO のコマンドを入れてみたら同じだった。

ということで、以下のコマンドは Profeel PRO シリーズ、WEGA シリーズともきっと共通。

サービスモードへ入る

(電源オンの状態からリモコンで)
電源(OFF)
画面表示
5
音量 +
電源(ON)

の順に押す

サービスモードでの操作

項目選択        1,4
パラメータ変更  3,6
設定の書込      ミュート → 12 の順
データ読込      10 → 12 の順
標準設定に戻す  8 → 12 の順

終了

電源(OFF)

※「標準設定に戻す」は出荷時の設定(買った時の設定)ではないようなので注意。つまり、買った状態に戻せなくなります #初期パラメータを全部メモっとくんだった
#ちなみに変更可能なパラメータは100ヶ以上あります :)

しかたないので一時間くらいかけて匠の技を修得しつつ調整をする。
さすがに平面ブラウン管なだけあって画面隅は調整がきつい。
が、匠の技でがんばる。
ほぼエッジが垂直になり、表示領域も最大になったところで Fix。

最終仕上に、エヴァ第八話「アスカ、来日」6931 フレーム目の、
アスカのパンツがちゃんと画面内に入ることを確認して終了。完璧。

1998-04-27 KV-29SF1


新宿で KV-29SF1 を買う。税込み 99k 也。
配達は木曜。
部屋掃除して置き場所を確保せねば :-)

1998-03-14 BSD/OS の grep が SEGV


grep -e 12345 -e 123456

で落ちる...。BSD/OS 2.1 および 3.0 で確認。

grep -e MULTI -e MOEMOE でも落ちるので、文字列長の問題?
grep -e 5文字 -e 6文字の場合に落ちるようだ。豪謎。

1998-02-24 junk の NEWS5000X ゲット


後輩に教えてもらって、雨が降る中秋葉まで行く。
まだ売っていた。迷わず買う。\\25,000 也。ありえねー。

内蔵ディスプレイボードと HD が欠けてるものの、
CPU は R4400SC 200MHz、メモリ 128M、内蔵 Ether の他に、
スロットにも Ether ボードと FDDI ボードまで付いている。

メモリ + 拡張ボード代と考えても安すぎ。

1998-02-22 GB 開発用 EPROM カートリッジ作成


・ROM をひっぺがす。64 ヶ所ハンダ付け。
・動かない。なぜだ?
・ROM 規格票をパラパラめくる。
・う、もしかして 27C040 じゃなくて 27C4001 じゃないとダメとか言う?
・部屋を捜索... 27C4001 発見。紫外線照射。
・焼く...
・動いた。


参考文献: 神楽坂酔っ払い研究所

1998-02-18 misc


TwoTop 3F にて HT-2005T という型のあやしげな NE2000 コンパチカードを買う。\1,980 也。
Neptune-Evolution で問題なく使用可能なようだ > 関係者

ハイパーヨーヨーのステルスレーダーが \9,000 で売られててプゲる。

ソフマップの中古屋でディスクシステムのディスクがたくさん売ってた。

junk の GB カートリッジ買うの忘れた。

1998-02-05 Accelerated X その 2


FreeBSD の LX4.1 demo 版で、

 Graphics Board: NeoMagic MagicGraph128V, 1MB

にしたらあっさり動いてしまった。
今までの苦労って一体...

VAIO505 に載ってるの 128VZ+ を選んでも、PCG505 (Xaccel が VAIO505 用に項目を作っている) を選んでもダメだったのに。

まぁいいや。上手く動いたので深く考えるのはよして、金入ったらサクっと製品版買ってこよう。しばらくは 10min デモと XF86_VGA16 で我慢。

ちなみに Xaccel.ini は結局以下のようなかんじに。

         Graphics Board: NeoMagic MagicGraph128V, 1MB
                Monitor: SuperVGA 35.5kHz (800x600 @ 56Hz and 1024x768 Interlaced)
                 Colors: 64K
            Resolutions: 800x600
                Desktop: 800x600
                 Visual: TrueColor
        EnergyStar/DPMS: Off
        Keyboard Layout: US American
             Mouse Type: BusMouse
           Mouse Device: /dev/pms0
          Mouse Buttons: Default

1998-01-29 Accelerated X その 1


XAccel4.1(LX) の BSD/OS 版を借りる。動かす。動かない。ktrace。

/dev/vga 開いて

mmap(0,0x60000,PROT_READ|PROT_WRITE,0,fd,0)

に失敗してるぞ。なぜ?

どうやら size が大きすぎるようだ。(0x60000)

pcmmap の offset のチェックんところをコメントアウトしたら mmap できた。

次は /dev/kbd (今は ln -s ttyv0 kbd している) への ioctl に失敗。

これは pccons が BSD/OS と同じ ioctl に答えるようにしてやればいけるかな。めんどくせー。

1998-01-22 Accelerated X その 0


Acc.X 4.1 を NetBSD で動かすための前準備として、
とりあえずデモ版をひろってきて動かしてみる。

が、起動せず。既に期限切れだった。

ktrace すると、gettimeofday .... の前に、なんか / から
readdir して次々に stat してるぞ...? ここまでするかー。

cd /emul/freebsd
touch . .. * */*
touch 'ls /'

とやってしのぐ。:)

で動いたは動いたのだが、なんか変だ。画面表示がぐちゃぐちゃだった
(CRTCの設定をしくった X68 のよう)。
いちおー色数は6万色出てるようなのだが...。けっきょく使えない。

demo 版ならではの問題か、NetBSD の FreeBSD emulation の問題か。
後者だったら困るなぁ...時間かかりそうだ。

1998-01-21 NetBSD で RL5C465 動いた


お、割り込みきてるやんけー。

なんで MAC が FF:FF:FF:FF:FF:FF なんだ? pcmcia_mem_map がちゃんとできてないのか?

うごいた。ふっ。

というわけで安心して Megahertz の pcmcia Ether、XJack を買う。
新宿で \\8,800 也。安いねぇ。

これであとは Accelerated-X を買えば完璧か。
せめてもうちょっと安ければなぁ...。

1998-01-20 NetBSD で RL5C465 動かす


window の map の後に delay をたくさん入れると、とりあえずタプルは読めてるようだ。

1998-01-19 NetBSD で RL5C465 動かず


問題あり。

VAIO505 の RL5C465 (I82365 コンパチ & CardBus 対応コントローラ)だと、PCMCIA の タプルが見えない。うきー。
NetBSD 的には I82365 コンパチに見えてるんだけどなぁ。

pcic への割り込みはちゃんと来てるんだけど、タプル読むと CISTPL_END のみだ。Paldio 321S もEtherLinkIII もどちらもダメ。

どうしたもんかなぁ。とりあえずポートリプリケータ買って slip か ppp で繋げないとinstall もままならない。
環境整えないと kernel いじる気にもならない。

他のマシンで kernel 作ってフロッピーで kernel もってきて、という作業を 20 回くらいやったけど、さすがに萎えた...

1998-01-17 VAIO505


買う。税込み \225,540 也。

Pre-Install な Windows は起動する間もなく NetBSD を install ...
しようと思ったが、マウスの具合とかを試してみたかったので、
ちょっとだけ windows で遊ぶ。

パッド入力は相対座標入力と絶対座標入力が切りかえられるみたい
なんだけど、これってやっぱ 95 でしかできないんだろうな。

プログラマブルキーもきっと(以下略)。

てなわけで windows は 10 分くらいで飽きたので NetBSD を入れる。
boot floppy を作って、起動。何の問題もない。あ、そういえば
ハイバネーション用のパーティションとか作らなきゃいけなかったよなー、
と思い出して floppy で DOS boot して fdisk する。

VAIO505 附属のリカバリーCD-ROM の /etc の下に phdisk.exe なるものがあって、
これでハイバネーション用パーティションを作ることができる。

詳しくは大江さんの VAIO-PCG505 GoGo! なページ参照。

詳細は省略。最終的にこんな具合なれば ok であろう。

pfdisk> 1 165 0 489
pfdisk> l
# Partition table on device: 0
geometry 524 64 63 (cyls heads sectors)
#  ID   First(cyl)  Last(cyl)  Name     # start, length (sectors)
1  165  0           489        unkno    # 63, 1975617
2  0    0           0          empty    # 0, 0
3  0    0           0          empty    # 0, 0
4  160  490         523        unkno    # 1975680, 137088
active: 1

4 が phdisk で作った Hibernation 用の領域。メモリを拡張する
ことを考えて 64M とった。NetBSD は 1 の領域内に入れるべし。

NetBSD-1.3 の installer は変(というか馴れてないのでわからん)ので、
1.2 の installer を使って ufs を作り、base.tar.gz と etc.tar.gz を
もってくる。pcmcia Ether は会社に置きっぱなしだったのでしようがなく
フロッピー(萎へ)でもってくる。

というわけで、bin と lib あたりが揃う。まーここまでくれば
なんとでもなるな。

1998-01-02 GBDK-2.0


なんかハマって動かなかったのだが、lkmain.cの319行目を

if(sfp) fclose(sfp);

するだけで動いた。半日悩んだ。無駄すぎ。

で、やっぱ 2.0 のほうが良さそうだ。Timer割り込みとかも使えるみたいだし...
space.s 相当のものが galaxy.c と、C で書けるようになっている。

とりあえずポチポチつくりながら資料あつめだな。

1998-01-01 GameBoy Developer's Kit (GBDK)


以前より興味のあった GameBoy Developer's Kit を試してみる。

lcc ベースなのね。

GBDK-2.0 の linkGB がうまくいかない(なんか NULL のまま fclose してる?)ので、
GBDK-1.1 を使う。ついでに VirtualGameBoy-1.0 もひろってくる...が 16bit depth な
X server ではうまく動かない...。ので、ソースのある VGB-0.7 を拾ってきて、

vgb-0.7-16depth.diff XCreateImage とイメージ描画部分をちょっと書き変えて....おぉ、うまく表示できた。よしよし。

家帰ったら EP-ROM インターフェイスつくってなんか焼いてみよう。


EOF