RexDK編 part 3

RexDKで、データスリム2のアドインを作る。

画像の表示

画像ファイルもできた事ですし、まずこれを表示するプログラムを作ります。

その前に、下準備としてC:\rexdk\Projects\の下にtaroと言うフォルダーを作り、C:\rexdk\Projects\にある[addin.bmp][addin.txt][make.bat]の3ファイルをコピーし[make.bat]を次のように変更しておきます。

@echo off

rem written by Daniel

set prog=taro(変更)
set emu=c:\rexdk\Emulator(\を削除)

set ZCCCFG=c:\rexdk\lib\config\
set PATH=c:\rexdk\bin
SET Z80_OZFILES=c:\rexdk\lib\
SET Z80_STDLIB=c:\rexdk\lib\clib\rex_clib.lib

set temp=c:\rexdk\Projects\tmp

zcc +rex -create-app -o%prog%.bin %prog%.c

rem  For testing, I use -no-cleanup : won't delete tmp files.

mkrex %prog%.bin
del %prog%.bin
ren %prog%.b2 %prog%.bin

makeaddin %prog%
rem(追加) if exist %prog%.rex del %prog%.rex
rem(追加) ren %prog%.ds2 %prog%.rex

bin2mot /O1048576 /2 %prog%.bin addin1.out

copy addin1.out %emu%

del zcc_opt.def

[addin.bmp][addin.txt]を[taro.bmp][taro.txt]に名称変更します。
(ここで内容の変更を行っても良いのですが、私はいつも実機確認段階で行っています。)

これで下準備は終了です。

前項目で、作っておいたbitmapを表示するプログラムを書きます。

#include <rex/rex.h>
#include <stdlib.h>

const char taro1[] = 
{0x08,0x1a,0x02,0x01,0x01,0x00,0x00,0x05,0x1b,0x26,0x3e,0x67,0xad,0x57,
0x6f,0xff,0xff,0xff,0xbf,0xff,0x1f,0x0f,0x03,0x04,0x08,0x08,0x10,0x00};
const char taro2[] = 
{0x08,0x1a,0x00,0x00,0x03,0xbc,0xc3,0x3e,0xf0,0xab,0xd6,0x6d,0xbb,0xbf,
0xbf,0x80,0xbb,0xbf,0xbf,0x5f,0x7b,0x76,0xed,0xf7,0x0b,0x00,0x00,0x00};
const char taro3[] = 
{0x08,0x1a,0x20,0x40,0xff,0x86,0xff,0xbf,0xd6,0x6b,0xb5,0x5e,0xf5,0xff,
0xff,0x00,0xff,0xff,0xff,0xff,0xfd,0xff,0xd6,0x7f,0xa4,0xdb,0x20,0x10};
const char taro4[] = 
{0x08,0x1a,0x00,0x03,0xfc,0x25,0xf8,0xf6,0xdd,0x6b,0xae,0xf5,0xaa,0xff,
0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xf8,0x06,0xeb,0x00,0x00};
const char taro5[] = 
{0x08,0x1a,0x00,0x80,0x00,0x00,0x00,0x00,0xc0,0x78,0xe4,0xbe,0xd7,0xab,
0xff,0x01,0xff,0xff,0xfa,0xf4,0x88,0xd0,0x20,0x80,0x00,0xa0,0x40,0x00};

char *taro_bmps[] = {
    taro1,
    taro2,
    taro3,
    taro4,
    taro5
};

main(){
int x=10;
int y=20;
int i;

    DsDisplayBlockClear(0,0,240,120);
    for(i=0;i<5;i++){
    DsDisplayBitmapDraw( x+i*8, y, taro_bmps[i] , 0);
    }

    while(1){    //単に無限ループを作るために入れてあります。
    }

}    //この位置に改行コードを入れる事。

こんな感じになります。

このファイルを先ほど作成したC:\rexdk\Projects\taroフォルダーにtaro.cと言う名称で保管します。

tato.cのコンパイルは、前項目で作ったaddin.batを起動し、DOSのCDコマンドでtaro.cのあるデレクトリに移動し、make.batを起動すればコンパイルできます。

実際には、次のような操作になります。

C:\rexdk>


Microsoft(R) Windows 9x
   (C)Copyright Microsoft Corp 1981-199x.

C:\rexdk>cd Projects\taro

C:\rexdk\Projects\taro>make

これでエラーが出なければ、コンパイルが終了しアドインが作成されます。

この時点ではまだ終了処理を行っていないので、実機で作動させないで下さい

コンパイルが終了したらC:\rexdk\Emulatorフォルダー内に有るエミュレータ(DsMain.exe)を起動し、bitmapがきちんと表示されていることを確認します。

ここで、注意する事はRexDKでは多次元配列が使えないと言うことです。
あと最後の}の後ろに改行コードを入れないと}をコンパイラが認識しないと言う落とし穴もありました。

参考:エミュレータの使い方

Copyright 2001-2002 Hideo Morotomi
感想、要望は、moro@deneb.freemail.ne.jp又は、掲示板へお願いします。
個人的にはMAILより掲示板に書きこんでもらえた方が嬉しいです。
当Web Site に関する補足事項