@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).
@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::
-* 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の概要
-YACASL2は、Linux上で動作するオープンソースのCASL II処理系です。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。
+YACASL2は、UNIX/Linuxのコマンドラインインターフェイスで動作するオープンソースのCASL II処理システムです。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。
@iftex
@cartouche
実行時のメモリの内容
@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 4.2
+Vine Linux 5.2
@item
-Mac OS X 10.6
+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
+@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
#0010: GR0: 55 = #0037 = 0000000000110111 = '7'
@end example
-@node Step Count,, Ending Value, Register and Memory
+@node Step Count, , Ending Value, Register and Memory
@subsection プログラムのステップ数を表示
@kbd{grep}と@kbd{wc}を組み合わせれば、プログラムのステップ数を表示できます。
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で記述されたライブラリファイルが格納されています。
4
@end example
-@node Command Manual,CASL2LIB Manual,Usage,TOP
+@node Command Manual, CASL2LIB Manual, Usage, Top
@chapter YACASL2コマンドマニュアル
@cindex YACASL2コマンドマニュアル
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
@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}です
@kbd{casl2}の使用方法を表示して終了します。
@end table
-@node comet2
+@node comet2, dumpword, casl2, Command Manual
@section @kbd{comet2}
@pindex comet2
@kbd{comet2}の使用方法を表示して終了します。
@end table
-@node dumpword
+@node dumpword, , comet2, Command Manual
@section @kbd{dumpword}
@pindex dumpword
@kbd{dumpword}の使用方法を表示して終了します。
@end table
-@node CASL2LIB Manual,,Command Manual,TOP
+@node CASL2LIB Manual, , Command Manual, Top
@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
+@node L2STR, MAX, INL, CASL2LIB Manual
@section @kbd{L2STR} - @file{l2str.casl}
-@node MAX
+符号なし整数を文字列に変換する
+
+@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}
-@node MINIM
+連続した複数の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}
-@node MULA
+連続した複数の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}
-@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