IT Junk Box
- February, 2009 -
2009.02.01(日)
■ JWasm を使ってみた [PC]
 Japheth さんの JWasm を使ってみました.MASM 6 との互換性は高くなってるよう
	です。で、ちとまずそうなてんですが、
 1. マクロファイルの終わりに Ctrl-Z のコードがあるとエラーとなる
	 普通の .asm ファイルだと問題が無いんですが、include で読み込んだファイルの
	場合エラーになります。DOS のエディタだと Ctrl-Z を付加するものも多かったよ
	うな。こんな感じのエラーになって止まります。
      macro.inc(55): Error! E235: Syntax error: ^Z 2. マクロの引数の解釈が、MASM と JWasm で異なる
	 ここに書こうとしたんですが、テキストデリミタがタグとして解釈されて正常に表示
	  できなかったのでテキストファイルにしました。
	■ DOSEMU を shell スクリプトで [DOS] [Linux]
DOSEMU: README 1.4: 12. Running a DOS application directly from Unix shell
 最近、使ったことのない DOSEMU ですが、説明書を見ると shell スクリプトで使える
	みたいっす。これは便利かも。
2009.02.04(水)
■ JWasm 1.94c を FreeBSD で [FreeBSD]
 Japheth さんの JWasm を FreeBSD でも動くようにしてみました。ソースをこちらに
	置いておきます。
追加した FreeBSD.mak を使って gcc でコンパイルできます。こんな感じです。
 > make -f FreeBSD.makライセンスは、Sybase Open Watcom Public License 1.0 です。(原文)
	■ KolibriOS 0.7.5.0 公開 [PC]
 32-bit の MenuetOS をベースにした KolibriOS 0.7.5.0 が、公開されています。
	早速 qemu で起動して試しにゲームを動かしてみましたが、エミュレータだと辛い
	ような。でも、ホビー OS としては楽しめそうな感じです。
2009.02.06(金)
■ ReactOS 0.3.8 公開 [PC] [Windwos]
 早速、Live CD 版を qemu で動かしてみました。で、マインスイ-パーとかソリティア
	を動かしてみましたが、随分とスムーズになってきたような感じがします。
	■ Protothreads が人気らしい!? [Unix]
Contiki 発の Protothreads が、Unix 系でも動くようになったみたいっす。
2009.02.07(土)
■ JWasm が FreeBSD 対応に [FreeBSD]
 JWasm を FreeBSD でも動くようにしてみました。と Japheth さんに連絡したら、
	コードを取り込んでくれましたので、次のバージョンから正式に FreeBSD 対応になり
	ます。
[02月12日追記]
	  Japheth さんに連絡した頃、偶然にも Cygwin 版の要望があったみたいです。
2009.02.10(火)
■ Mac 互換機の販売!? [Mac]
PearC で Mac の互換機を販売するとか!? どうなることやら!!
	■ dmake が消されてる [PC]
 なぜか dmake が消されてるなぁ。まだ、他のファイルが残ってるから引っ越した
	わけじゃないようですが。。。
2009.02.17(火)
■ FreeDOS の新しいディストリビューションだとか [DOS]
FreeDOS (version Tarnyko Rasty) : スクリ−ンショット
 Live CD でネットワークソフトが付いてて、NTFS と Ext3FS が読み書きできて
	HX DOS Extender で Windows のアプリもある程度使えるようです。
個人的には、古い ThinkPad が壊れたので、これからネイティブな DOS/V を使う機会
	が減っていきそうなんですが、Live CD なのでたまに使ってみるのも面白そうっす。
	そんなわけで 2.88MB の FD も使えなくなりました。残念.
2009.02.19(木)
■ xpdf のフォント設定 [PDF] [FreeBSD]
 フォントが指定されてる日本語の PDF ファイルを見るのに wine で Adobe Reader
	を使っていましたが、やっぱり起動が遅いので xpdf を使いたくなり試してみると、こ
	んなエラーが出ました。
Error: Couldn't find '90msp-RKSJ-H' CMap file for 'Adobe-Japan1' collection
Error: Unknown CMap '90msp-RKSJ-H' for character collection 'Adobe-Japan1'
Error: Couldn't find '90ms-RKSJ-H' CMap file for 'Adobe-Japan1' collection
Error: Unknown CMap '90ms-RKSJ-H' for character collection 'Adobe-Japan1'
Error: Unknown font tag 'F0'で、CMap のファイルを xpdf と Adobe Reader で見比べるとあまり変わらないようだ
	ったので、試しに設定ファイル(~/.xpdfrc)で cMapDir の設定を
cMapDir     Adobe-Japan1    /usr/local/share/fonts/adobe-cmaps/から
cMapDir     Adobe-Japan1    /usr/local/share/fonts/adobe-cmaps/aj16/CMapにしてみると、以前のエラーが消えて今度はこんなエラーが出るようになりました。
Error: Couldn't find a font for 'MSPゴシック,Bold'
Error: Couldn't find a font for 'MSゴシック,Bold'検索してみるとこんな設定例が、見つかりました。設定ファイル(~/.xpdfrc)に下記の
	設定を追加して、文字コードをシフト JIS にして使ってみるとエラーが出なくなりま
	した。今まで文字化けしていたところもちゃんと日本語が表示されてます。
displayNamedCIDFontTT  MSゴシック         "/usr/local/lib/X11/fonts/TrueType/ipag.ttf"
displayNamedCIDFontTT  MSゴシック,Bold    "/usr/local/lib/X11/fonts/TrueType/ipag.ttf"
displayNamedCIDFontTT  MSPゴシック       "/usr/local/lib/X11/fonts/TrueType/ipag.ttf"
displayNamedCIDFontTT  MSPゴシック,Bold  "/usr/local/lib/X11/fonts/TrueType/ipag.ttf"
displayNamedCIDFontTT  MS明朝             "/usr/local/lib/X11/fonts/TrueType/ipam.ttf"
displayNamedCIDFontTT  MS明朝,Bold        "/usr/local/lib/X11/fonts/TrueType/ipam.ttf"
displayNamedCIDFontTT  MSP明朝           "/usr/local/lib/X11/fonts/TrueType/ipam.ttf"
displayNamedCIDFontTT  MSP明朝,Bold      "/usr/local/lib/X11/fonts/TrueType/ipam.ttf"これで、PDF ファイルを見る機会がさらに増えそうな感じです。
	■ GCC のライセンス除外規定だとか [GCC]
2009.02.22(日)
■ OSC は盛況だったようで [Haiku]
JPBE.net: OSC で多くの方に Haiku を見てもらえました
OSC なんて関係のない生活を送ってますが、そろそろ実機で Haiku を動かしたいっす。
	空いてるパソコンなんて無いんですが、、、
	■ FASM のマクロで文字列を扱うには? [PC]
 FASM のマクロは、文字列の扱いがやっかいなようです。数値を文字列にしてラベル
	で使いたいんですが、
d1 = '0' + 1
d2 = '0' + 2
d3 = '0' + 3
str equ d1, d2, d3, 0
display "str = ", str, 13,10これをアセンブルするとアセンブル中に文字列として表示されてるみたいなんだけど、
> fasm test.asm
flat assembler  version 1.67.33  (16384 kilobytes memory)
str = 123この文字列をラベルに使えないないようで
.l#strだとラベル .lstr として認識されるし
.l#`strだとエラ−(error: illegal instruction.)になるんだよなぁ。
 MASM だと展開演算子の % を使って式の展開をするところなんですが、該当するもの
	が無いのでマクロでやってみようとしたんですが、うまくいかないようです。
2009.02.23(月)
■ Desktop NetBSD とか Desktop DragonFly? だとか [NetBSD]
the NetBSD Wiki: Desktop Project: Goals: Phase 1: Phase 2: Branding
DragonFly BSD: DragonFly BSD Digest: Desktop DragonFly?
既に FreeBSD ベースの DesktopBSD とか PC-BSD があるんですが、選択肢がまた増え
	そうな。
2009.02.26(木)
■ Open Watcom 1.8 を使ってみた [DOS]
 Open Watcom C/C++ の wcc や wcl には、随分前から Pentium Pro に対応したオプ
	ション (-6) まであったようですが、使ったことがなかったので試しに Pentium の頃
	に追加された cpuid とか rdtsc を使ってみました。こんなコードとか
    _asm { cpuid }こんなコードもコンパイルできます。
    _asm { rdtsc }できた実行ファイルを10数年前の PC-9821Nb7 の DOS のリアルモードで動かしてみま
	したが、特に問題は無いようです。これが PC-9821Nb7 の CPU ID です。
9821>CPUIDW.COM 
CPU ID 00H : EAX=0x00000001  GenuineIntel
       01H : EAX=0x00000570  EBX=0x00000000  ECX=0x00000000  EDX=0x000001bfでも、ほぼ同時期の Thinkpad では、リアルモードの rdtsc でハンブアップしました。
	こちらがハンブアップした Pentium の CPU ID です。
THINKPAD>cpuidw.com 
CPU ID 00H : EAX=0x00000001  GenuineIntel
       01H : EAX=0x00000525  EBX=0x00000000  ECX=0x00000000  EDX=0x000001bfということで初期の Pentium には、リアルモードで TSC(Time-Stamp Counter) を読み
	出せない製品があったようです。ついでなので DOSBox でも試してみましたが、こちら
	も TSC を読み出せず動かなくなりました。
DOSBox>cpuidw.com
CPU ID 00H : EAX=0x00000001  GenuineIntel
       01H : EAX=0x00000402  EBX=0x00000000  ECX=0x00000000  EDX=0x00000001
	■ gcc の -S オプションで Intel 形式の出力 [PC]
gcc の -S オプションで Intel 形式の出力もできるとか。
 gcc -S -masm=intel hoge.cで、ファイル hoge.s が出力されて、中を見ると .intel_syntax の文字がありました。
2009.02.28(土)
■ LLVM で FreeBSD のカーネルのビルドに成功したとか [FreeBSD]
gihyo.jp: FreeBSD Daily Topics: LLVM can compile booting FreeBSD kernel
 LLVM で FreeBSD のカーネルのビルドに成功したとかで、具体的な手順はこちらだ
	そうです。
FreeBSD Wiki: Building FreeBSD with clang/llvm
 clang と llvm のバグ修正が続いているようなので、試してみるのは新しい LLVM が
	出てからにした方が良さそうだなぁ。