since : 2001.11.1 Junk Shop
DataSlim2's Room
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では多次元配列が使えないと言うことです。
あと最後の}
の後ろに改行コードを入れないと}
をコンパイラが認識しないと言う落とし穴もありました。