IT Junk Box
- April, 2008 -
2008.04.01(火)
■ GLib 2.16.0 で GIO の追加 [FreeBSD] [Linux]
GLib 2.16.0 で GIO が追加されています。で、この GIO を使っているソフトが多い
ようなので、GLib 2.x のバージョンアップをしておいた方がいいです。
> ls /usr/local/lib/libgio*
/usr/local/lib/libgio-2.0.a /usr/local/lib/libgio-2.0.so@
/usr/local/lib/libgio-2.0.la* /usr/local/lib/libgio-2.0.so.0*
Gnash を試してみようとしたときに GIO 2.0 が無くてエラーになりました。
2008.04.02(水)
■ Retro PC Network が更新されたようです [PC] [Net]
去年の年末に移転した Retro PC Network が、4月1日に更新したみたいっす。
まだ、移転中のようですが。
■ C のインタプリタ [DOS]
復刊ドットコムに「実用Cプログラミング生粋のCプログラマへ」という本の
リクエストが5年近く前から出ているようです。この本は、McGraw-Hill 社の
「Born to code in C」という Herbert Schildt 氏の本なんですが、実は第1
章の「C のインタプリタ」に相当する部分がネットで公開されています。
Dr. Dobb's Journal : Building Your Own C Interpreter
で、この本を何故か持っていたりするんですが、記事中のプログラムもほとん
どそのまま公開されてるようなので、興味のある人は保存しておいた方がいい
と思います。
■ 秋月電子の GPS モジュールキット [GPS]
Fenrir's Blog : 秋月GPSモジュール@4800円
新製品なのにもう分解されてます。以前使っていたハンディGPSが壊れてしまった
ので代わりが欲しいと思っているのですが、これも候補に入れときましょう。
2008.04.07(月)
■ MICRODOS とか LT-DOS とか [PC] [DOS]
Operan systm Litux : MICRODOS LT-DOS
NASM で MICRODOS とか LT-DOS を作ってしまった人がいるようです。ソース
も配布されています。.cz ということなので、チェコ共和国(Czech Republic)の
人みたいです。
■ パソコンが壊れた [PC] [DOS]
DOS/V 専用にしてたノートパソコンの液晶に寿命がきたようで、使っていると
表示がおかしくなっていきます。十数年前のパソコンなので何時壊れても仕方な
いんですが、ネイティブな DOS/V を使う機会が減っていきそうです。
まぁ、DOS のソフトは、エミュレータで大体動いてしまうので困ることは、無い
んじゃないかと思いますが、本当に残念なのは、本物の 2.88MB の FD で起動で
きなくなることか。
2008.04.08(火)
■ カレンダ時計の割り込み [DOS] [PC98]
web technology 社の UNDOCUMENTED 9801/9821 メモリ・I/Oポート編にカレンダ
時計に関する資料(io_cal.txt)があります。以前から割り込みの部分が気になって
いたので、試行錯誤で調べてみました。結果として下記のような手順で、カレンダ
時計の割り込みが使えました。
初期設定
・ I/O の 0128h に割り込み周期のパラメータを書き込む
・ 割り込みベクタ (0x17) を設定する
・ スレーブの割り込みコントローラ(PIC)の設定をする
割り込みのとき
・ I/O の 0128h を読むと割り込みがクリアされる
・ 割り込みコントローラ(PIC)に EOI(0x20) を送る
終了するとき
・ 割り込みベクタを元に戻す
・ スレーブの割り込みコントローラ(PIC)を元に戻す
見ての通りであまり特殊なことをやっていないんですが、割り込み周期のパラメータ
が不明でした。とはひへ、1 byte のデータなんで全てのパターンをソフトにやらせ
てみました。で、こんなパラメータで設定できるようです。
- 0x80 (1/64秒: 15.625ms)
- 0x81 (1/32秒: 31.250ms)
- 0x83 (1/16秒: 62.500ms)
[04月10日追記]
割り込み周期を修正しました。起動時には、0x81 なので 1/32秒の設定なんですね。
2008.04.10(木)
■ Haiku のクロスビルド [Haiku] [Linux]
5分だけのわがまま : Haikuインストールメモ(Linuxホスト編)
Linux (Ubuntu)のインストールから解説されています。ReadMe.cross-compile を
見ると FreeBSD もサポートされているようなので、試してみたいと思います。
2008.04.16(水)
■ FreeBSDベースのデスクトップOS PC-BSD [FreeBSD]
マイコミジャーナル: FreeBSDベースのデスクトップOS PC-BSD - AsiaBSDCon 2008
PC-BSDも普及に熱心なようですね。
最初から多言語対応しているため、日本のユーザも導入しやすいところも
ポイントだ。フォントも改善されている。
なるほどねぇ。
Flash9を組み込んだ Windows Firefox を Wine で動作させる PBI が用意
されているなどアドバンストアプリケーションも多く、FreeBSDを手っ取り
早く体験してみたいノービスユーザにもお薦めできるプロダクトだ。
Linux 版じゃなくて Windows 版を使うというのは、珍しいような。
インストールしてみようかな。
■ HX DOS Extender でビデオモードを変更する [DOS] [PC]
HX DOS Extender で VGA BIOS のビデオモードの変更(INT 10h ah=00h)を呼び出し
たいときは、hdpmi32.exe にこんなパッチを当てると動作するようになります。
Code:
INTXXAPI.ASM.orig 2007-12-26 05:53:32.000000000 +0900
--- INTXXAPI.ASM 2008-04-13 07:42:14.000000000 +0900
*
48,53 *
- 48,55 --
@strout <"i10 call ax=%X,bx=%X,cx=%X,dx=%X",lf>,ax,bx,cx,dx
if ?INT10MAPPING
pushfd
+ cmp ah,00h
+ jz intr1000
cmp ah,10h
jz intr1010
cmp ah,4Fh
*
62,67 ****
- 64,74 --
intr10_ endp
if ?INT10MAPPING
+ intr1000:
+ popfd
+ jmp short nomappcall
+ align 4
+
intr104E:
intr104F:
popfd
DPMI の DOS API Translation サービスが、VESA BIOS にしか対応してないという
のは、ちと使い難いんじゃないかと思ったりします。解像度より互換性を優先したい
場合もありますから。
2008.04.20(日)
■ TEEN の修正 [DOS] [Net]
MASM 版 TEEN の修正をしました。内容は、下記の通りです。
- MASM のオプション(/Cx)を追加して OPTASM と同等にした。
- PC/AT 機の時刻取得を元に戻した。
- RTC の初期化の修正
2008.04.21(月)
■ TEEN に仲間を追加してみた [DOS] [Net]
MASM 版 TEEN に PC-98 専用のカレンダ時計版を追加しました。カレンダ時計
(μPD4993A)の 1/64 秒の割り込みを利用することで、他のソフトが i8253A 相当
のインターバルタイマを使っているときにも影響を受け難くなります。
設定ファイル teen.def で下記のように設定します。
[TIMER]
200 16
[TCU]
;100 0
もっと時間がかかるかと思っていたのですが、動いてしまったので公開します。
但し、ソースのみの公開です。
2008.04.23(水)
■ TEEN にさらに仲間を追加してみた [DOS] [Net]
MASM 版 TEEN を PC/XT 互換機でも動くようにしてみました。意味が無いように
見えるかもしれませんが、HP 100/200LX でも動くようにしておきたかったんです。
LX は、壊れてしまったのでもう使っていませんが。
2008.04.25(金)
■ Hello World コレクション [PC]
マイコミジャーナル : Hello World コレクション : C 編 : C++ 編 : アセンブラ編
面白そうなんでメモしておく。アセンブラって gas なんだ。
■ Windows Vista は、どうなるんでしょう? [Windows]
CNET News.com : Ballmer: You want XP, we'll keep XP
これからも Windows XP の販売を続けるとか、
CNET News.com : Gates: Windows 7 may come 'in the next year'
次のバージョンを出すとか、何だか慌しいようで。
2008.04.26(土)
■ HP 200LX ってまだ入手できるんですね。 [DOS] [Wine]
すみとも領 : HP 200LX (1) 入手編 : HP 200LX (2) ハード編
1年程前に入手されたようです。で、こちらに気になることが書かれてました。
すみとも領 : HP 200LX (3) ソフト編 : HP 200LX (4) ソフト編補足
前回MASMはもう配られていないと書きましたが、実はまだ手に入るようです。こちらからWindows Server 2003 SP1 DDKのISOイメージをダウンロードし、CD-Rに焼くなり仮想CDドライブを使うなりしてインストールします。
そうでしたか、こちらは1年経って知りました。ありがとうと感謝しつつ CDROM の
イメージファイルを入手しました。中のファイルを見るためにおまじないをして
> mdconfig -a -t vnode -f 1830_usa_ddk.iso -u 0
> mount -t cd9660 /dev/md0 /mnt/
中のファイルを見ると common/ のディレクトリに d16bebin.cab, d16beinc.cab,
d16belib.cab といったそれらしき圧縮ファイルがありました。3つのファイルを
取り出して展開してみると masm.exe とか cl.exe が出てきました。で、終わりの
おまじないをして
> umount /mnt
> mdconfig -d -u 0
試しに masm.exe を実行してみるとリアルモードで動くようです。
> masm.exe
Microsoft (R) Macro Assembler Version 5.10A
Copyright (C) Microsoft Corp 1981, 1989. All rights reserved.
cl.exe の方は、DOS で実行しようとすると dosxnt.exe という Microsoft 社の
DOS Extender を要求します。でも、Wine から実行できたりするんだよなぁ。
$ wine cl.exe
Microsoft (R) C/C++ Optimizing Compiler Version 8.00c
Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
こんなモノまで配布していたとは!
ちょっと使ってみて気付いたことを付け加えます。d16beinc.cab に入っている
.h ファイルの中に sys_ の付いたファイルが、5つあってサブディレクトリ sys/
のファイルのようです。
それから、cl.exe は、環境変数の設定が必要で下記のようなスクリプトを使うと
Wine 上で hello.c のコンパイルができます。
#!/bin/sh
CDRIVE=~/.wine/fake_windows
export PATH=$PATH:$CDRIVE/msc/bin
export INCLUDE=C:\\msc\\include
export LIB=C:\\msc\\lib
wine cl.exe /AT hello.c
[04月28日追記]
パスの設定は、regedit で変更したり ~/.wine/user.reg を書き換えたりした方が
いいようです。
2008.04.27(日)
■ スタジオ Wing が復活するようで [Game]
スタジオ Wing が復活するとは、、、嬉しいことです。
新作は、対応機種も多いようなので遅れ気味のようですが。
■ DMAPLX を VGA に [DOS] [地図] [GPS]
MSC 8 が、手に入ったので松川さん作の DMAPLX を再度 VGA 化してみました。
ドキュメント (technica.doc) によると
DMAPLXは、Microsoft C Ver7及び、MASM Ver6で作成されています。
ということなので、今回入手した MSC 8 の前のバージョンということになります。
以前 VGA 化したときは、Open Watcom C/C++ でライセンス(日本語訳)が、ややこし
くなりそうだったので放置してました。
そういうことで、こっそり公開します。
2008.04.28(月)
■ レトロだとか [Net]
Open Tech Press : レトロに楽しむWebブラウジング
そうか、いつもレトロに楽しんでたのか。