WonderWitch 技術情報 2000/11/22

2000年11月22日公開の技術情報です。

stat()、getent()に渡すバッファはauto変数に

ライブラリ関数stat()、getent()はファイル情報を取得するバッファとなる stat構造体へのポインタを引数で受け取ります。 現バージョンのFreyaOSでは、このバッファをauto変数としてスタック上に確保した場合のみ正しく動作します。 この問題はSRAMのバンク切替えに起因しており、static変数やグローバル変数として確保すると、 オペレーティングシステムのワークエリアを破壊する恐れがあります。

この問題に対応したFreyaOSは現在動作検証を行なっており、次回、アップデート時に公開予定です。 対応版OSの公開までは両関数用のバッファはauto変数として確保して下さい。


ヘッダーファイルの#endifに付加するコメントを修正しました

一部のヘッダーファイルで、#endif ディレクティブのうしろのシンボル部分がコメントアウトされておらず、 使用するコンパイラによって警告メッセージを発生させる問題がありました。

この問題を修正したヘッダーファイルを準備し、ダウンロードページで公開しました。

ダウンロードページ


rewind()関数に不具合がありました

ライブラリ関数rewind()がファイル末尾に達した際に発生したエラーをクリアせず、 正しく動作しない不具合がありました。

修正したrewind()関数を含むライブラリを準備し、ダウンロードページで公開しました。

ダウンロードページ


SPRITE_SET_DATAの機能説明に不具合がありました

画面制御BIOSの機能、SPRITE_SET_DATAに関する説明が不十分で、指定が正しく行なえませんでした。

SPRITE_SET_DATA機能で DS:DX (C言語ではvoid far *data_p)に指定するデータに関する説明で、 4バイトの連続データ中、スプライトの表示位置は X座標 Y座標の順に並べるように読めますが、 この順で指定すると表示位置のX座標とY座標が逆になってしまいます。 これは、この機能についてはX座標とY座標の指定順が逆転するためで、正しくは、Y座標 X座標 の順に指定します。

この点についての記述がなかったため、説明を追加したオンラインドキュメントを準備し、 ダウンロードページで公開しました。

ダウンロードページ


memcpy()関数の説明に誤りがありました

ライブラリ関memcpy()の説明で、「転送元と転送先の領域は重なっていても構いません」となっていますが、 これは誤りで、転送元と転送先の領域は重なっていてはいけません。

この修正をおこなったオンラインドキュメントを準備し、ダウンロードページで公開しました。

ダウンロードページ


SoundILのプリセット音源に関する説明を追加しました

音源制御ドライバSoundILのプリセット音源に関する説明がありませんでした。 音色の具体的な定義は、WWitch/il/sound/inst.prg に基づいているので、 このファイルを参照するようオンラインドキュメントに案内を追加しました。

修正を行なったオンラインドキュメントをダウンロードページで公開しました。

ダウンロードページ


Copyright (C) 2000 Qute Corporation. All rights reserved.
Copyright (C) BANDAI 2000