[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1354] Re: music.asm のプログラミング



  こんばんは、川合です。


Koyanagi Masaaki さんは 2001/01/11 20:32:52 の「[OSASK 1353] mus
ic.asm のプログラミング」で書きました:

>music2.asm を参考にして音楽データを作ってみたのですが、

  うーんと、これは「music2.ask」のことのようですね。

>コメントで説明されている
>>	unsigned char musicdata[266], [2 /* for align */];
>>	// このmusicdataのサイズの決めかた
>>	// 3.アセンブル時に出力される.lstファイルを開いて、アドレスを引き算して求める
>>	// 4.WORKのサイズは4バイトの倍数でなくてはならないので、端数を忘れずに付ける
>についてよく分からないのでお尋ねします。

  はい、お答えします。

>この時 musicdata のサイズ = 0x1AF - 0x128 + 0x1 = 136(10進)
>WORKのサイズ = 0x1AF - 0x20 + 0x1 = 400
>なので結局
>unsigned char musicdata[136], [0 /* for align */];
>となるような気がするのですが、正しいでしょうか?

  正しいと思います。多分、それでうまくいくでしょう。

  ASKAがちゃんとしていれば、

    static unsigned char musicdata[] = {
        Qcmd, 3,
        O4A,L8, O5G,L8
    };

などと書けるはずなんですが、静的変数を上手に扱えなくて、お手数を
かけてすみません。

  サイズは少し大きくなりますが、C言語で書くという手もあります。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.or.jp
Homepage http://www.imasy.or.jp/~kawai/