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

JR BASIC V5

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

JR-200はキーボードが特殊である。
CTRLキーと併用で特殊キーやBASICコマンドを入力することが可能。
特殊キーの一覧は備考欄で示す。

JR BASIC Ver5.x 簡易リファレンス
コマンド
表記凡例使用例説明
AUTOAUTO [行番号][{, | -}増分]AUTO 100先頭に自動的に行番号を発生させる(増分を省略した場合は10)
LISTLIST [行番号][{, | -}[行番号2]]LIST
LIST 100,200
メモリ上のプログラムを表示する
指定した範囲の行番号を表示する
DELETEDELETE [行番号][{, | -}[行番号2]]DELETE 100,200
DELETE 100-200
指定した行番号を削除する
指定した範囲の行番号を削除する
FINDFIND 検索文字列[,[行番号][{, | -}[行番号2]]]FIND "PRINT"リスト中から文字列を検索し、該当する行を表示する
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CONTCONTCONTSTOPやBREAKキーで終了したプログラムの実行を再開する
RUNRUN [{"ファイル名"} | 行番号}]RUNプログラムを実行する
ファイル名を指定した場合はロード後、実行する
行番号を指定した場合は指定行から実行する
SAVESAVE "ファイル名"SAVE "TEST"カセットテープにプログラムを保存する
MSAVEMSAVE "ファイル名",開始アドレス,終了アドレスMSAVE "TEST",$1000,$2000カセットテープにマシン語プログラムを保存する
LOADLOAD ["ファイル名"]LOAD "TEST"カセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
MLOADMLOAD ["ファイル名"][,開始アドレス]MLOAD "TEST"カセットテープからマシン語プログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
開始アドレスが省略された場合はMSAVEでセーブしたときの開始アドレスを使用
VERIFYVERIFY ["ファイル名"]VERIFY "TEST"カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
MERGEMERGE ["ファイル名"]MERGE "TEST"カセットテープのプログラムとメモリ上のプログラムをマージする(ファイル名を省略した場合は最初に見つかったプログラムをマージする)
MONMONMONモニタモードに移行する
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
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サブルーチンを呼び出す
RETURNRETURNRETURNサブルーチンから復帰する
GOTOGOTO 行番号GOTO 1000指定した行番号から実行する
IF...THENIF 論理式 THEN {文 | 行番号}IF A=0 THEN 10論理式の条件判断をする
ON...GOTOON 式 GOTO 行番号[,行番号2][,...]ON A GOTO 100,200式の値に応じて指定された行番号へ分岐する
ON...GOSUBON 式 GOSUB 行番号[,行番号2][,...]ON A GOSUB 100,200式の値に応じて指定された行番号のサブルーチンを呼び出す
[戻る]
ステートメント:変数関連
表記凡例使用例説明
CLEARCLEAR [最大領域]CLEAR
CLEAR $7000
変数や配列を初期化する(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)配列変数の定義をする
RANDOMIZERANDOMIZERANDOMIZE乱数系列を初期化する
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
POKEPOKE アドレス,数式[,...]POKE $1000,$01指定したアドレスに値を書き込む
[戻る]
ステートメント:ファイル関連
表記凡例使用例説明
OPENOPEN "{I | O}",{0 | 1},ファイル名OPEN "I",0,"TEST"ファイルをオープンする
I : ファイルを入力モードでOPENする
O : ファイルを出力モードでOPENする
CLOSECLOSE {0 | 1}CLOSE 1EOFのビットを設定する
INPUT#INPUT# {0 | 1},[EOF行番号,]変数名[,変数名2[,...]]INPUT# 1,A$ファイルからデータを変数に入力する
PRINT#PRINT# {0 | 1}[式[;式2[...]]]PRINT# 1,A$ファイルにデータを出力する
[戻る]
ステートメント:画面関連
表記凡例使用例説明
CLSCLSCLS画面を消去する
LOCATELOCATE X,YLOCATE 10,10表示位置を指定する(X:0〜31,Y:0〜23)
JR BASIC V1とX,Yの記述が逆な点に注意
PRINTPRINT [式[{; | ,}[式2...]]]PRINT "HELLO,WORLD"画面上に表示する
COLORCOLOR フォアグラウンドカラーコード[,[バックグラウンドカラーコード][,ディスプレイモード]]COLOR 7,0カラーを設定する
PLOTPLOT (X,Y)PLOT 10,10画面に4x4dotの図形を描画する(X=0〜63,Y=0〜47)
色はCOLORのフォアグラウンドカラーコードに依存する
[戻る]
ステートメント:サウンド関連
表記凡例使用例説明
BEEPBEEP [{0 | 1}]BEEP 1ブザーを鳴らす
省略時は約0.5秒ブザーを鳴らす
0 : ブザーを止める
1 : ブザーを鳴らす
PLAYPLAY "{B | F}",演奏データアドレス[,演奏データアドレス2[,演奏データアドレス3]]PLAY "B",$3000,$3100,$3200音楽を演奏する
TEMPOTEMPO 数値TEMPO 120テンポを設定する(1〜255)
SOUNDSOUND 周波数,音長SOUND 440,50指定した周波数(0〜65535Hz)の音を音長分(TEMPO依存)鳴らす
TEMPO 120のとき、音長50でおよそ1sとなる
[戻る]
ステートメント:その他
INITPINITPINITPプリンタを初期化する
HCOPYHCOPYHCOPY画面の内容を印字する
LLISTLLIST [行番号][{, | -}[行番号2]]LLIST
LLIST 100,200
メモリ上のプログラムを印字する
指定した範囲の行番号を印字する
LFINDLFIND 検索文字列[,[行番号][{, | -}[行番号2]]]LFIND "PRINT"リスト中から文字列を検索し、該当する行を印字する
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$)文字列の文字数を返す
[戻る]
数値関数 ※演算子
表記凡例使用例説明
INTINT(数式)INT(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で割った余りを返す
SINSIN(数式)SIN(3.14)正弦(サイン)の値を返す
COSCOS(数式)COS(3.14)余弦(コサイン)の値を返す
TANTAN(数式)TAN(3.14)正接(タンジェント)の値を返す
EXPEXP(数式)EXP(1)自然対数の低(e)に対する指数関数の値を返す
LOGLOG(数式)LOG(1)自然対数の値を返す
SQRSQR(数式)SQR(2)平方根の値を返す
[戻る]
その他関数
表記凡例使用例説明
FREFRE(機能コード)FRE(0)フリーエリアの値を返す
機能コード
0 : プログラム領域を除いた残りメモリ
0以外 : プログラム領域と変数領域を除いた残りメモリ
PEEKPEEK(アドレス)PEEK($1000)指定したアドレスの値を返す
VARPTRVARPTR(変数名)VARPTR(T)変数が割り当てられているアドレスを返す
VPOSVPOS(数値)VPOS(0)カーソルがあるY座標を返す(数値はダミー)
HPOSHPOS(数値)HPOS(0)カーソルがあるX座標を返す(数値はダミー)
STICKSTICK(機能コード)STICK(0)ジョイスティックの状態を返す
機能コード
0 : キーボードの状態
1 : ジョイスティック1の状態
2 : ジョイスティック2の状態
USRUSR(開始アドレス[,レジスタ1[.レジスタ2]])USR($1000,$0140)マシン語プログラムを実行する
レジスタ1には8bit値が指定可能で、インデックスレジスタにセットされる
レジスタ2には16bit値が指定可能で、上位bitは「B」、下位bitは「A」レジスタにセットされる
[戻る]

※ キーボード

CTRLと併用で入力
キー入力
1[CLS]
2[HOME]
Z[L.INS]
X[CANCEL]
C[BREAK]

[戻る]

※ MON
D [adr] : Dump(ダンプリスト表示)
G [adr] : Go(マシン語プログラムを実行)
M [adr] : Modify(メモリを編集)

[BREAK]でBASICに戻る

[戻る]

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

[戻る]

※ COLOR
COLOR フォアグラウンドカラーコード[,[バックグラウンドカラーコード][,ディスプレイモード]]

ディスプレイモード
0 : ノーマルモード
1 : ユーザ定義文字モード
2 : 反転文字モード
3 : バックグラウンドカラーチェンジモード(カーソル行全体が変化する)

0Black
1Blue
2Red
3Magenta
4Green
5Cyan
6Yellow
7White

ユーザ定義文字
ユーザ定義文字は2グループ定義可能

キャラクタコード$20〜$3Fが$C000〜$C0FF
キャラクタコード$40〜$5Fが$C400〜$C4FF

文字パターンは8x8の64bit分で各文字8bytesずつとなる
文字データはPOKEで直接書き込む

[戻る]

※ PLAY
TEMPOは1分間に4分音符がn回としたとき、(120/n)*109で計算
ex.)60回/minなら(120/60)*109=218
TEMPOの設定数値からn回を求めるなら(120*109)/TEMPOで計算
ex.)TEMPO 50なら(120*109)/50=261

データはMONかPOKEでRAMに書き込んで使う
音長,音階の2bytesで構成

音長テーブル
$00:データ終了
テーブル以外の長さも指定可能なので音長4分の3連符なら$08と定義することで実現可能

音符 音長
16分$06
付点16分$09
8分$0C
付点8分$12
4分$18
付点4分$24
2分$30
付点2分$48
全符$60

音階テーブル(データ:周波数[近似値])
$00:休符

音階 O1 O2 O3 O4 O5
C$01:66$0D:130$19:261$25:523$31:1046
C#$02:70$0E:138$1A:276$26:552$32:1104
D$03:73$0F:146$1B:292$27:584$33:1168
D#$04:78$10:155$1C:310$28:620$34:1240
E$05:83$11:165$1D:330$29:660$35:1320
F$06:87$12:175$1E:350$2A:700$36:1400
F#$07:93$13:184$1F:368$2B:736$37:1472
G$08:96$14:196$20:396$2C:792$38:1584
G#$09:104$15:208$21:416$2D:832$39:1664
A$0A:110$16:220$22:440$2E:880$3A:1760
A#$0B:117$17:233$23:466$2F:932$3B:1864
B$0C:123$18:247$24:494$30:988$3C:1976

[戻る]

※ 定数型・変数型
整数型 : ±9999999999
固定小数点型 : 有効桁数9桁(0.nnnnnnnnn〜nnnnnnnn.n)
浮動小数点型 : ±2.93873588E-38〜±1.70141183E+38

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

[戻る]

※ 演算子
+   : 加算・結合(A+B、A$+B$)
-   : 減算(A-B)
*   : 乗算(A*B)
/   : 除算(A/B)
^   : べき乗(A^B)
=   : 等号・代入(A=3、A=B+C)
> < : 不等号・比較(A>3、A<=2)
AND : 論理積(A AND B)
OR  : 論理和(A OR B)
NOT : 否定(NOT A)

XORは「(A<B) + (C>D)=1」というような方法で実現可能

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号エラー意味
1CONTCONTによるプログラムの再開ができない
2Division by zero0除算が発生した
3File accessOPENされていないファイルに入力しようとした、またはOPENされているファイルを再度OPENしようとした
4Illegal fn-callパラメータが範囲を超えている
5Line too long行の長さが長すぎる
6NestingFOR〜NEXTの入れ子が制限を超えた
7Out of dataREADに対応したDATAがない
8Out of memoryメモリの領域を超えた
9Overflow値が許容範囲を超えた
10Redim'd array配列が再定義された
11RETURNGOSUBで呼ばれていないのにRETURNが使用された
12Subscript配列の定義を超えて値を入れようとした
13Syntaxコマンド、またはステートメントの書き方が間違っている
14Tape readカセットテープの読込時にエラーが発生した
15Type mismatch変数または定数の型が合わない
16Undef'd line-no.未定義の行番号を指定した
17Valueパラメータが異常、またはLOCATEで画面外を指定した
18VerifySAVEされたプログラムがメモリ上のものと異なる

[TOPに戻る]