1
Salut tout le monde !

J'ai déjà commencer à programmer un OS pour les TI83+SE, TI84+ et TI84+SE. La structure est là, du bon contenu aussi, mais j'ai un peu abandonné. On a quelques OS disponibles sur le web mais aucun n'est fonctionnel et nécessiter de reprogrammer les jeux à leur façon.

J'ai un très bon niveau en assembleur Z80 et je voudrais savoir si d'autres personnes sont intéressées. Dans un premier temps on ferai un cahier des charges exhaustif pour mettre au point une architecture correcte et évolutive. Une étude aussi d'une GUI adaptée à la calculatrice.

Il faudrait dans un premier temps des personnes qui ont un niveau élevé en assembleur.

Les objectifs :
- supporter les programmes en assembleur (ION, MIRAGEOS, etc...)
- supporter les languages basic
- gestion évoluée de la RAM
- système multitache
- conception en 3 couches MATÉRIEL/NOYAU/APPS
- chaque couche a des modules indépendants pour personnaliser le système en conservant une compatibilité
- conception claire et évolutive

Donc y a du boulot quoi !

J'espère arriver à une première version stable pour l'été prochain qui assurera le minimum.

Le plus dur c'est la motivation et la structuration du projet.
Ceux qui sont intéressé m'envoient un mail pour plus de détails.

avlin#antispam#hotmail.fr


2
(J'ai édité ton post pour éviter que tu te fasses spammer)

A mon avis un nouvel OS ça apporterais rien de nouveau, ce qui serait bien ce serais plutôt de penser à porter des langages comme le MLC sur z80, ou dans le même genre que le Fast-RPL (rah j'arrive plus à mettre la main sur la doc du MLC...).

edit : Ah voilà : http://web.archive.org/web/20050404035903/dysfunction.earthforge.com/?p=mlc.php & http://web.archive.org/web/20060505090406/dysfunction.earthforge.com/mlc/documentation/readme.txt smile
3
On c'est mal compris.

Ce que je veux faire un système d'exploitation pour remplacer le TI OS, et non un shell ! Ce n'est pas pareil.
Il ne ressemblera pas à linux ou windows, mais entièrement adapté à la calculatrice. Les rares OS disponibles actuellement sont incomplet.
4
Je sais ce qu'est un OS, mais je ne vois pas l'intérêt d'en faire un nouveau. En plus si vraiment tu te lances dans ce genre de projet ça va te demander vraiment beaucoup de temps (autant en code qu'en débugg), et y'a plus beaucoup de programmeurs asm z80 dans le coin...

Bref c'pour ça que je disais qu'il est, à mon avis, largement préférable de coder des trucs "utiles" (ça avait été plus ou moins abordé ici).
5
Avlin -> Salut! Bonne chance pour ton projet, je ne peux pas t'aider, n'en ayant ni le temps ni le niveau.

Deeph -> oO Si tu me permets l'expression, osef que ce soit plus ou moins utile. Peu de jeux peuvent se targuer d'etre un minimum utiles. Faire un programme c'est d'abord:
-parce que ca nous plait
-pour le defi technique/apprendre a [mieux] programmer
-enfin pour l'utilisateur

Donc selon moi les deux premiers arguments etant prioritaires, s'il aime ce qu'il fait, pourquoi arguer que c'est inutile? (m'enfin ce n'est que mon humble avis personnel).



[je viens de lire le sujet que auquel tu renvoies deeph, j'avais un avis totalement contraire l'annee derniere xD, comme quoi en fait je suis une girouette :P]
6
Bon sérieusement qui a une calculette pour la vie de tout les jours ? moi je dormais même avec mais une année pas plus. Je passais tout mon temps à programmer et c'est comme ca que j'ai appris la programmation.

Donc :
-parce que ça nous plait
-pour le défi technique/apprendre a [mieux] programmer

Un OS a des subtilités que l'on ne rencontre pas dans un jeux, l'intérêt est là.

Ceux qui ont programmer Linux pour remplacer Unix puis Windows ont fais ça par plaisir au début, et c'est devenu utile par la suite.

Disons que seul je peux m'en sortir dans ce projet, je voulais voir si il y en a sur ce forum qui ont envie de programmer autre chose que des jeux. Un jeux c'est utile ?
7
Nan mais je dit pas que c'est inutile en lui même, je dit juste que je trouve dommage de se lancer dans un projet d'une telle ampleur qui n'a pas beaucoup de chances de voir le jour (faut être réaliste, sauf si tu as vraiment le temps pour ça et pas la flemme, et encore je doute). C'est pour ça qu'a mon sens ce serais mieux d'utiliser son temps et ses connaissance à un projet un peu plus petit, qui a plus de chances de voir le jour et qui sera tout aussi (ou presque) utile.

Mais bon, c'est vrai que si tu te sens capable de te lancer dans ce genre de projet je t'encouragerais c'est clair smile (je pourrais peut être aider avec mes maigres connaissances cheeky).
8
En fait je reprends le projet BAOS tongue qui est fonctionnel mais est vide en terme de fonctionnalité.

Un bon jeu est un bon programme et un bon programme à besoin d'un bon OS.
9
C'est toi l'auteur ou t'as l'autorisation ?

Sinon juste comme ça, je trouve le TI-OS assez bien et simple pour l'utilisation qu'on a normalement d'une calculatrice, là ton OS ça transformera déjà plus la plateforme en (petit) PC.

(Ah ouais et sinon je trouve la police d'écriture de BAOS assez moche si je me souviens bien, pourquoi ne pas garder l'ancienne ?)
Hum cool comme projet.

Je suis pas assez bon en asm et j'aurais trop la flemme pour t'aider à coder l'OS proprement dit.... cependant, si tu compte y intégrer un système de calcul, je t'aiderai volontiers. Je suis en train de m'amuser autour du calcul formel sur z80 en ce moment.

T'en est où exactement dans la conception ? T'as déjà à peu près globalement tous les principaux patterns en tête ?


deeph> ça peut être cool comme projet, regarde sur 68k, on a un bel OS libre maintenant.
J'ai déjà réfléchi sur la conception, il reste à programmer. je ne sais pas comment on calcul un cosinus en assembleur (encore que si on me donnait un algo à coder ca pourrait aller), donc il y a aura un module MATHS qui sera vide et à completer. je veux concevoir une architecture bien pensé et modulaire comme ca chaqu'un peut rajouter son module qu'on choisi d'intégrer ou pas en fonction de ses besoins. Je posterai un document en PDF fin octobre et des templates en assembleur. Si tu code un apps ou un programme pout TI OS il restera compatible avec mon OS. je dois juste terminer mon stage avant de me lancer vraiment dedans.

quand je reprends BAOS, ce sont les outils pour obtenir le fichiers .8xu final. Le code de BAOS ne m'interesse pas. Ensuite pour la police ben chacun poura choisir celle qui lui convient.
bon je viens de jeter un coup d'oeil sur BAOS. si j'ai bien compris ton ./11 en fait tu ne vas presque rien reprendre du code lui-même ?


Enfin en tout cas tiens-nous au courant ici smile
Utiliser les commandes unix n'est pas trop le top, et baos ne supporte pas de compatibilté binaires avec les jeux éxistants.

Il vaut mieux partir d'une bonne base et prévoir large dès le départ.
Utiliser les comandes unix je trouve ça charmant moi love

Bon pour la compatibilité asm j'ai regardé, en effet y'a 2-3 options qui font que c'est assez différent (séparer code/data, macro spécifique pr qques trucs ? ). bon c'est clair que si tu veux que ça soit utilisé faut que ça supporte les progs asm usuels
les os pour ti83+ n'ont aps marché parce que on ne pouvait rien en faire

Qui va installer une version 0.1 en utilisant des codes hexa alors que ca plante de temps en temps ?

On peut très bien rajouter un shell qui supporte des commandes UNIX (pour TIOS par exemple)

pour la compatibilté ASM je prévoit d'alouer un segment entier de 8ko qui aurai les mêmes adresse que le tios (screenbuffer à tel adresse etc)
Les BCALL sont executé par l'OS qui les émules d'une manière ou d'une autre.

Bon je commenceà remplir le cahier des charges.
Tu va tout de même pas reprendre toutes les roms_calls du TI-os ? Juste les principales ? Sinon ça va imposer trop de chose (format des données, de la vat, etc. )
les BCALL émulés seront identiques aux yeux du programme. par exemple un BCALL(ClrScreen) effacera l'écran. Mais ce sera en utilisant l'OS et non une réécriture complète de la routine.
Oui mais y'a plein de rom calls qui sont intrinsèquement liés au formats des progs/fcts/expr/pics/vat/etc, enfin à comment touça marche. (Par exemple, els rom calls qui vont appels aux OPs, à la pile numérique, à la VAT, ... ), donc si tu veux que ça ait un comportement identique d'un point de vue programme, tu risque d'être obligé de prendre un focntionement très semblable au Ti-OS sur beaucoup de choses...


Quand tu dis 'utiliser l'OS', je comprends pas bien ce que tu veux dire.. ce sera dans ton OS, mais bo audra écrire touça quand même ...
Si t'organises mal ta mémoire les programmes seront pas compatibles (idem si y'a pas toutes les rom calls), nan ?
ben si tu veux que tout, tout soit compatible ouais, mais le problème c'est que du coup tu va être obligé de coller d'assez près le Ti-OS sur pas mal de points

Mais tu peux faire en sorte que la très grande majorité soit compatible tout en changeant pas mal de choses (les programmes qui touchent aux OPs et aux trucs mathématiques par exemple y'en a pas énorme, donc tu peux te permettre de tout changer sans perdre beaucoup de compatibilité. Garder une VAT proche pour pouvoir émuler les roms calls tout en rajoutant des trucs (dossiers, ..) )

sinon:

Avlin (./15) :
pour la compatibilté ASM je prévoit d'alouer un segment entier de 8ko qui aurai les mêmes adresse que le tios (screenbuffer à tel adresse etc)


Tu va faire comment pour le multi-tâche ? ça risque d'être compliqué si tu fais comme ça (tu va être obligé de tout c/c ailleurs à chaque switch de prgm. :/ )
Bon alors j'explique : (et c'est la raison pour laquelle les simple ti83+ ne seront pas supportées)

128k de RAM soit 8 pages de 16k disponibles. on alloue seulement 6 pages pour le système d'exploitation principal. Quand on fais tourner un programme en mode compatibilité TIOS les 2 autres pages sont utilisés
J'utilise le système de page comme une MMU dans les pc (memory management unit)

Donc on a un partitionnement de la RAM en deux parties.
96k pour le système principal
32k pour la compatibilité TIOS

je peux aussi arriver à :
112k pour le système principal
16k pour la compatibilité TIOS

je vais étudier ça plus en profondeur.

La limitation est que l'on ne peut pas faire tourner 2 programmes en mode compatibilité en même temps.

Les ROM call peuvent être déplacé n'importe ou dans la mémoire flash car on utilise une table de recherche d'adresse.
Hum ok, et donc tu auras un mode "mon os natif" et un mode compatibilité.


bon par contre ne pas supporter les 83+ legacy (t'as que les SE et 84+ là ?) c'est quand même dommage ...
LOL ben une version light de l'OS prévue pour les 83+. Je dois étudier cela aussi. De plus les ti83+ n'ont pas de timer comme sur les autres donc pas d'horloge possible. Au final on se retrouves avec des différences conséquentes entre ti83+ et le reste.

D'où l'idée d'un système modulaire pour l'adapter facilement d'une plateforme à une autre.
Le fin du fin est d'intégrer le ou les pages rom du TIOS contenant les rom calls directement dans l'OS ca pourait être marrant. smile
Heu ouais mais alors d'une part pour que ça soit compatible t'en chierais pour certaines et d'autre part ça te prendrait pas presque toute le place ? cheeky [bon après y'a une différence entre les roms calss vraiment utilisés et les obscures ... ]
je vais faire une étude plus poussé quand j'aurai le temps. laissez moi 2 semaines
Salut, je te colle quelques ressources que tu connais sans doute, mais on sait jamais (comme tu n'as pas mentionné la 2eme):

http://wikiti.denglend.net
http://vera.timendus.com/

bon courage!
Moi je trouve que c'est franchement un bon projet!
Le multitâche, ça assure bien, et si tu as la compatibilité avec les programmes habituels, banco, je l'utilise ton OS...
Par contre, il faudrait penser à un langage de programmation plus rapide que le basic - peut être compilable - et aussi plus graphique, parce que le basic est assez pauvre de ce côté là. (des tokens pour une routine automatique niveaux de gris??)

Tu penses proposer quoi comme structures de données?


Par contre, je me demande encore si le multitâche serait pas possible avec une apps sur le TIOS, en utilisant les interruptions...
le multitache avec TIOS pour des APPS ? techniquement réalisable ! Mais la contrainte est que les APPS doivent utiliser que des BCALL et n'accèdent pas directement au matériel (clavier, écran etc) donc ça reste très compliqué pour avoir un système stable à moins d'avoir des APPS qui soient programmés en conséquence.

Le principe de tokens sera surement abandonné car trop lourd à reprogrammer. Dans un premier temps il y aura un OS stable mais dénudé de fonctionnalité mais avec la possibilité de rajouter des modules pour gérer différents langages de programmation.

Je compte utiliser de simple fichier texte pour la programmation en basic avec une compilation en bytecode (comme le java). En gros au lieu d'interpréter un mot de plusieurs caractère on traite juste un octet et ça c'est déjà beaucoup plus rapide.

Vos idées sont intéressantes et motivantes les gars ! Merci !

26 => eh ben dis donc il y a eu du nouveau ! la dernière fois que j'avais vu Vera OS c'était y a longtemps et ce n'était pas autant abouti. J'ai un peu de retard...
Je veux aussi insister sur le fait qu'avant de me concentrer sur l'OS, je vais d'abord faire un dossier avec une étude complète et mettre au point un environnement de travail :

- style d'indentation bien précis
- utilisation de l'assembleur de Zilog.

Au fait qui utilise Vera ?