SPASM GUI
26 posts
• Page 2 of 3 • 1, 2, 3
Re: SPASM GUI
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.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: SPASM GUI
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.
Merci pour la réponse passée et d'avance pour les suivantes.
ps: je ne sais pas à quoi sert spasm par rapport à spasmgui...
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...
-
linkakro
Niveau 4: MC (Membre Confirmé)- Posts: 14
- Joined: 20 Jul 2012, 18:02
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: école IMERIR après un DUT-GEII et une année de cpge PTSI
Re: SPASM GUI
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.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6865
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: SPASM GUI
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 )
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.
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 )
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
-
linkakro
Niveau 4: MC (Membre Confirmé)- Posts: 14
- Joined: 20 Jul 2012, 18:02
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: école IMERIR après un DUT-GEII et une année de cpge PTSI
Re: SPASM GUI
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
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
-
contra-sh
Niveau 8: ER (Espèce Rare: nerd)- Posts: 85
- Joined: 24 Aug 2009, 00:00
- Location: Nice
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ecole d'ingénieur informatique
Re: SPASM GUI
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
(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.
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
(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.
-
linkakro
Niveau 4: MC (Membre Confirmé)- Posts: 14
- Joined: 20 Jul 2012, 18:02
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: école IMERIR après un DUT-GEII et une année de cpge PTSI
Re: SPASM GUI
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
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.
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
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.
-
linkakro
Niveau 4: MC (Membre Confirmé)- Posts: 14
- Joined: 20 Jul 2012, 18:02
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: école IMERIR après un DUT-GEII et une année de cpge PTSI
Re: SPASM GUI
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.
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.
-
contra-sh
Niveau 8: ER (Espèce Rare: nerd)- Posts: 85
- Joined: 24 Aug 2009, 00:00
- Location: Nice
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ecole d'ingénieur informatique
Re: SPASM GUI
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.
Merci.
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.
Merci.
Last edited by linkakro on 20 Aug 2012, 11:05, edited 1 time in total.
-
linkakro
Niveau 4: MC (Membre Confirmé)- Posts: 14
- Joined: 20 Jul 2012, 18:02
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: école IMERIR après un DUT-GEII et une année de cpge PTSI
Re: SPASM GUI
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
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
-
contra-sh
Niveau 8: ER (Espèce Rare: nerd)- Posts: 85
- Joined: 24 Aug 2009, 00:00
- Location: Nice
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ecole d'ingénieur informatique
26 posts
• Page 2 of 3 • 1, 2, 3
Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)
Who is online
Users browsing this forum: ClaudeBot [spider] and 19 guests