π
<-

SPASM GUI

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Re: SPASM GUI

Unread postby Lionel Debroux » 22 Jul 2012, 08:53

Si tu obtiens le même résultat en invoquant spasm à la main que ce que tu obtiens en invoquant le GUI présenté ici (as-tu essayé ?), alors c'est vraisemblablement un bug de spasm.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6863
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: SPASM GUI

Unread postby linkakro » 23 Jul 2012, 23:27

Veux-tu bien parler de spasm.exe du dossier "bin" ?
Lorsque je double-clique dessus pour l'executer, cela affiche une fenêtre type cmd pendant moins d'une demi-seconde (que je récupère avec une capture) et rien ne semble se produire.
cmd en executant spasm wrote:SPASM Z80 Assembler by Spencer Putt and Don Straney
spasm [options] <input file> <output file>
Options:
-T = Generate code listing
-C = Code counter mode
-L = Symbol table mode
-S = Stats mode
-O = Don't write to output file
-I [directory] = Add include directory
-A = Labels are cAse-sensitive
-D<name>[=value] = Create a define 'name' [with 'value']
-N = Don't use colors for messages
-V <Expression> = Pipe expression directly into assembly

Merci pour la réponse passée et d'avance pour les suivantes. :):

ps: je ne sais pas à quoi sert spasm par rapport à spasmgui...
User avatar
linkakro
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 92%
 
Posts: 14
Joined: 20 Jul 2012, 18:02
Gender: Male
Calculator(s):
MyCalcs profile
Class: école IMERIR après un DUT-GEII et une année de cpge PTSI

Re: SPASM GUI

Unread postby Lionel Debroux » 24 Jul 2012, 06:41

Veux-tu bien parler de spasm.exe du dossier "bin" ?

Oui :)

Lorsque je double-clique dessus pour l'executer, cela affiche une fenêtre type cmd pendant moins d'une demi-seconde (que je récupère avec une capture) et rien ne semble se produire.

Rien ne se produit car il ne faut pas simplement double-cliquer dessus pour l'exécuter ;)
Comme la quasi-totalité des compilateurs, assembleurs, linkers, et autres outils de build, spasm est un programme en ligne de commande. Avoir un programme en ligne de commande permet la scriptabilité de manière facile et portable.
Comme il te l'indique, spasm a besoin d'un fichier d'entrée, d'un fichier de sortie et d'options.

ps: je ne sais pas à quoi sert spasm par rapport à spasmgui...

spasm fait le boulot; spasmgui construit et exécute les invocations de spasm. spasmgui est inutile sans spasm.

Ce que je cherchais, en fait, pour discriminer la cause du bug (spasm ou spasmgui), c'est à obtenir la suite de commandes "spasm ..." construite par spasmgui, pour que tu la reproduises et que tu voies si le problème est toujours présent. spasmgui ne fournit-il pas ça quelque part ?
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6863
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: SPASM GUI

Unread postby linkakro » 24 Jul 2012, 11:27

J'ai consulté wabbit.codeplex.com pour en apprendre un peu plus sur spasm puisque je n'ai jamais utilisé cette manière d'executer des logiciels.
Mais je n'ai pas encore trouvé la commande nécessaire à executer correctement spasm.exe.

Cependant il semble que spasm ne soit pas prévu pour traiter les 83p(82stat) : wabbit.codeplex.com ne mentionne aucun ti83.inc/ti83asm.inc :(: , tandis qu'il propose ti83plus.inc. (et des includes innutiles pour moi pour l'instant :#roll#: )
Cela ne signifie pas que je ne peux pas utiliser ti83.inc : cela devrait signifier que spasm ne prévoit pas de créer autre chose que des 8xp.
C'est dommage car le codage hexadécimal est le même, seul le format 8xp/83p est différent...

J'ai réussi à récupérer la partie hexadécimale d'un programme en utilisant l'option "list" de spasmgui, que j'ai collé proprement dans un 83p avec un éditeur.
Mais le texte "hello world" est faussé (tokens bizarres), probablement à cause du codage du texte par le logiciel notepad_windows (lors de l'écriture de la source *.z80), ou bien je ne sais pas...

---------

Dautre part je reprend scrupuleusement mes codes sources pour être absoluement certain que mes problèmes ne viennent pas de là.
D'autant que je tente le coup avec deux codes qui fonctionnent en 83p et 8xp dans ORG (http://clrhome.org/asm/).

--- EDIT:
J'ai effectivement corrigé une confusion entre call() et bcall() dans le 8xp.
Je dois vérifier aussi le 83p mais je ne progresse pas pour l'instant.

Réglons immédiatement cette question de code source pour pouvoir nous concentrer ensuite sur le reste.
Code: Select all
; 83
_clrlcdfull .equ $4755
_puts .equ $470D
currow .equ $800C
.org $9327
.db $BB,$6D
   call _clrlcdfull
   ld de,$0103
   ld (currow),de
   ld hl,texte
   call _puts
   ret
texte:
   .db "HELLO  WORLD  !",0
.end
Code: Select all
; 83plus
#define bcall(xxxx) rst 28h \ .dw xxxx
_clrlcdfull .equ $4540
_puts .equ $450A
currow .equ $844B
.org $9D93
.db $BB,$6D
   bcall(_clrlcdfull)
   ld de,$0103
   ld (currow),de
   ld hl,texte
   bcall(_puts)
   ret
texte:
.db "HELLO  WORLD  !",0
.end
User avatar
linkakro
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 92%
 
Posts: 14
Joined: 20 Jul 2012, 18:02
Gender: Male
Calculator(s):
MyCalcs profile
Class: école IMERIR après un DUT-GEII et une année de cpge PTSI

Re: SPASM GUI

Unread postby contra-sh » 24 Jul 2012, 14:08

Salut,

En regardant ton code 2 secondes (je suis presse) deja pour la version ti83 il n'y a pas de :
db $BB,$6D

Je travaille avec spasm pour ti83 donc ne t'inquiete pas ca va marcher :)
User avatar
contra-sh
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 62.9%
 
Posts: 85
Joined: 24 Aug 2009, 00:00
Location: Nice
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique

Re: SPASM GUI

Unread postby linkakro » 24 Jul 2012, 16:01

Merci :):
Le code hexadécimal donné par le listing fonctionne donc maintenant le code source est probablement juste.
(j'ai bien supprimmé le .db $bb6d)

Mais la compilation ne marche toujours pas :#fou#:
(j'en revient à valider mes premières hypothèse concernant la structure des 83p/8xp)
Je continue donc à chercher comment executer spasm.exe pour savoir si mon problème vient de spasm.exe ou spasmgui.exe.
User avatar
linkakro
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 92%
 
Posts: 14
Joined: 20 Jul 2012, 18:02
Gender: Male
Calculator(s):
MyCalcs profile
Class: école IMERIR après un DUT-GEII et une année de cpge PTSI

Re: SPASM GUI

Unread postby linkakro » 01 Aug 2012, 17:14

J'ai réussi à faire fonctionner spasm.exe avec un batch (sans spasmgui) mais le problème initial est toujours présent. (c'est-à-dire que le fichier 83p est corrompu)
compiler.bat
Code: Select all
spasm.exe HELLO83.z80 HELLO83.83p -T -A -DTI83=TI83
spasm.exe HELLO8X.z80 HELLO8X.8xp -T -A -DTI83P=TI83P
pause
J'ai essayé d'executer le batch avec la commande "Exécuter en tant qu'administrateur".
Il faut modifier le batch en écrivant le chemin complet des fichiers (et que le chemin ne contienne pas d'espace)
Le compilateur est executé sans erreur mais même ainsi le problème initial demeure.

Il semble que mon problème soit indépendant de spasmgui alors je suis désolé pour ce micmac.

Je ne comprend vraiment pas pourquoi j'ai ce problème puisque tout le monde déclare que ça marche pour ti83 sur win7-32bits.
User avatar
linkakro
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 92%
 
Posts: 14
Joined: 20 Jul 2012, 18:02
Gender: Male
Calculator(s):
MyCalcs profile
Class: école IMERIR après un DUT-GEII et une année de cpge PTSI

Re: SPASM GUI

Unread postby contra-sh » 08 Aug 2012, 19:34

Essaie de mettre un header ion a ton fichier (et de lancer avec ion evidemment) ou alors de 'squisher' ton fichier.
Tasm + Obj83 devrait marcher peut-etre spasm + obj83 aussi ?

La 83 n'accepte pas les fichier 'unsquish' contrairement a la 83+ qui est plus tolerante. Ion permet de lancer un fichier 'unsquish'.

Je reponds a ce probleme dans cette doc :
http://david.nathalie.perso.sfr.fr/calc/tuto/tuto.html

Evidemment ne dis pas a spasm de compiler un 83p mais un .bin sinon il tentera de packager ton fichier...

Dis moi si tu es toujours coince.
User avatar
contra-sh
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 62.9%
 
Posts: 85
Joined: 24 Aug 2009, 00:00
Location: Nice
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique

Re: SPASM GUI

Unread postby linkakro » 13 Aug 2012, 11:40

J'ai commandé à spasm de compiler des fichiers d'extension bin, et supprimmé la commande D (dont j'ignore autant l'utilité que la syntaxe).
Remarques :
-hello83.83p corrompu est identique à hello83.bin
-La partie executable de hello8x.8xp est identique à hello8x.bin

Il semble que depuis le début mon ordinateur executant spasm.exe produise des fichiers bin lorsqu'ils sont supposés être 83p (il manque le header et le bottom)
(je crois que c'est ça que tu as tenté de m'expliquer avec le terme "squish")

Ensuite je cherche un "squisher" (est-ce bien cela ?)
Je dois tenter d'utiliser obj83, 83lnk, bin2var, bin8x, devpac...
-obj83 ne gère pas les bin tandis que spasm ne génère que des bin (et des fichiers TI) (j'ignore ce que représente un obj) EDIT : quoi qu'il en soit le programme de destination est vide
-bin8x est fait pour linux
-Bin2var génère des fichiers 83p et 8xp plus ou moins foireux : le 8xp est rejeté par wabbitemu os1.12 et ils causent tous deux une erreur syntaxe dans wabbitemu os2.43ti84 et vti os1.12.
-DevPac 83/8X semblent parfaits... mais le 83p est toujours binaire, et provoque une erreur syntaxe.

Je crois que je dois en revenir aux formats pour comprendre mon problème. (bien sûr corrigez moi si je fais fausse route)
Je sais qu'il existe deux formats :
-purement binaire, affiché par la calculatrice en tokens divers et variés lorsqu'on déprotège le programme.
-décomposé en tokens hexadécimaux, par conséquent lisibles par simple édition (et plus lourd que du binaire puisque chaque token ne représente que quatre bits tout en occupant 1 octet voire 2)
Le type hexadécimal est supporté autant par la ti83 que la ti83plus, tandis que le type binaire n'est supporté que par la ti83plus à ce que je sache (tant qu'on utilise pas un shell).
Je suis étoné que tous ces logiciels créent des programmes binaires pour ti83.
J'ai l'impression que le problème est proche de cela...


J'ai essayé de compiler pour ion mais les programmes ne sont pas détectés par le shell. :#mad#:

Merci. :):
Last edited by linkakro on 20 Aug 2012, 11:05, edited 1 time in total.
User avatar
linkakro
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 92%
 
Posts: 14
Joined: 20 Jul 2012, 18:02
Gender: Male
Calculator(s):
MyCalcs profile
Class: école IMERIR après un DUT-GEII et une année de cpge PTSI

Re: SPASM GUI

Unread postby contra-sh » 14 Aug 2012, 01:59

Le seul packager que j'ai teste sous windows c'est Obj83 : il fait packaging + unsquish
packager = mettre le code dans un paquet avec entete et footer
unsquish = changer la facon de representer les valeurs dans le code

Pour le faire marcher, renomme ton .bin en .obj c'est la meme chose :)

Par exemple code squishe : CD 55 47
Code unsquishe : 43 44 35 35 34 37
43 est la valeur ascii de C et on peut remarquer que le code sera 2 fois plus long en unsquish !!

Donc un code unsquish affiche des caractère hexa dans l'editeur de programme (lorsqu'il n'est pas protégé).
Et un code squishe affiche des tokens.

Tu pourrais aussi utiliser TASM + obj83 c'est certain que ça marche.

Sinon joins les fichiers generes je pourrais facilement te dire ce qui foire.

Tu peux aussi utiliser bin2bin83 entre la phase d'assemblage et la phase d'empaquetage :
http://www.ticalc.org/archives/files/fi ... 44594.html

J'attends tes news :)

PS : fichier en rapport tout juste uploade sur ticalc mais pour ti83+ : http://www.ticalc.org/archives/files/fi ... 44973.html
User avatar
contra-sh
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 62.9%
 
Posts: 85
Joined: 24 Aug 2009, 00:00
Location: Nice
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique

PreviousNext

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: ClaudeBot [spider], Google [Bot] and 28 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1020 utilisateurs:
>1005 invités
>5 membres
>10 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)