v1.1→v1.2での変更点

v1.1→v1.2の間にモニタープログラムの機構がかなり変化したので
以下に注意するべき点を列挙する。

試験がまだ不十分であると考えられる機能については
(EXPERIMENTAL)と表示してあるので、使用に当たっては注意すること。

ヘッダファイルのファイル名の変更

モニタ内関数のヘッダファイルがh8bios.hからmon_func.hへと名称変更された。

標準関数用スタブの追加(EXPERIMENTAL)

printfやscanf,malloc,sin,cos等が使えるようになった。
出力はシリアルポートへ、入力はシリアルポートから行なわれる。

hinkey(),hflush()の追加

シリアル入出力周りの関数として、hinkey()とhflush()が追加されている。
hflush()はシリアルの送信が完了するまで待機する関数である。
プログラムがどこまで実行されたかを正確に知りたい時に役立つ。
hinkey()は入力待ちを行なわない一文字入力である。
BASICのINKEY$とほぼ同等のことをする。
詳しくはmon_func.hを参照されたし。

テトリスを作る為に実装された関数だという噂もあったりなかったり:)

ログ機能の追加 (EXPERIMENTAL)

シリアル通信が使えない状況でも、メモリー内にログを記録してリセット後に見ることが出来る。
デバッグに役立つ筈である。詳しくはsamples/log/main.cを参照。

外部シリアルEEPROMのサポート(EXPERIMENTAL)

24C1024等へのアクセスのサポートが追加された。詳しくはEEPROMサポートについてを参照。

リセット/Goスイッチのサポート(EXPERIMENTAL)

詳しくは別ドキュメントを参照。

既定の割り込み動作の変更(EXPERIMENTAL)

今までint_regist()によって登録されていない割り込みが発生した場合、暴走する可能性が高かったが、 v1.2ではhputstr()によって端末に警告を出力することを試みる。
大抵のケースで、シリアル端末への表示は成功しないと思われるので、 今後ログ機能の使用状況をみてそちらに変更される可能性がある。

モニター内関数のリンク方法の変更

v1.2からモニター内関数をリンクする方法が変更された。
v1.1ではROMの一部分に必要な関数(hputstr,wait_msecなど)のアドレスが配置され、 ユーザープログラムではそれを読み込んで関数を呼び出すという手法をとっていたが、 v1.2からはユーザープログラムをリンクする際に、 モニターのオブジェクトファイル(monitor.coff)を--just-symbolsオプションを付けて リンクすることによって正常な関数呼び出しを作成する。

このことによって生じた変更点を列挙する。


H8モニターのページへ