PICで走るTiny-BASIC(続き)
青春の想い出に頼ってばかりもいられないので、今回のBASICの仕様を作るのに、これらの古本を参考にしました。
I/Oは77年8月号でSC/MPのNIBLの記事が、トラ技はちょっと後の82年2月号で、Tiny-BASIC内蔵のSC/MPIIIの記事があります。
ちなみに、I/Oの広告によると8080が9800円、2102(1kbitRAM)が950円の時代でした。懐かしいですね。
僕は古いマイコンチップも持っていて、写真の上のがINS8073ことSC/MPIIIです。いずれは動かしてみようと思っています。下のヤツはRCAのCDP1802、COSMACのほうが通りがいいのでは?
HANA-BASIC 0.3のラフ仕様です。(インタープリタは大文字小文字の区別をしません)
●モニタ
ターミナルからのコマンドやプログラム入力を受け付ける。BSキーで入力文字の訂正も出来る。
■コマンドモード(プロンプトが"?")
・入力したBASICコマンドをダイレクト実行
・RUN 入力モードで保存したプログラムを実行
・LOAD プログラム入力モードに移行
・CTRL+C システムリセット
■プログラム入力モード(プロンプトが">")
・入力したプログラムを一行ずつ保存(一行最大80文字)
・EOF コマンドモードに移行
●変数、定数、式
変数 A-Zの26個。符号付き16bit
定数 10進定数の他、0x8000のような16進定数、"...文字列..."はPRINT文でのみ使用可。
算術演算 左から順に実行。四則演算と、C同様の論理演算(&.|,~)
条件演算 左から順に実行。C同様(==,!=,<,>,=<,=>)
カッコは使えない。
●メモリ参照子@
@+定数または変数で配列(メモリ)などに16bitでアクセス
@0-@29 スクラッチパッドメモリ(1次元の配列のように使用できる)
@30-@34 AD変換チャネル読み込み(10bit)
@35 キーコード読み込み(シリアル入力1文字読み込み、1バイト)
@36 乱数読み込み(0-255)
@40 PORT Bへのデータ出力(1バイト)
@100-@1000 EEPへのデータ読み書き。電源を切っても消えないのでデータファイルとして利用可。
●PRINT
ターミナルに出力。
PRINT "ANSWER=" ;
PRINT A
行末が ; ならば改行しない。
●INPUT
ターミナルから数値を入力。
INPUT A
数値(10進のみ)を入力しリターンキーを押すと変数に取り込む。
●IF〜THEN
IF A>10 THEN PRINT "OVER!"
条件成立(式の値が1以上なら)THEN以降を実行
●GOTO,GOSUB,RETURN, :(ラベル識別子)
A=0
:L0
PRINT A
A=A+1
IF A<10 THEN GOTO L0
このように使う。ラベルは何文字でもよいが、最初の2文字のみで区別する。
GOSUBスタックは8レベル
●FOR〜NEXT
やはりBASICならこれがないと!
FOR I=1 TO 100
PRINT I
NEXT I
NEXTのあとの変数名は見ていないので省略可。また、入れ子は可能だがスタックはGOSUBと共用。
●DELAY
DELAY 100
のように使う。プログラムを指定時間待たせる。単位はms。
(なお、現在のBASICプログラムの実行速度は、8MHz内蔵クロックで1行平均10ms程度。遅いですね)
●END
こんなところです。続きは後ほど。
« PICで走るTiny-BASIC | トップページ | PICで走るTiny-BASIC(続きの続き) »
「管理人のページ」カテゴリの記事
- スパイ映画に出てきそうな高一再生検波受信機(2022.12.10)
- 「超小型」電池管再生検波ポケットラジオ(2022.11.08)
- サブミニ管5678と大型バーアンテナの再生検波ポータブル(2022.07.14)
- 電池管マイブーム到来(2022.07.01)
- グレイ・ウォルターの真空管式電子カメを作ってみる(2022.06.27)
コメント