SSブログ

一太郎とWin3を一緒に使いたい,(月刊ASCII 1992年5月号5) [月刊アスキー廃棄(スクラップ)]

特集の「これで分かった PC-9801&MS-DOS」をスクラップする。
今回は「一太郎とWindows 3.0を一緒に使いたい,TeXだって使いたい」をスクラップする。
ASCII1992(05)c04一太郎とWin_W520.jpg
 自分のコンピュータがほしくなって,丹羽信夫さんの言うとおり,会社をやめて,その退職金でPC-9801のDAを買った。HDDも100Mbytes内蔵している.486DOS/VマシンとMacintoshは,とても買えなかったけれども,せめて,この98には,たくさんメモリを積んであげようと,4Mbytesの増設RAMを奮発した.初めからある1Mbytesの内蔵RAMを足せば,5Mbytes.これだけあれば,Windowsもなんとか動かすことができるだろう.これで,バリバリとアプリケーションを使って,大儲けをするんだ.と,はりきっていたのだが,…….
Windows3.0と一太郎を使うには?
■ これこれ、どうした?そこの娘.
◆ この画面を見てよ,もーぉ(画面1).こんなにお金をかけたのに,まったくひどいったらありゃしない。でも、おじさん,誰?どうして私の部屋にいるの?


ASCII1992(05)c04一太郎とWin画面1_W339.jpg
■ そんなこたぁー,どうでもええ.いったい、何を騒いでおるのじゃ。
◆ 一太郎とWin3を一緒に使いたいんだけど,どうすればいいのか分からないのよ.
■ なになに,お前さんは大船に乗り遅れたようじゃなぁ.
◆ それでね、話を聞いてくれる?まずは,一太郎をWindowsから立ち上げようとしたの。マニュアルと格闘しながらなんとかPIFファイルを書き換えて,それで日本語入力FEPを組み込んだらやっと動いたんだけど,それがもう,遅くて遅くて.
■ きちんとEMSドライバ[6]を組み込んどるのかな.

6 メモリマネージャ(EMSドライバ,XMSドライバ)
 EMSやXMSなどの手順でメモリを利用しようとするプログラムに対して,実際にメモリを割り振るプログラムのことをメモリマネージャという.386以上のマシンではプロテクトメモリさえあれば,メモリマネージャだけでEMSメモリやXMSメモリを提供することができる.UMBの項で,プロテクトメモリの一部を1Mbytes空間内に割り当てると書いたがEMSも同じ方法で実現することができるからだ.
 メモリマネージャは数社から発売されているが,注意したいポイントは「EMSとXMSを完全にサポートしているか」,である.EMSがなければ一太郎のようなEMS対応ソフトをはじめ,DOS環境の改善は大きく立ち後れる.一方XMSがないと,Windows3.0を快適に動作させることができない.
 現時点でこの条件を満たすのは,(1)DOS 5に含まれる「HIMEM.SYS」と「EMM386.EXE」の組み合わせ,および(2)MELWAREVer.5に含まれる「MELEMM.386」だけである。この両者にも違いがある.(1)の方法では,プロテクトメモリのうちEMSとして使う部分とXMSで使う部分の大きさを,あらかじめ決めておく必要がある。2では,要求されただけをEMSなりXMSなりにしてプログラムに渡す.
 どちらが便利かといえば,もちろん(2)だ.たとえば,一太郎Ver.4を使うときにはできるだけたくさんのEMSメモリがほしい.Windows 3.0を使うなら,EMSはなくてもいいがXMSはできるだけ多くほしい。(2)ならどちらに対してもあるだけのメモリを提供できるが,(1)では容量配分を変えるために一度リセットする必要があるからだ(画面4).


ASCII1992(05)c24メモリ画面4_W851.jpg
◆ もちろんよ。でも,あのスピードじゃあ、あんまりだから,やっぱり元に戻して,一太郎はMS-DOSから立ち上げて使うことにしたの.
■ まあ,386のCPUだと,もっともな判断じゃな。
◆ でね,config.sysを書き直して,一太郎が動くように,とりあえずしてみたの.そしたら,一太郎は,元どおりに,ちゃんと動くようになったわ.
 でもね、今度はWindowsが問題なの.立つのは立つんだけど,なぜかリアルモードなのよね。エンハンスドモードで立たなくなっちゃったのよ。config.sysを書き換えるまでは,Windowsもちゃんと動いてたから,きっと私,config.sysに何かへんなことをしちゃったんだと思うけど,どこが悪いのか分からないのよ.
■ フム,これは,98のDAじゃろ。それにメモリを5Mbytesも積んどるんじゃったら,Win3がちゃーんとエンハンスドモードで立ち上がるはずじゃ。よっぽどすっとんきょうなことをやっておるのじゃな。はてはて?メモリはどう使っておるのかな?
◆ 一太郎が使いやすいように,とりあえずEMSメモリ[3]にしてるよ.どこか悪いの?
■ それじゃ,きっとそれじゃ。EMSメモリは,どのくらい使っておるのじゃ?
◆ えっ、どのくらいって?
■ まさか,メモリをぜーんぶEMSにしとるのじゃないじゃろうな.
◆ EMSって,メモリの一部だけでもいいの?
■ あったり前田のクラッカー.どれ,どれ,ちょっとおじさんにconfig.sysを見してみぃ。フムフム.
 このemm386.exeを組み込む行を見なさい(図1).使うEMSのページ数を指定しておらんじゃろ。だから,DOSのシステムが使っとるメモリ以外は,すべて仮想EMSメモリになっとるんじゃよ。
◆ へーぇ。知らなかった.
■ Windowsは,空いているプロテクトメモリ[1]が足りないと,エンハンスドモードで動かすことはできないのじゃよ.
◆ でも,一太郎にたくさんメモリが必要といったって,いくらなんでも5Mbytesも使っちゃうことはないでしょう?
■ 一太郎がメモリを使っとるんじゃないぞ.emm386.sysがプロテクトメモリをみんな仮想EMSとして確保しとるのじゃ。そうなると,Windowsは,そのメモリをEMSメモリとしてしか使えなくなってし まうのじゃ。 ◆ うーん。じゃあ,どうすればいいのよ?
■ 簡単じゃ.MS-DOS5の「インストールガイド」の43ページに,EMSメモリを使うための説明があるぞ。そこをよーく読むんじゃ。
◆ ふーん。なになに、「使用できるメモリのうちどれだけをEMSメモリとして利用するかを,ページ単位またはKバイト単位で指定します」。前にもEMSのことを調べたら「ページ数」って書いてあっ たんだけど,このEMSのページ数って,なにかよく分からないのよね。
■ まあ、黙ってマニュアルを読みなされ.“/P=nnn”というオプションをつけろとあるじゃろう.
◆ はいはい,分かった,分かったわよ。ほんとはまだよく分からないけど,とにかくこれでメモリをどのくらいEMSとして使うかを指定するのね。つまり,こうね(図2)。


ASCII1992(05)c04一太郎とWin図1-2_W335.jpg
3 EMS
 98を使っているなら今やEMSは必需品である.まだEMSを使っていないという方は、この機会にEMS導入に踏み切られることをお勧めする.
 EMSがあると(正確にはEMSメモリがあると),(1)ワープロやデータベースではディスクとのやりとりが減少して動作が快適になる(2)表計算ソフトでは大きな表を作ることができる,(3)日本語入力FEPをEMSに追いやることでメインメモリに余裕ができる,などのメリットがある。
 386以上のCPUのマシンでメモリを1.6Mbytes以上搭載していれば,「メモリマネージャソフト」を使うことでEMSが利用可能になる(DOS 5にも付属してくる).もしメモリが640Kbytesしかないなら,本体内蔵タイプのメモリを買ってきて差せばよい.
 286までのマシンの場合は,拡張スロットに差すEMSメモリを購入し,そのボードに付属する(別売の場合もある)メモリマネージャを使うことになる.本体内蔵タイプのメモリは,PC-9801DXなど一部の例外を除いて,EMSメモリとして活用するのは困難であるからだ。ただし,Windows 3.0用にメモリを増設するというのであれば,内蔵メモリのほうが高速化に役立つ。

EMSとはどんな仕組みなんだ?
 MS-DOSは1Mbytesの内側しか扱うことができないが,そこでなんとか大量のメモリを扱わせようとして考えられたのがEMSである。EMSの規格では,外部にたくさんのメモリを用意しておき,そのメモリを16Kbytesごとにコマ切れにしてそのうち4つを1Mbytes内にとっかえひっかえ割り当てるようにしたのである.
 16Kbytesのメモリが4つ並ぶから,EMSを使うには64Kbytesの領域が必要になる.これをもしメインメモリの中に取ると他のプログラムとぶつかってしまうし,グラフィックVRAMやBIOS-ROMの上に取るとそれらが使えなくなってしまう.そこで,普通は拡張ROM領域のうち使われていないところを探して使う。拡張ROM領域はC0000~DFFFFHまでだが,C0000~CFFFFHを使うのが一般的である.

EMSで起きるトラブルとは
 EMSは上述の“拡張ROM領域”を使用するので,他のROMとの衝突を避けなければならない。なかでも厄介なのは“サウンドROM”である.FM音源ボードを搭載した機種ではEMSを使うときはサウンドROMを切り離すようにしなければならない.これはEMSのページフレーム上とFM音源ボードのサウンドROMがCC000~CFFFFHの領域で重なってしまうのである(図2).
 もしサウンドROMを生かそうとしてEMSのページフレームをD0000Hから取るようにすると,今度はハードディスクのROMと重なることになる.つまりサウンドROM,HDD,EMSの3つは両立できないのである.もし,どれか削るとすればサウンドROMになるだろう.


ASCII1992(05)c22メモリ図2_W520.jpg
1 メモリマップ
 EMSとかプロテクトメモリといった個別の単語説明にはよくお目にかかるが,それらを理解するには「メモリマップ」を頭に入れておくとよい。メモリ用語がずっと現実味を帯びてくるはずだ.
メモリには1byteごとに番地がある
 パソコンの中にCPUとメモリがあることはご存じのとおり。メモリマップとは,文字どおりメモリの使われ方を示すものだ.PC-9801シリーズでは,あるいはMS-DOSではメモリがどのように使われているか.グラフィックを表示しているとき,そのグラフィックデータはどこに存在するのか.メモリマップを見るとそれが分かる.
 メモリにはすべて番地(“アドレス”という)が付いていて、1つの番地に1byteのデータが収まる.アドレスは通常16進数で表わし,0番地から始まる.16進数と言われてもピンとこないかもしれないが,16進数の10000Hが64K(キロ),同様にA0000Hが640K,100000Hが1M(メガ)というくらいを覚えておけばいい.なお,16進数には上で書いたように,最後にHを付けるのが普通だ.
 PC-9801(ノーマルモード)のメモリマップを図示すると、図1のようになる。順に内容を説明しよう.

●メインメモリ
 00000~9FFFFHの640Kbytesの空間がメインメモリだ.MS-DOSや日本語入力FEP,アプリケーションソフトなどはここに読み込まれ,実行される.“EMS”や“プロテクトメモリ”などが要求されるようになったのは,アプリケーション自体が巨大化して,扱うデータを含めると640Kbytesに収まり切らなくなってきたためである。残りメモリがどれくらいあるかは,CHKDSKコマンドや,DOS5ならMEMコマンドでも知ることができる.
●テキストVRAM
 A0000~A4FFFHの領域を“テキストVRAM"という.VRAM(VideoRAM)は,メインメモリと違って「画面と連結されている」のが特徴だ。テキストVRAMの場合は,プログラムでこの領域に文字コード(98の場合はJISコードに一定の計算を施した数値)を書き込んでやると,その瞬間文字が画面に表示される(画面1).
●未使用領域
 A5000~A7FFFHまでの12Kbytesは,RAMもROMも割り当てられていない.このほか,後述する拡張ROM領域も大部分は未使用領域である.未使用領域は,386/486マシンでは重要な意味を持ってくる(詳しくはUMBの項を参照).
●グラフィックVRAMその1
 A8000~BFFFFHの96Kbytesは“グラフィックVRAMその1"だグラフィックVRAMの場合は,データを書き込むとグラフィックが画面に表示される.したがって、現在表示されているグラフィックをディスクに保存したければ,この領域と、後述する“グラフィックVRAMその2”をセーブすればよい.
●拡張ROM領域
 C0000~DFFFFHの128Kbytesを“拡張ROM領域”という.たとえば,ハードディスクを装着すると,ハードディスクのインターフェイスボードの上にある拡張ROMがこの領域に現われる.
 この拡張ROMの中には,ハードディスクを制御するためのプログラムが入っている.
 メモリのトラブルが一番発生しやすい領域がここだ。というのも,別項で述べるEMSもこの空間を利用しているからだ.EMSや,ハードディスク,FM音源などの拡張ROMが同じ領域を取り合うと,マシンが起動できなくなることもある.

●グラフィックVRAMその2
 E0000~E7FFFHは“グラフィックVRAMその2”.上のグラフィックVRAMその1と合わせて128KbytesのグラフィックVRAMを形成する.なお,グラフィックVRAMはその1その2ともに2セット存在していて,切り替えて使うことができるようになっている.
●BIOS-ROM領域
 E8000~FFFFFHの,メモリマップの最上位に位置するのが“BIOS-ROM領域”だ.MS-DOSの起動に失敗したとき,“Howmanyfiles(0-15)?”と表示されるのを見たことはないだろうか.これはBIOS-ROMに内蔵されているROM-BASICが起動したからである.BIOS-ROMにはBASICだけでなく,MS-DOSの各種処理を行なうためのプログラム群も収められている.
●プロテクトメモリ空間
 CPUそのものの設計では,286は16Mbytes,386や486は4Gbytesものメモリを装着できるようになっているのだが,この領域はMS-DOSでは本来扱うことができない.しかし,386以上のCPUは,メモリマネージャと呼ばれるソフトを書くことでDOS上からプロテクトメモリを活用できるようになったし,286マシンでも用途は限られるが使い道がないわけではない.
 なお,Windows3.0のスタンダードモード,エンハンスドモードは,プロテクトメモリを直接扱って動作する.
 メモリに関するトラブルの多くは、(1)メインメモリが足りない,(2)拡張ROM領域で同じメモリを複数の装置やソフトが取り合う,の2つだろう.拡張ROM領域をうまく使えるようになれば,周辺機器やメモリ環境のセットアップのトラブルも自分で解決できるようになるはずである.


ASCII1992(05)c21メモリ図1_W520.jpg
ASCII1992(05)c24メモリ画面1_W865.jpg
■ そうじゃよ。賢いのぉ。
◆ とーぜんのことよ。で,残りのメモリがXMSメモリ[4]に割り当てられるのね。これでWin3もエンハンスドモードで立つようになるってわけね。
■ もちろん,himem.sysを組み込んでおかんとだめじゃぞ。
 肝心なのは,メモリの配分じゃ。せっかくたくさんメモリを積んでおるのだから,仮想EMSとプロテクトメモリをうまく配分してメモリを賢く使うのじゃぞ。

5 XMS
 XMSは,プロテクトメモリを使用するための規格である。プロテクトメモリは,ちょっと特別なプログラムを書けば誰でもアクセスできるのだが,それでは危険このうえない.そこで,プロテクトメモリを使うプログラムはどれも,XMS規格に基づいた方法でメモリを使うようにすることで,同じメモリ領域を取り合うような事故を防ごうとしているわけである.XMSは,正確にはHMA,EMB,UMBの3つの規格を合わせたものである.HMAというのは,プロテクトメモリの最初の64Kbytesを利用するための規格,EMBはその上のプロテクトメモリを利用するための規格,UMBは別項に述べたUMB領域を利用するための規格である.XMS規格に準じた方法でメモリを扱うには「XMSドライバ」と呼ばれるソフトが必要だ。現時点ではDOS 5に付属する「HIMEM.SYS」か、MELWARE Ver.5に付属する「MELEMM.386」の2つしか選択肢はない(画面3).

ASCII1992(05)c24メモリ画面3_W849.jpg
ここまでくるともう訳が分からない。MS-DOSの限界が露呈したものと思っていた。
DOSエクステンダを使うには?
◆ おじさん,見かけによらず,なんでも知っているのねぇ.
■ ふおっふおっふお.
◆ じゃね、じゃね。もういっこ,困っていることがあるんだけど,聞いてもいいかな?
■ ふおっふおっふおっ.
◆ せっTeXが,かくインストールした日本語TeXが,動かないのよ.
■ なに,わしは,柏餅がだいすきじゃぞ.
◆ そうそう,子供のころ,お兄さんのコイのぼりが……,それは,端午の節句.
■ アントニオ・ガデスがいいぞ.
◆ それは,タンゴ。
■ だから、わしは柏餅が好きだと言ったじゃろ
◆ あのね,…….EXE386を起動するときに,へんなメッセージが出るの.
■ どらどら.これは,あったり前じゃよ.
◆ どうして,どうして.
■ CPUが仮想86モードで動いとるからじゃよ.
◆ それじゃあ、メッセージどおりじゃない.私が知りたいのは,どうしたらいいのか,ってことよ.
■ ようするにじゃ,EMSドライバがVCPI[7]に対応してないからじゃ。だから,VCPIに対応しておれば,そのままでもCPUをプロテクトモードで動かすことができるじゃろう.

7 VCPI
 286以上のCPUは,「プロテクトモード」という動作モードに移行すれば,640Kbytesの壁を無視してプログラムが書けるようになる.そこで,一部のソフトでは,起動はDOS上で行なうけれども,その後プロテクトモードに移って処理を続けることでメモリ不足を解消している.プログラムが終了したらまたDOSが動いているモード(リアルモード)に戻るわけである.
 ところが,すでにメモリマネージャがプロテクトメモリを利用している場合は,こういうソフトを起動することができない無理に起動すれば,EMSなどに使われているメモリ空間が破壊される可能性もあるからだ。だからといってメモリマネージャを使わなければ,今度はほかのソフトの動作に支障が出てくる.
 この両者のメモリ利用を調停するための規格がVCPIである.メモリマネージャがVCPIをサポートしていれば,その上でプロテクトモードを使うソフトを動かすことができる.こういうソフトは日本ではまだ少ないが,アシストのパワーカルクやパワーベース,フリーソフトウェアのTeXなど,今後数が増えてくることも予想される(画面5).
 98用のメモリマネージャで現在公式にVCPIをサポートしているのは,MELWAREVer.5だけである。


ASCII1992(05)c25メモリ画面5_W520.jpg
使えるというのと使い物になるのというのは違う。
◆ えーっMS-DOS 5のemm386.exeって,VCPIに対応してたんじゃないの?
■ 娘っ子,よく知っとるのぉ。でも,あまいぞ。98の世界は,そんなあまいもんやないで.
◆ なに,それ,で,そのココロは?
■ ふぉっふぉっふおっ.
◆ ポリンキーモードに入ったな。さては、知らないのね。
■ ふぉっふおっふおっ。まずは,MELWARE Ver.5を手に入れることじゃな.
◆ あれって、単体では売ってないんじゃないの?
■ そのとーり.
◆ もぉ,役に立たない情報ばかり.どーすれば,いいのよ.
■ 心配せんでもええ.メモリの載ってない,メルコの増設RAM用のボード(EDA-0)を買えばよいのじゃ。そうすれば,9800円で手に入る.
◆ へーっ。まあ、いちいちconfig.sysをスイッチして立ち上げ直すのを考えると,けっこう安いかもしれないわね。cinit.sys[18]を使っても,やっぱり面倒くさいものは,面倒くさいものね。さすが静岡.
■ これこれ。それは,まる子じゃ。しかも,仮想EMSも2倍以上速くなるのじゃ。今のところ,これしかないじゃろうな.
◆ とにかく,これを使えば,メモリさえあれば,一太郎もWindows 3.0もそれからDOSエクステンダのEXE386も,同じ設定で使えるようになるってわけね。
■ もう,これでリセットともおさらばね.ふぉっふぉっふおっ.



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。