234Fermer236
RYGARLe 16/12/2012 à 11:42
Oula la je commence à être perdu ça va trop vite !

voila ce que je fais :

[source=as3]#include <stdlib.h>
#include <lynx.h>
#include <lynxlib.h>
#include "inc\c0.pal"

#define JOY_RIGHT 0x10
#define JOY_LEFT 0x20
#define JOY_DOWN 0x40
#define JOY_UP 0x80
#define BUTTON_OPTION1 0x08
#define BUTTON_OPTION2 0x04
#define BUTTON_INNER 0x02
#define BUTTON_OUTER 0x01
#define BUTTON_PAUSE 0x01


char SCREEN[8160] at (MEMTOP-16320);
char RENDER[8160] at (MEMTOP-8160);


extern char c0[];
extern char c1[];
extern char c2[];
extern char c3[];
extern char c4[];
extern char c5[];
extern char c6[];
extern char c7[];
extern char c8[];
extern char c9[];


extern char SCBc0[];
#asm
_SCBc0 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc1[];
#asm
_SCBc1 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc2[];
#asm
_SCBc2 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc3[];
#asm
_SCBc3 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc4[];
#asm
_SCBc4 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc5[];
#asm
_SCBc5 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc6[];
#asm
_SCBc6 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc7[];
#asm
_SCBc7 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc8[];
#asm
_SCBc8 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm

extern char SCBc9[];
#asm
_SCBc9 dc.b $c7,$10,$20
dc.w 0,0
dc.w 0,0,$100,$100
dc.b $01,$23,$45,$67,$89,$ab,$cd,$ef
#endasm




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 $0f,$b9,$ab,$67,$89,$ab,$cd,$ef
_SCB_DIZAINES dc.b $C7,$90,$20
dc.w 0,0
dc.w 70,50,$100,$100
dc.b $0f,$b9,$ab,$67,$89,$ab,$cd,$ef
#endasm



char *tabchiffres[]={c0,c1,c2,c3,c4,c5,c6,c7,c8,c9};


int i;



void Vsync()
{
#asm
vretrace:
lda $fd0a
bne vretrace
#endasm
}



char main()
{

InitIRQ();
CLI;
SetBuffers(SCREEN, RENDER ,0);
SetRGB(c0_pal);


SCBDATA(SCBc0) = c0;
SCBDATA(SCBc1) = c1;
SCBDATA(SCBc2) = c2;
SCBDATA(SCBc3) = c3;
SCBDATA(SCBc4) = c4;
SCBDATA(SCBc5) = c5;
SCBDATA(SCBc6) = c6;
SCBDATA(SCBc7) = c7;
SCBDATA(SCBc8) = c8;
SCBDATA(SCBc9) = c9;


char compteur;
SCBX(SCB_UNITES) = 81;
SCBY(SCB_UNITES) = 50;
SCBX(SCB_DIZAINES) = 74;
SCBY(SCB_DIZAINES) = 50;

for(compteur=99;compteur>=0;compteur--){
SCBDATA(SCB_UNITES) = tabchiffres(compteur % 10);
SCBDATA(SCB_DIZAINES) = tabchiffres((compteur-(compteur % 10))/10);
DrawSprite(SCB_UNITES);
DrawSprite(SCB_DIZAINES);
for (char i=0;i<120;i++) vsync();//si tu veux le temps de lire ton compteur...
SwapBuffers();
}


}}[/source]

Mais cela ne marche pas il bloque à la ligne 174.

J'ai essayé de déplacer cette ligne "char compteur;" hors du main ce qui me donne comme erreur après compil "illegal function call" aux lignes
SCBDATA(SCB_UNITES) = tabchiffres(compteur % 10);
SCBDATA(SCB_DIZAINES) = tabchiffres((compteur-(compteur % 10))/10);