2023年4月
            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            

カテゴリー

ブログパーツ

無料ブログはココログ

« PICで走るTiny-BASIC | トップページ | PICで走るTiny-BASIC(続きの続き) »

2011年2月18日 (金)

PICで走るTiny-BASIC(続き)

青春の想い出に頼ってばかりもいられないので、今回のBASICの仕様を作るのに、これらの古本を参考にしました。

Dscn1499

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のほうが通りがいいのでは?

Dscn1487_2

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(続きの続き) »

管理人のページ」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: PICで走るTiny-BASIC(続き):

« PICで走るTiny-BASIC | トップページ | PICで走るTiny-BASIC(続きの続き) »