ドキュメントの更新
[YACASL2.git] / doc / yacasl2.texi
index 28f3c7f..6a756d6 100644 (file)
@@ -5,17 +5,18 @@
 @end ifnottex
 @setfilename yacasl2.info
 @documentencoding UTF-8
-@settitle YACASL2 - Linux上のCASL II処理系
-@firstparagraphindent none
+@settitle YACASL2 - CASL II処理システム
+@firstparagraphindent insert
 @paragraphindent 1
+@ifhtml
+@exampleindent 0
+@end ifhtml
 @c %**end of header
 
 @copying
-Copyright @copyright{} 2010 j8takagi
+Copyright @copyright{} 2010-2011 j8takagi
 @end copying
 
-@exampleindent 2
-
 @dircategory Basics
 @direntry
 * YACASL2: (yacasl2).
@@ -23,29 +24,104 @@ Copyright @copyright{} 2010 j8takagi
 
 @titlepage
 @title YACASL2
-@subtitle Linux上のCASL II処理系
+@subtitle UNIX/Linuxのコマンドラインインターフェイスで動作するCASL II処理システム
 @author j8takagi
 @insertcopying
 @end titlepage
 
-@ifnottex
-@node Top
-@end ifnottex
+@ifinfo
+@node Top, About, (dir), (dir)
+
+@menu
+* About::                       YACASL2の概要
+* Install::                     YACASL2のインストール
+* Usage::                       YACASL2の使い方
+* Command Manual::              YACASL2コマンドマニュアル
+* CASL2LIB Manual::             CASL2LIBマニュアル
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+
+
+* About::                       YACASL2の概要
+* Install::                     YACASL2のインストール
+* Usage::                       YACASL2の使い方
+* Command Manual::              YACASL2コマンドマニュアル
+* CASL2LIB Manual::             CASL2LIBマニュアル
+
+YACASL2のインストール
+
+* Download::                    YACASL2ファイルのダウンロード
+* Verify::                      YACASL2ファイルの検証
+* Expand::                      YACASL2ファイルの展開
+* Build::                       @kbd{casl2}、@kbd{comet2}、@kbd{dumpword}のビルド
+* Simple Test::                 @kbd{casl2}の実行テスト
+* Detail Test::                 詳細なテスト
+* Environment::                 環境変数の設定
+
+YACASL2の使い方
+
+* Simple Output::               実行結果の出力だけを表示
+* Assemble Result::             アセンブル結果の確認
+* Register and Memory::         実行時のレジスタとメモリを表示
+* Only Assemble::               アセンブルと実行を別に行う
+* Analyze Word::                1語の解析
+* Use CASL2LIB::                CASL2ライブラリの使用
+
+実行時のレジスタとメモリを表示
+
+* Register Specify::            特定のレジスタを表示
+* Ending Value::                プログラム終了時の値を表示
+* Step Count::                  プログラムのステップ数を表示
+
+YACASL2コマンドマニュアル
+
+* casl2::                       @kbd{casl2}
+* comet2::                      @kbd{comet2}
+* dumpword::                    @kbd{dumpword}
+
+CASL2LIBマニュアル
+
+* ABS::                         @kbd{ABS} - @file{abs.casl}
+* DIVA::                        @kbd{DIVA} - @file{diva.casl}
+* DIVL::                        @kbd{DIVL} - @file{divl.casl}
+* INL::                         @kbd{INL} - @file{inl.casl}
+* L2STR::                       @kbd{L2STR} - @file{l2str.casl}
+* MAX::                         @kbd{MAX} - @file{max.casl}
+* MINIM::                       @kbd{MINIM} - @file{minim.casl}
+* MULA::                        @kbd{MULA} - @file{mula.casl}
+* MULL::                        @kbd{MULL} - @file{mull.casl}
+* OUTA::                        @kbd{OUTA} - @file{outa.casl}
+* OUTB::                        @kbd{OUTB} - @file{outb.casl}
+* OUTD_Q15::                    @kbd{OUTD_Q15} - @file{outd_q15.casl}
+* OUTL::                        @kbd{OUTL} - @file{outl.casl}
+* REV::                         @kbd{REV} - @file{rev.casl}
+* STR2L::                       @kbd{STR2L} - @file{str2l.casl}
+
+@end detailmenu
+@end menu
+
+@end ifinfo
+
+@ifnotinfo
+@node Top, About
 
 @menu
-* YACASL2の概要::
-* YACASL2のインストール::
-* YACASL2の使い方::
-* YACASL2コマンドマニュアル::
-* CASL2LIBマニュアル::
+* About::                       YACASL2の概要
+* Install::                     YACASL2のインストール
+* Usage::                       YACASL2の使い方
+* Command Manual::              YACASL2コマンドマニュアル
+* CASL2LIB Manual::             CASL2LIBマニュアル
 @end menu
 
 @contents
+@end ifnotinfo
 
-@node YACASL2の概要, YACASL2のインストール, Top, Top
+@node About, Install, Top, Top
 @chapter YACASL2の概要
 
-YACASL2は、Linux上で動作するオープンソースのCASL II処理系です。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。
+YACASL2は、UNIX/Linuxのコマンドラインインターフェイスで動作するオープンソースのCASL II処理システムです。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。
 
 @iftex
 @cartouche
@@ -78,65 +154,57 @@ YACASL2は、「ふつうの処理系」として動作します。ほかの多
 実行時のメモリの内容
 @end itemize
 
-出力された動作内容は、GNU/Linuxのさまざまなツール、たとえば@kbd{cat}、@kbd{less}、@kbd{grep}、@kbd{wc}などを使って解析できます。
+出力された動作内容は、GNU/Linuxのさまざまなツール、たとえば、@kbd{cat} @kbd{less} @kbd{grep} @kbd{wc}などを使って解析できます。
 
 YACASL2の操作は、端末を開いてコマンドを入力・実行することで行います。
 
 @unnumberedsec 要件
-YACASL2は、Linux上で動作します。現在動作を確認しているのは、次のディストリビューションです。
+YACASL2は、LinuxやMac OS Xなど、UNIX系のOS上で動作します。現在動作を確認しているのは、次の環境です。
 
 @itemize @bullet
 
 @item
-Ubuntu Linux 9.04 / 8.04
+Ubuntu Linux 10.04
 
 @item
-Vine Linux 4.2
+Vine Linux 5.2
+
+@item
+Mac OS X 10.6.5
 @end itemize
 
-インストール時に、@kbd{tar}、@kbd{gcc}、@kbd{make}が必要です。
+インストール時に、@kbd{tar} @kbd{gcc} @kbd{make}が必要です。Linuxでは多くの場合、標準でインストールされています。Mac OS Xの場合、@code{Xcode}をインストールするといっしょにインストールされます。
 
-@node YACASL2のインストール, YACASL2の使い方, YACASL2の概要, Top
+@node Install, Usage, About, Top
 @chapter YACASL2のインストール
 YACASL2をインストールするには、Linux上で次の作業をします。
 
-@enumerate
-
-@item
-YACASL2ファイルのダウンロード
-
-@item
-YACASL2ファイルの検証
-
-@item
-YACASL2ファイルの展開
-
-@item
-@kbd{casl2}、@kbd{comet2}、@kbd{dumpword}のビルド
-
-@item
-@kbd{casl2}の実行テスト
-
-@item
-詳細なテスト
-
-@item
-環境変数@code{PATH}の設定
-@end enumerate
+@menu
+* Download::                    YACASL2ファイルのダウンロード
+* Verify::                      YACASL2ファイルの検証
+* Expand::                      YACASL2ファイルの展開
+* Build::                       @kbd{casl2} @kbd{comet2} @kbd{dumpword}のビルド
+* Simple Test::                 @kbd{casl2}の実行テスト
+* Detail Test::                 詳細なテスト
+* Environment::                 環境変数の設定
+@end menu
 
+@node Download, Verify, Install, Install
 @section YACASL2ファイルのダウンロード
-@uref{http://github.com/j8takagi/YACASL2, GitHub/j8takagi/YACASL2}の@uref{http://github.com/j8takagi/YACASL2/downloads, ダウンロードページ}から最新版のtgzファイルをダウンロードします(2010年3月6日現在、@code{v0.1}の@file{j8takagi-YACASL2-6323ce4.tar.gz})。
 
-続けて、対応する@file{md5sum}ファイルをダウンロードします(2010年3月6日現在、@file{j8takagi-YACASL2-6323ce4.tar.gz.md5sum})
+@uref{http://www.j8takagi.net/yacasl2/, YACASL2のサイト}または@uref{http://github.com/j8takagi/YACASL2/downloads/, githubのダウンロードページ}から最新版の@file{tar.gz}ファイルをダウンロードします
 
+@node Verify, Expand, Download, Install
 @section YACASL2ファイルの検証
+
 ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
 
 @example
-$ @kbd{md5sum yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum -}
+$ @kbd{openssl md5sum yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum -}
 Files yacasl2.tar.gz.md5sum and - are identical
 @end example
 
+@node Expand, Build, Verify, Install
 @section YACASL2ファイルの展開
 
 YACASL2ファイルをダウンロードしたら、次のコマンドで展開します。
@@ -145,9 +213,10 @@ YACASL2ファイルをダウンロードしたら、次のコマンドで展開
 $ @kbd{tar xvzf yacasl2.tar.gz}
 @end example
 
-@section @kbd{casl2}、@kbd{comet2}、@kbd{dumpword}のビルド
+@node Build, Simple Test, Expand, Install
+@section @kbd{casl2} @kbd{comet2} @kbd{dumpword}のビルド
 
-展開したら、次のコマンドで@kbd{casl2}、@kbd{comet2}、@kbd{dumpword}をビルドします。
+展開したら、次のコマンドで@kbd{casl2} @kbd{comet2} @kbd{dumpword}をビルドします。
 
 @example
 $ @kbd{cd yacasl2}
@@ -176,6 +245,7 @@ gcc -g -Wall -I ../include -o ../dumpword dumpword.o word.o cerr.o
 make[1]: Leaving directory ‘/home/kazubito/yacasl2/src’
 @end example
 
+@node Simple Test, Detail Test, Build, Install
 @section @kbd{casl2}の実行テスト
 
 ビルドしたら、次のコマンドが正常に実行できるかを確認します。
@@ -186,26 +256,30 @@ $ @kbd{./casl2 as/hello.casl}
 Hello, World!
 @end example
 
+@node Detail Test, Environment, Simple Test, Install
 @section 詳細なテスト
 
 次のコマンドを実行すると、正常にビルドできているかどうかを詳細にテストできます。
 
 @example
 $ @kbd{make check}
-194 / 194 tests passed. Details in /home/kazubito/yacasl2/test/integra
+195 / 195 tests passed. Details in /home/username/yacasl2/test/integra
 tion/casl2/Test.log
 All tests are succeded.
-149 / 149 tests passed. Details in /home/kazubito/yacasl2/test/integra
+149 / 149 tests passed. Details in /home/username/yacasl2/test/integra
 tion/comet2/Test.log
 All tests are succeded.
-4 / 4 tests passed. Details in /home/kazubito/yacasl2/test/integration
+4 / 4 tests passed. Details in /home/username/yacasl2/test/integration
 /dumpword/Test.log
 All tests are succeded.
 @end example
 
-@section 環境変数@code{PATH}の設定
+@node Environment,  , Detail Test, Install
+@section 環境変数の設定
+
+環境変数@code{PATH}や@code{CASL2LIB}を設定することで、YACASL2が使いやすくなります。環境変数は、使っているシェルを確認してから設定します。
 
-環境変数@code{PATH}にYACASL2のディレクトリを追加すると、どのディレクトリでも@kbd{casl2}、@kbd{comet2}、@kbd{dumpword}を実行できます。
+@unnumberedsubsec シェルの確認
 
 環境変数の設定方法は使っているシェルによって異なります。シェルは、次のコマンドで確認できます。
 
@@ -214,22 +288,53 @@ $ @kbd{echo $SHELL}
 /bin/bash
 @end example
 
-現在もっとも多く使われているシェルは、BASHでしょう。BASHでは、次のコマンドを実行すると環境変数@code{PATH}にYACASL2のディレクトリが追加されます。
+現在もっとも多く使われているシェルは、BASHでしょう。以下、BASHでの設定方法を説明します。
+
+@unnumberedsubsec @code{PATH}にYACASL2のディレクトリを追加
+
+@code{PATH}にYACASL2のディレクトリを追加すると、どのディレクトリでもディレクトリを指定せずに@kbd{casl2}、@kbd{comet2}、@kbd{dumpword}を実行できます。YACASL2をホームディレクトリ@code{~}にインストールしたときは、次のコマンドで設定できます。
 
 @example
 $ @kbd{PATH=$PATH:~/yacasl2 && export PATH}
 @end example
 
-シェルの初期設定ファイルに上記のコマンドを追加すれば、今後ログインした後は自動的にどのディレクトリでも @kbd{casl2}、@kbd{comet2}、@kbd{dumpword}を実行できます。BASHではホームディレクトリにある@file{.bashrc}が初期設定ファイルのため、次のコマンドで追加されます。
+環境変数の設定は、シェルの初期設定ファイルに追加することでログインしたあと自動的に反映されるようになります。BASHではホームディレクトリにある@file{.bashrc}が初期設定ファイルです。次のコマンドで追加できます。
 
 @example
 $ @kbd{echo ’PATH=$PATH:~/yacasl2 && export PATH’ >>~/.bashrc}
 @end example
 
-@node YACASL2の使い方, YACASL2コマンドマニュアル, YACASL2のインストール, Top
-@chapter YACASL2 の使い方
+
+@unnumberedsubsec @code{CASL2LIB}の設定
+
+環境変数@code{CASL2LIB}を設定しておけば、後述するCASL2LIBを利用するときの手間が小さくなります。YACASL2をホームディレクトリ@code{~}にインストールしたときは、次のコマンドで設定できます。
+
+@example
+$ @kbd{CASL2LIB=~/yacasl2/as/casl2lib && export CASL2LIB}
+@end example
+
+BASHの初期設定ファイル@file{.bashrc}には、次のコマンドで追加できます。
+
+@example
+$ @kbd{ echo 'CASL2LIB=~/yacasl2/as/casl2lib && export CASL2LIB' >>~/.bashrc}
+@end example
+
+
+@node Usage, Command Manual, Install, Top
+@chapter YACASL2の使い方
 YACASL2 は、テキストファイルに記述されたCASLプログラムを処理します。以下の例で用いられるCASLプログラムのファイルは、テキストエディタなどで作成してください。また、インストールしたディレクトリの中にある@file{as}ディレクトリからコピーして作成することもできます。
 
+
+@menu
+* Simple Output::               実行結果の出力だけを表示
+* Assemble Result::             アセンブル結果の確認
+* Register and Memory::         実行時のレジスタとメモリを表示
+* Only Assemble::               アセンブルと実行を別に行う
+* Analyze Word::                1語の解析
+* Use CASL2LIB::                CASL2ライブラリの使用
+@end menu
+
+@node Simple Output, Assemble Result, Usage, Usage
 @section 実行結果の出力だけを表示
 
 インストール時にコマンド実行の確認に使った@file{hello.casl}は、次のような内容です。CASL IIのマクロ命令OUTは、文字列を出力します。
@@ -239,7 +344,7 @@ $ @kbd{cat hello.casl}
 MAIN     START
          OUT     OBUF,LEN
          RET
-OBUF     DC      ’Hello, World!’
+OBUF     DC      'Hello, World!'
 LEN      DC      13
          END
 @end example
@@ -274,36 +379,9 @@ $
 
 実行内容を確認するには、後述のようにCPU 内にあるレジスタやメモリの内容を表示するか、結果を出力するための処理を追加する必要があります。
 
-@file{sum_10.casl}は、1から10までの整数の和を求めます。
-
-@example
-$ @kbd{cat sum_10.casl}
-;;; sum_10.casl
-;;; 出力 GR0: 1から10までの整数をすべて加算した値
-MAIN    START
-        PUSH    0,GR1
-        LAD     GR0,0           ; GR0を初期化
-        LD      GR1,FST         ; GR1に初項を転送
-LOOP    ADDL    GR0,GR1         ; ループ先頭
-        ADDL    GR1,STEP        ; GR1 <- GR1 + 公差
-        CPL     GR1,LST         ; GR1が末項より大きい場合は終了
-        JPL     FIN             ; ↓
-        JUMP    LOOP            ; ループ終端
-FIN     POP     GR1
-        RET
-FST     DC      1               ; 初項
-LST     DC      10              ; 末項
-STEP    DC      1               ; 公差
-        END
-@end example
-
-このプログラムも、オプションなしで実行した場合には結果が出力されません。
-@example
-$ @kbd{casl2 sum_10.casl}
-$
-@end example
-
+@node Assemble Result, Register and Memory, Simple Output, Usage
 @section アセンブル結果の確認
+
 casl2の処理途中で行われるアセンブルの結果を表示するには、オプション@option{-a}を指定します。また、ラベルとアドレスの対応表を表示するには、オプション@option{-l}を指定します。
 
 次のコマンドでは@file{hello.casl}の、ラベルとアドレスの対応表と、アセンブル結果と、実行結果が表示されます。OUTはアセンブラ命令で複数の機械語命令で構成されているため、命令行1行に対して、複数行のコードが生成されます。
@@ -395,11 +473,19 @@ addl.casl:    8:        END
 
 なお、オプション@option{-A}を指定すると、アセンブル結果が表示される時点で処理が終了します。仮想マシンCOMET II での実行は行われません。
 
+@node Register and Memory, Only Assemble, Assemble Result, Usage
 @section 実行時のレジスタとメモリを表示
+
 YACASL2では実行中のCPUのレジスタとメモリの内容をそれぞれ、@option{-t}と@option{-d}を指定することで表示できます。
 
 また、@option{-M}で、仮想マシンCOMET II のメモリ容量を語(16 ビット)単位で指定できます。小さいプログラムを実行するときは、メモリ容量を小さくすれば結果が見やすくなります。
 
+@menu
+* Register Specify::            特定のレジスタを表示
+* Ending Value::                プログラム終了時の値を表示
+* Step Count::                  プログラムのステップ数を表示
+@end menu
+
 @file{addl.casl}に必要なメモリ容量は8語のため、次のようにCPUのレジスタとメモリの内容を表示できます。
 
 @example
@@ -457,6 +543,7 @@ Executing machine codes
 #0004: 0000: 1010 0005 2210 0006 8100 0003 0001 0000 
 @end example
 
+@node Register Specify, Ending Value, Register and Memory, Register and Memory
 @subsection 特定のレジスタを表示
 
 @file{addl.casl}のレジスタやメモリの中で、実行中に値が変化しているのはGR1だけです。こうした場合は、@kbd{grep}を使って表示される内容を絞り込むことで動作を検証しやすくなります。
@@ -483,20 +570,49 @@ $ @kbd{casl2 -t addl.casl | grep 'GR1:'}
 @tab @code{ADDL GR1,B}
 @end multitable
 
+@node Ending Value, Step Count, Register Specify, Register and Memory
 @subsection プログラム終了時の値を表示
 
 @kbd{grep}と@kbd{tail}を組み合わせれば、プログラム終了時の値を表示できます。
 
+@file{addl.casl}でプログラム終了時の値を確認するには、次のようにします。
+
 @example
 $ @kbd{casl2 -t addl.casl | grep 'GR1:' | tail -1}
 #0004: GR1:      4 = #0004 = 0000000000000100
 @end example
 
+@file{sum_10.casl}は、1から10までの整数の和を求めます。
+
+@example
+$ @kbd{cat sum_10.casl}
+;;; sum_10.casl
+;;; 出力 GR0: 1から10までの整数をすべて加算した値
+MAIN    START
+        PUSH    0,GR1
+        LAD     GR0,0           ; GR0を初期化
+        LD      GR1,FST         ; GR1に初項を転送
+LOOP    ADDL    GR0,GR1         ; ループ先頭
+        ADDL    GR1,STEP        ; GR1 <- GR1 + 公差
+        CPL     GR1,LST         ; GR1が末項より大きい場合は終了
+        JPL     FIN             ; ↓
+        JUMP    LOOP            ; ループ終端
+FIN     POP     GR1
+        RET
+FST     DC      1               ; 初項
+LST     DC      10              ; 末項
+STEP    DC      1               ; 公差
+        END
+@end example
+
+@file{sum_10.casl}でファイル終了時の値を確認するには、次のようにします。
+
 @example
 $ @kbd{casl2 -t sum_10.casl | grep 'GR0:' | tail -1}
 #0010: GR0:     55 = #0037 = 0000000000110111 = '7'
 @end example
 
+@node Step Count,  , Ending Value, Register and Memory
 @subsection プログラムのステップ数を表示
 
 @kbd{grep}と@kbd{wc}を組み合わせれば、プログラムのステップ数を表示できます。
@@ -518,6 +634,7 @@ $ @kbd{casl2 -t sum_10.casl | grep 'GR0:' | wc -l}
 54
 @end example
 
+@node Only Assemble, Analyze Word, Register and Memory, Usage
 @section アセンブルと実行を別に行う
 
 @kbd{casl2}に@option{-O}@file{ファイル名}を指定すると、オブジェクトファイルを作成できます。
@@ -545,6 +662,7 @@ $ @kbd{comet2 hello.o}
 Hello, World!
 @end example
 
+@node Analyze Word, Use CASL2LIB, Only Assemble, Usage
 @section 1語の解析
 
 CASL IIでは、1語(16ビット)を単位としてデータが処理されます。
@@ -555,20 +673,21 @@ $ @kbd{dumpword 72}
     72:     72 = #0048 = 0000000001001000 = 'H'
 @end example
 
-マイナスの数は、次のように指定します。
+マイナスの数は、次のように@kbd{--}を付けて指定します。
 
 @example
 $ @kbd{dumpword -- -72}
    -72:    -72 = #FFB8 = 1111111110111000
 @end example
 
-16進数は、次のように指定します。
+16é\80²æ\95°ã\81¯ã\80\81次ã\81®ã\82\88ã\81\86ã\81«æ¬¡ã\81®ã\82\88ã\81\86ã\81«@kbd{'}ã\81§å\9b²ã\81¿@kbd{#}ã\82\92ä»\98ã\81\91ã\81¦æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82
 
 @example
 $ @kbd{dumpword '#0048'}
  #0048:     72 = #0048 = 0000000001001000 = 'H'
 @end example
 
+@node Use CASL2LIB,  , Analyze Word, Usage
 @section CASL2ライブラリの使用
 
 YACASL2の@file{as/casl2lib}ディレクトリには、CASL IIで記述されたライブラリファイルが格納されています。
@@ -612,7 +731,7 @@ $ @kbd{casl2 addl_outl.casl ~/yacasl2/as/casl2lib/outl.casl}
 4
 @end example
 
-@node YACASL2コマンドマニュアル,CASL2LIBマニュアル,YACASL2の使い方,TOP
+@node Command Manual, CASL2LIB Manual, Usage, Top
 @chapter YACASL2コマンドマニュアル
 
 @cindex YACASL2コマンドマニュアル
@@ -620,12 +739,12 @@ $ @kbd{casl2 addl_outl.casl ~/yacasl2/as/casl2lib/outl.casl}
 YACASL2のコマンドとオプションについて解説します。
 
 @menu
-* casl2::
-* comet2::
-* dumpword::
+* casl2::                       @kbd{casl2}
+* comet2::                      @kbd{comet2}
+* dumpword::                    @kbd{dumpword}
 @end menu
 
-@node casl2
+@node casl2, comet2, Command Manual, Command Manual
 @section @kbd{casl2}
 
 @pindex casl2
@@ -654,36 +773,81 @@ CASLファイルの内容を表示します。
 
 @item -l
 @itemx --label
-ラベルの一覧を表示し、ほかの作業を続行します。
+ラベルの一覧を次の形式で表示します。表示後、ほかの作業を続行します。
+
+@example
+<プログラム名>.<ラベル名> ---> <アドレスの16進数表現>
+@end example
 
 @item -L
 @itemx --labelonly
-ラベルの一覧を表示して終了します。
+@option{-l}と同じ形式でラベルの一覧を表示します。表示後、ほかの作業は続行せず、終了します。
 
 @item -a
 @itemx --assembledetail
 アセンブル詳細結果を表示し、ほかの作業を続行します。
 
 @item -A
-@itemx --show-all
+@itemx --assembledetailonly
 アセンブル詳細結果を表示して終了します。
 
 @item -o<OBJECTFILE>
-@itemx --assembleout
+@itemx --assembleout<OBJECTFILE>
 アセンブル結果をオブジェクトファイル@file{<OBJECTFILE>}に出力し、ほかの作業を続行します。出力されたオブジェクトファイルは、@kbd{comet2}で実行できます。オブジェクトファイルを指定しない場合、出力先は@file{a.o}です。オブジェクトファイルは1つだけ指定できます。
 
-@item -O<OBJECTFILE>
-@itemx --assembleoutonly
+@item -O[<OBJECTFILE>]
+@itemx --assembleoutonly[<OBJECTFILE>]
 アセンブル結果をオブジェクトファイル@file{<OBJECTFILE>}に出力し、終了します。出力されたオブジェクトファイルは、@kbd{comet2}で実行できます。オブジェクトファイルを指定しない場合、出力先は@file{a.o}です。オブジェクトファイルは1つだけ指定できます。
 
 @item -t
 @itemx --trace
 @itemx --tracearithmetic
-実行時のレジスタをトレースします。レジスタには、GR0〜GR7という8個の汎用レジスタと、SP(スタックポインタ)、PR(プログラムレジスタ)、FR(フラグレジスタ)があります。レジストリの内容は、-32,768〜32,767の範囲の整数、#0000〜#FFFFの範囲の16進数、2進数で表示されます。文字の組に該当する場合は、「 = 」のうしろに文字が表示されます。-32768〜32767の範囲の整数を表示するので、算術演算の結果を確認する場合に使えます。
+プログラム実行中のレジスタの値を次の形式で表示します。
+
+@example
+<PR値の16進数表現>: <レジスタ>: <値の10進数表現> =
+<値の16進数表現> = <値の2進数表現>[ ='文字']
+@end example
+
+@itemize
+@item
+@code{<PR値の16進数表現>}と@code{<レジスタ>}、@code{<値の16進数表現>}は、4けたの16進数で表されます。@code{<PR値の16進数表現>}と@code{<値の16進数表現>}には、先頭に@code{#}が付きます。範囲は@code{#0000}から@code{#FFFF}です
+
+@item
+@code{<値の10進数表現>}は符号の付いた10進数です。範囲は-32768から32767です。
+
+@item
+@code{<値の2進数表現>}は、16けたの2進数で表されます。範囲は、@code{0000000000000000}から@code{1111111111111111}です
+
+@item
+@code{[ ='文字']}は、レジストリの値が「文字の組」の範囲に含まれる場合に表示されます。
+@end itemize
+
+表示されるレジスタには、次の種類があります。
+
+@table @code
+@item GR0 GR1 GR2 GR3 GR4 GR5 GR6 GR7
+汎用レジスタ
+
+@item SP
+スタックポインタ
+
+@item PR
+プログラムレジスタ
+
+@item FR
+フラグレジスタ
+@end table
+
+例えば、次のように表示されます。
+
+@example
+#0002: GR1:      3 = #0003 = 0000000000000011
+@end example
 
 @item -T
 @itemx --tracelogical
-@option{-t}ã\81¨å\90\8cã\81\98ã\81\8fã\80\81å®\9fè¡\8cæ\99\82ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\82\92ã\83\88ã\83¬ã\83¼ã\82¹ã\81\97ã\81¾ã\81\99ã\80\82@option{-t}ã\81¨ç\95°ã\81ªã\82\8a\80\9c65,535ã\81®ç¯\84å\9b²ã\81®æ\95´æ\95°ã\82\92表示ã\81\99ã\82\8bã\81®ã\81§ã\80\81è«\96ç\90\86æ¼\94ç®\97ã\81®çµ\90æ\9e\9cã\82\92確èª\8dã\81\99ã\82\8bå ´å\90\88ã\81«ä½¿ã\81\88ã\81¾す。
+@option{-t}ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81«ã\80\81ã\83\97ã\83­ã\82°ã\83©ã\83 å®\9fè¡\8c中ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\81®å\80¤ã\82\92表示ã\81\97ã\81¾ã\81\99ã\80\82ã\81\9fã\81 ã\81\97ã\80\81@option{-t}ã\81¨ç\95°ã\81ªã\82\8aã\80\81@code{<å\80¤ã\81®10é\80²æ\95°è¡¨ç\8f¾>}ã\81¯ç¬¦å\8f·ã\81®ä»\98ã\81\8bã\81ªã\81\8410é\80²æ\95°ã\81§ã\81\99ã\80\82å\80¤ã\81®ç¯\84å\9b²ã\81¯0ã\81\8bã\82\8965535ã\81§す。
 
 @item -d
 @itemx --dump
@@ -691,7 +855,7 @@ CASLファイルの内容を表示します。
 
 @item -M <MEMORYSIZE>
 @itemx --memorysize <MEMORYSIZE>
\82¢ã\82»ã\83³ã\83\96ã\83«ã\81\8aã\82\88ã\81³å®\9fè¡\8cæ\99\82ã\81®ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82º@option{<MEMORYSIZE>}ã\82\92\80\9c65,535ã\81®ç¯\84å\9b²ã\81§æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82æ\8c\87å®\9aã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82ºã\81¯512です。
\82¢ã\82»ã\83³ã\83\96ã\83«ã\81\8aã\82\88ã\81³å®\9fè¡\8cæ\99\82ã\81®ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82º@option{<MEMORYSIZE>}ã\82\92\81\8bã\82\8965535ã\81®ç¯\84å\9b²ã\81§æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82æ\8c\87å®\9aã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81512です。
 
 @item -C <CLOCKS>
 @itemx --clocks <CLOCKS>
@@ -702,7 +866,7 @@ CASLファイルの内容を表示します。
 @kbd{casl2}の使用方法を表示して終了します。
 @end table
 
-@node comet2
+@node comet2, dumpword, casl2, Command Manual
 @section @kbd{comet2}
 
 @pindex comet2
@@ -725,11 +889,48 @@ $ @kbd{comet2 hello.o}
 @item -t
 @itemx --trace
 @itemx --tracearithmetic
-実行時のレジスタをトレースします。レジスタには、GR0〜GR7という8個の汎用レジスタと、SP(スタックポインタ)、PR(プログラムレジスタ)、FR(フラグレジスタ)があります。レジストリの内容は、-32,768〜32,767の範囲の整数、#0000〜#FFFFの範囲の16進数、2進数で表示されます。文字の組に該当する場合は、「 = 」のうしろに文字が表示されます。-32768〜32767の範囲の整数が表示されるので、算術演算の結果を確認する場合に使えます。
+プログラム実行中のレジスタの値を次の形式で表示します。@code{<値の10進数表現>}は符号の付いた10進数です。範囲は-32768から32767です。
+
+@example
+<PR値の16進数表現>: <レジスタ>: <値の10進数表現> = <値の16進数表現> = <値の2進数表現>[ ='文字']
+@end example
+
+@itemize
+@item
+@code{<PR値の16進数表現>}と@code{<値の16進数表現>}は、先頭に@code{#}が付いた4けたの16進数で表されます。範囲は、@code{#0000}から@code{#FFFF}です
+
+@item
+@code{<値の2進数表現>}は、16けたの2進数で表されます。範囲は、@code{0000000000000000}から@code{1111111111111111}です
+
+@item
+@code{[ ='文字']}は、レジストリの値が「文字の組」の範囲に含まれる場合に表示されます。
+@end itemize
+
+例えば、次のように表示されます。
+
+@example
+#0002: GR1:      3 = #0003 = 0000000000000011
+@end example
+
+表示されるレジスタには、次の種類があります。
+
+@table @code
+@item GR0 GR1 GR2 GR3 GR4 GR5 GR6 GR7
+汎用レジスタ
+
+@item SP
+スタックポインタ
+
+@item PR
+プログラムレジスタ
+
+@item FR
+フラグレジスタ
+@end table
 
 @item -T
 @itemx --tracelogical
-@option{-t}ã\81¨å\90\8cã\81\98ã\81\8fã\80\81å®\9fè¡\8cæ\99\82ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\82\92ã\83\88ã\83¬ã\83¼ã\82¹ã\81\97ã\81¾ã\81\99ã\80\82@option{-t}ã\81¨ç\95°ã\81ªã\82\8a\80\9c65,535ã\81®ç¯\84å\9b²ã\81®æ\95´æ\95°ã\82\92表示ã\81\99ã\82\8bã\81®ã\81§ã\80\81è«\96ç\90\86æ¼\94ç®\97ã\81®çµ\90æ\9e\9cã\82\92確èª\8dã\81\99ã\82\8bå ´å\90\88ã\81«ä½¿ã\81\88ã\81¾す。
+@option{-t}ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81«ã\80\81ã\83\97ã\83­ã\82°ã\83©ã\83 å®\9fè¡\8c中ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\81®å\80¤ã\82\92表示ã\81\97ã\81¾ã\81\99ã\80\82ã\81\9fã\81 ã\81\97ã\80\81@option{-t}ã\81¨ç\95°ã\81ªã\82\8aã\80\81@code{<å\80¤ã\81®10é\80²æ\95°è¡¨ç\8f¾>}ã\81¯ç¬¦å\8f·ã\81®ä»\98ã\81\8bã\81ªã\81\8410é\80²æ\95°ã\81§ã\81\99ã\80\82å\80¤ã\81®ç¯\84å\9b²ã\81¯0ã\81\8bã\82\8965535ã\81§す。
 
 @item -d
 @itemx --dump
@@ -737,24 +938,24 @@ $ @kbd{comet2 hello.o}
 
 @item -M <MEMORYSIZE>
 @itemx --memorysize <MEMORYSIZE>
-å®\9fè¡\8cæ\99\82ã\81®ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82º@option{<MEMORYSIZE>}ã\82\92\80\9c65,535ã\81®ç¯\84å\9b²ã\81§æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82æ\8c\87å®\9aã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82ºã\81¯512です。
+å®\9fè¡\8cæ\99\82ã\81®ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82º@option{<MEMORYSIZE>}ã\82\92\81\8bã\82\8965535ã\81®ç¯\84å\9b²ã\81§æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82æ\8c\87å®\9aã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81512です。
 
 @item -C <CLOCKS>
 @itemx --clocks <CLOCKS>
-実行時のクロック周波数@option{<CLOCKS>}を0より大きい整数で指定します。指定しない場合、クロック周波数は5,000,000です。
+実行時のクロック周波数@option{<CLOCKS>}を0より大きい整数で指定します。指定しない場合、5000000です。
 
 @item -h
 @itemx --help
 @kbd{comet2}の使用方法を表示して終了します。
 @end table
 
-@node dumpword
+@node dumpword,  , comet2, Command Manual
 @section @kbd{dumpword}
 
 @pindex dumpword
 @cindex dumpword
 
-@kbd{dumpword}は、引数として指定された数値を、整数、#0000〜#FFFFの範囲の16進数、2進数で表示します。文字の組に該当する場合は、「 = 」のうしろに文字が表示されます。引数は、10進数または先頭に「#」の付いた16進数で指定します。表示される整数は、オプションにより-32,768〜32,767または0〜65,535の範囲です。オプションなしの場合は、-32,768〜32,767です。
+@kbd{dumpword}は、引数として指定された数値を、整数、#0000〜#FFFFの範囲の16進数、2進数で表示します。文字の組に該当する場合は、「 = 」のうしろに文字が表示されます。引数は、10進数または先頭に「#」の付いた16進数で指定します。表示される整数は、オプションにより符号付きか符号なしかを指定します。オプションなしの場合は符号付きです。整数の範囲は、符号付きの場合は-32768から32767、符号なしの場合は0から65535です。
 
 @example
 $ @kbd{dumpword 10}
@@ -781,50 +982,47 @@ $ @kbd{dumpword 10}
 @kbd{dumpword}の使用方法を表示して終了します。
 @end table
 
-@node CASL2LIBマニュアル,,YACASL2コマンドマニュアル,TOP
+@node CASL2LIB Manual,  , Command Manual, Top
 @chapter CASL2LIBマニュアル
 
 @menu
-* ABS::
-* ADDL32::
-* DIVA::
-* DIVL::
-* INL::
-* L2STR::
-* MAX::
-* MINIM::
-* MULA::
-* MULL::
-* OUTA::
-* OUTB::
-* OUTD_Q15::
-* OUTL::
-* REV::
-* STR2L::
+* ABS::                         @kbd{ABS} - @file{abs.casl}
+* DIVA::                        @kbd{DIVA} - @file{diva.casl}
+* DIVL::                        @kbd{DIVL} - @file{divl.casl}
+* INL::                         @kbd{INL} - @file{inl.casl}
+* L2STR::                       @kbd{L2STR} - @file{l2str.casl}
+* MAX::                         @kbd{MAX} - @file{max.casl}
+* MINIM::                       @kbd{MINIM} - @file{minim.casl}
+* MULA::                        @kbd{MULA} - @file{mula.casl}
+* MULL::                        @kbd{MULL} - @file{mull.casl}
+* OUTA::                        @kbd{OUTA} - @file{outa.casl}
+* OUTB::                        @kbd{OUTB} - @file{outb.casl}
+* OUTD_Q15::                    @kbd{OUTD_Q15} - @file{outd_q15.casl}
+* OUTL::                        @kbd{OUTL} - @file{outl.casl}
+* REV::                         @kbd{REV} - @file{rev.casl}
+* STR2L::                       @kbd{STR2L} - @file{str2l.casl}
 @end menu
 
-@node ABS
+@node ABS, DIVA, CASL2LIB Manual, CASL2LIB Manual
 @section @kbd{ABS} - @file{abs.casl}
-å\85¥å\8a\9bã\81\95ã\82\8cã\81\9fæ\95´æ\95°ã\82\92絶対å\80¤ã\81«å¤\89æ\8f\9bã\81\97ã\81¦å\87ºå\8a\9b
+GR1ã\82\92符å\8f·ä»\98ã\81\8dæ\95´æ\95°ã\81¨ã\81¿ã\81ªã\81\97ã\80\81絶対å\80¤ã\81«å¤\89æ\8f\9b
 
 @unnumberedsubsec 入力
-@table @var
-
+@table @code
 @item GR1
--32768〜32767の整数
+符号付き整数
 @end table
 
 @unnumberedsubsec 出力
-@table @var
-
+@table @code
 @item GR1
-入力された整数の絶対値
+入力されたの絶対値
 
 @item OF
-入力されたGR1が-32768の場合、1
+入力されたが-32768の場合、1
 
 @item SF
-入力されたGR1が負数(-32767〜-1)の場合、1
+入力された値が負数(-32767から-1)の場合、1
 @end table
 
 @unnumberedsubsec 依存する副プログラム
@@ -832,60 +1030,79 @@ $ @kbd{dumpword 10}
 
 @unnumberedsubsec 使用例
 @example
-@verbatiminclude ../as/casl2lib/test/abs/abs.casl
+@verbatiminclude casl2lib/abs/call_abs.casl
 @end example
 
 @example
-@verbatiminclude ../as/casl2lib/test/abs/0.txt
+$ @kbd{casl2 call_abs.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/outa.casl \
+  $CASL2LIBDIR/divl.casl $CASL2LIBDIR/rev.casl}
+1
 @end example
 
-@node ADDL32
-@section @kbd{ADDL32} - @file{addl32.casl}
-32ビットの値を、連続する2語の領域に格納
+@node DIVA, DIVL, ABS, CASL2LIB Manual
+@section @kbd{DIVA} - @file{diva.casl}
+符号付き整数の割算を筆算方式で行う
 
 @unnumberedsubsec 入力
-@table @var
+@table @code
 @item GR1
-32ビット値1の先頭アドレス
+被除数
 
 @item GR2
-32ビット値2の先頭アドレス
+除数
 @end table
 
 @unnumberedsubsec 出力
-@table @var
+@table @code
 @item GR0
-和の先頭アドレス
+商
+
+@item GR3
+剰余
 
 @item OF
-上位アドレスでオーバーフローした場合、1
+次の場合、1
+@itemize
+@item
+GR2が0
+
+@item
+GR1が-32768
+
+@item
+GR2が-32768
+@end itemize
 
 @item SF
\92\8cã\81\8cè² æ\95°(-32767ã\80\9c-1)の場合、1
\95\86ã\81\8cè² æ\95°(-32767ã\81\8bã\82\89-1)の場合、1
 
 @item ZF
\92\8cが0の場合、1
\95\86が0の場合、1
 @end table
 
+@unnumberedsubsec 依存する副プログラム
+@itemize
+@item @code{DIVL}
+@end itemize
+
 @unnumberedsubsec 使用例
 @example
-@verbatiminclude ../as/casl2lib/test/addl32/addl32_1.casl
+@verbatiminclude casl2lib/diva/call_diva.casl
 @end example
 
 @example
-4
-9
+$ @kbd{casl2 call_diva.casl $CASL2LIBDIR/diva.casl $CASL2LIBDIR/divl.casl \
+  $CASL2LIBDIR/outa.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/rev.casl}
+-128
+-127
 @end example
 
-@unnumberedsubsec 依存する副プログラム
-なし
-
-@node DIVA
-@section @kbd{DIVA} -@file{diva.casl}
--32,767〜32,767の範囲にある整数の割算(筆算方式)を行う
+@node DIVL, INL, DIVA, CASL2LIB Manual
+@section @kbd{DIVL} - @file{divl.casl}
+符号なし整数の割算を筆算方式で行う
 
 @unnumberedsubsec 入力
-@table @var
+@table @code
 @item GR1
 被除数
 
@@ -894,7 +1111,7 @@ $ @kbd{dumpword 10}
 @end table
 
 @unnumberedsubsec 出力
-@table @var
+@table @code
 @item GR0
 商
 
@@ -902,114 +1119,162 @@ $ @kbd{dumpword 10}
 剰余
 
 @item OF
-除数が0の場合、1
+GR2が0の場合、1
 
 @item SF
-商が負数(-32767〜-1)の場合、1
+商が32768から65535の場合、1
 
 @item ZF
 商が0の場合、1
 @end table
 
+@unnumberedsubsec 依存する副プログラム
+なし
+
+@unnumberedsubsec 使用例
+@example
+@verbatiminclude casl2lib/divl/call_divl.casl
+@end example
+
+@example
+$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \
+  $CASL2LIBDIR/rev.casl}
+256
+254
+@end example
+
+@node INL, L2STR, DIVL, CASL2LIB Manual
+@section @kbd{INL} - @file{inl.casl}
+
+符号なし整数の入力を受け付ける
+
+@unnumberedsubsec 入力
+@table @code
+@item 標準入力
+符号なし整数
+@end table
+
+@unnumberedsubsec 出力
+@table @code
+@item GR1
+入力された符号なし整数
+
+@item GR0
+文字列の長さ。数字以外が入力された場合は@code{#FFFF}
+@end table
+
 @unnumberedsubsec 依存する副プログラム
 @itemize
-@item @kbd{DIVL}
+@item
+@code{STR2L}
 @end itemize
 
-@c @unnumberedsubsec 使用例
-@c @iftex
-@c @cartouche
-@c @end iftex
-@c @example
-@c @verbatiminclude ../as/casl2lib/test/diva/diva.casl
-@c @end example
-@c @iftex
-@c @end cartouche
-@c @end iftex
-
-@c @iftex
-@c @cartouche
-@c @end iftex
-@c @example
-@c @verbatiminclude ../as/casl2lib/test/diva/0.txt
-@c @end example
-@c @iftex
-@c @end cartouche
-@c @end iftex
-
-@node DIVL
-@section @kbd{DIVL} - @file{divl.casl}
-0〜65,535の範囲にある整数の割算(筆算方式)を行う
+@unnumberedsubsec 使用例
+@example
+@verbatiminclude casl2lib/divl/call_divl.casl
+@end example
+
+@example
+$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \
+  $CASL2LIBDIR/rev.casl}
+256
+254
+@end example
+
+@node L2STR, MAX, INL, CASL2LIB Manual
+@section @kbd{L2STR} - @file{l2str.casl}
+
+符号なし整数を文字列に変換する
 
 @unnumberedsubsec 入力
-@table @var
+@table @code
 @item GR1
-被除
+符号なし整
 
 @item GR2
-除数
+変換した文字列を格納するアドレス
 @end table
 
 @unnumberedsubsec 出力
-@table @var
+@table @code
 @item GR0
-商
+文字列の長さ
+@end table
 
-@item GR3
-剰余
+@unnumberedsubsec 依存する副プログラム
+@itemize
+@item
+@code{DIVL}
+@end itemize
 
-@item OF
-除数が0の場合、1
+@node MAX, MINIM, L2STR, CASL2LIB Manual
+@section @kbd{MAX} - @file{max.casl}
 
-@item SF
-商が32,768〜65535の場合、1
+連続した複数のWORDを符号付き整数とみなして最大値を返す
 
-@item ZF
-商が0の場合、1
+@unnumberedsubsec 入力
+@table @code
+@item GR1
+WORD値を格納したアドレス
+
+@item GR2
+値の個数
+@end table
+
+@unnumberedsubsec 出力
+@table @code
+@item GR0
+最大値
 @end table
 
 @unnumberedsubsec 依存する副プログラム
 なし
 
-@unnumberedsubsec 使用例
-@example
-@verbatiminclude ../as/casl2lib/test/divl/divl0/divl0.casl
-@end example
+@node MINIM, MULA, MAX, CASL2LIB Manual
+@section @kbd{MINIM} - @file{minim.casl}
 
-@node INL
-@section @kbd{INL} - @file{inl.casl}
+連続した複数のWORDを符号付き整数とみなして最小値を返す
 
-@node L2STR
-@section @kbd{L2STR} - @file{l2str.casl}
+@unnumberedsubsec 入力
+@table @code
+@item GR1
+WORD値を格納したアドレス
 
-@node MAX
-@section @kbd{MAX} - @file{max.casl}
+@item GR2
+値の個数
+@end table
 
-@node MINIM
-@section @kbd{MINIM} - @file{minim.casl}
+@unnumberedsubsec 出力
+@table @code
+@item GR0
+最小値
+@end table
+
+@unnumberedsubsec 依存する副プログラム
+なし
 
-@node MULA
+@node MULA, MULL, MINIM, CASL2LIB Manual
 @section @kbd{MULA} - @file{mula.casl}
 
-@node MULL
+@node MULL, OUTA, MULA, CASL2LIB Manual
 @section @kbd{MULL} - @file{mull.casl}
 
-@node OUTA
+@node OUTA, OUTB, MULL, CASL2LIB Manual
 @section @kbd{OUTA} - @file{outa.casl}
 
-@node OUTB
+@node OUTB, OUTD_Q15, OUTA, CASL2LIB Manual
 @section @kbd{OUTB} - @file{outb.casl}
 
-@node OUTD_Q15
+@node OUTD_Q15, OUTL, OUTB, CASL2LIB Manual
 @section @kbd{OUTD_Q15} - @file{outd_q15.casl}
 
-@node OUTL
+@node OUTL, REV, OUTD_Q15, CASL2LIB Manual
 @section @kbd{OUTL} - @file{outl.casl}
 
-@node REV
+@node REV, STR2L, OUTL, CASL2LIB Manual
 @section @kbd{REV} - @file{rev.casl}
 
-@node STR2L
+@node STR2L,  , REV, CASL2LIB Manual
 @section @kbd{STR2L} - @file{str2l.casl}
 
 @bye