Last modified 8 years ago Last modified on 2010/10/15 17:10:40

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(最新版)で使用されている、hsp3.exeと同様に使用することができます。 実行ファイル作成用のランタイム(hsprt)もビルドの構成を選択することで作成可能です。

ソースのビルド方法(linux)

makefileを使用してgccでビルドすることが可能です。 現在確認しているgccのバージョンは、以下の通りです。

  • gcc4.1.1 (Fedra Core6)

ソースのビルド方法(win32)

VC++用のプロジェクトを読み込んでビルドすることが可能です。 現在確認しているバージョンは、以下の通りです。

  • Microsoft Visual C++ 2003
  • Microsoft Visual C++ 2005
  • Microsoft Visual C++ 2008

Windows依存部分について

Linux版は以下のWindows APIに依存する部分をサポートしていません。

  • COM関連機能のサポート
  • 外部ファイルリンクのサポート(DLL呼び出し、コマンド実行等)
  • GUI関連のサポート(hsp3cl相当の命令セットを持っています)
  • メディア関連の機能
  • 日付、時刻の取得
  • ディレクトリの作成、移動、ファイルの削除
  • 暗号化されたDPMファイルからの読み込み
  • wait、await等の時間待ち
  • システム情報の取得、フォルダ情報の取得など
  • コマンドラインの取得

これ以外の機能は、基本的にHSP3(最新版)と同等の動作となります。 (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では含めていません。今後、独自の実装を行なうことを検討しています。
more
Tools