Trunk/hsp3ディレクトリ
HSP3.x用のランタイム(実行部分)ソースが格納されています。(リポジトリを参照)
HSP3の中間コードを実行するアプリケーションを作成することができきます。 入力は、HSPオブジェクト中間コード(拡張子が.axのファイル)となります。
プロジェクトのルートディレクトリには、プラットフォーム間で共通のソースコードと、Linux版のmakefileが含まれています。 また、プラットフォーム依存のファイルが以下のディレクトリに格納されています。
- linuxディレクトリ(Linux版のための追加ソースコード)
- win32ディレクトリ(Windowsコンソール版のための追加ソースコード)
- win32guiディレクトリ(Windows GUI版のための追加ソースコード)
hsp3の内部動作に関する仕様については、hspsdkを参照してください。 中間コードの内部形式については、hsp3code.txtを参照してください。
更新についての話題
更新された内容について意見交換を行なうページです。 気が付いた点や、提案などあればご自由にお書き下さい。 単なる更新についての報告は必要ありません。
Hsp3(GUI/CUI)更新ノート
- 更新お疲れさまです。ソース内に細かいコメントを残す代わりに、こちらをお使い下さい。
コンソール(CUI)版の使い方
(例) test.axファイルを実行する
> hsp3 test.ax
Windows(GUI)版の使い方
通常のHSP3.1で使用されている、hsp3.exeと同様に使用することができます。 実行ファイル作成用のランタイム(hsprt)もビルドの構成を選択することで作成可能です。
ソースのビルド方法(linux)
makefileを使用してgccでビルドすることが可能です。 現在確認しているgccのバージョンは、以下の通りです。
- gcc4.1.1 (Fedra Core6)
ソースのビルド方法(win32)
VC++用のプロジェクトを読み込んでビルドすることが可能です。 現在確認しているバージョンは、以下の通りです。
- Microsoft Visual C++ 2005
Windows依存部分について
Linux版は以下のWindows APIに依存する部分をサポートしていません。
- COM関連機能のサポート
- 外部ファイルリンクのサポート(DLL呼び出し、コマンド実行等)
- GUI関連のサポート(hsp3cl相当の命令セットを持っています)
- メディア関連の機能
- 日付、時刻の取得
- ディレクトリの作成、移動、ファイルの削除
- 暗号化されたDPMファイルからの読み込み
- wait、await等の時間待ち
- システム情報の取得、フォルダ情報の取得など
- コマンドラインの取得
これ以外の機能は、基本的にHSP3.1と同等の動作となります。 (mes,input命令は、hsp3cl相当の標準入出力サポートを行ないます。)
hsp3config.hに、hsp3ソースにかかる設定ラベルが集められています。 これらのラベルは、コンパイラへのオプションで渡しています。 主なラベルの意味は、以下の通りです。
#define HSPWIN // Windows version flag
Windows版を示すラベルです。定義されている場合は、win32apiを利用します。
#define HSPWINGUI // Windows GUI version flag
Windows GUI版を示すラベルです。 必ずHSPWINラベルと同時に定義されている必要があります。
#define HSPMAC // Macintosh version flag #define HSPLINUX // Linux version flag
Macintosh及びLinuxに関する定義ラベルです。 移植の際にはこのラベルを利用してソースを改編して頂いて構いません。
#define JPN // IME use flag
日本語IME利用に関するラベルです。 現在、これらを判断する部分はありません。
#define JPNMSG // japanese message flag
メッセージに日本語を利用することを示すラベルです。 これが定義されていない場合は、基本的に英語メッセージが選択されます。
#define HSPDEBUG // Debug version flag
hsp3のランタイムが通常デバッグ実行時か、実行ファイル生成用のものかを識別するラベルです。Windows版であれば、このラベルが定義されている時は、「hsp3.exe」が生成され、定義されていない時は「hsprt」が生成されます。
既知の問題点、todo
- Linux版はコンパイルが通るだけで、まだ全機能の検証を行なっていません。不具合がある可能性があります。
- 実行ファイルに埋め込まれたデータの読み込み、dpmファイルからの読み込み、暗号化ファイルの対応についてはOpenHSPでは含めていません。今後、独自の実装を行なうことを検討しています。