JPH06149621A - エミュレータ - Google Patents
エミュレータInfo
- Publication number
- JPH06149621A JPH06149621A JP4294628A JP29462892A JPH06149621A JP H06149621 A JPH06149621 A JP H06149621A JP 4294628 A JP4294628 A JP 4294628A JP 29462892 A JP29462892 A JP 29462892A JP H06149621 A JPH06149621 A JP H06149621A
- Authority
- JP
- Japan
- Prior art keywords
- handy terminal
- emulator
- program
- function
- setting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 ハンディターミナル1の表示画面の態様を開
発マシン上でシミュレートすることができるエミュレー
タを実現する。 【構成】 起動時に初期化状態設定ルーチンによってハ
ンディターミナル1のハードウェア構成がエミュレート
され、以降、ハンディターミナル1用に作成したプログ
ラムと同一の引数で定義された各関数ルーチンから構成
されるエミュレータEMが、それぞれ開発マシン側のハ
ードウェア構成に対応した各機能を、ハンディターミナ
ル1の仕様に合わせてエミュレートする。
発マシン上でシミュレートすることができるエミュレー
タを実現する。 【構成】 起動時に初期化状態設定ルーチンによってハ
ンディターミナル1のハードウェア構成がエミュレート
され、以降、ハンディターミナル1用に作成したプログ
ラムと同一の引数で定義された各関数ルーチンから構成
されるエミュレータEMが、それぞれ開発マシン側のハ
ードウェア構成に対応した各機能を、ハンディターミナ
ル1の仕様に合わせてエミュレートする。
Description
【0001】
【産業上の利用分野】この発明は、例えば、「ハンディ
ターミナル」と呼ばれる携帯可能なコンピュータ用のア
プリケーションプログラム開発に用いて好適なエミュレ
ータに関する。
ターミナル」と呼ばれる携帯可能なコンピュータ用のア
プリケーションプログラム開発に用いて好適なエミュレ
ータに関する。
【0002】
【従来の技術】近年、「ハンディターミナル」と呼ばれ
る携帯可能なコンピュータが各種実用化されている。こ
の種のコンピュータは、ポータブルに構成されており、
携行先で種々のデータ処理が可能になるため、様々な分
野で使用されている。図9は、このようなハンディター
ミナル1の外観構成を示す平面図である。ハンディター
ミナル1の操作面には、テンキーやファンクション・キ
ー等から成る操作キー1e1 と、透明タッチパネル1e
2 を有するLCD(液晶表示素子)の表示画面TDとが
備えられる。なお、このLCDは、そのコントラストが
調節可能になっており、また、暗い場所でも、表示が識
別できるようにバックライト(図示省略)が備えられ
る。そして、表示画面TDには、例えば図示のように、
各種アプリケーションプログラムの選択メニュー表示が
なされる。
る携帯可能なコンピュータが各種実用化されている。こ
の種のコンピュータは、ポータブルに構成されており、
携行先で種々のデータ処理が可能になるため、様々な分
野で使用されている。図9は、このようなハンディター
ミナル1の外観構成を示す平面図である。ハンディター
ミナル1の操作面には、テンキーやファンクション・キ
ー等から成る操作キー1e1 と、透明タッチパネル1e
2 を有するLCD(液晶表示素子)の表示画面TDとが
備えられる。なお、このLCDは、そのコントラストが
調節可能になっており、また、暗い場所でも、表示が識
別できるようにバックライト(図示省略)が備えられ
る。そして、表示画面TDには、例えば図示のように、
各種アプリケーションプログラムの選択メニュー表示が
なされる。
【0003】図10は、ハンディターミナル1の電気的
構成を示すブロック図である。この図において、1aは
ハンディターミナル1の各部を制御するCPUである。
1bは、CPU1aの基本的な動作を制御するオペレー
ティングシステムプログラム(以下、これをOSと略
す)が記憶されるROMである。1cは対応業務用のア
プリケーションプログラムがロードされると共に、該プ
ログラムのワークエリアとして各種レジスタ値が一時記
憶されるRAMである。1dはLCDの表示回路であ
り、内部バスを介してCPU1aから供給される各種デ
ータ等を表示する。1eは、操作キー1e1 および透明
タッチパネル1e2 の操作状態を検出する操作子であ
り、各操作に応じた操作子信号を発生する。
構成を示すブロック図である。この図において、1aは
ハンディターミナル1の各部を制御するCPUである。
1bは、CPU1aの基本的な動作を制御するオペレー
ティングシステムプログラム(以下、これをOSと略
す)が記憶されるROMである。1cは対応業務用のア
プリケーションプログラムがロードされると共に、該プ
ログラムのワークエリアとして各種レジスタ値が一時記
憶されるRAMである。1dはLCDの表示回路であ
り、内部バスを介してCPU1aから供給される各種デ
ータ等を表示する。1eは、操作キー1e1 および透明
タッチパネル1e2 の操作状態を検出する操作子であ
り、各操作に応じた操作子信号を発生する。
【0004】1fは、ハンディターミナル1本体の背面
に対し着脱自在に構成されるメモリカードである。この
メモリカード1fには、上述したアプリケーションプロ
グラム、あるいは当該プログラムによって参照される各
種データが記憶される。なお、メモリカード1fに記憶
されるデータは、図示されていない上位コンピュータか
らダウンロードされるものである。1gは、例えば、モ
デム等から構成され、シリアルデータ通信を制御する通
信制御回路である。なお、この図では示されないが、ハ
ンディターミナル1には、携行性が重視されるために、
動作電源として電池が用いられ、この電池は主電池と、
この主電池の交換時におけるバックアップ電源としての
副電池とに分かれている。メモリカード1fにも記憶内
容をバックアップするために、電池が使用されている。
に対し着脱自在に構成されるメモリカードである。この
メモリカード1fには、上述したアプリケーションプロ
グラム、あるいは当該プログラムによって参照される各
種データが記憶される。なお、メモリカード1fに記憶
されるデータは、図示されていない上位コンピュータか
らダウンロードされるものである。1gは、例えば、モ
デム等から構成され、シリアルデータ通信を制御する通
信制御回路である。なお、この図では示されないが、ハ
ンディターミナル1には、携行性が重視されるために、
動作電源として電池が用いられ、この電池は主電池と、
この主電池の交換時におけるバックアップ電源としての
副電池とに分かれている。メモリカード1fにも記憶内
容をバックアップするために、電池が使用されている。
【0005】このような構成によるハンディターミナル
1では、リセットによってダウンロードあるいはメモリ
カードからOSが立ち上がる。なお、ハンディターミナ
ル1は、電源をOFFにしてもリセットがかからない構
成となっており、通常は、次回の電源ON時に、電源O
FFした状態からリスタートするようになっている。そ
して、OSが立ち上がった後に、対応業務用のアプリケ
ーションプログラムがデータ処理を実行する。さらに、
表示画面TDに、図9に示すような選択メニュー画面の
表示がなされている場合には、プログラム名が表示され
ている表示画面TD(透明タッチパネル1e2 )の部分
を触れると、該プログラムが実行されるようになってい
る。
1では、リセットによってダウンロードあるいはメモリ
カードからOSが立ち上がる。なお、ハンディターミナ
ル1は、電源をOFFにしてもリセットがかからない構
成となっており、通常は、次回の電源ON時に、電源O
FFした状態からリスタートするようになっている。そ
して、OSが立ち上がった後に、対応業務用のアプリケ
ーションプログラムがデータ処理を実行する。さらに、
表示画面TDに、図9に示すような選択メニュー画面の
表示がなされている場合には、プログラム名が表示され
ている表示画面TD(透明タッチパネル1e2 )の部分
を触れると、該プログラムが実行されるようになってい
る。
【0006】ところで、ハンディターミナル1で動作す
るアプリケーションプログラムは、「C言語」と呼ばれ
る構造化プログラミング言語で記述される場合が多い。
図11は、「C言語」によるプログラム開発手順を示す
図である。この図に示すように、プログラム開発は、コ
ーディング、コンパイルおよびリンクの各作業からな
り、実機デバッグを経て当該プログラムの動作が検証さ
れる。なお、このコーディング、コンパイルおよびリン
クの各作業は、通常、開発マシン(例えば、パーソナル
コンピュータ)上で行われる。
るアプリケーションプログラムは、「C言語」と呼ばれ
る構造化プログラミング言語で記述される場合が多い。
図11は、「C言語」によるプログラム開発手順を示す
図である。この図に示すように、プログラム開発は、コ
ーディング、コンパイルおよびリンクの各作業からな
り、実機デバッグを経て当該プログラムの動作が検証さ
れる。なお、このコーディング、コンパイルおよびリン
クの各作業は、通常、開発マシン(例えば、パーソナル
コンピュータ)上で行われる。
【0007】コーディングにおいては、予め定められた
システム仕様に基づき、ソースプログラムをC言語で記
述する。このソースプログラムは、ソースファイルsf
として開発マシン上に登録される。ソースファイルsf
は、コンパイラCCの入力ファイルとなる。コンパイラ
CCでは、C言語で記述されたソースプログラムを語彙
解析、構造解析および意味解析し、この結果をリロケー
タブルな中間コードで記述されたオブジェクトプログラ
ムに変換する。このオブジジェクトプログラムは、開発
マシン上でオブジェクトファイルofとして登録され
る。
システム仕様に基づき、ソースプログラムをC言語で記
述する。このソースプログラムは、ソースファイルsf
として開発マシン上に登録される。ソースファイルsf
は、コンパイラCCの入力ファイルとなる。コンパイラ
CCでは、C言語で記述されたソースプログラムを語彙
解析、構造解析および意味解析し、この結果をリロケー
タブルな中間コードで記述されたオブジェクトプログラ
ムに変換する。このオブジジェクトプログラムは、開発
マシン上でオブジェクトファイルofとして登録され
る。
【0008】リンカLKでは、オブジェクトファイルo
fに対し、標準関数ライブラリSLと、ターミナル専用
関数ライブラリTLとを結合させ、マシン語で記述され
た実行ファイルEfを生成する。ここで、標準関数ライ
ブラリSLは、C言語において定義される各種の制御関
数ルーチンプログラムから構成されている。また、ター
ミナル専用関数ライブラリTLは、ハンディターミナル
1のハードウェア環境で動作するように定義された専用
プログラム群から構成されるものである。
fに対し、標準関数ライブラリSLと、ターミナル専用
関数ライブラリTLとを結合させ、マシン語で記述され
た実行ファイルEfを生成する。ここで、標準関数ライ
ブラリSLは、C言語において定義される各種の制御関
数ルーチンプログラムから構成されている。また、ター
ミナル専用関数ライブラリTLは、ハンディターミナル
1のハードウェア環境で動作するように定義された専用
プログラム群から構成されるものである。
【0009】すなわち、リンカLKでは、オブジェクト
プログラムにおいてコールされる種々のルーチンプログ
ラムや専用プログラムが、上述した各ライブラリSL,
TLから引用され、これらをオブジェクトプログラムに
結合させる。これにより、リロケータブルな中間コード
で記述されたプログラムが実行形式に変換され、実行フ
ァイルEfとして生成される。このようにして生成され
る実行形式のアプリケーションプログラムは、絶対アド
レス上に展開可能な形態となる。
プログラムにおいてコールされる種々のルーチンプログ
ラムや専用プログラムが、上述した各ライブラリSL,
TLから引用され、これらをオブジェクトプログラムに
結合させる。これにより、リロケータブルな中間コード
で記述されたプログラムが実行形式に変換され、実行フ
ァイルEfとして生成される。このようにして生成され
る実行形式のアプリケーションプログラムは、絶対アド
レス上に展開可能な形態となる。
【0010】次に、実行ファイルEfは、例えば、開発
マシンから通信により、CPU1aにダウンロードDL
される。これにより、ハンディターミナル1上で実機デ
バッグDG1が施される。実機デバッグDG1において
は、予め策定された検査項目に従ってアプリケーション
プログラムの動作を検証する。この実機デバッグDG1
でバグが露見した場合には、ソースプログラムの対応箇
所を修正する。そして、修正されたソースプログラム
は、再びコンパイル、リンク作業を経て実行ファイル化
されて実機デバッグDG1が繰り返される。
マシンから通信により、CPU1aにダウンロードDL
される。これにより、ハンディターミナル1上で実機デ
バッグDG1が施される。実機デバッグDG1において
は、予め策定された検査項目に従ってアプリケーション
プログラムの動作を検証する。この実機デバッグDG1
でバグが露見した場合には、ソースプログラムの対応箇
所を修正する。そして、修正されたソースプログラム
は、再びコンパイル、リンク作業を経て実行ファイル化
されて実機デバッグDG1が繰り返される。
【0011】
【発明が解決しようとする課題】さて、上述したプログ
ラム開発手順においては、ハンディターミナル1上でバ
グが露見する度毎に、当該バグに対応するソースプログ
ラム部分を修正し、これを再度実行ファイル化してハン
ディターミナル1にダウンロードしなければならない。
このため、実機デバッグDG1には多大な工数が費やさ
れ、結果的に開発コスト上昇を招致するという弊害があ
る。
ラム開発手順においては、ハンディターミナル1上でバ
グが露見する度毎に、当該バグに対応するソースプログ
ラム部分を修正し、これを再度実行ファイル化してハン
ディターミナル1にダウンロードしなければならない。
このため、実機デバッグDG1には多大な工数が費やさ
れ、結果的に開発コスト上昇を招致するという弊害があ
る。
【0012】そこで、こうした弊害を解決するには、上
述したコーディング、コンパイル、リンクおよびデバッ
グからなる一連の作業を全て開発マシン上で行い、か
つ、デバッグ作業時には、特に、開発マシン上でハンデ
ィターミナル1の動作状態を全て把握できるようになる
ことが要求される。これを換言すれば、開発マシン上で
アプリケーションプログラムを実行し、ハンディターミ
ナル1の動作をエミュレートできれば、上述した欠点が
解消され、効率の良いプログラム開発が可能になる訳で
ある。
述したコーディング、コンパイル、リンクおよびデバッ
グからなる一連の作業を全て開発マシン上で行い、か
つ、デバッグ作業時には、特に、開発マシン上でハンデ
ィターミナル1の動作状態を全て把握できるようになる
ことが要求される。これを換言すれば、開発マシン上で
アプリケーションプログラムを実行し、ハンディターミ
ナル1の動作をエミュレートできれば、上述した欠点が
解消され、効率の良いプログラム開発が可能になる訳で
ある。
【0013】ところで、ハンディターミナル1と開発マ
シンとでは、当然のことながら、そのハードウェア環境
が全く異なる場合が多い。これには、例えば、表示画面
の能力や、マウスの有無などがある。したがって、エミ
ュレータの起動時には、ハンディのハードウェア環境に
合わせるための、初期化設定を行なう必要がある、とい
う問題があった。
シンとでは、当然のことながら、そのハードウェア環境
が全く異なる場合が多い。これには、例えば、表示画面
の能力や、マウスの有無などがある。したがって、エミ
ュレータの起動時には、ハンディのハードウェア環境に
合わせるための、初期化設定を行なう必要がある、とい
う問題があった。
【0014】この発明は上述した問題に鑑みてなされた
もので、その目的とするところは、開発マシン上でも、
ハンディターミナルの初期設定状態に応じた動作をエミ
ュレートすることが可能なエミュレータを提供すること
にある。
もので、その目的とするところは、開発マシン上でも、
ハンディターミナルの初期設定状態に応じた動作をエミ
ュレートすることが可能なエミュレータを提供すること
にある。
【0015】
【課題を解決するための手段】上記課題を解決するため
にこの発明は、互いにハードウェア構成が異なるコンピ
ュータの内、いずれか一方のコンピュータ用に作成した
プログラムを、他方のコンピュータ上で動作可能にする
エミュレータにおいて、前記プログラムがコールする複
数のルーチンから形成されるライブラリであって、前記
プログラムと同一の引数で定義された各関数ルーチン
が、それぞれ前記他方のコンピュータ側のハードウェア
構成に対応した各機能を模倣する模倣手段と、前記模倣
手段によって模倣される一方のコンピュータのハードウ
ェア構成に関する情報を、前記模倣手段の起動時に設定
する初期設定手段とを有することを特徴としている。
にこの発明は、互いにハードウェア構成が異なるコンピ
ュータの内、いずれか一方のコンピュータ用に作成した
プログラムを、他方のコンピュータ上で動作可能にする
エミュレータにおいて、前記プログラムがコールする複
数のルーチンから形成されるライブラリであって、前記
プログラムと同一の引数で定義された各関数ルーチン
が、それぞれ前記他方のコンピュータ側のハードウェア
構成に対応した各機能を模倣する模倣手段と、前記模倣
手段によって模倣される一方のコンピュータのハードウ
ェア構成に関する情報を、前記模倣手段の起動時に設定
する初期設定手段とを有することを特徴としている。
【0016】
【作用】この発明によれば、初期設定手段は、模倣手段
の起動時に、模倣手段によって模倣される一方のコンピ
ュータのハードウェア構成に関する情報を設定する。模
倣手段は、以後、設定された情報に基づいて、他方のコ
ンピュータ側のハードウェア構成に対応した各機能を模
倣する。
の起動時に、模倣手段によって模倣される一方のコンピ
ュータのハードウェア構成に関する情報を設定する。模
倣手段は、以後、設定された情報に基づいて、他方のコ
ンピュータ側のハードウェア構成に対応した各機能を模
倣する。
【0017】
【実施例】以下、図面を参照してこの発明の実施例につ
いて説明する。図1はこの発明の一実施例を適用したプ
ログラム開発手順の概要を示す図である。この図におい
て、図11に示す各部と共通する部分には、同一の符号
を付し、その説明を省略する。図1に示す手順が図11
に示した従来例と異なる点は、ターミナル専用関数ライ
ブラリTL(図11参照)を後述するエミュレータEM
に置き換え、これにより、開発マシン上でハンディター
ミナル1用に作成されたアプリケーションプログラムの
デバッグDG2を行うようにした点にある。すなわち、
この実施例が意図するところは、エミュレータEMを用
いたことにより、従来必要とされていた実行ファイルE
fのダウンロードDL(図11参照)と、これに応じて
なされるハンディターミナル1上の実機デバッグDG1
とを省略した点にある。
いて説明する。図1はこの発明の一実施例を適用したプ
ログラム開発手順の概要を示す図である。この図におい
て、図11に示す各部と共通する部分には、同一の符号
を付し、その説明を省略する。図1に示す手順が図11
に示した従来例と異なる点は、ターミナル専用関数ライ
ブラリTL(図11参照)を後述するエミュレータEM
に置き換え、これにより、開発マシン上でハンディター
ミナル1用に作成されたアプリケーションプログラムの
デバッグDG2を行うようにした点にある。すなわち、
この実施例が意図するところは、エミュレータEMを用
いたことにより、従来必要とされていた実行ファイルE
fのダウンロードDL(図11参照)と、これに応じて
なされるハンディターミナル1上の実機デバッグDG1
とを省略した点にある。
【0018】次に、図1のプログラム開発手順を実現す
るエミュレータEMの機能概要について説明する。ま
ず、エミュレータEMは、ハンディターミナル1のハー
ドウェア環境で動作するよう定義された各種関数を、開
発マシンのハードウェア環境で動作するように定義し直
したプログラム群から構成されている。
るエミュレータEMの機能概要について説明する。ま
ず、エミュレータEMは、ハンディターミナル1のハー
ドウェア環境で動作するよう定義された各種関数を、開
発マシンのハードウェア環境で動作するように定義し直
したプログラム群から構成されている。
【0019】エミュレータEMの機能は、図2に示すよ
うに、ターミナル専用関数ライブラリTL(図11参
照)と同一である。つまり、このエミュレータEMで
は、ターミナル専用関数ライブラリTLと同様の引数で
各関数の外部仕様を規定し、かつ、各関数内部は、開発
マシン上でハンディターミナル1の動作をエミュレート
するよう定義し直している。
うに、ターミナル専用関数ライブラリTL(図11参
照)と同一である。つまり、このエミュレータEMで
は、ターミナル専用関数ライブラリTLと同様の引数で
各関数の外部仕様を規定し、かつ、各関数内部は、開発
マシン上でハンディターミナル1の動作をエミュレート
するよう定義し直している。
【0020】図2において、f1はエミュレータ初期化
機能である。このエミュレータ初期化機能f1は、ソー
スプログラムの先頭に「emu_start()」なる
関数が記述されている場合、エミュレータEMの初期設
定を行うものである。したがって、図1に示すように、
オブジェクトファイルofとエミュレータEMとをリン
クさせる場合には、この「emu_start()」な
る関数が必要になる。なお、この関数は、ターミナル専
用関数ライブラリTLとリンクする際には、何等実行に
影響されないものである。したがって、エミュレータ用
に作成されたソースファイルsfは、そのままハンディ
ターミナル1用の実行ファイルに変換可能になる。この
場合、ハンディターミナル1では、「emu_star
t()」なる関数が記述されていても、無視され、なに
も処理が行われない。
機能である。このエミュレータ初期化機能f1は、ソー
スプログラムの先頭に「emu_start()」なる
関数が記述されている場合、エミュレータEMの初期設
定を行うものである。したがって、図1に示すように、
オブジェクトファイルofとエミュレータEMとをリン
クさせる場合には、この「emu_start()」な
る関数が必要になる。なお、この関数は、ターミナル専
用関数ライブラリTLとリンクする際には、何等実行に
影響されないものである。したがって、エミュレータ用
に作成されたソースファイルsfは、そのままハンディ
ターミナル1用の実行ファイルに変換可能になる。この
場合、ハンディターミナル1では、「emu_star
t()」なる関数が記述されていても、無視され、なに
も処理が行われない。
【0021】次に、f2は画面表示制御機能である。こ
の画面表示制御機能f2では、ハンディターミナル1用
に定義された各関数、例えば、表示モードの設定、カー
ソル移動、カーソル形状あるいは表示文字のアトリビュ
ート設定等を行う各種の関数を、それぞれ開発マシンの
ハードウェア環境に対応して動作させる機能である。f
3はキー入力制御機能であり、ハンディターミナル1で
なされるタッチパネル入力やテンキー入力を、開発マシ
ン上におけるマウス入力やキー入力に置き換える機能で
ある。f4はエスケープシーケンス制御機能であり、カ
ーソル位置指定や、スクロールアップ/ダウンあるいは
後述する全画面消去などを指定するコード出力関数を、
開発マシンのハードウェア環境に対応して動作させる機
能である。
の画面表示制御機能f2では、ハンディターミナル1用
に定義された各関数、例えば、表示モードの設定、カー
ソル移動、カーソル形状あるいは表示文字のアトリビュ
ート設定等を行う各種の関数を、それぞれ開発マシンの
ハードウェア環境に対応して動作させる機能である。f
3はキー入力制御機能であり、ハンディターミナル1で
なされるタッチパネル入力やテンキー入力を、開発マシ
ン上におけるマウス入力やキー入力に置き換える機能で
ある。f4はエスケープシーケンス制御機能であり、カ
ーソル位置指定や、スクロールアップ/ダウンあるいは
後述する全画面消去などを指定するコード出力関数を、
開発マシンのハードウェア環境に対応して動作させる機
能である。
【0022】f5は、メインメモリ容量、ドライバ登録
情報、外字登録情報等のシステム情報を取得して出力す
る関数を開発マシンに対応させた機能である。f6は主
電源オン制御や、ローバッテリ状態検出などの動作を開
発マシン上で表示させる電源制御機能である。f7は、
ハンディターミナル1用に定義されたシリアルデータ通
信制御を、開発マシン上でエミュレートさせる通信制御
機能である。f8はプリンタ制御機能であり、ハンディ
ターミナル1用に定義された印字フォント、改行ピッチ
などを開発マシン上で制御するものである。f9は、エ
ミュレータ終了機能であり、ソースプログラムの最後、
あるいは途中に「emu_exit(n)」なる関数が
記述されている場合、エミュレータEMを終了させる機
能である。
情報、外字登録情報等のシステム情報を取得して出力す
る関数を開発マシンに対応させた機能である。f6は主
電源オン制御や、ローバッテリ状態検出などの動作を開
発マシン上で表示させる電源制御機能である。f7は、
ハンディターミナル1用に定義されたシリアルデータ通
信制御を、開発マシン上でエミュレートさせる通信制御
機能である。f8はプリンタ制御機能であり、ハンディ
ターミナル1用に定義された印字フォント、改行ピッチ
などを開発マシン上で制御するものである。f9は、エ
ミュレータ終了機能であり、ソースプログラムの最後、
あるいは途中に「emu_exit(n)」なる関数が
記述されている場合、エミュレータEMを終了させる機
能である。
【0023】次に、上記エミュレータEMを用いたプロ
グラム開発手順と、この手順に基づき作成されたアプリ
ケーションプログラムのエミュレート動作概要とについ
て説明し、さらに、該エミュレート動作におけるエスケ
ープシーケンス制御について全画面消去処理を例にとっ
て説明する。
グラム開発手順と、この手順に基づき作成されたアプリ
ケーションプログラムのエミュレート動作概要とについ
て説明し、さらに、該エミュレート動作におけるエスケ
ープシーケンス制御について全画面消去処理を例にとっ
て説明する。
【0024】アプリケーションプログラムを開発する際
には、まず、コーディング段階でソースプログラムの先
頭に「emu_start()」なる関数を記述し、か
つ、該プログラムの最後に「emu_exit(n)」
なる関数を記述しておく。そして、図1に示すように、
ソースファイルsfをコンパイルccにかけ、オブジェ
クトファイルofを生成する。
には、まず、コーディング段階でソースプログラムの先
頭に「emu_start()」なる関数を記述し、か
つ、該プログラムの最後に「emu_exit(n)」
なる関数を記述しておく。そして、図1に示すように、
ソースファイルsfをコンパイルccにかけ、オブジェ
クトファイルofを生成する。
【0025】次に、このオブジェクトファイルofに対
して標準関数ライブラリSLおよびエミュレータEMを
リンクさせる。これにより、ソースプログラムでコール
されるハンディターミナル固有の各種関数が開発マシン
上で動作する形で実行ファイル化される。実行ファイル
化されたアプリケーションプログラムは、開発マシンの
主メモリ上にロードされてハンディターミナル1の動作
をエミュレートする。
して標準関数ライブラリSLおよびエミュレータEMを
リンクさせる。これにより、ソースプログラムでコール
されるハンディターミナル固有の各種関数が開発マシン
上で動作する形で実行ファイル化される。実行ファイル
化されたアプリケーションプログラムは、開発マシンの
主メモリ上にロードされてハンディターミナル1の動作
をエミュレートする。
【0026】アプリケーションプログラムのエミュレ
ート動作 上記手順により作成されたアプリケーションプログラム
が起動すると、開発マシンの処理は、図3に示すステッ
プS1に進む。ステップS1では、プログラム先頭に定
義された「emu_start()」なる関数に基づ
き、上述したエミュレータ初期化機能f1が初期設定を
行う。この初期設定とは、ハンディターミナル1のダウ
ンロードの際に設定される初期状態を開発マシン側で設
定するものである。
ート動作 上記手順により作成されたアプリケーションプログラム
が起動すると、開発マシンの処理は、図3に示すステッ
プS1に進む。ステップS1では、プログラム先頭に定
義された「emu_start()」なる関数に基づ
き、上述したエミュレータ初期化機能f1が初期設定を
行う。この初期設定とは、ハンディターミナル1のダウ
ンロードの際に設定される初期状態を開発マシン側で設
定するものである。
【0027】次に、エミュレータ初期化について説明す
る。まず、初期化の設定内容について図4を参照して説
明する。この設定内容は、ハンディターミナル1にて設
定される内容を、開発マシン側でのエミュレータに設定
するものであり、これらには、バックライトのオン/オ
フ、コントラスト、スピーカの音量、APO/ABO
(オートパワーオフ/オートバックライトオフ)、漢字
外字数、システム表示、キーパターンNo.、スクリー
ンモード、コンソール行数、^Cの有効/無効、および
拡張RS232Cの有無がある。
る。まず、初期化の設定内容について図4を参照して説
明する。この設定内容は、ハンディターミナル1にて設
定される内容を、開発マシン側でのエミュレータに設定
するものであり、これらには、バックライトのオン/オ
フ、コントラスト、スピーカの音量、APO/ABO
(オートパワーオフ/オートバックライトオフ)、漢字
外字数、システム表示、キーパターンNo.、スクリー
ンモード、コンソール行数、^Cの有効/無効、および
拡張RS232Cの有無がある。
【0028】この図に示すように、各設定内容には変数
名がそれぞれ対応しており、該変数名にはその設定値
(とり得る値、あるいは範囲)が定められている。ま
た、設定例は、変数名を左辺に、設定値を右辺に、それ
ぞれ記載して等号で結んだ等式である。そして、各設定
内容でエミュレータを初期化設定する場合には、オペレ
ータは予め設定内容の変数名に設定値を定めた等式を箇
条書きにした設定ファイルを作成しておく。ここで、設
定ファイルの一例を図5に示す。この図に示す設定ファ
イルSFでは、漢字外字数が64種類、キーパターンN
o.が「1」に対応するキー表示、スクリーンモードが
「2」に対応するモードに各々対応している。
名がそれぞれ対応しており、該変数名にはその設定値
(とり得る値、あるいは範囲)が定められている。ま
た、設定例は、変数名を左辺に、設定値を右辺に、それ
ぞれ記載して等号で結んだ等式である。そして、各設定
内容でエミュレータを初期化設定する場合には、オペレ
ータは予め設定内容の変数名に設定値を定めた等式を箇
条書きにした設定ファイルを作成しておく。ここで、設
定ファイルの一例を図5に示す。この図に示す設定ファ
イルSFでは、漢字外字数が64種類、キーパターンN
o.が「1」に対応するキー表示、スクリーンモードが
「2」に対応するモードに各々対応している。
【0029】次に、上記ステップS1において行なわれ
るエミュレータ初期化について詳細に説明する。図6お
よび図7は、この初期化動作を示すフローチャートであ
る。開発マシン上で、このエミュレータEMが起動する
と、はじめに図6に示す初期化ルーチンが起動する。ま
ず、ステップSB1において、後述するハンディターミ
ナル1の初期化状態設定が行なわれて、設定ファイルの
内容が読み出される。
るエミュレータ初期化について詳細に説明する。図6お
よび図7は、この初期化動作を示すフローチャートであ
る。開発マシン上で、このエミュレータEMが起動する
と、はじめに図6に示す初期化ルーチンが起動する。ま
ず、ステップSB1において、後述するハンディターミ
ナル1の初期化状態設定が行なわれて、設定ファイルの
内容が読み出される。
【0030】次に、開発マシン上における入力装置のマ
ウス初期化動作が行われる(ステップSB2)。さら
に、表示画面TD(図9参照)の表示態様をエミュレー
トするべく、開発マシンTDにおけるディスプレイDS
Pの表示領域の一部に表示エリアE1(後述する)が割
り当てられ(ステップSB3)、次に、ハンディターミ
ナル1の表示画面TDに表示される透明タッチパネル1
e2 のキー分割設定状態をエミュレートするべく、開発
マシンTDにおけるディスプレイDSPの表示領域の一
部に表示エリアE2(後述する)が割り当てられ(ステ
ップSB4)、ハンディターミナル1における各種フラ
グ等の設定状態を表示するべく、開発マシンTDにおけ
るディスプレイDSPの表示領域の一部に表示エリアE
3(後述する)が割り当てられる(ステップSB5)。
そして、開発マシン側の各種フラグの初期化が行なわれ
る(ステップSB6)。このステップ終了後、このルー
チンは終了して、処理は図3におけるステップS2に進
む。
ウス初期化動作が行われる(ステップSB2)。さら
に、表示画面TD(図9参照)の表示態様をエミュレー
トするべく、開発マシンTDにおけるディスプレイDS
Pの表示領域の一部に表示エリアE1(後述する)が割
り当てられ(ステップSB3)、次に、ハンディターミ
ナル1の表示画面TDに表示される透明タッチパネル1
e2 のキー分割設定状態をエミュレートするべく、開発
マシンTDにおけるディスプレイDSPの表示領域の一
部に表示エリアE2(後述する)が割り当てられ(ステ
ップSB4)、ハンディターミナル1における各種フラ
グ等の設定状態を表示するべく、開発マシンTDにおけ
るディスプレイDSPの表示領域の一部に表示エリアE
3(後述する)が割り当てられる(ステップSB5)。
そして、開発マシン側の各種フラグの初期化が行なわれ
る(ステップSB6)。このステップ終了後、このルー
チンは終了して、処理は図3におけるステップS2に進
む。
【0031】次に、図6におけるステップSB1におい
て行なわれるハンディターミナル1の初期化状態設定に
ついて図7を参照して説明する。まず、ステップSC1
では、一旦、図4に示す設定内容がすべてデフォルトの
値に設定される。次のステップSC2では、図5に示す
ような設定ファイルが開発マシン上に設定されているか
否かが検出される。設定ファイルが存在しなければ、判
別結果が「NO」となり、このルーチンは直ちに終了す
る一方、設定ファイルが存在すれば、判別結果が「YE
S」となり、処理が次のステップSC3に進む。
て行なわれるハンディターミナル1の初期化状態設定に
ついて図7を参照して説明する。まず、ステップSC1
では、一旦、図4に示す設定内容がすべてデフォルトの
値に設定される。次のステップSC2では、図5に示す
ような設定ファイルが開発マシン上に設定されているか
否かが検出される。設定ファイルが存在しなければ、判
別結果が「NO」となり、このルーチンは直ちに終了す
る一方、設定ファイルが存在すれば、判別結果が「YE
S」となり、処理が次のステップSC3に進む。
【0032】ステップSC3では、設定ファイルのレコ
ード(行)検出が終了したか否かが判別される。終了し
たならば、ここでの判別結果は「YES」となり、この
ルーチンは終了する一方、終了していないならば、判別
結果が「NO」となり、次の1レコードが読み込まれ
(ステップSC4)、該レコードが有効であるか否かが
判別される(ステップSC5)。すなわち、このステッ
プでは、ステップSC4にて読み込まれたレコードが、
図4に示す設定内容の変数であるか否か、設定値内に収
まっているか否かが判別される。該レコードが無効であ
ると判別されたならば、このルーチンは終了する一方、
該ルーチンが有効であると判別されたならば、この判別
結果が「YES」となり、該レコードの記述内容が、初
期状態の設定内容として設定される(ステップSC
6)。そして、次のレコードを読み込むべく、処理は再
びステップSC3に戻る。以後、すべてのレコードが読
み込まれるまで、処理はステップSC3→SC4→SC
5→SC6→SC3と循環し、設定ファイルの全行が読
み込まれて設定されると、処理は図6におけるステップ
SB2に進む。
ード(行)検出が終了したか否かが判別される。終了し
たならば、ここでの判別結果は「YES」となり、この
ルーチンは終了する一方、終了していないならば、判別
結果が「NO」となり、次の1レコードが読み込まれ
(ステップSC4)、該レコードが有効であるか否かが
判別される(ステップSC5)。すなわち、このステッ
プでは、ステップSC4にて読み込まれたレコードが、
図4に示す設定内容の変数であるか否か、設定値内に収
まっているか否かが判別される。該レコードが無効であ
ると判別されたならば、このルーチンは終了する一方、
該ルーチンが有効であると判別されたならば、この判別
結果が「YES」となり、該レコードの記述内容が、初
期状態の設定内容として設定される(ステップSC
6)。そして、次のレコードを読み込むべく、処理は再
びステップSC3に戻る。以後、すべてのレコードが読
み込まれるまで、処理はステップSC3→SC4→SC
5→SC6→SC3と循環し、設定ファイルの全行が読
み込まれて設定されると、処理は図6におけるステップ
SB2に進む。
【0033】このように、このルーチンでは、設定内容
が一旦、デフォルト値に設定されるが、設定ファイル
(図5参照)が存在する場合には、この設定ファイルの
内容に書き換えられる。そして、この設定内容が、エミ
ュレータEMの初期状態の内容として設定される。以
後、ステップS2(図3参照)における各関数の実行時
には、この設定内容に基づき実行される。
が一旦、デフォルト値に設定されるが、設定ファイル
(図5参照)が存在する場合には、この設定ファイルの
内容に書き換えられる。そして、この設定内容が、エミ
ュレータEMの初期状態の内容として設定される。以
後、ステップS2(図3参照)における各関数の実行時
には、この設定内容に基づき実行される。
【0034】こうして開発マシン上でハンディターミナ
ル1の初期状態がエミュレートされると、例えば、図8
に示すように、ディスプレイDSPには、ハンディター
ミナルの各種エミュレート状態が表示される。この図に
示すように、ディスプレイDSPは、表示エリアE1、
E2、E3に3分割されており、この内の表示エリアE
1には表示画面TDと同一の表示がなされる。さらに、
表示エリアE2には、ハンディターミナル1のタッチパ
ネルの分割状態が表示され、表示エリアE3には、ハン
ディターミナル1の動作状態が表示される。
ル1の初期状態がエミュレートされると、例えば、図8
に示すように、ディスプレイDSPには、ハンディター
ミナルの各種エミュレート状態が表示される。この図に
示すように、ディスプレイDSPは、表示エリアE1、
E2、E3に3分割されており、この内の表示エリアE
1には表示画面TDと同一の表示がなされる。さらに、
表示エリアE2には、ハンディターミナル1のタッチパ
ネルの分割状態が表示され、表示エリアE3には、ハン
ディターミナル1の動作状態が表示される。
【0035】次いで、このような初期設定がなされる
と、開発マシンの処理はステップS2に進む。ステップ
S2では、与えられたイベントに応じてアプリケーショ
ンプログラムが各関数を実行する。このステップS2に
おいては、ハンディターミナル1のタッチパネル入力を
マウス入力するようにキー入力制御機能f3が動作して
おり、これに対応してマウスカーソルを移動させる割込
処理が実行される。
と、開発マシンの処理はステップS2に進む。ステップ
S2では、与えられたイベントに応じてアプリケーショ
ンプログラムが各関数を実行する。このステップS2に
おいては、ハンディターミナル1のタッチパネル入力を
マウス入力するようにキー入力制御機能f3が動作して
おり、これに対応してマウスカーソルを移動させる割込
処理が実行される。
【0036】ここで、図8に示すように、実際のタッチ
パネルをエミュレートした表示エリアE1上の所定位置
をクリックしてマウス入力を行なうと、この入力イベン
トに対応したアプリケーションプログラムを実行し、該
プログラム中で定義された関数が実行される。これによ
り、ハンディターミナル1の動作が開発マシンでエミュ
レートされる。例えば、マウスカーソルMCが、図4に
示すように、表示エリアE1上における「印刷」の表示
に置かれ、マウスクリックがなされると、該「印刷」処
理がコンピュータ上でエミュレートされる。
パネルをエミュレートした表示エリアE1上の所定位置
をクリックしてマウス入力を行なうと、この入力イベン
トに対応したアプリケーションプログラムを実行し、該
プログラム中で定義された関数が実行される。これによ
り、ハンディターミナル1の動作が開発マシンでエミュ
レートされる。例えば、マウスカーソルMCが、図4に
示すように、表示エリアE1上における「印刷」の表示
に置かれ、マウスクリックがなされると、該「印刷」処
理がコンピュータ上でエミュレートされる。
【0037】そして、各種処理がエミュレートされ、ア
プリケーションプログラム完了の旨を表わす入力がなさ
れると、ステップS3の判断結果が「YES」となり、
該プログラムの処理がステップS4に進む。ステップS
4では、プログラム最後に定義された「emu_exi
t(n)」なる関数に基づき、エミュレート動作を終了
する。
プリケーションプログラム完了の旨を表わす入力がなさ
れると、ステップS3の判断結果が「YES」となり、
該プログラムの処理がステップS4に進む。ステップS
4では、プログラム最後に定義された「emu_exi
t(n)」なる関数に基づき、エミュレート動作を終了
する。
【0038】この実施例によれば、図7に示す初期化状
態設定によって、開発マシン側でハンディターミナルの
ハードウェア構成がエミュレートされる。また、エミュ
レータEMは、ハンディターミナル1のハードウェア環
境に対応させた専用関数ライブラリTLと同一の引数を
備え、かつ各専用関数の機能f1〜f9を開発マシンの
ハードウェア環境に対応させている。このため、ソース
プログラムにエミュレータEMをリンクして、生成した
実行ファイルEfをパーソナルコンピュータにロードす
れば、該開発マシン上でハンディターミナル1の動作が
エミュレートされることになる。さらに、このエミュレ
ート動作では、ハンディターミナル1の動作状態がディ
スプレイDSPに逐一表示されるたので、アプリケーシ
ョンプログラムのデバッグ作業が極めて効率良く行え
る。
態設定によって、開発マシン側でハンディターミナルの
ハードウェア構成がエミュレートされる。また、エミュ
レータEMは、ハンディターミナル1のハードウェア環
境に対応させた専用関数ライブラリTLと同一の引数を
備え、かつ各専用関数の機能f1〜f9を開発マシンの
ハードウェア環境に対応させている。このため、ソース
プログラムにエミュレータEMをリンクして、生成した
実行ファイルEfをパーソナルコンピュータにロードす
れば、該開発マシン上でハンディターミナル1の動作が
エミュレートされることになる。さらに、このエミュレ
ート動作では、ハンディターミナル1の動作状態がディ
スプレイDSPに逐一表示されるたので、アプリケーシ
ョンプログラムのデバッグ作業が極めて効率良く行え
る。
【0039】また、上記実施例によれば、エミュレータ
用に開発したソースプログラムがそのままハンディター
ミナル用のソースファイルとなり、完全互換性を備える
ので、プログラム開発がすべて同一のマシン上で行なう
ことが可能になる。この結果、従来必要とされる実行フ
ァイルEfのダウンロードDLと、これに応じてなされ
る実機デバッグDG1とが省略することができるので、
極めて効率の良いプログラム開発が可能となる。
用に開発したソースプログラムがそのままハンディター
ミナル用のソースファイルとなり、完全互換性を備える
ので、プログラム開発がすべて同一のマシン上で行なう
ことが可能になる。この結果、従来必要とされる実行フ
ァイルEfのダウンロードDLと、これに応じてなされ
る実機デバッグDG1とが省略することができるので、
極めて効率の良いプログラム開発が可能となる。
【0040】
【発明の効果】以上説明したように、この発明によれ
ば、互いにハードウェア構成が異なるコンピュータの
内、いずれか一方のコンピュータ用に作成したプログラ
ムを、他方のコンピュータ上で動作可能にするエミュレ
ータにおいて、前記プログラムがコールする複数のルー
チンから形成されるライブラリであって、前記プログラ
ムと同一の引数で定義された各関数ルーチンが、それぞ
れ前記他方のコンピュータ側のハードウェア構成に対応
した各機能を模倣する模倣手段と、前記模倣手段によっ
て模倣される一方のコンピュータのハードウェア構成に
関する情報を、前記模倣手段の起動時に設定する初期設
定手段とを備えて、初期設定手段は、模倣手段の起動時
に、模倣手段によって模倣される一方のコンピュータの
ハードウェア構成に関する情報を設定する。模倣手段
は、以後、設定された情報に基づいて、他方のコンピュ
ータ側のハードウェア構成に対応した各機能を模倣する
ことが可能となる。
ば、互いにハードウェア構成が異なるコンピュータの
内、いずれか一方のコンピュータ用に作成したプログラ
ムを、他方のコンピュータ上で動作可能にするエミュレ
ータにおいて、前記プログラムがコールする複数のルー
チンから形成されるライブラリであって、前記プログラ
ムと同一の引数で定義された各関数ルーチンが、それぞ
れ前記他方のコンピュータ側のハードウェア構成に対応
した各機能を模倣する模倣手段と、前記模倣手段によっ
て模倣される一方のコンピュータのハードウェア構成に
関する情報を、前記模倣手段の起動時に設定する初期設
定手段とを備えて、初期設定手段は、模倣手段の起動時
に、模倣手段によって模倣される一方のコンピュータの
ハードウェア構成に関する情報を設定する。模倣手段
は、以後、設定された情報に基づいて、他方のコンピュ
ータ側のハードウェア構成に対応した各機能を模倣する
ことが可能となる。
【図1】 この発明の一実施例を適用したプログラム開
発手順の概要を示す図である。
発手順の概要を示す図である。
【図2】 同実施例におけるエミュレータEMの機能構
成を示す図である。
成を示す図である。
【図3】 同実施例により作成されたアプリケーション
プログラムの概略動作を示すフローチャートである。
プログラムの概略動作を示すフローチャートである。
【図4】 同実施例における初期化条件の一覧表であ
る。
る。
【図5】 同実施例における設定ファイルの一例を示す
表である。
表である。
【図6】 同実施例における初期化ルーチンの動作を示
すフローチャートである。
すフローチャートである。
【図7】 同実施例の初期状態設定の動作を示すフロー
チャートである。
チャートである。
【図8】 同実施例における表示エリアE1,E2,E
3の表示例を示す図である。
3の表示例を示す図である。
【図9】 ハンディターミナルの外観構成を示す平面図
である。
である。
【図10】 ハンディターミナル1の電気的構成の一例
を示すブロック図である。
を示すブロック図である。
【図11】 従来のプログラム開発手順を説明するため
の図である。
の図である。
sf…ソースファイル、cc…コンパイル、of…オブ
ジェクトファイル、LK…リンカ、EM…エミュレータ
(模倣手段)、SL…標準関数ライブラリ、Ef…実行
ファイル。
ジェクトファイル、LK…リンカ、EM…エミュレータ
(模倣手段)、SL…標準関数ライブラリ、Ef…実行
ファイル。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年8月11日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図1】 この発明の一実施例を適用したプログラム開
発手順の概要を示す図である。
発手順の概要を示す図である。
【図2】 同実施例におけるエミュレータEMの機能構
成を示す図である。
成を示す図である。
【図3】 同実施例により作成されたアプリケーション
プログラムの概略動作を示すフローチャートである。
プログラムの概略動作を示すフローチャートである。
【図4】 同実施例における初期化条件を示す図表であ
る。
る。
【図5】 同実施例における設定ファイルの一例を示す
図表である。
図表である。
【図6】 同実施例における初期化ルーチンの動作を示
すフローチャートである。
すフローチャートである。
【図7】 同実施例の初期状態設定の動作を示すフロー
チャートである。
チャートである。
【図8】 同実施例における表示エリアE1,E2,E
3の表示例を示す図である。
3の表示例を示す図である。
【図9】 ハンディターミナルの外観構成を示す平面図
である。
である。
【図10】 ハンディターミナル1の電気的構成の一例
を示すブロック図である。
を示すブロック図である。
【図11】 従来のプログラム開発手順を説明するため
の図である。
の図である。
【符号の説明】 sf…ソースファイル、cc…コンパイル、of…オブ
ジェクトファイル、LK…リンカ、EM…エミュレータ
(模倣手段)、SL…標準関数ライブラリ、Ef…実行
ファイル。
ジェクトファイル、LK…リンカ、EM…エミュレータ
(模倣手段)、SL…標準関数ライブラリ、Ef…実行
ファイル。
Claims (1)
- 【請求項1】 互いにハードウェア構成が異なるコンピ
ュータの内、いずれか一方のコンピュータ用に作成した
プログラムを、他方のコンピュータ上で動作可能にする
エミュレータにおいて、 前記プログラムがコールする複数のルーチンから形成さ
れるライブラリであって、前記プログラムと同一の引数
で定義された各関数ルーチンが、それぞれ前記他方のコ
ンピュータ側のハードウェア構成に対応した各機能を模
倣する模倣手段と、 前記模倣手段によって模倣される一方のコンピュータの
ハードウェア構成に関する情報を、前記模倣手段の起動
時に設定する初期設定手段とを有することを特徴とする
エミュレータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4294628A JPH06149621A (ja) | 1992-11-02 | 1992-11-02 | エミュレータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4294628A JPH06149621A (ja) | 1992-11-02 | 1992-11-02 | エミュレータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06149621A true JPH06149621A (ja) | 1994-05-31 |
Family
ID=17810223
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4294628A Pending JPH06149621A (ja) | 1992-11-02 | 1992-11-02 | エミュレータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06149621A (ja) |
-
1992
- 1992-11-02 JP JP4294628A patent/JPH06149621A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2795244B2 (ja) | プログラムデバッグシステム | |
| KR100247952B1 (ko) | 이동단말시스템의부팅제어장치및방법 | |
| Duncan | Advanced MS-DOS Programming | |
| Meiller | Modern app development with Dart and Flutter 2: A comprehensive introduction to flutter | |
| Skansholm | Java from the Beginning | |
| Jung et al. | Beginning LUA programming | |
| JPH06149591A (ja) | エミュレータ | |
| JPH06149622A (ja) | エミュレータ | |
| JP2939392B2 (ja) | エミュレータ | |
| JP2938272B2 (ja) | エミュレータ | |
| JP2939391B2 (ja) | エミュレータ | |
| JP3100463B2 (ja) | エミュレータ | |
| JP2939390B2 (ja) | エミュレータ | |
| JP3330979B2 (ja) | エミュレータ | |
| JP2959910B2 (ja) | エミュレータ | |
| JPH06103103A (ja) | エミュレータ | |
| Mühlbacher et al. | Oberon-2 programming with Windows | |
| KR20020032256A (ko) | 통합 임베디드 시스템 및 이의 구현 방법 | |
| Perkins et al. | Beginning C# 6 Programming with Visual Studio 2015 | |
| Burgess | C programming tutorial | |
| JPH06103087A (ja) | エミュレータ | |
| GUIDE | intJ | |
| JPH06103086A (ja) | エミュレータ | |
| Griffiths et al. | Mastering Visual Studio. NET | |
| Alvisi et al. | A graphical interface for CHIP |