==============================================================================
    L3/S1 BASIC 変換ツール
                                                              Version 0.6.7
                                                                2018/03/18

                           Copyright(C) Sasaji 2013-2018 All Rights Reserved.
==============================================================================

● はじめに

  日立 ベーシックマスターレベル3シリーズに搭載されているLEVEL-3 BASIC、
  MB-S1シリーズに搭載されているS1 BASICの中間言語形式やアスキー形式のデータ
  からテキストファイルに、またその逆に変換するアプリケーションです。


● 動作確認環境

  ◆Windows ... Windows10 / Windows7 SP1 / WindowsXP SP3
  ◆MacOSX .... Sierra(10.12.6) / El Capitan(10.11.6) / Lion(10.7.5) (64bit)
  ◆Linux ..... Debian GNU Linux 6.0.5 / Ubuntu 12.04

● インストール

  ◆Windows版

  1. l3s1basic_*.zipを解凍すると以下のファイルができます。

    l3s1basic.exe   ... アプリケーション本体
    Readme.txt      ... このファイル
    ChangeLog.txt   ... 更新履歴
    data/           ... 変換用データファイル
    lang/           ... ローカライゼーション
      ja/           ... 日本語
        l3s1basic.mo  ... 翻訳済みファイル

  2. l3s1basic.exe、data/、lang/以下を適当なフォルダにコピーしてください。
  3. l3s1basic.exeを実行します。

  実行時に、VC++ 2010 RUNTIMEのインストールが必要になるかもしれません。
  詳細はマイクロソフトのページで検索してください。

  ◆MacOSX版

  1. l3s1basic_*.dmgを解凍すると以下のファイルができます。

    l3s1basic.app/  ... アプリケーションフォルダ
      Contents/
        MacOS/
          l3s1basic ... アプリケーション本体
        Resources/  ... リソース
          data/     ... 変換用データファイル
          lang/     ... ローカライゼーション
            ja/     ... 日本語
              l3s1basic.mo... 翻訳済みファイル
    Readme.txt      ... このファイル
    ChangeLog.txt   ... 更新履歴

  2. l3s1basic.app/を適当なフォルダにコピーしてください。
  3. l3s1basic.app/をクリックして実行します。

  ◆Linux版

  1. l3s1basic_*.tar.gzを解凍すると以下のファイルができます。

    l3s1basic       ... アプリケーション本体
    Readme.txt      ... このファイル
    ChangeLog.txt   ... 更新履歴
    data/           ... 変換用データファイル
    lang/           ... ローカライゼーション
      ja/           ... 日本語
        l3s1basic.mo  ... 翻訳済みファイル

  2. l3s1basic、data/、lang/以下を適当なフォルダにコピーしてください。
  3. 実行権限がない場合は付けてください。
  4. l3s1basicを実行します。

  ■実行すると、同じフォルダに設定ファイル(l3s1basic.ini)が作成されます。


● アンインストール

  インストールしたフォルダを削除してください。


● 用途

  ■PCで作成したBASICプログラムを実機/エミュでロードする。

  ・作成したBASICプログラム -> l3s1basicでl3ファイルに変換 -> エミュでLOAD
      または
  ・作成したBASICプログラム -> l3s1basicで中間言語 or アスキー形式に変換 ->
    -> wavtool(*)で実ファイルからwavファイルに変換 -> 実機とPCをつなぎLOAD

  ■実機/エミュからセーブしたBASICプログラムをPC上で読めるようにする。

  ・実機とPCをつなぎSAVE -> wavtool(*)でwavファイルから実ファイルに変換 ->
    -> l3s1basicでアスキー/UTF-8形式に変換
      または
  ・エミュでl3ファイルでSAVE -> l3s1basicでアスキー/UTF-8形式に変換

  ■L3 BASIC <-> S1 BASICを中間言語形式どうしで変換

  ・L3 BASICとS1 BASICは中間言語形式レベルでは互換性がありませんが本ソフトで
    変換できます。ただし、命令のオプションなどの違いは変換しません。

  (*)拙作のテープイメージを解析/作成するソフトです。


○ メイン画面の説明

 [ 入力ファイル情報 ]
    ファイルを開くとファイルを解析した情報が設定されます。

    BASIC中間言語        ... BASIC中間言語形式のファイルです。
    BASIC種類            ... ROM BASIC/DISK BASICなどの種類です。

    アスキー形式テキスト ... BASICアスキー形式のファイルです。

    UTF-8形式テキスト    ... UTF-8形式のテキストファイルです。
    テキスト種類         ... 割り当てた文字セットの種類です。

    解析した結果と異なる場合は適宜変更してください。

    ●詳細は、後述の「対応ファイルの種類」の項を参照ください。

 [ 出力ファイル情報 ]
    出力するファイルの種類を設定します。

    BASIC中間言語        ... BASIC中間言語形式のファイルです。
    ディスク用(バイナリ) ... 上記のBASIC中間言語と同じです。
    テープイメージ(バイナリ) ... BASIC中間言語形式のテープイメージです。
    BASIC種類            ... BASIC中間言語形式で出力する時の種類を指定します。

    アスキー形式テキスト ... BASICアスキー形式のファイルです。
    ディスク用(アスキー) ... アスキー形式テキストと同じですが、改行をCR+LFに
                             します。
    テープイメージ(アスキー) ... アスキー形式のテープイメージです。改行をCRに
                             します。

    UTF-8形式テキスト    ... UTF-8形式のテキストファイルです。
    テキスト種類         ... UTF-8形式テキストで出力する時の文字セットの種類
                             です。

    エクスポート ........... 選択した種類のファイルを出力します。
                             テープイメージを出力する時、内部ファイル名を入力
                             するダイアログが表示されます。

    ●詳細は、後述の「対応ファイルの種類」の項を参照ください。

 [ 表示形式 ]
    インターレース/ノンインターレース/インターレース(全角)/漢字(シフトJIS)
      ... 表示したい文字セットの種類を選択します。
    フォント ... 表示に使用しているフォント名です。変更ボタンで変更できます。
    ●日本語フォントを選んでください。


○ メニュー説明

「ファイル」メニュー
  「開く...」 ......... 変換したいファイルを開きます。
                        サポートしているファイルは、
                        BASIC中間言語形式のファイル(拡張子は.binとしています。)
                        BASICアスキー形式のファイル(拡張子は.basとしています。)
                        UTF-8形式のテキストファイル(拡張子は.txtとしています。)
                        テープイメージのファイル(拡張子は.l3としています。)

  「閉じる」 .......... ファイルを閉じます。

  「エクスポート」 .... ファイルを変換し出力します。
    「BASIC中間言語形式」........... BASIC中間言語形式のファイルを出力。
          メイン画面のBASIC種類に応じた変換を行い出力します。
    「アスキー形式テキスト」........ BASICアスキー形式のファイルを出力。
    「UTF-8形式テキスト」........... UTF-8形式のテキストファイルを出力。
          メイン画面のテキスト種類に応じた変換を行い出力します。

    「ディスク用(バイナリ)」........ BASIC中間言語形式のファイルを出力。
          メイン画面のBASIC種類に応じた変換を行い出力します。
    「ディスク用(アスキー) 」....... アスキー形式のファイルを出力。
          改行をCR+LFにて出力します。

    「テープイメージ(バイナリ)」.... BASIC中間言語形式のテープイメージを出力。
          メイン画面のBASIC種類に応じた変換を行い出力します。
    「テープイメージ(アスキー) 」... アスキー形式のテープイメージを出力。

  「最近使用したファイル」.. 以前に開いたファイルを一覧で表示します。

  「終了」 ............ アプリケーションを終了します。

「その他」メニュー
  「設定」 ............ 設定ダイアログを表示します。


○ 設定ダイアログの説明

  [ 入力ファイル ]
  ・ テキストファイル
    ファイル終端コードまで読む ... チェックを入れると終端コードがあった場合に
                                   そこで読み込みを終了します。

  [ 出力ファイル ]
  ・ 中間言語形式
    ファイル終端コードを追加 ... チェックを入れるとファイル末尾に終端コードが
                                 入ります（テープイメージは除く）。

  ・ アスキー形式テキスト
    CR、LF、CR+LF .............. 改行コードを指定します。デフォルトはCR。
                                 テープイメージの場合はCR固定、ディスク用の場合
                                 はCR+LF固定になります。
    ファイル終端コードを追加 ... チェックを入れるとファイル末尾に終端コードが
                                 入ります（テープイメージは除く）。

  ・ UTF-8形式テキスト
    CR、LF、CR+LF .............. 改行コードを指定します。デフォルトはLF。
    BOMを含める   .............. チェックを入れるとファイルの先頭にBOMマークが
                                 入ります。

  ・ スタートアドレス
    BASIC中間言語形式に含めるスタートアドレスを指定します。
    L3 BASICのみ有効です。


● 対応ファイルの種類

  ■BASIC中間言語形式のファイル
    レベル3/S1のメモリ内で保存されている形式。
    レベル3/S1からAオプションをつけずにSAVEし、テープに関する付加情報を取り除く
  とこの形式になります。
    レベル3の説明書には内部表現形式とも書かれています。

  ■テープイメージ(バイナリ)
    L3/S1エミュからAオプションをつけずにSAVEしたテープイメージ。
    拡張子はデフォルトで.l3となります。

  ■ディスク用(バイナリ)
    BASIC中間言語形式のファイルと同じです。拡張子はデフォルトで.BASとなります。

  ■BASICアスキー形式のファイル
    レベル3/S1からAオプションを付けてSAVEし、テープに関する付加情報を取り除くと
  この形式になります。
    レベル3の説明書にはキャラクタ形式とも書かれています。

  ■テープイメージ(アスキー)
    L3/S1エミュからAオプションを付けてSAVEしたテープイメージ。
    拡張子はデフォルトで.l3となります。

  ■ディスク用(アスキー)
    BASICアスキー形式のファイルと同じですが、改行コードがCR+LFとなります。
    拡張子はデフォルトで.BASとなります。

  ■UTF-8形式のテキストファイル
    BASICアスキー形式のファイルはレベル3/S1独自のキャラクターが含まれている
  ことがあります。これらは、現在のPCでは正しく表示されないため、似ている文字を
  割り当てることで表示できるようにしたものがこのファイルです。
    このファイルには、インターレース、ノンインターレース、インターレース(全角)
  のそれぞれの割り当てパターンがあります。
    インターレース       ... 半角カナ、かなを全角で割り当てたもの。
    ノンインターレース   ... 記号などを近似の文字で割り当てたもの。
    インターレース(全角) ... カナかなとASCIIコードすべて全角で割り当てたもの。
    漢字(シフトJIS) ........ 漢字BASIC用。半角カナおよび全角文字をそのまま割り
                             当てたもの。


● 変換用データファイルについて

  dataフォルダにあります。

    basic_code.dat ... BASICコード変換テーブル

    char_code.dat ... アスキー <-> UTF-8文字変換テーブル
      このファイルはUTF-8で記述してください。


● 制限事項
   ・ファイル中に省略形を用いることはできません。ただしREMは'にできます。
    (例: PRINTの代わりに?は使用できない。)
   ・L3 BASICとS1 BASICの変換は命令レベルのみで、オプションなどの違いは変換
     しません。このため変換したファイルをマシン上でRUNするとIllegal function
     callなどのエラーになる可能性はあります。
   ・S1 BASICでバイナリ保存する場合、倍精度実数に丸め誤差が発生することが
     あります。実数演算を伴うプログラムはアスキー形式で保存してください。


● 開発環境

  Windows版: (CPU: Corei7 4770S 3.1GHz / Mem: 8GB)
    Microsoft Windows10 (64ビット環境)
      Microsoft Visual C++ 2010 Express Edition
      wxWidgets 3.0.2

  MacOSX版: (Mac Mini CPU: Corei5 / Mem: 4GB)
    Mac OS X El Capitan(10.11.6 Intel x86_64)
    Xcode 7 + wxWidgets 3.0.2

  Linux版: (VMwareです。)(CPU: Corei7 4770S 3.1GHz / Mem: 512KB)
    Debian GNU Linux 6.0.5 (i386 / amd64) + GNOME
      wxWidgets 3.0.2


● クレジット

  wxWidgets:
    wxWidgets is a C++ library that lets developers create applications for
  Windows, OS X, Linux and UNIX on 32-bit and 64-bit architectures as well as
  several mobile platforms including Windows Mobile, iPhone SDK and embedded
  GTK+. It has popular language bindings for Python, Perl, Ruby and many other
  languages. Unlike other cross-platform toolkits, wxWidgets gives its
  applications a truly native look and feel because it uses the platform's
  native API rather than emulating the GUI. It's also extensive, free, open-
  source and mature.
    http://www.wxwidgets.org/


● 免責事項

・このソフトはフリーウェアです。ただし、著作権は放棄しておりません。
  著作権は作者Sasajiにあります。
・このソフトによって発生したいかなる損害についても作者は一切責任を負いません。
  このソフトを使用するにあたってはすべて自己責任で行ってください。
・雑誌やネットなどに転載される場合、不特定多数の方に再配布を行う場合でも
  承諾の必要はありませんが、転載の旨をご連絡いただけたら幸いです。

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

連絡先：
  Sasaji (sasaji@s-sasaji.ddo.jp)
  http://s-sasaji.ddo.jp/bml3mk5/
  (Twitter: http://twitter.com/bml3mk5)

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

