|  A A A  |  Français |  03:29 | 

19'' v9 

 
 
 |  Accueil  |  Photos  | TI68k  |  Projets  |  Liens  |  Autres
 

dayOfWk

Donne le jour de la semaine correspondant au jour jj/mm/aaaa. Pour des jours proches de 1997, cette fonction sera peut-être un peu plus lente que la fonction de l'AMS >= 2.07, mais elle a une complexité constante et non linéaire en la date. Elle donne des résultats justes pour toutes les dates comprises entre 01/01/0000 et 31/12/2999, ce qui est largement suffisant dans la plupart des cas ; alors que la fonction AMS donne rapidement des résultats faux.
J'ai mis pas mal de temps à faire cette fonction, mais j'en suis assez content.

int dayOfWk(int jour, int mois, int annee)
{
   char tab1[12] = {6,2,3,6,1,4,6,2,5,7,3,5};
   char tab2[7] = {6,1,3,5,4,5,6};
   int siecle = annee / 100;
   int decennie = annee % 100;
   int temp;
   if ((mois > 12) || (mois < 1)) return -1; 
//il ne faudrait pas faire planter le programme pour cause d'arguments invalides
 
   int z = tab1[mois-1];
   if ((mois <=2) && (annee % 400 != 0) && ((decennie == 0) | (annee % 4 != 0))) z++;
//pour voir si l'année est bissextile
 
   if (siecle > 15) temp = -tab2[(siecle+3 *(siecle/4)) % 7];
//il y a 2 cas suivant qu'on est dans le grégorien ou dans le julien
   else temp = -(siecle % 7)-1;
   if ((annee == 1582) && ((mois > 10) || ((mois == 10) && (jour >= 15)))) temp = -5;
 
   return (((temp + decennie + (decennie / 4) + z + jour - 3) % 7) + 1);
}
 
04/07/2008 13:17:35

Calcul de la taille d'une AppFlash

J'ai mis pas mal de temps à programmer cette fonction, car j'ai dû faire pas mal de tests à l'éditeur hexa pour comprendre comment ça marchait (j'avais pas de doc sur les certificats)
Je l'ai essayée sur toutes les applications flash que j'ai trouvées, et ma routine m'a toujours donné la bonne réponse
Attention, il faut que le certificat soit valide, sinon, il y a des chances de tomber sur une boucle infinie
Si vous utilisez ce code, mettez quand même mon nom quelque part, merci ;)

OO_apps_size_certif:
;<- a0.l ptr vers certificat
 movem.l d1-d3/a0,-(a7)
 moveq #4,d0
 bra OO_apps_size_0
OO_apps_size:
 movem.l d1-d3/a0,-(a7)
 bsr deref
 move.l a0,d0
 btst #0,d0
 bne OO_apps_size_no_sub
 moveq #4,d0
 move.l 16(a0),a0
 move.l a0,d1
 beq OO_apps_size_no_sub
OO_apps_size_0:
 bsr OO_size_sub
 tst.b d3
 beq OO_apps_size_no_sub
 bsr OO_size_sub
OO_apps_size_no_sub:
 movem.l (a7) ,a0/d1-d3
 rts
 
OO_size_sub:
 moveq #1,d3
 moveq #0,d1
 move.b (a0) ,d1
 cmp.b #$FF,d1
 bne OO_size_sub_2nd
 cmp.b #$FF,(a0)
 beq OO_size_sub_end_2
 addq.l #1,a0
OO_size_sub_2nd:
 moveq #0,d1
 move.b (a0) ,d2
 andi.b #$F,d2
 cmp.b #$F,d2
 beq OO_size_32
 cmp.b #$E,d2
 beq OO_size_16
 cmp.b #$D,d2
 beq OO_size_8
 move.b d2,d1
 moveq #0,d3
OO_size_sub_end:
 add.l d1,d0
 add.l d1,a0
 rts
OO_size_sub_end_2:
 moveq #0,d3
 rts
OO_size_32:
 addq.l #4,d0
 move.b (a0) ,d1
 lsl.l #8,d1
 move.b (a0) ,d1
 lsl.l #8,d1
 move.b (a0) ,d1
 lsl.l #8,d1
 move.b (a0) ,d1
 bra OO_size_sub_end
OO_size_16:
 addq.l #2,d0
 move.b (a0) ,d1
 lsl.l #8,d1
 move.b (a0) ,d1
 bra OO_size_sub_end
OO_size_8:
 addq.l #1,d0
 move.b (a0) ,d1
 bra OO_size_sub_end
 
09/04/2008 13:35:36

Projets 68k

Voici l'intégralité de mon dossier "projets"
Je l'ai mis tel quel, donc c'est pas forcément évident à parcourir, faut que je fasse des .zip pour chaque projet, ça sera plus simple.
 
  Nom Taille Modifié le
basic   30/08/2006 13:48
C_PC   30/08/2006 14:16
char_routines   30/08/2006 13:48
clock   30/08/2006 13:48
Compress   30/08/2006 13:49
conflib   30/08/2006 13:50
cs   30/08/2006 14:15
cs_2.OO   30/08/2006 14:16
dayOfWk   30/08/2006 14:17
dissas   30/08/2006 14:17
evhk   30/08/2006 14:22
exemples   30/08/2006 14:22
experimentaux   13/03/2007 10:12
flash   30/08/2006 14:39
h00k   30/08/2006 14:48
Headers files   30/08/2006 14:48
hexview2   30/08/2006 14:48
hexview3   30/08/2006 14:49
images_VTI   30/08/2006 14:49
makeDlg   30/08/2006 14:49
pack   30/08/2006 14:49
pct   30/08/2006 14:50
ppglib   30/08/2006 14:51
PreOS-067mod   30/08/2006 14:51
templates   30/08/2006 14:57
tests   30/08/2006 14:57
tsr_utsr   30/08/2006 15:11
tview   30/08/2006 15:13
txtrider   30/08/2006 15:13
0Lisez-moi.txt 3.22 ko 30/08/2006 13:45
Compress.zip 89.22 ko 30/08/2006 13:50
flags.gst 2.27 ko 30/08/2006 14:38
icones.gst 2.27 ko 30/08/2006 14:49
my_tsr.h 173 o 30/08/2006 14:49
oo_get_attr.asm 611 o 30/08/2006 14:49
src_1.h 3.54 ko 30/08/2006 14:57
TSR.asm 1.66 ko 30/08/2006 14:57
TSR_template.tpr 339 o 30/08/2006 14:57
 Archive    

09/04/2008 13:38:40

Cours prépas

Au format txtrider pour TI-92Plus / Voyage 200, mais lisibles sur TI-89.
Pour les lire, y a txtrider, ou uview qui est pas mal non plus ;) 
  Nom Taille Modifié le
matths.mathpic1.9xy 318 o 30/08/2006 15:13
matths.mathpic2.9xy 510 o 30/08/2006 15:13
matths.mathpic3.9xy 407 o 30/08/2006 15:13
matths.mathpic4.9xy 428 o 30/08/2006 15:13
matths.mathpic5.9xy 484 o 30/08/2006 15:13
matths.methodx1.9xy 10.85 ko 30/08/2006 15:13
matths.mpic1.9xy 523 o 30/08/2006 15:13
matths.mpic2.9xy 497 o 30/08/2006 15:13
matths.mpic3.9xy 393 o 30/08/2006 15:13
matths.mpic4.9xy 859 o 30/08/2006 15:13
matths.nmaths1.9xy 13.18 ko 30/08/2006 15:13
matths.nmaths2.9xy 13.06 ko 30/08/2006 15:13
matths.nmaths3.9xy 25.1 ko 30/08/2006 15:13
matths.nmaths4.9xy 23.44 ko 30/08/2006 15:14
matths.structu.9xy 1.59 ko 30/08/2006 15:13
 Archive    

09/04/2008 13:39:13