AxeSM, un compilateur d'ASM ... en Axe ^^
+4
noelthebest
sandro
persalteas
matrefeytontias
8 participants
Page 1 sur 3
Page 1 sur 3 • 1, 2, 3
AxeSM, un compilateur d'ASM ... en Axe ^^
Salut les gens !
Qu'apprends-je, aucun nouveau projet n'a été proposé depuis Speejump !? Remédions vite à cela
Voici donc venir AxeSM, un compilateur d'ASM codé en Axe (ça change ). Bon alors je ne vous cache pas qu'il est loin d'être fini, qu'il fait déjà 6127 octets en traduisant seulement Ret, ld, end et bcall, mais bon c'est ld qui prend toute la place pis c'est pas encore optimisé
Donc, ce compilo créé un programme prgmHEX (j'arrive pas à demander à l'user d'entrer un nom de sortie ) avec le code hexa de votre programme ASM que vous choisirez parmi les programmes existants (et qui devra commencer par Input, vous allez comprendre pourquoi). P'tit screen pour les yeux :
[Vous devez être inscrit et connecté pour voir cette image]
Mais ce dont je suis le plus fier, c'est l'utilisation de tokens ASM bon ok, pour l'instant j'arrive à en définir que deux à la fois, mais patience ça arrive .
Comment ça vous comprenez pas ? Et avec ça alors :
[Vous devez être inscrit et connecté pour voir cette image]
Voilà, à suivre donc
Qu'apprends-je, aucun nouveau projet n'a été proposé depuis Speejump !? Remédions vite à cela
Voici donc venir AxeSM, un compilateur d'ASM codé en Axe (ça change ). Bon alors je ne vous cache pas qu'il est loin d'être fini, qu'il fait déjà 6127 octets en traduisant seulement Ret, ld, end et bcall, mais bon c'est ld qui prend toute la place pis c'est pas encore optimisé
Donc, ce compilo créé un programme prgmHEX (j'arrive pas à demander à l'user d'entrer un nom de sortie ) avec le code hexa de votre programme ASM que vous choisirez parmi les programmes existants (et qui devra commencer par Input, vous allez comprendre pourquoi). P'tit screen pour les yeux :
[Vous devez être inscrit et connecté pour voir cette image]
Mais ce dont je suis le plus fier, c'est l'utilisation de tokens ASM bon ok, pour l'instant j'arrive à en définir que deux à la fois, mais patience ça arrive .
Comment ça vous comprenez pas ? Et avec ça alors :
[Vous devez être inscrit et connecté pour voir cette image]
Voilà, à suivre donc
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
C'est sympatoche tout ça... Tu as de belles idées tordues, mais c'est sympatoche.
Moi qui croyais qu'on ne ferait jamais d'ASM si on n'a pas le cable...
Moi qui croyais qu'on ne ferait jamais d'ASM si on n'a pas le cable...
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
il suffit d'archiver tout le reste pendant qu'on bricole.
sandro- Or 4
- Sexe :
Age : 28
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-82 Stats.fr
- - TI-84+ SE
- - TI-89
- - Casio Collège
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Mdr c'est tout en axe ???
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Et oui, tout en Axe (sauf pour renommer pes tokens, c'est pas possible en Axe, c'est de l'ASM)
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Je comprend maintenant pourquoi toutes ces questions ! x)
C'est génial ce que tu as fait, est ce que tu aurais le source et l'exécutable ?
C'est génial ce que tu as fait, est ce que tu aurais le source et l'exécutable ?
kindermoumoute- Or 4
- Sexe :
Age : 30
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
(si tu crées un programme open-source ?)
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Celui-là oui je comptes bien le faire open-source pour que chacun puisse rajouter des commandes
Mais là je suis sur phone donc attendez demain pour les fichiers
Mais là je suis sur phone donc attendez demain pour les fichiers
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
matrefeytontias est officiellement le maître de l'ASM du forum.
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Wah, c'est hallucinant! O_o
Il faut le cable pour Dl l'appli Axe parser... x) Dommage!
Moi qui croyais qu'on ne ferait jamais d'ASM si on n'a pas le cable...
Il faut le cable pour Dl l'appli Axe parser... x) Dommage!
Polymorph- Argent 4
- Sexe :
Age : 29
Messages : 54
Date d'inscription : 05/01/2012
Points Forum : 8
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-82 Stats.fr
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Y'a un gros problème : on dirait que AxeSM détecte uniquement les autres programmes s'ils étaient présents au moment de la compilation je poste donc juste la source du compilo (elle est énorme !!!) en Axe et du token hook en ASM, plus un 8xg avec de quoi activer et désactiver le token hook.
[Vous devez être inscrit et connecté pour voir ce lien].
Donc pour répondre aux questions qui seront peut-être posées :
Voilà, pour lancer le hook, vous avez juste à dégrouper le fichier *.8xg et exécuter SWITCHHK (c'est un programme Ti-Basic)
Bon, le temps que le problème de détection des programmes soit réglé, et je poste l'exécutable
[Vous devez être inscrit et connecté pour voir ce lien].
- Attention code extrêmement long et mal optimisé !:
- Code:
:.AXESM
:DiagnosticOff
:ClrHome
:ClrDraw
:
:0→C→I→J→L→Θ
:
:"prgm"→Str1
:
:sub(VIN)
:
:Lbl L
:If sub(VCT)=5 or (sub(VCT)=6)
:For(A,1,sub(VNL))
:{sub(VN)-A+1}→{Str1+A}
:End
:0→{Str1+A}
:Text(0,0,Str1+1
:End
:
:Pause 200
:
:While 1
:ReturnIf getKey(15)
:If getKey(1)
:ClrHome
:sub(VNX)
:Goto L
:ElseIf getKey(4)
:ClrHome
:sub(VPR)
:Goto L
:ElseIf getKey(54) or getKey(9)
:Goto GO
:End
:End
:
:Lbl GO
:
:0→I
:
:!If GetCalc(Str1)→F
:Text(0,56,"File not found !"
:Return
:End
:
:DelVar "prgmHEX"
:
:!If GetCalc("prgmHEX1",4096)→S
:Disp "Not enough free space !
:Return
:End
:Fill(S,4096,{[00]}
:
:.Header
:If T2O(F,ᵗInput ,{[3F]})
:{[BB]}→{S
:{[6C]}→{S+1
:{[3F]}→{S+2
:2→I
:3→J
:2→L
:2→Θ
:Else
:Output(0,0,"Invalid ",{[5F]}►Tok,i
:DelVar "prgmHEX1"
:Return
:End
:
:Repeat C
:If getKey(15)
:Return
:End
:
:.Match Return
:If T1O(F+I,ᵗReturn)
:ᵗC→{S+J
:ᵗ9→{S+J+1
:I++
:Θ++
:J+2→J
:.Match bcall
:ElseIf T1O(F+I,ᵗThen)
:ᵗE→{S+J
:ᵗF→{S+J+1
:J+2→J
:I++
:Θ++
:NUM(4)
:I+4→I
:J+4→J
:Θ+4→Θ
:.Match ld
:ElseIf T1O(F+I,ᵗPrompt )
:I+1→I
:Θ+1→Θ
:LD()→E
:If E=0
:I+2→I
:Θ+2→Θ
:J+2→J
:NUM(2)
:I+2→I
:Θ+2→Θ
:J+2→J
:ElseIf E=1
:I+3→I
:Θ+3→Θ
:J+2→J
:NUM(4)
:I+4→I
:Θ+4→Θ
:J+4→J
:ElseIf E=2
:I+3→I
:Θ+3→Θ
:J+2→J
:End
:.Match cp
:ElseIf T1O(F+I,ᵗIf )
:ᵗF→{S+J
:ᵗE→{S+J+1
:I++
:Θ++
:J+2→J
:NUM(2)
:I+2→I
:Θ+2→Θ
:J+2→J
:.Match jr
:ElseIf T1O(F+I,ᵗLbl )
:I++
:Θ++
:JR()→E
:I+E→I
:Θ+E→Θ
:J+2→J
:NUM(2)
:I+2→I
:Θ+2→Θ
:J+2→J
:.Match djnz
:ElseIf T1O(F+I,ᵗFor()
:ᵗ1→{S+J
:ᵗ0→{S+J+1
:I++
:Θ++
:J+2→J
:NUM(2)
:I+2→I
:Θ+2→Θ
:J+2→J
:.Match sub
:ElseIf T1O(F+I,ᵗ-)
:I++
:Θ++
:SUB()→E
:J+2→J
:If E=1
:NUM(2)
:I+2→I
:Θ+2→Θ
:J+2→J
:Else
:I++
:Θ++
:End
:.Match nop
:ElseIf T2O(F+I,ᵗPause ,{[3F]})
:ᵗ0→{S+J
:ᵗ0→{S+J+1
:I++
:Θ++
:J+2→J
:.Match End
:ElseIf T1O(F+I,ᵗEnd)
:1→C
:.Comment
:ElseIf T2O(F+I,{[BB]},{[45]})
:Repeat T1O(F+I,{[3F]})
:I++
:Θ++
:End
:I++
:1→Θ
:.Newline
:ElseIf T1O(F+I,{[3F]})
:{[3F]}→{S+J
:I++
:J++
:L++
:1→Θ
:.Missing End
:ElseIf T1O(F+I+1,{[00]})
:Text(0,56,"Missing End !
:DelVar "prgmHEX1"
:Return
:.Error syntax
:Else!If T1O(F+I,{[00]})
:ERR()
:End
:End
:
:0→I
:
:Repeat {S+I}={[00]}
:I++
:End
:
:GetCalc("prgmHEX",I)→O
:
:Copy(S,O,I)
:
:DelVar "prgmHEX1"
:
:Output(0,7,"Compiled !
:Return
:
:prgmASMLIB
- Code:
:.ASMLIB
:.Display error
:Lbl ERR
:Text(0,56,"Syntax error on line ",L►Dec,",",Θ►Dec
:DelVar "prgmHEX1"
:Returnr
:
:.Test 1 byte
:Lbl T1O
:{r1}=r2
:Return
:
:.Test 2 bytes
:Lbl T2O
:{r1}=r2 and ({r1+1}=r3)
:Return
:
:.Get numbers
:Lbl NUM
:0→B
:Data(0,0)→GDB1
:Data(0,0)→GDB2
:For(B,0,r1-1)
:If inData({F+I+B},Data(ᵗ0,ᵗ1,ᵗ2,ᵗ3,ᵗ4,ᵗ5,ᵗ6,ᵗ7,ᵗ8,ᵗ9,ᵗA,ᵗB,ᵗC,ᵗD,ᵗE,ᵗF))
:If B<2
:{F+I+B}→{GDB1+B
:Else
:{F+I+B}→{GDB2+B-2
:End
:Else
:ERR()
:End
:End
:If r1<3
:{GDB1}→{S+J
:{GDB1+1}→{S+J+1
:Else
:{GDB2}→{S+J
:{GDB2+1}→{S+J+1
:{GDB1}→{S+J+2
:{GDB1+1}→{S+J+3
:End
:Return
:
:.sub statement
:Lbl SUB
:ᵗ9→{S+J
:If T2O(F+I,ᵗA,{[3F]})
:ᵗ7→{S+J+1
:0
:ElseIf T2O(F+I,ᵗB,{[3F]})
:ᵗ0→{S+J+1
:0
:ElseIf T2O(F+I,ᵗC,{[3F]})
:ᵗ1→{S+J+1
:0
:ElseIf T2O(F+I,ᵗD,{[3F]})
:ᵗ2→{S+J+1
:0
:ElseIf T2O(F+I,ᵗE,{[3F]})
:ᵗ3→{S+J+1
:0
:ElseIf T2O(F+I,ᵗH,{[3F]})
:ᵗ4→{S+J+1
:0
:ElseIf T2O(F+I,ᵗL,{[3F]})
:ᵗ5→{S+J+1
:0
:Else
:ᵗD→{S+J
:ᵗ6→{S+J+1
:1
:End
:Return
:
:.LD statement
:Lbl LD
:.A,
:If T2O(F+I,ᵗA,ᵗ,)
:.B
:If T2O(F+I+2,ᵗB,{[3F]})
:ᵗ7→{S+J
:ᵗ8→{S+J+1
:2
:.C
:ElseIf T2O(F+I+2,ᵗC,{[3F]})
:ᵗ7→{S+J
:ᵗ9→{S+J+1
:2
:.D
:ElseIf T2O(F+I+2,ᵗD,{[3F]})
:ᵗ7→{S+J
:ᵗA→{S+J+1
:2
:.E
:ElseIf T2O(F+I+2,ᵗE,{[3F]})
:ᵗ7→{S+J
:ᵗB→{S+J+1
:2
:.H
:ElseIf T2O(F+I+2,ᵗH,{[3F]})
:ᵗ7→{S+J
:ᵗC→{S+J+1
:2
:.L
:ElseIf T2O(F+I+2,ᵗL,{[3F]})
:ᵗ7→{S+J
:ᵗD→{S+J+1
:2
:Else
:ᵗ3→{S+J
:ᵗE→{S+J+1
:0
:End
:.B,
:ElseIf T2O(F+I,ᵗB,ᵗ,)
:.A
:If T2O(F+I+2,ᵗA,{[3F]})
:ᵗ4→{S+J
:ᵗ7→{S+J+1
:2
:.C
:ElseIf T2O(F+I+2,ᵗC,{[3F]})
:ᵗ4→{S+J
:ᵗ1→{S+J+1
:2
:.D
:ElseIf T2O(F+I+2,ᵗD,{[3F]})
:ᵗ4→{S+J
:ᵗ2→{S+J+1
:2
:.E
:ElseIf T2O(F+I+2,ᵗE,{[3F]})
:ᵗ4→{S+J
:ᵗ3→{S+J+1
:2
:.H
:ElseIf T2O(F+I+2,ᵗH,{[3F]})
:ᵗ4→{S+J
:ᵗ4→{S+J+1
:2
:.L
:ElseIf T2O(F+I+2,ᵗL,{[3F]})
:ᵗ4→{S+J
:ᵗ5→{S+J+1
:2
:Else
:ᵗ0→{S+J
:ᵗ6→{S+J+1
:0
:End
:.C,
:ElseIf T2O(F+I,ᵗC,ᵗ,)
:.A
:If T2O(F+I+2,ᵗA,{[3F]})
:ᵗ4→{S+J
:ᵗF→{S+J+1
:2
:.B
:ElseIf T2O(F+I+2,ᵗB,{[3F]})
:ᵗ4→{S+J
:ᵗ8→{S+J+1
:2
:.D
:ElseIf T2O(F+I+2,ᵗD,{[3F]})
:ᵗ4→{S+J
:ᵗA→{S+J+1
:2
:.E
:ElseIf T2O(F+I+2,ᵗE,{[3F]})
:ᵗ4→{S+J
:ᵗB→{S+J+1
:2
:.H
:ElseIf T2O(F+I+2,ᵗH,{[3F]})
:ᵗ4→{S+J
:ᵗC→{S+J+1
:2
:.L
:ElseIf T2O(F+I+2,ᵗL,{[3F]})
:ᵗ4→{S+J
:ᵗD→{S+J+1
:2
:Else
:ᵗ0→{S+J
:ᵗE→{S+J+1
:0
:End
:.D,
:ElseIf T2O(F+I,ᵗD,ᵗ,)
:.A
:If T2O(F+I+2,ᵗA,{[3F]})
:ᵗ5→{S+J
:ᵗ7→{S+J+1
:2
:.B
:ElseIf T2O(F+I+2,ᵗB,{[3F]})
:ᵗ5→{S+J
:ᵗ0→{S+J+1
:2
:.C
:ElseIf T2O(F+I+2,ᵗC,{[3F]})
:ᵗ5→{S+J
:ᵗ1→{S+J+1
:2
:.E
:ElseIf T2O(F+I+2,ᵗE,{[3F]})
:ᵗ5→{S+J
:ᵗ3→{S+J+1
:2
:.H
:ElseIf T2O(F+I+2,ᵗH,{[3F]})
:ᵗ5→{S+J
:ᵗ4→{S+J+1
:2
:.L
:ElseIf T2O(F+I+2,ᵗL,{[3F]})
:ᵗ5→{S+J
:ᵗ5→{S+J+1
:2
:Else
:ᵗ1→{S+J
:ᵗ6→{S+J+1
:0
:End
:.E,
:ElseIf T2O(F+I,ᵗE,ᵗ,)
:.A
:If T2O(F+I+2,ᵗA,{[3F]})
:ᵗ5→{S+J
:ᵗF→{S+J+1
:2
:.B
:ElseIf T2O(F+I+2,ᵗB,{[3F]})
:ᵗ5→{S+J
:ᵗ8→{S+J+1
:2
:.C
:ElseIf T2O(F+I+2,ᵗC,{[3F]})
:ᵗ5→{S+J
:ᵗ9→{S+J+1
:2
:.D
:ElseIf T2O(F+I+2,ᵗD,{[3F]})
:ᵗ5→{S+J
:ᵗA→{S+J+1
:2
:.H
:ElseIf T2O(F+I+2,ᵗH,{[3F]})
:ᵗ5→{S+J
:ᵗC→{S+J+1
:2
:.L
:ElseIf T2O(F+I+2,ᵗL,{[3F]})
:ᵗ5→{S+J
:ᵗD→{S+J+1
:2
:Else
:ᵗ1→{S+J
:ᵗE→{S+J+1
:0
:End
:.H,
:ElseIf T2O(F+I,ᵗH,ᵗ,)
:.A
:If T2O(F+I+2,ᵗA,{[3F]})
:ᵗ6→{S+J
:ᵗ7→{S+J+1
:2
:.B
:ElseIf T2O(F+I+2,ᵗB,{[3F]})
:ᵗ6→{S+J
:ᵗ0→{S+J+1
:2
:.C
:ElseIf T2O(F+I+2,ᵗC,{[3F]})
:ᵗ6→{S+J
:ᵗ1→{S+J+1
:2
:.D
:ElseIf T2O(F+I+2,ᵗD,{[3F]})
:ᵗ6→{S+J
:ᵗ2→{S+J+1
:2
:.E
:ElseIf T2O(F+I+2,ᵗE,{[3F]})
:ᵗ6→{S+J
:ᵗ3→{S+J+1
:2
:.L
:ElseIf T2O(F+I+2,ᵗL,{[3F]})
:ᵗ6→{S+J
:ᵗ5→{S+J+1
:2
:Else
:ᵗ2→{S+J
:ᵗ6→{S+J+1
:0
:End
:.L,
:ElseIf T2O(F+I,ᵗL,ᵗ,)
:.A
:If T2O(F+I+2,ᵗA,{[3F]})
:ᵗ6→{S+J
:ᵗF→{S+J+1
:2
:.B
:ElseIf T2O(F+I+2,ᵗB,{[3F]})
:ᵗ6→{S+J
:ᵗ8→{S+J+1
:2
:.C
:ElseIf T2O(F+I+2,ᵗC,{[3F]})
:ᵗ6→{S+J
:ᵗ9→{S+J+1
:2
:.D
:ElseIf T2O(F+I+2,ᵗD,{[3F]})
:ᵗ6→{S+J
:ᵗA→{S+J+1
:2
:.E
:ElseIf T2O(F+I+2,ᵗE,{[3F]})
:ᵗ6→{S+J
:ᵗB→{S+J+1
:2
:.H
:ElseIf T2O(F+I+2,ᵗH,{[3F]})
:ᵗ6→{S+J
:ᵗC→{S+J+1
:2
:Else
:ᵗ2→{S+J
:ᵗE→{S+J+1
:0
:End
:Else
:ERR()
:End
:
:Return
:
:.JR statement
:Lbl JR
:If T2O(F+I,ᵗZ,ᵗ,)
:ᵗ2→{S+J
:ᵗ8→{S+J+1
:2
:ElseIf T2O(F+I,ᵗN,ᵗZ) and T1O(F+I+2,ᵗ,)
:ᵗ2→{S+J
:ᵗ0→{S+J+1
:3
:ElseIf T2O(F+I,ᵗC,ᵗ,)
:ᵗ3→{S+J
:ᵗ8→{S+J+1
:2
:ElseIf T2O(F+I,ᵗN,ᵗC) and T1O(F+I+2,ᵗ,)
:ᵗ3→{S+J
:ᵗ0→{S+J+1
:3
:Else
:ᵗ1→{S+J
:ᵗ8→{S+J+1
:0
:End
:Return
:
:.VAT funcs
:
:.Init
:Lbl VIN
:{ᴱ9830}r→P
:0→I
:VNX():VNX()
:Return
:
:.Get next entry if in range
:Lbl VNX
:If P-{P-6}-7→Q≥{ᴱ982E}r
:Q→P
:I++
:End
:Return
:
:.Get previous entry
:Lbl VPR
:I→N
:0→I
:If N>3
:For(M,0,N-1)
:VNX()
:End
:End
:Return
:
:.Get type
:Lbl VCT
:{P}
:Return
:
:.Get name length
:Lbl VNL
:{P-6}
:Return
:
:.Get name
:Lbl VN
:P-7
:Return
Donc pour répondre aux questions qui seront peut-être posées :
- Le ᵗ devant des nombres ou des tokens, c'est pour renvoyer le code décimal de ce token (il n'est pas interprété, c'est pour ça que j'utilise ᵗIf à un moment donné, c'est pour chercher If dans le fichier, en sachant que le hook le remplace par cp )
- Non je ne connais pas de méthodes pour l'optimiser -_-'
- Il pèse 7100 octets une fois compilé
- Il a besoin de 12228 octets de RAM libre avant l'exécution (de toute façon le compilo génère un message d'erreur s'il n'y a pas assez de place)
- Les nombres hexa entres {[ ]}, c'est pour chercher un token qui n'existe pas en tant que texte (comme un retour à la ligne : {[3F]} )
Voilà, pour lancer le hook, vous avez juste à dégrouper le fichier *.8xg et exécuter SWITCHHK (c'est un programme Ti-Basic)
Bon, le temps que le problème de détection des programmes soit réglé, et je poste l'exécutable
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Désolé pour le double-post
Ayé, le problème est réglé (enfin détecté plutôt ... vu qu'il n'y avait pas vraiment de problème ).
Voici donc [Vous devez être inscrit et connecté pour voir ce lien] !
Donc, j'ai fait un zip avec deux *.8xg, AXESM et TOKHOOK plus un readme afin de l'utiliser correctement
Enjoy !
EDIT : d'ailleurs j'ai oublié de poster la source du hook :
Voilà voilà
Ayé, le problème est réglé (enfin détecté plutôt ... vu qu'il n'y avait pas vraiment de problème ).
Voici donc [Vous devez être inscrit et connecté pour voir ce lien] !
Donc, j'ai fait un zip avec deux *.8xg, AXESM et TOKHOOK plus un readme afin de l'utiliser correctement
Enjoy !
EDIT : d'ailleurs j'ai oublié de poster la source du hook :
- Code:
.org $9D93
.db $BB,$6D
Start:
IM 1
bcall(_delres)
ld hl,Hook
ld de,statvars
ld bc,End-Hook
ldir
ld a,1
ld hl,statvars
bcall(_enableTokenHook)
ret
Hook:
.org statVars
.db $83
ld a,b
or a
ret nz
push hl
ld hl,tokenTable
tokenSearchLoop:
ld a,e
cp (hl)
inc hl
jr z,chkByte2
notTokenMatch:
inc hl
ld c,(hl)
inc c
add hl,bc
ld a,(hl)
inc a
jr nz,tokenSearchLoop
pop hl
ret
chkByte2:
ld a,d
cp (hl)
jr nz,notTokenMatch
pop bc
ret
tokenTable:
.dw $019C ; If
.db 3
.db "cp "
.dw $019E ; Then
.db 6
.db "bcall "
.dw $01B8 ; Input
.db 6
.db "AsmSrc"
.dw $01BA ; Prompt
.db 3
.db "ld "
.dw $01AC ; Lbl
.db 3
.db "jr "
.dw $01AE ; Goto
.db 3
.db "jp "
.dw $01A6 ; For(
.db 5
.db "djnz "
.dw $01B0 ; Pause
.db 3
.db "nop"
.dw $0434 ; GraphStyle(
.db 1
.db ";"
.dw $E2 ; -
.db 4
.db "sub "
.dw $01AA ; Return
.db 3
.db "ret"
.db $FF ; Fin de la liste de tokens
.org LPC ; retour à l'endroit de l'appel
End:
Voilà voilà
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Cool !
Ça te dit un news sur TI-Planet ?
(je demande au cas où tu voudrais attendre une nouvelle version)
Ça te dit un news sur TI-Planet ?
(je demande au cas où tu voudrais attendre une nouvelle version)
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Je préfèrerai attendre une version un peu (beaucoup) plus aboutie si ça te gêne pas
Sinon, tu l'as testé ? Sandro me dit que ça RAM clear une fois avant de marcher o_O (chez moi ça fait pas ça)
Sinon, tu l'as testé ? Sandro me dit que ça RAM clear une fois avant de marcher o_O (chez moi ça fait pas ça)
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Bin moi j'ai TI Connect non utilisable pour le moment.
(disons que c'est mon pc qui l'est)
(disons que c'est mon pc qui l'est)
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Moi aussi je peut faire la news (et ouais!!!)
Invité- Invité
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Ouais ben à la base c'était moi qui était censé promouvoir Espace-TI...
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Dur dur, la concurrence.
Alex, on te voit plus parler Nspire que 83 sur Planet TI...
Laissons Noel faire son boulot
Alex, on te voit plus parler Nspire que 83 sur Planet TI...
Laissons Noel faire son boulot
- Spoiler:
moi, je peux pas le faire, a force de m'entendre chanter les louanges de Matrefeytontias ils vont me regarder de travers...
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Moi je dis : baston vous battez pas, de toute façon le compilo est pas prêt pour une vraie distribution. Je vous dirais quand le moment sera venu (tatatiiiin).
J'y pense, noel check tes mails, je t'ai envoyé un fond pour le site du Ti-Concours (j'ai modifié l'accueil pour afficher le fond et j'ai tout mis dans un *.zip, t'as juste à ouvrir accueil.php).
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Matref en mode super-héros libérateur !
(tiens, je t'ai traficoté un truc, ça devrait gérer, t'as qu'a cliquer là.... )
On attend donc la version officielle.
(tiens, je t'ai traficoté un truc, ça devrait gérer, t'as qu'a cliquer là.... )
On attend donc la version officielle.
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Alors juste, précision : comme le compilo traduit l'ASM en hexa, il avancera en même temps que le tuto (logique), mais le prochain chapitre abordera pas mal de nouveaux trucs donc mettra du temps à sortir .
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
Ouch, le source fait mal à la tête...
Je sais vraiment pas ce qu'il te passe par la tête quand tu fais ça :
Sérieusement je te conseil d'organiser ton programme avant de l'écrire, juste y penser 30 secondes peux simplifier énormément ton programme, là tu arrive à la limite des 8ko alors que je suis sûr que tu peux réduire par 1,5 voir 2 la taille de ton exécutable !
Bref j'attend un source plus simplifié avec impatience.
Je sais vraiment pas ce qu'il te passe par la tête quand tu fais ça :
- Code:
:Repeat {S+I}={[00]}
:I++
:End
- Code:
:Repeat {S+I}=0
:I++
:End
- Code:
:While {S+I}
:I++
:End
Sérieusement je te conseil d'organiser ton programme avant de l'écrire, juste y penser 30 secondes peux simplifier énormément ton programme, là tu arrive à la limite des 8ko alors que je suis sûr que tu peux réduire par 1,5 voir 2 la taille de ton exécutable !
Bref j'attend un source plus simplifié avec impatience.
kindermoumoute- Or 4
- Sexe :
Age : 30
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: AxeSM, un compilateur d'ASM ... en Axe ^^
J'ai "un peu" réussi à optimiser (j'ai gagné environ 1000 octets) et j'ai pu par la même occasion ajouter les ALIAS (et donc tout plein de hooks) !!!
Pour ceux qui ne programment pas en ASM, les alias sont les noms des commandes à spécifier à la place de son adresse. J'ai donc essayé de renommer certains tokens avec le nom des romcalls que je pensais les plus utiles (en ordre alphabétique) et je les détecte à l'aide du programme prgmΘALIAS (voir le screen), comme ça, pour effacer l'écran au lieu de faire :
Vous ferez :
[Vous devez être inscrit et connecté pour voir cette image]
Pour ceux qui ne programment pas en ASM, les alias sont les noms des commandes à spécifier à la place de son adresse. J'ai donc essayé de renommer certains tokens avec le nom des romcalls que je pensais les plus utiles (en ordre alphabétique) et je les détecte à l'aide du programme prgmΘALIAS (voir le screen), comme ça, pour effacer l'écran au lieu de faire :
- Code:
:AsmSrc
:bcall 4540
:ret
:End
Vous ferez :
[Vous devez être inscrit et connecté pour voir cette image]
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Page 1 sur 3 • 1, 2, 3
Page 1 sur 3
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum