JPH04294183A - プログラム組込型機器 - Google Patents

プログラム組込型機器

Info

Publication number
JPH04294183A
JPH04294183A JP8481291A JP8481291A JPH04294183A JP H04294183 A JPH04294183 A JP H04294183A JP 8481291 A JP8481291 A JP 8481291A JP 8481291 A JP8481291 A JP 8481291A JP H04294183 A JPH04294183 A JP H04294183A
Authority
JP
Japan
Prior art keywords
rom
program
vector address
ram
stored
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.)
Granted
Application number
JP8481291A
Other languages
English (en)
Other versions
JP2593007B2 (ja
Inventor
Takamitsu Abe
阿部 孝光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tohoku Ricoh Co Ltd
Original Assignee
Tohoku Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tohoku Ricoh Co Ltd filed Critical Tohoku Ricoh Co Ltd
Priority to JP3084812A priority Critical patent/JP2593007B2/ja
Publication of JPH04294183A publication Critical patent/JPH04294183A/ja
Application granted granted Critical
Publication of JP2593007B2 publication Critical patent/JP2593007B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Dot-Matrix Printers And Others (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、プログラム組込型機
器に関し、特にドットプリンタ等のユーザの要求仕様に
対してプログラムの一部変更(オプション)で対応する
方式のプログラム組込型機器に関する。
【0002】
【従来の技術】機器に内蔵されたマイクロコンピユータ
がプログラムを実行することによって種々の機能を実現
するようにした各種電子機器が多用されている。
【0003】このような電子機器には、パソコンやワー
ドプロセッサなどのように、必要なプログラムをフロッ
ピディスクに載せ、機器本体内には書き換え可能なメモ
リであるRAMを搭載しておき、リセット後イニシャル
・プログラム・ローダ(IPL)でフロッピディスク上
のプログラムを読み出してRAMに書き込み、その後そ
のRAM上のプログラムに制御を移して走らせるように
したものと、必要な各機能のプログラムを格納した書き
換え不能なメモリであるROMを本体に組み込んだプロ
グラム組込型機器とがある。
【0004】このようなプログラムによって動作する機
器において、ユーザの要求等によって機能の一部を変更
したり新たな機能を追加したりする場合には、プログラ
ムの変更が必要になる。
【0005】その際の従来の対応方法としては、上述し
たフロッピディスクに載せたプログラムを読み出して使
用する機器の場合には、フロッピディスクに載せるプロ
グラムを予め変えておくことによって対応する。フロッ
ピディスクの代わりにメモリカードを使用するものでも
同様である。
【0006】プログラム組込型機器の場合には、仕様変
更に対してプログラムそのものを書き換える方式が多く
、プログラムはROMで供給されるため、機器に搭載さ
れているROMを新たなプログラムを書き込んだROM
に交換することによって対応する。その際、ROMを搭
載した基板単位で交換する場合もある。
【0007】
【発明が解決しようとする課題】しかしながら、このよ
うな従来のフロッピディスクやメモリカードに載せたプ
ログラムを読み込んで使用する機器では、機器本体に少
なくともIPL用のプログラムを格納したROMが必要
であり、さらにフロッピディスク等から読み込んだ制御
用プログラムを格納するためのRAMを搭載しておかな
ければならないのでコスト高になる。
【0008】また、フロッピディスクからプログラムを
読み込むためにはフロッピディスク・ドライブ装置を備
えてしなければならないが、それが高価であり、プログ
ラム媒体としてメモリカードを使用する場合は、そのメ
モリカード自体が高価であるという問題がある。なお、
メモリカードはアクセスタイムが遅いため、メモリカー
ド上で直接プログラムを走らせることは一般にはできな
い。
【0009】プログラム組込型機器の場合には、仕様変
更の度にプログラム全体を一単位として変更することに
なるため、仕様変更に伴う実際のプログラム変更個所は
全体の一部であるにも拘らず、プログラム全体に亘って
コンパイル→リンク→ロードという作業を行なう必要が
あり、非常に手間がかかるという問題がある。しかも、
プログラム変更の際に間違えて変更不要なプログラム部
分をも変更してしまうことがあり、その副作用としてバ
グを誘発する可能性が生ずる。
【0010】また、変更個所の違いにも拘らず、プログ
ラム全体のアドレス再配置が行なわれるため、プログラ
ムの管理はプログラム全体を単位として行なわれなけれ
ばならないという欠点がある。この欠点が顕著に現われ
るのは、複数のルーチン(全体プログラムの中の機能プ
ログラム)が変更される場合である。
【0011】一般にユーザの要求は多種多様であるから
、例えばあるユーザのA1,B1という要求も、他のユ
ーザのA2,B1という要求も、あるいはA1,B2と
いう要求も、全てプログラム全体で変更管理されるため
、その組合せの数だけプログラムの種類が増え、その量
も膨大になるため管理が非常に煩雑になってしまうとい
う問題があった。
【0012】そこで、例えば特開平2−41284号に
見られるように、仕様変更が予想される機能を含む全て
のオプショナル機能のルーチンプログラムをプリンタに
搭載するROMに格納しておくと共に、その各ルーチン
の割り込み可能あるいは禁止を識別する情報を有するテ
ーブルを記憶するRAMを備え、そのRAMに新しいテ
ーブルをダウンローディングすることによって、割り込
み可能(実行可)あるいは禁止(実行不可)のルーチン
を変更し、割り込み可能なルーチンのプログラムのみに
よってプリンタのオプシヨナル機能を再構成できるよう
にすることが提案されている。
【0013】しかしながら、このようにするためには製
品設計時点で全てのオプショナル機能が明確になってい
なければ、その各機能のルーチンプログラムを作成して
ROMに格納しておくことができないので、製品の製造
開始後、さらには製品出荷後に予め予期していなかった
仕様変更の要求があった場合には対応できないという問
題がある。
【0014】この発明は上記の点に鑑みてなされたもの
であり、高価なフロッピディスク・ドライブ装置やメモ
リカード等を使用する必要のないプログラム組込型機器
において、製品完成あるいは出荷後の仕様変更にもあま
りコストアップせずに迅速且つ容易に対応でき、プログ
ラムの管理が煩雑になることもないようにすることを目
的とする。
【0015】
【課題を解決するための手段】この発明は上記の目的を
達成するため、実行可能な各種機能のプログラムを格納
したROMを組み込んだプログラム組込型機器において
、そのROMを第1のROMと第2のROMとによって
構成すると共に、その各ROMに格納されている各機能
プログラムのベクタアドレステーブルを記憶するRAM
を設ける。
【0016】そして、その第1のROMには、機器の機
能を実現する1個又は複数個の機能プログラムと、リセ
ット後に実行されるプログラムであって、前記各機能プ
ログラムのベクタアドレスを上記RAM内のベクタアド
レステーブルに書き込むための制御,上記第2のROM
の実装状態を検出する制御,第2のROM内の制御プロ
グラムを起動させる制御を含む制御プログラムとを格納
し、第2のROMには、第1のROM内の機能プログラ
ムによって実現される機器の機能に対して付加あるいは
変更される機能を実現する1個又は複数個の機能プログ
ラムと、その各機能プログラムのベクタアドレスを上記
RAM内のベクタアドレステーブルに書き込むための制
御プログラムとを格納させておく。
【0017】それによって、上記第1及び第2のROM
内の各機能プログラムのベクタアドレスがRAM内のベ
クタアドレステーブルに書き込まれた後は、各機能プロ
グラムが該RAM内のベクタアドレステーブルに記憶さ
れたベクタアドレスに従って実行されるようにしたもの
である。
【0018】また、上記第1のROMには、機器の機能
を実現する1個又は複数個の機能プログラムと、リセッ
ト後に実行されるプログラムであって、前記第2のRO
Mの実装状態を検出する制御と,その検出結果により該
第2のROMが実装されていれば第1のROM内の各機
能プログラムのアドレス情報と第2のROM内のベクタ
アドレステーブルとから上記RAM内のベクタアドレス
テーブルに第1,第2のROM内の各機能プログラムの
ベクタアドレスを書き込み、第2のROMが実装されて
いなければ第1のROM内の各機能プログラムのアドレ
ス情報から上記RAM内のベクタアドレステーブルに第
1のROM内の各機能プログラムのベクタアドレスのみ
を書き込む制御を含む制御プログラムを格納し、上記第
2のROMには、第1のROM内の機能プログラムによ
って実現される機器の機能に対して付加あるいは変更さ
れる機能を実現する1個又は複数個の機能プログラムと
、その各機能プログラムに対応するベクタアドレステー
ブルとを格納させておくようにしてもよい。
【0019】なお、仕様変更への対応作業性を考慮すれ
ば、典型的には第2のROMは機器に設けたICソケッ
トに着脱可能な状態で装着されるようにするとよい。ま
た、他の例として、第2のROMを第1のROMが搭載
される基板とは異なった基板に装着し、基板単位で第2
のROMの装着を想定することもできる。後述する実施
例の説明においては、第2のROMがICソケットに装
着されることを想定する。
【0020】
【作用】このように構成したプログラム組込型機器は、
仕様変更の要求によって機能の一部を変更あるいは付加
する場合には、その変更あるいは付加する機能を実現す
る機能プログラムと,そのベクタアドレスを上記RAM
内のベクタアドレステーブルに書き込むための制御プロ
グラムあるいは上記機能プログラムのベクタアドレステ
ーブルを格納した第2のROMを、機器本体に装着する
(既に第2のROMが装着されている場合はそれを交換
する)ことにより、リセット後に第1のROM内の制御
プログラムの実行によって、上記RAMに書き込まれて
いる第1のROMに格納されている各機能プログラムに
対応するベクタアドレステーブルの一部を、上記第2の
ROMに格納されている機能プログラムのベクタアドレ
スに変更するように書き込む。
【0021】その後は、第1及び第2のROM内の各機
能プログラムが上記RAM内のベクタアドレステーブル
に記憶されたベクタアドレスに従って実行されるので、
所望の機能変更あるいは機能付加を容易に実現すること
ができる。
【0022】
【実施例】以下、この発明をドットプリンタに適用した
実施例を図面に基づいて具体的に説明する。図2はこの
実施例のドットプリンタの機能構成を示すブロック図で
あり、ホストインタフェース部11,コマンド処理部1
2,ユーザインタフェース部13,センサ処理部14,
印字部15,紙送り部16,及びリボン送り部17の各
機能プログラムと、これらを統括制御するためのモニタ
部10からなる。
【0023】この中で、ホストインタフェース部11は
、パーソナルコンピュータ,ワードプロセッサ等のホス
ト(図示せず)との通信を制御する部分であり、ここで
はセントロニクスインタフェースやRS−232インタ
フェース等の通信仕様をサポートする。
【0024】コマンド処理部12では、ホストから入力
されるコマンド処理を行なう。ドットプリンタはその製
造メーカ特有のコマンド体系をもっており、一般にその
コマンド体系に合致した条件でホストからコマンド列を
送る必要がある。
【0025】このコマンド処理部12でホストからのデ
ータをコマンドとして解釈し、制御内容に変換する。ド
ットプリンタではホストから入力されたコマンドを解釈
して、書き替え可能なRAM上にドットの集まりである
ビットマップデータを描画する処理までを、このコマン
ド処理部12で行なう。
【0026】ユーザインタフェース部13は、ユーザが
設定あるいは押下したスイッチ(あるいはキー)を検出
したり、ユーザにLED,LCD,ブザー等により情報
を表示あるいは報知する部分である。センサ処理部14
は、カバーオープン,ペーパアウト,リボンアウト等の
装置状態を検出する部分である。
【0027】印字部15は紙にドット行を印字する部分
であり、シリアルインパクト・ドットプリンタの場合は
ドットヘッドを移動させながらドットヘッドへ電流を流
し、ドットに対応するインパクトピンを紙に突出させる
行為に相当し、ドットヘッドへのデータの転送も行なう
。紙送り部16は、紙をフィードするかあるいはバック
フィードさせる機能である。リボン送り部17は、紙送
り部16に合わせてリボンを送る部分である。
【0028】これらの各部の機能プログラムは、ROM
上に例えば図3に示すように書き込まれる。図3の(A
)及び(B)において右端に「H」を付加して示した数
値は16進表示のアドレスである。ドットプリンタの処
理を考えると、これらの機能プログラムは単独に存在し
ては意味をなさず、それぞれが組合わされて順次または
並行に実行されて初めてドットプリンタの動作をする。
【0029】そのため、これらの機能プログラムの上位
にあって制御するのがモニタ部10である。このモニタ
部10は11〜17の各部の機能プログラムの動作を常
に監視しており、その結果から処理の順番を決定して制
御を割り振る。
【0030】例えば、ホストからコマンドが入った時に
は、まずホストインタフェース部11が起動され、そこ
でコマンドをドットプリンタ内部で処理できる形式に変
換してモニタ部10に制御を渡す。モニタ部10はこれ
を受けて、コマンド処理部12を起動する。コマンド処
理部12では、RAM上にビットマップデータを描画し
た後、モニタ部10に制御を渡す。
【0031】それにより、モニタ部10は印字部15と
紙送り部16及びリボン送り部17を順に起動させる。 印字部15はドットヘッドにデータを転送し、ドットヘ
ッドを移動させながらドットヘッドに電流を流してリボ
ンを介して紙に印字する。紙送り部16とリボン送り部
17は、それぞれ紙とリボンを送る。
【0032】このように、モニタ部10が印字部15と
紙送り部16及びリボン送り部17を交互に所要回数分
繰り返し起動させて、1ページ分の印字を終える。モニ
タ部10は以上のような監視と起動を行なう部分であり
、リセット時(電源投入時を含む)にはモニタ部10の
プログラムがその先頭から走るようになっている。
【0033】モニタ部10の先頭がROM上で0番地に
対応していれば、図3に示すように0番地以降にモニタ
部10のプログラムが書き込まれる。これらの機能プロ
グラムは、1人または複数人のプログラマによって個別
に作られ、コンパイル,リンク,ロードという作業の後
デバッグされて、重大なバグがなくなった時点でROM
ライタを用いて1つのROMに書き込まれる。
【0034】これがプログラム組込型ドットプリンタの
プログラム構造である。ドットプリンタの場合、ユーザ
の要求等によって大きく変わるのがホストインタフェー
ス部11やコマンド処理部12である。
【0035】ドットプリンタとして標準で持っているホ
ストインタフェース部11の仕様では、実際に接続する
ホストと十分な通信ができず、プリンタのあるステータ
ス(状態)を送る機能を追加したりする場合もあろうし
、新たなコマンドを追加する必要が出てくる場合も多い
。また、コマンド体系をまったく変えなければならない
こともある。このような要求はユーザが増えれば増える
ほど多種多様なものとなる。
【0036】従来はその度毎にプログラムの中の必要な
箇所を変更した後再び全プログラムのコンパイル,リン
ク,ロードを行なってROMに書き込んでユーザに供給
し、プリンタに搭載されているROMをそれと交換する
ことによって仕様変更に対応していた。
【0037】例えば、図3の(A)に示すアドレス配置
で各機能プログラムが格納されているROMが搭載され
ているプリンタにおいて、ホストインタフェース部11
の機能を変更してそのプログラムが増えると、交換する
ROM内での各機能プログラムのアドレス配置が図2の
(B)に示すように変わる。
【0038】この場合、コマンド処理部12以降の先頭
アドレスがすべて変更になっており、それらの起動アド
レス情報を含んでいるモニタ部10のプログラム内部も
実は変更されていることになる。このような一連の変更
作業の際、変更すべき機能プログラム以外のプログラム
を間違えて変更したりして、副作用というべきバグが発
生してしまうことがよくあった。
【0039】また、一部の機能変更にもかかわらず、ア
ドレス変更がプログラム全体に及ぶので、プログラム全
体を管理単位として保管しておく必要がある。このよう
な変更は、ホストインタフェース部だけでなくコマンド
処理部にも発生する可能性があり、また他の機能プログ
ラムに発生する可能性もある。その種類はユーザの要求
ごとに増え、プログラムの容量が大きければ大きいほど
その管理は繁雑になる。
【0040】このような問題を解決するため、この実施
例では図1の(A)に示すように、プリンタの各機能を
実現する機能プログラムを格納した書き換え不能なRO
Mを、プリンタ本体に固定(内蔵)の第1のROM1と
本体に設けたICソケットに着脱可能な第2のROM2
とによって構成すると共に、所定領域に第1,第2のR
OMに格納されている各機能プログラムのベクタアドレ
ステーブルを記憶する書き換え可能なRAM3を本体内
に設ける。
【0041】そして、CPU4によってこれらの各メモ
リ1〜3を管理し、RAM3内のベクタアドレステーブ
ルにROM1及びROM2(装着されない場合はROM
1のみ)内の各機能プログラムのベクタアドレスを記憶
させ、そのベクタアドレスに従ってROM1又はROM
2内の各機能プログラムを順次起動させて実行すること
により、プリンタとしての機能を実現するようにしてい
る。
【0042】以下、この図1に示す実施例について詳細
に説明する。ROM1には、リセット後(電源投入時も
同じ)に走るプログラムが格納されており、標準の仕様
を満足するドットプリンタの制御に係る各機能プログラ
ムはこのROM1内にすべて格納されている。
【0043】すなわち、このROM1内には図1の(B
)に示すように、アドレス「0」からモニタ部,アドレ
ス「120AH」からホストインタフェース部■,アド
レス「166FH」からコマンド処理部■,アドレス「
3130H」からユーザインタフェース部■,……が順
番に格納されている。これらは図2の10〜17の各部
に相当する機能プログラムである。
【0044】一方、RAM3内には図1の(D)に示す
ように、各機能プログラムのベクタアドレスを並べて配
置するベクタアドレステーブル18の領域が用意され、
ROM1のモニタ部10には、ROM1内に格納されて
いる全機能プログラムのベクタアドレスを書き込むため
の制御プログラムである「ベクタアドレス書き込み部■
」と、リセット後にROM2の実装状態を検知するため
の制御プログラムであるROM2検知部とが含まれてい
る。
【0045】ROM2には、図1の(B)に示すように
、ROM1の一部の機能プログラムの制御を置き換える
機能プログラム(この例では「コマンド処理部■」)と
、そのベクタアドレスをRAM3内のベクタアドレステ
ーブル18の対応するアドレス(この例では「C004
H」)に書き込むための制御プログラムであるベクタア
ドレス書き込み部■が格納されている。
【0046】次に、この実施例の動作を図4に示すフロ
ーチャートに従って説明する。リセット後にROM1の
モニタ部10が起動される。モニタ部10のベクタアド
レス書き込み部■によって、RAM3内のベクタアドレ
ステーブル18のC000Hから順番にROM1内の全
機能プログラムのベクタアドレス、すなわちホストイン
タフェース部■のベクタアドレス120AH,コマンド
処理部■のベクタアドレス166FH,ユーザインタフ
ェース部■のベクタアドレス3130H,……を順次格
納していく。
【0047】その後、ROM2検出部によってROM2
が実装されているかどうかを判断する。一般に、データ
バスは抵抗器で電源ラインにプルアップされているので
、ROM2の先頭アドレス8000HにFFH以外のデ
ータを書き込んでおくことにより、図1のCPU4がア
ドレス8000Hに格納されるデータを読む行為を行な
ったとき、ROM2が実装されていない場合にのみFF
Hが読み出されるから、CPU4はROM2の実装状態
を簡単に判断できる。
【0048】そして、ROM2が実装されていたら、R
OM2のベクタアドレス書き込み部■(8000H)を
サブルーチンコールする。ROM2が実装されていなか
ったら何もせずに次へ進む。
【0049】ROM2の先頭アドレス8000Hがサブ
ルーチンコールされると、ROM2内に格納されている
機能プログラム(この例ではコマンド処理部■)のベク
タアドレス9000HをRAM3内のベクタアドレステ
ーブル18のコマンド処理部に対応するアドレスC00
4Hに書き込む。この後、このサブルーチンからROM
1のモニタ部10に制御を戻す(リターンする)。
【0050】コマンド処理部■は、ROM1のコマンド
処理部■とは一部動作が異なるが、コマンド処理部とし
て必要な機能を有している。したがって、ROM1によ
ってRAM3に図1の(D)に示すように一旦書き込ま
れたコマンド処理部■のベクタアドレス166FHが、
ROM2によって同図の(E)に示すようにコマンド処
理部■のベクタアドレス9000Hに書き換えられたこ
とになる。
【0051】その後、ホストからデータが入ると、それ
を検知したROM1内のモニタ部10はRAM3のベク
タアドレステーブル18のホストインタフェース部に対
応するアドレスC000Hからベクタアドレス120A
Hを読み出して、120AHで指示されるサブルーチン
をコールする。これによりROM1内のホストインタフ
ェース部■が走ることとなる。
【0052】ホストインタフェース部の処理が終了した
ら、RAM3のベクタアドレステーブル18のコマンド
処理部に対応するアドレスC004Hからベクタアドレ
ス9000Hを読み出して、9000Hで指示されるサ
ブルーチンをコールする。これにより、ROM2内のコ
マンド処理部■が走ることとなる。このようにして、次
々にRAM3内のベクタアドレステーブル18に記憶さ
れたベクタアドレスに従って処理を進めていく。
【0053】したがって、この実施例では、ホストイン
タフェース部としてROM1のベクタアドレス120A
H以降のプログラムが、コマンド処理部としてROM2
のベクタアドレス9000H以降のプログラムが、ユー
ザインタフェース部としてROM1のベクタアドレス3
130H以降のプログラムが、それぞれ実行される。
【0054】なお、ROM2によって機能を付加する場
合には、ROM1のある機能プログラムによって実現さ
れる機能に対して新たな機能を付加した状態の機能プロ
グラムをROM2に格納する方法と、ダミーのプログラ
ムをROM1に用意する方法との2種類がある。
【0055】ダミーのプログラムを用意する方法では、
ROM1内に格納する機能プログラムとして特に何の機
能ももたないダミーのプログラムを設けておき、そのベ
クタアドレスをROM1のプログラムによってRAM3
のベクタアドレステーブル18に記憶させておくように
すればよい。
【0056】たとえば、そのダミーのプログラムがベク
タアドレス3A00Hに格納されているとすると、3A
00H:NOP…ノーオペレーション(何もせず時間を
費やすのみ) RET…モニタへのリターン(復帰)のようなプログラ
ムがROM1に書き込まれており、そのベクタアドレス
3A00HがRAM3のベクタアドレステーブルに記憶
されることになる。
【0057】一方、ROM2の機能プログラムでは、そ
れが例えばブザーを鳴らしたりLEDを光らせる等の処
理をさせるようになっていて、そのプログラムのベクタ
アドレスがROM2のベクタアドレス書き込み部によっ
て、RAM3のベクタアドレステーブル18中のベクタ
アドレス3A00Hを書き換えるようにすればよい。
【0058】すなわち、ROM1にダミーのプログラム
を格納しておくことにより、付加すべき機能プログラム
を格納したROM2を実装すれば、新たな機能がこの実
施例のドットプリンタに付加されることとなる。
【0059】以上の例では、ベクタアドレスとしてRA
M3内のベクタアドレステーブル18に機能プログラム
のアドレスを格納しているが、アドレス情報ではなくジ
ャンプ命令を直接格納しても同様の機能が得られる。
【0060】たとえば、インテル社のCPU「8085
」ではベクタアドレス9000Hへのジャンプ命令は機
械語で3バイトであり、C3H,00H,90Hと表わ
されるので、RAM3内のベクタアドレスC004Hに
C3H,C005Hに00H,C006Hに90Hをそ
れぞれ格納して、ROM1のモニタ部10から直接C0
04Hをサブルーチンコールすることによっても同様の
効果を与えることができる。
【0061】また、ROM2に変更する機能プログラム
としてコマンド処理部■のみを格納した例を示したが、
他の機能プログラム、例えばユーザインタフェース部■
とそのベクタアドレスをさらに格納してもよい。
【0062】勿論、機能プログラムとして通常の機能プ
ログラムより小さい部分、例えばユーザインタフェース
部の中のあるスイッチが押下されたときの動作のみを変
更するようなことも容易にできる。また、これまでは簡
単のためROM1の他のROMとしてROM2のみを考
えたがさらにROM装着用のICソケットを複数個設け
ておけば、ROM2と同様なROMを必要個数設けるこ
とも可能であり、このような応用もこの発明の趣旨に含
まれる。
【0063】ROM2の他に追加する1個のROMを第
3のROMとすれば、ROM2にコマンド処理部のプロ
グラムを、第3のROMにユーザインタフェース部のプ
ログラムを載せるように定義し、ROM2用にコマンド
処理部A又はB,第3のROM用にユーザインタフェー
ス部C又はDと載せかえることにより、A−C,A−D
,B−C,B−Dという4つの機能の組合せが実現でき
ることになり、ユーザ要求仕様に簡便に対応できる。
【0064】また、ROM1は素子の個数として1個で
ある必要はなく、既述の機能を満足するものであれば複
数個に分かれていてもこの発明の趣旨に反することはな
い。
【0065】次に、図5及び図6によってこの発明の他
の実施例について説明するが、上述した実施例と同じ部
分の説明は省略する。図5は、この実施例のドットプリ
ンタにおける制御部の構成(A)とその各メモリ内のプ
ログラム等の格納状態(B)〜(E)を示す説明図であ
り、図1と対応する部分には同一符号を付している。
【0066】この実施例では、上述した第1実施例のよ
うにROM2にベクタアドレス書き込み用のプログラム
を格納するのではなく、図5の(C)に示すように、R
OM2内に格納されている機能プログラムに対応するベ
クタアドレステーブル19を格納している。このROM
2のベクタアドレステーブル19には、その中に書き込
まれているベクタアドレスの種類およびテーブルの終了
を示す情報がアドレスの他に含まれている。
【0067】この実施例では、図5の(C)に示すよう
にROM2の中に格納されるコマンド処理部■の先頭ア
ドレス9000Hの隣にベクタアドレスの種類としてコ
マンド処理部を示す「2」が付加されている。ちなみに
、ホストインタフェース部は「1」、ユーザインタフェ
ース部は「3」である。この値がFFHであれば、RO
M2内のベクタアドレステーブルは終了であることを示
す。
【0068】この実施例の動作を図6に示すフローチャ
ートに従って説明する。リセット後、ROM1内のモニ
タ部10が起動され、そのベクタアドレス書き込み部■
によってRAM3内のベクタアドレステーブル18に、
図5の(D)に示すようにROM1内に格納されている
全機能プログラムのベクタアドレスを書き込んだ後、R
OM2検出部によってROM2の実装を判断する。
【0069】ROM2が実装されていれば、ROM2内
のベクタアドレステーブル19を読み出し、RAM3内
のベクタアドレステーブル18を書き換える。図5に示
した例では、ROM2内のベクタアドレステーブル19
に「2」と「9000H」が書かれているので、RAM
3内のベクタアドレステーブル18の2番目、つまりC
004Hが166FHから9000Hに書き換えられ、
図5の(E)に示すような状態になる。
【0070】もし、ROM2が実装されていなければ何
もせずに次へ進む。図5の(E)に示した書き換え後の
RAM3内のベクタアドレステーブル18の状態は、図
1の(E)に示した前述の実施例の場合と同じであるか
ら、その後、ホストコンピュータからデータが入った後
の動作は、前述の実施例での説明と同じである。したが
って、この実施例によっても前述の実施例と同様な作用
,効果が得られることになる。
【0071】また、この実施例において、RAM3内の
ベクタアドレステーブル18の作成の仕方には、図7の
フローチヤートに示すような方法もある。これは図6の
フローチヤートによる方法と違い、RAM3内のベクタ
アドレステーブル18をROM1用に一旦書いた後RO
M2用に一部書き換えるのではなく、順次ROM1用の
ベクタアドレスを書くべきか、ROM2用のベクタアド
レスを書くべきか判断しながら、RAM3内のベクタア
ドレステーブルを作成する方法である。
【0072】すなわち、ROM2が実装されていて、且
つこれからRAM3に書き込もうとしているベクタアド
レスがROM2内に存在するときにのみ、そのベクタア
ドレスをRAM3のベクタアドレステーブル18に書き
込み、それ以外ではROM1のベクタアドレスをRAM
3のベクタアドレステーブル18に書き込む。
【0073】この発明の上述した各実施例のドットプリ
ンタによれば、ROM2を搭載しなくても、ROM1だ
けでドットプリンタの持っている標準動作を実現でき、
必要に応じてROM2を追加することにより、ユーザ要
求仕様への対応が容易にできる。ドットプリンタ本体に
は必要に応じてROM2を搭載できるように、標準状態
ではICソケットのみを実装しておくだけでよい。
【0074】一般に、機能ブロック間あるいはモニタ部
と各機能プログラムとの間のインタフェース条件、つま
りデータやフラグ等の数は明確であるから、この条件を
守ってさえいれば、必要な機能プログラムのみをROM
2用に開発して搭載することにより、ユーザの要求に対
応したドットプリンタを供給できることになる。特に、
ドットプリンタを含むプリンタの分野においては、前述
したように図2に示したコマンド処理部12でそのプリ
ンタ特有のコマンド体系を処理している。
【0075】そこで、ROM2に他のコマンド体系を処
理するプログラムを入れることによって、標準状態でA
なるコマンド体系を処理していたプリンタをBなるコマ
ンド体系、あるいはCなるコマンド体系をもったプリン
タに変えることができる。一般に、このように他のコマ
ンド体系を動作させることをエミュレーションモードと
いう。この発明によれば、プリンタのエミュレーション
モードを容易に実現することができる。
【0076】また、プリンタには一般にバイリンガルと
呼ばれる機能もあり、これは例えば日本語と英語のよう
に2ケ国語を両方処理できる機能である。この場合にも
、標準仕様で英語対応のコマンド処理を実現するように
ROM1にプログラムを格納していた場合、ROM2に
日本語対応のコマンド処理部を格納させることによって
、英語対応プリンタを日本語対応プリンタに容易に変え
ることができる。
【0077】もちろん、英語と日本語をともに処理でき
るコマンド処理部をROM2に格納するこによって、バ
イリンガル機能を持たせることができる。このようなエ
ミュレーションモード及びバイリンガル機能の例で判る
ように、特にプリンタのコマンド処理において容易に機
能の置き換えができるのは好都合である。
【0078】しかし、この発明はプリンタに限るもので
はなく、各種のプログラム組込型機器に同様に適用でき
るものである。
【0079】
【発明の効果】以上説明してきたように、この発明によ
れば、プログラム組込型機器において仕様変更に対応す
るための第2のROMをICソケット等に装着すること
によって実装できるようにしておき、RAM上のベクタ
アドレステーブルの一部に、その第2のROM内の機能
プログラムのベクタアドレスを書き込んでおくことによ
り、その第2のROM内の機能プログラムを必要に応じ
て動作させられるようにしたので、次のような効果が得
られる。
【0080】(1)大幅なコストアップを生じさせずに
ユーザの要求仕様への対応ができる。 (2)変更プログラムについては、変更する対象となる
機能プログラムのみを変更して第2のROMに保管すれ
ばよいので、変更プログラムの管理が繁雑にならない。
【0081】(3)標準仕様のROMに対し、その標準
仕様のROMは変更せずに別のROMを追加するだけで
変更仕様を実現できるので、装置の変更管理が容易にな
る。 (4)標準仕様のROMと変更仕様のROMの開発者が
異なる場合、変更仕様のROMの開発者は変更対象の機
能プログラムのインタフェース条件を守ってその機能プ
ログラムのみを開発すればよいので、開発管理も容易に
なる。
【0082】なお、(3),(4)において標準仕様の
ROMおよび変更仕様のROMは、それぞれ前述した実
施例における第1のROM,第2のROMに相当する。
【図面の簡単な説明】
【図1】この発明の一実施例を示すドットプリンタの制
御部の構成とその各メモリ内のプログラム等の格納状態
を示す説明図である。
【図2】この発明を適用するドットプリンタの機能構成
を示すブロック図である。
【図3】同じくその各部(プログラム)のROM内での
格納状態を示す説明図である。
【図4】図1に示す実施例におけるモニタ部の動作を示
すフロー図である。
【図5】この発明の他の実施例を示す図1と同様な説明
図である。
【図6】同じくそのモニタ部の動作を示すフロー図であ
る。
【図7】そのベクタアドレステーブル作成の他の例を示
すフロー図である。
【符号の説明】
1  第1のROM      2  第2のROM 
       3  RAM 4  CPU            10  モニタ
部11  ホストインタフェース部      12 
 コマンド処理部 13  ユーザインタフェース部      14  
センサ処理部 15  印字部          16  紙送り部
          17  リボン送り部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  実行可能な各種機能のプログラムを格
    納した書き換え不能なメモリであるROMを組み込んだ
    プログラム組込型機器において、前記ROMを第1のR
    OMと第2のROMとによって構成すると共に、書き換
    え可能なメモリであるRAMを設け、前記RAMには、
    その所定領域に前記第1,第2のROMに格納されてい
    る各機能プログラムのベクタアドレステーブルを記憶し
    、前記第1のROMには、機器の機能を実現する1個又
    は複数個の機能プログラムと、リセット後に実行される
    プログラムであって、前記各機能プログラムのベクタア
    ドレスを前記RAM内のベクタアドレステーブルに書き
    込むための制御,前記第2のROMの実装状態を検出す
    る制御,前記第2のROM内の制御プログラムを起動さ
    せる制御を含む制御プログラムとを格納し、前記第2の
    ROMには、前記第1のROM内の機能プログラムによ
    って実現される機器の機能に対して付加あるいは変更さ
    れる機能を実現する1個又は複数個の機能プログラムと
    、その各機能プログラムのベクタアドレスを前記RAM
    内のベクタアドレステーブルに書き込むための制御プロ
    グラムとを格納しており、前記第1及び第2のROM内
    の各機能プログラムのベクタアドレスが前記RAM内の
    ベクタアドレステーブルに書き込まれた後は、前記各機
    能プログラムが該RAM内のベクタアドレステーブルに
    記憶されたベクタアドレスに従って実行されるようにし
    たことを特徴とするプログラム組込型機器。
  2. 【請求項2】  実行可能な各種機能のプログラムを格
    納した書き換え不能なメモリであるROMを組み込んだ
    プログラム組込型機器において、前記ROMを第1のR
    OMと第2のROMとによって構成すると共に、書き換
    え可能なメモリであるRAMを設け、前記RAMには、
    その所定領域に前記第1,第2のROMに格納されてい
    る各機能プログラムのベクタアドレステーブルを記憶し
    、前記第1のROMには、機器の機能を実現する1個又
    は複数個の機能プログラムと、リセット後に実行される
    プログラムであって、前記第2のROMの実装状態を検
    出する制御と,その検出結果により該第2のROMが実
    装されていれば前記第1のROM内の各機能プログラム
    のアドレス情報と前記第2のROM内のベクタアドレス
    テーブルとから前記RAM内のベクタアドレステーブル
    に前記第1,第2のROM内の各機能プログラムのベク
    タアドレスを書き込み、前記第2のROMが実装されて
    いなければ前記第1のROM内の各機能プログラムのア
    ドレス情報から前記RAM内のベクタアドレステーブル
    に前記第1のROM内の各機能プログラムのベクタアド
    レスのみを書き込む制御を含む制御プログラムを格納し
    、前記第2のROMには、前記第1のROM内の機能プ
    ログラムによって実現される機器の機能に対して付加あ
    るいは変更される機能を実現する1個又は複数個の機能
    プログラムと、その各機能プログラムに対応するベクタ
    アドレステーブルとを格納しており、前記第1及び第2
    のROM内の各機能プログラムのベクタアドレスが前記
    RAM内のベクタアドレステーブルに書き込まれた後は
    、前記各機能プログラムが該RAM内のベクタアドレス
    テーブルに記憶されたベクタアドレスに従って実行され
    るようにしたことを特徴とするプログラム組込型機器。
JP3084812A 1991-03-25 1991-03-25 プログラム組込型機器 Expired - Fee Related JP2593007B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3084812A JP2593007B2 (ja) 1991-03-25 1991-03-25 プログラム組込型機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3084812A JP2593007B2 (ja) 1991-03-25 1991-03-25 プログラム組込型機器

Publications (2)

Publication Number Publication Date
JPH04294183A true JPH04294183A (ja) 1992-10-19
JP2593007B2 JP2593007B2 (ja) 1997-03-19

Family

ID=13841145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3084812A Expired - Fee Related JP2593007B2 (ja) 1991-03-25 1991-03-25 プログラム組込型機器

Country Status (1)

Country Link
JP (1) JP2593007B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844796A (en) * 1994-07-19 1998-12-01 Minolta Co., Ltd. Machine control device
JP2001228274A (ja) * 2000-02-21 2001-08-24 Koyo Electronics Ind Co Ltd 電子カウンタ
JP2008102761A (ja) * 2006-10-19 2008-05-01 Mitsubishi Electric Corp 組み込みファームウェアの更新方法
JP2009140512A (ja) * 1999-03-03 2009-06-25 Microsoft Corp リードオンリー・ソフトウェア・モジュールの更新
JPWO2008102426A1 (ja) * 2007-02-19 2010-05-27 三菱電機株式会社 プログラマブルコントローラの周辺装置、置換方法およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03293172A (ja) * 1990-04-12 1991-12-24 Canon Inc 出力装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03293172A (ja) * 1990-04-12 1991-12-24 Canon Inc 出力装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844796A (en) * 1994-07-19 1998-12-01 Minolta Co., Ltd. Machine control device
JP2009140512A (ja) * 1999-03-03 2009-06-25 Microsoft Corp リードオンリー・ソフトウェア・モジュールの更新
JP2001228274A (ja) * 2000-02-21 2001-08-24 Koyo Electronics Ind Co Ltd 電子カウンタ
JP2008102761A (ja) * 2006-10-19 2008-05-01 Mitsubishi Electric Corp 組み込みファームウェアの更新方法
JPWO2008102426A1 (ja) * 2007-02-19 2010-05-27 三菱電機株式会社 プログラマブルコントローラの周辺装置、置換方法およびプログラム
JP4541418B2 (ja) * 2007-02-19 2010-09-08 三菱電機株式会社 プログラマブルコントローラの周辺装置、置換方法およびプログラム

Also Published As

Publication number Publication date
JP2593007B2 (ja) 1997-03-19

Similar Documents

Publication Publication Date Title
EP0911735B1 (en) Microprocessor test system
JPH05189075A (ja) Os/2オペレーティングシステムのためのリジューム処理方法
JP2008509483A5 (ja)
Guide User's Guide
JP2593007B2 (ja) プログラム組込型機器
CN113849230A (zh) 服务器启动方法、装置、电子设备及可读存储介质
JPH06314202A (ja) 画像形成装置
JP5299263B2 (ja) 印刷システム、プリンター、及び専用usbメモリ
SERIES II et al. inU
JPH05274157A (ja) 画像形成装置
JPH01112424A (ja) 電子機器
JPH01204132A (ja) プリンタ装置
JPH05307471A (ja) 電子機器
JPH02114315A (ja) プリンタ装置
JPH06219021A (ja) 画像形成装置
JP2751088B2 (ja) 印字装置
JPH04318616A (ja) プリンタ装置
JP2588166B2 (ja) パタ−ン記憶媒体差し換え制御装置
JPH03143660A (ja) プリンタ
Marks Design of a checkout compiler
JP2571860Y2 (ja) プリンタ装置
JPH03266300A (ja) Eep―romのメモリ更新方法
Stockton Some simple microprocessor kit enhancements
EP0656586A1 (en) Method and system for switching between a processor upgrade card and a planar processor
JPH03147863A (ja) プリンタ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees