JPH0427585B2 - - Google Patents

Info

Publication number
JPH0427585B2
JPH0427585B2 JP56010710A JP1071081A JPH0427585B2 JP H0427585 B2 JPH0427585 B2 JP H0427585B2 JP 56010710 A JP56010710 A JP 56010710A JP 1071081 A JP1071081 A JP 1071081A JP H0427585 B2 JPH0427585 B2 JP H0427585B2
Authority
JP
Japan
Prior art keywords
indent
cursor
block
line
data
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 - Lifetime
Application number
JP56010710A
Other languages
English (en)
Other versions
JPS57125479A (en
Inventor
Katsumi Masaki
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP56010710A priority Critical patent/JPS57125479A/ja
Publication of JPS57125479A publication Critical patent/JPS57125479A/ja
Publication of JPH0427585B2 publication Critical patent/JPH0427585B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Description

【発明の詳細な説明】 〔技術分野〕 本発明は文字の編集処理を行う文字処理装置に
関する。
〔従来技術〕
従来罫線を部分パターン化し、文字と同等の取
扱いを行うことによつて罫線付の文書データ等を
作成し、プリント等に出力する装置があつた。
しかしながら罫線部分パターンの連らなりをデ
ータとして作成するにあたつては部分パターンの
数に相当するだけの複数個の入力手段が必要であ
つたり、あるいは罫線の始点と終点とを指定し、
それを部分パターンの連らなりデータに変換する
といつた操作が必要であつたりした。
また従来、あらかじめ設定された特定枠内に文
字等を入力し編集を行うことのできる文字処理装
置があつた。例えば新聞のコラムへの電算機によ
る入力編集システム等はその例である。かかる固
定化された枠組みの大きさを変更しうるようにす
るために本出願人は文字処理装置(特願昭55−
135543号公報、本願第33図、第34図、第35
図)を提案している。
ここでは枠組みが左マージンマーク“〓”、右
マージンマーク“〓”、インデントマーク“〓”
によつて形造られている。ここでの枠組みの定義
は以下のようになつている。
左右方向:インデントマーク、左マージンマー
ク、右マージンマーク等で囲われる最も小さな
領域 上下方向:1 左右マージンマーのみで枠組みさ
れている行の場合 ●文字等情報(スペースコードは除く)又はカー
ソルが存在している行が連続して続く範囲 2 インデントマークのみあるいはインデントマ
ークと左右マージンマークで枠組みされている
行の場合 ●左右マージン、インデントが桁方向において同
一に設定されている範囲 或は文字処理装置において、入力時にミスが発
生したような場合あるいは、一度入力したデータ
を再度入力し直したいような場合、例えば表示装
置の画面上に表示されているカーソルをカーソル
シフトキーを用いて該当位置に戻し、再度入力を
しなおすことが行なわれていた。
しかしながら、設定された所望の領域(例えば
代表された枠)内に文字を入力しようとすると、
カーソルの動きに十分注意しなければならなかつ
た。即ちカーソルは、あらかじめ定められた枠と
は関係なしに次々進むため、枠をはみだしてしま
うときにはそのたびにカーソルを所定の位置に移
動しなければならなかつた。又、枠とは関係なく
カーソルを後退させることも必要である。
〔目的〕
本発明の目的は、表示画面上の位置を指示する
カーソルを領域の内外に係わらず、前進させるこ
とができ、或は領域内で1文字分づつ後退させる
ことができ、前記領域内で1文字内づつカーソル
を後退させた場合、カーソルが前記領域内の行頭
から前記領域内の前記行の前の行の行末にカーソ
ルを移動させることができる文字処理装置を提供
することにある。
本発明による他の目的は以下図面を参照して行
われる実施例の説明より明らかとなるであろう。
〔実施例〕
次に本発明による実施例を述べる前に本実施例
で用いられる用語の説明をまず行なう。
1 インデントコードInd CRT上に“〓”マークで表示される。文字
等をキーボードから入力するにあたつて、あら
あじめこのインデントコードにより、枠組みが
作られる。
2 左マージンコードLMM CRT上に“〓”マークで表示される。キー
ボードから入力可能な最左端を表示する。
3 右マージンコードRMM CRT上に“〓”マークで表示されるキーボ
ードから入力可能な最右端を表示する。
4 インデントブロツクInb インデントマーク、左マージンマーク、右マ
ージンマーク等で枠組みされた領域をさす。正
しくは、次のように定義される。
左右方向:インデントマーク、左マージンマー
ク、右マージンマーク等で囲われる最も小さ
な領域 上下方向:マージンマーク、インデントの設定
位置が同一である範囲。インデントブロツク
の定義を換言するならば、インデントマーク
あるいは左マージンマーク、あるいは右マー
ジンマークによつて囲まれる横方向で最も小
さく領域が段差なく上下に続く領域である。
第2図a,b,cはCRT上に表示されるイン
デントブロツクの例を示すものである。
キーボードから入力された文字等はこのインデ
ントブロツクInbという枠内で処理される。この
インデントブロツクInbは作業等のフオーマツテ
イングされた文章を作成する上で重要の役割をは
たす。
本実施例においては、CRT上に表示されたカ
ーソルCMが存在する位置以降に対して、インデ
ントブロツクInbの各種処理を行うため、前述し
た定義によるインデントブロツクInbの内カーソ
ルCMが存在する行以降に対してインデントブロ
ツクInbという表現をしているところがある。
5 枠組コード インデントコードInb、左マージンコード
LMM、右マージンコードRMMの3種のコー
ドの総数。これらのコードは、枠組パターン
〓、〓、〓と対応ずけられる。(第3図a参照)
枠組みは下記により定義される。
左右方向:インデントマーク、左マージンマー
ク、右マージンマーク等で囲われる最も小さ
な領域 上下方向:マージン、インデントが桁方向に同
一である状態が連続する範囲。(別の言い方
をすると、段差なくマージンあるいはインデ
ントが上下に続く範囲) 第33図b,cに上記定義による枠組みの例を
示す。一転鎖線で囲われた領域が枠組みであり、
この定義によれば、前述のような枠組みの判断に
おける混乱を解消できることになる。
6 罫線コード 罫線部分パターンを図形文字としてコード化
したもの。第3図aで示す如く、11種の罫線パ
ターンが罫線コードと対応づけられている。
次に本発明により1実施例による概要を説明す
る。
実施例に示す装置はキーボード、処理部の表示
装置及びプリンタから成る。
すべての操作はキーボード上にある文字キーあ
るいはフアンクシヨンキーにより実行する。
まずイニシヤライズキーによりすべての状態を
初期化し、本実施例の各機能が実行可能な状態と
なる。
イニシヤライズキーを押すことにより、表示装
置上には、左右マージンマークLMM、RMMが
表示され、他はすべてクリアされる。カーソル
CHは、最上行の第2コラム目に位置し、キーボ
ードからの文字等の入力が可能となる。入力モー
ドである挿入とオーバーライトとの選択は、挿入
キーあるいはオーバーライトキーを用いることに
より行う。キーボードから入力された文字等は、
挿入モードあるいはオーバーライトモードに於い
て、表示装置上でカーソルCMが表示されている
位置に入力される。カーソルCMはキーボードか
らの文字等の入力に従つて、1つずつ歩進する。
誤入力を行つたとき、削除キーを用い削除するこ
とができ、その場合後続する文字列は1つずつ前
につめられる。削除しようとする文字はカーソル
CMで指定する。カーソルCMはカーソルキーに
より1つずつ歩進させることができる。入力が終
了した文字列はプリントキーを押下することによ
りプリンタに出力させることができる。以上説明
した入出力制御は公知の技術で容易に実現するこ
とができる。
以下本発明における機能についてその操作方法
を述べる。
まずインデントブロツクInbを形成する方法に
ついて述べる。インデントブロツクInbは、イン
デントキーを用いた表示装置上にインデントマー
クIndをオーバーライト又は挿入することにより
形造ることができる。一度インデントブロツクが
出来上つた後は、キーボードから入力された文字
等の情報は、すべてこのインデントブロツクInb
内で処理されることになる。これにより、作表等
のフオーマツテイングされた文章の作成は、容易
に行えるようになる。又このインデントブロツク
Inbは横方向に自由に拡大、縮小ができる。この
様子を第4図a,b,cを用い説明する。
第4図aのように、インデントブロツク内に複
数個の文字が既に入力されていたとする。カーソ
ルキーを用いカーソルCMを第1行目第8行目の
位置、即ち、Bの位置を移動した上でインデント
右移動キーを押下すると、カーソルCMが存在し
たインデントブロツクは、横方向に縮小され、そ
の分縦方向に拡大され、第4図bのようになる。
次に第4図bのようにカーソルCMをインデント
マークIndの位置におきインデント右移動キーを
押下すると、カーソルCMの位置より左側に数え
て2番目のインデントブロツクInbが拡大し第4
図cのようになる。
即ち第4図aにおいてインデント右移動キーを
1回押下すると、第4図bのようになり、第4図
aにおいてインデント右移動キーを2回押下する
と第4図cのようになる。
第4図bのようにカーソルCMをインデントマ
ークIndの位置におき、インデント右移動キーを
押下した時のことをもう一度考察する。この例に
おいてはカーソルのすぐ左側に存在するインデン
トブロツクはすべてスペースコードであつた。従
つてカーソルの位置より左側に数えて2番目のイ
ンデントブロツクが拡大してもそれによつて喪失
する文字(スペースは除く)は存在しない。しか
しながら、カーソルのすぐ左側に存在するインデ
ントブロツクに既に文字が存在している場合も有
る。この時にはカーソルの位置より左側に数えて
2番目のインデントブロツクが拡大すると文字等
の喪失が発生することが起こり得る。そこで、文
字等(スペースコードを除く)の喪失が発生する
可能性が有る時はインデントブロツクの拡大は行
なわず、文字等(スペースコードを除く)の喪失
が発生する可能性のない時、インデントブロツク
の拡大を行うものとする。
第4図b,cにおけるインデントブロツクの拡
大は、関係する二つのインデントブロツクの縦サ
イズが等しい時における例であるが、さらに第3
5図a,bに関係する二つのインデントブロツク
の縦サイズが異なる場合の例を示す。この場合拡
大するインデントブロツクInb1の縦サイズより
拡大を受けるインデントブロツクInb2の縦サイ
ズの方が大きいために、インデントブロツクInd
1の拡大によつて影響を受けるインデントブロツ
クはインデントブロツクInb2に限られることに
なり、インデントブロツクInb2内に有効情報
(本実施例においてはスペースコード以外の情報)
が存在しない限り、インデントブロツクInb1の
拡大は可能である。しかしながらもし、拡大する
インデントブロツクの縦サイズ(行方向の大き
さ)が拡大を受けるインデントブロツクの縦サイ
ズより大きい時は、拡大を受けるインデントブロ
ツクは複数個となるため、処理が複雑となるため
その処理は行なわないものとする。
インデント左移動キーを用いて、インデントマ
ークIndの移動を行つた時も以上の説明と類似の
動作を行う。
次にインデントブロツクInb内に文字等の入力
を行つた時について第5図a,b,cを用い説明
する。第5図aのように、インデントブロツク
Inb内に文字等が入力され、カーソルCMがイン
デントブロツクInbの最後に位置していたとする。
第5図aにおいて文字“L”をオーバーライトモ
ードで入力したとすると、第5図bのようにな
る。即ちインデントブロツクは縦方向(矢印A)
に自動的に拡大され、次に入力される文字等に対
する格納エリアの準備を行う。第5図bでさらに
“MNOP”と入力を続行すると第5図cのように
さらに同じ拡大を続ける。
第5図bで、さらにインデントブロツクを拡大
しようとすると、下方に隣接するインデントブロ
ツクInbを1行ずつ下方にずらさねばならなくな
る。第5図cがその例である。
次にインデントブロツク内の文字の削除方法に
ついて説明する。第6図aのようにインデントブ
ロツクInb内に文字が入力され、カーソルCMが
“W”の下に位置していたとする。削除キーを押
下することにより、以下に続く文字は1つずつ前
につまる。その結果今まで“Y”という文字が存
在していた行はスペースコード、左マージンコー
ド、右マージンコード、インデントコードのみか
ら成る行となつてしまう。本実施例においては該
行Lを自動的に削除し、以下に続く行をすべて1
行ずつ繰り上げるものとする。第6図bがその結
果である。
次にインデントマークIndを削除する方法につ
いて述べる。
一つは削除キーを用いる方法であり、インデン
トマークはスペースコードに置きかわる。
次にインデントマークと罫線パターンとの切換
機能について説明する。今第3図bのようにイン
デントブロツクInbが形成されているとする。こ
こでインデント罫線変換キーを押下すると、第3
図cの如く、変換される。又第3図cにおいて罫
線インデント変換キーを押下すると第3図bの如
く変換される。このようにしてインデントマーク
Indと罫線パターンRPMとの相互変換が可能とな
る。この機能を用いることにより、インデントマ
ークIndで枠組みされた領域に文章を入力し、然
る後罫線パターンに変更するならば、極めて容易
に罫線パターンKPMを有する文章を作成するこ
とができる。これは、作表する上で非常に便利で
ある。
インデントマークの罫線パターンへの変換は上
述の如く、罫線インデント変換キーを用いればワ
ンタツチで行うことができるが、インデントマー
クが罫線パターン変換される範囲は、下記の如く
規定される。
即ちカーソルが存在する行以降、インデントマ
ークが存在する行が連続して続くところまでの範
囲とする。これによつてより単純なインデントマ
ークの連らなりから複雑な罫線パターンの連らな
りに変換することができる。第34図にその例を
示す。
第34図aにおいてカーソルを第2行の位置に
持つてきてインデントマークを罫線パターンに変
更すると第34図cが得られる。一方第34図a
においてカーソルを第6行の位置に持つてきてイ
ンデントマークを罫線パターンに変更すると第3
4図bが得られる。さらに第34図bにおいてカ
ーソルを第2行目に持つてきてインデントマーク
を罫線マークに変換するならば、第34図cが得
られる。このようにインデントマークを罫線パタ
ーンに変更するにあたつて、カーソルによつて範
囲指定を行うことができるので、より自由な罫線
パターンが得られる。さらにはインデントマーク
を罫線パターンに変換する最終領域をインデント
が存在する行が連続して続くまでの範囲と規定し
たため、やはり、より自由な罫線パターンを得る
のに役立つている。
一方一度インデントマークを罫線パターンに変
換した後罫線パターンが存在する近傍に文字等の
入力を行つたり、挿入削除等の編集を行うなら
ば、折角作つた罫線パターンの配列に乱れが発生
することになる。そこで、一度罫線パターンに変
換した文書に対し入力あるいは編集を行なおうと
する時は、罫線インデント変換キーにより再び罫
線パターンをインデントマークに変換した後行う
ようにする。
第3図dに具体的にインデントパターンを罫線
パターンに変更する時の対応テーブルを示す。な
お本実施例においては、文字の入力、インデント
の移動削除、キヤリツジリターンキー入力等の機
能を実行させるにあたつて、カーソルがインデン
トブロツク単位でキヤリツジリターンコードが存
在する行の右側に位置させることはないものとす
る。
以上入力編集を行つた文書は、プリントキーを
押すことによりプリンタに出力される。
第1図は、本発明による文字処理装置の一実施
例を示すブロツク図である。以下各構成要素を説
明する。KBは文章入力用キー(例えばJIS鍵盤
に配列されているキー群)及び本装置にそなわる
種々機能を実現するためのフアンクシヨンキー群
より成るキーボードである。上記フアンクシヨン
キー群は下記のフアンクシヨンキー即ち、インデ
ントを設定するためのインデントキー、インデン
トを右方向に移動するためのインデント右移動キ
ー、インデントを左方向に移動するためのインデ
ント左移動キー、これから入力する文字の挿入、
削除、オーバーライトを指示するための挿入キ
ー、削除キー、オーバーライトキー、CRT上の
カーソルを移動するためのカーソルキー、カーソ
ルをインデントブロツク単位に逆方向に移動させ
るバツクスペースキー、仕事の開始を指示するイ
ニシヤライズキー、改行を指示するキヤリツジリ
ターンキー、インデントマークを罫線マークに変
換するインデント罫線変換キー、罫線マークをイ
ンデントマークに変換する罫線インデント変換キ
ー及びプリントを指示するプリントキーから成
る。キーボードKBはエンコーダ機能を有し、後
述する処理部CPUにより打鍵されたキーの情報
が読み取られる。
CRはカーソルレジスタである。後述する処理
部CPUにより、カーソルレジスタCRの内容を読
み、書きすることができる。後述するCRTコン
トローラCRTはここに蓄えられたアドレスに対
応する表示装置CRT上の位置にカーソルを表示
する機能を有する。カーソルレジスタCRに蓄え
られる情報は1〜128までのシリアルナンバーと
し、CRTコントローラCRTCは、このシリアル
ナンバーを行数、桁ナンバーに変更し、表示する
ことになる。WBはワークバツフアで、インデン
トブロツクInb内の情報を一時的に蓄えるための
バツフアであり、バツフアのヘツダ部には7Wの
パラメータが配置される。容量は16×9W+aの
大きさとする。後述の処理部CPUにより自由に
読み、書きできる。
DBuFはデータバツフアで、キーボードKBよ
り入力された文章情報を蓄えるためのメモリであ
り、後述するCRTコントローラCRTCによつて
ここに蓄えられた情報が表示装置CRT上に表示
される。表示装置CRT用のリフレツシユメモリ
として使用される。CPUにより自由に読み書き
できるものとする。データバツフアDBuFは16×
9Wの容量を有し、そのうち前半の16×8Wのみが
表示装置CRT上に表示されるものとする。
CRTCはCRTコントローラでデータバツフア
DBuFに蓄えられた情報に従つて文字等を表示装
置CRTに表示し、カーソルレジスタCRに蓄えら
れた情報に従つて表示装置CRT上にカーソルを
表示するコントロールを行う。
文字等の表示は横16文字、縦8行の表示とし、
データバツフアDBuFの内容と順に対応づけられ
ているものとする。
文字等の表示にあたつては、後述するキヤラク
タジエネレータCGを参照し、文字コードを文字
パターンに変更することを行う。具体的方法は公
知である。
CRTは表示装置であり、CRTコントトーラ
CRTCにより文字とカーソルを表示できる。
CGはキヤラクタジエネレータであり、表示装
置CRTへの文字表示やプリンタPRTへの文字出
力のために使用される。CRTコントローラ
CRTC、及び後述するプリンタコントローラ
PRTCにより用いられる。
PRTCはプリンタコントローラであり、後述す
る処理部CPUからの文字コード情報をキヤララ
クタジエネレータCGを参照することによりパタ
ーンに直し、該パターンをプリンタPRTに出力
する。
プリンタコントローラPRTCは、罫線コードを
罫線パターンに変換し出力することができる。好
ましくはパターン出力にあつて行間、文字間をも
連続する直線でうめる機能を有していた方がなお
一層望ましい。
PRTはプリンタであり、プリンタコントロー
ラPRTFからの情報に従つて文字等をプリントア
ウトする。
CPUはマイクロプロセツサであり、演算、論
理判断等を行う。後述する。AB,CB,DBをコ
ントロールする。
ABはアドレスバスで制御対象を指示する信号
を転送する。
CBはコントロールバスで各種制御対象に制御
信号を印加するものである。
DBはデータバスで各種データを転送する。
ROMは制御メモリで、第7図以降に示す制御
手願等を記憶するものである。
RAMはランダムアクセスメモリで、各種デー
タの例えばキヤリツジリターンフラツグCRFG、
オーバライトフラグOWFG、新データ行数レジ
スタNDLカーソルセーブレジスタCSR一時記憶
に用いられる。
次に本実施例の動作説明を行う。
本実施例は、電源投入時に自動的にキーボード
処理が動作するように構成されているものとす
る。以下各処理につき具体的に第8図以降のフロ
ーチヤートを参照し、説明を行う。
まずキーボードKB上のキーが操作されると以
下の順序に従つて操作キーが判別され、それぞれ
のキーに対する処理が行なわれ、キー待ちの状態
となる。
ステツプKBIでキーボードKBから入力があつ
たかを判別する。入力がなければ、キー待ちにも
どり、入力があればKB2に移りキーボードKBか
らのデータを取り込む。ステツプKB3で、取り
込んだデータがキヤリツジリターンキーか否かを
判別する。YESであれば、キヤリツジリターン
入力処理を行ない、ステツプKB5でフラツグ
CRFGを1にセツトし、キー待ちにもどる。一方
ステツプKB3でNOであれば、ステツプKB6でフ
ラツグCRFGをOにリセツト次のキー判別ステツ
プに移る。ここでステツプKB4のキヤリツジリ
ターンキー入力処理についてさらに述べる。
第8図はキヤリツジリターンキー入力処理につ
いて詳細を示す図である。かかる処理の各ステツ
プの処理を以下に示す。
ステツプ4.1 CR FGセツトされているか ステツプ4.2 現カーソル位置はインデントマー
クのすぐ右隣か? ステツプ4.3 現カーソル位置のすぐ左隣のイン
デントマークをスペースコードに変更する。
ステツプ4.4 カーソルを現カーソル位置より左
に存在しかつ最も近いインデントマークあるい
は左マージンマークの直ぐ右隣の位置に移動さ
せる。(カーソルを移動させるにはカーソルレ
ジスタに該当数値を記入する。) ステツプ4.5 文字キー入力処理16 上述の如く本発明に於いてはキヤリジリータン
キーにより枠組の変更を行なうようにしている
が、他のキーにその機能をもたせるようにしても
良い。
ここて再び第7図のキーボード処理の説明に移
る。
ステツプKB6でフラツグCRFGをリセツトした
後、ステツプKB7に移り、インデントキーが操
作されたかを判別する。YESであれば、ステツ
プKB8のインデントキー入力処理を行なう。即
ちインデントマークを現カーソルが存在する位置
に書き込む。かかる処理が終了すれば、キー待ち
にもどる。
第9図はインデントキー入力処理についての詳
細を示す図である。各ステツプの処理を以下に示
す。
ステツプ8.1 現カーソルが存在している位置に
対応するデータバツフアDBuF内の位置にイン
デントコードを書き込む。
ステツプ8.2 カーソルを一つ歩進させるために
カーソルキー入力処理(14)行う。詳細は後述
する。
ここで再び第7図のキーボード処理の説明にも
どる。ステツプKB7でNOであれば、ステツプ
KB9に移り、オーバライトキーが操作されたか
を判別する。キー操作があれば、ステツプKB10
でオーバライトフランジOWFGを1にセツトし、
(第10図)キー待ちにもどる。もしNOであれ
ば、ステツプKB11に移り、挿入キーが操作され
たかを判別する。
YESであれば、挿入キー入力処理を行なう。
即ち、オーバライトフラツグOWFをリセツトし、
(第11図)キー待ちに移る。
NOであれば、ステツプKB13に移り、カーソ
ルキーが操作されたかを判別する。YESであれ
ば、ステツプKB14(第12図)に移り、カーソ
ルCRT画面上順次歩進させる。なおカーソルが
最終行最終桁に来た時、左上の位置に再び戻す。
かかる処理は以下のステツプで行なう。
14.1 カーソルレジスタCRインクリメント 14.2 カーソルレジスタCRの値は128を越える
か? 14.3 カーソルレジスタCRの値を1にする かかる処理が終れば、キー待ちにもどる。もし
NOであれば、ステツプKB15に移る。かかるス
テツプで文字キーが操作されたかを判別し、
YESであれば、ステツプKB16(第13図a)に
移り以下の制御を行なう。
16.1 現カーソルの位置にインデントマーク、左
右マージンマークは存在するか? 16.2 インデントブロツクSAVE処理 16.3 オーバーライトモードか? (オーバーライトフラツグ参照) 16.4 オーバーライト処理 16.5 挿入処理 16.6 インデントブロツクRESTORE処理 上述の各ステツプは以下の内容を行なつてい
る。
16.1 文字キー入力処理はカーソルがインデント
ブロツク内に存在している時のみ有効とする。
即ち、インデントマーク及び左右マージンマー
クの位置にカーソルがある時は本処理は無処理
とする。
16.2 入力処理はすべてワークバツフアWB内で
行うためカーソルが存在するインデントブロツ
ク内情報をすべてワークバツフアWB内に移
す。(但し処理はすべてカーソルが存在する行
より後とする。又その際ワークバツフアWBの
HEADER部に各種パラメータを設定してお
く。
16.3〜16.4 オーバーライトモードであるならワ
ークバツフアWB内でオーバーライト処理を行
う。
16.5 挿入モードであるならワークバツフアWB
内で挿入処理を行う。
16.6 文字入力処理を終了したワークバツフア
WB内の情報をもとにインデントブロツクにも
どす。
上述の処理をさらに説明する。
第13図bは文字のオーバーライトの例であ
る。1.6.0で示す図をデータバツフアDBuF内の初
期状態とする。ここでは紙面の都合で横8桁、縦
4行のデータバツフアDBuFが表示装置CRTに
表示されている様子を示している。16.2のステツ
プを実行したのが16.2で示すデータバツフア
DBuFとワークバツフアWBの様子である。デー
タバツフアDBuF内のデータは、ワークバツフア
WBに移されている。次にステツプ16.4によるオ
ーバーライト処理により、ワークバツフアWB内
でのオーバーライト処理が行なわれる。16.2と
16.4で示すワークバツフアWB内の違いは文字C
の後ろに文字Dが加わつたことワークバツフア
WBの第1W(DATA LENGTH)がインクリメ
ントされたこと、ワークバツフアWBの第4W(カ
ーソルアドレス)がインクリメントされたことで
ある。ステツプ16.4ではワークバツフアWBに蓄
えられた情報が欠落なく該当インデントブロツク
にすべてもどせるか否かを判断する。この場合
16.0で示すインデントブロツクの容量が
2characterでありワークバツフアWBに蓄えられ
ている情報量はカーソルが移動したために
3characterに増加している。そのためインデント
ブロツクを縦方向に拡大し、ワークバツフアWB
内の情報がすべて格納できるようにしたのが16.4
で示すデータバツフアDBuFの様子である。ステ
ツプ16.6では、拡大されたインデントブロツクに
オーバーライト処理後のワークバツフアWBの情
報をすべてもどすことを行う。16.6で示す図がそ
の様子を示している。
上述の処理に於いてステツプ16.2のインデント
ブロツクセーブ処理について第14図aを用いて
さらに説明する。かかるステツプは以下の事を行
なう。
16.2.1 ワークバツフアWBのデータ格納エリア
をすべてスペースコードでうめる。
16.2.2 カーソルが存在するインデントブロツク
内のカーソルが存在する行以降のデータバツフ
アDBuFの内容を、ワークバツフアWBに移
す。(但し、キヤリツジリターンコードに続く
スペースコードは除く) 16.2.3 該インデントブロツクをすべてスペース
コードで埋める。
16.2.4 ワークバツフアWBのHEADER部に下記
のパラメータを記入する。
1 ワークバツフアWBに書き込んだデータの
長さ。
但しカーソルが存在する位置までは必ず含
めるものとする。
2 該インデントブロツクの横巾 3 該インデントブロツクの縦巾(インデント
ブロツクの行数) 4 カーツルレジスタに対応するワークバツフ
ア内のアドレス 5 該インデントブロツクの先頭のデータバツ
フアDB上での桁ナンバー 6 該インデントブロツクの先頭のデータバツ
フアDB上での行ナンバー 7 データ行数(縦巾から最後に連続して続く
スペース行数を除く) 上述の各ステツプは以下の目的を有する。
16.2.1 ワークバツフアWBをスペースコードで
イニシヤライズする。
16.2.2 インデントブロツク内の情報をワークバ
ツフアWBに移す。
16.2.3 移し終わつた後のインデントブロツクは
すべてスペースコードで埋める。
16.2.4 該インデントブロツクの特徴をすべてワ
ークバツフアWBのHEADER部に記入してお
く。このHEADER部のパラメータは各種処理
においてワークバツフアWBの内容に変更を加
えた時に、同時に変更され又、ワークバツフア
WBの内容をデータバツフアDBuFに戻す時に
役立つものである。
上述のステツプ16.2.2はさらに次のステツプに
分かれる。(不図示) 16.2.2.1. カーソルが存在するインデントブロツ
クの範囲を認識する。(認識は下記のようにし
て行う。現カーソルが存在している行を本処理
におけるインデントブロツクの先頭行とする。
現カーソルをはさむ現カーソルに最も近いイン
デントマークあるいは左右マージンマークをさ
がし、それを該インデントブロツクの横方向範
囲とする。第1行目の横方向範囲が段差なく縦
方向(行方向)に続くまでを該インデントブロ
ツクの縦方向の範囲とする。以上のようにして
該インデントブロツクの形状を認識する。イン
デントブロツクの範囲の認識は後述するインデ
ントブロツクを扱う処理において、そのたびに
利用するが、そこでの説明は省略する。) 16.2.2.2 ステツプ16.2.2.1で認識されたインデン
トブロツク内の情報をワークバツフアWBに移
す。
第14図bは、本処理における例を示すもので
ある。16.2.4においてワークバツフアにセーブす
るパラメータは次の通り。
第1W データの長さ ワークバツフアに書き込んだデータの長さ。
但し、キヤリツジリターンコードに続くスペー
スコードは除く。又該インデントブロツクの最
後に続く、スペースコードも除く。又カーソル
が存在している位置は例えばそこにスペースコ
ードが存在していても、スペースコード以外の
コードがそこに存在していると見なすものでと
する。
第2W 横巾 該インデントブロツクの横巾 第3W 縦巾 該インデントブロツクの縦巾 第4W カーソル 現カーソルが示すDATAがワークバツフア
WBに格納されている位置を示す。最小値1で
あり最大値は第1Wと同じ値となる。
第5W 該インデントブロツクの先頭桁。
該インデントブロツクが存在するデータバツ
フアDBuF上の位置を規定する。該インデント
ブロツクの先頭文字がデータバツフアDBuFの
何桁目に存在しているかを示す。
第6W 該インデントブロツクの先頭桁 該インデントブロツクが存在するデータバツ
フアDBuF上の位置を規定する。該インデント
ブロツクの先頭文字がデータバツフアDBuFの
何行目に存在しているかを示す。
第7W データ行 インデントブロツク内で、最後に連続し続く
スペース行を除いた縦巾。
但しカーソルが存在している位置に、スペー
スコードが存在していても該位置は文字コード
が存在していると同等と見なす。最小値は1、
最大値は第3Wと同じ値となる。
またステツプ16.4のオーバライト処理(第15
図)の制御手順を以下に示す。
16.4.1 ワークがバツフアWB第4W(カーソル)
の示すワークバツフアWB内DATA位置にオー
バーライトすべきDATAをオーバーライトし、
ワークバツフアWBの第4W(カーソル)の値を
更新する。
16.4.2 ワークバツフアWB第4W(カーソル)の
値は、ワークバツフアWBの第1W(DATA
LENGTH)より大きいか? 16.4.3 ワークバツフアWBの第1W(DATA
LENGTH)の値をワークバツフアWBの第4W
(カーソル)の値に置き換ける。
上述の各ステツプをさらに説明する。
16.4.1 ワークバツフアWBの該当位置にデータ
を書き込む。又カーソルを進ませるためにワー
クバツフアWBの第4Wの値を更新する。
16.4.2〜16.4.3 カーソル位置がワークバツフア
WBの第1Wのデータレングスより大きい場合
には、カーソルの値即ちワークバツフアWBの
第4Wの値をワークバツフアWBの第1Wに移
す。即ちカーソルの位置のスペースもデータに
含めてデータレングスを決定するものとする。
前述のステツプ16.5の詳細を第16図を参照し
さらに説明する。
かかるステツプはワークバツフアWBの第4W
(カーソル)の示すワークバツフアWB内のデー
タ位置に挿入すべきデータを挿入し、ワークバツ
フアの第1W(DATA LENGTH)、第4W(カーソ
ル)の値を更新(+1)する。
かかるステツプによりワークバツフアWB内で
挿入処理を行ない、ワークバツフアWBの第1W
(DATA LENGTH)と第4W(カーソル)との値
をインクリメントする。
次に第13図aに示すインデントブロツク再記
憶処理(リストア処理)16.6をさらに説明する。
第17図はそれを示す図である。
16.6.1 横巾をワークバツフアWBの第2Wの値と
した時のワークバツフアWBの第1Wで指定さ
れたDATA量のDATAを格納するのに必要な
行数を求め、それを新DATA行数とする。途
中CRコードが存在した時は改行による行数増
加を考慮しなければならない。(新DATA行数
レジスタNDRに新DATA行数をセーブする。) 16.6.2 新DATA行数はワークバツフアWB第3W
(縦巾)より大きいか? 16.6.3 インデントブロツク拡大処理 16.6.4 新データ行数レジスタNDRの新DATA
行数は、ワークバツフアWBの第7W(DATA行
数)より小さいか? 16.6.5 インデントブロツク縮小処理 16.6.6 データバツフアDBuF書込み処理 上述のステツプ16.6.1〜16.6.5についてさらに
説明する。
16.6.1 ワークバツフアのHEADER部を参照し
てワークバツフアWB内データをデータバツフ
アDBuFに格納するに必要な行数を求める。
行数を求めるにあたつてはワークバツフア
WBの第2Wに格納されているインデントブロ
ツク横巾の値を参照する。
又キアリジリターンCRコードが存在した時
は改行による行数増加を考慮する。
16.6.2〜16.6.3 求めた行数ともとのインデント
ブロツク縦巾とを比較して、その行数が縦巾を
越える時はインデントブロツクの縦方向の拡大
を行つて、データエリアを確保する。
16.6.4〜16.6.5 求めた行数ともとのデータの行
数(もとのインデントブロツクの縦巾でなく、
縦巾から最下行に連続して続くスペース行の数
を差し引いたもの)とを比較し、その行数がも
とのデータ行数を下回る時、その分だけインデ
ントブロツクの縦方向の縮小処理を行う。
16.6.6 新しく作り直したインデンブロツクにワ
ークバツフアの内容を移す。その際ワークバツ
フアのHEADER部のパラメータを参照するこ
とにより行う。
上述のステツプ16.6.3のインデントブロツク拡
大処理についてさらに第18図aを用いて説明す
る。
16.6.3.1 行挿入処理 16.6.3.2 SPACE行移動処理 16.6.3.3 〔新DATA行数−ワークバツフア第3W
(縦巾)〕の大きさの分だけ繰り返したか? のステツプ制御を行なう。各ステツプの目的は以
下に示す。
16.6.3.1 カーソルが存在している行にいわるゆ
る行挿入を行なう。この際挿入される行
DATAは左マージンマーク、右マージンマー
クはもちろん伴なつているが、1つ上の行と全
く同じようにインデントマークがセツトされて
いるものとする。他はスペースコードが生まつ
ているものとする。
16.6.3.2 行挿入の結果、今まで連続して続いて
いた文字列が切断され、文章としてのつながり
が保てなくなる。そこでインデント単位に挿入
された行以降のデータを1行ずつくり上げるこ
とを行う。
16.6.3.3 インデントブロツクを拡大する行数分
だけステツプ16.6.3.1と16.6.3.2をくり返す。
上述の処理によるデータの配列を第18図bに
示す。
第18図bは、インデントブロツク拡大処理の
例である。16.6.3.1で示す図では、行挿入が行な
われた様子が示されており又16.6.3.2で示す図で
はインデント単位に挿入されたスペース行を下に
ずらした様子が示されている。16.6.3.2の図でわ
かるように、結果として、スペース行は、各イン
デントごとに、ばらばらの位置に配されることに
なり、一行にまとまることはなくなる。この結果
各インデントブロツク単位に文章を連続性が保た
れた形でインデントブロツクの拡大が行なわれ
る。
前述のステツプ16.6.3.1の行挿入処理について
さらに第19図aを用いて説明する。かかる処理
は以下の各ステツプから成る。
16.6.3.1.1 データバツフア内でカーソルが存在
する行以降すべての行を1行下げ新しく発生し
た行にスペースコードをうめる。
16.6.3.1.1 新しく発生した行に、前行の左マジ
ンコード、インデントコード、右マージンコー
ドを、同じ位置にコピーする。
上述のステツプにより現カーソルが示す位置に
スペースコードだけから成る行を挿入し、然る後
左マージンマーク、右マージンマーク、インデン
トマークを前行と全く同じ位置に記入する。
前述のステツプ16.6.3.2のスペース行移動処理
についてさらに説明する。かかる処理は第20図
aに示す各ステツプを行なう。
16.6.3.2.1 カーソルが存在する行の最左端のイ
ンデントブロツクを捜す。
16.6.3.2.2 インデントブロツクは存在したか。
16.6.3.2.3 該インデントブロツクの先頭にカー
ソル移動(カーソルの移動は横方向のみ) 16.6.3.2.4 該インデントブロツクのカーソルが
存在している行はすべてスペースコードか?
(インデントブロツク単位で調べる) 16.6.3.2.5 該インデントブロツク内でカーソル
が存在している行を削除して、すべて1行繰り
上げる。該インデントブロツクの最後まで実行
し、最下行はスペースコードで埋める。
16.6.3.2.6 右方へ次のインデントブロツクを捜
す。
上述のステツプを実行することにより例えばス
テツプ16.6.3.2.1、16.6.3.2.2、16.6.3.2.6によりイ
ンデントブロツクごとに左方から順に処理を実行
し、すべてのインデントブロツクに対して処理が
終了するまで続ける。
ステツプ16.6.3.2.3〜16.6.3.2.5により各インデ
ントブロツク単位でスペース行を、各インデント
ブロツクの最下行に移動させる。この処理はイン
デントブロツク単位で実行するため、最下行に移
動したSPACE行の位置はインデントブロツクご
とに異る。第20b図に例を示す。
前述のステツプ16.6.5のインデントブロツク縮
小処理の詳細を第21図に示す。かくステツプに
ついて説明する。
16.6.5.1 該インデントブロツクの最終行に左マ
ージンマーク、右マージンマーク、スペースコ
ード、インデントコード以外のものが存在する
か?(全体で調べる) 16.6.5.2 該インデントブロツクの最終行を削除
し、それ以降に続くDATAをすべて、1行分
につめる。(インデントブロツク単位でない) 16.6.5.3 データバツフアDBuFの最終行に対応
する位置にすべてスペースコードを埋める。
16.6.5.4 データバツフアの最終行に左マージン
コード、右マージンコードを埋める。
16.6.5.5 〔ワークバツフア第7W(DATA行数)−
新DATA行数〕の大きさの分だけ繰り返した
か? 上述のステツプ16.6.5.1〜16.6.5.5を実行して以
下の目的を実現する。
16.6.5.1 該インデントブロツクの最終行におい
て、隣接するインデントブロツクも含めて、す
べて、左マージンコード、右マージンコード、
インデントマーク、スペースコード以外のもの
が存在していなかつたら、次のステツプに進
む。
16.6.5.216.6.5.1 でチエツクした行を削除し、後
続する行を上へくり上げる。
(インデントブロツク単位でなく、左右マージ
ンを含めて実行するものとする) 16.6.5.3〜16.6.5.4 最終業に対応するデータバツ
フアの位置、左右マージンコード、とスペース
コードを埋める。
16.6.5.5 縮小の必要なだけ縮小を繰り返す。
前述のステツプ16.6.6のデータバツフア書き込
み処理について第22図を参照して説明する。
16.6.6.1 ワークバツフアWBのHEADER部パラ
メータに従つてワークバツフア内DATAをデ
ータバツフアに移す。(但し途中にCRコードが
存在した場合改行を行う)インデントブロツク
をオーバーした分は捨てさる。
16.6.6.2 ワークバツフアの第4W(カーソル)に
対応するDATA BUFFER内アドレスをカー
ソルレジスタに記入する。(但し、その値が128
を越える時は1とする) 上述のステツプ16.6.6.1〜16.6.6.2を実行し、以
下のことを行なう。
16.6.6.1 ワークバツフアの内容をデータバツフ
アに移す。
移すべきデータの長さは第1Wに移すべきイ
ンデントブロツクの横巾は第2Wに 移すべきインデントブロツクのデータバツフ
アDBuF内位置は第5W、第6Wに示される。第
5Wは、桁番号で第6Wに行番号であり、この位
置該インデントブロツクの先頭文字が来ること
になる。
16.6.6.2 カーソルレジスタへカーソルアドレス
を書き込むワークバツフアWB第4Wにカーソ
ルの存在すべきアドレスが記入されている。こ
の値を実際のデータバツフア上でのアドレスに
変換し、カーソルレジスタCRに記入する。
上述の処理が終了すると第7図に示すステツプ
KB16の文字処理が終了しキー待ちにもどる。も
しNOであれば、ステツプKB17に移り、該ステ
ツプKB17で削除キーの操作があつたかを判別す
る。YESであれば、第23図aに示す削除キー
入力処理制御を行なう。各ステツプの内容は以下
の通りである。
18.1 現カーソル位置にインデントマークは存在
するか? 18.2 現カーソル位置に対応するアドレスの内容
をスペースコードに変更する。
18.3 インデントブロツクセーブ処理(16.2) 18.4 削除処理 18.5 インデントブロツクリストア処理(16.6) <注> この処理はカーソルが左右マージン上に
有す時は機能しないものとする。
上述のステツプにより以下の事を実行する。
18.1 カーソルがインデントマーク上にある時は
ステツプ18.2カーソルがインデントマーク上に
ない時はステツプ18.3へ進む。
18.2 カーソルが存在する位置のコードをスペー
スコードに変更する。
18.3 該インデントブロツクのワークバツフアへ
のセーブを行う(16.2) 18.4 ワークバツフア上で削除処理を行う。
18.5 削除処理されたワークバツフアWBの内容
をデータバツフアDBuFに戻す。
第23図bは上述の削除キー入力処理の例であ
る。各処理に対応して処理のステツプ番号が付さ
れている。18.3のインデントブロツクセーブ処理
と18.5のインデントブロツクリストア処理につい
てはそれぞれステツプ16.2、16.6で述べた。18.4
がワークバツフアWB上での削除処理である。
かかる削除処理は第24図に示す如く3ステツ
プより成り各ステツプを以下に示す。
18.4.1 ワークバツフアWB第4W(カーソル)の
示す内DATAを削除する。(即ち該位置以降に
存在するDATAをすべて1つずつ前につめる。
18.4.2 ワークバツフアWB第4W(カーソル)の
値と第1W(DATA LENGTH)の値とは等し
いか? 18.4.3 ワークバツフアWB第1W(DATA
LENGTH)を1減ずる。
上述の各ステツプにより以下を事を行なう。
18.4.1 ワークバツフアWB第4Wの示すワークバ
ツフアWB内のデータを削除し後続するデータ
をすべて前へつめる。
18.4.2〜18.4.3 削除処理においてはカーソルの
位置は移動しないものとする。従つてワークバ
ツフアWB第1W(DATA LENGTH)の値を、
ワークバツフア第4W(カーソル)の値より小さ
くならない範囲で1を減ずるものとする。
上述の処理が終了すれば、キー待ちに移り、
NOであれば、ステツプKB19に移る。ステツプ
KB19でインデント右移動キーとを判別する。も
しYESであれば、第25図aに詳細を示すイン
デント右移動キー入力処理を行う。
20.1 現カーソル位置をセーブする。
20.2 現カーソルは、インデントコードの位置に
あるか? 20.3 インデントブロツクセーブ処理(162) 20.4 インデントブロツク横縮小処理 20.5 現カーソルよりさらに左方に別のインデン
トコードが存在し、かつ、現カーソルより左方
に隣接してインデントブロツクが二つの存在す
るか否かを調べる。
(インデントブロツクを認識する方法はステツ
プ16.2.2.1に説明した通りである。) 20.6 (ステツプ20.5で認識した二つのインデン
トブロツクの内右側は拡大する方のインデント
ブロツクであり、左側は、拡大を受けるインデ
ントブロツクである。)このステツプでは、拡
大するインデントブロツクの縦方向(行方向)
の大きさと拡大を受けるインデントブロツクの
縦方向(行方向)の大きさとを比較し、前者が
後者より小さいかあるいは等しいかを調べる。
又拡大を受けるインデントブロツクに有効デー
タが存在していないことを調べる。両方とも成
立するならばステツプ20.7に進む。否ならリタ
ーンする。(なお縦方向の大きさを比較するに
あたつては、各インデントブロツクの行数を調
べ、かつ、その行数を比較することにより行
う。)又拡大を受けるインデントブロツク内に
有効データが有るか否かを調べるにはステツプ
20.5で認識した拡大を受ける方のインデントブ
ロツク内の情報を先頭から末尾まで1文字ず
つ、有効情報(スペースコード以外の情報)で
あるか否かを判断し、1つでも有効情報が存在
したなら、該インデントブロツクに有効データ
が存在したと判断する。(なお本実施例ではス
ペースコード以外のデータと判断したが、他の
コード例えばデータがそこには存在しないこと
を示すコード以外のコードをすべて有効データ
と判断しても良い。本出願人が既に出願を行な
つている文字処理装置(特願昭54−139556号)
における白紙コードもその一例である。) 20.7 現カーソルを第2のインデントブロツクの
最左端に移す。
20.8 インデントブロツクセーブ処理(16.2) 20.9 インデントブロツク横拡大処理 20.10 インデントブロツクリストア処理(16.6) 20.11 現カーソル位置をセーブしておいたカー
ソル位置にもどす。
<注> インデントキー左移動キー力処理22は上
記説明で左と右をすべて逆にしたものと同じで
ある。
<注> 本処理はカーソルが左右マージン上にな
いものとする。
上述の各ステツプの目的は以下の通りである。
20.1 現カーソルの位置をカーソル位置セーブレ
ジスタにセーブする。
20.2 カーソルが文字上にある時はステツプ20.3
へカーソルがインデント上にある時はステツプ
20.5に進む。
20.3 インデントブロツクをSAVEする(16.2) 20.4 ワークバツフア上でインデントブロツクの
縮小処理を行う。ステツプ20.10へ進む。
20.5、20.6 カーソルが存在する位置より左側に
インデントブロツクが二つ存在し、かつカーソ
ルのすぐ左隣のインデントブロツクの縦巾がさ
らに左のインデントブロツクの縦巾より小さく
(等しくても良い)かつカーソルから1つ置い
て左隣のインデントブロツク内の情報の中に有
効データが存在しない時ステツプ20.7に進む。
(換言するならば、拡大するインデントブロツ
クの縦サイズより拡大を受けるインデントブロ
ツクの縦巾の方が大きく(等しくても良い)拡
大を受けるインデントブロツク内に有効データ
が存在しなければステツプ20.7に進む。) 20.7 2つのインデントブロツクの左側のインデ
ントブロツクの先頭文字の位置にカーソルを移
動する。
20.8 インデントブロツクセーブ処理(16.2) 20.9 ワークバツフア内でインデントブロツクの
拡大処理を行う。
20.10 インデントブロツクのリストア処理
(16.6) 20.11 カーソル位置セーブレジスタCSRにセブ
しておいたカーソル位置アドレスをカーソルレ
ジスタCRにもどす。
第25図bはカーソルが文字の上にある時の例
である。この場合インデント右移動キーにつて、
インデントブロツクは横方向に縮小される。20.4
で示す図がワークバツフアWBを使用してインデ
ントブロツクの縮小を行つたところの例である。
第25図cはカーソルがインデント上にある時
の例である。この場合インデント右移動キーによ
つてインデントブロツクは横方向に拡大される。
20.9で示す図がワークバツフアWBを使用してイ
ンデントブロツク拡大処理を行つた例である。
上述のステツプ20.4をさらに説明すると、第2
6図に示す如くステツプから成る。
20.4.1 現カーソルが存在しているインデントブ
ロツクを、現カーソルが存在している位置にイ
ンデントコードを縦方向に書き込むことによ
り、縦方向に2等分する。
20.4.2 現カーソルの位置を右方向に1つずら
す。
20.4.3 ワークバツフアWB第2W(横巾)に新し
く出来た現カーソルが存在するインデントブロ
ツクの横巾を記入する。
20.4.4 ワークバツフアWB第4W(カーソル)の
値を1に変更する。
20.4.5 ワークバツフアWB第5W(インデントブ
ロツク先頭桁)を新しく出来たインデントブロ
ツクの先頭桁番号に変更する。
<注> インデント左移動22.4の記述の内右を左
と変更する。
上述の各ステツプについてさらに説明する。
20.4.1 まずデータバツフアの該インデントブロ
ツクを2等分することで縮小されたインデント
ブロツクの作成を行う。(縦方向に2等分した
インデントブロツクの右側に今までそこにあつ
た情報が押し込められることになる。) 20.4.2 現カーソルを右方向へ1つずらす。その
位置が新しいインデントブロツクの先頭文字の
位置になる。
20.4.3〜20.4.5 ワークバツブアWBのHEADER
部のパラメータを新しいインデントブロツクの
パラメータに置き換える。
上述のステツプ20.9のインデントブロツク横拡
大処理について第27図を参照して説明する。
20.9.1 カーソルが存在しているインデントブロ
ツクの右側端を決定しているインデントマーク
をすべてスペースマークに変更する。
20.9.2 ワークバツフアWB第2W(横巾)に新し
く拡大したインデントブロツクの横巾を記入す
る。
のステツプから成り、かくステツプは以下のこと
を行なう。
20.9.1 まずデータバツフアのインデントブロツ
クにおいて右側端のインデントマークを取り除
くことで、インデントブロツクの拡大を行う。
20.9.21 ワークバツフアWB第2W(横巾)の値を
変更する。
上述の処理が終了すれば、キー待ちに移る。も
しNOであれば、ステツプKB21のインデント左
キーを判別する処理に移る。該ステツプでYES
ならば、ステツプKB22の入力処理に移る。
かかる処理は第25図aにおいて、図の説明文
中の右と左とを入れ換え、かつ数字20を22に置き
換えたものと同等である。
またインデントブロツク横縮小処理は巾第26
図において図の説明文中の右と左とを入れ換え、
かつ数20を22に置き換えたものと同等である。
さらにインデントブロツク横拡大処理について
述べる。
かかる処理は第28図に示すステツプから成
り、かくステツプについて説明する。
22.9.1 カーソルが存在しているインデントブロ
ツクの左側端を決定しているインデントマーク
をすべてスペースマークに変更する。
22.9.2 ワークバツフアWB第2W(横巾)に新し
く拡大したインデントブロツクの横巾を記入す
る。
22.9.3 ワークバツフアWB第5W(該インデント
ブロツク先頭桁)を、新しく拡大したインデン
トブロツクの先頭桁に変更する。
上記各ステツプは以下の目的を実行する。
22.9.1 まずデータバツフアにおける該インデン
トブロツクの左側端のインデントマークを取除
くことによりインデントブロツクの拡大を行
う。
22.9.2、22.9.3 ワークバツフアWB第2W(横巾)、
ワークバツフアWB第5W(先頭桁)を新しいイ
ンデントブロツクに対応する値に変更する。
上述の処理が終了すれば、キー待ちに移り、
NOであれば、ステツプKB23に移る。ステツプ
KB23はインデント罫線変換キーかの判別ステツ
プである。かかるステツプKB23でYESとなれ
ば、ステツプ24のインデント罫線変換キー入力処
理に移る。第29図aはその詳細を示すフローで
ある。各ステツプの内容を以下に示す。
24.1 カーソル位置セーブレジスタGSRに現カー
ソル位置即ちカーソルレジスタCRに対応する
値をセーブする。
24.2 現カーソルが存在する1行手前の行までデ
ータバツフアの内容を順にすべてワークバツフ
アWBに移す。
24.3 現カーソルが存在する行のデータバツフア
の内容を変換テーブル第3図dを参照し、イン
デントコードを罫線コードに変換しながらワー
クバツフアWBに移す。
(変換テーブルを参照するにあたつては、変換し
ようとしているインデントコードの上下左右に隣
接してそ剤する文字コードあるいはインデントコ
ードの状態により異なることに注意しなければな
らない。具体的な対応は、第3図dに示す通りで
ある。
但し、上に隣接して存在するコードをチエツク
する時は注意しなければならない。即ち周辺状況
をチエツクする範囲は最初にカーソルが存在した
行以降に限るものとする。なお最初にカーソルが
存在した行は、カーソル位置セーブレジスタ
CSRにセーブされている。) 24.4 カーソルレジスタの値に1行分の文字数の
値を加える。
24.5 カーソルレジスタの値が128を超えるなら
ステツプ24.7に進む、否ならステツプ24.6に進
む。
24.6 現カーソルが存在する行にインデントコー
ドが存在するならばステツプ24.3に進む、否な
らステツプ24.7に進む。
24.7 データバツフアDBの内容でまだワークバ
ツフアWBに移していないデータがあつたらす
べて順にワークバツフアに移す。
24.8 ワークバツフアに蓄えたデータをすべて順
にデータバツフアDBに戻す。
24.9 カーソル位置セーブレジスタに蓄えられた
カーソル位置の情報に対応する値をカーソルレ
ジスタCRに蓄える。
第29図bは、インデント罫線変換の例であ
る。
上述の処理が終了したら、キー待ちにもどる。
もしNOであれば、ステツプKB25に移る。ステ
ツプKB25に於いて罫線インデント変換キーが操
作されたかを判別する。もしYESであれば、ス
テツプKB26に移り、第30図に示す処理を行な
う。
26.1 現カーソルが存在する行以降の罫線コード
をすべてインデントコードに変更する。
上述のステツプによりデータバツフア内におい
て現カーソルが存在する行以降をすべて罫線コー
ドからインデントコードへの変更を行う。
罫線コードは、第3図bに示すように11種のコ
ード(B1〜B11)であるが、インデントコー
ドは1種のコード(α3)であり、一義的にイン
デントコードを定めることができるため容易に変
換を行うことができる。
上述の処理が終了すれば、キー待ちとなる。も
しNOであれば、ステツプKB27に移る。ステツ
プKB27で、イニシヤライズキーが操作されたか
を判別する。YESであればイニシヤライズ処理
を行なう。第30図はそのフローを示す。
1 データバツフアにすべてスペースコードを埋
める。
2 データバツフアの左右マーシン位置に相当す
る場所に左マージンコード、右マージンコード
を埋める。
上述のステツプによりデータバツフアに初期値
を設定することにより、CRT上に表示される文
字列のイニシヤライズを行う。これにより左右マ
ージンがCRT上に表示され残りはすべてスペー
スが表示される。すべての入力はまずこのINT
キーを押すことにより始めることができる。
上述の処理が終了すれば、キー待ちとなる。も
しNOであれば、ステツプKB29に移る。ステツ
プKB29はプリントキーが操作されたかを判別す
る。もしYESであれば、第32図に示すプリン
トキー処理のステツプKB30に移る。かかるステ
ツプは以下の処理を行なう。
データバツフアの内容をプリンタに出力する。
上述の処理によりデータバツフアの内容をすべ
てプリントアウトする。縦横プリントの機能をも
つているとなお望ましい。
上述の処理が終了すればキー待ちとなる。もし
NOであればステツプKB31に移る。ステツプ
KB31はバツクスペースキーBSが操作されたか否
かを判別する。もしYESであれば第36図aに
示すバツクスペースキー処理のステツプKB32に
移る。かかるステツプは以下の処理を行う。
32.1 カーソルレジスタCRをデクリメントする。
32.2 カーソルレジスタCRは0以下であるなら
ステツプ32.3に進む。否なら32.4に進む。
32.3 カーソルレジスタCRに128をセツトする。
リターンする。
32.4 カーソルが存在している位置に対応するデ
ータバツフア内データの内容が、右マージンコ
ードであるならばリターンする否ならステツプ
32.5に進む。
32.5 カーソルが存在している位置に対応するデ
ータバツフアの内容が、左マージンコード、イ
ンデントコードのいずれでもなければリターン
する。否ならステツプ32.6に進む。
32.6 カーソルが第1行目に存在しているならリ
ターンする。否ならステツプ32.7に進む。
32.7 カーソルレジスタの値から1行分の文字数
の値(本実施例では16)を減じる。このことに
よりカーソルを1行上に上げる。
32.8 カーソルレジスタの値をインクリメントし
カーソルを1つ右にずらす。
32.9 カーソルが存在している位置に対応するデ
ータバツフアの内容がインデントコード又は右
マージンコードであるならステツプ32.10に進
む。否ならステツプ32.8に進む。
32.10 カーソルレジスタの値を1減じることに
よりカーソルを左方に1つずらす。
各ステツプの意味をさらに述べる。
32.1 カーソルを左シクトするためにカーソルレ
ジスタCRから1減じる。
32.2、32.3 もしカーソルレジスタの値が0以下
であるならカーソルがデータバツフア枠内をは
み出すことになるので、データバツフアの末尾
にカーソルがくるようにする。
32.4 もしカーソルが右マージン位置に来たとす
るなら、そのまま処理を終了する。
32.5 カーソル位置のデータがインデントコード
あるいは左マージンコードでないなら処理を終
了する。
32.6 カーソルが1行目に存在していたならその
上の行はもはや存在しないので処理を終了す
る。
32.7〜32.10 今やカーソルが存在している前の
行における該当インデントブロツクの末尾にカ
ーソルを移動させる。
以上の処理を終了するとキー待ちになるが、も
しNOであるならやはりキー待ちにもどる。
1 本実施例においては、文字列の途中に出現す
るスペースコードは有効データ見なし文字列の
最後に連続して続くスペースコードは無効デー
タあるという解釈により、文字処理を実行し
た。しかしながら、スペースコードを含む文字
コードをすべて有効データとして文字処理を行
なつてもよい。
又他の例として無効データを表現する特殊コ
ードを新たに設け、そのコード以外はすべて有
効コードであると判断し、文字処理を行つても
良い。又この特殊コードを本実施例で説明した
スペースコードと同じ役割をはたすようにさせ
ても良い。
2 本実施例においては、インデントブロツクの
横方向の拡大を行うにあたつて次の二つのこと
を条件とした。即ち一つは拡大するインデント
ブロツクの縦方向の大きさと拡大を受けるイン
デントブロツクの縦方向の大きさとを比較し、
前者の大きさが後者の大きさより小さいか又は
等しいことである。他の一つは拡大を受けるイ
ンデトブロツク内に有効データが存在していな
いことである。この後者の条件を次のように緩
和しても本発明の主旨を損ねるものではない。
即ち拡大を受けるインデントブロツクの上か
ら特定行数だけ有効データが存在しなければ良
いものとする。ここで特定行数とは拡大するイ
ンデントブロツクの縦巾の行数分のことであ
る。
3 本実施例においては、インデントブロツクの
領域定義を有効データがそこに存在している時
も存在していない時も同一と見なした。しかし
ながら本実施例で説明したインデントブロツク
の内、有効データが存在している行あるいはカ
ーソルが存在している行が連続して続く範囲の
みをインデントブロツクと考えても本発明の主
旨を損ねるものではない。
〔効果〕
本発明の目的は表示画面上の位置を指示するカ
ーソル領域の内外に係わらず、後退させることが
でき、或は領域内で1文字分づつ後退させること
ができ、前記領域内で1文字分づつカーソルを後
退させた場合、カーソルが前記領域内の行頭から
前記領域内の前記行の前の行の行末にカーソルを
移動させることができる文字処理装置を提供する
ことが可能となつた。
【図面の簡単な説明】
第1図は本発明による1実施例を示すブロツク
図、第2図a,b,cはインデントブロツクを説
明する図、第3図a,b,c,dはインデントマ
ークと罫線パターンの変換を説明する図、第4図
a,b,cは枠組の変更を説明する図、第5図
a,b,cは枠組の変更を説明する図、第6図
a,bは枠組の変更を説明する図、第7図はキー
処理を示す制御手順を示す図、第8図はキヤリツ
ジリターン処理を示す図、第9図はインデント入
力処理を示す図、第10図はオーバライトキー入
力処理を示す図、第11図は挿入キー入力処理を
示す図、第12図はカーソルキー入力処理を示す
図、第13図aは文字キー入力処理を示す図、第
13図bは文字のオーバライト処理を示す図、第
14図aはインデントブロツクセーブ処理を示す
図、第14b図はデータの流れを示す図、第15
図はオーバライト処理を示す図、第16図は挿入
処理を示す図、第17図はインデントブロツクリ
ストア処理を示す図、第18図aはインデントブ
ロツク拡大処理を示す図、第18図bはデータの
流れを示す図、第19図aは行挿入処理を示す
図、第19図bはデータの流れを示す図、第20
図aはスペース行移動処理を示す図、第20図b
はデータの流れを示す図、第21図はインデント
ブロツク縮小処理を示す図、第22図aはデータ
バツフア書き込み処理を示す図、第22図bはデ
ータの流れを示す図、第23図aは削除キー入力
処理を示す図、第23図bは文字の削除のデータ
の流れを示す図、第24図は削除処理を示す図、
第25図aはインデント右移動キー入力処理を示
す図、第25図bはデータの流れを示す図、第2
5図cはデータの流れを示す図、第26図はイン
デントブロツク横縮小処理を示す図、第27図は
インデントブロツク横拡大処理を示す図、第28
図はインデントブロツク横拡大処理を示す図、第
29図aはインデント罫線変換キー入力処理を示
す図、第29図bはデータの流れを示す図、第3
0図aは罫線インデント変換キー入力処理を示す
図、第30図bはデータの流れを示す図、第31
図はイニシヤライズ処理を示す図、第32図はプ
リントキー入力処理を示す図である。第33図
a,b,cはインデントブロツクの縮小を示す
図、第34図a,b,c,dはインデント罫線切
換えを示す図である。第35図a,bはインデン
トブロツクの拡大を示す図である。第36図aは
バツクスペースキー処理の手順を示す図、第36
図bはバツクススペース処理を説明する図であ
る。 KB……キーボード、ROM……制御メモリ、
RAM……メモリ、WB……ワークバツフア、
DBuF……データバツフア、CR……カーソルレ
ジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 文字を表示する表示画面上に所望の領域を設
    定する領域設定手段、 前記表示画面上の位置を指示するカーソルを、
    前記領域の内外に係わらず、一文字分づつ前進さ
    せることを指示する第1指示手段、 前記カーソルを前記領域設定手段によつて設定
    される領域内で一文字分づつ後退させることを指
    示する第2指示手段、 前記第1指示手段或いは前記第2指示手段から
    の指示に基づいて、前記カーソルを前記表示画面
    上で一文字づつ前進或いは後退させることを制御
    し、前記カーソルが前記領域内の行頭に存在し、
    かつ、前記第2指示手段からの指示がある場合
    は、前記第2指示手段からの指示に応じて、前記
    領域内の前記行頭から、前記領域内においてその
    行より前の行の行末の表示位置に、前記カーソル
    を位置づけることを制御する表示制御手段とを有
    したことを特徴とする文字処理装置。
JP56010710A 1981-01-27 1981-01-27 Character processing device Granted JPS57125479A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56010710A JPS57125479A (en) 1981-01-27 1981-01-27 Character processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56010710A JPS57125479A (en) 1981-01-27 1981-01-27 Character processing device

Publications (2)

Publication Number Publication Date
JPS57125479A JPS57125479A (en) 1982-08-04
JPH0427585B2 true JPH0427585B2 (ja) 1992-05-12

Family

ID=11757855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56010710A Granted JPS57125479A (en) 1981-01-27 1981-01-27 Character processing device

Country Status (1)

Country Link
JP (1) JPS57125479A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4832440A (ja) * 1971-08-31 1973-04-28
JPS4834694A (ja) * 1971-09-07 1973-05-21

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4832440A (ja) * 1971-08-31 1973-04-28
JPS4834694A (ja) * 1971-09-07 1973-05-21

Also Published As

Publication number Publication date
JPS57125479A (en) 1982-08-04

Similar Documents

Publication Publication Date Title
JPH0143338B2 (ja)
JPS645344B2 (ja)
JPH0254588B2 (ja)
US5276792A (en) Word processor permitting modification of a preset frame
JPH0324701B2 (ja)
JPH0427585B2 (ja)
JPH0143339B2 (ja)
JPH0361198B2 (ja)
JPH0427586B2 (ja)
JPH0361197B2 (ja)
JPH0254589B2 (ja)
JPH0254590B2 (ja)
JPS6026235B2 (ja) 図表デ−タの保護方法
JPS59104693A (ja) 文字縮小レイアウト表示方法
KR100238814B1 (ko) 데이터처리장치 및 데이터처리방법
JPS58129676A (ja) 文字処理装置
JPH04218866A (ja) 文書処理装置
JPH04218865A (ja) 文字処理方法
JPH05250352A (ja) 文字処理方法
JPH038065A (ja) 文字処理装置
JPS63233465A (ja) 数式記号の入力表示方式
JP2698348B2 (ja) 文字処理装置
JP2572039B2 (ja) 文字処理装置
JPS59180620A (ja) 文書作成装置
JPH0330054A (ja) 文書処理装置