annotate TL1/tl1j.html @ 178:4d83154d2a78

add - {} some builtin in TL/1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 15 Apr 2019 09:43:28 +0900
parents ce695e5e38d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
173
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 <html xmlns='http://www.w3.org/1999/xhtml'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 <head>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 <title>TL/1 言語仕様</title>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 <link rel='stylesheet' type='text/css' href='tl1.css' />
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 </head>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <body>
174
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
8
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
9 <h1>TL/1 とは</h1>
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
10
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
11 <p>TL/1 はPacal likeな 8 bit cpu 用の 1 pass コンパイラです。1980年に大西博氏によってMC6800用に設計実装されました。
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
12 高速なコンパイルが特徴ですが変数と配列は8bitのみ。16bit アドレスのメモリ空間にはMEM変数を使ってアクセスします。
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
13
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
14 <h2> TL/1 のソースコード例 </h2>
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
15
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
16 <a href="test/t1.tl1"> t1.tl1 </a>
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
17 <pre>
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
18 % TEST PROGRAM **
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
19 PROC WAIT,TIME
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
20 %--- MAIN ---
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
21 VAR I
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
22 BEGIN
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
23 WRITE(1:"Do ")
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
24 FOR I:=1 TO 10 DO [
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
25 WRITE(1:I,CRLF)
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
26 TIME
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
27 ]
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
28 WAIT
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
29 END
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
30 %-- PROCEDURE WAIT --
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
31 WAIT
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
32 VAR I,J,K
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
33 BEGIN
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
34 FOR I:=0 TO 1 DO [
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
35 FOR J:=0 TO 255 DO [
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
36 FOR K:=0 TO 255 DO []]]
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
37 END
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
38 %-- PROCEDURE TIME --
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
39 TIME
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
40 VAR I,J
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
41 BEGIN
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
42 FOR I:=0 TO 10 DO [
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
43 FOR J:=0 TO 150 DO []]
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
44 END
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
45 </pre>
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
46
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
47 <a href="test/t2.tl1"> t2.tl1 </a>
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
48
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
49 <a href="test/t3.tl1"> t3.tl1 </a>
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
50
173
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 <h1>TL/1 言語仕様</h1>
174
ce695e5e38d8 documents
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
52
173
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 <h2>概要</h2>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 <p>この文章はプログラミング言語 TL/1 の言語仕様のまとめです。 雑誌やウェブ上にある説明などを元にして私の解釈や曖昧箇所の指摘を加えて仕様の体裁に再構成したものです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <p>説明のために元資料にない用語を使う場合もあります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 <p>この文章中で「未定義」としている箇所は、元資料から判断がつかないことを陽に示したものです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 <p><a href="tl1-syntax-diagram.xhtml">構文図</a>も用意していますが、識別子の解釈に独特な部分があるので文章の方を先に読んでから構文図を参考にした方がよいでしょう。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 <h2>字句</h2>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 <h3>コメント</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 <p>パーセント記号 (%) から次の改行までは無視され、プログラム的には空白文字と同等の意味しか持ちません。 プログラムの説明などを記述するのに使ってください。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 <h3 id='identifier'>識別子</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 <p>英文字で始まり、後続する英数字 0 個以上で構成されます。 識別子を構成しない文字 (空白や記号) の直前までを 1 個の語として解釈します。 大文字と小文字は区別しません。 識別子の長さに上限はありません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 <p>予約語、手続き名、関数名、大域単変数名、大域配列名、小域単変数名、小域配列名が同じ綴りを持つ可能性があります。 宣言時に既存の名前と重複しないかチェックされません。 宣言以外の箇所では処理系は以下の順序で名前の検索を試み、最初に発見された属性の識別子として解釈します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 <ol>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 <li>小域配列名</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <li>小域単変数名</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 <li>大域配列名</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 <li>大域単変数名</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 <li>関数名</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 <li>手続き名</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 <li>予約語</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 </ol>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <h3 id='number'>数値</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <p>4 種類の表現方法があります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 <p>TL/1 で直接的に扱える数値はバイトサイズであり、ゆえにプログラム中で現れる数値表現は常に 0〜255 の範囲内です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 <p>構文中で真偽値を要求している箇所においては 255 を真、それ以外の値は偽と解釈します。 真偽値を返す関数は真として 255 を、偽として 0 を返します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 <h4>十進定数</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 <p>0〜9 の文字を 1 つ以上並べて 0〜255 の範囲を数を表現できます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 <p>頭に余計な 0 を付けた場合 (例えば 02 のような) の挙動は未定義です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 <h4>十六進定数</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 <p>記号 $ に 0〜9 または a〜f で十六進表現で 0〜255 を表します。a〜f は大文字 (A〜F) を使っても同じ意味です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 <p>記号 $ の後に空白文字を入れてはいけません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 <p>十六進で二桁にするために余計な 0 を頭に付けること (例えば $0A のような) は許されますが、それよりも多くの 0 を頭に付けた場合 (例えば $002) の挙動は未定義です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 <h4>文字リテラル定数</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 <p>クオートで挟まれた一文字で表現します。 その一文字のアスキーコードと同じ数値が書かれたものと見做されます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 <pre class='example'>'A' % 65 と書いたのと同じ意味</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 <h4>論理定数</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 <p>識別子 <span class='reserved'>TRUE</span> もしくは <span class='reserved'>FALSE</span> で表します。 <span class='reserved'>TRUE</span> は $FF 、 <span class='reserved'>FALSE</span> は 0 と同じです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 <h3>記号</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 <p>その他、演算子や構文には記号を用いますが、後述する構文の説明の中で取り上げます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 <h3>空白文字</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 <p>語の間に挿入することが出来ます。 語の区切りとしては 1 個あれば充分ですが、何個連続しても意味は変わりませんので外観を整えるために活用して下さい。 空白文字と解釈する文字は以下の通りです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 <ul>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 <li>文字コード $1F 以下の文字 (制御文字)</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 <li>空白</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 <li>ピリオド (.)</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 <li>セミコロン (;)</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 </ul>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 <p>使い方に習慣的な意味がある場合もあり、それについては後述します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 <h2>プログラムの構成</h2>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 <p>プログラムは以下の順序で構成されます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 <ol>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 <li>手続き名宣言</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 <li>関数名宣言</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 <li>大域単変数名宣言</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 <li>大域配列名・配列の大きさ宣言</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 <li>主プログラムの定義</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 <li>手続き、または関数の定義群</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 </ol>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 <p>それぞれの内容は以下のようになります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 <h3>手続き名宣言</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 <p>プログラム中で使用する手続き名を予約語 <span class='reserved'>PROC</span> に続けて書きます。 手続き名が複数の場合はカンマで区切ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 <span class='reserved'>PROC</span> <span class='metavar'>手続き1</span> , <span class='metavar'>手続き2</span> , <span class='metavar'>手続き3</span> ...
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 <p>手続きが 0 個の場合は宣言を省略します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 <h3>関数名宣言</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 <p>プログラム中で使用する関数名を予約語 <span class='reserved'>FUNC</span> に続けて書きます。 関数名が複数の場合はカンマで区切ります。 </p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 <span class='reserved'>FUNC</span> <span class='metavar'>関数1</span> , <span class='metavar'>関数2</span> , <span class='metavar'>関数3</span> ...
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 <p>関数を 0 個の場合は宣言を省略します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 <h3>大域単変数名宣言</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 <p>プログラム全体で使用する単変数名を予約語 <span class='reserved'>VAR</span> に続けて書きます。 大域単変数名が複数の場合はカンマで区切ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 <span class='reserved'>VAR</span> <span class='metavar'>単変数1</span> , <span class='metavar'>単変数2</span> , <span class='metavar'>単変数3</span> ...
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 <p>大域単変数が 0 個の場合は宣言を省略します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 <p>後述の大域配列と合計して 256 バイト以内である必要があります。 更に<a href='#subprogram'>副プログラム</a>を呼出す場合は 2 バイトの余地が必要 (大域単変数と大域配列を合計した大きさが 254 バイト以下になる必要がある) です。 </p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 <h3>大域配列名・配列の大きさ宣言</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 <p>プログラム全体で使用する配列名とその大きさを予約語 <span class='reserved'>ARRAY</span> に続けて書きます。 配列の大きさは配列名の後に角括弧で囲んだ数値で表します。 配列名が複数の場合はカンマで区切ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 <span class='reserved'>ARRAY</span> <span class='metavar'>配列1</span> [ <span class='metavar'>配列1の大きさ</span> ] ,
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 <span class='metavar'>配列2</span> [ <span class='metavar'>配列2の大きさ</span> ] ,
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 <span class='metavar'>配列3</span> [ <span class='metavar'>配列3の大きさ</span> ] ...
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 <p>配列の大きさは配列の添字の最大値です。 例えば A[10] と宣言した配列に対しては 0〜10 の添字で安全に参照できることを意味します。 C などのように配列の要素数ではないことに注意してください。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 <h3>主プログラムの定義</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 <p>予約語 <span class='reserved'>BEGIN</span> と <span class='reserved'>END</span> で狭んだ 0 個以上の<a href='#statement'>実行文</a>から成ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 <h3 id='subprogram'>副プログラムの定義</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 <p>副プログラムとは手続きか関数です。 以下のような順序で構成されます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 <ol>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 <li>副プログラム名</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 <li>仮引数リスト</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 <li>小域単変数名宣言</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 <li>小域配列名・配列の大きさ宣言</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 <li>予約語 <span class='reserved'>BEGIN</span></li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 <li>0 個以上の実行文</li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 <li>予約語 <span class='reserved'>END</span></li>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 </ol>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 <p>これが副プログラムの個数分だけ繰返されます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 <p>副プログラムの定義は宣言の順序と一致しなくてもかまいません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 <h4>副プログラム名</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 <p>プログラムの最初の手続き名宣言か関数名宣言で宣言した名前です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 <h4>仮引数リスト</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 <p>丸括弧で囲まれた複数の識別子です。 識別子が複数の場合はカンマで区切ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 ( <span class='metavar'>仮引数1</span> , <span class='metavar'>仮引数2</span> , <span class='metavar'>仮引数3</span> ...)
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 <p>仮引数はいわゆる値渡しのみです。 呼出し時の実引数で初期化される点が異なるだけの小域単変数です。 (暗黙の小域単変数宣言)</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 <p>仮引数が 0 個の場合は丸括弧ごと省略することも出来ます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 <h4>小域単変数名宣言</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 <p>当該の副プログラム内だけで参照可能な単変数を宣言します。 形式は大域単変数と同じです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 <p>小域単変数が 0 個の場合は宣言を省略します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 <p>大域単変数・大域配列と同様に、小域単変数と小域配列を合せた大きさが 256 バイト以下である必要があります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 <h4>小域配列名宣言</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 <p>当該の副プログラム内だけで参照可能な配列を宣言します。 形式は大域配列と同じです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 <h2 id='statement'>実行文</h2>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 <h3>複文</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 <p>文括弧で 0 個以上の実行文を囲うことで 1 個の実行文にまとめることが出来ます。</p
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 >
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 <pre class='form'><span class='reserved'>BEGIN</span> <span class='metavar'>実行文リスト</span> <span class='reserved'>END</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 <pre class='form'>{ <span class='metavar'>実行文リスト</span> }</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 <pre class='form'>[ <span class='metavar'>実行文リスト</span> ]</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 <pre class='form'>( <span class='metavar'>実行文リスト</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 <p>まとめられた文は複文と呼ばれ、あたかもひとつの実行文であるかのように振舞いますので、以降の説明で実行文が現れることが出来る箇所のどこにでも現れることが出来ます。 囲まれた実行文が 0 個の複文は空文と呼びます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 <p>どの括弧記号を使っても同じ意味ですが、必ず対応する閉じ括弧で閉じる必要があります。 例えば「{」で始めて「]」で閉じるような使い方は出来ません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 <p>複文中のそれぞれの実行文を区切るために、空白文字として無視されるセミコロン (;) を書く習慣があります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 <p>主プログラム、副プログラムの本文も複文の一種ではありますが、上記で示した通り <span class='reserved'>BEGIN</span> と <span class='reserved'>END</span> で挟む必要があり、他の括弧は使えません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 <h3>STOP</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 <p>実行を停止してモニタに飛びます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 <p>主プログラムの最後には自動的に挿入されるので書かなくてもよいですが、主プログラム/副プログラムの任意の場所に書けます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 <h3>RETURN</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 <p>手続き、または関数から復帰します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 <span class='reserved'>RETURN</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 <span class='reserved'>RETURN</span> <span class='metavar'>式</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 <p>手続きから復帰する場合には式を持たない書式で、関数から復帰する場合は 1 個の式が続く書式で書きます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 <p>手続きの最後には自動的に挿入されるので書かなくてもよいですが、手続き中のどこででも使用することが出来ます。 (一部の処理系では <span class='reserved'>FOR</span> ループ内で使ってはいけません。)</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 <p>関数の定義内では必ず 1 つ以上使う必要があります。 (コンパイル時にチェックされないことに注意してください。 また、 <span class='reserved'>FOR</span> ループ内で使ってはいけません。)</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 <p>関数内で <span class='reserved'>RETURN</span> 文を通過せずに終端 (関数の定義の終りを表す <span class='reserved'>END</span>) に行き当たった場合の挙動は未定義です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
215
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 <h3>FOR</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 <p>単変数の値を変化させながら繰返しする処理を表します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 <span class='reserved'>FOR</span> <span class='metavar'>単変数</span> := <span class='metavar'>式</span> <span class='reserved'>TO</span> <span class='metavar'>式</span> <span class='reserved'>DO</span> <span class='metavar'>実行文</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 <span class='reserved'>FOR</span> <span class='metavar'>単変数</span> := <span class='metavar'>式1</span> <span class='reserved'>DOWNTO</span> <span class='metavar'>式2</span> <span class='reserved'>DO</span> <span class='metavar'>実行文</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 <p>カウント用の <span class='metavar'>単変数</span> に式の値を代入し、 <span class='metavar'>単変数</span> を 1 ずつ増加または減少させながら実行文を繰返します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 <p><span class='metavar'>単変数</span> の増分は、 <span class='reserved'>TO</span> を用いたとき +1 、 <span class='reserved'>DOWNTO</span> を用いたときは -1 です。 (一部の処理系では <span class='reserved'>DOWNTO</span> を使えません。)</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 <h3>REPEAT</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 <pre class='form'><span class='reserved'>REPEAT</span> <span class='metavar'>文リスト</span> <span class='reserved'>UNTIL</span> <span class='metavar'>式</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 <p><span class='metavar'>式</span> の値が真値になるまで <span class='metavar'>文リスト</span> を繰返し実行します。 <span class='metavar'>文リスト</span> は 0 個以上の実行文を並べたものです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 <h3>WHILE</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 <pre class='form'><span class='reserved'>WHILE</span> <span class='metavar'>式</span> <span class='reserved'>DO</span> <span class='metavar'>実行文</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 <p><span class='metavar'>式</span> の値が偽ならば <span class='metavar'>実行文</span> を実行せずに次の処理へ移ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 <p>式の値が真の場合は <span class='metavar'>実行文</span> を実行して再び <span class='metavar'>式</span> の評価に戻ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
234
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 <h3>IF</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 <pre class='form'><span class='reserved'>IF</span> <span class='metavar'>式</span> <span class='reserved'>THEN</span> <span class='metavar'>実行文1</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 <pre class='form'><span class='reserved'>IF</span> <span class='metavar'>式</span> <span class='reserved'>THEN</span> <span class='metavar'>実行文1</span> <span class='reserved'>ELSE</span> <span class='metavar'>実行文2</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 <p><span class='metavar'>式</span> の値が真なら <span class='metavar'>実行文1</span>を実行します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
239 <p><span class='metavar'>式</span> の値が偽であり <span class='reserved'>ELSE</span> 節が省略されていないならば <span class='metavar'>実行文2</span> を実行します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 <p>式の値が偽であり <span class='reserved'>ELSE</span> 節が省略されているならば何もせずに次の処理へ移ります。 (一部の処理系では <span class='reserved'>ELSE</span> 節は使えません。)</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
241
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 <h3>CASE</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
244
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 <span class='reserved'>CASE</span> <span class='metavar'>式0</span> <span class='reserved'>OF</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 <span class='metavar'>式1</span> <span class='metavar'>実行文1</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 ...
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 <span class='metavar'>式k-1</span> <span class='metavar'>実行文k-1</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 <span class='reserved'>ELSE</span> <span class='metavar'>実行文k</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
250 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 <p><span class='metavar'>式0</span> の値を <span class='metavar'>式1</span> の値と比較して合致すれば <span class='metavar'>実行文1</span> を実行します。 その後は <span class='metavar'>実行文k</span> の次の処理に移ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 <p>合致しなければ、同様にして合致するまで次々と式と比較し、合致した式に対応した実行文を実行します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
253 <p>式の箇所に予約語 <span class='reserved'>ELSE</span> が有った場合は無条件に合致したものとみなして <span class='metavar'>実行文k</span> を実行します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 <p><span class='reserved'>CASE</span> 文における <span class='reserved'>ELSE</span> 節は <span class='reserved'>CASE</span> 文の最後の条件であることを示すマーカーでもあるので省略することは出来ません。 <span class='reserved'>ELSE</span> 節に実行すべき実行文がない場合は空文を書いてください。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 <h3>WRITE</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 <span class='reserved'>WRITE</span> ( <span class='metavar'>式</span> : <span class='metavar'>出力リスト</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 <p>式の値が表す出力装置に対して出力リストの内容を出力します。 数値と出力装置との対応付けについては未定義ですが、一般的に 0 はコンソール画面であるとされています。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 <p>出力リストは以下の出力要素からなり、ひとつ以上の場合はカンマで区切ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
261 <h4>式</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
262 <p>式を記述します。 十進数左詰めで出力します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
263 <h4>右詰め</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 # ( <span class='metavar'>式1</span> , <span class='metavar'>式2</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
266 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 <p><span class='metavar'>式2</span> の値を <span class='metavar'>式1</span> の桁数で十進右詰めで出力します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 <h4>文字列</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
269 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
270 &quot; <span class='metavar'>文字列</span> &quot;
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
271 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 <p>ダブルクォーテーションで囲まれた文字列を出力します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 <h4>アスキーコード</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
274 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 <span class='reserved'>ASCII</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
276 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
277 <p><span class='metavar'>式</span> で与えられたアスキーコードに相当する文字を出力します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
278 <h4>空白</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
279 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
280 <span class='reserved'>SPACE</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
282 <p><span class='metavar'>式</span> で与えられた個数分の空白を出力します。 <span class='metavar'>式</span> の値が 0 の場合は何も出力しません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
283 <h4>改行</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
284 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
285 <span class='reserved'>CRLF</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
286 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
287 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
288 <span class='reserved'>CRLF</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
289 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 <p><span class='metavar'>式</span> で与えられた個数分の改行を出力します。 <span class='metavar'>式</span> の値が 0 の場合は何も出力しません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 <p><span class='metavar'>式</span> を省略した形式の場合は 1 個の改行を出力します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 <h4>十六進数</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
293 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
294 <span class='reserved'>HEX</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
295 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
296 <p><span class='metavar'>式</span> で与えられた値を十六進数 2 桁で出力します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
297 <p>一部の処理系では使えません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
298
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
299 <h3>代入</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 <pre class='form'><span class='metavar'>変数</span> := <span class='metavar'>式</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
301 <pre class='form'><span class='metavar'>変数1</span> , <span class='metavar'>変数2</span> , ... , <span class='metavar'>変数k</span> := <span class='metavar'>式</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 <p><span class='metavar'>式</span> の値を <span class='metavar'>変数</span> に代入します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
303 <p>変数がカンマで区切られたリストの場合は <span class='metavar'>式</span> の値を左辺全ての変数に代入します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
304 <p>代入記号はコロンとイコールの 2 語から成っているのでコロンとイコールの間に空白文字が有っても代入記号として認識されますが、一般的には間を空けずに書きます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
305
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
306 <h3>手続き呼出し</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
307 <p>手続きを呼出します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
308 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
309 <span class='metavar'>手続き名</span> ( <span class='metavar'>式</span> , <span class='metavar'>式</span> , ... <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
310 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
311 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
312 <span class='metavar'>手続き名</span>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
313 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
314 <p>引数をもつ手続きでは実引数を与えて呼出します。 引数を持たない手続きを呼出す場合には丸括弧ごと省略した記法で呼出せますが、引数を持たない手続きを丸括弧を省略せずに記述した場合はエラーです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
315 <pre class='example'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
316 FOO() % このような呼び方はエラー
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
317 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
318 <p>実引数の渡し方はいわゆる値渡しに限定されているので、実引数が変数であっても手続きから戻ったときに値は変化しません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
319
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
320 <h3>CALL</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
321 <p>機械語サブルーチンを呼出します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
322 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
323 <span class='reserved'>CALL</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> , <span class='metavar'>A</span> , <span class='metavar'>H</span> , <span class='metavar'>L</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
324 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
325 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
326 <span class='reserved'>CALL</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> , <span class='metavar'>A</span> , <span class='metavar'>H</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
327 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
328 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
329 <span class='reserved'>CALL</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> , <span class='metavar'>A</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
330 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
331 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
332 <span class='reserved'>CALL</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
333 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
334 <p>各パラメータは以下の意味を持ちます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
335 <table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
336 <tr><td><span class='metavar'>AH</span></td><td>アドレスの上位 8 ビット</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
337 <tr><td><span class='metavar'>AL</span></td><td>アドレスの下位 8 ビット</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
338 <tr><td><span class='metavar'>A</span></td><td>アキュムレータに与える値</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
339 <tr><td><span class='metavar'>H</span></td><td>80 系 CPU では H レジスタに与える値、 6502 系 CPU では X レジスタに与える値</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
340 <tr><td><span class='metavar'>L</span></td><td>80 系 CPU では L レジスタに与える値、 6502 系 CPU では Y レジスタに与える値</td>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
341 </tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
342 </table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
343 <p><span class='metavar'>A</span>, <span class='metavar'>H</span>, <span class='metavar'>L</span> は省略した形式がありますが、省略した場合はそれぞれの値は不定となります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
344 <p>この手続きは一部の処理系では利用できません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
345
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
346 <h3>SENSE</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
347 <p>PC では STOP キー、 APPLE では cont-C が押されているか否かを検出し、押されていればモニタモードに戻ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
348
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
349 <h2>変数</h2>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
350 <p>変数はすべて 1 バイト長です。 以下の 4 種類があります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
351 <h3>単変数</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
352 <p><span class='reserved'>VAR</span> 宣言された英字で始まる英数字の列です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
353 <p>大域、小域の区別があります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
354
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
355 <h3>配列変数</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
356 <pre class='form'><span class='metavar'>配列変数名</span> [ <span class='metavar'>式</span> ]</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
357 <p><span class='reserved'>ARRAY</span> 宣言された配列の <span class='metavar'>式</span> 番目の要素です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
358 <p>大域、小域の区別があります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
359
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
360 <h3>MEM変数</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
361 <pre class='form'><span class='reserved'>MEM</span> ( <span class='metavar'>式1</span> , <span class='metavar'>式2</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
362 <p><span class='metavar'>式1</span> の値を上位、 <span class='metavar'>式2</span> の値を下位のアドレスとするメモリ内の 1 バイト。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
363
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
364 <h3>PORT</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
365 <pre class='form'><span class='reserved'>PORT</span> (<span class='metavar'>式</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
366 <p>PC 版専用です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
367 <p>N-BASIC の INP, OUT に相当します。 代入文の左辺にあれば OUT 、 右辺にあれば INP と同等の作用をします。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
368
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
369 <h2>式</h2>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
370 <h3>定数</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
371 <p><a href='#number'>数値</a>の項で示した 4 種類のいずれかの形式で定数を表します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
372 <h3>関数呼出し</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
373 <pre class='form'><span class='metavar'>関数名</span> ( <span class='metavar'>式1</span> , <span class='metavar'>式2</span> , ... , <span class='metavar'>式k</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
374 <pre class='form'><span class='metavar'>関数名</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
375 <p><span class='reserved'>FUNC</span> 宣言によって宣言された関数、または処理系が用意しているシステム関数 (後述) を呼出します。 引数のない関数を呼出す場合は関数名のみで呼出せます。 引数がない関数を括弧付きの書式で呼出そうとした場合はエラーです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
376 <pre class='example'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
377 FOO := BAR() % このような呼び方はエラー
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
378 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
379 <h4>MHIGH</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
380 <p>1 バイト同士の掛け算の結果は 2 バイトになり得ますが、式の中では下位 1 バイトしか表現されません。 上位 1 バイトは専用の場所に格納されており、 <span class='reserved'>MHIGH</span> 関数で取出すことが出来ます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
381 <h4>MOD</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
382 <p>割り算すると商が返りますが、同時に余が計算されて専用の場所に格納されており、 <span class='reserved'>MOD</span> 関数で取出すことが出来ます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
383 <h4>RND</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
385 <span class='reserved'>RND</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
386 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
387 <p>1 以上 <span class='metavar'>式</span> 以下の一様乱数を返します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
388 <h4>GET</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
389 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
390 <span class='reserved'>GET</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
391 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
392 <p><span class='metavar'>式</span> が表す入力装置から 1 文字を入力し、そのアスキーコードの値を返します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
393 <p>数値と入力装置の対応付けは未定義ですが、一般に 0 はキーボードであるようです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
394 <h4>READ</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
395 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
396 <span class='reserved'>READ</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
397 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
398 <p><span class='metavar'>式</span> の値に対応する入力装置から十進数を 1 つ入力し、その値を返します。 RUBOUT コードは区切り記号とみなされます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
399 <h4>NOT</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
400 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
401 <span class='reserved'>NOT</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
402 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
403 <p>1 の補数を返します。 後述の COM と同じです。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
404 <h4>NEG</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
405 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
406 <span class='reserved'>NEG</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
407 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
408 <p>2 の補数を返します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
409 <h4>COM</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
410 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
411 <span class='reserved'>COM</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
412 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
413 <p>1 の補数を返します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
414 <h4>LSR</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
415 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
416 <span class='reserved'>LSR</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
417 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
418 <p>1 ビット右シフトします。 最上位ビットには 0 が入り、最下位ビットはキャリーに入ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
419 <h4>ASR</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
420 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
421 <span class='reserved'>ASR</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
422 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
423 <p>1 ビット右シフトします。 最上位ビットは変化せず、最下位ビットはキャリーに入ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
424 <h4>ASL</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
425 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
426 <span class='reserved'>ASL</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
427 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
428 <p>1 ビット左シフトします。 最下位ビットには 0 が入り、最上位ビットはキャリーに入ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
429 <h4>ROR</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
430 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
431 <span class='reserved'>ROR</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
432 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
433 <p>1 ビット右シフトします。 キャリーは最上位ビットに入り、最下位ビットはキャリーに入ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
434 <h4>ROL</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
435 <pre class='form'>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
436 <span class='reserved'>ROL</span> ( <span class='metavar'>式</span> )
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
437 </pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
438 <p>1 ビット左シフトします。 キャリーは最下位ビットに入り、最上位ビットはキャリーに入ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
439 <h4>USR</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
440 <pre class='form'><span class='reserved'>USR</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> , <span class='metavar'>A</span> , <span class='metavar'>AH</span> , <span class='metavar'>L</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
441 <pre class='form'><span class='reserved'>USR</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> , <span class='metavar'>A</span> , <span class='metavar'>AH</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
442 <pre class='form'><span class='reserved'>USR</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> , <span class='metavar'>A</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
443 <pre class='form'><span class='reserved'>USR</span> ( <span class='metavar'>AH</span> , <span class='metavar'>AL</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
444 <p>CALL 文と機能は同じですが、機械語サブルーチン実行後のアキュムレータの値を返却値として返します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
445 <p>処理系によっては使えません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
446 <h4>RDHEX</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
447 <pre class='form'><span class='reserved'>RDHEX</span> (<span class='metavar'>式</span>)</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
448 <p>入力装置から十六進数1桁を入力します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
449 <p>処理系によっては使えません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
450 <h4>RRC</h4
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
451 ><pre class='form'><span class='reserved'>RRC</span> (<span class='metavar'>式</span>)</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
452 <p>キャリーを経由せずに式の値を右に 1 ビットシフトします。 最下位ビットは最上位に入ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
453 <p>処理系によっては使えません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
454 <h4>RLC</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
455 <pre class='form'><span class='reserved'>RLC</span> (<span class='metavar'>式</span>)</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
456 <p>キャリーを経由せずに式の値を左に 1 ビットシフトします。 最上位ビットは最下位ビットに入ります。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
457 <p>処理系によっては使えません。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
458 <h3>二項演算子</h3>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
459 <p>左右に 2 個の項をとって計算する演算子です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
460 <pre class='form'><span class='metavar'>項1</span> <span class='metavar'>演算子</span> <span class='metavar'>項2</span></pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
461 <p>演算子の優先順位は表の通りです。 優先順位の同じ演算子は左結合します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
462 <table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
463 <tr><td>①</td><td>乗除算演算子</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
464 <tr><td>②</td><td>加減算演算子</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
465 <tr><td>③</td><td>関係演算子</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
466 <tr><td>④</td><td>論理演算子</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
467 <tr><td>⑤</td><td>キャリー付き加減算演算子</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
468 </table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
469 <p>優先順位を変更したい場合は式括弧を使用します。 以下 3 種類の括弧が式括弧として使えますが標準的には丸括弧を用いることとします。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
470 <pre class='form'>{ <span class='metavar'>式</span> }</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
471 <pre class='form'>[ <span class='metavar'>式</span> ]</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
472 <pre class='form'>( <span class='metavar'>式</span> )</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
473 <p>記号ではなく識別子の演算子については空白文字と解釈されるピリオドを両側に置く習慣があります。 私見ですが、関数呼出しとの区別をしやすくする工夫だと考えられます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
474 <pre class='example'>.<span class='reserved'>AND</span>.</pre>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
475
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
476 <h4>乗除算演算子</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
477 <table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
478 <tr><td>*</td><td>乗算</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
479 <tr><td>/</td><td>除算の商</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
480 </table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
481
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
482 <h4>加減算演算子</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
483 <table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
484 <tr><td>+</td><td>加算</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
485 <tr><td>-</td><td>減算</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
486 </table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
487
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
488 <h4>関係演算子</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
489 <p>2 つの値を比較して真偽値を返します。 <span class='reserved'>GT</span> と <span class='reserved'>LT</span> は左右の数値を 2 の補数表現の符号付き二進数とみなして比較します。 その他の演算子は数を符号なし二進数と解釈します。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
490 <table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
491 <tr><td>&gt;</td><td>大きい</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
492 <tr><td>&lt;</td><td>小さい</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
493 <tr><td>#</td><td>等しくない</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
494 <tr><td>=</td><td>等しい</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
495 <tr><td><span class='reserved'>GT</span></td><td>大きい</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
496 <tr><td><span class='reserved'>LT</span></td><td>大きい</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
497 </table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
498
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
499 <h4>論理演算子</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
500 <table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
501 <tr><td class='reserved'>AND</td><td>論理積</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
502 <tr><td class='reserved'>OR</td><td>論理和</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
503 <tr><td class='reserved'>EOR</td><td>排他的論理和</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
504 </table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
505
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
506 <h4>キャリー付き加減算演算子</h4>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
507 <p>二項を足した上でキャリーの値を足す、または二項を減算した上でキャリーの値を引く演算子です。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
508 <table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
509 <tr><td class='reserved'>ADC</td><td>キャリー付き加算</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
510 <tr><td class='reserved'>SBC</td><td>ボロー付き減算</td></tr>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
511 </table>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
512 <p>システム関数の一部がフラグを変化させることが明記されている他はどの処理がフラグを変化させるかは未定義です。 一般に加減算はフラグを変化させるようですが、処理系によっては配列要素へアクセスしたときに変化させてしまう場合もあるようです。 キャリー付き加減算は加減算の直後に限って使うのが安全であると考えられます。</p>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
513 </body>
7dd634f92ffd add tl1 english manual
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
514 </html>