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 » GFA-Basic TI68K » Programmation » question (43 réponse(s))
./REPRISE DU POST PRECEDENT (post n°19)   Marquer comme non lu.
tama Ecrit le: Mardi 11 juillet 2006 à 12:17 Déconnecté(e)    Voir le profil de tama Envoyer un email à tama Envoyer un message privé à tama  

Une autre question
Quand on a une autre police que "la police standard" (GFA FONT) par exemple une police qu'on a crée comment on fait pour la charger ?
    
./Post n°20   Marquer comme non lu.
geogeo Ecrit le: Mardi 11 juillet 2006 à 14:51 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


oula ça vient, les routines en assembleurs on était développées et il existe un outil pour faire les fonts mais ça viendra avec la pochaine release et y a du boulot donc faudra être patient. :)
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°21   Marquer comme non lu.
tama Ecrit le: Lundi 31 juillet 2006 à 17:50 Déconnecté(e)    Voir le profil de tama Envoyer un email à tama Envoyer un message privé à tama  

en revenant a peek (et plus particulierement a poke) est-ce que je pourrais les utiliser pour modifier le contraste ou autre chose ??
    
./Post n°22   Marquer comme non lu.
tama Ecrit le: Lundi 31 juillet 2006 à 17:51 Déconnecté(e)    Voir le profil de tama Envoyer un email à tama Envoyer un message privé à tama  

->est-ce qu'il y a un code pour obtenir la valeur du contraste actuel et la modifier ?
    
./Post n°23   Marquer comme non lu.
geogeo Ecrit le: Lundi 31 juillet 2006 à 19:24 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Alors faut savoir plusieurs choses concernant l'évolution de GFA-Basic et la gestion du contraste.

Pour changer le contraste il faut passer par du code en assembleur (actuellement GFA-Basic ne permet pas d'executer du code pure ASM, il manque en gros la fonction Exec) ou modifier un port (le 0x60001D).

La gestion du contraste est un peu différente suivant le modèle de calculatrice en particulier sur HW1.

j89hw.txt
$60001D -W ($80+contrast)
:7 HW1: Voltage multiplier enable. Keep set (=1)!
HW2: -
:6-5 -
:4 HW1: Screen disable (power down)
HW2: LCD contrast bit 4 (msb)
:3-0 LCD contrast bits 3-0 (bit 3 is msb on HW1)


Bref sur HW1 il n'y a que 4 bits pour la valeur du contraste au lieu de 5 sur HW2, de plus on remarque que sur HW1 le bit 7 est affecté et doit toujours rester à 1. Il faut donc prendre des précautions au niveau du code.

A noter qu'il n'est pas possible d'obtenir la valeur du contraste et tant donné que ce port n'est accessible qu'en écriture, donc tu pourras le modifier mais pas le lire.

De plus sur HW2 plus la valeur est importante plus le contraste diminue alors que c'est le contraire sur HW1.


@Entry
@Main

Procedure Entry
  Entry.Contrast_Mask%=&X1111 Or 16*(Peek(&H70001F) And 1)
  If (HW_VERSION=1) Then
    Entry.Contrast_Port%=&X10000000
  Endif
Return

Procedure Main
  Repeat
    Cls
    If RR_PLUS Then
      Inc C%
    Else If RR_MINUS Then
      Dec C%
    Endif
    
    Print At(1,1);C%
    If (RR_C) Then
      @Setcontrast(C%)
    Endif
    Pause 5
  Until RR_ESC
Return

Procedure Setcontrast(N%)
  Poke (&H60001D,((N% And Entry.Contrast_Mask%) Or Entry.Contrast_Port%))
Return


Le port 0x70001F me permet de savoir sur combien de bits s'étend la valeur du contraste.

A noter que GFA-TEM contiendra des fonctions pour gérer le contraste mais en attendant essayes d'utiliser le code ci-dessus.
-Edité le Lundi 31 juillet 2006 à 19:27 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°24   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 31 juillet 2006 à 19:27 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Effectivement, pour lire la valeur du contraste, faut interroger une variable en RAM de AMS, et son adresse change selon la version de AMS.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°25   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 31 juillet 2006 à 20:18 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Voilà comment avoir la valeur du contraste:
Old5000%=LPeek(&H5000)
Old5004%=LPeek(&H5004)
Old5008%=LPeek(&H5008)
Old500c%=LPeek(&H500C)
Old5010%=LPeek(&H5010)
Old5014%=LPeek(&H5014)
Old4c00%=Peek(&H4C00)
LPoke &H5000,&H508F4850
LPoke &H5004,&H2F007004
LPoke &H5008,&H4E4911D0
LPoke &H500C,&H4C00201F
LPoke &H5010,&H205F54AF
LPoke &H5014,&H00024E73
Oldc%=LPeek(&HC)
LPoke &H4000C,&H5000
LPoke &H20000C,&H5000
DPoke 31337,0
Contraste%=Peek(&H4C00)
LPoke &H4000C,Oldc%
LPoke &H20000C,Oldc%
LPoke &H5000,Old5000%
LPoke &H5004,Old5004%
LPoke &H5008,Old5008%
LPoke &H500C,Old500c%
LPoke &H5010,Old5010%
LPoke &H5014,Old5014%
Poke &H4C00,Old4c00%


Ça risque de ne pas marcher avec le TiEmu actuel vu un bogue que je viens de voir, je vais corriger ce bogue pour le prochain snapshot de TiEmu. En attendant, faudra tester sur calculatrice réelle, en espérant que je ne me sois pas trompé quelque part (parce que sinon, plantage).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°26   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 31 juillet 2006 à 20:19 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


PS: Bonne chance pour comprendre ce code. :p
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°27   Marquer comme non lu.
Onur Ecrit le: Lundi 31 juillet 2006 à 21:06 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


C'est pas vraiment digne de basic ca.. il faudrait un GetContrast()
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°28   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 31 juillet 2006 à 22:41 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Ce n'est pas vraiment du BASIC. ;) En fait, tout le code en BASIC n'est qu'une astuce pour faire tourner mes instructions ASM. :)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°29   Marquer comme non lu.
geogeo Ecrit le: Lundi 31 juillet 2006 à 23:57 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bof c'est trop compliqué pour pas grand chose, bon voici la fameuse commande Exec.


Cls
A$=Mkl$(&H287800C+Mkl$(&HD9FC0000)+Mkl$(&H0A5C2854)+Mkl$(&H4E944E73)+Mki$(&H0000)

@Execasm(A$)
Print "End"

Repeat
Until RR_ESC

Procedure Execasm(Code$)
  Local Sav_Memerr%
  Sav_Memerr%=Lpeek(&H7C)

  ' Clear protection
  Poke(&H600001,(Peek(&H600001) And &X11111011))
  Lpoke(&H7C,Varptr(Code$))
  
  ' Set protection
  Poke(&H600001,(Peek(&H600001) Or &X00000100))

  ' Execute
  Poke 1,1
  
  ' Clear protection
  Poke(&H600001,(Peek(&H600001) And &X11111011))  
  
  Lpoke(&H7C,Sav_Memerr
  ' Set protection
  Poke(&H600001,(Peek(&H600001) Or &X00000100))
Return


Le code est dans a$, il diminue le contraste. Un code foireux déclenche le gestionnaire d'erreur de GFA-Basic mais peut planter la calculatrice.

Reste à pondre le code pour retourner le contraste.

Le principe, stocker l'adresse d'une variable dans le vecteur int6 par exemple ou un trap, executer le code qui retourne le contraste et foutre d0 à l'adresse stockée.

Veuillez à ce que la chaîne; ici a$ soit à une adresse paire.
-Edité le Mardi 1er août 2006 à 00:03 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°30   Marquer comme non lu.
tama Ecrit le: Mardi 1er août 2006 à 05:36 Déconnecté(e)    Voir le profil de tama Envoyer un email à tama Envoyer un message privé à tama  

moui j'ai rien compris au code (aucune connaissance dans l'ASM ou le C ainsi que les adresses des ROM_CALL (c'est ca ?)) mais bon je vous fait confiance :)
au passage j'ai une TI89 titanium avec HW3
    
./Post n°31   Marquer comme non lu.
tama Ecrit le: Mardi 1er août 2006 à 06:01 Déconnecté(e)    Voir le profil de tama Envoyer un email à tama Envoyer un message privé à tama  

et y a quelque chose pour connaitre le niveau des piles ?
    
./Post n°32   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 1er août 2006 à 08:27 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


geogeo, ton code n'est pas portable, tu ne peux pas exécuter des instructions à cet endroit en général (sauf avec HW3Patch, bien sûr), parce que tu n'as aucune idée où se trouvera A$ en RAM (certainement pas dans la zone toujours autorisée, cad. 0x5000-0x5fff).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°33   Marquer comme non lu.
geogeo Ecrit le: Mardi 1er août 2006 à 13:20 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Arf ouai, j'avais pas pensé à ça. :D

Pour connaitre le niveau des piles c'est la même histoire

Cls
 
@Batterylevel
Print Battery_Value%
 
Repeat
Until RR_ESC

Procedure Batterylevel()
  Local Mask%,Step%
  If (HW_VERSION=1) Then
    Mask%=&X111
    Step%=1
  Else
    Mask%=&X110
    Step%=2
  Endif
  
  Battery_Value%=-1
  For I%=0 To Mask% Step Step%
    Dpoke (&H600018,(Dpeek(&H60001 Or(I%*12))
    If (Peek(&H600000) And &X100) Then
      Battery_Value%=I%
      Exit
    Endif
  Next
Return



HW1: bits 9-7
0: ~4.6v, 1: ~4.5v, 2: ~4.3v, 3: ~4.0v,
4: ~3.7v, 5: ~3.4v, 6: ~3.2v, (7: ~2.9v calc resetted!)
HW2: bits 9-8, must enable batt checker at $70001D:3,0 too
0: ~4.3v (?), 1: ~4.0v (?),
2: ~3.7v (?), 3: ~3.4v (?)


Je suis pas sûr de mon code car sur HW2 il semble qu'il faut activer un bit mais ça a l'air pas très bien documenté.
-Edité le Mardi 1er août 2006 à 13:33 par geogeo-
-Edité le Mardi 1er août 2006 à 18:46 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°34   Marquer comme non lu.
Onur Ecrit le: Mardi 1er août 2006 à 18:39 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


BOn sang, pourquoi tu fais pas un GetBatteryLevel et GetContrast???
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°35   Marquer comme non lu.
geogeo Ecrit le: Mardi 1er août 2006 à 18:45 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah écoute c'est simple, j'en suis qu'au tokeniseur, qu'en j'en serais à GFA-TEM ça sera intégré, en attendant on fait avec ce qu'on a.
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°36   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 1er août 2006 à 20:03 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Voilà une version un peu plus propre (avec les idées de geogeo, c'est une combinaison de mon code et du sien) de mon code pour le contraste:
  • utilisation de l'AI7 au lieu de Address Error, donc moins de bidouillage pour le rte (et pas d'incompatibilité avec le TiEmu actuel qui ne met pas les bons contenus sur la pile avec Address Error, faut que je corrige ça)
  • utilisation de la déprotection de la table des vecteurs à la place de mon hack (0x4000C, 0x20000C)

Old5000%=LPeek(&H5000)
Old5004%=LPeek(&H5004)
Old5008%=LPeek(&H5008)
Old500c%=LPeek(&H500C)
Old5010%=DLPeek(&H5010)
Old4c00%=Peek(&H4C00)
LPoke &H5000,&H48502F00
LPoke &H5004,&H70044E49
LPoke &H5008,&H11D04C00
LPoke &H500C,&H201F205F
DPoke &H5010,&H4E73
Old7c%=LPeek(&H7C)
Poke &H600001,(Peek(&H600001) And &X11111011)
LPoke &H7C,&H5000
Poke &H600001,(Peek(&H600001) Or &X00000100)
Poke 0,0
Contraste%=Peek(&H4C00)
Poke &H600001,(Peek(&H600001) And &X11111011)
LPoke &H7C,Old7c%
Poke &H600001,(Peek(&H600001) Or &X00000100)
LPoke &H5000,Old5000%
LPoke &H5004,Old5004%
LPoke &H5008,Old5008%
LPoke &H500C,Old500c%
DPoke &H5010,Old5010%
Poke &H4C00,Old4c00%
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°37   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 2 août 2006 à 02:55 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Hmmm, j'ai regardé la gestion de Address Error dans TiEmu et il me donne un stack frame valide, je ne sais pas exactement comment ça se passe (faudra que je regarde de plus près)... Mais le PC de retour est mauvais, il est déjà quelques octets plus loin et il est censé être le PC auquel s'est produit l'accès mauvais, faudra que je regarde sur le vrai matériel pour voir si c'est un bogue de TiEmu ou si c'est le matériel qui est comme ça. Bref, le code avec Address Error risque de ne pas marcher, donc il vaut mieux utiliser la nouvelle version (post n°36) qui passe par la Protected Memory Violation.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°38   Marquer comme non lu.
tama Ecrit le: Jeudi 3 août 2006 à 10:12 Déconnecté(e)    Voir le profil de tama Envoyer un email à tama Envoyer un message privé à tama  

j'ai une question qui n'a completement rien a voir avec ce qu'il y a au dessus :
comment s'utilise la librairie GFA_Font ? ca s'utilise sur le PC ou a partir de l'editeur de texte, dans un programme normal de GFA-Basic ?
y a pas de doc, je comprends pas...:(
    
  :: Index » GFA-Basic TI68K » Programmation » question (43 réponse(s))
Pages : 2/3     « 1 [2] 3 » »|

.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 180.85ms avec 18 requetes