超ミニBASIC for H8/3048 改版履歴
Copyright (C) 2004 A.Hiramatsu (04/08/28)
ver.1.01 まではあまり詳しく書いていなかったのですが、ver1.02 以降はどこがどう変わったのか、なるべく詳しく書いていきます。
2002/11/21 初版
2003/01/12 ver1.01
PRINT文キャストLSET、RSET、USGNのバグ取り
LPRINT文のバグとり
BSET文の仕様変更
2003/05/25 ver1.02
・改善点
文、関数、内蔵I/Oアドレス定数などのハッシュテ−ブルのエントリを増やし、検索が高速になった。
ラベルの個数制限を無くした。また、頻繁に呼び出されるラベルほど速く検索できるようになった。
シリアルポートの文字送信ルーチンの中で並行して文字受信も行うようにし、文字とりこぼしの可能性がかなり低くなった。(シリアル通信ソフトの文字ディレイの設定を0msにしても大丈夫)
・バグ取り
EXTS関数が使えない(ネ−ムテ−ブルのリンク漏れ)という情けないバグを直した。
LCLEAR文でパラメ−タをつけずに実行するとハングするバグを直した。
(問題はINITLCD文にあった)
H8/3052 25MHz版で、キャラクタ液晶モジュール用のディレイがH8/3048 16MHz版と同じクロック数しかなかったのをクロック相応に直した。
・仕様変更
LISTコマンドやDUMPコマンドで実行を中断できなかったのを、CTRL−Cで中断できるようにした。また、CTRL−Sで一時停止できるようにした。
NEWコマンドでBASICテキストの開始番地に奇数番地を指定できないようにした。
(以前のバージョンでは奇数番地を指定できたが、指定すると異常動作した)
割り込みジャンプテーブルの初期化をリセット後一度だけ行うように変更した。
(以前のバージョンではリセット後とスタートアップスクリプト実行後の2度行っていたが、それだとスタートアップスクリプトで割り込みジャンプテーブルを設定しても無効になってしまう)
2003/06/23 ver1.02a
変数B、BTST関数を使おうとするとハングするバグを修正。(関数ネームテーブルのリンクが異常だった)
また、 cmb2mot.exe を3664版と共通にした。
特に機能Upはしておらず、バグを取っただけなのでバージョンは 1.03 ではなく 1.02a です。
2003/06/30 ver1.02a'
BASICインタプリタ自体に変更はなし。
添付の変換ソフト cmb2mot.exe のバグを修正(一行の長さが約30文字を越えると出力するmotファイルがおかしくなる)
2003/09/14 ver1.02b
REPEAT〜UNTILループ中、構造化IF構文でBREAKするとエラーになるバグを修正
Ver1.02a では以下のプログラムはエラーになりました
10 I=0 20 REPEAT 30 PRINT I 40 IF(I=5) {BREAK} ' 1行IF文なら大丈夫 50 I=I+1 60 UNTIL I=10
LISTコマンド、DUMP文等の実行中、Ctrl−S、Ctrl−Cキーの利きが悪いという問題点を改善
その他、害は無いものの無意味なコードを取り除いた
2004/02/22 ver1.02c
キャリーフラグをクリヤする際、割り込み禁止フラグまでクリヤするという大ボケなことをやっていた箇所が2箇所あったので直した
誤)ANDC #H'7E,CCR
正)ANDC #H'FE,CCR
2004/08/28 ver1.03
連続する空白を圧縮する。ただし、クオーテーションで囲まれている範囲は圧縮しない
内蔵I/Oアドレス定数のハッシュテーブルが208エントリになり、内蔵I/Oアドレス定数の検索が早くなった
割り算で、割る数、割られる数が共に32ビット数値で同じ数の場合結果が0になるというマヌケなバグを直した
Ver 1.02c: PRINT 12345678/12345678 → 0
Ver 1.03: PRINT 12345678/12345678 → 1