si, je passe tous les jours, sauf quand je pars de chez moi durant 5 jours !
mais je suis revenu !
bon, je crois que je vais pas en dire plus sur la méthode décrite un peu plus haut, qui est aussi celle que j'ai utilisée, donc voila le code source du prog "rotation" qui est sur mon site:
(ça devrait tout de suite t'éclairer sur la manip)
; ******************** DEPART DU PROGRAMME SOURCE ********************
include "tios.h"
include "flib.h"
include "util.h"
include "graphlib.h"
include "exec.inc"
include "userlib.h"
include "macrolib_rv.h"
include "rv_lib.h"
; bibliothèque(s) utilisée(s) ici, si besoins
xdef _main
xdef _comment
xdef _ti89
; *********************** RAPPEL DES MACROS ************************* ;
; ;
; AddressLine <x1>,<y1>,<x2>,<y2>,<Addresse du coin haut gauche> ;
; Beep2 <fréquence>,<longueur> ;
; BOX x,y,larg,haut,str ;
; BOX_Tios titre,text,bouton1,bouton2 ;
; Ecrit x,y,mode,chaîne ;
; EcritAdr x,y,mode,adresse ;
; EcritAdrF x,y,adresse ;
; EcritChar x,y,mode,caractère ;
; Ecrit_nbr x,y,mode,nbr_digits,nbr ;
; EcritFnbr x,y,nbr_digits,nbr ;
; EcritFUTUR <x>,<y>,<str> ;
; Efface4 -> efface les buffer 1&2 en gray4 ;
; EffaceListe <liste a effacer>,<nombre d'elements> ;
; Envoyer <registre.b ou dc.b> ;
; Exec <RomFunc ou Code provenant de exec.inc> ;
; Fill <x>,<y>,<largeur>,<hauteur>,<couleur> ;
; Font #<1;2;3> ;
; Getkey -> d0 ;
; GetKeyRAM <y>,<x> de la matrice clavier 89 ;
; GetKeyRAM_2 <y>,<x>,<label> de la matrice clavier 89 ;
; InputSTR <x>,<y>,<dim str max> -> {d0,d1,a0} ;
; Line <x1>,<y1>,<x2>,<y2> ;
; PetiteBoite <string> ;
; PopUp <x>,<y>,<nbr lignes>,<txt (dc.b "1",0,"2",0,"3",0)>;
; PxlOff x,y ;
; PxlOff_a0 x,y,addresse ;
; PxlOn x,y ;
; PxlOn_a0 x,y,addresse ;
; PxlTest x,y -> d0=<0;1> ;
; PxlTest_a0 x,y,addresse -> d0=<0;1> ;
; Random_d0 val -> d0=rand(val) ;
; Rand_Var nbr,variable ;
; Rcl4Pic #<x>,#<y>,<pict1>,<pict2> ;
; RclPic x,y,var ;
; ReadList var,position,sto var ;
; ReadMat var,x,y,largeur,sto var ;
; Rectangle <x>,<y>,<largeur>,<hauteur> ;
; Recevoir <resultat.b> ;
; RemplitListe <liste a remplir>,<valeur.w>,<nombre d'elements> ;
; Rotation x,y,centre_x,centre_y,angle,scr_adr,pic ;
; Rplc4Pic #<x>,#<y>,<pict1>,<pict2> ;
; Rplc4Pic #<x>,#<y>,<pict1>,<pict2>,<mask> ;
; RplcPic x,y,var,mask ;
; StoList var,valeur,position ;
; StoMat var,valeur,x,y,largeur ;
; StoPic <x(byte_pair)>,<y>,<longueur_x(word)>,<hauteur_y>, ;
; -suite- <addresse_du_coin_haut_gauche>,<variable> ;
; TransfertListe <liste a copier>,<sto liste>,<nombre d'elements> ;
; Trans_scr <écran_a_copier>,<écran_a_transformer> ;
; XorPic <x>,<y>,<sprite> ;
; ;
; ******************** DEPART DES SOUS-PROGRAMMES ******************* ;
droite EQU 344
gauche EQU 338
haut EQU 337
bas EQU 340
esc EQU 264
apps EQU 265
F1 EQU 268
F2 EQU 269
F3 EQU 270
F4 EQU 271
F5 EQU 272
F6 EQU 273
F7 EQU 274
F8 EQU 275
; pause_20000 pause_40000 pause_60000 pause_2sec
; Interruptions_ON/OFF
; ******************************************************************* ;
; ******************************************************************* ;
; ******************** DEPART DU CODE PRINCIPAL ********************* ;
; ******************************************************************* ;
; ******************************************************************* ;
; jsr graphlib::gray4 ; active le mode dégradé
; jsr graphlib::gray2 ; Remet le mode noir et blanc
; jsr flib::idle_loop ; attend une touche et stocke dans d0
; jsr graphlib::clr_scr ; efface l'écran dans sa totalité
; jsr flib::clr_scr ; efface l'écran sauf la ligne ST et le 18/30
; jsr flib::zap_screen ; efface l'écran dans sa totalité
; le code commence ici
; Rotation x,y,centre_x,centre_y,angle,scr_adr,pic
;Départ
_main: ;Lbl _main
clr.l angle ; + pas
lea buffer,a6
loop:
cmp.w #360,pas
bne pas_ok
clr.w pas
pas_ok:
cmp.w #360,angle
bls angle_ok
sub.w #360,angle
angle_ok:
move.l #$4C00,a0
move.l a6,a1
move.w #99,d0
loop_:
move.l (a1),(a0)+
clr.l (a1)+
move.l (a1),(a0)+
clr.l (a1)+
move.l (a1),(a0)+
clr.l (a1)+
move.l (a1),(a0)+
clr.l (a1)+
move.l (a1),(a0)
clr.l (a1)
add.w #14,a0
add.w #14,a1
dbra d0,loop_
Rotation #80,#50,#2,#2,angle,a6,a
move.l a6,a5
Trans_scr a5,#$4C00
addq.w #1,pas
move.w pas,d0
add.w d0,angle
Getkey
cmp.w #0,d0
beq loop
rts
; cette instruction signifie la fin du programme
; le code fini ici
; ******************************************************************* ;
; ******************************************************************* ;
; ******************** DEPART DES LABELS **************************** ;
; ******************************************************************* ;
; ******************************************************************* ;
a:
dc.w 24 ;Vertical size
dc.w 3 ;Horizontal size
dc.b %01110000,%00000000,%00000000
dc.b %11111000,%00000000,%00000000
dc.b %11011000,%00000000,%00000000
dc.b %11111100,%00000000,%00000000
dc.b %01111111,%00000000,%00000000
dc.b %00011111,%10000000,%00000000
dc.b %00001011,%11100000,%00000000
dc.b %00001101,%11110000,%00000000
dc.b %00000101,%11111000,%00000000
dc.b %00000010,%11111100,%00000000
dc.b %00000011,%01111110,%00000000
dc.b %00000001,%10111111,%00000000
dc.b %00000000,%11011111,%10000000
dc.b %00000000,%01101111,%11000000
dc.b %00000000,%00110111,%11100000
dc.b %00000000,%00011011,%11110000
dc.b %00000000,%00001101,%11111000
dc.b %00000000,%00000110,%11111100
dc.b %00000000,%00000011,%01111100
dc.b %00000000,%00000001,%10111110
dc.b %00000000,%00000000,%11011110
dc.b %00000000,%00000000,%01100111
dc.b %00000000,%00000000,%00011011
dc.b %00000000,%00000000,%00000110
; ******************************************************************* ;
; ******************************************************************* ;
; ******************** DEPART DES DONNEES *************************** ;
; ******************************************************************* ;
; ******************************************************************* ;
; les données commencent ici
_comment dc.b "Rotations par Hervé Bonafos",0
angle dc.w 0
pas dc.w 0
BSS
buffer ds.b 3000
end