JPS6326909B2 - - Google Patents
Info
- Publication number
- JPS6326909B2 JPS6326909B2 JP54127205A JP12720579A JPS6326909B2 JP S6326909 B2 JPS6326909 B2 JP S6326909B2 JP 54127205 A JP54127205 A JP 54127205A JP 12720579 A JP12720579 A JP 12720579A JP S6326909 B2 JPS6326909 B2 JP S6326909B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- record
- data
- address
- contents
- 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
Links
- 238000003780 insertion Methods 0.000 claims description 32
- 230000037431 insertion Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 18
- 238000013500 data storage Methods 0.000 claims 2
- 238000012546 transfer Methods 0.000 description 29
- 238000000034 method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 101000881206 Homo sapiens Spermine synthase Proteins 0.000 description 3
- 102100037616 Spermine synthase Human genes 0.000 description 3
- FHQAWINGVCDTTG-UHFFFAOYSA-N 4-chloro-3-sulfamoylbenzoic acid Chemical compound NS(=O)(=O)C1=CC(C(O)=O)=CC=C1Cl FHQAWINGVCDTTG-UHFFFAOYSA-N 0.000 description 2
- 230000004886 head movement Effects 0.000 description 2
- 101100532856 Arabidopsis thaliana SDRA gene Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
Landscapes
- Document Processing Apparatus (AREA)
Description
【発明の詳細な説明】
〔技術分野〕
本発明は、機器に入力された文書における編集
を行い得る文字処理装置に関する。DETAILED DESCRIPTION OF THE INVENTION [Technical Field] The present invention relates to a character processing device capable of editing a document input to a device.
従来英文の文字処理装置(ワードプロセツサ)
は、文書の修正を行なう場合、単語、文章、パラ
グラフ単位で文書の他の部分への転送する機能を
有していたが、パラグラフ中の任意の長さの文字
列を転送する機能とか一文章中の任意の長さの文
字列を転送する機能を有していなかつた。特にか
かる欠点は日本語のワードプロセツサを考える場
合、日本語文では単語の切れめが英文の如くスペ
ースによつて区切られていないため、単語の切れ
めが不明確であり、英文のワードプロセツサにお
ける転送構成を日本語のワードプロセツサに備え
ることは適していなかつた。
Conventional English character processing device (word processor)
When editing a document, it had a function to transfer words, sentences, or paragraphs to other parts of the document, but there is also a function to transfer a string of arbitrary length in a paragraph or a single sentence. It did not have the ability to transfer character strings of arbitrary length. In particular, when considering Japanese word processors, this drawback is that in Japanese sentences, the words are not separated by spaces like in English sentences, so the word breaks are unclear, and English word processors It was not suitable to equip a Japanese word processor with the transfer structure of .
又、操作性、高速性の点についても、改良の余
地は十分にあつた。 There was also plenty of room for improvement in terms of operability and high speed.
[目的]
以上の点に鑑み、本発明の目的は始めと終りを
指定することによつて、所望の文字列を指定する
ことができ、更にその指定された文字列を記憶す
ることができ、文書中の所望の挿入先への挿入を
指示する毎に高速に前記指定された文字列を挿入
することができる文字処理装置を提供することに
ある。[Object] In view of the above points, an object of the present invention is to be able to specify a desired character string by specifying the beginning and end, and further to store the specified character string. It is an object of the present invention to provide a character processing device capable of quickly inserting a specified character string each time insertion is instructed to a desired insertion location in a document.
本発明の目的は作成中の文書内の文字列を指定
することができ、該文書中の所望の位置への挿入
の指示を行う毎に前記所望の文字列を挿入するこ
とができ、文書の作成をその文書中の所望の文字
列を複製しながら行えるという非常に操作性の良
い文字処理装置文字処理装置を提供することにあ
る。 An object of the present invention is to be able to specify a character string in a document being created, and to insert the desired character string each time an instruction to insert it into a desired position in the document is made. To provide a highly operable character processing device that can be created while duplicating a desired character string in the document.
[実施例] 以下、本発明による一実施例を説明する。[Example] An embodiment according to the present invention will be described below.
第1図は本発明による文字処理装置のブロツク
図である。同図に於いて、CPUはマイクロプロ
セツサーで、演算、論理判断等を行なう。ABは
アドレスバスで、制御対象を指示する信号を転送
する。DBはデータバスで、各種データを転送す
るもので、双方向性のバスである。CBはコント
ロールバスで、各種制御対象に制御信号を印加す
るものである。
FIG. 1 is a block diagram of a character processing device according to the present invention. In the figure, the CPU is a microprocessor that performs calculations, logical judgments, etc. AB is an address bus that transfers signals indicating the control target. DB is a data bus that transfers various data and is a bidirectional bus. CB is a control bus that applies control signals to various control targets.
KBはキーボードで、文字やフアンクシヨン及
びモードを入力するキーKB1、スペースを入力
するスペースキーKB2、入力された文章を移動
させる為の移動範囲キーKB3、及び移動対象の
文章を挿入させる為の移動先キーKB4等を有す
る。 KB is a keyboard with keys KB1 for inputting characters, functions, and modes, space key KB2 for inputting spaces, movement range key KB3 for moving input sentences, and movement destination for inserting sentences to be moved. It has key KB4 etc.
KBCはキーボードコントローラで、キーボー
ドKBより入力されたデータをエンコードし、ま
たインタラプト信号をコントロールバスCBに送
る。DPCはCRTコントローラで、CRT装置DP、
キヤラクタジエネレータCG、リフレツシユメモ
リM、リフレツシユメモリコントローラMC3を
制御する。CRT装置DPは文字、記号、画等を表
示しうるものである。キヤラクタジエネレータ
CGは文字コード記号コード及び文字記号パター
ンの行アドレス等のコード入力により所望の文字
記号パターンを出力する。上記文字記号パターン
はマトリクス状に形成され、行アドレスを変える
ことで、文字記号パターンが出力される。リフレ
ツシユメモリMはCRT装置DPに表示される文字
記号コードを記憶し、CRTコントローラDPCの
制御の下に繰り返し文字記号コードを出力する。
リフレツシユメモリコントローラMC3はCRTコ
ントローラDPCの指示に従つてリフレツシユメ
モリMのリフレツシユサイクルとマイクロプロセ
ツサーCPUよりのデータの書き込み、読み出し
を制御する。ROMは制御メモリで、各種処理手
順及び第4〜20図に示す制御手順及び漢字情報
等を記憶するものである。 KBC is a keyboard controller that encodes data input from the keyboard KB and also sends interrupt signals to the control bus CB. DPC is a CRT controller, CRT device DP,
It controls the character generator CG, the refresh memory M, and the refresh memory controller MC3. The CRT device DP is capable of displaying characters, symbols, strokes, etc. character generator
The CG outputs a desired character symbol pattern by inputting codes such as a character code symbol code and a line address of the character symbol pattern. The character and symbol patterns are formed in a matrix, and by changing the row addresses, the character and symbol patterns are output. The refresh memory M stores the character symbol code displayed on the CRT device DP, and repeatedly outputs the character symbol code under the control of the CRT controller DPC.
The refresh memory controller MC3 controls the refresh cycle of the refresh memory M and the writing and reading of data from the microprocessor CPU in accordance with instructions from the CRT controller DPC. The ROM is a control memory that stores various processing procedures, control procedures shown in FIGS. 4 to 20, Kanji information, etc.
上記制御メモリROMはROMコントローラMC
1により記憶された処理手順が読み出される。
RAMはランダムアクセスのメモリで、各種デー
タの一時記憶に用いられる。 The control memory ROM above is the ROM controller MC
1, the stored processing procedure is read out.
RAM is a random access memory used for temporary storage of various data.
第2図はメモリRAMの主要部をさらに説明す
るもので、MRSRは移動範囲ステイタスレジス
タ、SARは移動範囲始めアドレスレジスタ、
EARは移動範囲終りアドレスレジスタ、MBは
移動用バツフア、IDBは入力データバツフア、
UBは未使用バツフア、P1〜P4はパラメータ
レジスタ、CRはカーソルレジスタ、Nはレジス
タ、FDRPは先頭データレコードポインタ、
LDRPは末尾データレコードポインタ、FBRPは
先頭未使用レコードポインタ、LBRPは末尾未使
用レコードポインタ、FTBRPは先頭移動用レコ
ードポインタ、LTBRPは末尾移動用レコードポ
インタ等を有し、さらに図示のレジスタ群を有す
る。
Figure 2 further explains the main parts of the memory RAM, where MRSR is the moving range status register, SAR is the moving range start address register,
EAR is the movement range end address register, MB is the movement buffer, IDB is the input data buffer,
UB is an unused buffer, P1 to P4 are parameter registers, CR is a cursor register, N is a register, FDRP is a first data record pointer,
LDRP has a last data record pointer, FBRP has a first unused record pointer, LBRP has a last unused record pointer, FTBRP has a record pointer for moving to the beginning, LTBRP has a record pointer for moving to the end, etc., and it also has the register group shown in the figure. .
上述移動対象の文章を格納するブロツク移動用
バツフアMBは第3図に示すような構造を有して
おり、この構造は入力データを入れる入力データ
バツフアIDBも同様に構成されており、また未使
用のバツフアUBも同様の構造となつている。移
動用バツフアMB、入力データバツフアIDB、未
使用バツフアUBはそれぞれ第3図に示すレコー
ドが1つもしくは複数個により作られており必要
に応じて後述の如く増減するものである。
The block moving buffer MB that stores the text to be moved has the structure shown in Figure 3, and the input data buffer IDB that stores the input data has the same structure. Batsuhua UB has a similar structure. The moving buffer MB, input data buffer IDB, and unused buffer UB are each made up of one or more records shown in FIG. 3, and are increased or decreased as necessary as described below.
B1はこのレコードの前につながるレコードの
先頭アドレスを格納するメモリロケーシヨンで、
B2はこのレコードの後につながるレコードの先
頭アドレスを格納するメモリロケーシヨンで、B
3はこのレコードの中に入つている有効データの
長さを格納するメモリロケーシヨンである。レコ
ードに記憶されるデータは最大28ワードまでであ
りメモリロケーシヨンB4の位置より順につめら
れる。これは通常リスト構造と言われるものであ
る。 B1 is a memory location that stores the start address of the record that precedes this record.
B2 is a memory location that stores the start address of the record that follows this record.
3 is a memory location that stores the length of valid data contained in this record. The data stored in the record is up to 28 words and is filled in sequentially starting from memory location B4. This is usually called a list structure.
複数個のレコードのつながりは上述の如くであ
るが、あるレコードの前につながる先頭のレコー
ドとあるレコードの後につながる末尾のレコード
のアドレスは各種のポインタにより指示される。
即ちこの場合は移動用バツフアMBの先頭レコー
ドはポインタFTBRPに記憶され、末尾レコード
はポインタLTBRPに記憶されている。また同様
に入力データバツフアIDBの先頭データレコード
ポインタはポインタFDRPに、それの末尾データ
レコードポインタはポインタLDRPに、また未使
用バツフアUBのレコードについてはそれぞれポ
インタFBRP、ポインタLBRP記憶されている。 The connection of a plurality of records is as described above, and the addresses of the first record that precedes a certain record and the last record that follows a certain record are indicated by various pointers.
That is, in this case, the first record of the moving buffer MB is stored in the pointer FTBRP, and the last record is stored in the pointer LTBRP. Similarly, the first data record pointer of the input data buffer IDB is stored in a pointer FDRP, the last data record pointer thereof is stored in a pointer LDRP, and the records of the unused buffer UB are stored in a pointer FBRP and a pointer LBRP, respectively.
メモリRAMはRAMコントローラMC2により
書き込み、読み出しがなされる。第1図に示す
MDは磁気デイスク装置で、後述する形式で漢字
情報を記憶する。磁気デイスク装置MDは磁気デ
イスクコントローラMDDにより制御される。 The memory RAM is written and read by the RAM controller MC2. Shown in Figure 1
MD is a magnetic disk device that stores kanji information in the format described below. The magnetic disk device MD is controlled by a magnetic disk controller MDD.
Pはプリンタで、漢字情報、カタカナ、ひらが
な等の情報を記録するものであり、プリンタコン
トローラPDで制御される。 P is a printer that records information such as kanji information, katakana, hiragana, etc., and is controlled by a printer controller PD.
上述の構成より成る実施例の作動を次に詳述す
る。
The operation of the embodiment constructed as described above will now be described in detail.
本文字処理装置はキーボードKBの操作により
装置が起動されるものである。キーボードKBが
操作されると、キーボードKBより発生するイン
タラプト信号がマイクロプロセツサCPUに伝え
られ、これによりマイクロプロセツサCPUを介
して制御メモリROM内の制御手順を呼び出し、
制御手順に従つて各制御が行なわれる。 This character processing device is activated by operating the keyboard KB. When the keyboard KB is operated, an interrupt signal generated by the keyboard KB is transmitted to the microprocessor CPU, which calls the control procedure in the control memory ROM via the microprocessor CPU.
Each control is performed according to the control procedure.
この様にして、第1図示メモリROM中に記憶
されている制御手順により本発明の目的を達成す
るものである。キーボードKBより各種の入力が
なされると、インタラプトがかかりROMは
ROM中に記憶されているプログラム領域にコン
トロールが移る。このコントロールプログラムは
第4図以下のフローチヤートで示されるもので以
下順に説明する。 In this way, the object of the invention is achieved by the control procedure stored in the first illustrated memory ROM. When various inputs are made from the keyboard KB, an interrupt occurs and the ROM is
Control is transferred to the program area stored in ROM. This control program is shown in the flowchart shown in FIG. 4 and below, and will be explained in order below.
第4図のフローチヤートにおいて本発明のブロ
ツク転送機能を特に明確ならしめるためにワード
プロセツサにおける各種の処理ルーチンは省略し
て各種ワードプロセツサ処理ルーチン20として示
すにとどめる。ブロツク移動をする場合はまずワ
ードプロセツサの処理機能の一つである、CRT
装置DPに表示されるカーソルを用い、移動した
い文章等のブロツクの先頭の位置にカーソルを位
置せしめる。ブロツク移動を行う文章等のデータ
は入力データバツフアIDBにすでに入力済のデー
タであつてCRT装置DP上に表示せられているも
のである。
In the flowchart of FIG. 4, in order to make the block transfer function of the present invention particularly clear, various processing routines in the word processor are omitted and only shown as various word processor processing routines 20. When moving blocks, first use CRT, which is one of the processing functions of a word processor.
Using the cursor displayed on the device DP, position the cursor at the beginning of the block of text, etc. that you want to move. The data such as text for which block movement is to be performed is data that has already been input into the input data buffer IDB and is displayed on the CRT device DP.
ブロツク移動を行う文章等のデータの指定は上
述の如くブロツク移動したい文章等のデータの先
頭にカーソルをもつてきた状態で、キー22にお
いて、「移動範囲」キーKB3がはじめて押され
たことを判断したので、ステツプ23では移動範囲
ステイタスレジスタMRSRに移動範囲のステイ
タスをセツトする。次にステツプ24において上述
のカーソルの位置に示すデータを記憶しているメ
モリRAMのレジスタCR中のアドレスデータを
メモリRAMにある範囲始めアドレスレジスタ
SARに記憶させ、次のキー入力の待機状態とな
る。 To specify the text or other data for which a block is to be moved, as described above, move the cursor to the beginning of the text or other data you wish to move, and use key 22 to determine if the "move range" key KB3 has been pressed for the first time. Therefore, in step 23, the status of the moving range is set in the moving range status register MRSR. Next, in step 24, the address data in the register CR of the memory RAM that stores the data indicated at the cursor position described above is transferred to the range start address register in the memory RAM.
It is stored in the SAR and waits for the next key input.
カーソルの位置とこのカーソルの位置に対応す
るメモリRAM中のデータのアドレスはカーソル
の移動等において各種ワードプロセツサ処理ルー
チン20において検知せられていることはデイスプ
レイ用のCRT装置DPを用いたワードプロセツサ
においては当然の事であるので本説明においては
説明を略す。 The position of the cursor and the address of the data in the memory RAM corresponding to the position of the cursor are detected in various word processor processing routines 20 when the cursor is moved, etc. Since this is a matter of course in Setsa, the explanation will be omitted in this explanation.
次にブロツク移動をしたい文章等のデータの最
終の位置にカーソルを移動して、この状態で再び
キー「移動範囲」KB3を押すと、前述の場合と
同様にステツプ21を介して、ステツプ22に入り移
動範囲のステイタスがあるかどうかをテストす
る。マイクロプロセツサCPUがレジスタMRSR
を調べる。この場合はすでにステツプ23において
セツトされているので、YESの枝が選ばれステ
ツプ25に移る。 Next, move the cursor to the final position of the data such as a sentence that you want to move, and press the "Move range" key KB3 again in this state. Test whether there is a status of entry movement range. Microprocessor CPU register MRSR
Find out. In this case, since it has already been set in step 23, the YES branch is selected and the process moves to step 25.
ステツプ25において範囲終りのカーソル位置に
対応するレジスタCRのアドレスデータが範囲終
りアドレスレジスタEARにセツトされる。次の
ステツプ26においてブロツク移動を行うデータを
一時的に記憶するための記憶領域をクリアするた
め、サブルーチンのパラメータレジスタP1をセ
ツトする。即ちレジスタP1を2にすることによ
り後述の如くブロツク移動用バツフアMBのクリ
アを指定する。 In step 25, the address data of the register CR corresponding to the cursor position at the end of the range is set to the end of range address register EAR. In the next step 26, the subroutine parameter register P1 is set in order to clear the storage area for temporarily storing data for block movement. That is, by setting the register P1 to 2, clearing of the block movement buffer MB is designated as described later.
移動用バツフアMBは、前述の第3図に示した
構造であるので、第5図に示す如き手順により移
動用バツフアMBの各レコードがクリアされる。
即ち、ステツプ26においてレジスタP1は2にセ
ツトされているので、ステツプ39及び40に続いて
ステツプ41以下の動作がなされる。ステツプ41は
上述の先頭移動用バツフアポインタFTBRPの内
容即ち先頭移動用レコードの先頭アドレスの次の
番地の内容即ちこのレコードに連なるレコードの
先頭番地が0であるかどうかをテストしている。
Since the moving buffer MB has the structure shown in FIG. 3 described above, each record of the moving buffer MB is cleared by the procedure shown in FIG. 5.
That is, since register P1 is set to 2 in step 26, steps 39 and 40 are followed by steps 41 and subsequent steps. Step 41 tests whether the contents of the buffer pointer FTBRP for head movement, that is, the contents of the address next to the head address of the record for head movement, that is, the head address of the record following this record, is 0.
すなわち第3図メモリロケーシヨンB2で示さ
れる内容をテストしている。 That is, the contents shown at memory location B2 in FIG. 3 are tested.
第3図においてメモリロケーシヨンB1
(FTBRP)に書かれている内容、つまり、レコ
ードの前につながるレコードの先頭アドレスが0
である場合、データ等の最初のレコードであるこ
とを示しており、それ以前に続くレコードがない
ことを示している。また同様にB2(FTBRP+
1)に書かれている内容、つまりレコードの後に
つながるレコードの先頭アドレスが0である場
合、このレコード以後につながるレコードがない
事即ち最後のレコードであることを示している。 In Figure 3, memory location B1
The contents written in (FTBRP), that is, the start address of the record leading to the record is 0.
If it is, it indicates that it is the first record of data, etc., and indicates that there are no records that follow before it. Similarly, B2 (FTBRP+
The content written in 1), that is, when the start address of the record following the record is 0, indicates that there are no records following this record, that is, it is the last record.
なおここで述べているフロー等において
(XX)で示されるものはアドレス“XX”の内容
を示すもので、例えばステツプ41においてはポイ
ンタFTBRPの内容(アドレスデータ)に1を加
えた結果のアドレスの内容が0であるかどうかを
テストしている。次に続くレコードがない場合は
ステツプ41においてYESとなるためステツプ42
に移りポインタFTBRPの内容+2のアドレスに
0を書き込みこのサブルーチンからもとにもど
る。 In the flow described here, the symbol (XX) indicates the contents of the address "XX". For example, in step 41, the result of adding 1 to the contents (address data) of the pointer FTBRP is the address. We are testing whether the content is 0. If there is no next record, step 41 returns YES, so step 42
Then, write 0 to the address of the contents of pointer FTBRP + 2, and return from this subroutine.
フロー等において(XX)→YYとの表記はア
ドレスYYにアドレスXXの内容を入れることを
意味する。 In a flow, etc., the notation (XX)→YY means to put the contents of address XX into address YY.
一方、ステツプ41において移動用バツフアMB
の先頭レコードの次に続くレコードがある場合即
ちB2((FTBRP)+1)≠0の場合、ステツプ
43に移り前述の未使用レコードの末尾、レコード
の第2ワード目即ちLBRPの内容に1を加えたア
ドレスに、移動バツフアMBの先頭レコードの先
頭番地+1即ち(FTBRP)+1の内容を入れる。
言いかえれば、移動バツフアMBの第2レコード
目を未使用レコードの末尾レコードの次に続くレ
コードとして指定するものである。 On the other hand, in step 41, the transfer buffer MB is
If there is a record following the first record of B2 ((FTBRP)+1)≠0, step
43, the content of the first address +1 of the first record of the moving buffer MB, ie (FTBRP)+1, is entered at the end of the aforementioned unused record, the second word of the record, ie, the address obtained by adding 1 to the content of LBRP.
In other words, the second record of the moving buffer MB is designated as the record following the last record of the unused records.
ステツプ44は未使用レコードの末尾レコードポ
インタLBRPに移動用バツフアMBの末尾レコー
ドのアドレスを入れる。次にステツプ45、46では
移動バツフアMBの先頭レコードの2ワード目と
3ワード目に0を書き込む。ステツプ47は移動バ
ツフアMBの先頭移動用レコードポインタ
FTBRPの内容を末尾移動用レコードポインタ
LTBRPに書き込み、移動用バツフアMBのクリ
アのためのサブルーチンを完了する。 Step 44 inputs the address of the last record of the moving buffer MB into the last record pointer LBRP of unused records. Next, in steps 45 and 46, 0 is written into the second and third words of the first record of the moving buffer MB. Step 47 is the record pointer for moving to the beginning of the moving buffer MB.
Record pointer for moving the contents of FTBRP to the end
Completes the subroutine for writing to LTBRP and clearing the transfer buffer MB.
第4図に戻り、第4図のステツプ48、49、50、
51により移動用バツフアMBへステツプ24、ステ
ツプ25で記憶した範囲で示される入力データバツ
フアIDBのデータを挿入する。詳述すると、パラ
メータレジスタP1,P2,P3にそれぞれ範囲
始めアドレス、範囲終りアドレス、挿入先アドレ
スを入れて、ブロツク挿入のサブルーチン51に入
る。 Returning to Figure 4, step 48, 49, 50 in Figure 4,
51, the data of the input data buffer IDB shown in the range stored in steps 24 and 25 is inserted into the moving buffer MB. More specifically, the range start address, range end address, and insertion destination address are entered into parameter registers P1, P2, and P3, respectively, and the block insertion subroutine 51 is entered.
このサブルーチンは第6図に示されるものであ
り、ステツプ52〜54においてレジスタP1〜P3
の内容、つまり移動範囲始めアドレス、移動範囲
終りアドレス、挿入先アドレス、をレジスタ
SFA,SLA,IAに入れ、パラメータの保存を行
い、ステツプ55において移動の範囲の先頭アドレ
スをレジスタSCAに入れる。次にステツプ56、
57によりデータ挿入ステツプ58のパラメータをセ
ツトし1データを挿入する。
This subroutine is shown in FIG. 6, and in steps 52 to 54 registers P1 to P3 are
The contents of , that is, the moving range start address, moving range end address, and insertion destination address, are stored in the register.
SFA, SLA, and IA, the parameters are saved, and in step 55, the start address of the movement range is stored in register SCA. Next step 56,
57 sets the parameters of the data insertion step 58 and inserts one data.
データ挿入は、第7図に示されるものでステツ
プ59、60においてレジスタP1すなわち挿入すべ
きデータのアドレスをレジスタSDAに、レジス
タP2すなわち挿入先のアドレスをレジスタDA
に保存する。ステツプ61ではレジスタDAの挿入
先のアドレスと16進法表記における1F即ちビツ
ト表記によれば00011111とのアンドをとり、即ち
言いかえれば、1ワード(16ビツト)のLSB(リ
ーストシグニフイカントビツト)側から5ビツト
目のみを押出し、その後にその押出結果より3を
減じレジスタDPに記憶する。このステツプの意
味は該データのレコード即ち第3図に示す形式の
レコードのデータ部分即ち図示ロケーシヨンB4
から始まる28ワードの第何ワード目に挿入するか
の数をレジスタDPに格納する。
Data insertion is shown in FIG. 7, and in steps 59 and 60, register P1, that is, the address of the data to be inserted, is placed in register SDA, and register P2, that is, the address of the insertion destination, is placed in register DA.
Save to. In step 61, the insertion destination address of register DA is ANDed with 1F in hexadecimal notation, or 00011111 in bit notation, or in other words, the LSB (least significant bit) of 1 word (16 bits) is taken. Extrude only the 5th bit from the side, then subtract 3 from the extrusion result and store it in the register DP. The meaning of this step is the data part of the data record, that is, the record in the format shown in FIG.
The number of words to be inserted in the 28 words starting from is stored in register DP.
次にステツプ62においては挿入先のアドレス即
ちレジスタDAの内容と16進表記のFFEOとのア
ドレスをとりレジスタRAに格納する。これは挿
入先のアドレスのレコードの先頭番地をレジスタ
RAに格納することで第3図により示せば図示B
1のアドレスをレジスタRAに格納することであ
る。なおフローにおいて上述のステツプ61、62等
で(XXXX)16と示すのはXXXXが16進表記であ
ることを示すものである。 Next, in step 62, the insertion destination address, that is, the contents of register DA and the address of FFEO in hexadecimal notation, are taken and stored in register RA. This registers the start address of the record at the insertion destination address.
As shown in Figure 3 by storing it in RA, Figure B
1 address is stored in register RA. Note that (XXXX) 16 in steps 61, 62, etc. described above in the flow indicates that XXXX is expressed in hexadecimal notation.
次にステツプ63においてRA+2の内容即ち該
レコードのデータの長さが28より小さいかどうか
を検べている。長さが28より小さい場合、このレ
コード中に空きスペースがあることを示している
ので、挿入先のアドレスのデータ以後のデータを
1ワード分第3図の形において右にシフトする。
即ちレジスタP1にシフトするワード群の最終ア
ドレスを、レジスタP2にシフト後のワード群の
最終アドレスを、レジスタP3にシフトすべきワ
ード長をそれぞれセツトし、ステツプ67によつて
転送を行う。 Next, in step 63, it is checked whether the contents of RA+2, that is, the length of the data of the record, is smaller than 28. If the length is less than 28, this indicates that there is a free space in this record, so the data after the data at the insertion destination address is shifted to the right by one word in the form shown in FIG. 3.
That is, the final address of the word group to be shifted is set in register P1, the final address of the word group after shifting is set in register P2, and the word length to be shifted is set in register P3, and the transfer is performed in step 67.
ステツプ67を詳述すれば第8図に示すように、
まずステツプ68でレジスタNを0としてステツプ
69において上述のレジスタP3即ちワード長にレ
ジスタNの内容がなつたとき、このサブルーチン
を終了し、それまではステツプ70によつてシフト
を行う。第7図に戻り、この転送ステツプ67が終
了すると、次にステツプ72によつてこのレコード
のデータのワード長をインクリメントする。次に
ステツプ73によつて挿入すべきデータ即ちレジス
タSDAの内容を挿入先のアドレス即ちレジスタ
DAに入れてデータ転送を終了する。一方ステツ
プ63においてこのレコードのデータワード長が28
以上の場合はこのレコードには空きがない事を示
しているので、挿入部分がこのレコードの先頭ア
ドレスであるかどうかをまずステツプ74でテスト
し、即ちレジスタDPが1かどうかをテストし1
でない場合は新たにレコードを新設すべくへ移
る。第9図においてステツプ75〜78でそれぞれ現
先頭未使用レコードポインタFBRPの内容をレジ
スタNEWRPに、現レコードに続くレコードのア
ドレスをレジスタCNRPに、現先頭未使用レコー
ドの次のレコードのアドレスをレジスタCNBRP
に、現データレコードのレングスをレジスタ
CRLに保存する。次にステツプ79から84により
新たに設けるレコードの接続と未使用レコードの
接続の変更を行う。ステツプ79では先頭未使用レ
コードポインタCNBRPの内容を未使用レコード
の第2レコード目のアドレスに変更する。次にス
テツプ80はこの新しく示された先頭未使用レコー
ドポインタFBRPの示すレコードの先頭アドレス
に0を入れる。次にステツプ81により現レコード
の第2ワード目即ち次に続くレコードのアドレス
を示すワードにステツプ75で保存した内容を入れ
る。次にステツプ82でステツプ76で保存したレジ
スタCNRPのコンテンツのアドレスにレジスタ
NEWRPのコンテンツを入れる。次にステツプ83
では(NEWRP)+1で示されるアドレスにレジ
スタCNRPのコンテンツを入れる。ステツプ84で
はレジスタRAをレジスタNEWRPのコンテンツ
で示されるアドレスに入れて、新しいレコードの
結合と、未使用レコードのつながりの変更を完了
する。
To explain step 67 in detail, as shown in Figure 8,
First, set register N to 0 in step 68.
When the contents of the register N reach the register P3, that is, the word length, in step 69, this subroutine is terminated, and until then, shifting is performed in step 70. Returning to FIG. 7, when this transfer step 67 is completed, the word length of the data of this record is incremented in step 72. Next, in step 73, the data to be inserted, that is, the contents of the register SDA, is transferred to the insertion destination address, that is, the register.
Insert into DA to finish data transfer. On the other hand, in step 63, the data word length of this record is 28.
The above case indicates that there is no space in this record, so it is first tested in step 74 whether the inserted part is the start address of this record, that is, it is tested whether the register DP is 1.
If not, move on to create a new record. In FIG. 9, in steps 75 to 78, the contents of the current first unused record pointer FBRP are placed in register NEWRP, the address of the record following the current record is placed in register CNRP, and the address of the record next to the current first unused record is placed in register CNBRP.
register the length of the current data record.
Save to CRL. Next, in steps 79 to 84, connections of newly created records and connections of unused records are changed. In step 79, the contents of the first unused record pointer CNBRP are changed to the address of the second unused record. Next, step 80 sets 0 to the start address of the record indicated by this newly indicated first unused record pointer FBRP. Next, in step 81, the content saved in step 75 is entered into the second word of the current record, that is, the word indicating the address of the next record. Next, in step 82, a register is added to the address of the contents of register CNRP saved in step 76.
Insert NEWRP content. Next step 83
Now, put the contents of register CNRP into the address indicated by (NEWRP)+1. In step 84, the register RA is placed at the address indicated by the contents of the register NEWRP, completing the combination of new records and the change of the connection of unused records.
次にステツプ85〜88で挿入すべきアドレスから
そのレコードの最も終の部分までのデータにつき
新しいレコードに転送する。この転送のルーチン
は前述したものと同様第8図に示すものである。
ステツプ89ではデータを挿入するレコードのレコ
ードレングスを新しいものに変える。即ちデータ
を挿入する場合即ちレジスタDPの内容をRA+
2で示されるアドレスに入れる。ステツプ90では
新しいレコードのデータレングスを転送したデー
タレングスにする。次にへ移つて第7図示73の
ステツプ挿入すべきデータをレジスタDAで示さ
れるアドレスに入れデータ挿入のルーチンを終了
する。またステツプ74において、レジスタDPす
なわち挿入位置が該レコードのデータ部分の第1
ワード目である場合、 AL へ移り即ち第10図
に移りステツプ91〜95で挿入部分のアドレスより
一つ前のデータのあるアドレスを求める。詳述す
れば、ステツプ95のデータスキヤナはパラメータ
として、レジスタP1はスキヤンの開始アドレス
であり、レジスタP2はデータのスキヤン長さで
あり、レジスタP3はスキヤン最終アドレスであ
り、レジスタP4はスキヤン方向であり、0は順
方向、1′は逆方向を示す。なおレジスタP2とレ
ジスタP3は排他的に用いられ使用しない場合0
を入れておくとデータスキヤナ95を完了した時に
答が入れられるものである。例えば本例において
はステツプ91〜94によりP1=DA、P2=1、
P3=0、P4=1と指定するので、レジスタP
3にはレジスタP1即ちレジスタDAよりレジス
タP2即ち1ワードだけレジスタP4で示される
方向すなわち逆方向へスキヤンした位置のアドレ
スのデータスキヤナ95は出力する。更に詳述すれ
ば、第11図においてステツプ96〜99で上記レジ
スタP1からP4の保存を行いそれぞれレジスタ
CSBA,CSL,CSEA,CSDに格納する。ステツ
プ100及び101においてそれぞれレジスタSCAを
レジスタCSBAの内容にし、レジスタDSCを0と
し初期値をセツトする。 Next, in steps 85 to 88, data from the address to be inserted to the end of the record is transferred to a new record. The routine for this transfer is shown in FIG. 8, as described above.
In step 89, change the record length of the record into which data is to be inserted to a new one. In other words, when inserting data, the contents of register DP are RA+
Enter the address shown in 2. In step 90, the data length of the new record is set to the transferred data length. Moving to the next step, the data to be inserted is put into the address indicated by the register DA in step 73 shown in the seventh figure, and the data insertion routine is completed. Also, in step 74, the register DP, that is, the insertion position is set to the first position of the data portion of the record.
If it is the word, the program moves to AL, ie, to FIG. 10, and in steps 91 to 95, the address of the data immediately before the address of the inserted portion is determined. Specifically, the data scanner in step 95 uses as parameters: register P1 is the scan start address, register P2 is the data scan length, register P3 is the scan end address, and register P4 is the scan direction. , 0 indicates the forward direction, and 1' indicates the reverse direction. Note that register P2 and register P3 are used exclusively and are set to 0 if not used.
If you enter , the answer will be entered when you complete Data Scanner 95. For example, in this example, P1=DA, P2=1,
Since P3=0 and P4=1 are specified, register P
3, the data scanner 95 outputs an address at a position scanned from register P1, that is, register DA, by one word, that is, register P2, in the direction indicated by register P4, that is, in the reverse direction. More specifically, in steps 96 to 99 in FIG. 11, the above registers P1 to P4 are saved and the registers are
Store in CSBA, CSL, CSEA, and CSD. In steps 100 and 101, register SCA is set to the contents of register CSBA, and register DSC is set to 0 to set an initial value.
次にステツプ102においてレジスタCSLが0以
下即ちスキヤンの長さが0以下の場合はステツプ
103においてレジスタCSEA即ちスキヤン最終ア
ドレスのチエツクを行い、これも0以下である場
合はパラメータ不良でありこのサブルーチンを終
える。その他の場合はに移りスキヤンを始め
る。第12図においてステツプ104においてスキ
ヤン中の現アドレスのレコードの先頭アドレスを
レジスタSRAに格納する。次にステツプ105にお
いてSCA+1−2×CSDをレジスタSCAに格納
する即ちレジスタCSDが0の場合即ち順方向ス
キヤンの場合はレジスタSCAをカウントアツプ
し、レジスタSCAが1の場合、即ち逆方向の場
合はカウントダウンする。(この例ではカウント
ダウンになる。)
次にステツプ106では上記でカウントアツプも
しくはダウンしたレジスタSCAの内容がSRA+
3より小即ち、第3図により説明すれば、該レコ
ードの図示B1,B2,B3,B4、のアドレス
に入つているかどうかをチエツクして、この間に
入つていなければ、ステツプ108に移る。これは
SCA≦SRA+(SRA+2)+3即ちレジスタSCA
の内容がレジスタSRAの内容で始まるレコード
の最終データのあるアドレス以内であるかどうか
をテストするものである。YESであればステツ
プ109に移りスキヤンの長さを計数しているレジ
スタDSCをインクリメントする。次にステツプ
110においてレジスタCSLが0以下かどうかをチ
エツクしている。即ちレジスタCSLの内容が0よ
り大のときは前述のごとくスキヤンのレングスが
指定されていることが示されているので、ステツ
プ111に移りレジスタDSCとレジスタCSLを比較
しレジスタDSCの方がレジスタCSLより小さい
場合は再び AM より上述と同様のルーチンをく
り返し実行し、DSC=CSLとなつたときにはス
テツプ112に入る。ステツプ112においてレジスタ
P3の内容をレジスタSCAに格納する。即ちレ
ジスタP3を現アドレスとしこのサブルーチンを
ぬける。 Next, in step 102, if register CSL is less than 0, that is, the scan length is less than 0, step 102 is executed.
At step 103, the register CSEA, that is, the scan final address is checked, and if this is also less than 0, the parameter is defective and this subroutine ends. In other cases, move to and start scanning. In FIG. 12, in step 104, the start address of the record at the current address being scanned is stored in register SRA. Next, in step 105, SCA+1-2×CSD is stored in register SCA.That is, if register CSD is 0, that is, in the case of forward scan, register SCA is counted up, and if register SCA is 1, that is, in the case of backward scan, register SCA is counted up. Count down. (In this example, it is a countdown.) Next, in step 106, the contents of the register SCA that has been counted up or down in the above are set to SRA+
It is checked whether the address is smaller than 3, that is, if it is in the addresses shown in B1, B2, B3, and B4 of the record, as shown in FIG. this is
SCA≦SRA+(SRA+2)+3 i.e. register SCA
This is to test whether the contents of register SRA are within the address of the last data of the record starting with the contents of register SRA. If YES, the process moves to step 109 and increments the register DSC that counts the scan length. Next step
At 110, it is checked whether the register CSL is less than or equal to 0. In other words, when the contents of register CSL are greater than 0, it indicates that the scan length is specified as described above, so the process moves to step 111 and compares register DSC and register CSL, and register DSC is higher than register CSL. If it is smaller, the same routine as above is executed again from AM, and when DSC=CSL, step 112 is entered. In step 112, the contents of register P3 are stored in register SCA. That is, register P3 is set as the current address and this subroutine is exited.
一方ステツプ110おいてCSL≦0の場合即ちス
キヤンの長さが指定されざる場合は、ステツプ
113によつてレジスタSCAとレジスタCSEAが等
しいかどうか比較し、即ち現アドレスとスキヤン
最終アドレスとを比較し等しい場合はステツプ
114によりレジスタP2をレジスタDSCへ格納
し、即ちスキヤン時にカウントアツプしてきた数
値にしてこのサブルーチンを終える。 On the other hand, if CSL≦0 in step 110, that is, if the scan length is not specified, step 110
113, the register SCA and the register CSEA are compared to see if they are equal, that is, the current address and the scan final address are compared, and if they are equal, the step is executed.
At step 114, the register P2 is stored in the register DSC, that is, the value counted up during the scan is made into the value, and this subroutine ends.
一方ステツプ106においてSCA≦SRA+3であ
る場合はステツプ115に移り(SRA+1−CSD)
が0かどうかをテストする。即ちステツプ115は
次にスキヤンすべきレコードが0であるかどうか
を調べており、次にスキヤンすべきレコードが0
のとき、即ちもはや現レコードに続くレコードが
ない場合はステツプ116に移りCSL≦0のときは
ステツプ117でP3にCSD−1を格納し、CSL>
0のときはステツプ118でP2=DSCとしてこの
サブルーチンを終える。またステツプ115で次に
スキヤンすべきレコードがあることが判明した場
合はステツプ119にうつりSRAを(SRA+1−
CSD)とし、ステツプ120においてSCAはSRA+
4+CSD×〔(SRA+2)〕即ちSCAをCSD(スキ
ヤン方向)が0の場合はSRA+4として、また
CSDが1のときはSRA+4+CSD×〔(SRA+
2)〕とする。 On the other hand, if SCA≦SRA+3 in step 106, proceed to step 115 (SRA+1−CSD)
Test whether is 0. That is, step 115 checks whether the next record to be scanned is 0, and if the next record to be scanned is 0.
In other words, if there is no record following the current record, the process moves to step 116, and if CSL≦0, CSD-1 is stored in P3 in step 117, and CSL>
If it is 0, the subroutine ends with P2=DSC at step 118. If it is found in step 115 that there is a record to be scanned next, the process goes to step 119 and the SRA is (SRA+1-1).
CSD), and in step 120, SCA is SRA+
4 + CSD × [(SRA + 2)] In other words, SCA is set as SRA + 4 when CSD (scan direction) is 0, and
When CSD is 1, SRA+4+CSD×[(SRA+
2)].
この式においても他の場合と同様(SRA+2)
はSRA+2のコンテンツを示すものである。上
記のステツプ終了後再びステツプ105にもどり上
述と同様のステツプをくり返す。又ステツプ108
においてNOの場合はステツプ119に入り上述と
同様のステツプを実行する。上記によりデータス
キヤナのサブルーチン第10図ステツプ95を終了
すると、次に第10図のステツプ120に入る。ス
テツプ120ではP3と(FFEO)16のアンドをとり
レジスタPRに格納する。即ち挿入しようとした
アドレスが当レコードのデータ部分の先頭の場
合、前のレコードのアドレスをレジスタPRに格
納したわけである。然る後ステツプ121において
レジスタPRで示したレコードのデータの長さを
調べ即ち(PR+2)≧28を検べYESであればも
はやここには挿入すべき空きアドレスがないわけ
であるのでにうつり上で述べたステツプを同様
に実行する。NOの場合はステツプ122に移り押
すべきデータ即ち(SDA)をP3+1即ちデー
タスキヤナステツプ95で求めたP3のアドレスの
次のアドレスに書き込む。次にステツプ123によ
つてこのレコードのデータ長さをインクリメント
してこのデータ挿入のサブルーチンを終了し第6
図のステツプ58を完了する。 In this formula, the same as in other cases (SRA + 2)
indicates the content of SRA+2. After completing the above steps, the process returns to step 105 and repeats the same steps as above. Also step 108
If the answer is NO, step 119 is entered and steps similar to those described above are executed. When step 95 of the data scanner subroutine in FIG. 10 is completed as described above, step 120 in FIG. 10 is entered next. In step 120, P3 and (FFEO) 16 are ANDed and stored in register PR. That is, if the address to be inserted is at the beginning of the data portion of the current record, the address of the previous record is stored in register PR. After that, in step 121, check the data length of the record indicated by the register PR, that is, check (PR+2)≧28. If YES, there is no longer a free address to insert here, so the data is transferred. Perform the steps mentioned above in the same way. If NO, the program moves to step 122 and writes the data to be pressed (SDA) to P3+1, that is, the address next to the address of P3 determined in data scanner step 95. Next, in step 123, the data length of this record is incremented, and this data insertion subroutine is terminated.
Complete step 58 in the diagram.
続いて第6図のステツプ124から128によりレジ
スタSCAのアドレスの次のデータのアドレスを
求める。ステツプ128のデータスキヤナは第10
図のステツプ95について、説明した様に第11図
以下で説明したものと全く同じものである。従つ
てデータスキヤナステツプ128では次のアドレス
をレジスタP3に入れる。次にステツプ129によ
りSCAとSLA即ちステツプ58で実行したデータ
挿入のための源データのアドレスとブロツク挿入
の最終アドレスを比較し等しければステツプ130
によりデータスキヤナステツプ128で求めたアド
レスを格納するレジスタP3の内容を現在値レジ
スタNRに入れてブロツク挿入を完了する。また
ステツプ129においてNOであればステツプ131に
よりレジスタSCAにP3の内容を格納してステ
ツプ132にうつり、ステツプ58において挿入した
データが文字コードかどうかを検べYESならば
ステツプ133によりCRTの表示におけるカーソル
位置をインクリメントした後に、またNOであれ
ばすぐステツプ134に移る。ステツプ134〜138に
より次の挿入先のアドレスを求める。この結果即
ちレジスタP3の内容をステツプ139でIAに格納
し再びステツプ56へもどりすでに述べたルーチン
をくり返す。上述の行程によりブロツク挿入第4
図51を終了すると、第4図140のステツプに入る。
ステツプ140〜142によつてステツプ51によつて挿
入したデータの源のデータ即ちステツプ24及びス
テツプ25で範囲を設定したブロツクを削除する。
詳述すれば、ステツプ140においてレジスタP1
の内容を削除すべきデータの先頭アドレスとし、
P2に削除すべきデータの最終のアドレスをセツ
トする。次にステツプ142に移り、即ち第13図
のステツプ143に入る。ステツプ143〜144は上記
のレジスタP1,P2のパラメータをそれぞれレ
ジスタDLFA及びDLLAに保存し、レジスタ
DLCAの内容をDLLAに格納する。このブロツク
削除は削除するブロツクの最終のデータより順に
さかのぼつて先頭のデータまでを削除するもので
ある。削除するブロツクの最終アドレスを格納す
るレジスタDLLAの内容をステツプ145によりレ
ジスタDLCAに格納しステツプ146以下でレジス
タDLCAで示されるアドレスのデータを削除し次
にレジスタDLCAの一つ前のデータを探して再び
削除することによりブロツク削除を行う。更に詳
述すればステツプ146でP1=DLCAとしデータ
削除のサブルーチン147に入る。ステツプ147は第
14図で説明する。ステツプ148は削除すべきデ
ータのアドレスをレジスタSDLAに保存し、ステ
ツプ149で削除すべきデータのアドレスのレコー
ドのアドレスをレジスタSDRAに格納する。次に
ステツプ150でこのレコードのデータ長が1以下
かどうかをテストし1以下でない場合は、ステツ
プ151に入る。ステツプ151ではレジスタSDLAの
内容がそのレコードの終りのデータのアドレスで
あるかどうかを検べて、即ちSDLA≧SDLRA+
(SDLRA+2)+3ならばステツプ152に入り、
このレコードのデータ長をデイクリメントする。 Subsequently, in steps 124 to 128 in FIG. 6, the address of the data next to the address of the register SCA is determined. The data scanner for step 128 is the 10th
As explained above, step 95 in the figure is exactly the same as that explained in FIG. 11 et seq. Therefore, in data scanner step 128, the next address is placed in register P3. Next, in step 129, the SCA and SLA, that is, the source data address for data insertion executed in step 58 and the final address of block insertion are compared, and if they are equal, step 130 is performed.
The contents of the register P3, which stores the address obtained in the data scanner step 128, are placed in the current value register NR, thereby completing the block insertion. If NO in step 129, the contents of P3 are stored in the register SCA in step 131, and the process goes to step 132.In step 58, it is checked whether the inserted data is a character code.If YES, in step 133, the contents of P3 are stored in the register SCA. After incrementing the cursor position, if NO again, the process immediately moves to step 134. Steps 134 to 138 determine the next insertion destination address. The result, that is, the contents of register P3, is stored in IA at step 139, and the process returns to step 56 to repeat the routine already described. Insert the fourth block by the above process.
Upon completion of FIG. 51, the process enters the step of FIG. 4 140.
In steps 140 to 142, the source data of the data inserted in step 51, that is, the block whose range was set in steps 24 and 25, is deleted.
Specifically, in step 140, register P1
Let the contents of be the start address of the data to be deleted,
The final address of the data to be deleted is set in P2. Next, the process moves to step 142, ie, step 143 in FIG. 13 is entered. Steps 143 to 144 save the parameters of registers P1 and P2 above in registers DLFA and DLLA, respectively, and
Store the contents of DLCA in DLLA. This block deletion is performed by sequentially deleting the last data of the block to be deleted up to the first data. The contents of the register DLLA, which stores the final address of the block to be deleted, are stored in the register DLCA in step 145, and in steps 146 and below, the data at the address indicated by the register DLCA is deleted, and then the previous data in the register DLCA is searched. The block is deleted by deleting it again. More specifically, in step 146, P1=DLCA is set and a data deletion subroutine 147 is entered. Step 147 is explained in FIG. Step 148 stores the address of the data to be deleted in the register SDLA, and step 149 stores the address of the record of the address of the data to be deleted in the register SDRA. Next, in step 150, it is tested whether the data length of this record is less than or equal to 1, and if it is not less than or equal to 1, step 151 is entered. In step 151, it is checked whether the contents of register SDLA are the address of the end data of the record, that is, SDLA≧SDLRA+
If (SDLRA+2)+3, enter step 152,
Decrement the data length of this record.
次にステツプ153においてレジスタSDLAもデ
イクリメントして第16図に移りステツプ154
〜157によつて現レジスタSDLAの次のデータの
アドレスを求めステツプ159によりP2=P3と
し、このサブルーチンを終る。また、ステツプ
151でNOの場合はステツプ160〜162で逆転送ス
テツプ163のパラメータを指定する。即ち、レジ
スタP1は転送元の先頭アドレス、レジスタP2
は転送先の先頭アドレス、レジスタP3は転送長
さとし、転送すべきデータの先頭から順に転送長
さだけ転送先に転送するものである。更に詳しく
述べると、第15図においてステツプ164でN=
0として、次にステツプ165においてレジスタN
とレジスタP3即ち転送長さと比較し等しくなる
まではステツプ166、167をくり返し転送を行い、
等しくなるとこの逆転送のルーチンを終り第14
図ステツプ168に入る。ステツプ168ではのレコー
ドのデータ長をデイクリメントし次にステツプ
168′によりP2=SDLAとしデータ削除のサブル
ーチンをぬける。またステツプ150においてこの
レコードのデータ長が1である場合はに入り、
第17図ステツプ169においてこのレコードがデ
ータレコードの最終レコード即ち末尾データレコ
ードポインタのコンテンツであるかどうかをテス
トし最終レコードでない場合即ちSDLR≠
(LDRP)の場合はステツプ170〜177によりこの
レコード削除を行う。詳しく説明すると、ステツ
プ170で末尾未使用レコードポインタLBRPのコ
ンテンツをレジスタLBR1の内容として保存し、
ステツプ171において(SDLRA+1)で示され
るアドレス即ち削除すべきレコードの次に続くレ
コードの先頭アドレスに、レジスタSDLRAで示
されるアドレス即ち削除すべきレコードの前に続
くレコードの先頭アドレスを入れる。次にステツ
プ172において(SDLRA+1)を(SDLRA)+
1で示されるアドレスに入れ、即ち上記前に続く
レコードの第2ワード目に、前記次に続くレコー
ドの先頭番地を入れる。次にステツプ173におい
てSDLRAを(LBRP)+1で示されるアドレス
に入れ、即ち、削除すべきレコードを未使用レコ
ードのストリングに入れる。次にステツプ174に
おいてこの削除すべきレコードの第2ワード目を
0にする。ステツプ175に於て末尾未使用レコー
ドポインタLBRPにレジスタSDLRA即ち削除す
べきレコードのアドレスを入れる。次にステツプ
176に於て、レジスタP2の内容を削除したデー
タに続くデータに入つているアドレスとする。次
にステツプ177に於て削除したレコード即ち末尾
未使用レコードポインタLBRPの示すアドレスに
ステツプ170で保存したものを入れてデータ削除
のサブルーチンを終る。また、ステツプ169で
YESとなつた場合即ち削除すべきレコードが末
尾データレコードである場合は AJ に移り、第
18図ステツプ178〜186によりこのレコードを削
除する。詳しく説明すると、ステツプ178及びス
テツプ179により末尾データレコードポインタ
LDRPと末尾未使用レコードポインタLBRPの示
すアドレスをそれぞれレジスタLDR1とLBR1
に保存する。ステツプ180において末尾データレ
コードポインタLDRP削除すべきレコードの前に
続くレコードの先頭アドレス即ちレジスタLDR
1のコンテンツを入れ、次にステツプ181に於て
末尾未使用レコードポインタLBRPにステツプ
178で保存したLDR1即ち削除するレコードの先
頭アドレスを入れる。次にステツプ182に於て、
(LDRP)+1で示されるアドレスに0を入れる。
次にステツプ183においてレジスタLDR1で示さ
れるアドレスにLBR1を入れる。次にステツプ
184においてLBR+1で示されるアドレスにレジ
スタLDR1の内容を入れる。 Next, at step 153, the register SDLA is also decremented, and the process moves to FIG. 16, at step 154.
-157, the address of the next data in the current register SDLA is obtained, and step 159 sets P2=P3, and this subroutine ends. Also, step
If NO in step 151, specify parameters for reverse transfer step 163 in steps 160-162. That is, register P1 is the start address of the transfer source, register P2 is
is the start address of the transfer destination, register P3 is the transfer length, and the data to be transferred is transferred to the transfer destination in order from the beginning by the transfer length. More specifically, in FIG. 15, in step 164, N=
0, then in step 165 register N
is compared with register P3, that is, the transfer length, and repeats steps 166 and 167 until the transfer length is equal.
When it becomes equal, this reverse transfer routine ends and the 14th
Enter step 168 in the figure. Step 168 decrements the data length of the record and then steps
168' sets P2=SDLA and exits from the data deletion subroutine. Also, if the data length of this record is 1 in step 150, enter
In step 169 of FIG. 17, it is tested whether this record is the last record of the data records, that is, the content of the last data record pointer, and if it is not the last record, that is, SDLR≠
(LDRP), this record is deleted by steps 170 to 177. To explain in detail, in step 170, the contents of the last unused record pointer LBRP are saved as the contents of register LBR1,
In step 171, the address indicated by the register SDLRA, ie, the start address of the record following the record to be deleted, is entered into the address indicated by (SDLRA+1), ie, the start address of the record following the record to be deleted. Next, in step 172, (SDLRA+1) is converted to (SDLRA)+
1, that is, the start address of the next succeeding record is entered in the second word of the preceding record. Next, in step 173, SDLRA is placed at the address indicated by (LBRP)+1, ie, the record to be deleted is placed in the string of unused records. Next, in step 174, the second word of this record to be deleted is set to 0. At step 175, register SDLRA, that is, the address of the record to be deleted, is placed in the last unused record pointer LBRP. Next step
At step 176, the contents of register P2 are set to be the address contained in the data following the deleted data. Next, in step 177, the deleted record, ie, the record saved in step 170, is inserted into the address indicated by the end unused record pointer LBRP, and the data deletion subroutine is ended. Also, in step 169
If YES, that is, if the record to be deleted is the last data record, the process moves to AJ, and this record is deleted by steps 178 to 186 in FIG. To explain in detail, steps 178 and 179 point to the last data record pointer.
The addresses indicated by LDRP and the last unused record pointer LBRP are stored in registers LDR1 and LBR1, respectively.
Save to. In step 180, the last data record pointer LDRP is the first address of the record following the record to be deleted, that is, the register LDR.
1 contents, and then step to the last unused record pointer LBRP in step 181.
Enter LDR1 saved in step 178, that is, the start address of the record to be deleted. Next, in step 182,
Insert 0 into the address indicated by (LDRP)+1.
Next, in step 183, LBR1 is placed in the address indicated by register LDR1. Next step
At step 184, the contents of register LDR1 are placed in the address indicated by LBR+1.
次にステツプ185において(LDRP)+1のアド
レスに0を入れる。次にステツプ186においてレ
ジスタP2を−1として現カーソル位置がレコー
ドの最終位置であることを示す、かくて上記デー
タ削除ルーチンによりレジスタP1で指定された
アドレスのデータを削除し、レジスタP2に上記
削除したデータの次のデータのアドレスを入れる
仕事を終る。次にステツプ187において上記のレ
ジスタP2をレジスタDLCAの内容とし、次にス
テツプ188〜193によりレジスタDLCAの内容を現
在DLCAで示されるデータの一つ前のデータのア
ドレスに変える。即ち前述のデータスキヤナによ
り一つ前のデータのアドレスをレジスタP3に返
し、ステツプ193でレジスタDLCAの内容とする
ものである。次に194のステツプでレジスタ
DLCAの内容がステツプ143で保存したレジスタ
DLFA即ち削除すべきデータブロツクの先頭アド
レスと等しくなるまでステツプ146〜193をくり返
し、等しくなつたらブロツク削除が完了したこと
になるのでブロツク削除のサブルーチンを終る。 Next, in step 185, 0 is put into the address of (LDRP)+1. Next, in step 186, register P2 is set to -1 to indicate that the current cursor position is the last position of the record, and the data at the address specified in register P1 is deleted by the data deletion routine, and the data at the address specified by register P2 is stored in register P2. Finishes the job of entering the address of the next data after the data. Next, in step 187, the register P2 is changed to the contents of register DLCA, and then in steps 188 to 193, the contents of register DLCA are changed to the address of the data immediately preceding the data currently indicated by DLCA. That is, the data scanner described above returns the address of the previous data to the register P3, and in step 193 it is set as the contents of the register DLCA. Then register in 194 steps.
The contents of DLCA are the registers saved in step 143.
Steps 146 to 193 are repeated until the address becomes equal to DLFA, that is, the start address of the data block to be deleted. When the address becomes equal, the block deletion is completed, and the block deletion subroutine ends.
上記により第4図のステツプ142のブロツク削
除をしてステツプ194により移動範囲のステイタ
スをリセツトし、 ZZ に入る。 As described above, the block is deleted in step 142 of FIG. 4, the status of the moving range is reset in step 194, and ZZ is entered.
第19図 ZZ よりステツプ195に入りCRT装置
DPの先頭データのアドレスLHA(1)をレジスタP
1に記憶してデイスプレイのサブルーチンに入り
第1図メモリMの内容を新規に書きかえる。即ち
順に読み出し文字コードを順次デイスプレイ先頭
データのアドレスLHA(1)よりメモリM10に入
れることによりCRT装置DPに表示させるもので
ある。この結果「移動範囲」で定めた範囲のデー
タは移動用バツフアに記憶されると共に元のデー
タから削除されまたCRT画面よりも削除される。 Figure 19 Enter step 195 from ZZ and CRT device
Set the address LHA(1) of the first data of DP to register P.
1 and enters the display subroutine to rewrite the contents of the memory M in FIG. That is, the read character codes are sequentially read out and stored in the memory M10 from address LHA(1) of the display head data, thereby displaying them on the CRT device DP. As a result, the data within the range defined by the ``movement range'' is stored in the transfer buffer, deleted from the original data, and deleted from the CRT screen.
次にカーソルを所望の移動先にもつてきてキー
ボード5上の「移動先」のキーKB4を押すと、
ステツプ197(第4図)によりへ移り第20図ス
テツプ198により移動先のアドレスを記憶する。
次にステツプ199〜202により前記移動用バツフア
に記憶したデータを所望の位置に挿入するもので
ある。 Next, move the cursor to the desired destination and press the "Move destination" key KB4 on the keyboard 5.
The process moves to step 197 (FIG. 4), and the destination address is stored in step 198 of FIG.
Next, in steps 199-202, the data stored in the moving buffer is inserted into a desired position.
ブロツク挿入ステツプ202は前記に説明したと
全く同じものである。次に ZZ に移り、前記の
ステツプ194から入つたときと同様、新しい表示
をCRTに行う。 The block insertion step 202 is exactly the same as described above. Next, go to ZZ and make a new display on the CRT in the same way as when entering from step 194 above.
以上でブロツク転送が行われたのであるが、転
送後も移動用バツフアのデータは保存されている
ので、再び所望の位置にカーソルをおいて「移送
先」のキーKB4を押すことにより同様のデータ
を複製して挿入することができる。 The block transfer has been performed above, but the data in the transfer buffer is saved even after the transfer, so by placing the cursor at the desired position again and pressing the "Transfer destination" key KB4, the same data can be transferred. can be copied and inserted.
[効果]
以上詳述した様に、本発明により、始めと終り
を指定することによつて、所望の文字列を指定す
ることができ、更にその指定された文字列を記憶
することができ、文書中の所望の挿入先への挿入
を指示する毎に高速に前記指定された文字列を挿
入することができる文字処理装置を提供すること
が可能となつた。[Effects] As detailed above, according to the present invention, a desired character string can be specified by specifying the beginning and end, and the specified character string can be stored. It is now possible to provide a character processing device that can quickly insert the designated character string every time an instruction is given to insert the specified character string into a desired insertion location in a document.
本発明により、作成中の文書内の所望の文字列
を指定することができ、該文書中の所望の位置へ
の挿入の指示を行う毎に前記所望の本字列を挿入
することができるので、文書の作成をその文書中
の所望の文字列を複製しながら行えるという非常
に操作性の良い文字処理装置文字処理装置を提供
することが可能となつた。 According to the present invention, it is possible to specify a desired character string in the document being created, and the desired main character string can be inserted each time an instruction for insertion is given at a desired position in the document. It has now become possible to provide a character processing device with very good operability, which allows documents to be created while duplicating desired character strings in the document.
第1図は本発明による文字処理装置の一実施例
を示すブロツク図、第2図は第1図に示すメモリ
RAMの詳細図、第3図は第2図に示す移動用バ
ツフアMBの説明図、第4図〜第20図は制御手
順を説明する図である。
KB3……移動範囲キー、KB4……移動先キ
ー、ROM……制御メモリ、RAM……メモリ。
FIG. 1 is a block diagram showing an embodiment of a character processing device according to the present invention, and FIG. 2 is a memory shown in FIG. 1.
A detailed diagram of the RAM, FIG. 3 is an explanatory diagram of the moving buffer MB shown in FIG. 2, and FIGS. 4 to 20 are diagrams explaining the control procedure. KB3...Movement range key, KB4...Movement destination key, ROM...Control memory, RAM...Memory.
Claims (1)
手段、 前記文書の作成中に、前記データ記憶手段に記
憶された前記データ列内の所望の一部のデータ列
の始めと終わりを指定することによつて、前記所
望の一部のデータ列を指定する指定手段、 前記指定手段によつて指定された前記一部のデ
ータ列を格納する格納手段、 前記指定手段によつて指定された前記一部のデ
ータ列の前記データ列中における挿入先を指示
し、その挿入先に、前記格納手段に格納された前
記一部のデータ列を挿入することを指示する指示
手段、 前記指示手段による任意の挿入先への挿入指示
を行う毎に、前記任意の挿入先に対応する前記デ
ータ列中の挿入位置に、前記一部のデータ列を挿
入する挿入制御手段とを有したことを特徴とする
文字処理装置。[Scope of Claims] 1. Data storage means for storing a data string representing a document; during creation of the document, the beginning and end of a desired part of the data string within the data string stored in the data storage means; specifying means for specifying the desired partial data string by specifying; storage means for storing the partial data string specified by the specifying means; specifying by the specifying means; an instruction means for instructing an insertion destination of the partial data string stored in the storage means in the data string, and for instructing that the partial data string stored in the storage means be inserted into the insertion destination; and an insertion control means for inserting the part of the data string at an insertion position in the data string corresponding to the arbitrary insertion destination each time an insertion instruction is given to an arbitrary insertion destination by the means. Characteristic character processing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12720579A JPS5650465A (en) | 1979-10-01 | 1979-10-01 | Character processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12720579A JPS5650465A (en) | 1979-10-01 | 1979-10-01 | Character processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1111848A Division JPH0778798B2 (en) | 1989-04-28 | 1989-04-28 | Character processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5650465A JPS5650465A (en) | 1981-05-07 |
JPS6326909B2 true JPS6326909B2 (en) | 1988-06-01 |
Family
ID=14954312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12720579A Granted JPS5650465A (en) | 1979-10-01 | 1979-10-01 | Character processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5650465A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH068973U (en) * | 1992-01-29 | 1994-02-04 | 有限会社不二精工販売 | Bus operation display device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57182869A (en) * | 1981-05-08 | 1982-11-10 | Sharp Corp | Document processing device |
JPS5814242A (en) * | 1981-07-20 | 1983-01-27 | Fujitsu Ltd | Japanese language input device |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5113533A (en) * | 1974-07-25 | 1976-02-03 | Yamura Shinkoseisakusho Kk |
-
1979
- 1979-10-01 JP JP12720579A patent/JPS5650465A/en active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5113533A (en) * | 1974-07-25 | 1976-02-03 | Yamura Shinkoseisakusho Kk |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH068973U (en) * | 1992-01-29 | 1994-02-04 | 有限会社不二精工販売 | Bus operation display device |
Also Published As
Publication number | Publication date |
---|---|
JPS5650465A (en) | 1981-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0403122A2 (en) | Processor controlled image overlay | |
US4198685A (en) | Text editing system having flexible repetitive operation capability with keyboard interactive feature | |
US4717911A (en) | Technique for chaining lines of a document together to facilitate editing or proofreading | |
US5157784A (en) | Memory control system responsive to determination, allocating adjacent test space for editing space, relocating adjacent text and editing selected text | |
JPS6326909B2 (en) | ||
JPS6359155B2 (en) | ||
JPH0778798B2 (en) | Character processing method | |
JPH023212B2 (en) | ||
JPH03176759A (en) | Character processor | |
JPH025175A (en) | Character processor | |
JP2567187B2 (en) | Character processing method | |
JPS59140541A (en) | Character processing device | |
JP2698348B2 (en) | Character processor | |
JPS60221865A (en) | Document processor | |
JPH0440741B2 (en) | ||
JPH03141461A (en) | Document processor | |
JPH0666065B2 (en) | Document processor with furigana addition function | |
JPH0578036B2 (en) | ||
JPH04282755A (en) | Word processor | |
JPH04332074A (en) | Method and device for processing character | |
JPH03167660A (en) | Character processor | |
JPS63263564A (en) | Character processor | |
JPH04332073A (en) | Method and device for processing character | |
JPH02289073A (en) | Character processor | |
JPH02998A (en) | Character pattern control method |