JPH0824395B2 - Addressing device - Google Patents

Addressing device

Info

Publication number
JPH0824395B2
JPH0824395B2 JP2100579A JP10057990A JPH0824395B2 JP H0824395 B2 JPH0824395 B2 JP H0824395B2 JP 2100579 A JP2100579 A JP 2100579A JP 10057990 A JP10057990 A JP 10057990A JP H0824395 B2 JPH0824395 B2 JP H0824395B2
Authority
JP
Japan
Prior art keywords
data
memory
remote control
stored
address
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.)
Expired - Fee Related
Application number
JP2100579A
Other languages
Japanese (ja)
Other versions
JPH0316498A (en
Inventor
マービン キーナン ダグラス
Original Assignee
トムソン コンシユーマ エレクトロニクス インコーポレーテツド
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
Priority claimed from GB898908861A external-priority patent/GB8908861D0/en
Application filed by トムソン コンシユーマ エレクトロニクス インコーポレーテツド filed Critical トムソン コンシユーマ エレクトロニクス インコーポレーテツド
Publication of JPH0316498A publication Critical patent/JPH0316498A/en
Publication of JPH0824395B2 publication Critical patent/JPH0824395B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Selective Calling Equipment (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、ビデオカセットレコーダ、ケーブルコンバ
ータ、ビデオディスクプレーヤ、テレビジョン受像機な
どの消費者用電子製品用のプログラム可能なリモートコ
ントロール送信機において有用なメモリ節約構成に関す
る。
Description: INDUSTRIAL APPLICABILITY The present invention is useful in programmable remote control transmitters for consumer electronic products such as video cassette recorders, cable converters, video disc players, televisions and the like. Regarding memory saving configuration.

発明の背景 消費者用電子製品に使用する赤外線(IR)リモートコ
ントロール装置として、異なる製造業者により製造さ
れ、且つそれぞれ異なるリモートコントロール信号コー
ド形式を使用する多数の電子製品の中の任意の1つを制
御するマルチブランド万能リモートコントロール・ハン
ドユニットを使用する傾向にある。万能リモートコント
ロール・ハンドユニットを使用すると、ユーザーはリモ
ートコントロール・ハンドユニットを一台だけ使用すれ
ばよいという便利さが得られると共に、消費者用電子製
品の機能を、すべてではないにしても、ほとんど制御す
ることができる。
BACKGROUND OF THE INVENTION As an infrared (IR) remote control device for consumer electronic products, any one of a number of electronic products manufactured by different manufacturers and each using different remote control signal code formats can be used. There is a tendency to use multi-brand universal remote control hand units to control. The universal remote control hand unit provides the convenience that the user only needs to use one remote control hand unit, and most, if not all, of the features of consumer electronic products. Can be controlled.

一台の万能リモートコントロール・ハンドユニットが
処理できる種々の機能および種々のリモートコントロー
ル・コマンド信号形式の数は、リモートコントロールの
コード記憶に利用できるメモリの量に大きく依存する。
The number of different functions and different remote control command signal formats that a single universal remote control hand unit can handle depends largely on the amount of memory available for remote control code storage.

万能リモートコントロール・ハンドユニットには2つ
の基本的なタイプがある。ランダム・アクセス・メモリ
(RAM)をベースとするシステムは、しばしば“学習”
リモートコントロール・ハンドユニットと呼ばれる。こ
のタイプのリモートコントロール・ハンドユニットで
は、ユーザーのオリジナル・ハンドユニットの所望の機
能をリモートコントロール・ハンドユニットに“教え
る”必要がある。これは、通常、“学習”リモートコン
トロール・ハンドユニットを“学習モード”に切り換
え、“学習”リモートコントロール・ハンドユニットが
エミュレートされるハンドユニットからのIR送信を受信
することができるように、これら2つのハンドユニット
を物理的に向かい合わせることにより行なわれる。この
学習過程は情報記憶処理として始まり、IR送信は学習す
るリモートコントロール・ユニットにより受信されなが
ら記録される。この最初の“生”データの記憶の後、生
データは分析され且つ圧縮され、それからこのデータの
最終的な圧縮形がRAMに記憶される。万能リモートコン
トロール・ハンドユニットがコマンドを送信するため
に、リモートコントロール・モードで使用されるとき、
記憶された圧縮コードがメモリから読み出され、非圧縮
化(圧縮されたものを戻すこと)され、その結果得られ
る信号が送信される。
There are two basic types of universal remote control hand units. Systems based on random access memory (RAM) are often "learned"
It is called a remote control hand unit. With this type of remote control hand unit, it is necessary to "teach" the remote control hand unit the desired functionality of the user's original hand unit. This normally switches the "learning" remote control hand unit to "learning mode" so that the "learning" remote control hand unit can receive IR transmissions from the emulated hand unit. This is done by physically facing the two hand units. This learning process begins as an information storage process, where IR transmissions are recorded as they are received by the learning remote control unit. After this initial "raw" data storage, the raw data is analyzed and compressed, and then the final compressed form of this data is stored in RAM. When the universal remote control hand unit is used in remote control mode to send commands,
The stored compressed code is read from memory, decompressed (returning the compressed one) and the resulting signal transmitted.

読み出し専用メモリ(ROM)をベースとするシステム
は一定の1組の装置、通常、テレビジョン受像機(T
V)、ビデオカセットレコーダ(VCR)およびケーブルコ
ンバータに限定される。この種のハンドユニットにおい
ては、制御される各装置の全ての機能について、異なる
全てのコード形式を予めプログラムしなければならな
い。また、リモートコントロール・コードは、通常、メ
モリ空間をできるだけ少なく占有するように何らかの方
法で圧縮される。
A read only memory (ROM) based system is a set of devices, usually a television receiver (T).
V), video cassette recorder (VCR) and cable converters only. In this type of hand unit, all different code types must be pre-programmed for all functions of each controlled device. Also, the remote control code is typically compressed in some way to occupy as little memory space as possible.

メモリ空間が限られているので、各圧縮方法について
圧縮方法が効率的であればあるほど、それだけ多くの機
能を記憶することができる。メモリ空間を節約する別の
方法は、メモリをアドレス指定するために効率的なルー
チンを与えることにより、メモリをアドレス指定するの
に必要なプログラム命令の数を減少させることである。
本発明は、この目的に向けられており、特に、いわゆる
“指標アドレス指定”(indexed-addressing)が使われ
るときメモリ空間を節約することに関連するものであ
る。
Due to the limited memory space, the more efficient the compression method for each compression method, the more functions can be stored. Another way to save memory space is to reduce the number of program instructions required to address the memory by providing an efficient routine to address the memory.
The present invention is directed to this end, and in particular relates to saving memory space when so-called "indexed-addressing" is used.

マイクロプロセッサのソフトウェアにおいて、“マト
リックス”(すなわち、記憶場所の群)の使用は極めて
普通のことであり、通常、ルックアップ・テーブルおよ
び/またはデータ・テーブル用に使われる。実際、ルッ
クアップ・テーブルおよびデータ・テーブルは極めて有
りふれているから、大抵のマイクロプロセッサは間接的
にデータをアクセスするために使用することができる
“指標レジスタ”(index register)を含んでいる。例
えば、X=8であり、ポインタ(POINTER)がデータ・
テーブルの開始点(メモリにおいて)であれば、 LDA POINTER,X はメモリ中のPOINTERの後の8番目のバイトを取り出
し、それを累算器に貯える。すなわち、LDAPOINTER,X
は、POINTERの値の組み合わせ(16ビットのアドレス)
にXレジスタに貯えられている値を加えたものによりア
ドレス指定されるメモリ・ロケーションからデータをマ
イクロコンピュータにより読み出す命令である。これは
非常に有効な方法であるが個々のマトリックスをアドレ
スするのに大きなメモリ部を必要とする。
In microprocessor software, the use of "matrixes" (i.e. groups of memory locations) is quite common and is commonly used for look-up tables and / or data tables. In fact, lookup and data tables are so commonplace that most microprocessors include an "index register" that can be used to indirectly access the data. For example, X = 8 and the pointer (POINTER) is data
If at the beginning of the table (in memory), LDA POINTER, X retrieves the 8th byte after POINTER in memory and stores it in the accumulator. Ie LDAPOINTER, X
Is a combination of POINTER values (16-bit address)
Is the instruction to read data by the microcomputer from the memory location addressed by the value stored in the X register. This is a very effective method but requires a large memory section to address the individual matrices.

発明の目的 ROMをベースとするリモートコントロール・ユニット
において、ROMのメモリの大きさを節約することであ
る。
It is an object of the invention to save the ROM memory size in a ROM-based remote control unit.

発明の効果 すべてのサブルーチンに共通の符号を個別にROMに貯
える必要がない。
EFFECT OF THE INVENTION It is not necessary to store the code common to all subroutines individually in ROM.

発明の概要 複数のマトリックスの中の任意のものに貯えられてい
る全てのデータを取り出すために単一のサブルーチンが
使用されることが理解される。個々のマトリックスをア
ドレスするために、単一のサブルーチンが所望のマトリ
ックスの開始位置を加算することにより変更される。開
始位置に関するデータはテーブルに貯えられる。
SUMMARY OF THE INVENTION It is understood that a single subroutine is used to retrieve all the data stored in any of the matrices. To address the individual matrices, a single subroutine is modified by adding the desired matrix start positions. Data about the starting position is stored in the table.

実施例 第1図は、先に説明したタイプの中の学習形式のリモ
ートコントロール・ハンドユニットとして使用するのに
適した装置を示す。制御器100はマイクロプロセッサで
よい(ここで使用されているようにマイクロプロセッサ
およびマイクロコンピュータという用語は同じ意味のも
のである)。
EXAMPLE FIG. 1 shows a device suitable for use as a learning type remote control hand unit of the type described above. Controller 100 may be a microprocessor (as used herein, the terms microprocessor and microcomputer are synonymous).

制御器100は、制御器100の各種の機能のタイミングを
設定するクロック信号をクロック発振器110から受け取
る。制御器100は、プログラムされた命令に従って、制
御器100の内部にある場合もあるし、そうでない場合も
あるメモリ120をアドレスする。メモリ120は、汎用(ま
たはスクラッチ・パッド)領域122およびデータ領域124
を含んでいる。また、制御器100は、数字キー0−9、
チャンネル・アップ・キー、チャンネル・ダウン・キ
ー、パワー・オン/オフ・キーを含む1群のキー132か
ら成るキーボード130によりユーザーが入力するデータ
を受け取る。キーボード130は“学習モード”(以下に
説明する)を開始させるためのスイッチ134を含んでい
ることもある。このスイッチはキー134としてキーボー
ド130上に示されているが、リモートコントロール・ハ
ンドユニット上のどこか別の所に配置される別個のトグ
ル・スイッチでもよい。第1図の実施例では、キー134
は“トグル”特性を示すものとする。すなわち、キー13
4を1回押すと学習モードとなり、キー134を2回に押す
と、リモートコントロール・ハンドユニットは通常のリ
モートコントロール・モードに戻り、ここでユーザーに
よる指令が制御可能な装置に送られる。
The controller 100 receives from the clock oscillator 110 clock signals that set the timing of the various functions of the controller 100. Controller 100 addresses memory 120, which may or may not be internal to controller 100, according to programmed instructions. Memory 120 has a general purpose (or scratch pad) area 122 and a data area 124.
Is included. Also, the controller 100 uses the numeric keys 0-9,
Data entered by the user is received by a keyboard 130 which comprises a group of keys 132 including a channel up key, a channel down key, and a power on / off key. Keyboard 130 may also include a switch 134 to initiate a "learn mode" (discussed below). This switch is shown on keyboard 130 as key 134, but it could be a separate toggle switch located elsewhere on the remote control hand unit. In the embodiment of FIG. 1, key 134
Shall exhibit the "toggle" property. Ie, key 13
Pressing 4 once enters the learning mode, pressing key 134 twice returns the remote control hand unit to the normal remote control mode, where user commands are sent to the controllable device.

学習モードのとき、IR受信機140はエミュレートされ
るリモートコントロール・ハンドユニットが送信するIR
信号を受信し、これらのIR信号を表わすディジタル・デ
ータを制御器100に供給する。制御器100は、“生の”
(すなわち、圧縮されていない)データを汎用メモリ12
2に貯える。その後“生の”データは圧縮され、後の検
索のために貯えられる。記憶するためにコードを圧縮す
るリモートコントロール装置の一例はウェルズ ザ セ
カンド(Welles II)氏に付与された米国特許第4,623,8
87号に開示されている。
When in learning mode, the IR receiver 140 is the IR transmitted by the emulated remote control hand unit.
It receives the signals and provides digital data representing these IR signals to controller 100. Controller 100 is "raw"
General purpose memory 12 (ie uncompressed) data
Store in 2. The "raw" data is then compressed and stored for later retrieval. An example of a remote control device that compresses a code for storage is U.S. Pat. No. 4,623,8 issued to Welles II.
No. 87 is disclosed.

通常のリモートコントロール・モードにおいて、コマ
ンドについてのリモートコントロール信号の送信が望ま
れるとき、制御器100は記憶されたコードを非圧縮化
し、この結果得られる非圧縮化コードを送信のためにバ
ーストとスペースの適正なシーケンスを組み立てる出力
ユニット160に送る。クロック発振器110は出力ユニット
160により低い周波数の信号を供給する分周器150にクロ
ック信号を供給する。このより低い周波数の信号は送信
のためにIRダイオード170に供給されるデータ・ストリ
ームのバースト成分を形成する。
In normal remote control mode, when it is desired to send a remote control signal for a command, the controller 100 decompresses the stored code, and the resulting uncompressed code is burst and space for transmission. Send the proper sequence of to the output unit 160 to assemble. Clock oscillator 110 is an output unit
A clock signal is supplied to a frequency divider 150 which supplies a signal of a lower frequency to 160. This lower frequency signal forms the burst component of the data stream provided to IR diode 170 for transmission.

これに代る別の方法として、分周器150は省くことが
でき、出力を速く“トグリング”(toggling)すること
によりバースト・パルスは制御器100により発生され
る。
Alternatively, divider 150 may be omitted and burst pulses are generated by controller 100 by quickly "toggling" the output.

ROMをベースとするシステムにおいては、圧縮はリモ
ートコントロール・ハンドユニットにより行なわれず、
ROMに貯えられる圧縮コントロール・コードを発生する
ために予め工場で行なわれる。この場合、IR受信機140
および“学習モード”キー134はリモートコントロール
・ハンドユニットから省くことができる。
In ROM-based systems, compression is not done by the remote control hand unit,
Pre-made at the factory to generate compressed control code stored in ROM. In this case, IR receiver 140
And the "learn mode" key 134 can be omitted from the remote control hand unit.

制御される各装置に対する個々の指令はメモリ中の各
記憶場所に貯えられる。第2図は、テーブル(すなわ
ち、1次元マトリックス)にグループ分けされた多数の
記憶場所を示す。第2図の各グループ215,225,235は256
個の記憶場所を有するものとして示されているが、各グ
ループは最大256個(256個の記憶場所の制限については
以下に説明する)までの中の任意の数の記憶場所を取り
得ることを理解されたい。関連データを含んでいる記憶
場所のグループを多次元のマトリックスで構成すること
はプログラマにとって都合のよい場合がしばしばある。
第3図は、記憶場所が列と行(すなわち、2次元マトリ
ックス)に構成されている2次元マトリックスを示す。
第5図は、メモリ構成が見た目に本の頁に似ているから
ページ・メモリと呼ばれるメモリで構成される3次元マ
トリックスを示す。
The individual commands for each controlled device are stored in each memory location in memory. FIG. 2 shows a number of memory locations grouped into a table (ie, a one-dimensional matrix). Each group 215,225,235 in Figure 2 has 256
Although shown as having one storage location, each group can take any number of storage locations, up to a maximum of 256 (256 storage location limits are discussed below). I want you to understand. It is often convenient for a programmer to organize a group of storage locations containing relevant data into a multidimensional matrix.
FIG. 3 shows a two-dimensional matrix in which the memory locations are arranged in columns and rows (ie, a two-dimensional matrix).
FIG. 5 shows a three-dimensional matrix composed of memories called page memories because the memory organization looks like pages of a book.

第2図および第3図における類似の参照番号は類似の
機能を有する要素を示す。従って、第3図についてのみ
詳細に説明する。第3図に示すように、マトリックス
(315,325,335)の個々の列は、各サブルーチンと各列
の間の点線で示されるように、個々のサブルーチン(31
0,320,330)によりアドレスされる。これらのサブルー
チンは列中の個々の行をアドレスするために指標ポイン
タ方式を使用する。ポインタは所望の列の開始アドレス
(それぞれAO,BO,CO)を示す。指標値はマイクロコンピ
ュータ内に存在するレジスタに入っている。このレジス
タはXレジスタとして知られる。Xレジスタに入ってい
る値はポインタ・レジスタに入っている値に加算され、
所望の記憶場所の最終アドレスとなる。Xレジスタは8
ビット長であるから、255までの値を保持することがで
きる。従って、ポインタ・レジスタの値は255までの追
加の記憶場所により“オフセット”(offset)される。
小さなマトリックスの場合、幾つかの次元から成るもの
であっても、単一の8ビット指標レジスタで何の問題も
生じない。
Similar reference numbers in FIGS. 2 and 3 indicate elements having similar functions. Therefore, only FIG. 3 will be described in detail. As shown in FIG. 3, the individual columns of the matrix (315, 325, 335) are divided into individual subroutines (31
0,320,330). These subroutines use the index pointer scheme to address individual rows in columns. The pointer indicates the start address (AO, BO, CO) of the desired column. The index value is stored in a register existing in the microcomputer. This register is known as the X register. The value in the X register is added to the value in the pointer register,
It becomes the final address of the desired storage location. X register is 8
Since it is a bit length, values up to 255 can be stored. Therefore, the pointer register value is "offset" by up to 255 additional locations.
For a small matrix, a single 8-bit index register does not cause any problems, even if it consists of several dimensions.

多次元のマトリックスM(i,j,k,…)について i<2**ni,j<2**nj,k<2**rk,… ni+nj+nk+…<=8, (ここで、2**niの表記法はコンピュータ・プログラ
ミングの技術分野においてniを2で累乗することを意味
することが知られている。)Mは指標レジスタを以下の
ようにビット・マッピングすることにより割付けること
ができる。
For multi-dimensional matrix M (i, j, k, ...) i <2 ** n i , j <2 ** n j , k <2 ** r k , ... n i + n j + n k + ... <= 8, (where the 2 ** n i notation is known in the field of computer programming to mean n i raised to the power of 2.) M is the index register as It can be assigned by bit mapping.

nibits+njbits+nkbits+… 一例として、上記の式において、“i"はマトリックス
の個々の列の数を表わし、“j"はマトリックスの個々の
行の数を表わし、“k"は(第5図に示すように)列およ
び行の個々のページを表わすことができる。
n i bits + n j bits + n k bits + ... As an example, in the above equation, “i” represents the number of individual columns of the matrix, “j” represents the number of individual rows of the matrix, and “k” represents (the Individual pages of columns and rows can be represented (as shown in FIG. 5).

従って、i×j×k×…<=256バイトの任意の多次
元マトリックスは、それを1次元マトリックスとして考
え、指標レジスタを直接使うことにより処理することが
できる。この種のマトリックスを処理するのに必ずしも
最も効率的な方法ではないけれども、この方法はよく知
られており、よく使われる。より大きなマトリックスの
場合、すなわち、ni+nj+nk+…>8ならば、別のアド
レス指定方法を使わなければならない。
Therefore, any multidimensional matrix of i × j × k × ... <= 256 bytes can be processed by considering it as a one-dimensional matrix and directly using the index register. Although not necessarily the most efficient method of processing this type of matrix, this method is well known and commonly used. For larger matrices, i.e. ni + nj + nk + ...> 8, another addressing method must be used.

不規則マトリックスと呼ばれる或る種のマトリックス
は或る範囲の要素(例えば、i0における要素j0‐j4、i1
における要素j0‐j1、i2における要素j0‐j7など)だけ
を使用する。このような不規則マトリックスの一例が第
3a図に示されている。このようなマトリックスにおいて
使われていないバイトの全てについてメモリを割当てる
ことは、メモリ空間の大きな部分がむだになっているこ
とを意味する。不規則マトリックスをアドレス指定する
典型的な方法は、データを取り出す列−指標付きサブル
ーチンに行指標を送ることである。これは例により最も
よく示すことができる。例えば、第3a図の記憶場所I2_D
ATA5(メモリ要素i=2,j=5、ここでM(i<4,j<
8))に貯えられるデータ・バイトを取り出すために次
のサブルーチン(モトローラのマイクロプロセッサ6805
用にアセンブリ言語で書かれている)を使うことができ
る。当該技術分野の当業者にはIO_DATAがデータ・テー
ブルの始まりについての16ビットのポインタであること
が分る。あるいは、IO_DATAは、記憶場所から成るマト
リックスの最初の場所IO_DATA 0の16ビットのアドレス
を表わすラベルとして考えることもできる。
Some matrices, called irregular matrices, have a range of elements (eg, elements j 0 -j 4 , i 1 at i 0) .
Element j 0 -j 1 in i, element j 0 -j 7 in i 2, etc.) are used. An example of such an irregular matrix is
It is shown in Figure 3a. Allocating memory for all unused bytes in such a matrix means that a large portion of memory space is wasted. A typical way to address an irregular matrix is to send the row index to a column-indexed subroutine that retrieves the data. This can be best illustrated by example. For example, memory location I2_D in Figure 3a.
ATA5 (memory element i = 2, j = 5, where M (i <4, j <
8)) to retrieve the data bytes stored in the following subroutine (Motorola microprocessor 6805)
Written in assembly language for) can be used. Those skilled in the art will appreciate that IO_DATA is a 16-bit pointer to the beginning of the data table. Alternatively, IO_DATA can be thought of as a label representing the 16-bit address of IO_DATA 0, the first location in the matrix of storage locations.

前記の例において、個々のサブルーチン、IO_GET、I1
_GET、およびI2_GETは、各マトリックスからデータを取
り出すために使われる。簡単化するために、同様な第4
のサブルーチンI3_GETは示してない。これらの個々のサ
ブルーチンは第3a図において参照番号310a,320a,330a,3
40aでそれぞれ示される。これらの個別のサブルーチン
の各々はROMに貯えられ、5バイト長である。各サブル
ーチンがROMに貯えられ、各サブルーチンは変更するこ
とができないから、アドレスされる個々の列の16ビット
・アドレス(例えば、HIGH ADORESS OF IO_DATA 0,LOW
ADDRESS OF IO_DATA 0)を含んでいなければならないこ
とに注目されたい。
In the example above, the individual subroutines, IO_GET, I1
_GET and I2_GET are used to retrieve data from each matrix. For simplicity, a similar fourth
Subroutine I3_GET is not shown. These individual subroutines are designated by reference numerals 310a, 320a, 330a, 3a in FIG. 3a.
Each is shown at 40a. Each of these individual subroutines is stored in ROM and is 5 bytes long. The 16-bit address of the individual column being addressed (eg, HIGH ADORESS OF IO_DATA 0, LOW, as each subroutine is stored in ROM and cannot be modified.
Note that it must include ADDRESS OF IO_DATA 0).

先に示したルーチンは、I指標(すなわち、所望の列
に対するポインタ)の数値を求め、所望のデータを取り
出すためにマイクロコンピュータのジャンプ先アドレス
を計算するプログラムの一部分であるGET_VALUEに入
る。IO_GETのサブルーチンは記憶場所IO_GET+0から始
まる。I1_GETのサブルーチンはIO_GET+5から始まる。
同様に、I2_GETのサブルーチンはIO_GET+10から始ま
る。所望のデータを取り出すために正しいサブルーチン
に正確にジャンプするように、先に示したGET_VALUEの
ルーチンに示す如く、指標に5が掛けられなければなら
ない。IO_GET,I1_GET、I2_GETなどの各サブルーチンの
5バイトの中の3バイト(TAX,LDA,RTS)は同一であ
り、各サブルーチンで繰り返えされることに注目された
い。このような小さなマトリックスの場合、この方法は
極めて効率的でない。しかしながら、もっと大きなテー
ブルの場合には、この方法は沢山のメモリ量をむだにし
ないようにするために使用されてきた。この方法はI_IN
DEX<=51(5×51は255に等しく、8ビットのXレジス
タに貯えることができる最も大きな値である)に制限さ
れ、さもなければ列のジャンプは正確に行なうことがで
きない。
The routine shown above enters GET_VALUE, which is part of the program that determines the numerical value of the I index (ie the pointer to the desired column) and calculates the jump address of the microcomputer to retrieve the desired data. The IO_GET subroutine starts at memory location IO_GET + 0. The I1_GET subroutine starts with IO_GET + 5.
Similarly, the I2_GET subroutine starts at IO_GET + 10. The index must be multiplied by 5, as shown in the GET_VALUE routine shown above, so that the correct subroutine is jumped to to retrieve the desired data. It should be noted that 3 out of 5 bytes (TAX, LDA, RTS) of each subroutine such as IO_GET, I1_GET and I2_GET are the same and are repeated in each subroutine. For such small matrices this method is not very efficient. However, for larger tables, this method has been used to avoid wasting a lot of memory. This method is I_IN
Limited to DEX <= 51 (5 * 51 is equal to 255, which is the largest value that can be stored in the 8-bit X register), otherwise the column jump cannot be done exactly.

この方法はかなり大きな指標を使ってマトリックスを
参照するが、それを実行するのに必要なコードは多数の
行について非常に速く拡大する。先に述べたように、こ
の方法は51列で256行より小さいマトリックスにのみ適
用される。この明細書で説明する装置および方法はこの
ような制限を取り払うものである。
This method uses a fairly large index to reference the matrix, but the code needed to do it grows very quickly over many rows. As mentioned earlier, this method only applies to matrices with 51 columns and less than 256 rows. The devices and methods described in this specification obviate such limitations.

本発明による装置は、所望の行データを取り出すため
に指標付き列によるサブルーチンを使う代りに、すべて
の列からデータを取り出すために1つの汎用サブルーチ
ンを使用する。
Instead of using the indexed column subroutine to retrieve the desired row data, the apparatus according to the invention uses one general subroutine to retrieve the data from all columns.

次に第4図を参照して本発明を説明する。先に説明し
たように指標付き列による全てのサブルーチンは同じ大
きさと形式をとる。
Next, the present invention will be described with reference to FIG. As explained above, all subroutines with indexed columns have the same size and format.

本発明に従って初期化されると、この汎用サブルーチ
ン(FETCH)450がROM400から取り出され、RAM410中に単
一のサブルーチン420としてオペレーションコードごと
(opcode by opcode)に貯えられ、次のような方法でア
クセスされる。
When initialized in accordance with the present invention, this general purpose subroutine (FETCH) 450 is retrieved from ROM 400 and stored in RAM 410 as a single subroutine 420 per opcode by opcode and accessed in the following manner. To be done.

RAM空間において、これは次のように定義される。 In RAM space this is defined as:

RAM中のバイトLDA_OPCODEおよびRTS_OPCODEは、このル
ーチンが呼び出される前に個々のマイクロプロセッサに
ついてオペレーションコードを補正するように初期化さ
れ、その後それらの値は変わらない。すなわち、記憶場
所LDA_OPCODEには、実行されるときXレジスタに貯えら
れている値によりオフセットされる命令の直後にアドレ
スが貯えられている記憶場所に貯えられている1バイト
のデータを制御器により読み出させるコードバイトが入
れられる。
The bytes LDA_OPCODE and RTS_OPCODE in RAM are initialized to correct the operation code for the individual microprocessors before this routine is called and their values remain unchanged thereafter. That is, the memory location LDA_OPCODE is read by the controller from the 1-byte data stored in the memory location where the address is stored immediately after the instruction offset by the value stored in the X register when it is executed. The code byte to be sent is put.

FETCHルーチンが最初にROMから読み出され、RAMに貯
えられるとき、記憶場所HIGH_INDXおよびLOW_INDXには
そこに貯えられる意味のないデータが入っていることが
ある。記憶場所HIGH_INDXおよびLOW_INDXにおけるデー
タは所望のデータが貯えられている各マトリックス(す
なわち、記憶場所の群)の始まりを示す。正しいデータ
が次のようにしてこれらの記憶場所に書き込まれる。
When the FETCH routine is first read from ROM and stored in RAM, storage locations HIGH_INDX and LOW_INDX may contain meaningless data to be stored there. The data at storage locations HIGH_INDX and LOW_INDX indicates the beginning of each matrix (ie, group of storage locations) in which the desired data is stored. The correct data is written to these memory locations as follows.

FETCHサブルーチンは、列ポインタと呼ばれる隣接し
て貯えられたアドレスから成るテーブル(COLUMN_PTR)
440をアクセスし、記憶場所HIGH_INDXとLOW_INDXに列ポ
インタを貯える。
The FETCH subroutine is a table (COLUMN_PTR) of contiguous stored addresses called column pointers.
Access 440 and store column pointers in storage locations HIGH_INDX and LOW_INDX.

IO_DATA,I1_DATAなどは16ビットのアドレスであり、
最初に生じるアドレスの高位8ビットと共に2つの8ビ
ット・バイトとして貯えられる。これらのアドレスの各
々が2バイト長であるから、IO_DATAのアドレスは記憶
場所COLUMN_PTR+0から始まり、I1_DATAのアドレスはC
OLUMN_PTR+2から始まり、I2_DATAのアドレスはCOLUMN
_PTR+4から始まる。従って、所望のデータを取り出す
よう正しいアドレスを正確にアクセスするために、直ぐ
前に示したGET_VALUEのルーチンに示すように、指標に
2が掛けられる。この方法によると128(0-127)までの
列と256(0-255)までの行を有するマトリックスを呼び
出すことができ、それを行うのに必要なメモリはかなり
少なくてよい。128列という制限は0-127列×2バイト
(各々について)から生じ、その最後の計数値は255に
等しく、この最高値を8ビットのXレジスタに貯えるこ
とができる。この拡張されたデータ・アクセス機能は適
正なコードで“プログラム"RAMを初期化するROMをベー
スとするコードを加えるという小さな犠牲を払うことに
より得られる。
IO_DATA, I1_DATA, etc. are 16-bit addresses,
It is stored as two 8-bit bytes with the high-order 8 bits of the first occurring address. Since each of these addresses is 2 bytes long, the IO_DATA address starts at memory location COLUMN_PTR + 0 and the I1_DATA address is C
It starts from OLUMN_PTR + 2 and the address of I2_DATA is COLUMN.
It starts from _PTR + 4. Therefore, in order to correctly access the correct address to retrieve the desired data, the index is multiplied by 2, as shown in the GET_VALUE routine just shown. This method allows you to call a matrix with up to 128 (0-127) columns and up to 256 (0-255) rows, which requires significantly less memory. The 128 column limit arises from 0-127 columns x 2 bytes (for each), the last count value of which is equal to 255, and this highest value can be stored in an 8-bit X register. This extended data access capability comes at the small cost of adding ROM-based code that initializes the "program" RAM with the proper code.

GET_VALUEルーチンにおける追加のバイトはINCX命令
を除去し、STA LOW_INDXの直前命令をLDA COLUMN_PTR+
1,Xに変えることにより確保されることに注目された
い。
An additional byte in the GET_VALUE routine removes the INCX instruction and replaces the instruction immediately before STA LOW_INDX with LDA COLUMN_PTR +
Note that it is secured by changing to 1, X.

必要なら、256列×256行の大きさのマトリックスは先
に示したプログラムを以下に示すように変更することに
よりアドレスすることができる。
If desired, a matrix of size 256 columns by 256 rows can be addressed by modifying the program shown above as shown below.

この例において、列ポインタの高バイトと低バイト
は、第6図に示すように、別個のテーブル(H I_COL_PT
RとL O_COL_PTR)に貯えられる。両方のテーブルがXレ
ジスタに貯えられる同じ値により指標付けされる。従っ
て、前の例のように低いバイトを“飛び越す”ために指
標値に2を掛ける必要はない。2を掛ける必要がないか
ら、アドレス可能な256の全ての記憶場所をマトリック
スの開始場所を貯えるために使用することができる。
In this example, the high and low bytes of the column pointer are stored in separate tables (HI_COL_PT), as shown in FIG.
R and L O_COL_PTR). Both tables are indexed by the same value stored in the X register. Therefore, it is not necessary to multiply the index value by 2 to "skip" the lower bytes as in the previous example. Since there is no need to multiply by 2, all 256 addressable memory locations can be used to store the starting location of the matrix.

リモートコントロール・ハンドユニットにおける実施
例について本発明を説明したが、本発明の範囲はこれに
限定されるものではない。
Although the present invention has been described with reference to an embodiment in a remote control hand unit, the scope of the present invention is not limited thereto.

【図面の簡単な説明】[Brief description of drawings]

第1図は、本発明が具体化される学習リモートコントロ
ール型式のリモートコントロール・ハンドユニットをブ
ロック図形式で示したものである。 第2図は、読み出し専用メモリ(ROM)中の記憶場所に
ついての公知の構成をブロック図形式で示したものであ
る。 第3図は、第2図のROMの別の構成をブロック図形式で
示したものである。 第3a図は、記憶場所の不規則マトリックスの一例をブロ
ック図形式で示したものである。 第4図は、本発明の一実施例をブロック図形式で示した
ものである。 第5図は、“ページ”メモリに関する公知の構成を示
す。 第6図は、本発明の一実施例をブロック図形式で示した
ものである。 100……制御器、120……メモリ、130……キーボード、4
00……読み出し専用メモリ(ROM)、410……RAM、420…
…サブルーチン、440……アドレスから成るテーブル、4
50……汎用サブルーチン、600……ROM、610……RAM、64
0,642……アドレスから成るテーブル、650……汎用サブ
ルーチン。
FIG. 1 shows in block diagram form a remote control hand unit of the learning remote control type in which the present invention is embodied. FIG. 2 is a block diagram showing a known configuration of a memory location in a read only memory (ROM). FIG. 3 is a block diagram showing another configuration of the ROM shown in FIG. Figure 3a shows an example of an irregular matrix of memory locations in block diagram form. FIG. 4 is a block diagram showing an embodiment of the present invention. FIG. 5 shows a known arrangement for a "page" memory. FIG. 6 is a block diagram showing an embodiment of the present invention. 100 …… Control device, 120 …… Memory, 130 …… Keyboard, 4
00 …… Read-only memory (ROM), 410 …… RAM, 420…
… Subroutine, 440 …… Table of addresses, 4
50 ... General subroutine, 600 ... ROM, 610 ... RAM, 64
0,642 ... Table of addresses, 650 ... General subroutine.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】データとして貯えられるプログラム命令
と、複数のグループとして構成される複数の記憶場所
と、前記グループの各開始場所のアドレスから成るデー
タとを含んでいるROM領域と、 RAM領域と、 前記ROM領域と前記RAM領域に結合される制御手段であっ
て、データとして貯えられた前記プログラム命令を前記
ROM領域から読み出して該プログラム命令を前記RAM領域
に貯え、前記ROM領域から前記アドレスを読み出し、前
記グループの前記各開始アドレスを貯えることにより、
前記RAM領域内に貯えられた前記データを変更して実行
可能な命令を形成し、前記RAM領域内の前記命令を実行
して前記グループの前記記憶場所をアクセスする制御手
段とを含む、リモートコントロール・ユニットで使われ
るメモリをアドレス指定するアドレス指定装置。
1. A ROM area including a program instruction stored as data, a plurality of storage locations configured as a plurality of groups, and data including addresses of respective start locations of the group, and a RAM area. Control means coupled to the ROM area and the RAM area, wherein the program command stored as data is
By reading from the ROM area and storing the program instruction in the RAM area, reading the address from the ROM area, and storing each start address of the group,
Remote control comprising: a controller that modifies the data stored in the RAM area to form an executable instruction and executes the instruction in the RAM area to access the storage location of the group. An addressing device that addresses the memory used in the unit.
JP2100579A 1989-04-19 1990-04-18 Addressing device Expired - Fee Related JPH0824395B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US476651 1983-03-18
GB8908861.1 1989-04-19
GB898908861A GB8908861D0 (en) 1989-04-19 1989-04-19 Apparatus and method for addressing memory
US8908861.1 1990-02-12
US07/476,651 US5099233A (en) 1989-04-19 1990-02-12 Apparatus and method for addressing memory

Publications (2)

Publication Number Publication Date
JPH0316498A JPH0316498A (en) 1991-01-24
JPH0824395B2 true JPH0824395B2 (en) 1996-03-06

Family

ID=26295243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2100579A Expired - Fee Related JPH0824395B2 (en) 1989-04-19 1990-04-18 Addressing device

Country Status (4)

Country Link
JP (1) JPH0824395B2 (en)
DE (1) DE4012347A1 (en)
FR (1) FR2646255B1 (en)
GB (1) GB2232515B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6752128B2 (en) 2002-06-12 2004-06-22 Denso Corporation Intake system failure detecting device and method for engines

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63290095A (en) * 1987-05-22 1988-11-28 Pioneer Electronic Corp Remote controller

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4302809A (en) * 1978-06-29 1981-11-24 Burroughs Corporation External data store memory device
US4218757A (en) * 1978-06-29 1980-08-19 Burroughs Corporation Device for automatic modification of ROM contents by a system selected variable
US4623887A (en) * 1984-05-15 1986-11-18 General Electric Company Reconfigurable remote control
US4825200A (en) * 1987-06-25 1989-04-25 Tandy Corporation Reconfigurable remote control transmitter

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63290095A (en) * 1987-05-22 1988-11-28 Pioneer Electronic Corp Remote controller

Also Published As

Publication number Publication date
GB9008663D0 (en) 1990-06-13
FR2646255A1 (en) 1990-10-26
GB2232515B (en) 1993-08-25
DE4012347A1 (en) 1990-11-08
GB2232515A (en) 1990-12-12
FR2646255B1 (en) 1993-01-22
JPH0316498A (en) 1991-01-24

Similar Documents

Publication Publication Date Title
US4866434A (en) Multi-brand universal remote control
KR100196602B1 (en) Apparatus and method for addressing memory
US4746919A (en) Remote control system with key function display provisions
JPS61212994A (en) Portable remote controller
US4654632A (en) Analog-to-digital converter
US5247632A (en) Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system
GB2006559A (en) Computer controlled telecommunications and/or sound reproduction equipment
US6469751B1 (en) Remote control device and computer readable recording medium for recording a remote control program
US5343560A (en) Image data display system
JPH0824395B2 (en) Addressing device
US4432056A (en) Programmable electronic computer
US5008809A (en) Data processor capable of outputting codes representing displayed patterns
CA1299766C (en) Address translator
US5323175A (en) Screen display element
US5675722A (en) Pattern output apparatus
JPS6288490A (en) Teletext signal processing circuit
US5546478A (en) Picture print controlling device
EP0321044B1 (en) Data bus control of ROM units in information processing system
JP2718474B2 (en) Remote control device
EP0501437B1 (en) Parameter setting apparatus for motor control unit
EP0533343A3 (en) System and method for data management
EP0485759A2 (en) Data loading device with cache memory
JPH01162081A (en) Program retrieving method for character broadcast receiver
JPH03237858A (en) Talkie transmission system
JPH0662465A (en) Remote control signal receiver

Legal Events

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