●Linux版を動かす!

XM7 V1では、7つのプラットフォームがサポートされています。Windows版(WIN32版)はとっつきやすく、多くのユーザーがおられることともいます。

ここでは、V1に含まれるプラットフォームのひとつであるLinux版を動かしてみましたので、実行までの手順を紹介します。

基本的には、XM7 V1のLinuxディレクトリに入っている、xm7-linux.eucファイルの中の説明とダブる説明は極力省きました。このファイルはテキストファイルなのですが、EUC(Unix上での漢字コード。WindowsのSJISみたいなもの)コードでかかれていますので、Windowsのメモ帳などでは読めません。Linuxでは普通に表示できます(もちろん漢字が表示できる環境で。kon, ktermなど)。Windows環境上で読むには、秀丸などのEUCに対応したエディタなどが必要になります。

ちなみに、私(Apollo)はLinuxは初心者レベルです。ハッカーの方で説明中の誤りなどに気がつかれましたら遠慮なくご指摘ください。

 


●実験環境

私が動作実験に使用した環境です。ちょっと特殊な環境ですが、ご参考ください。

Windows 2000(ホストOS)上でPC/AT機のエミュレータ(VMWARE)を動作させ、その上にLinux(ゲストOS)をインストールし、その上でXM7が走っています。VMWAREが作り出すハードウエア環境は基本的にはごく標準のAT互換機ですので、普通にLinuxを動かしているのと変わらないはずです。あまり難しいことは考えずに、RH6.1(RedHat Linux 6.1)上で動かしたとだけ思ってください(^^;

なお、ここではVMWAREのインストールの仕方とか、Linuxのインストールの仕方については説明しません。試した環境は下記のとおりRH6.1です。他のディストリビューションでは試していません。したがって、Kernel 2.2.x, glibc2, XFree86-3.3.5が被試験動作環境となります(間違ってたら指摘くださいm(__)m)。

項目 仕様、型番など メーカー 備考
CPU, Memory Athlon 500, 256MB AMD オーバークロックなし(^^;
Linux Distribution RedHat 6.1日本語 Red Hat社(?) LinuxUSER誌付録CD
Kernel 2.2.12-32
XFree86-3.3.5
GNOME
ホストOS Windows 2000 Professional Microsoft社  
PC/ATエミュレータ VMWARE for WinNT4/2000 VMWARE社  

 


●動かし方

やっとメインです(^^; 前置きが長いですね。

Linuxがインストールできて、きちんとXさえ起動していれば(初心者にはここまでが難関だったりするが…)、あとは簡単です。

1. XM7をLinux上にもってくる

これはいくらでもやり方がありますが、比較的初心者にもやりやすい方法としてmtoolsを利用する方法を紹介します。ほかにも、ネット経由で渡したり、DOSパーティションをマウントしたりいろいろ方法があります。(というか、Linux上でダウンロードすればいいっていううわさも。。。)

mtoolsはRH6.1を標準(たとえばGONMEワークステーション)でインストールすれば自動的にインストールされています。もし、コマンドを打ったときにエラーになる場合は、パスが通っていないか、カスタムインストールためにmtoolsがインストールされなかったのが原因でしょう。インストールされていない場合、CD-ROMの中からmtoolsのRPM(mtools-3.9.1-5.i386.rpmなど)を探し出してインストール(rpm -Uvh mtools-3.9.1-5.i386.rpm)してください。

  1. XM7で必要になるファイルをフロッピー(普通のDOSフォーマット:FAT12)に入れる
    xm7-linux
    xm7-linux.euc   
    必須ではありません(説明書)
    BOOT_BAS.ROM
    BOOT_DOS.ROM
    FBASIC30.ROM
    SUBSYS_C.ROM
    KANJI.ROM   
              必須ではありません
    これらのファイルは全部あわせても300KB程度ですので圧縮しなくても1枚のFDに収まります。必要なら、ディスクイメージファイル(.D77ファイル)もコピーしてきます。
  2. Linux上でXM7に必要なファイルを読み出す
    コマンドラインで操作を行いますので漢字ターミナルを起動します。ファイルのコピーは以下のコマンドで行います。このやり方では、カレントディレクトリ(現在のディレクトリ)にファイルがコピーされますので、必要に応じてディレクトリを切ってください。
    [ user@localhost v1] # mcopy a:* .
    これにより、FD内のすべてのファイルがLinux上のカレントディレクトリにコピーされます。

    必要なファイルだけをコピーしたいときは、
    [ user@localhost v1] # mcopy a:BOOT_BAS.ROM .
    のようにすればOKです。また、フロッピーに入っているファイルの一覧をみるには、
    [ user@localhost v1] # mdir
    でOKです。

2.実行できるようにする

  1. 実行権限の付加
    mtoolsでコピーしてきたファイルは実行パーミションがないため、実行できません。そこで以下のコマンドを発行して、実行権限を付加します。
    [ user@localhost v1] # chmod +x xm7-linux
  2. ファイル名の修正(すべて大文字に)
    WIN32版などでは問題になりませんが、Linuxではファイル名は大文字と小文字を区別します。Windowsからファイルを持ってくると、
    Boot_bas.ROM
    のようなファイル名になっていたりしますが、これではNGです。Linuxa版XM7はROMファイルはすべて大文字を要求しますのでファイル名を確認して、修正しましょう。
    [ user@localhost v1] # mv Boot_Bas.ROM BOOT_BAS.ROM
    のようにしてファイル名を修正します。もちろんMidnightCommander(GNOMEのファイルマネージャー)などで修正してもかまいません。

これで準備は整いました。あとは、

3.実行する!

XM7を実行するには以下のコマンドを投げます。カレントディレクトリへのパスが通っている場合は頭の'./'は不要です。
[ user@localhost v1] # ./xm7-linux
これで無事にXM7が起動し、F-BASIC 3.0の画面が表示されたはずです。

FDイメージファイルを使用して起動する場合、
[ user@localhost v1] # ./xm7-linux diskbasic.d77 workdisk.d77
のようにします。一つ目のパラメータがドライブ0、二つ目のパラメータがドライブ1のディスクになります。ディスクイメージもファイル名の大文字小文字が区別されることに注意しましょう。FM音源を使用しないオプションなども用意されています。FM音源を使わないと、CPU負荷を下げられるようです。詳しくは、XM7に同梱のxm7-linux.eucファイルを参照ください。

なお、IBMPC版と同様にF12キーで共通GUIが起動します。


●スクリーンショット

クリックすると、大きな画像で見ることができます。


Windows 2000 Pro上のVMWare上のLinux上のX-Window上でXanaduが動いている様子。
はぁ〜(^^; (29KB)


F-BASIC 3.0 LevelΧの起動画面です
(5KB)

 


●余談

・VMWARE
私はメインでLinuxを使うことがないので(仕事上と、ちょっとした興味本位でしか動かしません)、LinuxはPC/AT機のエミュレータ上で使用しています。
これは、Windows 2000上に仮想のPC/AT環境を作り出すもので、結構便利です。x86コードは基本的にネイティブ(つまり、ソフトで作ったVMではなく、CPUそのもの)が実行します。ただし、I/Oのエミュレートとかその辺ではパワーを食いますので、実際のCPUパワーの半分くらいが体感速度になると思います。
ちなみに、Linux上でXM7を動かしたときでもFM-7実機相当の速度が出ていると感じられますので、十分ではないでしょうか(Athlon 500Mhz)。
同時にいくつもVMを走らせることもできますし(当然パワーは分配されますが)、完全なPC/AT環境ですので、基本的にどのOSも走ります。やったことはないですが、Beとかも動くんでしょう。Windows 2000上でWindows 98を動かしたこともあります。
VMWAREはWindows NT4/2000版とLinux版があります。どっちかっていうとLinux版のほうが評判いいですが、私はWindows版を購入しました。購入はネット上でオンライン支払いできます(要カード)。
興味のある方は、ここから試用版がダウンロードできるはずです。試用するには、同HPより試用ライセンスも取得する必要があります。