● StrCalc DLL - DLL による違い - Ver 3.4 、3.5 の機能
Ver 3.4 、3.5 のメモリ表現方法
Ver 3.4 、3.5 では、メモリを [a] 〜 [z] の 26個で表現しています。また、メモリとは別に、置き換え文字 x 、y もあるので、全部で 28種類のメモリを数値式内に表現することができます。つまり、数値式が一度にアクセスできる範囲が 28 箇所ということになります。
Ver 3.4 や 3.5 の DLL が使用される場合、28 個を 1 ページとし、ページ単位でメモリにアクセスする方法を用います。ページの指定は、数値式の先頭でコマンドを用います。
書式:
# ページ番号(数値式) ; 実際に計算させる数値式
例.
#1;[a] + 1
# [t] + 1 ; [b] + [c]
# 3 ; x * 2 + y
ゼロから始まるページ番号をシャープ # とセミコロン ; の間に入れます。実際に計算させる数値式はセミコロン以降に記述します。半角の空白、タブ文字は自由に入れることができます。
なお、ページゼロ( #0; )は、コマンドを記述しなくてもアクセスできます。

例えば、メモリ [29] の内容を3倍したい場合は、次のように記述します。
#1; [b] * 3
メモリ [23] 、[24] の内容を加算したい場合は、
#0; [x] + [y]
と記述します。メモリ [27] まではページゼロなので、次のようにコマンドを省いた形で記述してもかまいません。
[x] + [y]
メモリを使用する関数も、ページ指定の影響を受けます。
#1;sum(3)
この場合、ページ1の [a] 〜 [c] ([28] 〜 [30])の内容の合計を計算します。
最後のページのメモリ数がページ単位に満たない場合、余りを [a] から割り振り、残りの部分にはゼロで埋められた仮のメモリを割り当てます。上記の例では、[0] 〜 [30] の 31個、メモリが確保されていますので、ページ1には、メモリ数 31 個 ÷ 1ページ分 28 個 の余り 3個に対し、それぞれ [a] 、[b] 、[c] が割り当てられます。
ページ1の [d] 〜 [z] と x 、y については仮メモリが割り当てられているので、数値式で使用しても動作上の問題はありません。
- コマンドは一つの数値式に対し一つだけしか記述できません。コマンドを用いていても、一度にアクセスできる範囲は、連続した 28 個である、という事に変わりありません。
ページを超えてメモリにアクセスしたい場合は、メモリ内容の参照・編集ウインドウを使って、Ver 3.4 、3.5 がアクセスできる範囲まで内容を移動する必要があります。
- コマンド内に記述するページ数(数値式)にエラーがある場合、どのような理由によるものであっても、メモリ表現の誤りを返します。
- コマンド内のページ数指定でもメモリを使用する事ができますが、そのメモリはページゼロの内容が使用されます(コマンド内でコマンド指定はできない)。
- メモリ [a] 〜 [z] 、x 、y 自体をメモリのインデックスとして使用する事はできません。これは Ver 3.4 、3.5 の仕様です。
これらの規則は Ver 3.4 、3.5 の DLL が使用される場合に限り、SCalc 内の全ての数値式で適用されます。