-
Notifications
You must be signed in to change notification settings - Fork 0
/
rvtl_ref.txt
198 lines (191 loc) · 11.2 KB
/
rvtl_ref.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
rvtl ver.3.05, rvtl64 4.01
-------------------------------------------------------------------------
コマンド
-------------------------------------------------------------------------
: 行末までコメント
#! 行末までコメント
?=e 式の値を10進数で出力
?(n)=e 式の値を10進数を n 桁右寄せで出力
?[n]=+e 式の値を10進数を上位桁を0で埋めた n 桁で出力
?$=e 式の値を16進数2桁で出力
?#=e 式の値を16進数4桁で出力
??=e 式の値を16進数8桁で出力
?%=e 式の値を16進数16桁で出力 (64bit版専用)
?*=e 式の値を符号無し8進数で出力
?{n}=e 式の値を8進数で出力
?!n!=e 式の値の下位を2進数で出力
$=e 式の値を文字コードとして出力
$$=e 式の値を2文字の文字コードとして出力
$#=e 式の値を4文字の文字コードとして出力
$%=e 式の値を8文字の文字コードとして出力(64bit版専用)
$*=A 式の値を先頭アドレスとするASCIIZ文字列を出力
"STR" 文字列を出力
/ 改行を出力
.=e 空白を式 e の値の数だけ出力
A=? 10進数値入力(非数値の場合0が入力)
A=$ 1文字入力
A=@ リアルタイム文字入力入力がない場合は0が返る
A*=B 文字配列Bを文字配列Aにコピー
A*="STRING" 文字列を文字配列Aにコピー
#=100 指定行番号にジャンプ
#=^STOP 指定ラベルの次の行にジャンプ
;=e IF文、式の値が0なら次の行からを実行
!=100 指定行番号をサブルーチンコール
!=^Label 指定ラベルの次の行をサブルーチンコール
A=1,10 FOR文、対応するNEXT文までを繰り返す
@=A+1 NEXT文、変数を更新してFOR文から繰り返す
@ DO文、対応するUNTIL文までを繰り返す
@=(e) UNTIL文、式eが0(偽)の間繰り返す
] RETURN文、GOSUB文(!=)の次の命令に戻る
#=-1 END文、実行中のrvtlのプログラムを停止
&=0 NEW コマンド
<="ファイル名" SAVE、rvtlプログラムをファイル名を指定してファイルに出力
>="ファイル名" LOAD、ファイル名で指定された rvtlプログラムをロード
#=1 RUN コマンド
(="ファイル名" ファイル書き出し
(*=A ファイル書き出し、ファイル名文字列の先頭アドレスを指定
)="ファイル名" ファイル読み込み
)*=A ファイル読み込み、ファイル名文字列の先頭アドレスを指定
{=e ファイル書き出しコマンドの書き込み先頭位置を設定
}=e ファイル書き出しコマンドの書き込み最終位置を設定
*=e メモリ最終(brk)を設定
,="ファイル名" 子プロセスの起動、パイプ「|」と出力リダイレクト「>」が可能
,*=A 子プロセスの起動、ファイル名文字列の先頭アドレスを指定
[=0 配列範囲チェック
`=e 擬似乱数シード設定
==e コード先頭アドレス設定
_=e マイクロ秒単位の sleep
+ABC 変数スタックにプッシュ
-CBA 変数スタックからポップ
+=e 式の値を変数スタックにプッシュ
~ rvtlの終了
ctrl-C 実行の中止
-------------------------------------------------------------------------
編集
-------------------------------------------------------------------------
0 rvtlプログラム全体のリスト
100- 行番号100以降すべてのリスト
100-500 行番号100以降500までのリスト
100+ 行番号100以降の20行のリスト
100+30 行番号100以降の30行のリスト
100! 行番号100の1行を表示して編集
→ ctrl-F カーソル右移動
← ctrl-B カーソル左移動
↑ ctrl-P ヒストリー (前に入力した行の表示)
↓ ctrl-N ヒストリー (前に入力した行の表示)
BS バックスペース
ctrl-D カーソル位置消去
Del カーソル位置消去
TAB ファイル名補完
-------------------------------------------------------------------------
数値
-------------------------------------------------------------------------
'A' 文字
10000 10進数値 -2147483648 から 2147483647 (0から4294967295)
$10aB 16進数値 $0 から $FFFFFFFF
-------------------------------------------------------------------------
配列と関数
-------------------------------------------------------------------------
A(n) 変数 A の値を先頭アドレスとする1バイト配列
A{n} 変数 A の値を先頭アドレスとする2バイト配列
A[n] 変数 A の値を先頭アドレスとする4バイト配列
A;n] 変数 A の値を先頭アドレスとする8バイト配列 (64bit版専用)
# 実行中の行番号を保持
! 直近のジャンプ (#=, !=) を実行した行番号を保持
% 直前の除算の剰余、または 直前の _ 参照の usec を保持
& コードの最終使用アドレス+1
) 読み込みサイズ保持
* メモリ最終位置を保持
= プログラム先頭アドレス
[ 配列範囲チェック
^ ラベルの次行先頭アドレス
_ 秒単位のUNIX時間を返すマイクロ秒は % に設定
{ ファイル先頭位置
| エラーコード保持
} ファイル末位置
, アクセス可能先頭アドレス
` Mersenne Twister による乱数を返す
. ウィンドウサイズを上位16ビットに幅、下位16ビットに高さを返す
; 変数スタックトップを返す(ポップ)
_ 現在の秒を返し、% にマイクロ秒を返す
? 標準入力から10進数値を得る
$ 標準入力から文字を得る
@ 標準入力から文字を得る入力がなければ 0 を返す
\e 式の示す番号の引数文字列の先頭アドレスを返す番号は0から
\\e 式の示す番号の環境変数文字列の先頭アドレスを返す
$$ 入力バッファに1行読み込み、バッファのアドレスを返す
-------------------------------------------------------------------------
演算子
-------------------------------------------------------------------------
-A Aの符号反転
+A Aの絶対値
<A Aの下位32bitを64bitにゼロ拡張 (32bit版では何もしない)
A+B 加算
A-B 減算
A*B 乗算
A/B 除算
A&B ビット論理積
A\B 無符号除算
A^B 排他的論理和
A|B ビット論理和
A>>B 右シフト
A<<B 左シフト
A=B A と B が等しければ 1 を返し、それ以外は 0 を返す
A<B A が B より小さければ 1 を返し、それ以外は 0 を返す
A>B A が B より大きければ 1 を返し、それ以外は 0 を返す
A>=B A が B が以上ならば 1 を返し、それ以外は 0 を返す
A<=B A が B が以下ならば 1 を返し、それ以外は 0 を返す
A<>B A と B が等しくなければ 1 を返し、それ以外は 0 を返す
-------------------------------------------------------------------------
組み込みコマンド
-------------------------------------------------------------------------
|ca 指定したファイルの内容を表示 (cat)
|ca*=A 指定したファイルの内容を表示、文字列アドレス指定 (cat)
|ls カレントディレクトリ内容の表示 (ls)
|ls*=A カレントディレクトリ内容の表示、文字列アドレス指定 (ls)
|cd カレントディレクトリの移動 (cd)
|cd*=A カレントディレクトリの移動、文字列アドレス指定 (cd)
|cm パーミッションの変更 (chmod)
|cm*=A パーミッションの変更、文字列アドレス指定 (chmod)
|md ディレクトリの作成 (mkdir)
|md*=A ディレクトリの作成、文字列アドレス指定 (mkdir)
|mv ファイル名の変更、ファイルの移動 (mv)
|mv*=A ファイル名の変更、ファイルの移動、文字列アドレス指定 (mv)
|rd ディレクトリの削除 (rmdir)
|rd*=A ディレクトリの削除、文字列アドレス指定 (rmdir)
|cw カレントディレクトリの表示 (pwd)
|rm ファイルの削除 (rm)
|rm*=A ファイルの削除、文字列アドレス指定 (rm)
|rt 端末設定の修復
|mo ファイルシステムのマウント (mount)
|mo*=A ファイルシステムのマウント、文字列アドレス指定 (mount)
|um ファイルシステムのアンマウント (umount)
|um*=A ファイルシステムのアンマウント、文字列アドレス指定 (umount)
|sy ディスクの同期 (sync)
|cr ルートディレクトリの変更 (chroot)
|cr*=A ルートディレクトリの変更、文字列アドレス指定 (chroot)
|ex 外部コマンドの実行 (exec)
|ex*=A 外部コマンドの実行、文字列アドレス指定 (exec)
|pv ルートデバイスの変更 (pivot_root)
|pv*=A ルートデバイスの変更、文字列アドレス指定 (pivot_root)
|so スワップ領域をオープン (swapon)
|so*=A スワップ領域をオープン、文字列アドレス指定 (swapon)
|sf スワップ領域クローズ (swapoff)
|sf*=A スワップ領域クローズ、文字列アドレス指定 (swapoff)
|zz システムコールの実行、変数 a, b, c, d, e, f を引数
|zc コマンド実行回数を % に返す (>ver.4.00)
|fbo フレームバッファのオープン
|fbc フレームバッファのクローズ
|fbd フレームバッファの点の描画
|fbs フレームバッファの設定変更
|fbf フレームバッファの塗りつぶし
|fbl ライン描画
|fbp パターン転送
|fbt パターン転送2
|fbq マスク付きパターン転送
|fbr 矩形領域の塗りつぶし
|fbm メモリコピー
|ud URL デコード
|ve rvtl のバージョンを % に返す(64bit版は上位32bitに1)
|vc rvtl の cpu を % に返す(x86:1, arm:2, x86_64:4, arm64:5)
ラベル名:11文字(rvtl)、23文字(rvtl64)