表示スペース

表示スペースは、セッション・ウィンドウでの行とカラムの各位置の エレメントを含む (ただし、オペレーター情報域に使用されるセッション・ ウィンドウの最後の行を含まない) データ構造です。表示スペースのサイズは、 セッション・ウィンドウのサイズによって異なります。例えば、セッション・ウィンドウに 24 の行と 80 のカラムが ある場合は、表示スペースのサイズは 24 * 80 = 1920 です。

表示スペースでのエレメントの位置は、セッション・ウィンドウでの 行とカラムの位置に直列的に (左から右、上から下) 対応します。例えば、セッション・ウィンドウに 80 の行と 25 の カラムがある場合は、行とカラムの位置は、図 1 で示すようになります
図 1. 表示スペースでの行と列の位置の対応
     Row of    Column of  Corresponds to
     Session   Session    element at this
     Window:   Window:    position in PS:
         1          1             1
         1          2             2
         1          3             3
      ...
         1         80            80
         2          1            81
         2          2            82
         2          3            83
      ...
        24         79          1919
        24         80          1920
Host On-Demand は、表示スペースを使用して、セッション・ウィンドウで 表示される文字を格納します。表示スペースの各エレメントを使用して、 文字 (および輝度などのその文字に関する情報) を格納します。例えば、セッション・ウィンドウの行 1 列 1 に文字列 Message が表示される場合、その位置に対応する行と列は 図 2 で示すようになります
図 2. 「Message」が行 1 と列 1 に表示される場合のレイアウト
     Row of    Column of  Corresponds    Character
     Session   Session    to element     stored in
     Window:   Window:    at this pos-   this element:
                          ition in PS:
         1          1          1          M
         1          2          2          e
         1          3          3          s
         1          4          4          s
         1          5          5          a
         1          6          6          g
         1          7          7          e
通常は使用する必要はありませんが、表 1 は、 さまざまな値を計算するための公式を示します。これらの公式で使用される 記号の意味は、次のとおりです。
  • row - セッション・ウィンドウの行の位置
  • col - セッション・ウィンドウの列の位置
  • pos - 表示スペース内での位置
  • NUMROWS - セッション・ウィンドウの行数。オペレーター情報域 (OIA) に使用される最後の行は含まれていません
  • NUMCOLS - セッション・ウィンドウの列数。
表 1. 表示スペースに関連する値を計算するための公式
値: 計算のための公式
Size of the PS
 NUMROWS * NUMCOLS

    Example:
    24 * 80 = 1920
row
 (pos + NUMCOLS - 1) / NUMCOLS

    Example:
    (81 + 80 - 1) / 80 = 2 
col
 pos - ((row - 1) * NUMCOLS)

    Example:
    1920 - ((24 - 1) * 80) = 80
pos
 ((row - 1) * NUMCOLS) + col

    Example:
    ((24 - 1) * 80) + 1 = 1641