N88-日本語BASIC の Windows への移植について

現在でもN88-日本語BASICの資産が多く残されており、いつかはWindowsへとご希望の方々も多いことでしょう。
残念ながら、そのままでは Windows上で稼動させることができません。
多くの方々は、Windows用の開発言語(Visual Stadio .NET 等)で新規に「開発」依頼されておられます。
弊社も、これがマシン・ソフトにとっても、また、ご使用される方にとっても、最良の方法だと考えております。

しかし、
機能的には問題が無いが、パソコン本体が老朽化して問題がある・・・
数年後にリプレース予定だが、それまで何とか持ちこたえたい・・・
リプレースしたいが、予算が・・・
設計書がないので、新規開発の仕様が起こせない・・・
等の、諸般の事情により、「とりあえずWindowsで動けば」というご希望も多いです。
そういう場合には、弊社は
N88-日本語BASICとの互換を謳っている言語
N88-日本語BASICとの互換性の高い言語
     ※以下、N88互換言語 と表記します。

N88互換言語の例
F-BASIC 6.3(富士通)
BASIC/98(電脳組)
・・・
99 Basic(フリー)
N88互換BASIC for Windows95(フリー)
ActiveBasic(フリー)
etc・・・
の利用をお薦めしております。

但し、あくまでも、エミュレーション的な言語ですので、簡単に移植できるわけではありません。
各N88互換言語の説明を読みますと、簡単に移植できるように感じますが、実際はそうではありません。
以下の各問題点があります。
インターフェースは「N88」風のままである
新規機能の追加はしない
    ※機能追加したいならば、新規開発した方が無駄が無いから。
メモリ操作やI/Oへの直接アクセスはしない
機械語ルーチンはあきらめる
拡張ボードの操作・アクセスはしない(一部可能)
効果音は無し
画像の特殊効果(パレット操作等)は無し
外字は使わない
あくまでWindows用開発言語に移行するための段階的処置である
ファイルI/O(漢字混在、ランダム等)の修正には、時間と根性が必要
    ※ファイル仕様、設計書が無い場合は特に。
業務アプリの場合は、特にファイルI/O関係がネックとなります。



◎N88-日本語BASIC のDisk版とMS-DOS版について

N88-日本語BASICにはROM版、Disk版、MS-DOS版があります。

移植する場合、最終的には、MS-DOS版のアスキー形式のプログラムソース(メモ帳などで読める形式)
に変換したうえで、Windowsで読み込める形にしなければなりません。
Disk版の場合は、Disk版上で一旦、アスキーセーブしなおしてから、更にMS-DOS版に変換し、Windows
で読み込む必要があります。

※データー関係は、無闇にアスキー形式に変換するわけにはゆきません。バイナリー形式で保存されて
  いる場合が多いからです。
  また、プログラムとしては、ファイルI/Oの修正が必要になります。
ROM版はレコーダー(所謂 カセットテープ)に保存されておりますから、Disk版に変換しなければな
  りません。
  しかし、そこまでやる必要のあるプログラムは少ないのではないでしょうか?



★N88互換言語について

N88互換言語には、前述のとおり、メーカー製をはじめ、フリーでも多く存在しております。
※フリーの言語で、商用目的を禁じているもの、不安定なものは、弊社は使用致しません。

フリーには、保障の問題があります。
言語自体のバグ修正や将来のバージョンアップに不安もあることでしょう。
しかし、「価格は高いが、メーカー製が良い」という結論にはなりません。

保障に関して言えば、メーカー製であっても、言語自体の保障はありますが、作られたアプリの保障は
ないのです。
ということは、本格的な Windows言語への移行段階のためと割り切れば、安定しているフリーでもいい
のでは?と思います。

N88互換言語には、変換ツールを装備しているものもありますが、
     自動変換ツールでは、そのN88互換言語でエラーが出ないように変換してくれるだけ
と、考えた方が賢明です。
特にグラフィック関連は、元々のハードが異なるのですから、注意が必要です。
同じ命令・関数が存在していても、その意味やパラメータが異なっていたり、別の命令・関数に置き換
わっている場合もあります。
パレットやタイルパターンは、あまり対応されておりませんし、テキスト画面とグラフィック画面を意識した
関数が用意されていないものもあります。
Windows用言語に精通された方々には、「テキスト画面」「グラフィック画面」の存在が不思議かもしれま
せんが、N88-日本語BASICの時代は、テキストとグラフィック画面が独立しておりました。
この特性を意識したプログラムの場合、修正量が大幅に増大します。
また、メモリ関連(PEEK,POKE,SEG・・・ )は、ほとんどが未対応です。
機械語ルーチンは、仕様書・設計書があれば置き換えが可能ですが、無ければあきらめることになります。
結局は、メーカー製であってもフリーであっても、ソースを丁寧に調べて修正することになります。

例えば、変換関数「STR$」を例にあげてみます。
※初歩的な例です。

10 A$=STR$(123)
20 PRINT "結果0=";A$
30 B$="000"+A$
40 PRINT "結果1=";B$
50 C$="000"+MID$(A$,2)
60 PRINT "結果2=";C$

N88-日本語BASICの実行結果
結果0= 123
結果1=000 123
結果2=000123

N88互換言語Aの実行結果
結果0= 123
結果1=000 123
結果2=000123

N88互換言語Bの実行結果
結果0=123
結果1=000123
結果2=00023

結果0については、大きな問題はありませんね。
しかし、他の関数等と組み合わせた場合(行番号30、50 のように)には、自動変換ツールでは人間が
期待する結果になっているかどうかまでは判断できまん。
人間がアプリケーションの仕様に従って、修正する必要があるのです。
場合によっては、思い切った機能削除も考えなければなりません。

どのN88互換言語が一番か、というのではなく、対象アプリケーションごとに
プログラムの修正が一番少ないN88互換言語はどれか
プログラムの機能削除が一番少ないN88互換言語はどれか
対象業務にとって、安定性・信頼性があるN88互換言語はどれか
という具合に、総合的に判断するしかありません。


弊社では、何本もの移植を請け負ってまいりました。
当然、対象アプリケーションにあわせて、使用するN88互換言語を選択しております。
また、全体的にはN88互換言語を使用し、一部分を他のWindows用開発言語で補うなどの方策も行っ
ております。

N88-日本語BASICの資産でお悩みの方は、
               是非、弊社にご相談下さい。



「BASIC/98」のサンプル画面です。
BASIC/98のイメージ画面

「99BASIC」のサンプル画面です。
99BASICのイメージ画面