1

Bon ca par exemple :

move.l buffer1,a0
lea 3840(a0),a0
move.l a0,buffer2

J'aurai d'autres questions biensur niark niark niark...
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

2

char (*buffer1)[3840],(*buffer2)[3840];
buffer2=buffer1+1;

[edit]Edité par Kevin Kofler le 30-06-2001 à 01:37:15[/edit]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

char buffer[3840*2],*buffer1,*buffer2;
buffer1=buffer;
buffer2=buffer+3840;

euh c bon ca ? smile
avatar
pwet

4

arf il a posté avant moa l'autre la wink
avatar
pwet

5

>Bill-Bob: euh c bon ca ? smile

Oui. Et ça a le mérite d'être plus lisible que ce que je viens de proposer.

Une autre différence: tu alloues déjà tes buffers, dans mon code, il faut les allouer séparément.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

pasque ca ca aloue la mem aussi ??!
Et pkoi buffer1+1 ?
Et a koi sert "*" ?
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

7

La différence principale est: En C, le nombre ajouté est automatiquement multiplié par la taille de la variable (ce qui est souvent pratique, mais peut être très agaçant pour la compréhensibilité).

char (*buffer1)[3840],(*buffer2)[3840]; déclare des pointeurs de taille 3840, donc permet de faire: buffer2=buffer1+1;, alors que char *buffer1,*buffer2; déclare des pointeurs de taille 1, donc fait faire buffer2=buffer1+3840;.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

>FlashZ:

>pasque ca ca aloue la mem aussi ??!

char buffer[3840*2] déclare un array, donc alloue 3840*2=7680 octets sur la pile

>Et pkoi buffer1+1 ?

Cf. mon message précédent.

>Et a koi sert "*" ?

À déclarer un pointeur ou à le déréférencer (pense à move.l (a0),a0).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

Kevin : Comprehension smile pas comprehensibilité tongue

et avec char *buffer tu peux te deplacer d'octet en octet dans ton buffer apres smile c ce que FlashZ veut faire je suppose !
avatar
pwet

10

Ze v regarder tout ca, j'avoue que je pige pas tout tout encore mais ca commence a aller... je fais ca sans tuto.

Bon ce que vous m'avez montrer, ca inclut les 3840 octets dans le programme ou ca les aloue en le lancant ?
Et ca les free automatiquement en quittant ?
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

11

ca met les 3840 octets en plus dans le prog ??!!!eek
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

12

ok g compris smile
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

13

mon moteur est fini smile
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

14

FlashZ> si tu est en mode Doors, tu peut tout a fait mettre un char[3840] en global, il sera mis automatiquement en BSS smile

Vive les kernel wink

Et puis, pour apprendre le C, un tutorial est plus qu'indispensable ... il y en a un chouette ici: [URL]ftp://ftp.ltam.lu/TUTORIEL/COURS-C/COURS-C.ZIP[/URL]

15

Dark : roms m'avait deja donne cette adresse pour dl ce tuto smile
Et autre chose, mon prog est en nostub grin

Sinon, autre question, comment faire un pxltest ?
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

16

c bon g trouve smile
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

17

FlashZ: LOL
tu poses de tses questions toiwink

18

char pxltest(unsigned char x,unsigned char y)
{
return( (char*)(0x4c00+y*30+x>>3) && (64>>x) );
}

Sans trop verifier si c ca smile
avatar
pwet

19

char pxltest(unsigned char x,unsigned char y)
{
return( (char*)(0x4c00+y*30+x>>3) & (64>>(x&7)) );
}

c surement mieux !
[edit]Edité par Bill-Bob le 30-06-2001 à 17:18:11[/edit]
avatar
pwet

20

J'espère que tu n'as pas l'intention d'arreter l'ASM... Si tout le monde se converti au C je crois que bientôt on ne pourra plus mettre plus d'une dizaine de progs sur sa calto sadsad
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

21

Sisi c officiel il arrete completement l'asm !
il va faire que du C lol wink
avatar
pwet

22

nan mais vous etes des gros paranos blagueurs smile
je suis marie avec l'ASM, et g pas envie de divorcer smile

Bon j'etudie la routine de Bill-Bob :
return((char*)(0x4c00+y*30+x>>3)&(64>>(x&7)));

Alors bcp de questions :
- "x>>3" on decalle x de 3 sur la droite mais pk ?
- "&" pkoi on fait ca ?
- "64>>(x&7)" ca veut dire koi tout ca ? smile

Arf je sais rien smile

Ouh FlashZ est un newbie !
Ouh !
Ouh la honte ! grin
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

23

erf et en plus il commet l'adultere..

24

le & c'est un et logique bit a bit smile

le x&7 c pour calculer x modulo 8 tres rapidement smile c comme en asm wink

64>>(x&7)
ben ca arme le bit numero 7 d'un octet : %10000000
ensuite je v decaler ce bit arme de x modulo 8 smile
donc si x = 1 par exmple on aura %010000000
ensuite je fais un et logique bit a bit avec l'octet de la memoire video concerne ... si le resultat est 0 c que le bit etait blanc sinon il etait noir smile

simple nan ?
C du C utilise facon ASM smile
comme ca tune commet pas l'adultere wink
avatar
pwet

25

le principe est bon mais je sais pas si il y a pas un bug qui se cache smile
avatar
pwet

26

Ouais mais la rubrique ASM est assez proche de la rubrique C, c'est ma voisine !
Je me suis pas encore fait capter, ca devrait aller smile
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

27

vi c simple smile
alors comme tu dis bill bob, je fais pas d'adultaire tongue
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

28

Bon, je veux recopier un VS sur un autre VS, en laissant une bande de 10 pixels au dessus, soit au format du TIOS une taille de 10*30=300 octets.

Bon, en ASM, je ferais :

 move.l Buffer1+300,a0
 move.l Buffer2+300,a1
 move.w #959-(300/4),d0
loop_copy:
 move.l (a0)+,(a1)+
 dbra d0,loop_copy


En C ca donne koi a peu pres ?
Je pense a un truc dans le genre :

memcpy(&Buffer1[300],&Buffer2[300],3840-300);
nan... je sens que c pas du tout ca...
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

29

copy_vscr(void *src,void *dest) {
dest+=10*30 //10 ligne de 30 octet
src+=10*30
memcpy(&src,&dest,3840-300)//pas tres rapide mais bon ...
}

je ense que c un truc comme ca
[edit]Edité par p y a le 04-07-2001 à 16:08:37[/edit]
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

30

ok merci smile
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr