[ExelMemoire]

Tout sur le micro français le plus ambitieux mais si malchanceux

Modérateur : Politburo

Répondre
jester
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 263
Inscription : 29 déc. 2008 18:30

[ExelMemoire]

Message par jester » 13 janv. 2009 12:17

J'étudiais la comande CALL DO qui semble assez sympa pour ajouter plein de routines assembleurs... et appelable en basique.

Je me demandais juste comment se faisait le passage des paramètres et sous quelle forme ?

ex: CALL DO("SPRITE", 2,0,160,90)
ou CALL DO("SPRITE", 0,1, A$)

les valeurs des paramètres sont empilés ? et dans quel ordre ?
Ou bien est-ce l'adresse de ces valeurs qui est empilé ?
Pour A$ je suppose que c'est l'adresse, evidemment !

Peut-on passer une valeur décimale ou un nombre>16bits
ex CALL DO("TRUC",123456789, 2.5)

Parce que rien est expliqué nul part... le chapitre sur les sprites est sympa mais le source assembleur de SPRITE n'est pas donné, ce qui réduit l'utilité de la chose pour développer des routines assembleurs.

Avatar de l’utilisateur
mandrake
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2259
Inscription : 27 avr. 2006 22:41
Localisation : Chateauneuf les Martigues en face d'Ajaccio
Contact :

Message par mandrake » 13 janv. 2009 13:05

une commande disponible sur TI-99/4A aussi :idea:
Rien n'est jamais perdu, tant qu'il reste quelque chose à trouver. (pierre DAC)
Ressources pour TI-99/4A et 4 tout court

jester
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 263
Inscription : 29 déc. 2008 18:30

Message par jester » 13 janv. 2009 16:16

Bon j'ai bidouillé un peu avec ExelMax + CALL DO basique (simple sans paramètre).

Comparaison d'une boucle d'affichage d'une chaine de 200 caractères 1000 fois à la même position avec une routine qui affiche 200 caractères appelée 1000 fois.
Le résultat n'est pas extraordinaire, le CALL DO en basic va juste 2,5 fois plus vite (en gros).

Donc le basique est vraiment inutilisable... même pour piloter des routines assembleurs. Peut être si toutes les animations se font sous interruption... avec une application basique pour piloter tout ça, mais je ne sais pas si c'est faisable (basique+ routine assembleur sous interruption).
Il faut sans doute mieux développer en 100% assembleur... mais je n'ai pas trouvé comment exécuter un programme assembleur sous CROS ou DOS ou ce que vous voulez.

Pour la haute résolution, vu la place occupée par une image 320x250 en 8 couleurs... il faut vraiment les 48ko de l'exelmemoire+exeldisk pour faire quelque chose... et pas question de recopier le fond dans la mémoire video entre chaque animation => 2x30ko + ça me parait bien lent. Putain fallait ruser à l'époque.

Rien qu'avec l'émulateur sur un PC avec tout le confort moderne c'est laborieux et un rien casse-bonbon, on comprend que la machine n'est pas suscitée l'enthousiasme des foules à l'époque.

De plus le CALL LOAD doit reloger en mémoire à l'adresse prévue le fichier... donc il occupe 2x sa taille en mémoire (une fois pour le fichier .COM + 1 fois pour la routine relogée)... c'est cela ou pas ??? Dans la positive c'est la cata car Exelmax ne sauve les .COM que sous exelmémoire... une sauvegarde sur disquette permettrait de monter en mémoire les routines utiles... mais y'a pas !

Avatar de l’utilisateur
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3989
Inscription : 09 août 2008 17:46
Localisation : 03

Message par Ythunder » 13 janv. 2009 16:52

c'est pas "basique", c'est "BASIC" :cry:
Beginners All Purpose Symbolic Instruction Code. C'est une abréviation !!, donc pas de "QUE" à la place du "C" !
Je suis CHARLIE
Tell me boy, do you have a room, in your heart, for the Computer boom...

jester
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 263
Inscription : 29 déc. 2008 18:30

Message par jester » 13 janv. 2009 17:18

Ythunder a écrit :c'est pas "basique", c'est "BASIC" :cry:
Beginners All Purpose Symbolic Instruction Code. C'est une abréviation !!, donc pas de "QUE" à la place du "C" !
C'était un peu ironique... j'aurais du mettre des ""... mais je me suis vraiment trompé pour la première occurrence du mot. :oops:

Avatar de l’utilisateur
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3989
Inscription : 09 août 2008 17:46
Localisation : 03

Message par Ythunder » 13 janv. 2009 17:26

jester a écrit :
Ythunder a écrit :c'est pas "basique", c'est "BASIC" :cry:
Beginners All Purpose Symbolic Instruction Code. C'est une abréviation !!, donc pas de "QUE" à la place du "C" !
C'était un peu ironique... j'aurais du mettre des ""... mais je me suis vraiment trompé pour la première occurrence du mot. :oops:
le pb c'est que moi, je deteste les termes micro francisé. cédérom au lieu de CDROm, alors que c'est une abréviation. pécé au lieu de PC (idem).
Je suis CHARLIE
Tell me boy, do you have a room, in your heart, for the Computer boom...

jester
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 263
Inscription : 29 déc. 2008 18:30

Message par jester » 13 janv. 2009 17:40

Ythunder a écrit : le pb c'est que moi, je deteste les termes micro francisé. cédérom au lieu de CDROm, alors que c'est une abréviation. pécé au lieu de PC (idem).
Mais tout ça ne fait pas trop avancer mon CALL DO.
Il y a bien une initiation assembleur dans "exelement vôtre", mais ils passent les paramètres avec des poke dans une zone réservée... à la hache qu'ils y vont, du coup mon CALL DO m'interroge toujours.
La routine SPRITE était plus propre même si je doute de l'utilisabilité... faudrait un désassembleur !

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7528
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Message par jvernet » 13 janv. 2009 18:31

Avec ExelMax, il y a possibilité de compiler dans l'exelmémoire, en nommant le fichier en 3 lettres (je ne me souviens plus exactement comment, mais à travers l'emulo, je retrouverais, au besoin). Une histoire de relogeabilité ??

Par exemple, on compile un prog sauvé sous le nom VDP.

Ensuite, dans le CROS, on tape VDP et hop, ça execute le programme. Interet: le programme est installé dans la CRAM en permanence, à l'adresse que l'on veut, et il tst present en permanence dans la RAM aux alentour des adresses C800.
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

jester
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 263
Inscription : 29 déc. 2008 18:30

Message par jester » 13 janv. 2009 19:48

jvernet a écrit :Avec ExelMax, il y a possibilité de compiler dans l'exelmémoire, en nommant le fichier en 3 lettres (je ne me souviens plus exactement comment, mais à travers l'emulo, je retrouverais, au besoin). Une histoire de relogeabilité ??

Par exemple, on compile un prog sauvé sous le nom VDP.

Ensuite, dans le CROS, on tape VDP et hop, ça execute le programme. Interet: le programme est installé dans la CRAM en permanence, à l'adresse que l'on veut, et il tst present en permanence dans la RAM aux alentour des adresses C800.
Oui pas de soucis, j'ai bien un TRUC.COM dans l'exelmémoire... ça semble marcher sauf que je vois rien car j'ai pas mis de tempo à la fin de l'affichage... pas d'erreur, je reviens simplement au menu.

Mon problème est "Comment sont passés les paramètres dans un CALL DO ?"

jester
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 263
Inscription : 29 déc. 2008 18:30

Message par jester » 14 janv. 2009 00:15

Bon, ce n'est pas tout à fait comme le dit jvernet... ça marche comme un loader en mémoire d'un fichier (exécutable) sur support persistant.
Donc on place des .COM sur l'exelmemoire et on execute à partir de l'interface de l'exelmemoire (en tapant le nom qui peut faire plus de 3 lettres a priori) et le loader charge et reloge en mémoire (à l'adresse précisée) le programme, puis l'exécute.
Du coup on peut indiquer une adresse dans la RAM de l'exeldisk pour la relocation... et ça marche... preuve que le loader charge le fichier de la CRAM vers la RAM de l'exeldisk pour execution.
Donc on dirait bien que la routine est "stockée" 2 fois: 1 fois comme fichier (.com), et 1 fois comme routine exécutable en RAM.
On comprend donc pourquoi les jeux assembleurs de l'époque plaçait directement le code en mémoire à l'aide de POKE via le basique.
Tout ça est assez encourageant et le développement assembleur pas si difficile puisqu'on peut tester ses routines en commande .COM via le menu de l'exelmémoire... et faire des allers/retours sur exelmax pour les corrections (au reboot prêt mais sur l'émulateur ça roule).

J'ai pas d'Exel100, mais l'émulateur semble avoir un comportement rassurant...
J'ai pas compris pour quoi VegaX plante... l'erreur 1 ligne 1220 correspond à un goto 2000 qui semble valide. Il doit y avoir un soucis lié au code machine qui rend fou le basic... bug de l'émulateur ??? il faudrait désassembler mais j'ai pas ça sous la main.
Idem pour le casse brique en assembleur qui possède un comportement très curieux...
+ Wizord qui plante dés le second tableau (scrolling horizontal)...
Certains programmes utilisaient peut être le TMS5220 comme timestamp ???

jester
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 263
Inscription : 29 déc. 2008 18:30

Message par jester » 09 mai 2009 19:38

Quelqu'un aurait-il une doc sur la version 64Ko de l'exelmémoire.

J'avoue ne pas bien comprendre l'adressage mémoire de cette extension. A priori ça devrait être le même par soucis de compatibilité avec la version 16Ko, mais comment accéder aux 48Ko supplémentaire... ça reste flou ?

Cette extension était compatible EXL100 ou uniquement pour l'EXELTEL (ce qui pourrait donner une réponse partielle à la première question).

Y a t'il une image de la ROM qui traine ?

Merci.

humeur
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 630
Inscription : 30 juil. 2004 21:47
Localisation : Vendée

Message par humeur » 09 mai 2009 20:14

jester a écrit :Quelqu'un aurait-il une doc sur la version 64Ko de l'exelmémoire.

J'avoue ne pas bien comprendre l'adressage mémoire de cette extension. A priori ça devrait être le même par soucis de compatibilité avec la version 16Ko, mais comment accéder aux 48Ko supplémentaire... ça reste flou ?

Cette extension était compatible EXL100 ou uniquement pour l'EXELTEL (ce qui pourrait donner une réponse partielle à la première question).

Y a t'il une image de la ROM qui traine ?

Merci.
compatible aux deux systemes

cela reviens a la pagination de deux bloc de 32 k

quand tu utilise la 64 k on te demande le choix de ta memoire soit une 32k en A et l'autre en B il n'est pas possible d'avoir les 64 k d'une traite.

je n'ai pas de fait de dump de cette rom.

jl
jean louis ( humeur)
Chercheur en Texas instruments Ti 99/4a, jeux educatifs tm990 etc....
et Exelvision

Avatar de l’utilisateur
Fabrice Montupet
Administrateur
Administrateur
Messages : 10418
Inscription : 17 mai 2002 11:39
Localisation : Nevers - France

Message par Fabrice Montupet » 09 mai 2009 21:19

L'utilisation de cette extension 64Ko m'intéresse bien également. Je vais m'arranger pour m'en procurer une au plus vite.

humeur
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 630
Inscription : 30 juil. 2004 21:47
Localisation : Vendée

Message par humeur » 09 mai 2009 21:44

una page jamais fini sur le sujet

http://pagesperso-orange.fr/cjl/Exelvis ... emoire.htm

par contre il n' y a rien à dire c'est du classique comme electronique

jl
jean louis ( humeur)
Chercheur en Texas instruments Ti 99/4a, jeux educatifs tm990 etc....
et Exelvision

Avatar de l’utilisateur
Fabrice Montupet
Administrateur
Administrateur
Messages : 10418
Inscription : 17 mai 2002 11:39
Localisation : Nevers - France

Message par Fabrice Montupet » 09 mai 2009 22:36

Chouette l'Exelmémoire avec l'horloge temps réel! Je n'en ai jamais eu l'occasion d'en approcher une! Belle pièce Jean-Louis 8) :D

Répondre

Revenir vers « Exelvision »