戻る
JR BASIC (Ver1.x)
JR-100 : 松下電器産業 (National/Panasonic)

JR BASIC V1

JR BASICはNational(松下通信工業)製BASICである。

JR-100はキーボードが特殊で、英小文字は存在しない。
CTRLキーと併用で特殊キーやBASICコマンドを入力することが可能。
一覧は備考欄で示す。

JR BASIC Ver1.x 簡易リファレンス
コマンド
表記凡例使用例説明
AUTOAUTO [行番号]AUTO 100先頭に自動的に行番号を発生させる(増分は10固定)
LISTLIST [行番号][,行番号2]]LIST
LIST 100,200
メモリ上のプログラムを表示する
指定した範囲の行番号を表示する
LLISTLLIST [行番号][,行番号2]]LLIST
LLIST 100,200
メモリ上のプログラムを印字する
指定した範囲の行番号を印字する
FINDFIND 検索文字列FIND "PRINT"リスト中から文字列を検索し、該当する行を表示する
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CONTCONTCONTSTOPやBREAKキーで終了したプログラムの実行を再開する
RUNRUNRUNプログラムを実行する
SAVESAVE ["ファイル名"]SAVE "TEST"カセットテープにプログラムを保存する
MSAVEMSAVE ["ファイル名"],開始アドレス,終了アドレスMSAVE "TEST",$1000,$2000カセットテープにマシン語プログラムを保存する
LOADLOAD ["ファイル名"]LOAD "TEST"カセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
MLOADMLOAD ["ファイル名"]MLOAD "TEST"カセットテープからマシン語プログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
VERIFYVERIFY ["ファイル名"]VERIFY "TEST"カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
ENDENDENDプログラムを終了する
STOPSTOP [文字列式][{; | ,}[文字列式2...]STOPプログラムを一時停止する
任意の文字列表示も可能
REMREM [注釈]REM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数1][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
GOSUBGOSUB 行番号GOSUB 1000サブルーチンを呼び出す
RETURN{RETURN | RET}RETURNサブルーチンから復帰する
GOTOGOTO 行番号GOTO 1000指定した行番号から実行する
IF...THENIF 論理式 THEN {文 | 行番号}IF A=0 THEN 10論理式の条件判断をする
[戻る]
ステートメント:変数関連
表記凡例使用例説明
CLEARCLEARCLEAR変数や配列を初期化する(FOR〜NEXT内やサブルーチンでは使用不可)
INPUTINPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
LETLET 変数=式LET A=1変数に値を代入する(LETは省略できる)
DATADATA 定数[,定数][,...]DATA "TEST",765READで読み込むデータを定義する
READREAD 変数[,変数][,...]READ A$,BDATAで定義したデータを変数に代入する
RESTORERESTORE [行番号]RESTORE 1000READで読み込むDATAの先頭行を設定する
DIMDIM 変数名(最大値1[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
POKEPOKE アドレス,数式[,...]POKE $1000,$01指定したアドレスに値を書き込む
[戻る]
ステートメント:画面関連
表記凡例使用例説明
CLSCLSCLS画面を消去する
LOCATELOCATE Y,XLOCATE 10,10表示位置を指定する(Y:0〜23,X:0〜31)
他のBASICと違い、X,Yの記述が逆な点に注意
PRINTPRINT [式[{; | ,}[式2...]]]PRINT "HELLO,WORLD"画面上に表示する
OPTIONOPTION {{CMODE0 | CMODE1} | {OVF0 | OVF1}}OPTION CMODE0画面のモードとオーバーフロー発生時の制御を設定する(どちらか一方のみ指定可能)
CMODE0 : 反転キャラクタモード(反転表示にはFLD関数による指定が必要)
CMODE1 : ユーザ定義キャラクタモード(表示は通常でユーザ定義文字の表示はFLD関数による指定が必要)
OVF0 : オーバーフロー発生時にイベントが発生
OVF1 : オーバーフロー発生時でもプログラムを続行
[戻る]
ステートメント:その他
表記凡例使用例説明
BEEPBEEP [{0 | 1}]BEEP 1ブザーを鳴らす
省略時は約0.1秒ブザーを鳴らす
0 : ブザーを止める
1 : ブザーを鳴らす
HCOPYHCOPYHCOPY画面の内容を印字する
LPRINTLPRINT [式[{; | ,}[式2...]]]LPRINT A$プリンタに印字する(書式はPRINTと同じだがコントロールコードの動作は一部異なる)
PICKPICK 整数変数PICK K現在押下されているキーコードを返す(押下されていない場合は「0」)
[戻る]
文字列関数 ※変数型
表記凡例使用例説明
ASCASC(文字列式)ASC("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式[,...])CHR$(41)指定したキャラクタコードの文字を返す
SPCSPC(数式)SPC(A)指定した位置まで空白を返す(出力文字式内でのみ使用)
TABTAB(数式)TAB(A)指定した位置までタブを返す(出力文字式内でのみ使用)
HEX$HEX$(数式)HEX$(255)10進数を16進数文字列に変換する
LEFT$LEFT$(文字列式,式)LEFT$(A$,2)文字列の左側から式で指定した桁数の文字列を返す
MID$MID$(文字列式,式1[,式2])MID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す
RIGHT$RIGHT$(文字列式,式)RIGHT$(A$,2)文字列の右側から式で指定した桁数の文字列を返す
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
[戻る]
数値関数 ※演算子
表記凡例使用例説明
SGNSGN(数式)SGN(A)符号を返す
数式>0: 1
数式=0: 0
数式<0:-1
RNDRND(数式)RND(A)0から数式-1までの乱数を返す
[戻る]
数学関数
表記凡例使用例説明
ABSABS(数式)ABS(-1000)絶対値を返す
MODMOD(数式1,数式2)MOD(5,2)数式1を数式2で割った余りを返す
[戻る]
その他関数
表記凡例使用例説明
FREFRE(数値)FRE(0)フリーエリアの値を返す(数値はダミー)
PEEKPEEK(アドレス)PEEK($1000)指定したアドレスの値を返す
FLDFLD(機能コード)FLD(0)文字の表示を制御する(OPTION CMODEnによって動作が変わる)
機能コード
0 : ノーマル表示
1 : {反転 | ユーザ定義文字}表示
OPTION CMODE0指定時は反転文字
OPTION CMODE1指定時はユーザ定義文字
VPOSVPOS(数値)VPOS(0)カーソルがあるY座標を返す(数値はダミー)
HPOSHPOS(数値)HPOS(0)カーソルがあるX座標を返す(数値はダミー)
USRUSR(開始アドレス[,レジスタ1[.レジスタ2]])USR($1000,$0140)マシン語プログラムを実行する
レジスタ1には8bit値が指定可能で、インデックスレジスタにセットされる
レジスタ2には16bit値が指定可能で、上位bitは「B」、下位bitは「A」レジスタにセットされる
[戻る]

※ キーボード
一部の文字はSHIFTキーと併用して入力となるが、一般的なキーボードと異なるので特記する

SHIFTと併用で入力
キー入力
0^
U@
I\
O[
P]
K?
L/
M_
CTRLと併用で入力
1[HOME]
2VERIFY
3SAVE
4LOAD
5[DELETE]
6[←]
7[↓]
8[↑]
9[→]
0[INSERT]
-[RUBOUT]
QGOSUB
WRET
EEND
RRUN
TTHEN
YLOCATE
UIF
IINPUT
OOPTION
PPRINT
AAUTO
SSTOP
DDIM
FFOR
GGOTO
HPOKE
JRND(
KREAD
LLIST
;CHR$(
:REM
Z[L.INS]
X[CANCEL]
C[BREAK]
V[GRAPH]
BHCOPY
NNEXT
MCLS
,DATA
.PEEK(

[戻る]

※ PRINT
; : 式を続けて表示する(A;B) 例 1;2
1 2
, : 式をTABで区切って表示する(A,B) 例 1,2
1         2

[戻る]

※ BEEP
POKE 1,nで音程を変更可能
n=$00〜$FF($AA:デフォルト)
数値が小さい程音程は高くなる

POKE 0,0でキークリック音を消す
POKE 0,1でキークリック音を鳴らす

発声用ICであるR6522に直接値を書き込むことである程度の音程を発声させることが可能
周波数は(447443.125/周波数)-2で設定可能
標準的なラ(A)の音は440Hzであるため、この式で計算すると$03F7となる

上記の場合は
POKE $C80B,$E0:POKE $C804,$F7:POKE $C805:$03
と設定することで音が発声される

音を止めるときは
POKE $C80B,$00
とする。

音長は空のFOR〜NEXTで調整すれば音楽を演奏することも可能

[戻る]

※ ユーザ定義文字
ユーザ定義文字はOPTION CMODE1を指定したうえで、PRINT FLD(1)のあとの文字列が$20〜$3Fの場合に表示される
文字パターンは8x8の64bit分で$C000から各文字8bytesずつとなる
文字データはPOKEで直接書き込む

[戻る]

※ 定数型・変数型
数値変数は整数型のみで-32767〜32767までが指定できる範囲である

A$ : 文字列型(A$="TEST")
$  : 16進数形式($FFFF)

[戻る]

※ 演算子
+   : 加算・結合(A+B、A$+B$)
-   : 減算(A-B)
*   : 乗算(A*B)
/   : 除算(A/B)
=   : 等号・代入(A=3、A=B+C)
> < : 不等号・比較(A>3、A<=2)

論理演算子として「*」(AND)、「+」(OR)が使用可能
XORは「(A<B) + (C>D)=1」というような方法で実現可能

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号エラー意味
1CAN'T CONTINUECONTによるプログラムの再開ができない
2SUM CHECKLOAD時チェックサムエラーが発生した
3DIVISION BY ZERO0除算が発生した
4FILE EMPTYプログラムが存在しないのにSAVEしようとした、またはMSAVEで無効なアドレスを指定した
5ILLEGAL LINE NO.異常な行番号を指定した
6INPUTダイレクトモードでINPUTを使用した、または73文字以上を入力しようとした
7LINE TOO LONG行の長さが長すぎる
8NESTINGFOR〜NEXTの入れ子が制限を超えた
9OUT OF DATAREADに対応したDATAがない
10OUT OF MEMORYメモリの領域を超えた
11OVERFLOW値が許容範囲を超えた
12REDIM'D ARRAY配列が再定義された
13SUBROUTINE CALLGOSUBで呼ばれていないのにRETURNが使用された、またはGOSUBの入れ子が15を超えた
14SUBSCRIPT配列の定義を超えて値を入れようとした
15SYNTAXコマンド、またはステートメントの書き方が間違っている
16TYPE MISMATCH変数または定数の型が合わない
17UNDEF'D ARRAY未定義の配列が使用された
18VALUEパラメータが異常、またはLOCATEで画面外を指定した
19VERIFYSAVEされたプログラムがメモリ上のものと異なる

[TOPに戻る]