BASIC
99 BasicとN88互換BASICへの手引き書


スキーで騎馬武者
透明スペーサー
home



◇ 開発者 潮田康夫氏(N88互換BASIC)・飯田 崇之氏(99Basic)てつさんに感謝


  私は20年数前にシャープの「ボケンコン」から入り、NECのPC-8001(カナ専用機)、無印の9801へと移り、以来NECの98シリーズ一筋で、7台ほどになります。(その後2003にソニーを購入)
 2つ前のパソコンは、1997/8に購入の「PC9821-V200MZC2」(クロック=199.6MHz メモリ=96MB)。
 OSは、少し不安定なWindows-95。経理、税理、顧客管理、ユーティリーティなど、数十の自作プログラムをDOS-ベシックで組み、仕事で使い続けてきました。
 この互換性の問題があり、長い間、新機種に買い換えが出来なかったのです。
 「販売実績ン万本という広告をうつ、某**BASIC」というソフトを、ン万円で購入もしてみました。速度の超遅さ、編集プログラムなどの使いにくさ、互換性があるとはいえかなりの手直しが必要なこと。といった理由で、数日間のテストで諦めました。
透明スペーサー
 そうした末に、ついに潮田 康夫氏作の「N88互換BASIC for Windows95」に出会うことが出来ました。
 確かに多少の欠点が残されているのは事実です。
 まず不安定さがあります。ちょっとしたことで、フリーズすることもあります。これもクセを知り、手入れの仕方や、プログラムの修正法を覚えれば、ほとんど解決されることです。(注: 2003/ 1〜2004/ 4現在では、この間一度もフリーズは起きていないハズ?です)
 またバグ?も残されているように思います。これもクセを知り、プログラムの修正法を覚えれば、ほとんど解決されることです。
透明スペーサー
 もう1つ、スピードの遅さもあります。仮にDOS-N88BASICなら1秒で済むものが、こちらでは30秒かかるとします。確かに精神衛生上は良くありません。少しイライラします。
 でもMS-DOSがストレートに動くパソコンは、NECでは何年も前に廃止しています。時代として、プリンターにしてもこれに対応するものは、キャノンのごく一部の機種しか存在しないように思います。
 こういったことを考えれば、仮に30秒待たされても実害は無いのですから、私にすれば「N88互換BASIC for Windows95」は神サマのような存在です。
 しかも実用に耐える完成度の高さを持つこのソフトは、無料なのです。仮にシェアソフトで、ン万円であったとしても、私は喜んで購入させていただきます。
透明スペーサー
 お蔭さまで2002/7には、NEC「PC-VL3003D」(クロック=1.1GHz メモリ=240MB)に買い換えが出来ました。OSのWindows-XPは快適の一語です。他のWindowsソフトの使い勝手も高まりました。また、Windows95対応のハードとソフトが激減している今、それが広がったことも有り難い限りです。
 「N88互換BASIC for Windows95」開発者である潮田 康夫氏に、心から感謝をしています。本当に有り難うございます。

当HP主催者 土方あきら ( 2002/11/30 )

透明スペーサー
 更なるスピードアップを求めて、1年後にはソニー バイオ PCV-HS23BL5 (クロック=Celeron 2.30 GHz)を買いましたが、倍速への夢 破れた顛末は別のところに載せてあります。

透明スペーサー
 N88互換BASICへの感謝の念を忘れた訳ではありませんが、人間、贅沢なものです。出会えたお陰で、この3年の間に新しいパソコンを2台も買うことが出来ましたが、速度の遅さに対する不満が高まってきました。
 そこで代わるBASICやエミュレーターをいくつか探しているとき、99Basicに出会いました。こちらはスピードなどの点で大満足をしています。純粋なDOS-N88BASICと比べると1/20程度の遅さですが、N88互換BASICと比べれば(4〜)20倍の速さです。
 「99Basic」開発者である飯田崇之氏にも、心から感謝をしています。本当に有り難うございます。
透明スペーサー
 しかし移植して使い始めようとすると、まずスタート時に幾つかの点で引っかかってしまうのものです。そのようなときに、99BasicのプログラミングQ&Aの掲示板(【リンク切れ】2013.10.28)をとおし、何点も指導してくれたてつさんという方にも、大変に助けられました。改めて御礼申し上げます。 透明スペーサー

当HP主催者 土方あきら ( 2004/ 6/05 )

Top  88Menu   99Menu  .



◇ 当ホームページ開設の目的

 「N88互換BASIC for Windows95」のテストに入り、はじめの頃は、ほんのちょっとしたことで、悪戦苦闘し、時にはかなりの時間を費やしたものです。
◇ 例えば、
 印刷がされる時と、されない時がある。
 RUN "***.BAS"で、他のプログラムが読み込める時と、ダメな時がある。
 PRINT *** TAB(?) **** などで、エラーになる場合がある。
   などなど、分かってしまえば簡単なことでも、それまでは大変なことです。
透明スペーサー
 その後2年が過ぎてから、99Basicに入りましたが、
◇ 例えば、
 「FIELD #2,51 AS W$」でファイルOPENしたのに、51バイト単位ではなく、256 バイト単位になってしまう。
 INPUT #? で正しくデーターが得られない。
   などなど、分かってしまえば簡単なことでも、それまでは大変なことです。
透明スペーサー
 「N88互換BASIC for Windows95」「99Basic」開発者に対する感謝の気持ちから、初期の私と同じ悩みを持つ人がいたら、ささやかな助けになりたいと考えました。
透明スペーサー
 MS-DOSが廃れてきてから年月が過ぎていますので、そういう人が何人いらっしゃるかも分かりません。たぶん今では、ごく少数の人かと思います。
 例え100人以下のほんのごく一部の方にでも、例え5人か10人の方にでも、チョッピリお役に立てれば幸いです。

Top  88Menu   99Menu  .



◇ 対応OSと利用範囲

◇ N88互換BASIC for Windows95では、
  Windows95 以上で動作する N88BASIC互換 のBASICインタプリタです。
N88BASIC 上で蓄積したプログラム資産を、Windows 上で走らせることが可能です(当然、DOS/Vマシンでも動く!)。
 と開発者が書かれています。
透明スペーサー
 また、「Windows95、98、MEでは大丈夫でしょう。一応私も2000Proでも実行してみました。そしたら普通にサンプルも動きました。なので、2000も大丈夫だと思います。」
 とは、私の質問に対する、ある方の回答です。
透明スペーサー
 私自身も、初期のテスト段階のしばらくはWindows95を使い、新パソコン購入前にはWindows98とXPで確かめています。
透明スペーサー
 ですから、Windows95、98、ME、2000、XPというOSでは使えるものと思います。
透明スペーサー
◇ 99Basicでは
 私自身は、Windows-XPでしかテストをしていませんが、【対応OS】Windows 95/98/Me/NT 4.0/2000/XPと書かれています。
 また2007/07/11の99Basic掲示板書き込み(【リンク切れ】2013.10.28)によれば、「Windows Vista(TM) Business環境で99Basic V1.19を使っています。Vistaで動くとは感激しました。HELPとプリンター指定が未対応ですが動作が速く快適です」とのことです。
 (一度テキストファイルでディスクに出力しておき、それをワープロやエディターで読み込み、それを印刷。この方法で、ケースによってはプリンター不対応を逃げることができます。)
 同書き込みでは、西口さんという方から、次のアドバイスをいただきました。
   HELPとプリンターも使えると思いますよ。プリンターがVistaに対応していればですが。
   HELPは旧タイプのものが非対応になっているので、追加でダウンロードする必要がありますが。
   それより、グラフィックが乱れたり終了時にエラーが 出たりするんですよね。


 2008/09/01ビィスタで、私が実際にテストした範囲でも、門題はありませんでした。ディスクへのファイル出力もOK。但し、印刷関係はまだテストしていません。
透明スペーサー
 その後2013秋からはWINDOWS8、2015/1からはWINDOWS8.1でも利用できています。
 更に2016秋からは、WINDOWS10も利用できています。
透明スペーサー
 なお、99Basicが立ち上がらない(一瞬99Basicの小窓が現れるだけで、すぐに消え去る)場合は、
 次を参照。

Top  88Menu   99Menu



◇ このホームページは、どのような人に

◇ その1.
* 多分、ゲーム関係にはあまり参考になりません。
* 主にはN88互換BASIC for Windows95、またはDOS-N88BASICとの違う部分の説明です。
* 全ての関数、コマンド解説ではなく、私の使用範囲で引っかかったものだけです。
* 99BasicやN88互換BASICを検討している人、入門中の人には多少のお助けになるのではないかと思います。
透明スペーサー
◇ その2.
 新たに複雑なベーシック・プログラムを組もうという人には、私としてはあまりお勧め出来ません。デバッグが大変です。(とくにN88互換BASIC for Windows95の場合)
 変数の書き換えなどは、基本的には文字列置換ソフトを利用すべきで、移植の手間が手間が激減します。これには専門知識は必要ありませんが、エディターが使えない人には少し辛いです。と言っても、それだけのプログラムを組む人、組んでいる人には、そんな訳は無いですね。
 ちなみに、
  • namespace gimite(Gimite 市川さん)
     この中にある「Devas」という置換ソフトが、フリーウエア、高機能、使い勝手良さなどから超お勧めです。
     検索や置換文字列は180という長さでもOK。これは凄いこと。未テストにつき、上限は不明。
     対象候補が7,813個あっても、配列?範囲オーバーにならない。未テストにつき、上限は不明。2008/ 7では、19,781個までOKでした。
     ちなみにOSとしては、私が使用した範囲では、WINDOWS XP、ビスタ、WINDOWS8、WINDOWS8.1、WINDOWS10でも利用できています。

 既にDOS時代に実務などの便利なベーシック・プログラムを組んでいて、Windowsに対応出来ないために、
1=
 諦めてプログラムを捨てた状態にしている人。
2=
 新しいパソコンが欲しくても買い換えが出来ずにいた人。
 というような人に対しては、強くお勧め致します。
透明スペーサー
 私の場合は、前記2.に該当しました。
 例えば、経理の伝票を一度打ち込めば、いろいろなプログラムによって決算も出来るし、決算書まで打ち出してそのまま税務署に申告出来ます。源泉所得税の申告書も、消費税も、レッスン料、ホテル代などの預かり金精算等なども、すべて出来ます。
 ですから、とても便利な、しかも10数年使い続けて使い勝手の良い、これらのプログラム群を捨てることが出来なかったのです。
透明スペーサー
 なお実際の仕事などに使う場合には、表面的なエラーつぶしだけで終わることは出来ません。互換BASICでは、「エラーを出さないが実質エラー」というケースもあるからです。
 99Basicでは、この例には出会っていませんが、まだ使用期間が短いため実際のところは不明です。
 実際に千枚単位の伝票を使い、「DOS-N88BASIC」と「N88互換BASIC for Windows95」または「99Basic」の両方で計算し、付け合わせることが大切です。これを全てのプログラムで行います。それも例外や、特殊ケースでの狂いを心配し、年度を替えるなどして確認すべきです。
 もしこの結果に一部でも違いがあれば、まだプログラムの直しが必要だということが分かります。
 以上は経理での例を挙げましたが、皆さん各自の条件、状況に合わせてお考えください。

Top  88Menu   99Menu


99BasicとN88互換BASICの比較

99BasicとN88互換BASICの比較
99BasicN88互換BASIC
配布方式フリーウエアフリーウエア
最新版ver 1.19 2002-03-09ver 1.10 2001.01.09
対応OS Windows95、98、ME、2000、XP、Vist、Windows7、WINDOWS8、WINDOWS8.1、Windows10 Windows95、98、ME、2000、XP (Vistは不明)
互換性DOS-N88BASICとの互換性も高い。また99BasicとN88互換BASICの間での互換性も高い。
とは言っても、もちろん使えない関数/コマンドや変数などはある。
OPEN #数同時に開けるファイルの最大数は4。
しかし、最大20まで拡張出来るそうです。
最大数は9のようです。
ちなみにDOS-N88BASICは11かそれ以上のハズ。
プログラム
   のサイズ
組めるプログラムの最大サイズは、DOS-N88BASICでは60kb弱のハズだったが、両方とも67kbを超えてもまだOK(99Basicでは70kb超OKを確認)。これは大変に助かる。

 ある人が、「114KBで、「39 Program text accident プログラムが破壊されている」エラーが発生。110KBまで削減したら動作」とのことなので、サイズの上限と思われる。
 但しプログラム領域を、300kbまで拡張することは可能なようである。
変数の記憶サイズDOS-N88BASICでは254b?という制限。これが99Basicでは1,240bていどまで拡大N88互換BASICについては不明。
フリーズ皆無か、それに近い。プログラム直しでは、起きやすい。
スピード.1N88互換BASICと比べて4〜20倍の速さ単純な文字表示が主体の場合は、99Basicとほぼ同速に近いこともある。
スピード.2DOS-N88BASICの36%?(→ 5%?)の速さ。DOS-N88BASICの 7%?(→ 1%?)の速さ。
上記は、3,500枚ほどの伝票表示で計測。但しテストで使用CPU は、DOS-N88BASICではPentium 199.6MHz、一方99BasicとN88互換BASICではCeleron 2.30 GHzと10倍速い。
従ってCPU差10倍を考えると、上記の更に1/5〜1/10ていど遅く、DOS-N88BASICと比べて99Basicは1/20= 5%?、N88互換BASICは1/100= 1%?程度の速さか?
エラーでの表示メッセージを日本語にも出来るが、単純に行番号だけを表示。その行のエラー発生カ所にカーソルが移動するので、原因を理解しやすい。
デバッグ実行画面でデバッグが出来るので便利。実行画面とは別にデバッグ画面がある。
私は未使用だが、変数ウォッチ機能は便利そう。
その他 STR$と DAT$の違い。それに関連した MID$と LEFT$。GET #? ,?-1と PUT #? ,?-1には悩まされる可能性大。

軽く、速いので、遅いCPUとWindows95のような古いOSの場合も、救われるのでは?

Top  88Menu   99Menu



99BasicとN88互換BASICの比較.2スピード

99BasicとN88互換BASICの比較.2スピード
速度比99BasicN88互換BASIC
◇顧客管理のKCRT.bas 500名のカードを順番に画面表示。条件検索は無し。
 99とN88の2つを同時に走らせたときは、1.2倍 151秒183秒
 相手をEND状態にして走らせたときは、3.7倍 44秒165秒
 相手を待機させて別々に走らせたときは、3.3倍 50秒167秒
◇上記と同じだが、一覧リスト

 相手を待機させて別々に走らせたときは、

3.1倍57秒179秒
◇経理の伝票チェック、ケイリ3.bas主にディスクアクセスと、伝票の画面表示
 1,328枚の伝票の単純表示では、5.5倍12秒66秒
 1,328枚の伝票の条件検索表示では、7.6倍8秒61秒
◇経理の科目別チェック、ケイリ28.bas主にディスクアクセス(3,000枚の伝票)と、指定科目の伝票を画面表示
5倍28秒136秒
◇経理の残高・損益試算表、ケイリ45.bas画面表示は少ない
19倍2秒37秒
◇経理の税金計算と申告書作り、
   TAX決算.bas
画面表示は結果だけで、計算が主体。
26倍2秒53秒
◇経理 台帳.bas特定科目を人別などに分類・表示・集計。画面表示は結果だけで、計算が主体。
19倍5秒96秒
 99BASICはかなり速く、1,400枚の伝票表示にウインドーズN88互換BASICでは66秒もかかったのが、こちらでは12秒。5.5倍もの夢のようなスピードで、嬉しい限りです。
 とくに集計、計算が中心で画面表示が少ない場合は、20倍近くのスピードが得られています。

◇2008/ 9にWINDOWSビスタのパソコンを買いました。
   WINDOWS95 / MsDosパソコン 1997/ 8/20購入 Pentium 199.6MHz
   XPパソコン 2003/09購入 インテル Celeron プロセッサー 2.30 GHz
   Vistパソコン 2009/09購入 CPU:Core2Duo T8100 (2.1GHz)
 Vistでは、XPと比べて99Basicは約2.5倍の速さになっています。ひじょうに快適で、これなら速度については全く気になりません。
 おおよその目安ですが、ウインドーズN88互換BASICと比べれば結果として最大60倍ほどの速さです。


 最速はもちろんDOS-N88BASICですが、VistではパソコンとCPUの性能向上の恩恵もあり、99Basicでも最大で往時のDOS-N88BASICの90%ほどのスピードになっています。結果的にはほぼ同速に近く、これならゲームユーザー以外には文句なしでしょう。


Top  88Menu   99Menu



◇ 99Basicでのスピードup作戦

 ここでは、99Basicそのもののスピードアップを図っている訳ではありません。
 プログラムの組み方を少し工夫することで、かなりの効果が得られることもあります。
 といっても私の場合と類似で、画面表示回数の多のケースに限ります。
 以上を、予めお断りしておきます。

 2002年の夏にN88互換BASIC for Windows95に巡り逢え、DOS-N88BASICのプログラムがWindowsでも実行できて、大変に助かり、感激したものです。
 しかし半年後の2003年の春には、そのスピードの遅さに不満も生まれています。パソコンも買い換えてみました。でもダメ。
 以来、いろいろなBASIC を調べ、エミュレーターにも入りかけましたが、幸いにも99Basicに出会え、2004/ 5頃からは完全に移行しました。条件にもよりますが、N88互換BASIC for Windows95と比べ、1.2倍から26倍という夢のような速さを得て大満足していました。
 ところが、それから更に2年過ぎた2006年春になると、ある条件の仕事に対して我慢が出来なくなりました。
透明スペーサー
 本日の例を紹介します。
 例えば経理の仕事なのですが、ある科目を選択し、1,600枚ほどの伝票を対象にその科目の伝票をすべて表示させます。時間にすれば、たった21から22秒の仕事です。ところがこれを何度も繰り返していると、この20秒ほどの待ち時間がたいへんに長く、何分も待たされているように感じてイライラするのです。ひどい苦痛です。
透明スペーサー
 そこで、以下のようにプログラムを変えました。
1.LOF( )という関数で、最大伝票枚数(仮に、I_MAXとします)を取得します。
2.99BasicというよりもWINDOWSそのものにとって、時間のかかってしまう苦手仕事が画面表示なのです。
 この苦手部分を1割減らせばスピードは2割アップ、半減させれば5倍くらい速くなるのではないでしょうか。
 ということで、I_MAXの150枚手前までは非表示として(画面表示命令の部分を素通りさせ)、以降のみを表示させます。
3.しかし、内部での計算は、I_MAXとは関係なく従来どおりに全てを対象に行います。
4.念のために、ディスクにはファイルとして、全てを対象に出力させておきます。1からI_MAXまでの間も見たい時に利用します。
 ファイル名を固定のものにしておき、それに対してショートカットキーを作っておけば、簡単に、ファイルを見ることができます。
1000 FOR I=1 TO I_MAX
1100               '    通常の計算処理をする    -------  高速処理される部分です
1200               '    念のためディスク出力    -------  それほど時間を食いません
1300   IF I< I_MAX -150 THEN GOTO *EXIT
1400      PRINT "必要な画面表示を行う"      '   -------  大半の時間を食う部分です
1500  *EXIT
1600 NEXT
5.以上の結果、
 従来は21から22秒かかっていた仕事が、1から2秒という夢の速さに変わっています。これなら何回繰り返してもストレスは貯まりません。
透明スペーサー
 大した変更を行った訳ではありませんが、結果には大満足をしています。
 もしどなたかのご参考になれば幸いです。

Top  88Menu   99Menu




◇ n88 困っていたこと

 お蔭さまで99Basicというものに取り組み、ほぼ使えるようになってきました。
 詳しくは以下のとおりです。

 めったに使わないプログラムの場合は、DOS-BASICでは1分で済んでいたものが互換BASICでは5〜10分かかっても、諦めがつきます。
 しかし頻繁に使うプログラムの場合は、もう少し早く処理出来ないものかとため息が出るのも事実です。
 そこで、他の互換性のあるOS言語をときどき思い出しては探しています。
* DOS版と互換性が高いこと。
* 速度が、速いこと、または遅くないこと。出来ればN88互換BASIC for Windows95の2〜10倍くらいが希望。
* 出来れば、今も現役で改善などが続いているもの。
* そして出来れば、フリーソフトであること。少なくともシェアウエアとしてテスト出来ること。
 どなたか、以上のような虫の良い希望を叶えてくれそうなソフトをご存じないでしょうか。
透明スペーサー
 あるいは、私はまったく使ったことはありませんが、エミュレーターは如何でしょうか? 
 最近の日経パソコンという雑誌では、「甦るPC-9801伝説 永久保存版」(アスキー出版 2,800円)の紹介記事がありました。当時のゲーム26本とエミュレーターが入ったCD付き。「新刊」となっているので、過去の話ではありません。
 私にはゲームは必要ないし、まさかゲームをBASICで組んでいるとは思えません。BASICで動くのかどうかを知りたいです。
透明スペーサー
 あるいは、N88互換BASIC for Windows95に限らず、WINDOWS上で使えるBASICに関する役立ちホームページをご存じないでしょうか。
   → 2004/ 5下旬 解決

Top  88Menu   99Menu