π
<-
Chat plein-écran
[^]

TI85, SPASM, Wabbitemu et VTI

Assembleur, Axe, C/C++, ICE...

TI85, SPASM, Wabbitemu et VTI

Message non lude GoLiO » 17 Juil 2019, 19:26

Salut à tous !
Voici mon histoire... j'approche doucement les 40ans, je bosse dans l'IT, il y a un bon moment que je ne code plus vraiment, et je suis propriétaire de quelques collectors TI, dont une TI-85 que j'avais au Lycée, et qui m'a toujours suivi.
J'ai en fait commencé à programmer dessus, et mon job d'aujourd'hui je lui doit probablement un (gros) peu. Mais à cette époque je ne codais qu'en TI-BASIC (mais j'ai quand même été jusqu'à faire un truc assez sympa de modélisation et d'animation 3D avec un modeleur, ZBuffer, Backface culling, rotations, remplissage de polygones...) ça ramait bien bien bien les courges, mais ça permettait d'enregistrer les images et les afficher en boucle... Bref.

Maintenant que je suis plus vieux et que je suis toujours resté sur ma faim en n'ayant jamais vraiment rien fait en ASM sur cette machine, il me trotte dans la tête de réaliser quelque chose qui bombarde. Je sais que personne n'en a rien à faire de cette vielle bécane, mais disons que ce sera mon 'tribute' pour tous ces bons moments d'il y a ...longtemps..., vous savez, un de ces trucs qu'on dit qu'on fera un jour et qu'on ne fait jamais.

Bref, je m'y suis mis - doucement - en commençant à rapatrier les softs avec l'objectif d'assembler un simple HelloWorld sous Windows 10 qui tourne sur USGUARD (shell réputé sur la 85 qui a besoin d'un Hack pour exécuter l'ASM...je pense que c'est un choix de raison pour la 85), et en souhaitant faire tourner ça sur Wabbitemu. Mon objectif initial était d'utiliser SPASM (via SPASM GUI).

- WABBITEMU fonctionne, la rom est OK, j'ai pu pousser le shell (USGUARD) dessus
- j'assemble mon helloworld (volé dans un tuto:) ) avec SPASM GUI, pas d'erreur
- j'obtiens un HELLO.85S
- si j'essaye de le pousser sur wabbitemu automatiquement après assemblage dans SPASM GUI, j'ai un popup d'erreur 'invalid file format'
- Si je lance un wabbitemu à la main, et que je tente de transferrer mon .85S en glisser lacher, j'ai un panneau 'sens interdit' qui m'empêche de le poser dessus
- je me dis donc que je pourrais essayer d'assembler à la main au lieu d'utiliser SPASM GUI
Code: Tout sélectionner
C:\TI\Asm\TI85>"..\..\Appz\Windows\SPASM GUI\bin\SPASM.exe" Hello85UG.asm HELLO.85s
Pass one...
Pass two...
Done
Assembly time: 0.013 seconds

Et même résultat.
- par acquis de conscience, j'ai installé un VTI (emulateur plus ancien), je parviens bien à pousser le shell sur l'émulateur, mais j'ai un souci similaire avec le 85S généré par SPASM... : impossible de le pousser sur la TI85, erreur de transmission.

Voici le HelloWorld en question
Code: Tout sélectionner
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Hello.asm
;; The programmer's greeting
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;; Include TI function definitions

;#include "TI-85.h"
#include "USGUARD.h"

;; Title of program

.org 0
.db  "Hello", 0

;; Main program
     
    ROM_CALL(CLEARLCD)      ; clear screen

    ld   HL, 3              ; set text cursor position
    ld   (CURSOR_ROW), HL
    ld   HL, 3
    ld   (CURSOR_COL), HL

    ld   HL, (PROGRAM_ADDR) ; get program's memory address
    ld   DE, Message        ; get difference between address of program, string
    add  HL, DE             ; add to get address of string
    ROM_CALL(D_ZT_STR)      ; print the string

GetLoop:                    ; wait for keypress
    call GET_KEY
    or   A
    jr   z, GetLoop         ; if no key, try again
    ret                     ; key pressed - end program

;; String data

Message:
    .db "Hello, world", 0

;; Mark the end of the file for TASM

.end               


Ah, et un dernier point, je suis en attente de recevoir un convertisseur USB/Serial afin de pouvoir transferrer des fichiers sur la vraie TI-85, je ne peux pas éliminer un problème d'émulateur pour l'instant... (eh oui, la TI-85 ne peut pas être connectée avec un cable USB silver, il faut le vieux, noir, avec port série) :)


Je vais probablement me résigner à retenter avec TASM, mais ça m'ennuie car je suis parvenu à assembler et déployer automatiquement un autre HelloWorld pour ma TI83plus avec SPASM GUI, et je dois avouer que c'est plus que pratique... Ainsi que le debugger intégré qui peut être très utile...

Voilà, vous savez tout, je me doute bien que la communauté TI85 doit plus être bien vivace, mais j'aime cette machine, et son écran un peu plus grand que les autres :)
:D
Merci de m'avoir lu, et merci pour toute aide / suggestion afin d'avancer -douuuuuucement- dans mon projet de vieux gamin
Avatar de l’utilisateur
GoLiO
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 11
Inscription: 17 Juil 2019, 18:41
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude Lionel Debroux » 17 Juil 2019, 19:59

Bonjour,

Merci pour ta présentation détaillée :)

Je ne suis pas un expert de la famille TI-Z80 (pour la 85, la référence reste Patrick Davidson ^^), mais je vois plusieurs choses dans ton message:
* ça ne résoudra pas un problème de format de variable, mais tu devrais essayer TilEm-NG (>= 2.0) plutôt que WabbitEmu, ou a fortiori VTI. TilEm est connu pour être plutôt stable et précis. Et si c'était vraiment un problème de transfert, grâce aux traces de libticables, TilEm devrait pouvoir fournir des éléments de debug.
* tu n'as pas besoin de repasser à tasm, spasm est utilisé dans le processus de production de programmes ASM 85 convenables;
* est-ce qu'après avoir assemblé avec spasm, tu wrappes le résultat dans une variable au format TI, avec son header commençant par **TI85** et quelques dizaines d'octets supplémentaires, plus un checksum de 2 octets à la fin du fichier, comme cela est fait à https://github.com/debrouxl/tilibs/blob ... akefile.am en utilisant https://www.ticalc.org/archives/files/f ... 39967.html (dont il faut que je mette un jour une version étendue dans libtifiles, mais c'est un autre sujet) ?
* est-ce que la valeur passée à la directive .org est la bonne ? Même si j'imagine que tu n'as pas inventé 0 de nulle part.

Ah, et un dernier point, je suis en attente de recevoir un convertisseur USB/Serial afin de pouvoir transferrer des fichiers sur la vraie TI-85, je ne peux pas éliminer un problème d'émulateur pour l'instant... (eh oui, la TI-85 ne peut pas être connectée avec un cable USB silver, il faut le vieux, noir, avec port série) :)

Aïe.
* d'une part, le plus probable est que tu aies gaspillé de l'argent en achetant ce convertisseur USB/RS232, parce que la grande majorité des modèles ne fournissent pas l'accès bas niveau nécessaire à la communication selon le protocole bizarre de TI utilisé par le BlackLink / "$4 cable";
* d'autre part, la 85 fonctionne bien avec le SilverLink, puisque c'est ce que j'utilise, les rares fois où j'essaie de communiquer avec ma 85 :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude GoLiO » 17 Juil 2019, 20:22

Hello :) Merci beaucoup, et bien voilà un peu de grain à moudre pour demain ;)

Ah et j'ai peut-être donné une fausse impression, mais je suis débutant de débutant en ASM, à part suivre quelques tutos par curiosité il y a bien des années, je n'ai jamais réellement pratiqué, et je vais faire -plein- d'erreurs de débutant (et c'est tellement bon) =)

Pour répondre brièvement à tes questions:

* ça ne résoudra pas un problème de format de variable, mais tu devrais essayer TilEm-NG (>= 2.0) plutôt que WabbitEmu, ou a fortiori VTI. TilEm est connu pour être plutôt stable et précis. Et si c'était vraiment un problème de transfert, grâce aux traces de libticables, TilEm devrait pouvoir fournir des éléments de debug.

> ok je vais creuser en ce sens, pour VTI ça n'a pas été concluant

* tu n'as pas besoin de repasser à tasm, spasm est utilisé dans le processus de production de programmes ASM 85 convenables;

:D *joie*

Aïe.
* d'une part, le plus probable est que tu aies gaspillé de l'argent en achetant ce convertisseur USB/RS232, parce que la grande majorité des modèles ne fournissent pas l'accès bas niveau nécessaire à la communication selon le protocole bizarre de TI utilisé par le BlackLink / "$4 cable";

:'( bon je survivrai ;) et s'il fonctionne par miracle je partagerai le modèle

* d'autre part, la 85 fonctionne bien avec le SilverLink, puisque c'est ce que j'utilise, les rares fois où j'essaie de communiquer avec ma 85 :)

Eh bien là tu m'intéresse car je ne suis arrivé à rien (mais je n'ai pas poussé les recherches vu que j'avais cru lire que ce n'était pas compatibles à plusieurs endroits). Du coup j'imagine que tu n'utilises pas TI Graph Link (qui ne connait pas le Silver link), et pas Ti-Connect qui ne connait pas la TI85 ? qu'utilises tu ?

Merci encore pour le coup de main !


* est-ce qu'après avoir assemblé avec spasm, tu wrappes le résultat dans une variable au format TI, comme cela est fait à https://github.com/debrouxl/tilibs/blob ... akefile.am ?

> non pas du tout, SPASM permet à priori de sortir directement des 85S, mais je vais voir si je peux réussir quelque chose en creusant dans cette direction ;)

* est-ce que la valeur passée à la directive .org est la bonne ?

> aucune idée, et du coup tu me donnes encore un truc à chercher ;)
Avatar de l’utilisateur
GoLiO
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 11
Inscription: 17 Juil 2019, 18:41
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude GoLiO » 17 Juil 2019, 20:26

*Ah - et je pense que mon post aurait peut-être plus sa place dans la section "programmation / langages alternatifs", mais je ne crois pas être en mesure de le bouger ;)
Avatar de l’utilisateur
GoLiO
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 11
Inscription: 17 Juil 2019, 18:41
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude Wistaro » 17 Juil 2019, 20:33

GoLiO a écrit:*Ah - et je pense que mon post aurait peut-être plus sa place dans la section "programmation / langages alternatifs", mais je ne crois pas être en mesure de le bouger ;)


Voilà qui est fait :)
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 87.5%
 
Messages: 3153
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude Lionel Debroux » 17 Juil 2019, 20:39

Eh bien là tu m'intéresse car je ne suis arrivé à rien (mais je n'ai pas poussé les recherches vu que j'avais cru lire que ce n'était pas compatibles à plusieurs endroits). Du coup j'imagine que tu n'utilises pas TI Graph Link (qui ne connait pas le Silver link), et pas Ti-Connect qui ne connait pas la TI85 ? qu'utilises tu ?

TILP II, que je n'ai pas créé mais que je maintiens. Le seul logiciel de transfert non officiel qui gère (presque... la récente CX II n'en fait pas encore partie) tous les modèles, sur Windows, MacOS X, Linux et en principe certains *BSD. Je développe sous Linux.
Evidemment, sur un Windows moderne, tu vas devoir utiliser (une seule fois par installation de Windows) l'habituel contournement manuel, décrit dans le README, des emmerdements utilisateur liés aux drivers nécessaires sous Windows pour les devices USB en classe vendor-specific comme le SilverLink et tous les modèles de TI. Emmerdements inexistants sur les autres OS.
Peut-être que tu vas aussi rencontrer des soucis de drivers pour ton adaptateur USB/RS232, qui s'ajouteront au fait qu'il n'est probablement pas capable de faire ce que tu veux...

non pas du tout, SPASM permet à priori de sortir directement des 85S, mais je vais voir si je peux réussir quelque chose en creusant dans cette direction ;)

A priori, invoqué comme `spasm fichier.asm fichier.85s`, spasm sort du binaire sans header et footer au format TI. En tout cas, c'est ce que je vois avec les ROM dumpers de libticalcs, j'ai vérifié le contenu des fichiers.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude GoLiO » 17 Juil 2019, 20:50

Excact, je vois que je n'ai pas le Header ni la checksum, je pense que tu as pointé mon souci ;)
Avatar de l’utilisateur
GoLiO
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 11
Inscription: 17 Juil 2019, 18:41
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude GoLiO » 17 Juil 2019, 21:25

Wistaro a écrit:
GoLiO a écrit:*Ah - et je pense que mon post aurait peut-être plus sa place dans la section "programmation / langages alternatifs", mais je ne crois pas être en mesure de le bouger ;)


Voilà qui est fait :)

Merci ! 0:]
Avatar de l’utilisateur
GoLiO
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 11
Inscription: 17 Juil 2019, 18:41
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude GoLiO » 18 Juil 2019, 17:41

Hello, très peu de temps pour étudier le sujet aujourd'hui, mais grâces aux bon conseils je suis parvenu à assembler et déployer mon Hello World sur wabbitemu.
Je n'avais pas d'environnement sous la main me permettant de compiler https://www.ticalc.org/archives/files/f ... 39967.html, et je me suis rabattu pour l'instant sur String85 pour usgard (avec dosbox...) afin de faire un test rapide. Je génère un BIN avec SPASM, puis un 85S avec string85 (outpout zshell 4.0).
Et la bingo. J'ai juste un caractère grec qui s'affiche devant mon 'hello world', faudrait que je vois pourquoi. Mais j'avance !

Merci pour tout
Avatar de l’utilisateur
GoLiO
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 26.7%
 
Messages: 11
Inscription: 17 Juil 2019, 18:41
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Message non lude Lionel Debroux » 18 Juil 2019, 17:51

A ton service :)

Avec Win10, tu peux utiliser WSL 1 pour tenter de compiler des choses qui ciblent *nix, tout en gardant ton environnement Windows hôte. WSL 2 virtualisera un "vrai" kernel Linux pour augmenter les performances de certains aspects qui ont toujours été très mauvais sur Windows (accès disque, notamment), mais avec une perte de facilité d'utilisation.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Suivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
954 utilisateurs:
>934 invités
>15 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)