Top

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 さんJWasmFreeBSD でも動くようにしてみました。ソースをこちら
置いておきます。

追加した 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]

 ReactOS : ReactOS 0.3.8

 早速、Live CD 版を qemu で動かしてみました。で、マインスイ-パーとかソリティア
を動かしてみましたが、随分とスムーズになってきたような感じがします。


■ Protothreads が人気らしい!? [Unix]

 Contiki 発の Protothreads が、Unix 系でも動くようになったみたいっす。

2009.02.07(土)

JWasm が FreeBSD 対応に [FreeBSD]

 JWasmFreeBSD でも動くようにしてみました。と Japheth さんに連絡したら、
コードを取り込んでくれましたので、次のバージョンから正式に FreeBSD 対応になり
ます。

[02月12日追記]
  Japheth さんに連絡した頃、偶然にも Cygwin 版の要望があったみたいです。

 The MASM Forum : Open Watcom Assembler : Jwasm for Cygwin

2009.02.10(火)

Mac 互換機の販売!? [Mac]

 PearCMac の互換機を販売するとか!? どうなることやら!!


■ dmake が消されてる [PC]

 なぜか dmake が消されてるなぁ。まだ、他のファイルが残ってるから引っ越した
わけじゃないようですが。。。

2009.02.15(日)

ALINK を FreeBSD 対応に [FreeBSD]

 Windows 用の ALINKFreeBSD でも動くようにしてみました。ソースをこちら
置いておきます。

追加した Makefile.fbsd を使って gcc でコンパイルできます。こんな感じです。

 > gmake -f Makefile.fbsd

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]

 MYCOM ジャーナル: FSFが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
出てからにした方が良さそうだなぁ。


Copyright (c) 2000-2009 by IT Junk Box
Generated by nDiary 0.9.4 and Ruby 1.9.1