BSD/OSでのIBM ChipCardの利用について
このページの内容は1995年から1996年にかけてのもので、その後
ほとんど更新されていません。ごめんなさい。
ChipCardはIBMが発売したPCMCIAのtype II(VW-200はtypeIII)の大きさに
収まったコンピュータです。詳細はこちらを御覧ください
TC-100が発表されたのが1995年の5月頃でしたが、私はこの商品には
発売当初より非常に興味をもっており、いろいろ遊んできました。
BSD/OSでIBM ChipCardを使う方法について
紹介します。なおここに書かれている内容はIBMのサポート対象から外れた利用方法
になります。利用者の責任において参考にしてください。またここに書かれている
内容に基づいて行なった操作等により、ソフトウェアおよびハードウェアに
何らかの障害が発生した場合でも、当方は責任を負いかねます。あくまで
各自の責任において行なって下さい。
1. BSD/OSでChipCardを認識させる
BSD/OSではPCMCIAを利用するためのドライバ群としてWildboarが存在します。
Wildboarはサポートしているハードウェアの数こそ現在ではPAOに追い越され
たものの、安定性やAPMとの連携においてPAOやLinuxでのPCMCIAドライバよ比
較して非常にすぐれています。BSD/OS 3.0以降ではWildboarは標準添付されま
す。BSD/OS 3.1ではそのままではChipCardを認識しません。/etc/pccard.confに
以下の行を追加してください。
# IBM ChipCard
mc "IBM" "ChipCard TC-100" -16BIT|-DOSBPB
mc "IBM" "ChipCard VW-200" -16BIT|-DOSBPB
BSD/OS 4ではこのエントリは標準で含まれています。
2. BSD/OSでChipCardを読み書きする
認識されたChipCardは/dev/mc[0123]aとして参照することができるようになり
ます。もしデバイスファイルが存在しなければ、次のようにして作成してくだ
さいpermissionは適当に設定してください。
% cd /dev/;./MAKEDEV pccard
試しにChipCard(TC-100)のSRAMの内容を全てファイルに書き出してみましょう。
次のようにしてみてください。デバイスの名前はChipCardを装着したスロット
の番号によって変化します。注意して下さい。
% dd if=/dev/mc0a of=chipcard.dump bs=1024 count=128
書き出した内容を眺めるには、次のようにするのが最も簡単です。
% hd chipcard.dump | less
ざっと眺めると、見たことのある文字列にお目にかかれるでしょう。さて、
これだけできても嬉しくありません。やはりPSA形式のファイルをChipCardに
書き込みたくなります。PSA形式のデータをChipCardに書き込むために付属
chipldrのBSD/OS版を作成しました。現在のところ、VW-200のEEPROMの領域への書き込みができませんが、それ
以外は問題なく利用できるはずです。TC-100では先頭の64KBは保護されている
ため書き込めないことになっていますが、chipldrでは問題なく書き込めます。
実は、128KBのメモリ空間は0x00000からと0x20000との2箇所にマップされてい
て、後半の128KBには書き込みが可能になっているのです。
3. BSD/OSでChipCard用クロスアセンブラを使う
NiftyServeにアップロードされていたクロスアセンブラを用いてBSD/OS上に
ChipCard開発環境を構築します。またプリプロセッサとして、spp88を利用し
ます。いろいろ面倒なことを省くために、必要なものだけを集めたパッケージ
を用意しました。
上記のchipldr含めて、こちらか
ら入手できます。
4. BSD/OSでDOS用 ChipCard開発環境を用いる
BSD/OSには標準でDOSプログラムを動作させる環境が添付されています。これ
を用いてDOS用の開発環境を動かそうというものです。
まず最初にdoscmdが動作する環境を用意します。
未完成
5. BSD/OSでChipCardアプリケーションを動かす
実はX-Window Systemで動作するChipCard Emulatorを作ってしまいました。
1995年の秋には既に動いていたのですが、その後サボっていたのとテンション
が落ちまくっていたので、かなり長い間放置していました。もはや全国的に
ChipCardが低下しているような気はしますが、最近になってようやくパッケー
ジとしてまとめる気になりました。最新版はversion 2.0で、以下のような特
徴があります。
- 多分ほとんどUNIXで動作可能
- 動作にはX-WindowSystemを必要する
- 8/16/24bitのXサーバで動作可能
- 表示領域の大きさは標準/2倍/4倍サイズが利用可能(TC-100)
- 90度単位で任意の方向に回転可能(TC-100)
- 縦/横の切り替えが可能(VW-200)
- FreeBSDで動作させたところ486DX2であれば、本物と同程度の速度で
動くことができる
- 複数のPSAファイルを読み込んで動かすことができる。したがってcc/vも
利用可能。
- ハードウェアのエミュレーションを行なっているため、LCDのレジスタを
直接操作するプログラムも動作できる。
- 割り込み処理は結構いい加減なので、ものによっては正しく動かない。
- BSD/OS 2.* & 3.*,FreeBSD 1.*&2.*,NEWS-OS 4.2.1で動作確認
注意) このプログラムの実行にはChipCardのROMイメージを必要とします。各
自自分の持っているROMイメージを読み込んで使用してください。また、この
ccemuの開発には、IBMが公開している情報のみを用いています。したがって
IBMが公開していない情報を必要とする機能については、実装されていないも
のも多く存在します。
Masahiko KIMOTO <kimoto@ohnolab.org >
Last modified: Sat Jul 31 00:00:16 1999