2020.6.27
前へ
次へ
ホームページトップへ戻る

[新連載]復活!TINY BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
すべてはここからはじまりました。
中日電工も。
40年前を振り返りつつ新連載です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜



[第26回]


●メインループ

前回はアドレス0000から始まるTINY BASICのスタート部分のプロカグラムについて説明をしました。
TINY BASICは起動すると最初に必要な初期設定をしたあと、’TINY BASIC’のメッセージを表示してからアドレス00BAから始まる「メインループ」にジャンプします。
下はメインループの説明文です。



MAIN LOOPではTINY BASICプログラム(ユーザープログラム)がメモリに格納されます。

MAIN LOOPの先頭でSPを初期化して(SPに1400をセットして)、”OK”を表示した後いくつかのシステム変数の初期化を行ないます。
それから”>”を表示して入力待ちになります(ここからがメインループの繰り返しプログラムになります)。
最初に0ではない16ビットの数(1〜32767)が入力されるとそれは行番号になります。
その数と、それに続く文と最後のCRコードまで(以下それを行と呼びます)がメモリに格納されます。
(このときすでに先に入力された行があるときには、行番号にしたがってその番号順の並び位置に新しい入力行が追加または挿入されます)
そのときもしも同じ行番号の行がすでに存在するときはその行が新たに入力した行に置き換えられます。
もしも行番号だけが入力された場合には、その行番号の行がメモリから削除されます。

そのようにして行が挿入されまたは置き換え、削除されたあとはまた最初の入力待ちループに戻ります。
このループは行番号0の行か行番号がない行が入力されると中断されます。
そして処理は「ダイレクトモード」に移行します。

TINY BASICのユーザープログラムエリアは”TXTBGN”(アドレス1017)から”TXTEND”(1366)の範囲です。
TINY BASICの起動後はつねに”TXTBGN”からユーザプログラムの格納を始めます。
まだユーザプログラムが格納されていない「未使用領域」の先頭アドレスは”TXTUNF”の値によって示されます。

ユーザープログラムを翻訳実行中のとき、その行の行番号位置のアドレスは”CURRNT”によって示されています。
メインループの実行中またはダイレクトコマンドの実行中は”CURRNT”の値は0を示すアドレスになります。

下がメインループのプログラムリストです。
ここで行なわれている概要は上の説明文の通りです。
これからそのプログラムを少し細かく見ていくことにしたいのですが、本日は時間がありません。
その説明は次回にあらためてすることにいたします。



復活!TINY BASIC[第26回]
2020.6.27upload

前へ
次へ
ホームページトップへ戻る