vinceLe 16/12/2012 à 21:50
#include <lynx.h>#include <lynxlib.h>char SCREEN[8160] at (MEMTOP-16320);char RENDER[8160] at (MEMTOP-8160);char drawPending;VBL() interrupt{ if (drawPending) { SwapBuffers(); drawPending = 0; }}void Vsync() { #asm vretrace: lda $fd0a bne vretrace #endasm } char c0[]={ 4,0x01,0x11,0x00, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x01,0x11,0x00,0};char c1[]={ 4,0x00,0x10,0x00, /*001000*/ 4,0x01,0x10,0x00, /*011000*/ 4,0x10,0x10,0x00, /*101000*/ 4,0x00,0x10,0x00, /*001000*/ 4,0x00,0x10,0x00, /*001000*/ 4,0x00,0x10,0x00, /*001000*/ 4,0x01,0x11,0x00, /*011100*/0};char c2[]={ 4,0x01,0x11,0x00, 4,0x10,0x00,0x10, 4,0x00,0x00,0x10, 4,0x00,0x01,0x00, 4,0x00,0x10,0x00, 4,0x01,0x00,0x00, 4,0x11,0x11,0x10,0};char c3[]={ 4,0x11,0x11,0x00, 4,0x00,0x00,0x10, 4,0x00,0x11,0x00, 4,0x00,0x01,0x00, 4,0x00,0x00,0x10, 4,0x00,0x00,0x10, 4,0x11,0x11,0x00,0};char c4[]={ 4,0x00,0x01,0x00, 4,0x00,0x11,0x00, 4,0x01,0x01,0x00, 4,0x01,0x01,0x00, 4,0x11,0x11,0x10, 4,0x00,0x01,0x00, 4,0x00,0x01,0x00,0};char c5[]={ 4,0x11,0x11,0x10, 4,0x10,0x00,0x00, 4,0x10,0x00,0x00, 4,0x11,0x11,0x00, 4,0x00,0x00,0x10, 4,0x00,0x00,0x10, 4,0x11,0x11,0x00,0};char c6[]={ 4,0x01,0x11,0x00, 4,0x10,0x00,0x00, 4,0x10,0x00,0x00, 4,0x11,0x11,0x00, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x01,0x11,0x00,0};char c7[]={ 4,0x11,0x11,0x10, 4,0x00,0x01,0x00, 4,0x00,0x01,0x00, 4,0x00,0x10,0x00, 4,0x00,0x10,0x00, 4,0x01,0x00,0x00, 4,0x01,0x00,0x00,0};char c8[]={ 4,0x01,0x11,0x00, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x01,0x11,0x00, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x01,0x11,0x00,0};char c9[]={ 4,0x01,0x11,0x00, 4,0x10,0x00,0x10, 4,0x10,0x00,0x10, 4,0x01,0x11,0x10, 4,0x00,0x00,0x10, 4,0x00,0x01,0x00, 4,0x01,0x10,0x00,0};char pal[] = {0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x08,0x0F,0x08,0x00,0x0F,0x00,0x00,0x00, //0G0x00,0x0F,0x4F,0x0F,0x00,0xF0,0xF8,0x00,0x88,0x8F,0xFF,0xFF,0xFF,0x80,0x00,0x00 //BR};void Vsync() {#asmvretrace: lda $fd0a bne vretrace#endasm}char WaitButton(){ char key; while ( (key = joystick) == 0); while ( joystick ); return key;}extern char SCB_UNITES[];extern char SCB_DIZAINES[];#asm_SCB_UNITES dc.b $C7,$90,$20 dc.w 0,0 dc.w 80,50,$100,$100 dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef _SCB_DIZAINES dc.b $C7,$90,$20 dc.w 0,0 dc.w 73,50,$100,$100 dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef #endasmchar *tabchiffres[]={c0,c1,c2,c3,c4,c5,c6,c7,c8,c9};char main(){ char i; char j; InitIRQ(); CLI; SetBuffers(SCREEN, RENDER ,0); InstallIRQ(2,VBL); EnableIRQ(2); EnableIRQ(1); SetRGB(pal); while(1){ for(i=99;i>=0;i--){ DrawFBox(0,0,160,102,0); SCBDATA(SCB_UNITES)=tabchiffres[i%10]; SCBDATA(SCB_DIZAINES)=tabchiffres[i/10]; DrawSprite(SCB_DIZAINES); DrawSprite(SCB_UNITES); drawPending=1; for(j=0;j<50;j++) Vsync(); } }}
(chez moi, ça marche)