Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Bug dans Extgraph beta 4 ? (59 réponse(s))
./REPRISE DU POST PRECEDENT (post n°38)   Marquer comme non lu.
Lionel Debroux Ecrit le: Samedi 20 août 2005 à 10:51 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Le sujet initial du topic étant épuisé, on peut continuer sur l'autre: j'ai téléchargé GFA-BASIC/GFA-TEM et ses patches. J'ai constaté qu'une des deux optimisations sur lesquelles tu avais demandé plus d'explications était faite dans TBL_Errors.asm, mais pas dans TBL_Tokens.asm et TBK_TokensConstant.asm. Je ne sais pas si c'était déjà fait à l'époque, mais c'est bien ça qu'il faut faire.
La faire diminue la taille du programme de ~1400 octets, auxquels il faut ajouter les ~200 octets dûs à l'ajout de -l --all-relocs dans les options de l'assembleur.
Par ailleurs, une lecture du code révèle notamment:
* moveq #0,dn; move.w <ea>,dn; dbf dn,ailleurs: le moveq est inutile (code présent notamment dans la ClipSpriteX8 que tu m'avais envoyée). Aussi, la version optimisée taille de la soustraction de 1 au compteur de boucle pour le dbf est la suivante (Fonctions.asm):
_Func_memcpy_no_fast_copy:
subq.w #1,%d1
_Func_memcpy_simple_copy:
move.b (%a0)+,(%a1)+
__Func_memcpy_simple_copy:
dbf %d1,_Func_memcpy_simple_copy
_Func_memcpy_exit:
rts

|Copie directe:
_memcpy_slow:
Func_memcpy_slow:
move.w %d0,%d1
bra.s __Func_memcpy_simple_copy:

et ici, il y a peut-être moyen de faire encore mieux en passant toujours le paramètre de _memcpy_slow dans d1 (mais c'est un poil moins lisible) est:
_Func_memcpy_no_fast_copy:
subq.w #1,%d1
_Func_memcpy_simple_copy:
move.b (%a0)+,(%a1)+
|Copie directe:
_memcpy_slow:
Func_memcpy_slow:
dbf %d1,_Func_memcpy_simple_copy
_Func_memcpy_exit:
rts

* move.l #x,dn, où 0 <= x < 128: c'est moveq qu'il faut mettre. Déjà reporté pour Arkanoid.

Le gain de 2 KB est donc largement envisageable. Sur ~28000 octets, ce n'est pas insignifiant...
Lionel Debroux - membre de TICT.
    
./Post n°39   Marquer comme non lu.
Lionel Debroux Ecrit le: Samedi 20 août 2005 à 12:06 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Ma connexion fonctionne mal ce matin... Ca fait une vingtaine de minutes que je n'arrive pas à attacher le diff à mon mail, donc je le poste ici:
diff -Naur Sources/GFA-TEM/GFA_TEM.TPR Sourcesmod/GFA-TEM/GFA_TEM.TPR
--- Sources/GFA-TEM/GFA_TEM.TPR 2005-07-24 17:07:56.000000000 +0200
+++ Sourcesmod/GFA-TEM/GFA_TEM.TPR 2005-08-20 10:51:57.205603200 +0200
@@ -9,8 +9,8 @@
Pack=0
Packed Variable=gfatmdta
Project Name=GFATEM
-GCC Switches=-Os -Wall -W -Wwrite-strings
-GNU Assembler Switches=
+GCC Switches=-Os -Wall -W -Wwrite-strings -ffunction-sections -fdata-sections
+GNU Assembler Switches=-l --all-relocs
Assembler Switches=-g -t
Debug Info=0
Standard Library=1
@@ -50,7 +50,7 @@
Enable Error Return=0
Save Screen=1
[File Editing]
-Open File=C:\Mes documents\Projets TI\GFA_Basic\GFA_TEM\TokensFunc.asm
+Open File=C:\Jeux\TI-89\ASM\GFA_BASIC\Sources\GFA-TEM\Fonctions.asm
[Included Files]
GNU Assembler File 1=main.asm
GNU Assembler File 2=Fonctions.asm
@@ -64,8 +64,7 @@
GNU Assembler File 10=TokensConstant.asm
GNU Assembler File 11=_kb_getkey.asm
GNU Assembler File 12=_rowread.asm
-GNU Assembler File 13=Environment.s
-GNU Assembler File 14=Variables.asm
+GNU Assembler File 13=Variables.asm
Archive File 1=GFA_FontLib.a
Header File 1=Defines.h
Header File 2=Fonctions.h
diff -Naur Sources/GFA-TEM/Tbl_Tokens.asm Sourcesmod/GFA-TEM/Tbl_Tokens.asm
--- Sources/GFA-TEM/Tbl_Tokens.asm 2005-04-29 18:45:46.000000000 +0200
+++ Sourcesmod/GFA-TEM/Tbl_Tokens.asm 2005-08-20 11:35:13.979580800 +0200
@@ -5,152 +5,151 @@
.data
.even
Tbl_Tokens:
- .long ExecToken_None
- .long ExecToken_Jump
- .long ExecToken_If
- .long ExecToken_IfJump
- .long ExecToken_For_start
- .long ExecToken_For_cmp
- .long ExecToken_For_end
- .long ExecToken_For_if
- .long ExecToken_For_add
- .long ExecToken_For_clear
- .long ExecToken_EndTag
- .long ExecToken_PointVirgule
- .long ExecToken_Apost
- .long ExecToken_Constant
+ .word ExecToken_None-Tbl_Tokens
+ .word ExecToken_Jump-Tbl_Tokens
+ .word ExecToken_If-Tbl_Tokens
+ .word ExecToken_IfJump-Tbl_Tokens
+ .word ExecToken_For_start-Tbl_Tokens
+ .word ExecToken_For_cmp-Tbl_Tokens
+ .word ExecToken_For_end-Tbl_Tokens
+ .word ExecToken_For_if-Tbl_Tokens
+ .word ExecToken_For_add-Tbl_Tokens
+ .word ExecToken_For_clear-Tbl_Tokens
+ .word ExecToken_EndTag-Tbl_Tokens
+ .word ExecToken_PointVirgule-Tbl_Tokens
+ .word ExecToken_Apost-Tbl_Tokens
+ .word ExecToken_Constant-Tbl_Tokens

- .long ExecToken_LocalVar
- .long ExecToken_Return
- .long ExecToken_Gosub
+ .word ExecToken_LocalVar-Tbl_Tokens
+ .word ExecToken_Return-Tbl_Tokens
+ .word ExecToken_Gosub-Tbl_Tokens

- .long ExecToken_Number_Float
- .long ExecToken_Number_Int
- .long ExecToken_String
+ .word ExecToken_Number_Float-Tbl_Tokens
+ .word ExecToken_Number_Int-Tbl_Tokens
+ .word ExecToken_String-Tbl_Tokens

- .long ExecToken_Var_Float
- .long ExecToken_Var_Int
- .long ExecToken_Var_Bool
- .long ExecToken_Var_String
+ .word ExecToken_Var_Float-Tbl_Tokens
+ .word ExecToken_Var_Int-Tbl_Tokens
+ .word ExecToken_Var_Bool-Tbl_Tokens
+ .word ExecToken_Var_String-Tbl_Tokens

- .long ExecToken_Var_TFloat
- .long ExecToken_Var_TInt
- .long ExecToken_Var_TBool
- .long ExecToken_Var_TString
+ .word ExecToken_Var_TFloat-Tbl_Tokens
+ .word ExecToken_Var_TInt-Tbl_Tokens
+ .word ExecToken_Var_TBool-Tbl_Tokens
+ .word ExecToken_Var_TString-Tbl_Tokens

- .long ExecToken_Math_Add
- .long ExecToken_Math_Sub
- .long ExecToken_Math_Mul
- .long ExecToken_Math_Div
- .long ExecToken_Math_Puiss
+ .word ExecToken_Math_Add-Tbl_Tokens
+ .word ExecToken_Math_Sub-Tbl_Tokens
+ .word ExecToken_Math_Mul-Tbl_Tokens
+ .word ExecToken_Math_Div-Tbl_Tokens
+ .word ExecToken_Math_Puiss-Tbl_Tokens

- .long ExecToken_Compare_Superior
- .long ExecToken_Compare_Inferior
- .long ExecToken_Egal
- .long ExecToken_Supegal
- .long ExecToken_Infegal
- .long ExecToken_Diff
+ .word ExecToken_Compare_Superior-Tbl_Tokens
+ .word ExecToken_Compare_Inferior-Tbl_Tokens
+ .word ExecToken_Egal-Tbl_Tokens
+ .word ExecToken_Supegal-Tbl_Tokens
+ .word ExecToken_Infegal-Tbl_Tokens
+ .word ExecToken_Diff-Tbl_Tokens

- .long ExecToken_Affec
+ .word ExecToken_Affec-Tbl_Tokens

- .long ExecToken_Logic_Not
- .long ExecToken_Logic_And
- .long ExecToken_Logic_Or
- .long ExecToken_Logic_Xor
- .long ExecToken_Logic_Imp
- .long ExecToken_Logic_Eqv
- .long ExecToken_Math_Mod
- .long ExecToken_Math_Divint
+ .word ExecToken_Logic_Not-Tbl_Tokens
+ .word ExecToken_Logic_And-Tbl_Tokens
+ .word ExecToken_Logic_Or-Tbl_Tokens
+ .word ExecToken_Logic_Xor-Tbl_Tokens
+ .word ExecToken_Logic_Imp-Tbl_Tokens
+ .word ExecToken_Logic_Eqv-Tbl_Tokens
+ .word ExecToken_Math_Mod-Tbl_Tokens
+ .word ExecToken_Math_Divint-Tbl_Tokens

- .long ExecToken_Negatif
+ .word ExecToken_Negatif-Tbl_Tokens

- .long ExecFnc_At
- .long ExecCmd_Print
- .long ExecCmd_Dim
- .long ExecCmd_Cls
- .long ExecFnc_Getkey
- .long ExecFnc_Abs
- .long ExecCmd_Add
- .long ExecFnc_Atn
- .long ExecCmd_Clr
- .long ExecFnc_Cos
- .long ExecCmd_Dec
- .long ExecCmd_Div
- .long ExecFnc_Even
- .long ExecFnc_Exp
- .long ExecFnc_Fix
- .long ExecFnc_Frac
- .long ExecCmd_Inc
- .long ExecFnc_Log
- .long ExecFnc_Log10
- .long ExecCmd_Mul
- .long ExecFnc_Odd
- .long ExecFnc_Sgn
- .long ExecFnc_Sin
- .long ExecFnc_Sqr
- .long ExecFnc_Tan
- .long ExecFnc_Round
- .long ExecCmd_Sub
- .long ExecFnc_Asc
- .long ExecFnc_Bin
- .long ExecFnc_Hex
- .long ExecFnc_Oct
- .long ExecFnc_Chr
- .long ExecFnc_Left
- .long ExecFnc_Len
- .long ExecFnc_Mid
- .long ExecFnc_Right
- .long ExecFnc_Space
- .long ExecFnc_Str
- .long ExecFnc_String
- .long ExecFnc_Upper
- .long ExecFnc_Val
- .long ExecFnc_Arrayfill
- .long ExecFnc_Ldim
- .long ExecCmd_End
- .long ExecFnc_Fre
- .long ExecCmd_Pause
- .long ExecCmd_Swap
- .long ExecFnc_Mki
- .long ExecFnc_Mkl
- .long ExecFnc_Mkf
- .long ExecFnc_Cvi
- .long ExecFnc_Cvl
- .long ExecFnc_Cvf
- .long ExecCmd_Setfont
- .long ExecFnc_Getfont
- .long ExecFnc_Lower
- .long ExecCmd_Run
- .long ExecFnc_Ngetchx
- .long ExecFnc_Rnd
- .long ExecFnc_Timer
- .long ExecCmd_System
- .long ExecFnc_Crslin
- .long ExecFnc_Crscol
- .long ExecFnc_Random
- .long ExecFnc_Type
- .long ExecFnc_Lval
- .long ExecFnc_Varptr
- .long ExecFnc_Arrptr
- .long ExecFnc_Dfree
- .long ExecFnc_Peek
- .long ExecFnc_Dpeek
- .long ExecFnc_Lpeek
- .long ExecCmd_Poke
- .long ExecCmd_Dpoke
- .long ExecCmd_Lpoke
- .long ExecCmd_Box
- .long ExecCmd_Input
- .long ExecCmd_Text
- .long ExecCmd_Plot
- .long ExecCmd_Line
- .long ExecCmd_Read
- .long ExecBase_Restore
- .long ExecCmd_Sprite
- .long ExecCmd_Get
- .long ExecCmd_Put
- .long ExecFnc_Point
+ .word ExecFnc_At-Tbl_Tokens
+ .word ExecCmd_Print-Tbl_Tokens
+ .word ExecCmd_Dim-Tbl_Tokens
+ .word ExecCmd_Cls-Tbl_Tokens
+ .word ExecFnc_Getkey-Tbl_Tokens
+ .word ExecFnc_Abs-Tbl_Tokens
+ .word ExecCmd_Add-Tbl_Tokens
+ .word ExecFnc_Atn-Tbl_Tokens
+ .word ExecCmd_Clr-Tbl_Tokens
+ .word ExecFnc_Cos-Tbl_Tokens
+ .word ExecCmd_Dec-Tbl_Tokens
+ .word ExecCmd_Div-Tbl_Tokens
+ .word ExecFnc_Even-Tbl_Tokens
+ .word ExecFnc_Exp-Tbl_Tokens
+ .word ExecFnc_Fix-Tbl_Tokens
+ .word ExecFnc_Frac-Tbl_Tokens
+ .word ExecCmd_Inc-Tbl_Tokens
+ .word ExecFnc_Log-Tbl_Tokens
+ .word ExecFnc_Log10-Tbl_Tokens
+ .word ExecCmd_Mul-Tbl_Tokens
+ .word ExecFnc_Odd-Tbl_Tokens
+ .word ExecFnc_Sgn-Tbl_Tokens
+ .word ExecFnc_Sin-Tbl_Tokens
+ .word ExecFnc_Sqr-Tbl_Tokens
+ .word ExecFnc_Tan-Tbl_Tokens
+ .word ExecFnc_Round-Tbl_Tokens
+ .word ExecCmd_Sub-Tbl_Tokens
+ .word ExecFnc_Asc-Tbl_Tokens
+ .word ExecFnc_Bin-Tbl_Tokens
+ .word ExecFnc_Hex-Tbl_Tokens
+ .word ExecFnc_Oct-Tbl_Tokens
+ .word ExecFnc_Chr-Tbl_Tokens
+ .word ExecFnc_Left-Tbl_Tokens
+ .word ExecFnc_Len-Tbl_Tokens
+ .word ExecFnc_Mid-Tbl_Tokens
+ .word ExecFnc_Right-Tbl_Tokens
+ .word ExecFnc_Space-Tbl_Tokens
+ .word ExecFnc_Str-Tbl_Tokens
+ .word ExecFnc_String-Tbl_Tokens
+ .word ExecFnc_Upper-Tbl_Tokens
+ .word ExecFnc_Val-Tbl_Tokens
+ .word ExecFnc_Arrayfill-Tbl_Tokens
+ .word ExecFnc_Ldim-Tbl_Tokens
+ .word ExecCmd_End-Tbl_Tokens
+ .word ExecFnc_Fre-Tbl_Tokens
+ .word ExecCmd_Pause-Tbl_Tokens
+ .word ExecCmd_Swap-Tbl_Tokens
+ .word ExecFnc_Mki-Tbl_Tokens
+ .word ExecFnc_Mkl-Tbl_Tokens
+ .word ExecFnc_Mkf-Tbl_Tokens
+ .word ExecFnc_Cvi-Tbl_Tokens
+ .word ExecFnc_Cvl-Tbl_Tokens
+ .word ExecFnc_Cvf-Tbl_Tokens
+ .word ExecCmd_Setfont-Tbl_Tokens
+ .word ExecFnc_Getfont-Tbl_Tokens
+ .word ExecFnc_Lower-Tbl_Tokens
+ .word ExecCmd_Run-Tbl_Tokens
+ .word ExecFnc_Ngetchx-Tbl_Tokens
+ .word ExecFnc_Rnd-Tbl_Tokens
+ .word ExecFnc_Timer-Tbl_Tokens
+ .word ExecCmd_System-Tbl_Tokens
+ .word ExecFnc_Crslin-Tbl_Tokens
+ .word ExecFnc_Crscol-Tbl_Tokens
+ .word ExecFnc_Random-Tbl_Tokens
+ .word ExecFnc_Type-Tbl_Tokens
+ .word ExecFnc_Lval-Tbl_Tokens
+ .word ExecFnc_Varptr-Tbl_Tokens
+ .word ExecFnc_Arrptr-Tbl_Tokens
+ .word ExecFnc_Dfree-Tbl_Tokens
+ .word ExecFnc_Peek-Tbl_Tokens
+ .word ExecFnc_Dpeek-Tbl_Tokens
+ .word ExecFnc_Lpeek-Tbl_Tokens
+ .word ExecCmd_Poke-Tbl_Tokens
+ .word ExecCmd_Dpoke-Tbl_Tokens
+ .word ExecCmd_Lpoke-Tbl_Tokens
+ .word ExecCmd_Box-Tbl_Tokens
+ .word ExecCmd_Input-Tbl_Tokens
+ .word ExecCmd_Text-Tbl_Tokens
+ .word ExecCmd_Plot-Tbl_Tokens
+ .word ExecCmd_Line-Tbl_Tokens
+ .word ExecCmd_Read-Tbl_Tokens
+ .word ExecBase_Restore-Tbl_Tokens
+ .word ExecCmd_Sprite-Tbl_Tokens
+ .word ExecCmd_Get-Tbl_Tokens
+ .word ExecCmd_Put-Tbl_Tokens
+ .word ExecFnc_Point-Tbl_Tokens
.even

.end
-
\ No newline at end of file
diff -Naur Sources/GFA-TEM/Tbl_TokensConstant.asm Sourcesmod/GFA-TEM/Tbl_TokensConstant.asm
--- Sources/GFA-TEM/Tbl_TokensConstant.asm 2005-04-19 12:34:30.000000000 +0200
+++ Sourcesmod/GFA-TEM/Tbl_TokensConstant.asm 2005-08-20 09:23:13.730822400 +0200
@@ -5,105 +5,105 @@
.data
.even
Tbl_TokensConstant:
- .long TokenConstant_Calculator
- .long TokenConstant_HW_Version
- .long TokenConstant_LCD_Height
- .long TokenConstant_LCD_Width
- .long TokenConstant_LCD_Line_Bytes
- .long TokenConstant_ROM_Base
- .long TokenConstant_TI89
- .long TokenConstant_TI89_Classic
- .long TokenConstant_TI89_Titanium
- .long TokenConstant_TI92Plus
- .long TokenConstant_V200
- .long TokenConstant_TIOS_Entries
- .long TokenConstant_RR_0
- .long TokenConstant_RR_1
- .long TokenConstant_RR_2
- .long TokenConstant_RR_3
- .long TokenConstant_RR_4
- .long TokenConstant_RR_5
- .long TokenConstant_RR_6
- .long TokenConstant_RR_7
- .long TokenConstant_RR_8
- .long TokenConstant_RR_9
- .long TokenConstant_RR_2ND
- .long TokenConstant_RR_A
- .long TokenConstant_RR_Alpha
- .long TokenConstant_RR_Apps
- .long TokenConstant_RR_B
- .long TokenConstant_RR_Backspace
- .long TokenConstant_RR_C
- .long TokenConstant_RR_Catalog
- .long TokenConstant_RR_Clear
- .long TokenConstant_RR_Comma
- .long TokenConstant_RR_Cos
- .long TokenConstant_RR_D
- .long TokenConstant_RR_Diamond
- .long TokenConstant_RR_Divide
- .long TokenConstant_RR_Dot
- .long TokenConstant_RR_Down
- .long TokenConstant_RR_E
- .long TokenConstant_RR_EE
- .long TokenConstant_RR_Enter1
- .long TokenConstant_RR_Enter2
- .long TokenConstant_RR_Enter
- .long TokenConstant_RR_Equals
- .long TokenConstant_RR_Esc
- .long TokenConstant_RR_F1
- .long TokenConstant_RR_F2
- .long TokenConstant_RR_F3
- .long TokenConstant_RR_F4
- .long TokenConstant_RR_F5
- .long TokenConstant_RR_F6
- .long TokenConstant_RR_F7
- .long TokenConstant_RR_F8
- .long TokenConstant_RR_F
- .long TokenConstant_RR_G
- .long TokenConstant_RR_H
- .long TokenConstant_RR_Hand
- .long TokenConstant_RR_Home
- .long TokenConstant_RR_I
- .long TokenConstant_RR_J
- .long TokenConstant_RR_K
- .long TokenConstant_RR_L
- .long TokenConstant_RR_Left
- .long TokenConstant_RR_Ln
- .long TokenConstant_RR_M
- .long TokenConstant_RR_Minus
- .long TokenConstant_RR_Mode
- .long TokenConstant_RR_Multiply
- .long TokenConstant_RR_N
- .long TokenConstant_RR_Negate
- .long TokenConstant_RR_O
- .long TokenConstant_RR_P
- .long TokenConstant_RR_Paren_Close
- .long TokenConstant_RR_Paren_Open
- .long TokenConstant_RR_Plus
- .long TokenConstant_RR_Power
- .long TokenConstant_RR_Q
- .long TokenConstant_RR_R
- .long TokenConstant_RR_Right
- .long TokenConstant_RR_S
- .long TokenConstant_RR_Shift
- .long TokenConstant_RR_Sin
- .long TokenConstant_RR_Space
- .long TokenConstant_RR_Store
- .long TokenConstant_RR_T
- .long TokenConstant_RR_Tan
- .long TokenConstant_RR_Theta
- .long TokenConstant_RR_U
- .long TokenConstant_RR_Up
- .long TokenConstant_RR_V
- .long TokenConstant_RR_W
- .long TokenConstant_RR_With
- .long TokenConstant_RR_X
- .long TokenConstant_RR_Y
- .long TokenConstant_RR_Z
+ .word TokenConstant_Calculator-Tbl_TokensConstant
+ .word TokenConstant_HW_Version-Tbl_TokensConstant
+ .word TokenConstant_LCD_Height-Tbl_TokensConstant
+ .word TokenConstant_LCD_Width-Tbl_TokensConstant
+ .word TokenConstant_LCD_Line_Bytes-Tbl_TokensConstant
+ .word TokenConstant_ROM_Base-Tbl_TokensConstant
+ .word TokenConstant_TI89-Tbl_TokensConstant
+ .word TokenConstant_TI89_Classic-Tbl_TokensConstant
+ .word TokenConstant_TI89_Titanium-Tbl_TokensConstant
+ .word TokenConstant_TI92Plus-Tbl_TokensConstant
+ .word TokenConstant_V200-Tbl_TokensConstant
+ .word TokenConstant_TIOS_Entries-Tbl_TokensConstant
+ .word TokenConstant_RR_0-Tbl_TokensConstant
+ .word TokenConstant_RR_1-Tbl_TokensConstant
+ .word TokenConstant_RR_2-Tbl_TokensConstant
+ .word TokenConstant_RR_3-Tbl_TokensConstant
+ .word TokenConstant_RR_4-Tbl_TokensConstant
+ .word TokenConstant_RR_5-Tbl_TokensConstant
+ .word TokenConstant_RR_6-Tbl_TokensConstant
+ .word TokenConstant_RR_7-Tbl_TokensConstant
+ .word TokenConstant_RR_8-Tbl_TokensConstant
+ .word TokenConstant_RR_9-Tbl_TokensConstant
+ .word TokenConstant_RR_2ND-Tbl_TokensConstant
+ .word TokenConstant_RR_A-Tbl_TokensConstant
+ .word TokenConstant_RR_Alpha-Tbl_TokensConstant
+ .word TokenConstant_RR_Apps-Tbl_TokensConstant
+ .word TokenConstant_RR_B-Tbl_TokensConstant
+ .word TokenConstant_RR_Backspace-Tbl_TokensConstant
+ .word TokenConstant_RR_C-Tbl_TokensConstant
+ .word TokenConstant_RR_Catalog-Tbl_TokensConstant
+ .word TokenConstant_RR_Clear-Tbl_TokensConstant
+ .word TokenConstant_RR_Comma-Tbl_TokensConstant
+ .word TokenConstant_RR_Cos-Tbl_TokensConstant
+ .word TokenConstant_RR_D-Tbl_TokensConstant
+ .word TokenConstant_RR_Diamond-Tbl_TokensConstant
+ .word TokenConstant_RR_Divide-Tbl_TokensConstant
+ .word TokenConstant_RR_Dot-Tbl_TokensConstant
+ .word TokenConstant_RR_Down-Tbl_TokensConstant
+ .word TokenConstant_RR_E-Tbl_TokensConstant
+ .word TokenConstant_RR_EE-Tbl_TokensConstant
+ .word TokenConstant_RR_Enter1-Tbl_TokensConstant
+ .word TokenConstant_RR_Enter2-Tbl_TokensConstant
+ .word TokenConstant_RR_Enter-Tbl_TokensConstant
+ .word TokenConstant_RR_Equals-Tbl_TokensConstant
+ .word TokenConstant_RR_Esc-Tbl_TokensConstant
+ .word TokenConstant_RR_F1-Tbl_TokensConstant
+ .word TokenConstant_RR_F2-Tbl_TokensConstant
+ .word TokenConstant_RR_F3-Tbl_TokensConstant
+ .word TokenConstant_RR_F4-Tbl_TokensConstant
+ .word TokenConstant_RR_F5-Tbl_TokensConstant
+ .word TokenConstant_RR_F6-Tbl_TokensConstant
+ .word TokenConstant_RR_F7-Tbl_TokensConstant
+ .word TokenConstant_RR_F8-Tbl_TokensConstant
+ .word TokenConstant_RR_F-Tbl_TokensConstant
+ .word TokenConstant_RR_G-Tbl_TokensConstant
+ .word TokenConstant_RR_H-Tbl_TokensConstant
+ .word TokenConstant_RR_Hand-Tbl_TokensConstant
+ .word TokenConstant_RR_Home-Tbl_TokensConstant
+ .word TokenConstant_RR_I-Tbl_TokensConstant
+ .word TokenConstant_RR_J-Tbl_TokensConstant
+ .word TokenConstant_RR_K-Tbl_TokensConstant
+ .word TokenConstant_RR_L-Tbl_TokensConstant
+ .word TokenConstant_RR_Left-Tbl_TokensConstant
+ .word TokenConstant_RR_Ln-Tbl_TokensConstant
+ .word TokenConstant_RR_M-Tbl_TokensConstant
+ .word TokenConstant_RR_Minus-Tbl_TokensConstant
+ .word TokenConstant_RR_Mode-Tbl_TokensConstant
+ .word TokenConstant_RR_Multiply-Tbl_TokensConstant
+ .word TokenConstant_RR_N-Tbl_TokensConstant
+ .word TokenConstant_RR_Negate-Tbl_TokensConstant
+ .word TokenConstant_RR_O-Tbl_TokensConstant
+ .word TokenConstant_RR_P-Tbl_TokensConstant
+ .word TokenConstant_RR_Paren_Close-Tbl_TokensConstant
+ .word TokenConstant_RR_Paren_Open-Tbl_TokensConstant
+ .word TokenConstant_RR_Plus-Tbl_TokensConstant
+ .word TokenConstant_RR_Power-Tbl_TokensConstant
+ .word TokenConstant_RR_Q-Tbl_TokensConstant
+ .word TokenConstant_RR_R-Tbl_TokensConstant
+ .word TokenConstant_RR_Right-Tbl_TokensConstant
+ .word TokenConstant_RR_S-Tbl_TokensConstant
+ .word TokenConstant_RR_Shift-Tbl_TokensConstant
+ .word TokenConstant_RR_Sin-Tbl_TokensConstant
+ .word TokenConstant_RR_Space-Tbl_TokensConstant
+ .word TokenConstant_RR_Store-Tbl_TokensConstant
+ .word TokenConstant_RR_T-Tbl_TokensConstant
+ .word TokenConstant_RR_Tan-Tbl_TokensConstant
+ .word TokenConstant_RR_Theta-Tbl_TokensConstant
+ .word TokenConstant_RR_U-Tbl_TokensConstant
+ .word TokenConstant_RR_Up-Tbl_TokensConstant
+ .word TokenConstant_RR_V-Tbl_TokensConstant
+ .word TokenConstant_RR_W-Tbl_TokensConstant
+ .word TokenConstant_RR_With-Tbl_TokensConstant
+ .word TokenConstant_RR_X-Tbl_TokensConstant
+ .word TokenConstant_RR_Y-Tbl_TokensConstant
+ .word TokenConstant_RR_Z-Tbl_TokensConstant

- .long TokenConstant_AMS_1xx
- .long TokenConstant_AMS_2xx
- .long TokenConstant_AMS_3xx
+ .word TokenConstant_AMS_1xx-Tbl_TokensConstant
+ .word TokenConstant_AMS_2xx-Tbl_TokensConstant
+ .word TokenConstant_AMS_3xx-Tbl_TokensConstant

.even

diff -Naur Sources/GFA-TEM/TokensBase.asm Sourcesmod/GFA-TEM/TokensBase.asm
--- Sources/GFA-TEM/TokensBase.asm 2005-06-21 13:56:54.000000000 +0200
+++ Sourcesmod/GFA-TEM/TokensBase.asm 2005-08-20 11:46:44.863022400 +0200
@@ -302,10 +302,15 @@
move.l (%a0),%a1
moveq.l #0,%d0 |Efface %d0
move.b (%a1),%d0 |Index de la constante
- lsl.w #2,%d0 |Multiplie par 4
+ add.w %d0,%d0
+| lsl.w #2,%d0 |Multiplie par 4
addq.l #1,(%a0) |Avance de 1 le pointeur de données
lea.l Tbl_TokensConstant,%a0 |Charge la table des constantes dans %a1
+ move.w 0(%a0,%d0.w),%d0 |Pointe vers la bonne adresse
+ lea 0(%a0,%d0.w),%a0
+/*
move.l (%a0,%d0.w),%a0 |Pointe vers la bonne adresse
+*/
jbra (%a0) |Saute à la constante


diff -Naur Sources/GFA-TEM/TokensExec.asm Sourcesmod/GFA-TEM/TokensExec.asm
--- Sources/GFA-TEM/TokensExec.asm 2005-06-24 14:04:10.000000000 +0200
+++ Sourcesmod/GFA-TEM/TokensExec.asm 2005-08-20 11:46:31.533856000 +0200
@@ -220,9 +220,12 @@
addq.l #1,(%a1) |Avance de 1 octet le pointeur de lecture des données
moveq.l #0,%d0 |Vide registre
move.b (%a0),%d0 |Lecture TOKEN
- lsl.w #2,%d0 |Multiplie par 4
+ add.w %d0,%d0
+| lsl.w #2,%d0 |Multiplie par 4
lea.l Tbl_Tokens,%a0 |Charge la table dans a0
- move.l (%a0,%d0.w),%a0
+ move.w 0(%a0,%d0.w),%d0 |Pointe vers la bonne adresse
+ lea 0(%a0,%d0.w),%a0
+| move.l (%a0,%d0.w),%a0
jbsr (%a0) |Execute routine
jbra _Run_loop
|_Run_EndLoop:
Lionel Debroux - membre de TICT.
    
./Post n°40   Marquer comme non lu.
geogeo Ecrit le: Samedi 20 août 2005 à 12:07 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


OK merci je vais regarder tout ça. Je met ce topic dans un coin. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°41   Marquer comme non lu.
geogeo Ecrit le: Samedi 20 août 2005 à 12:37 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Par ailleurs, une lecture du code révèle notamment:
* moveq #0,dn; move.w <ea>,dn; dbf dn,ailleurs: le moveq est inutile (code présent notamment dans la ClipSpriteX8 que tu m'avais envoyée).


Tu peux m'indiquer la fonction comportement cette inscrutiction inutile? Tu parles de Put?


et ici, il y a peut-être moyen de faire encore mieux en passant toujours le paramètre de _memcpy_slow dans d1 (mais c'est un poil moins lisible) est:


Certe mais si je fais ça je perd de la mémoire car tout simplement aux fonctions faisant appelle à _memcpy_slow je dois ajouter move.w %d0,%d1.

Sinon à chaque fois que je fais un moveq.l #0,dn c'est que j'ai peur d'obtenir la partie supérieure sur 16 Bits remplie.

J'ai effectué les modifications que tu m'as conseillées.

J'ai gagné 1126 octets.
-Edité le Samedi 20 août 2005 à 12:57 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°42   Marquer comme non lu.
Lionel Debroux Ecrit le: Samedi 20 août 2005 à 13:14 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> Tu peux m'indiquer la fonction comportement cette inscrutiction inutile? Tu parles de Put?
Je pense, oui, mais il y en a d'autres.
> Sinon à chaque fois que je fais un moveq.l #0,dn c'est que j'ai peur d'obtenir la partie supérieure sur 16 Bits remplie.
Les dbxx n'utilisent que les 16 LSB.

J'ai oublié de préciser que j'avais testé les modifications en exécutant un programme. Vu le type de modifications, si j'avais fait une faute, il y aurait eu Address Error ou quelque chose comme ça presque immédiatement.

1126 ? Je suis passé d'un peu plus de 28000 à moins de 26500.
Lionel Debroux - membre de TICT.
    
./Post n°43   Marquer comme non lu.
naPO Ecrit le: Samedi 20 août 2005 à 13:18 Déconnecté(e)    Voir le profil de naPO Envoyer un email à naPO Visiter le site WEB de naPO Envoyer un message privé à naPO  


J'ai oublié de préciser que j'avais testé les modifications en exécutant un programme. Vu le type de modifications, si j'avais fait une faute, il y aurait eu Address Error ou quelque chose comme ça presque immédiatement.

Traduction : Lionel affirme sans sourciller qu'il code mieux que geogeo et que ce dernier n'a pas à redire son code.
Tel un automate, le dinosaure noir s'avance vers le chef des toutous-bombes et dit : "SCHNAAA SCHNAAA SCHNAPPI ! SCHNAPPI-SCHNAPPI-SCHNAPP !!!!!!" (en attendant une meilleure signature)


Avec de vrais morceaux de pattes d'eph :
http://gilou82.free.fr/Vrac/KSO-BAN.png
    
./Post n°44   Marquer comme non lu.
geogeo Ecrit le: Samedi 20 août 2005 à 13:26 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Lionel Debroux :
> Tu peux m'indiquer la fonction comportement cette inscrutiction inutile? Tu parles de Put?
Je pense, oui, mais il y en a d'autres.
> Sinon à chaque fois que je fais un moveq.l #0,dn c'est que j'ai peur d'obtenir la partie supérieure sur 16 Bits remplie.
Les dbxx n'utilisent que les 16 LSB.

J'ai oublié de préciser que j'avais testé les modifications en exécutant un programme. Vu le type de modifications, si j'avais fait une faute, il y aurait eu Address Error ou quelque chose comme ça presque immédiatement.

1126 ? Je suis passé d'un peu plus de 28000 à moins de 26500.


Quelles sont tes options de compilation?
Le code original de GFA-Tem faisant 28093 octets contre 26697 octets au final.
Ca fait 1396 octets de gagné, désolé j'avais pris la taille avant retouche de la table des tokens. %)
-Edité le Samedi 20 août 2005 à 13:28 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°45   Marquer comme non lu.
Lionel Debroux Ecrit le: Samedi 20 août 2005 à 15:33 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

~200 octets de différence, ce sont probablement -l --all-relocs dans les options de l'assembleur (voir le diff). -ffunction-sections -fdata-sections dans les options de GCC ne doivent même pas servir à grand chose ici, vu qu'il n'y a pas de code C.

#43: tout faux. Au contraire, j'ai pour une fois fait du code qui fonctionne du premier coup... Voir:
* TI-Chess: 4.12 à 4.14 ont des bugs idiots;
* ExtGraph 2.00 Betas (bientôt la cinquième): voir l'historique et maintenant les logs des révisions sur le repository;
* les bientôt quatre betas privées de TICT-Explorer: les deux premières au moins contiennent au moins un bug important (et je ne parle même pas de ce qui était avant, les nombreuses corrections de bugs que j'ai trouvés);
* ce sur quoi j'ai bossé pour mon stage cet été: le nombre de bugs que j'ai mis et corrigés, et ce n'est pas fini, car je n'ai pas fini le boulot - ni fini de coder, ni fini de corriger.
Lionel Debroux - membre de TICT.
    
./Post n°46   Marquer comme non lu.
Lionel Debroux Ecrit le: Mardi 30 août 2005 à 16:23 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Pour revenir au sujet du topic: j'avais laissé des bugs sur les ClipSpriteX8, voir le topic de limmt dans la section Assembleur.

Je ne suis toujours pas revenu de la façon dont naPO interprète un post parfaitement anodin. Je veux en effet dire - en vitesse - que j'ai fait très peu de tests, mais que si j'avais fait une erreur, le programme prendrait des pointeurs invalides et crasherait tout de suite, de façon bien visible !

L'arrogance mentionnée est réelle, mais avec peu de personnes. C'est facile à voir avec les correspondances avec les programmeurs que j'aide...
Ici, c'est à cause du foutage de gueule #19. Avec Kevin, c'est parce qu'il dit mais ne fait pas. OK, il a ses raisons.
Lionel Debroux - membre de TICT.
    
./Post n°47   Marquer comme non lu.
geogeo Ecrit le: Mercredi 31 août 2005 à 20:38 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Faut toujours que tu ajoutes des trucs en fin de tes posts. On est au post 47 maintenant, tu sors le post #19 (qui date) où on s'est déjà expliqué en plus. Tu cherches quoi au juste? Du HS? Des enguelades? #roll#
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°48   Marquer comme non lu.
naPO Ecrit le: Jeudi 1er septembre 2005 à 08:01 Déconnecté(e)    Voir le profil de naPO Envoyer un email à naPO Visiter le site WEB de naPO Envoyer un message privé à naPO  


Nan c'était un post après le #19, mais apparemment il a pas remarqué que j'insistais pas des masses.
Tel un automate, le dinosaure noir s'avance vers le chef des toutous-bombes et dit : "SCHNAAA SCHNAAA SCHNAPPI ! SCHNAPPI-SCHNAPPI-SCHNAPP !!!!!!" (en attendant une meilleure signature)


Avec de vrais morceaux de pattes d'eph :
http://gilou82.free.fr/Vrac/KSO-BAN.png
    
./Post n°49   Marquer comme non lu.
Sasume Ecrit le: Jeudi 1er septembre 2005 à 14:15 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Pour revenir aux cercles remplis, je pense que ce qu'utilise Nul est ce qu'il y a de plus rapide (à part qu'on peut optimiser les appels à la fonction de tracé de lignes horizontales).

L'idée de tracer un carré inscrit dans le cercle me parrait stupide.

Et les algo pour faire du cercle plein ou vide sont les mêmes. Je ne vois pas vraiment d'où pourraient venir les différences #confus#
-Edité le Jeudi 1er septembre 2005 à 14:15 par sasume-
    
./Post n°50   Marquer comme non lu.
geogeo Ecrit le: Jeudi 1er septembre 2005 à 19:27 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


L'idée de tracer un carré inscrit dans le cercle me parrait stupide.


lol
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°51   Marquer comme non lu.
Folco Ecrit le: Jeudi 1er septembre 2005 à 19:58 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


ah oui? je suis d'accord avec Sasume sur ce point...
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°52   Marquer comme non lu.
Sasume Ecrit le: Jeudi 1er septembre 2005 à 21:21 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

geogeo :
L'idée de tracer un carré inscrit dans le cercle me parrait stupide.


lol

OK, j'argumente, mais fais-en autant de ton côté également alors :
Le fait de tracer un carré inscrit dans le cercle puis compléter les côtés plutôt que de tracer les lignes horizontales entières au fur et à mesure (1) produit un code bien plus gros (peut-être 2 fois plus), (2) n'accélère pas du tout : déjà pour trouver les coordonnées des sommets du carré il faut effectuer un calcul, ensuite, le fait de tracer un carré plein est bien plus rapide que de tracer des lignes horizontales dont la largeur varie, mais c'est le seul avantage, qui est perdu parce que de toute façon, il faut ensuite compléter les bords du disque, ce qui revient exactement au même (en termes de calculs) que de tracer les lignes entières. Donc au final, on fait en deux étapes ce qu'on aurait pu faire en une seule. Pas de gain.
-Edité le Jeudi 1er septembre 2005 à 21:23 par sasume-
    
./Post n°53   Marquer comme non lu.
Lionel Debroux Ecrit le: Vendredi 2 septembre 2005 à 10:06 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Je suis aussi d'accord avec Sasume, c'est le raisonnement que je me suis tenu.

#47: revenir sur des trucs dans lequels j'ai été mis en cause de façon ridicule. Droit de réponse, quoi. C'est interdit ?
Lionel Debroux - membre de TICT.
    
./Post n°54   Marquer comme non lu.
Folco Ecrit le: Vendredi 2 septembre 2005 à 10:28 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Par mmsg, c'est mieux aussi non? %)
Ca évite d'avoir des règlements de compte dans les trois dernières lignes de chaque post pendant plusieurs pages =)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°55   Marquer comme non lu.
Sasume Ecrit le: Vendredi 2 septembre 2005 à 18:08 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Sasume :
geogeo :
L'idée de tracer un carré inscrit dans le cercle me parrait stupide.


lol

OK, j'argumente, mais fais-en autant de ton côté également alors
S'il te plait, montre moi pourquoi j'ai tort de penser que ton idée est stupide au lieu de te moquer de moi.
    
./Post n°56   Marquer comme non lu.
Sasume Ecrit le: Samedi 3 septembre 2005 à 12:49 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

#zzz#
    
./Post n°57   Marquer comme non lu.
Jfg Ecrit le: Samedi 3 septembre 2005 à 15:18 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


il se moquait peut être pas de ce que tu disais mais de la façon dont tu le disais.
Kill Mario
    
  :: Index » Forum Ti68K » Programmation C » Bug dans Extgraph beta 4 ? (59 réponse(s))
Pages : 3/4     « 1 2 [3] 4 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 93.6ms avec 18 requetes