π
<-
Chat plein-écran
[^]

TI85, SPASM, Wabbitemu et VTI

Assembleur, Axe, ICE, BBC Basic...

TI85, SPASM, Wabbitemu et VTI

Unread postby GoLiO » 17 Jul 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: Select all
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: Select all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 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
User avatar
GoLiO
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 11
Joined: 17 Jul 2019, 18:41
Gender: Not specified
Calculator(s):
Class: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby Lionel Debroux » 17 Jul 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.5%
 
Posts: 6411
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby GoLiO » 17 Jul 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 ;)
User avatar
GoLiO
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 11
Joined: 17 Jul 2019, 18:41
Gender: Not specified
Calculator(s):
Class: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby GoLiO » 17 Jul 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 ;)
User avatar
GoLiO
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 11
Joined: 17 Jul 2019, 18:41
Gender: Not specified
Calculator(s):
Class: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby Wistaro » 17 Jul 2019, 20:33

GoLiO wrote:*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 . 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!
User avatar
WistaroModo.G
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 61.1%
 
Posts: 2872
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
Class: Etudiant ingénieur (dernière année)
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby Lionel Debroux » 17 Jul 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.5%
 
Posts: 6411
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby GoLiO » 17 Jul 2019, 20:50

Excact, je vois que je n'ai pas le Header ni la checksum, je pense que tu as pointé mon souci ;)
User avatar
GoLiO
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 11
Joined: 17 Jul 2019, 18:41
Gender: Not specified
Calculator(s):
Class: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby GoLiO » 17 Jul 2019, 21:25

Wistaro wrote:
GoLiO wrote:*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:]
User avatar
GoLiO
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 11
Joined: 17 Jul 2019, 18:41
Gender: Not specified
Calculator(s):
Class: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby GoLiO » 18 Jul 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
User avatar
GoLiO
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 11
Joined: 17 Jul 2019, 18:41
Gender: Not specified
Calculator(s):
Class: Vie active ;)

Re: TI85, SPASM, Wabbitemu et VTI

Unread postby Lionel Debroux » 18 Jul 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.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.5%
 
Posts: 6411
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Next

Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 6 guests

-
Search
-
Featured topics
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
345 utilisateurs:
>295 invités
>44 membres
>6 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)