@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).
@insertcopying
@end titlepage
-@ifnottex
+@ifinfo
@node Top, About, (dir), (dir)
-@end ifnottex
@menu
-* About::
-* Install::
-* Usage::
-* Command Manual::
-* CASL2LIB Manual::
+* 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
+* About:: YACASL2の概要
+* Install:: YACASL2のインストール
+* Usage:: YACASL2の使い方
+* Command Manual:: YACASL2コマンドマニュアル
+* CASL2LIB Manual:: CASL2LIBマニュアル
@end menu
@contents
+@end ifnotinfo
@node About, Install, Top, Top
@chapter YACASL2の概要
実行時のメモリの内容
@end itemize
-出力された動作内容は、GNU/Linuxのさまざまなツール、たとえば@kbd{cat}、@kbd{less}、@kbd{grep}、@kbd{wc}などを使って解析できます。
+出力された動作内容は、GNU/Linuxのさまざまなツール、たとえば、@kbd{cat} @kbd{less} @kbd{grep} @kbd{wc}などを使って解析できます。
YACASL2の操作は、端末を開いてコマンドを入力・実行することで行います。
@itemize @bullet
@item
-Ubuntu Linux 10.10
+Ubuntu Linux 10.04
@item
Vine Linux 5.2
Mac OS X 10.6.5
@end itemize
-インストール時に、@kbd{tar}、@kbd{gcc}、@kbd{make}が必要です。Linuxの場合は、標準でインストールされていることが多いと思います。Mac OS Xの場合、@code{Xcode}をインストールしてください。
+インストール時に、@kbd{tar} @kbd{gcc} @kbd{make}が必要です。Linuxでは多くの場合、標準でインストールされています。Mac OS Xの場合、@code{Xcode}をインストールするといっしょにインストールされます。
@node Install, Usage, About, Top
@chapter YACASL2のインストール
YACASL2をインストールするには、Linux上で次の作業をします。
@menu
-* Download:: YACASL2ファイルのダウンロード
-* Verify:: YACASL2ファイルの検証
-* Expand:: YACASL2ファイルの展開
-* Build:: @kbd{casl2}、@kbd{comet2}、@kbd{dumpword}のビルド
-* Simple Test:: @kbd{casl2}の実行テスト
-* Detail Test:: 詳細なテスト
-* Environment:: 環境変数の設定
+* 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ファイルのダウンロード
-次の場所から最新版の@file{tar.gz}ファイルをダウンロードします。
-@iftex
-@cartouche
-@end iftex
-@quotation
-@uref{http://github.com/j8takagi/YACASL2, GitHub/j8takagi/YACASL2}の@uref{http://github.com/j8takagi/YACASL2/downloads, ダウンロードページ}
-@end quotation
-@iftex
-@end cartouche
-@end iftex
-
-続けて、対応する@file{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
@end example
@node Build, Simple Test, Expand, Install
-@section @kbd{casl2}、@kbd{comet2}、@kbd{dumpword}のビルド
+@section @kbd{casl2} @kbd{comet2} @kbd{dumpword}のビルド
-展開したら、次のコマンドで@kbd{casl2}、@kbd{comet2}、@kbd{dumpword}をビルドします。
+展開したら、次のコマンドで@kbd{casl2} @kbd{comet2} @kbd{dumpword}をビルドします。
@example
$ @kbd{cd yacasl2}
@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
@node Environment, , Detail Test, Install
@section 環境変数の設定
-環境変数を設定することで、YACASL2が使いやすくなります。環境変数の設定は、シェルの初期設定ファイルに追加することでログインしたあと自動的に反映されます。
-するときは、
-環境変数@code{PATH}にYACASL2のディレクトリを追加すると、どのディレクトリでも@kbd{casl2}、@kbd{comet2}、@kbd{dumpword}を実行できます。また、
-
-
+環境変数@code{PATH}や@code{CASL2LIB}を設定することで、YACASL2が使いやすくなります。環境変数は、使っているシェルを確認してから設定します。
@unnumberedsubsec シェルの確認
/bin/bash
@end example
-ç\8f¾å\9c¨ã\82\82ã\81£ã\81¨ã\82\82å¤\9aã\81\8f使ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\82·ã\82§ã\83«ã\81¯ã\80\81BASHã\81§ã\81\97ã\82\87ã\81\86ã\80\82以ä¸\8bã\80\81BASHã\81§ã\81®è¨å®\9aæ\96¹æ³\95ã\82\92è¨\98è¼\89します。
+ç\8f¾å\9c¨ã\82\82ã\81£ã\81¨ã\82\82å¤\9aã\81\8f使ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\82·ã\82§ã\83«ã\81¯ã\80\81BASHã\81§ã\81\97ã\82\87ã\81\86ã\80\82以ä¸\8bã\80\81BASHã\81§ã\81®è¨å®\9aæ\96¹æ³\95ã\82\92説æ\98\8eします。
@unnumberedsubsec @code{PATH}にYACASL2のディレクトリを追加
$ @kbd{PATH=$PATH:~/yacasl2 && export PATH}
@end example
-BASHではホームディレクトリにある@file{.bashrc}が初期設定ファイルです。次のコマンドで追加できます。
+環境変数の設定は、シェルの初期設定ファイルに追加することでログインしたあと自動的に反映されるようになります。BASHではホームディレクトリにある@file{.bashrc}が初期設定ファイルです。次のコマンドで追加できます。
@example
$ @kbd{echo ’PATH=$PATH:~/yacasl2 && export PATH’ >>~/.bashrc}
* Register and Memory:: 実行時のレジスタとメモリを表示
* Only Assemble:: アセンブルと実行を別に行う
* Analyze Word:: 1語の解析
-* CASL2lib:: CASL2LIBマニュアル
+* Use CASL2LIB:: CASL2ライブラリの使用
@end menu
@node Simple Output, Assemble Result, Usage, Usage
MAIN START
OUT OBUF,LEN
RET
-OBUF DC ’Hello, World!’
+OBUF DC 'Hello, World!'
LEN DC 13
END
@end example
Hello, World!
@end example
-@node Analyze Word, CASL2lib, Only Assemble, Usage
+@node Analyze Word, Use CASL2LIB, Only Assemble, Usage
@section 1語の解析
CASL IIでは、1語(16ビット)を単位としてデータが処理されます。
#0048: 72 = #0048 = 0000000001001000 = 'H'
@end example
-@node CASL2lib, , Analyze Word, Usage
+@node Use CASL2LIB, , Analyze Word, Usage
@section CASL2ライブラリの使用
YACASL2の@file{as/casl2lib}ディレクトリには、CASL IIで記述されたライブラリファイルが格納されています。
YACASL2のコマンドとオプションについて解説します。
@menu
-* casl2::
-* comet2::
-* dumpword::
+* casl2:: @kbd{casl2}
+* comet2:: @kbd{comet2}
+* dumpword:: @kbd{dumpword}
@end menu
@node casl2, comet2, Command Manual, Command Manual
@item -t
@itemx --trace
@itemx --tracearithmetic
-プログラム実行中のレジスタの値を次の形式で表示します。@code{<値の10進数表現>}は符号の付いた10進数です。範囲は-32768から32767です。
+プログラム実行中のレジスタの値を次の形式で表示します。
@example
-<PR値の16進数表現>: <レジスタ>: <値の10進数表現> = <値の16進数表現> = <値の2進数表現>[ ='文字']
+<PR値の16進数表現>: <レジスタ>: <値の10進数表現> =
+<値の16進数表現> = <値の2進数表現>[ ='文字']
@end example
@itemize
@item
-@code{<PR値の16進数表現>}と@code{<値の16進数表現>}は、先頭に@code{#}が付いた4けたの16進数で表されます。範囲は、@code{#0000}から@code{#FFFF}です
+@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}です
@chapter CASL2LIBマニュアル
@menu
-* ABS::
-* 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, DIVA, CASL2LIB Manual, CASL2LIB Manual
@end example
@example
-$ @kbd{casl2 call_abs.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/outa.casl \
- $CASL2LIBDIR/divl.casl $CASL2LIBDIR/rev.casl}
+$ @kbd{casl2 call_abs.casl $CASL2LIB/abs.casl $CASL2LIB/outa.casl \
+ $CASL2LIB/divl.casl $CASL2LIB/rev.casl}
1
@end example
@end example
@example
-$ @kbd{casl2 call_diva.casl $CASL2LIBDIR/diva.casl $CASL2LIBDIR/divl.casl \
- $CASL2LIBDIR/outa.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/rev.casl}
+$ @kbd{casl2 call_diva.casl $CASL2LIB/diva.casl $CASL2LIB/divl.casl \
+ $CASL2LIB/outa.casl $CASL2LIB/abs.casl $CASL2LIB/rev.casl}
-128
-127
@end example
@end example
@example
-$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \
- $CASL2LIBDIR/rev.casl}
+$ @kbd{casl2 call_divl.casl $CASL2LIB/divl.casl $CASL2LIB/outl.casl \
+ $CASL2LIB/rev.casl}
256
254
@end example
@end itemize
@unnumberedsubsec 使用例
+次のコマンドを実行すると、数値の入力が受け付けられ、入力された数値が表示される。
+
@example
-@verbatiminclude casl2lib/divl/call_divl.casl
+@verbatiminclude casl2lib/inl/call_inl.casl
@end example
@example
-$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \
- $CASL2LIBDIR/rev.casl}
-256
-254
+$ @kbd{casl2 -M1024 call_inl.casl $CASL2LIB/inl.casl $CASL2LIB/str2l.casl $CASL2LIB/mull.casl \
+ $CASL2LIB/outl.casl $CASL2LIB/divl.casl $CASL2LIB/rev.casl}
@end example
@node L2STR, MAX, INL, CASL2LIB Manual
@section @kbd{L2STR} - @file{l2str.casl}
+符号なし整数を文字列に変換する
+
+@unnumberedsubsec 入力
+@table @code
+@item GR1
+符号なし整数
+
+@item GR2
+変換した文字列を格納するアドレス
+@end table
+
+@unnumberedsubsec 出力
+@table @code
+@item GR0
+文字列の長さ
+@end table
+
+@unnumberedsubsec 依存する副プログラム
+@itemize
+@item
+@code{DIVL}
+@end itemize
+
@node MAX, MINIM, L2STR, CASL2LIB Manual
@section @kbd{MAX} - @file{max.casl}
+連続した複数のWORDを符号付き整数とみなして最大値を返す
+
+@unnumberedsubsec 入力
+@table @code
+@item GR1
+WORD値を格納したアドレス
+
+@item GR2
+値の個数
+@end table
+
+@unnumberedsubsec 出力
+@table @code
+@item GR0
+最大値
+@end table
+
+@unnumberedsubsec 依存する副プログラム
+なし
+
@node MINIM, MULA, MAX, CASL2LIB Manual
@section @kbd{MINIM} - @file{minim.casl}
+連続した複数のWORDを符号付き整数とみなして最小値を返す
+
+@unnumberedsubsec 入力
+@table @code
+@item GR1
+WORD値を格納したアドレス
+
+@item GR2
+値の個数
+@end table
+
+@unnumberedsubsec 出力
+@table @code
+@item GR0
+最小値
+@end table
+
+@unnumberedsubsec 依存する副プログラム
+なし
+
@node MULA, MULL, MINIM, CASL2LIB Manual
@section @kbd{MULA} - @file{mula.casl}