「NEC PC98」カテゴリーアーカイブ

MS-DOSのファンクションキーについて

一時的な場所に設置したPC-98でMS-DOSのCLI操作を行っていると、作業的にキー入力がキツく、COPYコマンドで長いパスを入力しようとすると誤入力してしまって再度打ち直したり、同じコマンドを入力するにもまた一字ずつを入力してと、かなり面倒で作業が一向に進まない状況に陥っておりました。

LinuxみたいなCLIならではの入力支援機能が、MSDOSにもなかったっけ????と調べたところ、画面下端に表示されているファンクションキーのコマンドがなんとか使えそうとのこと。

そういや、学生時分、はじめてMS-DOSの画面を見たとき、これって何を表してるんだろう?って思ってたけど、実習ではMifesといったテキストエディタを使って長いソースコードを入力していたのと、MS-DOSで入力することはほとんど決まっていたし、バッチファイルで済ませていたのでファンクションキーってほとんど使ってなかった。

なので、あらためてこれについて調べたところ、MS-DOSでは「テンプレート機能」と呼ぶとのこと。
“テンプレート”とは、WindowsOSで言うところのコピペ操作で使用される”クリップボード”といったキー入力のキャッシュみたいなもので、直前に入力実行した入力文字列が自動的にテンプレートに登録されるようです。(実行結果の成否に関係なくすべて登録される)

そこで、いまさらながら、このテンプレート機能と使い方について、調べてまとめてみた。

”C1”(F1キー)・・・テンプレートに登録された入力文字列を頭から1文字ずつ新行にペーストする。 (おそらく、Copy 1charactorの略では?)

”CU”(F2キー)・・・ [F2]キーを押した後に、任意の英数記号1文字を入力することで、テンプレートに登録された文字列のうち、入力した1文字の前までの文字列を新行にペーストする。入力した1文字が文字列に複数個所存在する場合は、繰り返しこの操作を実施することで、次の1文字前までの文字(列)がペーストされていく。
(おそらく、Copy untill ・・・の略では?)


”CA”(F3キー)・・・テンプレートに登録された入力文字列すべてを新行にペーストする。 つまり、直前に実行したコマンドを繰り返して実行するリピート機能にあたる。 (おそらく、Copy all charactorsの略では?)


”S1”(F4キー)・・・ テンプレートに登録された入力文字列を頭から1文字ずつスキップ(=削除)していく。 たとえば、引数は同じだけど、コマンドだけを書き換えて実行したい場合に有効ではないかと思われる。(おそらく、Skip 1charactorの略では?)


”SU”(F5キー)・・・ [F5]キーを押した後に、任意の英数記号1文字を入力することで、テンプレートに登録された文字列のうち、入力した1文字の前までの文字列をスキップ(=削除)する。入力した1文字が文字列に複数個所存在する場合は、繰り返しこの操作を実施することで、次の1文字前までの文字(列)がスキップされていく。
(おそらく、Skip untill ・・・の略では?)


”VOID”(F6キー)・・・ 上述のテンプレートからの文字列の呼び出し操作(=ペースト)を実施すると、ペーストした文字列は、テンプレート上から消えてしまう。そこで、呼び出し操作をキャンセルし、テンプレートに登録された文字列が保存された状態に戻す。この操作を行うと、”¥”が表示され、新行が再表示される。(「void」という英単語の意味が”無効の”ということだから?)


”NWL”(F7キー)・・・ 現在の行にて入力中に[F7]キーを入力すると、実行させずにテンプレートに入力中の文字列をコピーすることができる。また、このとき入力行の末尾(入力中に [F7]キーを押した位置に、”@”記号が表示され、改行された後、プロンプト表示がない編集モード?状態にはいり、上述の各種テンプレート編集機能を駆使して、実行させたいコマンド文を編集することができる。


”INS”(F8キー)・・・ [F7]キーを押してテンプレートの編集モードになったときに、記憶した文字列の前に、コマンドなどの文字列を追加(ないし結合)させたい場合に、この[F8]キーを入力すれば、その後新たに入力した文字(または文字列)とテンプレートに記憶させた文字列を結合(=挿入)させることが可能となる。編集モード中に[F8]キーを押さずに文字列を入力すると、その入力した文字の文、記憶された文字列の頭から文字が差し替えられてしまう。

例)=====================================================

>test.c@ 
“type “と入力した後、[F3](CA)キーを押すと、
        ”type c”となってしまう。
    そこで、[F8]キーを押して、
“type”と入力した後、[F3](CA)キーを押すと、
        ”type test.c”となる。

   =====================================================

”REP”(F9キー)・・・ 前述の”INS”機能の無効化?意味不明。

”^Z”(F10キー)・・・ [CTRL]+[Z]のこと?意味不明。

最後の2つは意味不明状態ですが、、、それ以外はMS-DOSのCLI操作が幾分向上するかと思われるので、忘れないよう積極的に使っていこう!と思う。

MS-DOSのプロンプトを変えてみた。

学生時分、MS-DOSにちょっと詳しい(先輩から教えてもらったとか)人が、実習室のパソコン(もちろんPC98)を使用する際、まずやらかすのが自分専用カスタマイズとして、このDOSプロンプトの変更である。

デフォルトだと、白地でカレントドライブと”>”記号という味気ない表記で、パソコンを操作した経験がない(プロンプトを知らない)人なんかは、隣の学生の入力操作を盗み見る際に、よくプロンプト記号から入力してしまい実行に失敗するというミスが多かった。

そこで、(そういった人たちへの親切心からか?)プロンプトの表示色を白以外の色に変えたり、プロンプトの”>”記号を点滅させたりして、自慢する輩もいた。(私は、そんな面倒なことには興味なかったが、自分で購入した98ノートは白黒液晶で見にくいこともあったので、あとで教えを請い、自分のPCにはちゃっかり実装したという記憶がある)

そこで、(いまさらだが、、、)MS-DOSを再び操作することになり、この変更を再現したくなったので、以下に実装方法を記す。

プロンプトの変更コマンド”prompt”を使用する。

この引数に、下記のパラメータ文字を指定する。(プロンプト表示に使えそうなもの限定)

$t ・・・時刻を表示。書式は、”hh:mm:ss.ss”

$d  ・・・日付を表示書式は、”YYYY-MM-DD(曜日)”

$p ・・・カレントドライブとディレクトリパスの表示

$g ・・・”>”記号を表示

$l(エル) ・・・”<”記号を表示

$b ・・・”|(パイプライン)”記号を表示

$s ・・・空白文字を表示

$v ・・・”MS-DOS バージョン <Ver.番号>”の書式で表示

$n ・・・カレントのドライブ文字のみを表示

$e[<ESCシーケンスコード>m ・・・文字色や点滅、反転など、プロンプト文字の文字属性を設定。

ここで、
<ESCシーケンスコード> は、以下の数値が入る。

0=設定したすべての文字属性をリセットする。(設定し終わったら、最後に必ず入れること。さもないと、ユーザの文字入力の表示にも影響し、分かりづらい)

1=強調文字で表示

4=下線をつける

5=点滅

7=反転

8=シークレット(無表示)

30~37=文字色{黒・赤・緑・黄・青・マゼンタ・シアン・白}

40~47=反転文字の背景色{黒・赤・緑・黄・青・マゼンタ・シアン・白}

なお、うちの環境は、下記のように、プロンプト文字は、カレントディレクトリを表示させて、水色にして”>”記号は点滅させるようにしてます。

promptコマンドを実行しての設定変更は、パソコンを再起動させてしまうと消えてしまい、起動のたびに打ち込むのは面倒なので、a:\autoexec.batに、あらかじめ記載しておくとよい。

今思うと、ディレクトリが多階層になっているところの下層ディレクトリにカレントパスを移動させると、プロンプトだけで入力行の半分近くを占有してしまい、そういったときに見にくいという難点がある。(しかも、カレントディレクトリの確認は、”cd”コマンドで済んでしまうし)

Linuxと同じように”ユーザ名@ホスト名”にしたいところですが、そのようなパラメータ文字は用意されていないので、日時をプロンプトに表示させるのが実用的かもしれません。(ただし、日時両方だとプロンプトが長くなってしまいますが)

PC98版MSDOSエミュレータの導入

まず、目的としては、最近購入したNEC PC98UX(Intel 286 CPU)のクロスプラットホーム環境として利用可能な状態で導入することです。

今回のために選定したエミュレータは、”T98”です。最新版として、”T98-NEXT”もありますが、こちらは、PC-9821(Intel386)用のエミュレータとのことだったので、これではなく、あえて開発も終了した”T98”を選びました。(もちろんこちらが今回の要件にあった”PC-9801”用エミュレータだと思われたからです。)

これをWindows端末に ダウンロードさせていただきました。インストールは、インストーラをWクリックして完了!というわけではなく、ほぼほぼ手動となります。

なお、動作させることになるWindows端末のスペックとしては、
・i386系32BitWindows →WindowsXP Prof.(32bit) +SP3
・PentiumII300MHz以上 →PentiumM(1.3GHz)
・Memory32MB以上   →1GB
・DirectX5
・3モードフロッピーディスクドライブ(1.25MBのディスケットが使用可能)

ほかに必要なものとして、NEC版MS-DOSのインストールメディア(マスターディスケットをコピーしたバックアップ用メディアを作成のこと。こちらを本手順では使用します。)

その手順を以下に記します。

1.T98のオフィシャルサイトからダウンロードした圧縮ファイル(t98_027.lzh)を任意の場所に解凍します。

2.解凍したフォルダの中から、”T98.EXE”ファイルを見つけ、そのままWクリックして起動させます。
これは、手順的には、実行した端末の環境がエミュレータにあっているかをチェックするためとのこと。
適合していれば、98実機を電源ONした時のように、搭載メモリチェックのカウント表示[MEMORY 640KB + 1024KB]がされたのち、画面に何も表示されず「ピー」と音が鳴ります。

” 「ピー」と音が鳴る ”というか、鳴り続けてとまらないので、[ALT]+[F4]を押して停止させることを実行する前に覚えておきましょ

※また、(この音を鳴らすせい?か、)サウンドカードが利用可能な端末でないとNGとなります。NGとなった場合は、T98.exeファイルのあるフォルダ内にログファイル(LOG.TXT)が生成されているので、そのファイル内容を確認するとよいでしょう。(”WNASPI32.DLLがありません”が出力されているけど、現段階では無視します)

3.前手順2.のチェック結果がOKであれば、今後作業のしやすい任意のフォルダに、エミュレータ実行に必要なファイル”T98.EXE”および” T98.INI”をコピーし、さらにそのサブフォルダとして”BMP”と”RSC”を作成します。

補足)別途、本手順に必要なフリーのツールプログラム”dispell”や”RUNT98 ”をそれぞれのサイトからダウンロードし、同端末にインストールする。(これらは、T98のフォルダ配下に置いておくとよい?)

4.(ここからはいったん、T98から離れて、)エミュレータにインストールするMS-DOSのインストールイメージを作成していきます。
MS-DOSのインストールファイルを手元に用意し、これらのバックアップメディアを作成します。(MS-DOS3.3Dだと、フロッピー3枚となります。バックアップメディアの作成は、PC-98のDOSメニューから作成すればよいです)

5.バックアップメディアは、ライトプロテクトをはずしておきます。この状態で、Windows端末にて、ダウンロードして入手した”DISPELL”を使用して、バックアップメディアから ”EPSONチェック ”をはずします。(バックアップメディアに直接変更を加えるので、MS-DOSのマスターインストールメディアは使わないように)

> C:\T98Emu\DISPELL\DISPELL.EXE /a A:
※上記の例だと、”A:”がMS-DOSのインストールメディアを入れるFDDのドライブレターをあらわします。

補足)”EPSONチェック”とは、当時NECがエプソンの98互換機に対抗して、NEC純正品を使わせないようにした対抗措置のようです。

参考)ちなみに、 EPSONチェック がかかっているメディアは1枚だけのようでした。

6.このEPSONチェックが外れたMS-DOSインストールメディア(=バックアップメディア)をT98エミュレータで利用可能にするため、フロッピーディスクイメージを作成します。作成するに当たっては、RUNT98.exeを使用します。

※このとき、バックアップメディアすべてに対してライトプロテクトを有効にしておくこと。

7. RUNT98.exe を起動後、下図の画面中(親ウインドウにて)「FDD1]をクリックして表示される、「新規ディスクイメージ作成」ウィンドウにて、MSDOSインストールメディアのバックアップディスケットを、Windows端末のフロッピーディスクドライブに挿入後、ファイル名(下図と異なるが、あとあとの手順から、”半角8文字.拡張子”としておいたほうがよい)、ドライブ(Windows端末におけるFDDドライブ)、容量=”1232”を選択の上、「抽出」ボタンをクリックして、イメージファイルを作成する。

8.作成が完了したら、T98フォルダ内に(ファイル名で指定した)イメージファイルが枚数分生成されていることを確認する。

注)ここで、T98フォルダ内でなく別のフォルダに出力されていたら、後々の手順を考えて、T98フォルダへ移動させておくことを推奨。

9.RUNT98の画面にて、「FDD1]の欄に前手順で作成した(T98フォルダ内の)MSDOSインストールディスク#1のイメージファイル名を入力(T98フォルダ内であれば、パスの記述は不要)し、さらに「HDD1」には[新規HDD作成]アイコンをクリックして表示されるダイアログボックスにて、任意のファイル名とHDD容量(開発ターゲットの98の容量にあわせる)を入力の上、「作成」をクリックする。

9.下図のように、「FDD1」および「HDD1」の欄に入力後、「起動」をクリックする。

10.エミュレータが起動して、MSDOSのインストール画面が表示されるので、手順に従い操作する。(MSDOSのインストール手順は、「MS-DOS 3.3Dのインストール」を参照)

11.2枚目のメディアが要求されたら、「F11」キーを入力する。すると画面下端にコマンドメニューが表示されるので、「F9」キー(=TCNS)を押す。

12.”TCNS(=T98標準コンソール)”という小さなコンソール画面が表示されるので、その中で書きコマンドを実行する。

>DISK FDD0  <2枚目のイメージファイル名>

補足)”DISK”だけを実行すると、現在マウント中のディスクイメージが一覧表示される。(また、”MAN”コマンドで、使用可能コマンド一覧が表示される)

13.前手順のコンソール画面から、”EXIT”コマンドを実行してクローズ後、インストール画面に戻り、任意のキーを押して、2枚目のイメージファイルを読み込ませる。

14.すべてのインストールメディアを読み込ませて、インストール手順が終了したら、再度CLIコンソール画面を開き、今度はイメージファイル名を未入力の状態にして(>DISK FDD0 )実行して、メディアを未挿入状態にして、エミュレータを起動させる。

15.MS-DOSのメニュー画面が表示され、MS-DOSの操作が一通りできることを確認する。

以上


MS-DOS 3.3Dのインストール

じゃあ、早速はじめようか!!って、プログラム開発環境のためのツールプログラムやコンパイラを、今回購入した98UXにインストールしようと思ったら、、、、
インストールに失敗!

「何でだろう!?」と、わずかな知っているかぎりのコマンド(CHKDSK)で調べてみたら、なんと空き容量が1MB程度しかないとのこと。。。

本来、スペック上”20MBも”あるはずのHDDが、なぜか5MBしか認識していない。中身がすり返られているのかと筐体をあけて確認したところ、”D3126”の型番が記載されているので、そうではないらしい。。。(ここにもディップスイッチがあったのでこの設定かもと疑うも、どのような設定内容かの資料が見当たらない。

「早く言ってよ~!」(某名刺管理サービスのCM口調で)とつぶやけど、そこは(ここまで動作できているので)仕方ないか・・・と出品者への怒りはなく、あきらめて動作確認用としてインストールされていたMS-DOS5.0Aを潰して、オークションであらかじめ購入しておいた、MS-DOS3.3Dを入れなおすことにした。

(本来の目的は、「ネットワーククライアントOSを作る!」の予定)

インストールはいたって簡単で、MS-DOS3.3Dの1枚目のフロッピーディスクを入れて、起動させるだけ。

DSC_0074

最初に既存のパーティションを削除して、クリーンインストールする。

DSC_0075
DSC_0077

表示に従い、2枚目・3枚目のフロッピーをいれてゆき、インストール処理が完了。

DSC_0079
DSC_0081

再起動させてシステムが立ち上がるかを確認。。。問題なし!

再度、空き容量を確認したところ、それでも、2MB未満とフロッピー2枚分にも満たなかった。
これでも 実機で開発するのは困難だ。。。

またオークションで希少で価格の安くない内蔵HDDを落札するか・・・。でも、これだといつかは壊れて交換もできなくなってしまう。このことを想定して、当初から最終的にはCF化(SCSIボードを増設して、SCSItoIDE変換アダプタをかませて)しようと目論んでいたのだが、この段階で追加投資して増設するのも気が引ける。。。。

やはり、更なる出費を覚悟して増設するか。。。と思うも、その前にちょっと試しておきたいが思いついたので、それ先に試してみようと思った。

当初から、開発するに当たっては、コーディングは使い慣れているWin端末(Windows7 32bit)でおこない、これをフロッピーで実機に移して、コンパイルする作業イメージで考えていた。
(98を設置している場所が高い位置にあり、立ち作業でコーディングするのはさすがに無理だし、部屋のレイアウト変更も考えたがこれに手を出したら、別な方向で余計なコストがかかり本末転倒になるので)

だったら、クロスプラットホーム開発でできないかと、あれこれ調べたところ、PC98版MSDOSエミュレータなるものがあることを知り、これを前述のWin端末に実装して、コーディングからコンパイル・デバッグまでできるようになり、実機では実行するのみと、作業効率もよくなるのでは!!ということに考えが至った。

なので、次の話題としては、このエミュレータを使った開発環境の構築について記述していこうと思います。

往年の名機PC98のオーナーになりました!

平成最後のこの時期に、かねてから念願の、NEC PC9801シリーズ(以下、98”キューハチ”)のパソコンを、某オークションでなんと、1.5万円程で購入しました!

入手した98UX!

”98”といえば・・・(このページをご覧になっている方なら言わずもがな)、

昭和57年(1982年)に、NECから日本純正のビジネス向けパソコンとして発売!

この時期から日本は、第一次パソコンブーム(”ホビーパソコンブーム”とも呼ばれる)が訪れ、私もこのご時勢にあやかり、(当時のパソコンメーカ御三家のひとつ)シャープのX1-Fを小学生ながら持ってました。(もちろん、お年玉貯金+親の援助で購入)

ちなみに、このパソコンは民生向け(ホビーユーズ)で8ビットパソコンでした。NECは、これに対抗するパソコン製品として”88”(PC-8801シリーズ。通称、”ハチハチ”)を発売するなかでのビジネス用としての98は16ビットでした。

しかし、結局のところ、これらのパソコンは、ゲーム目的(これを作るヘビーユーザと実行して遊ぶだけの”LOAD&RUNer”を含めて)で使用されることが大半で、後に訪れる”ファミコン”ブームによって、終息させられてしまいました。

それから、しばらく月日が経ち、私が大学生ごろには、国内パソコンメーカも淘汰され、88のゲームソフトウェアを引き継いだ98は、もはや日本市場のほとんどを占めるくらいと言われるほど広まっており(第二次パソコンブーム)、入学した工学系の大学の実習場にあったパソコンも”98”で、これが私と98が出会うきっかけとなりました。(この98は、たしか”BX”というモデルだったか)

それからは、大学の講義・実習や研究だけに留まらず、自習のために学生ローンをしてまでノート型98(98Note NS/R)を購入しては、日夜いろいろ弄繰り回していたことを覚えています。(C言語による制御プログラミングを少々、大半は性能アップに励んでました)

ちなみに、この第二次パソコンブームは、パソコンを構成するH/Wが世界共通の公開仕様となって安価になったDOS/V機パソコンの登場と、95年にあの”Windows95″が登場することによって、13年間の長い繁栄に幕を下ろすことに。。。。

そういった古きよき頃の思いが、平成時代の終わりに急に強くなり、たまたま検索して見つかったオークションサイトで出品されていた”PC-9801UX”を見つけるや、速攻で落札しました。

ちなみに、飛びついた理由は、、、

以前から購入するなら、初代98で8086アセンブラの勉強をするか、98の最後となった”BX4”を買って今こそ業界標準OSとなったWindowsの原点ともいえるWindows95を再現させるかのいずれかと迷っていたのですが、しかしすでに思いとしては、両方手に入れようというところにまで熱くなってしまってました。

しかし、2台を置くほど部屋にスペースはなく(なんせ、プラモ製作で使用していた塗装ブースや塗料・工具もあるので)、後者は仮想化で何とかしよう考え、前者を入手しようと思っていたのですが、当時できなかったゲームもやりたいなあって思うようになり(秋葉原の@BEEPというお店に影響されて)、検索して見つけた98は、V30という8086互換CPUとi286の2つのCPUを持ち、なおかつ出品者が486にオーバードライブさせているし、当時の旧規格のHDD(SASI)搭載で、メモリも増設していて、1.5万円とコスパよすぎる!という至れり尽くせりのスペックで、両方のやりたいことをこの1台でかなえられる!ということで、落札ボタンをポチりました。。。

とはいえ、本体だけだったので、落札後、モニターとキーボード(ほかにも、マウス、LANボード、MSDOS)を立て続けに落札。もう、歯止めは利かず、調子に乗ってポチりまくり!! この結果、総額5万円程度の出費となってしまいました。(とはいえ、優良な98専門の中古ショップで購入すれば本体でこれくらいの値段です)

本体とキーボードが到着したら、自宅にある一番古い液晶モニタ(こちらもオークションでかなり前に購入)に早速つなげて、電源ON!

画面に表示されません!!(なぜだ!???)

そういや、、、この手の98は、ディップスイッチによる設定が必要だった!!

本体正面下のパネルを空けると

この設定方法をいろいろググッて、設定しなおしてみたところ・・・・

無事映りました!(懐かしい、角ばったキャラクタ文字が。。。しかも商品がよくて、内蔵HDDには、MS-DOS5がインストールされていた)

出品者に感謝!!

このディップスイッチの設定方法を含め、私の98に関する詳細(技術情報)については、今後別のページにまとめていこうと思います。

乞うご期待!