1

Ben, voila... Euh, je vais pas redire la meme chose que dans la news, donc ben posté ici vos commentaire/idée/participation a ce projet....
THANK YOU FOR
USING FAST-RPL

2


Je viens de regarder la "doc" de ton programme.

C'est pas mal comme idée mais j'ai quelques petites remarques à prendre comme elles sont parce que ça pourrai devenir un projet gigantesque, surtout en asm...

faut voir quelle orientation tu veux donner à ton langage: mais tu pourra pas avoir la rapidité de l'asm et la facilité du basic. Si tu veux avoir à tout prix la rapidité, tu es dans une assez bonne voie, mais j'ai peur que le code soit un peu imbuvable sur un gros programme car vu les signes que tu utilise, ça risque d'etre un peu dur à comprendre au début du moins. Sinon, l'utilisation de la pile est pas une mauvaise idée, c pas compliqué si on connait le RPN...

Si tu veux par contre avoir un langage moins rapide, mais facile et efficace, un truc intéressant serait de mettre une structuration du code, ce qui manque dans le basic je trouve ( utiliser des accolades { } pour cloisoner les bouts de code et les boucles)

Un autre truc important qui fait la faiblesse du basic, c'est les variables avec un type (short, long et float) tu gagnera du temps avec ça, mais ça fera gonfler ton programme aussi;.......


Alex le revenant

3

je pensais faire un truc de ce genre mais par manque de temp...je n'ai pas encore commencé....
mais moi je voulais pas un truc sur ti mais un truc sur PC (un langage compilé koi et ki sera vite comprehensible par des programmeurs basic.....
sinon ton projet va etre dur a realiser.......surtout que ca va etre un peu lent etant donner que c sur ti.....sinon bon courage...
il ne suffit pas de savoir programmer pour etre un bon programmateur...

4

Pourquoi tu ne fait pas un langage compiler....ca sera plus rapide.......tu fai tous le travail de lors de la compilation et puis c'est bon....par contre essai d'utiliser les mots comprehensibles au lieu des caracteres...
il ne suffit pas de savoir programmer pour etre un bon programmateur...

5

Euh, 'editer' tu connais edyjep ? c'est pas le concours du plus gros posteur ou de celui qui aura le dernier post de chaque thread ici, on est pas sur ForumTI hein.

Ensuite, faut arreter de se mettre dans la tete TI == lent. C'est faux. Tout depend du talent du codeur (oui, je commence a savoir de quoi je parle smile ). Si TOI tu produit du code lent sur TI, ce n'es surement pas le cas de tout le monde, et encore moins une condition suffisante pour dire que TI == lent. Si tu trouve que c'est lent, programme pour les P4.

Ensuite, le RPL est par definition un langage interprete, je ne vois pas pourquoi il devrait creer un langage compile. Deja que je doute qu'un newb sache ce qu'est un compilateur, alors on-calc, faut arreter de rever roll

Pour l'histoire des caracteres, a mon avis l'explication est simplissime... '/' prend 1 octet, 'div' en prend 3. Ce qui fait la puissance d'un langage c'est aussi sa grammaire et son orthographe (par exemple les regex (REGular EXpression)... tu connais ? Ca utilise des signes cabalistiques, et pourtant c'est un des trucs les plus puissants qui existe. Et c'est interprete smile )

Ensuite au niveau du parser (comprendre: le noyau qui 'lit' le programme RPL) c'est sans doute plus simple de detecter '/' que '#div#'. Enfin c'est comme tout, question de point de vue.

6

Ben fo reconaitre que le Z80 est pas un foudre de guerre non plus, quoi qu'on fasse, un langage interpreté par un Z80 (basic ou RPL ou ...) restera lent par rapport à de l'asm.

Ensuite c'est évident que l'utilisation de carractères "cabalistiques", évidemment ça accélere pas mal, mais faut savoir que le basic en fait dejà autant, sauf que ils ont un éditeur qui remplace ces carractères par for( while( etc... alors sauf à refaire un éditeur pour inclure tous tes carractères spéciaux et les afficher de manière un peu plus user friendly, ou à se débrouiller pour coller au mieux à ceux du basic, tu risque d'avoir un truc assez imbuvable, surtout qu'onen revient toujours au même problème: l'écran est minuscule pour coder.

à mon avis, c'est clair que l'idéal serait de faire un langage compilé sur ordi pour plusieurs raisons:

*Beaucoup plus facile à coder le compilateur parceque ça se fait en C/C++
*Beaucoup plus rapide à coder les programmes (lisibilité de l'écran, coloration syntaxique,.......)
*Possibilité de faire un langage plus avancé (mais on est pas obligé)
*Execution des programmes plus rapide et directement depuis ion ou miragros ou je sais pas quel shell....
*...............;
*plop

le seul inconvéniant que je verrai à ça par rapport au RPL c'est l'édition on calc...

enfin voilà je veux décourager personne, mais c'est vrai que comme edyjep j'avais avec IronRaph eu l'intention de faire un genre de langage compilé ou on pourrait inclure de l'asm et tout, mais on a pas eu le temps du tout, et on avait vite écarté l'idée de l'interpréteur... le problème est qu'on aura jamais la rapidité de l'asm et que en utilisant les carractères machin, ben ça facilite pas l'apprentissage pour ne newbee

7

au faite alexis, pourrai-je integre ton tutorial sur les interruptions dans mes tutorials...???
il ne suffit pas de savoir programmer pour etre un bon programmateur...

8

(désolé pour le remontage, j'ai pas pu m'en empêcher cheeky)
jlg
: Pour l'histoire des caracteres, a mon avis l'explication est simplissime... '/' prend 1 octet, 'div' en prend 3. Ce qui fait la puissance d'un langage c'est aussi sa grammaire et son orthographe

On peut utiliser des représentations intermédiaires dans lesquels 'div' prend un seul octet, la place est rarement un pb... (cf les casios : "Goto" prend 1 octet)
(par exemple les regex (REGular EXpression)... tu connais ? Ca utilise des signes cabalistiques, et pourtant c'est un des trucs les plus puissants qui existe. Et c'est interprete smile )

Manque de pot, c'est compilé happy Enfin, pas compilé en code ASM généralement (parce que ça n'apporterait pas gd chose), mais compilé vers un automate pour que tout se fasse le plus rapidement possible ^^ Et la compilation se fait seulement au moment où tu l'exécutes, donc c pour ça que tu t'en rends pas compte...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

[HS]
Arf, j'étais pourtant sûr que c'était interprété... en fait je ne connais les regex que dans le php, qui lui est interprété il me semble huh ? ma déduction était donc php interprété -> regex interprétées... ok je me suis mal exprimé, dsl :/
[/HS]

au fait pas de problème pour le remontage, y'a pas tellement de posts sur notre forum, et ça le fait un peu vivre smile

10

Salut... ca fait un bout de temps ke je suis pas passé ici (dur dur la prépa...), bon, comme j'ai plus vraiment le temps de programmer je déclare mon projet open source.... sinon l'histoire des acolade { } pour les boucle C bien, et ca mangerai pas grand chose en fait...juste un truc, C ke si on veux qu'il cherche rapidement la fin de la boucle faut faire un cpir , et il ne cherche kun seul caractère... donc si ya des boucle indenté les une dans les autre, ca marchera pas bien... dans ce cas faudrai faire une recherche plus aprofondie avec un compteur ki fait +1 kan ya un { et -1 kan ya un }, ce qui rendrai la recherche beaucoup plus lente... le mieux serai encore de laisser le choix a l'utilisateur pour optimiser en fonction de ses besoin... si la boucle est longue faire un "if not(condition)" Goto findelaboucle
sans accolade ( les Goto son rapide car les adresses des label sont cherchéau lancement du prog et pas a chak appel),
mais si c'est compliké et ke ya pas besoin que ca soit super rapide kan on saute la boucle ben utilisé le systeme des acollade...

Ou encore faire tout avec des acolade ,mais au lancement du prog il replace les acolade par des label et des goto (genre une semi compilation en fait...) bref....


Léo
THANK YOU FOR
USING FAST-RPL

11

Salut a tous, c'est les vacance, donc j'ai un peu de temps pour programmer... (dur la prépa).... donc voila, je m'y remet un peu, je voulais savoir si kelkun pourrait me filer un petit coup de main... Faire en ASM genre un data converter... au moins pour les images et les sprites...
CAD un truk ki copie des data dans Str0 , comme ca celui ki programme en RPL et ki a un sprite a mettre dedans, ben il dessine sont sprite, l'envoi dans Str0 avec ce prog, puis l'insert dans le code avec Rcl Str0....


Merci d'avance


Léo
THANK YOU FOR
USING FAST-RPL

12

pareil pour moi, #prepa#
je pense pas avoir le temsp désolé kuda, mais ptet que ca serait un excellent exercice pour Jlg roll grin
-pacHa

13

Ok merci de repondre, j'ai cru un instant qu'un fléau avait anéanti tous les programmeur Ti et que j'était le seul survivant... Au moins j'aurai pas été obligé de faire de Doc pour FastRPL....
Trève de plaisenterie, je vient d'implementer le système anti crash, qui fait des zoulies message d'erreur quand quelque chose ne va pas... donc pour l'instant les script en fastRPL ne peuvent pas planter la calc (a moins d'une boule de laquelle on sort pas mais je vais bientot faire une combine de touche genre On+Math pour quitter le script en toute circonstance...
Vous donc aurez droit au messages suivants si vous programmez MAL

.db "ERR0R : Address 0ut 0f Script" : Goto a un adresse hors du script

.db "ERR0R : Stack is Empty" :Passage a un niveau négatif de la pile ( sachant que ya un buffer de sécurité de 32 octets , et qu'a priori aucune fonction ne popera 16 variable, le message d'erreur apparaitra avant qu'auncune info vitale de la stack soit perdu)

.db "ERR0R : Stack is Full" :J'ai limité la taille de la pile pour eviter que si dans un boucle il y ai trop de push ca detruise des info dans la mémoire... pourl'insntant le stack limite est a 512 octets)

.db "ERR0R : unknown token " : caractère qui ne fait pas partie de la liste des fonctions

.db "WARNING : Stack not at 0" A l'instruction Stop la pile n'est pas 0, car maitenant il faut l'instruction Stop a la fin du script... sinon il lit hors du script et ca fait un unknown token...


C'est super classe non ??

Je vient aussi de faire le lancement du programme a partir du nom dans Str1 (afin qu'on puisse lancer d'autre script que AAAAAAAA) mais le nom du prog doit faire 8 caractère... Sinon, le code source a été divisé en plein de .inc afin qu'on s'y retrouve un peu...

J'ai donc programmé un zoulie très zoulie PONG avec "Intelligence Artificielle" (<--- ca prévoi juste la trajectoire de la balle.....), mais reste le défaut des sprites, alors j'ai tapé des adresse au pif dans la romme et j'ai des truc qui ressemble a des pallette et a une balle donc ca me va pour l'instant..

Je m'occupe de faire l'implementation de { } pour structurer les boucle et je fait une béta , ou au moins une new sur le site... mais pour les impatients (si il y en a) j'upload déja tout sur le site de la TIFT...



Kuda
THANK YOU FOR
USING FAST-RPL

14

c'est la classe en effet
trop dommage que j'ai pas de 83+
faut que les autres testent
paxl ca lui plairait un ptit langage comme ca je pense, fauddrait le mettre au courant
-pacHa

15

Dsl pour l'upload ça chiotte depuis que paxl a changé de serveur, faut le harceler pour qu'il corrige tout ça... moi j'ai plus internet la semaine, sauf qd j'ai un trou ds mon emploi du temps (dur dur...)
pour ton prog kuda, j'essaierai de voir si j'ai le temps de bûcher dessus, mais en ce moment je programme en asm PIC et non z80... robotique oblige smile

bon courage pour la suite, bonne fin de vacances, ++

16

Mais vous etes pas au courant ? PAXL est mort (numériquement parlant...) En effet ca fait une semaine kil est plus connecté sur PMSN alors ke dab il l'est 24h/24.....
Arf le PIC 16F84A komment j'en est chié avec lui... pas pour programmer, mais pour envoyer les programme.... sur un site me disait kil fallait croiser des copnection du port parrallèle, dautre disai que non..... G dfu reussir a envoyé 2 fois un truk dessus , je crois ke CT du a la pleine lune et au vent d'ouest, qui ont démagnétisé un truk.... Que des bon souvenir....

Léo
THANK YOU FOR
USING FAST-RPL

17

pendant que je suis la, je me demandai si quequ'un cconnaissai le point d'entrée du TiOS pour lancer l'editeur de programme et l'envoyer directement a tel ou tel ligne (comme apres une erreur en basic), ca ferai encore plus super classe après un message d'erreur...


Léo
THANK YOU FOR
USING FAST-RPL

18

Pour ce genre de trucs chaud, je pense que Tijl Coosemans, alias Kalimero, pourrais t'aider.
Il est sur le forum Maxcoderz, et sur irc sur le chan #tcpa de efnet.

19

Kuda explique plus ce que tu veux faire....ton data converter ( jai pas compris ce que tu voulais faire ) tu veux copier kel genre de donnée dans str0 et a koi ca servira de copier dans str0
et si un ga fai rcl str0 , ca fera koi....

faudrai ke tu explique un peu plus clairement ce que tu veux ( c'est peut etre clair pour toi vu ke ces toi ki développe le RPL mais nous faudrait plus d'explication.... ).....

20

McBeach: d'après ce que j'en ai compris, il veut un programme qui copie n'importe quelle variable ou prog dans str0, brut de fonderie, sans rien d'autre...

Kuda: c'est bien beau mais si tu veut mettre 2 sprites ? et il faudra relancer le prog de conversion entre chaque prog RPL car ils risquent d'utiliser différentes données... Enfin c'est plutôt du bidouillage je trouve ta solution happy

21

ben je voudrai kon puisse integrer des data direct dans le script... les sprite en particulier...CAD me faudrai un programme qui est capable de copier betement les octet d'un sprite dans une variable strin... ca donnera nimporte quoi comme caractre a l'écran, certe, mais l'important c'est qu'apres on puiss les mettre dans le script...

J'espere ke C plus clair...

Léo
THANK YOU FOR
USING FAST-RPL

22

je veux bien le faire comme ca me semble pas trop long... mais je comprend pas pourquoi tu veux qu'un autre le fasse comme c'est pas trop long à faire enfin je pense...

23

Ah ok, après tu fait un copier/coller brut de fonderie, pour mettre les valeurs en dur dans ton programme ?
Sinon j'ai rien compris cheeky

24

Bon, euh, comme ya pas moyen d'uploadé sur le site de la TIFT en ce moment, j'ai mis sur mon serveur la derniere version de FAST RPL avec un script exemple... http://kuda.dyndns.org/leo/fast_rpl/ C'est un très joli pong avec intelligence artificielle (Joli, euh CAD comme G pas encore de srpite editro j'ai pris des adresse o pif dans la rom pour les sprite, et j'ai un truk a peu pres rond pour la balle, et deux truk a peu pres rectangle pour les palette....). Mais l'interet, C'est l'exemple, pour montrer la vitesse du FAST RPL, puiske ke le jeu est super mega fluide, et sa capacité a faire un peu de vrai programmation (je veux dire par la ke ya pas ke des routine graphique dans mon truk) en etant malin... Certe le script est pas SUPER-LISIBLE, mais C pas trop atroce non plus...
Bon je recopi le script pour ceuw ke ca interresse mais ki auraient la flemme (comme ca je peu commenter au passage... @ c'est theta):

25->L (L c'est la position en Y prévu pas l'IA, au début on place la palette au milieu)
5->M (position de base de la palette 2)
15->V (C'est l
20->@
5000->N
9000->O
20->S
0->T
Lbl D
ClrDraw
@27getkey+25getkey- ->@
THANK YOU FOR
USING FAST-RPL

25

oops post sans faire expres... je continue...

25->L (L c'est la position en Y prévu pas l'IA, au début on place la palette au milieu)
5->M (position de base de la palette 2)
15->V (C'est la vitesse de jeu)
20->@ (position de la palette 1)
5000->N (position en X de la balle *250... comme tous les nombre sont entier, je multiplie les position par 250 pour avoir plus de précision dans la trajectoire)
9000->O (position en Y de la balle)
20->S (vitesse horizontale de la balle)
0->T (vitesse verticale de la balle)
Lbl D (Début de la boucle)
ClrDraw (On efface l'ecran)
@27getkey+25getkey- ->@ (getkey renvoi 1 si la touche demandé est enfoncé... en basic ca serai getkey->K:@+(Ans=25 )-(K=34)->@
MML>+ML<- ->M ( lire : M+(L>M)-(L<M)->M... C bô le RPL!!!)
0@8Trace (dessine le sprite a l'adresse 8 au coordonnée (0,@) premiere moreceaude la palette 1)
0@8+8Trace (dessine le sprite a l'adresse 8 au coordonnée (0,@+8) deuxieme moreceaude la palette 1)
88M4Trace (palette 2)
88M8+4Trace
SV*N+->N (ajoute la vitesse horizontale fois la vitesse de jeu à la position en X de la balle)
TV*O+->O (ideme vertical)
N250/(->X (transforme en vrai coordonné a affiché, le caractère / renvoi le reste de la division avant le dividende, on le jete avec le caractère "(" )
O250/(->Y (idem)
XY0Trace (affiche le sprite de la balle adresse $0000 au coordonnée (X,Y) )
Y0>IfT-->T (si Y<0 inversé la vitesse verticale)
Y56<IfT-->T (si Y>56 inversé la vitesse verticale)
X81>YL-15< or LY-7< or If piHGoto (si l'une de condition n'est pas respecté, saute les instruction juska Lbl H (X<81) (L-Y>15) (Y-L<7) (condition de collision de la balle sur la palette 2)
20- ->S (-20->S : rebon de la balle)
YL-4-T+->T (definition de la nouvelle vitesse verticale : T+ (L-Y)-4 ->T en gros, si n tape avec le haut de la palette la balle repart plus vert le haut)
Lbl H
X7<:Y@-15< or @Y-7< or If piCGoto (condition de rebond avec la palette 1)
20->S (rebond horizontal de la balle)
YL-4-T+->T (rebond vertical)
VV40>+-> ( V+(V<40)->V (si la vistesse est inferieur a 40 augmenté la vitesse)
Y4T*+112/->L( ( C'est mon AI... )
L56<If 112L-->L (reste de l'AI)
L4-->L (petit correctif)
Lbl C
DispGraph (affiche ENFIN tout ce qu'ona dessiné)
45getkey0=X1<X85> and and If piDGoto (si la balle n'est sorti ni a gauche, ni a droite, et kon a pas appuyé sur clear, refaire la boucle)
Stop (fin du script)...





Bon, qu'est-ce ke vous en penser ??




THANK YOU FOR
USING FAST-RPL

26

kuda tu veux un truc de ce genre la?

ld hl,sprite
push hl
ld hl,4
push hl
call ttt
pop hl
pop hl
ret

ttt:
bcall(_zeroop1)
ld hl,str1name
ld de,op1
ld bc,3
ldir
bcall(_chkfindsym)
jr c,nodelvar_str1
bcall(_delvar)
nodelvar_str1:
ld (spvalue),sp
ld ix,(spvalue)
ld l,(ix+2)
ld h,(ix+3)
bcall(_createstrng)
inc de
inc de
ld l,(ix+4)
ld h,(ix+5)
ld c,(ix+3)
ld b,(ix+2)
ldir
ret
str1name:
.db STRNGOBJ,TVARSTRNG,TSTR1
spvalue:
.dw 0

sprite:
.db 48
.db 10
.db 10000001b
.db 10000001b

au fait tu veux des routines graphiques ( line , rectangle vide et plein , cercle vide et rempli , et peut etre courbe )

27

le programme d'exemple ( rplpong1 ) .... il marche comment ? je n'arrive pas a le lancer directement et il n'est pas reconnu avec mirageos.... il en est de meme pour test.8xp

28

euh, fo ke je reexplik un pu le concept alors... test.8xp est en assembleur, mais comme C un pseudo-shell, je vais pas le faire lancé par un autr shell...
Donc pour l'instant, la manip pour lancer RPLPONG1 (ou tout autre script fait en fastRPL) C'est
"RPLPONG1"->Str1
Asm(prgmTEST


en fait au démarage, l'executeur de script regarde dans la variable Str1 et charge le programme ki est dedans... voili voilou...

Bon test...


Léo
THANK YOU FOR
USING FAST-RPL

29

oki... ca marche....o fait l'éditeur tu la déja fai ?

30

non.... Mais j'airerai savoir en fait si vous trouver ca interssant, si vous penser que des gens (mmee une dizaineseulement) l'utiliserons... ca me plait de programmer, pour moi, mais bon, fodrai pas ke ca soit totalement inutil non plus...
THANK YOU FOR
USING FAST-RPL