RMR := $(RM) -r
SED := sed
-DOCS := install manual casl2_spec
+DOCS := install manual
CSS := style.css
prefix ?= ~
infodir ?= $(prefix)/share/info
-.PHONY: base all info html htmls pdf distclean clean
+INSTALL-INFO-TARGETS := yacasl2.info
+
+.PHONY: base all info html htmls pdf casl2_spec distclean clean
base: install.txt info html
-all: base html pdf
+all: base html pdf casl2_spec
info: yacasl2.info
pdf: $(addsuffix .pdf,$(DOCS))
+casl2_spec:
+ $(MAKE) -C casl2_spec
+
yacasl2.info: manual.texi
$(MAKEINFO) $(MAKEINFO_FLAGS) $<
# makeで作成されたドキュメントはすべて削除
distclean: clean texinfo-distclean
$(RM) install.txt *.info *.html *_html *.pdf
+ $(MAKE) -C casl2_spec distclean
# make baseで作成されたドキュメントは残す
clean: texinfo-clean
$(RM) *.bak
+ $(MAKE) -C casl2_spec clean
include texinfo.mk
--- /dev/null
+*.eps
+*.png
+*_html
+*.info
+*.html
+*.pdf
+*.dvi
+*.txt
+*.aux
+*.cp
+*.cps
+*.fn
+*.ky
+*.log
+*.pg
+*.pgs
+*.tmp
+*.toc
+*.tp
+*.vr
\ No newline at end of file
--- /dev/null
+VPATH := img
+
+RMR := $(RM) -r
+SED := sed
+
+CSS := style.css
+
+.PHONY: all clean distclean
+
+all: casl2_spec.html casl2_spec.pdf
+
+clean: texinfo-clean
+ $(RM) *.bak
+ $(MAKE) -C img clean
+
+distclean: clean texinfo-distclean
+ $(RM) *.html *.pdf
+ $(MAKE) -C img distclean
+
+include casl2_spec.dep
+
+include texinfo.mk
+
+include images.mk
--- /dev/null
+casl2_spec.html: img/1_1-01.png
+casl2_spec.html: img/1_2-00.png
+casl2_spec.html: img/1_2-01.png
+casl2_spec.html: img/1_2-02.png
+casl2_spec.html: img/1_2-03.png
+casl2_spec.html: img/1_2-04.png
+casl2_spec.html: img/1_2-05.png
+casl2_spec.html: img/1_2-06.png
+casl2_spec.html: img/1_2-07.png
+casl2_spec.html: img/1_2-08.png
+casl2_spec.html: img/1_3-01.png
+casl2_spec.html: img/2_1-01.png
+casl2_spec.html: img/2_2-01.png
+casl2_spec.html: img/2_3-01.png
+casl2_spec.html: img/2_3-02.png
+casl2_spec.html: img/2_3-03.png
+casl2_spec.html: img/2_3-04.png
+casl2_spec.html: img/2_3-05.png
+casl2_spec.html: img/2_4-01.png
+casl2_spec.html: img/2_4-02.png
+casl2_spec.html: img/2_4-03.png
+casl2_spec.html: img/2_4-04.png
+casl2_spec.html: img/r_1-01.png
+casl2_spec.html: img/r_1-02.png
+casl2_spec.html: img/r_1-03.png
+casl2_spec.html: img/r_1-04.png
+casl2_spec.html: img/r_1-05.png
+
+casl2_spec.pdf: img/1_1-01.eps
+casl2_spec.pdf: img/1_2-00.eps
+casl2_spec.pdf: img/1_2-01.eps
+casl2_spec.pdf: img/1_2-02.eps
+casl2_spec.pdf: img/1_2-03.eps
+casl2_spec.pdf: img/1_2-04.eps
+casl2_spec.pdf: img/1_2-05.eps
+casl2_spec.pdf: img/1_2-06.eps
+casl2_spec.pdf: img/1_2-07.eps
+casl2_spec.pdf: img/1_2-08.eps
+casl2_spec.pdf: img/1_3-01.eps
+casl2_spec.pdf: img/2_1-01.eps
+casl2_spec.pdf: img/2_2-01.eps
+casl2_spec.pdf: img/2_3-01.eps
+casl2_spec.pdf: img/2_3-02.eps
+casl2_spec.pdf: img/2_3-03.eps
+casl2_spec.pdf: img/2_3-04.eps
+casl2_spec.pdf: img/2_3-05.eps
+casl2_spec.pdf: img/2_4-01.eps
+casl2_spec.pdf: img/2_4-02.eps
+casl2_spec.pdf: img/2_4-03.eps
+casl2_spec.pdf: img/2_4-04.eps
+casl2_spec.pdf: img/r_1-01.eps
+casl2_spec.pdf: img/r_1-02.eps
+casl2_spec.pdf: img/r_1-03.eps
+casl2_spec.pdf: img/r_1-04.eps
+casl2_spec.pdf: img/r_1-05.eps
@item
1語は16ビットで,そのビット構成は,次のとおりである。
-@image{casl2_spec_img/1_1-01,15cm}
+@image{img/1_1-01,15cm}
@item
主記憶の容量は65536語で,そのアドレスは0~65535番地である。
ここで,一つの命令コードに対し2種類のオペランドがある場合,
上段はレジスタ間の命令,下段はレジスタと主記憶間の命令を表す。
-@image{casl2_spec_img/1_2-00,15cm}
+@image{img/1_2-00,15cm}
@subsection ロード,ストア,ロードアドレス命令
-@image{casl2_spec_img/1_2-01,15cm}
+@image{img/1_2-01,15cm}
@subsection 算術,論理演算命令
-@image{casl2_spec_img/1_2-02,15cm}
+@image{img/1_2-02,15cm}
@subsection 比較演算命令
-@image{casl2_spec_img/1_2-03,15cm}
+@image{img/1_2-03,15cm}
@subsection シフト演算命令
-@image{casl2_spec_img/1_2-04,15cm}
+@image{img/1_2-04,15cm}
@subsection 分岐命令
-@image{casl2_spec_img/1_2-05,15cm}
+@image{img/1_2-05,15cm}
@subsection スタック操作命令
-@image{casl2_spec_img/1_2-06,15cm}
+@image{img/1_2-06,15cm}
@subsection コール,リターン命令
-@image{casl2_spec_img/1_2-07,15cm}
+@image{img/1_2-07,15cm}
@subsection その他
-@image{casl2_spec_img/1_2-08,15cm}
+@image{img/1_2-08,15cm}
@unnumberedsubsec 注
@item
次に符号表の一部を示す。 @*
-@image{casl2_spec_img/1_3-01,5cm}
+@image{img/1_3-01,5cm}
1文字は8ビットからなり,上位4ビットを列で,下位4ビットを行で示す。 例えば,@code{間隔},@code{4},@code{H},@code{@backslashchar{}}のビット構成は,16進表示で,それぞれ20,34,48,5Cである。ビット構成が21~7E(及び表では省略しているA1~DF)に対応する文字を図形文字という。 図形文字は,表示(印刷)装置で,文字として表示(印字)できる。
@item
命令行および注釈行は,次に示す記述の形式で,行の1文字目から記述する。 @*
-@image{casl2_spec_img/2_1-01,15cm}
+@image{img/2_1-01,15cm}
@end enumerate
@unnumberedsubsec 注
命令は,4種類のアセンブラ命令(@code{START},@code{END},@code{DS},@code{DC}), 4種類のマクロ命令(@code{IN},@code{OUT})および機械語命令(COMET IIの命令)からなる。 その仕様を次に示す。
-@image{casl2_spec_img/2_2-01,15cm}
+@image{img/2_2-01,15cm}
@section アセンブラ命令
@enumerate
-@item @* @image{casl2_spec_img/2_3-01,5cm} @*
+@item @* @image{img/2_3-01,5cm} @*
@code{START}命令は,プログラムの先頭を定義する。
また,この命令につけられたラベルは,他のプログラムから入口名として参照できる。
-@item @* @image{casl2_spec_img/2_3-02,5cm} @*
+@item @* @image{img/2_3-02,5cm} @*
@code{END}命令は,プログラムの終わりを定義する。
-@item @* @image{casl2_spec_img/2_3-03,5cm} @*
+@item @* @image{img/2_3-03,5cm} @*
@code{DS}命令は,指定した語数の領域を確保する。
語数は,10進定数(@geq{} 0)で指定する。語数を0とした場合,領域は確保しないが,ラベルは有効である。
-@item @* @image{casl2_spec_img/2_3-04,5cm} @*
+@item @* @image{img/2_3-04,5cm} @*
@code{DC}命令は,定数で指定したデータを(連続する)語に格納する。
定数には,10進定数,16進定数,文字定数,アドレス定数の4種類がある。 @*
-@image{casl2_spec_img/2_3-05,15cm}
+@image{img/2_3-05,15cm}
@end enumerate
@section マクロ命令
@enumerate
-@item @* @image{casl2_spec_img/2_4-01,5cm} @*
+@item @* @image{img/2_4-01,5cm} @*
@code{IN}命令は,あらかじめ割り当てた入力装置から,1レコードの文字データを読み込む。
@code{IN}命令を実行すると,@code{GR}の内容は保存されるが,@code{FR}の内容は不定となる。
-@item @* @image{casl2_spec_img/2_4-02,5cm} @*
+@item @* @image{img/2_4-02,5cm} @*
@code{OUT}命令は,あらかじめ割り当てた出力装置に,文字データを,1レコードとして書き出す。
@code{OUT}命令を実行すると,@code{GR}の内容は保存されるが,@code{FR}の内容は不定となる。
-@item @* @image{casl2_spec_img/2_4-03,5cm} @*
+@item @* @image{img/2_4-03,5cm} @*
@code{RPUSH}命令は,@code{GR}の内容を,@code{GR1},@code{GR2},…,@code{GR7}の順でスタックに格納する。
-@item @* @image{casl2_spec_img/2_4-04,5cm} @*
+@item @* @image{img/2_4-04,5cm} @*
@code{RPOP}命令は,スタックの内容を順次取り出し,@code{GR7},@code{GR6},…,@code{GR1}の順で@code{GR}に格納する。`
@end enumerate
命令語の構成は定義しないが,次のような構成を想定する。ここで,@code{OP}の数値は16進表示で示す。
-@image{casl2_spec_img/r_1-01,15cm}
+@image{img/r_1-01,15cm}
@section マクロ命令
@item 算術左シフトでは,ビット番号14の値が設定される。 @*
-@image{casl2_spec_img/r_1-02,15cm}
+@image{img/r_1-02,15cm}
@item 算術右シフトでは,ビット番号0の値が設定される。 @*
-@image{casl2_spec_img/r_1-03,15cm}
+@image{img/r_1-03,15cm}
@item 論理左シフトでは,ビット番号15の値が設定される。 @*
-@image{casl2_spec_img/r_1-04,15cm}
+@image{img/r_1-04,15cm}
@item 論理右シフトでは,ビット番号0の値が設定される。 @*
-@image{casl2_spec_img/r_1-05,15cm}
+@image{img/r_1-05,15cm}
@end enumerate
@section プログラムの例
--- /dev/null
+INKSCAPE := inkscape -z
+CONVERT := convert
+
+%.png: %.svg
+ $(INKSCAPE) -y 0.0 -e $@ $< >$<2png.log 2>&1
+
+%.eps: %.svg
+ $(INKSCAPE) -E $@ $< >$<2eps.log 2>&1
<g transform="translate(0,50)">
<g font-size="10pt" font-family="monospace">
<text x="5" y="15" font-family="sans-serif">リターン</text>
- <text x="5" y="35">RETrun form subroutine</text>
+ <text x="5" y="35">RETurn form subroutine</text>
<text x="205" y="25">RET</text>
<text x="255" y="25"></text>
</g>
--- /dev/null
+all: $(foreach ext,.png .eps,$(addsuffix $(ext),$(basename $(wildcard *.svg))))
+
+clean:
+ $(RM) *.log
+
+distclean: clean
+ $(RM) *.png *.eps *.jpg
+
+include ../images.mk
--- /dev/null
+../style.css
\ No newline at end of file
--- /dev/null
+../texinfo.mk
\ No newline at end of file
--- /dev/null
+../texinfo.tex
\ No newline at end of file
+++ /dev/null
-INKSCAPE := inkscape -z
-CONVERT := convert
-
-all: $(foreach ext,.png .eps,$(addsuffix $(ext),$(basename $(wildcard *.svg))))
-
-%.png: %.svg
- $(INKSCAPE) -y 0.0 -e $@ $< >$<2png.log 2>&1
-
-%.eps: %.svg
- $(INKSCAPE) -E $@ $< >$<2eps.log 2>&1
-
-%.jpg: %.png
- $(CONVERT) $< $@
-
-clean:
- $(RM) *.log
-
-distclean: clean
- $(RM) *.png *.eps *.jpg