1

[nosmile]
Yo,

J'ai enfin (presque) terminé le portage du compilateur "Small" et de la machine virtuelle qui va avec... j'estime que cela devrait etre le successeur du TI-Basic en matière de programmation de jeux, d'ailleurs dans l'état actuel des choses on ne peut faire que des jeux avec, puisque le seul lien avec la calculatrice est Genlib (j'ai eu la flemme d'écrire d'autres lib pour l'interpréteur). Donc, vous l'aurez compris, il s'agit d'une machine à programmer Genlib on-calc smile
Quelques screenshots pour montrer que le tout est deja fonctionnel et marche plutot bien:

Le compilateur:

sc.gif

La machine virtuelle, avec une demo Genlib (c'est exactement la meme chose que Genscr16.c mais écrit en Small)... comme vous pouvez le voir c'est quand meme plutot rapide, merci Genlib:
srun.gif

Et enfin, voici le code... le Small est un language de script qui ressemble au C mais sans types et sans pointeurs. Il se situe donc entre le C et le Basic:
/* GenLib test */
#include <genlib>

move_plane(plane:p, dir[2])
{
  new x,y
  new size = sgl_get_plane_size(p)*16
  sgl_get_plane_coord(p,x,y)
  x += dir[0]
  y += dir[1]
  sgl_set_plane_coord(p,x,y)
  if ((x > size-240) || (x < 3)) dir[0] = -dir[0]
  if ((y > size-128) || (y < 3)) dir[1] = -dir[1]
}

main()
{
  new handle:hd
  new dscreen:ds1
  new dscreen:ds2
  new plane:p1
  new plane:p2
  new dir1[2] = {3,2}
  new dir2[2] = {1,1}
  new map,map2,tile

  // Init genlib
  gl_init()

  // Alloc two DScreens
  gl_init_dscreen(ds1, hd)
  if(hd == h_null) goto end
  gl_push_hd(hd)

  gl_init_dscreen(ds2, hd)
  if(hd == h_null) goto end
  gl_push_hd(hd)

  // Load resources
  map = sgl_resource("gendata")
  map2 = map+1024
  tile = map+1280

  // Init DScreens
  gl_set_dscreen_int(ds1)
  gl_set_dscreen_function(ds2)
  gl_cls()

  gl_change_update()
  p1 = gl_init_plane(map,tile,32)
  if (p1 == plane:0) goto end
  gl_push_hd(sgl_plane_handle(p1))
  p2 = gl_init_plane(map2,tile,16)
  if (p2 == plane:0) goto end
  gl_push_hd(sgl_plane_handle(p2))

  sgl_set_plane_coord(p1,16,17)
  sgl_set_plane_coord(p2,32,33)

  gl_wait_no_key()

  while (!gl_key_pressed())
  {
    move_plane(p1, dir1)
    move_plane(p2, dir2)

    gl_update_vscreen_16(p1)
    gl_update_vscreen_16(p2)

    sgl_wait_timer_zero()

    gl_put_plane(p2)
    gl_put_fgrd_plane(p1)

    gl_draw_clipped_circle(240/2,128/2,25,3)
    gl_draw_clipped_circle(240/2,128/2,10,2)

    sgl_wait_dbuffer(ds1,ds2)
  }

end:
  gl_free_hd()
  gl_quit()
}

.
Les fonctions "gl_" sont celles de genlib, et les "sgl_" sont spécifiques à la lib Small, que j'ai rajouté pour combler les différences par rapport au C.
Et j'ai l'intention d'en implementer d'autres qui simplifieront l'utilisation de Genlib pour les débutants... en particulier une gestion des Handle totalement transparente.

J'entends deja les puristes qui vont dire "ouais mais c'est un interpréteur!! c'est nul, c'est lent". Deja, c'est beaucoup plus rapide que le TI-Basic, et de toute façon c'est pas pour faire des jeux d'actions rapides (pour ça il y a C/Asm), mais pour tous les autres types de jeu ça convient. Et puis les programmes en P-code Small devraient prendre beaucoup moins de place que des programmes compilés. En plus ça me permet de faire un debuggeur "source-level" on-calc, ce qui aidera beaucoup les programmeurs. Et enfin, je suis en train de faire un compilateur JIT (Just-In-Time), qui converti le P-code Small en assembleur 68k à l'execution. (execution 2 à 3 fois plus rapide selon mes calculs)

Bon, maintenant les gros points négatifs:
Ca bouffe beaucoup de place: 64Ko pour le compilateur et 17Ko pour l'interpréteur (sans compter la place que prend Genlib+Genclib+UniOS), ce qui rend ridicule une version pour TI-92. Mais bon, ça à la limite avec toute la Flash qu'on a c'est pas un gros probleme...
L'autre probleme un peu plus genant c'est le temps de compilation: 45 secondes pour compiler cet exemple simplissime... je n'ose meme pas imaginer ce que ce serait pour un jeu complet, et je n'ai aucun moyen d'améliorer ça.

Donc voila... j'attends vos impressions. Est-ce bien la peine de continuer à développer ça, est-ce que les programmeurs interessés par ce language seront nombreux malgré les inconvénients (mon but étant que tous ceux qui utilisent le TI-Basic à l'école utilisent ce language, pour profiter de la puissance de Genlib)... ?

PS: je rappelle que Genlib est (c)PpHd... je ne lui ai pas demandé son avis pour l'utiliser mais j'espere qu'il sera d'accord tongue
[edit]Edité par Nitro le 15-07-2001 à 01:42:58[/edit]
So much code to write, so little time.

2

erf c'est super niveau programmation pour toi..
mais personne va l'utilise,)
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

3

ok, j'arrete alors sad
So much code to write, so little time.

4

Bô boulot smile
PpHd va etre content wink

5

Nitro->attend qd meme l'avis des autres avt d'arreter wink

6

:!: j'ai pas dit que c'etait de la merde au contraire je trouve ca super..
Mai si tu relativises je pense que ca va faire comme le compilateur pascal sur HP... personne va l'utilise..
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

7

Et puis le temps de compilation est très embettant je trouve... c fort dommage
c néanmoins du beau travail

8

Chui pas d'accord !
Si c'est performant, j'utiliserai, c'est surtout pratik en vacances !!
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

9

Oui, mais maintenant réfléchis, tu code ton programme, et a chaque petite modif tu passe 1mn a attendre la compilation, désolé mais moi ca me décourage vite.

10

Ouais ptet.
Je demande tt de meme a essayer avant de critiquer.
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

11

La place c'est pas trop grave:Même si c'est lent, je veux voir. C'est difficile de juger un langage tant qu'on ne s'en est pas servi un minimum et si j'avais eu un truc comme ca, j'aurais laissé tomber le Ti-Basic depuis longtemps.
Et puis rien que pour le defi technique Bravo!
avatar

12

ouais, félicitations. Et... continue : n'arrête pas !
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

13

oui, cela peut etre tres interressant !!!!

Programmer on-calc est un réel plaisir, pour moi en tout cas, et si y a un language assé ppuissant, plus que le basic ca peut-etre interressent....


Au fait, c'est si dur a faire un compilo C avec création d'executable en on Calc ?!

14

Non... grin Pas du tout, iceman89 grin

Bravo Nitro eek
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15

Ouais ca peut etre sympa, ca smile

16

je veux bien essayer ton truc dèes que possible nitro !!

thibaut>>a ouais, tu a a faire tourner ??!!
parce que ca ca m'interresse grave !

17

moi franchement ca m'interresse, j'en ai marre du basic mais l'asm ca me tente pas trop et je veut un truc que je puisse utiliser on-calc donc ton truc c parfait, bien joué !!
fait péter la bétâ !!!!

18

Il n'y a pas de types, ce que tu vois ce sont des tags, et c'est optionnel (c'est pour renforcer l'error checking du compilateur). Le language est beaucoup plus simple que le C, et le fait que ce soit interpreté est un avantage (mais ça je l'ai deja dit).
So much code to write, so little time.

19

>ah, donc c comme du basic sans calcul formel?
Oui, et avec des fonctions.

>tu les stockes comment tes variables
Dans la machine virtuelle grin
So much code to write, so little time.

20

>ce qui manque au Small c la gestion des listes/chaînes/tableaux à taille variable
Ouais mais je ne pense pas que l'auteur du language (Thiadmer Riemersma) ai le temps (ni l'envie) de changer ça alors il faudra faire avec smile
>ça peut être sympa pour faire des petits jeux on-calc
Voila c'est exactement ça, c'est pour faire des petits jeux vite fait tout merdiques comme on pourrait le faire en TI-Basic, sauf que là les jeux ils seront jouables (enfin j'espere).
cool
So much code to write, so little time.

21

>ben oui mais c aussi possible de faire des bons jeux fluides en Basic
avant 2042 ???
So much code to write, so little time.

22

euh question importante là:
est-ce que ce langage permettrait a darkhole d'etre programmé oncalc comme ça ???????

ça m'intéresse bcp !!
avatar
納 豆パワー!
I becamed a natto!!!1!one!

23

>est-ce que ce langage permettrait a darkhole d'etre programmé oncalc comme ça ???????
Oui c'est le but, mais pour l'instant c'est chaud sad
Il faut absolument que j'améliore le temps de compilation (j'ai ma petite idée), sinon ça sert à rien.
So much code to write, so little time.

24

pollux>arf non mes matrices contiennent des strings et des int......e j'ai besion de l'indirection !!!!######## et pisle tps de compilatioon je men tape totalement moi !!!
avatar
納 豆パワー!
I becamed a natto!!!1!one!

25

double post

[edit]Edité par liquid le 17-07-2001 à 13:59:03[/edit]
avatar
納 豆パワー!
I becamed a natto!!!1!one!

26

triple post

[edit]Edité par liquid le 17-07-2001 à 13:59:37[/edit]
avatar
納 豆パワー!
I becamed a natto!!!1!one!

27

quadruple post

[edit]Edité par liquid le 17-07-2001 à 14:01:26[/edit]
avatar
納 豆パワー!
I becamed a natto!!!1!one!

28

qunituple post


Heu, non ...

L'indirection, ca devrait pas exister, ca donne des progs pas beau, et ca doit etre assez lent ...
Il faut utiliser des tableau, bordel de merde !

29

Alors des nouvelles de mon concurrent ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

30

arf bien sur dark je suis d'acc avec toi mais ça voudrat dire que je devrait tt reprogrammersad
avatar
納 豆パワー!
I becamed a natto!!!1!one!