Omnimaga

Calculator Community => TI Calculators => General Calculator Help => Topic started by: TheBassetHound on March 24, 2013, 11:33:27 pm

Title: Has anyone made a programming language within TI-BASIC?
Post by: TheBassetHound on March 24, 2013, 11:33:27 pm
Hello all,
I want to know if you can make your own simple programming language with TI-BASIC.
Title: Re: Has anyone made a programming language within TI-BASIC?
Post by: DJ Omnimaga on March 24, 2013, 11:50:06 pm
It was done a few years ago by a former member. I forgot the name but there even used to be a site explaining how the language works and stuff. It was in old posts somewhere and the aim was to have smaller code at the cost of speed. I'll try to find it.

EDIT: Here is it http://www.omnimaga.org/index.php?topic=-1598.0
And the doc: http://web.archive.org/web/20070104084107/http://cdi.calcgames.org/vmb.htm

Spoiler For "Documentation in case the above link doesn't work":
VMB
What is VMB? VMB is short for a new coding language called Varaible Manipulation BASIC.
What is VMB good for? For now nothing... but since the commands are smaller in size than
TI-BASIC commands it might soon have an advantage in size. Why would I use VMB? It is, in
my opinion, a better form of BASIC, and it utilizes many already known and loved BASIC
commands. How does VMB work? VMB scanns for 4 conditions of a line, a beggining command, a
middle command, an ending command, and a ":". The ":" seprates lines and is important to the
language. Where is there documentation on VMB? Right here.

Anything in bold is code, anything that is italics you substute what is says there, anything in red is new, and anything in blue is being taken out.</div> <div><font face="> Beggining Commands
:( | output command. ex. (z,t"hello"
:' | getkey. ex. :[z
:{ | input command. ex. :{z
:' | if statment. ex :'z=t
:/ | divides 2 varibles. ex. :/zt
:+ | adds 2 varibles. ex. :+zt
:- | subtracts 2 varibles. ex. :-zt
:* | mulitiplies 2 varibles. ex :*zt
:! | displays variables or text. ex. :!z or :!"hello"
:@ | lbl. ex. :@z
:# | goto. ex. :#z
:. | pause. ex. :. or :."hello" or :.z
:## | a goto the last exicuted goto. ex. :##
:$number | is a goto a colon command. ex. :$12

Middle Commands
? | store. ex. :z?x
' | then statement. ex. :'z=t'z?x
" | ends text. ex. :"hello"
+, -, /, and * | the respective commands. ex. :+zt-cf*gc/zt or :++xtd
( and ) | seprator, cutoff. ex. :+zt-(*cf)g
number1&number2 | random integer between number 1 and 2. ex. :z&x
_ | a spacer to skip a beggining command. ex. :_'z?x'
This particular command would be useful for something like :'x=d:_'d?q'

End Commands
' | end statement. ex. :'z=t'z?x'
__ | skips both beggining and middle commands. ex. :__'
This would only be useful for something like :'x=d'd?q:x?s:0?d:__'

Example Code

:!"tunnel_game":."by_cdi_games":!"_":!"_":!"_":!"_":!"_":!"_":!"_":8?ship:0?score:6?tunnell:@start:!" ":(8,tunnel"0___0":(8,ship"v":(1,1score:[key:'ship!=2:-ship(key=24?ship:'ship!=15:+ship(key=26?ship:+tunnell-1&1?tunnell:'tunnell=0:+tunnell1?tunnell:'tunnell=13:-tunnell1?tunnell:+tunnell4?tunnelr:'ship=tunnell:#lose:'ship=tunnelr:#lose:+score1?score:#start:@lose:!score:."you lose"

The code is all one line fyi, VMB does not support true linebreaks.

Now, what would the code look like in normal BASIC for the 83+?

We'll use C for ship, D for tunnell, E for tunnelr, F for score, G for key, 0 for start, and 1 for lose

:Disp "tunnel_game"
:Pause "by_cdi games"
:Disp "_"
:Disp "_"
:Disp "_"
:Disp "_"
:Disp "_"
:Disp "_"
:Disp "_"
:8->C
:0->E
:6->D
:Lbl 0
:Disp "_"
:Output(8,D,"0___0"
:Output(8,C,"v"
:Output(1,1,F
:getKey->G
:If C!=2
:C-(G=24->C
:If C!=15
:C+(G=26->C
:D+randInt(-1,1->D
:If D=0
:D+1->D
:If D=13
:D-1->D
:D+4->E
:If C=D
:Goto 1
:If C=E
:Goto 1
:F+1->F
:Goto 0
:Lbl 1
:Disp F
:Pause "you lose"

So there you go! have fun!

©2006 CDI Games

Welcome to the forums by the way! :)
Title: Re: Has anyone made a programming language within TI-BASIC?
Post by: Ti-Programmer on March 24, 2013, 11:53:03 pm
Lets make c++ inside TI-Basic, that would be amazing. And almost impossible :P

Also, welcome! Hope you enjoy your stay!
Title: Re: Has anyone made a programming language within TI-BASIC?
Post by: DJ Omnimaga on March 24, 2013, 11:59:33 pm
I found the language. It was by CDI and was called VMB. The original site is gone but Archive cached it. I added the links in  my other post above.
Title: Re: Has anyone made a programming language within TI-BASIC?
Post by: TIfanx1999 on March 25, 2013, 12:08:51 am
Hello all,
I want to know if you can make your own simple programming language with TI-BASIC.

Yea, of course. :) Dj omnimaga linked to one, and i think there've been others. I seem to remember a few brainfuck interprets being written in the past as well. Speed might be a bit lacking though. But yes, it's quite possible. :) welcome to omnimaga by the way!
Title: Re: Has anyone made a programming language within TI-BASIC?
Post by: Sorunome on March 25, 2013, 12:35:12 am
Somebody made brainfuck in basic >.<
Title: Re: Has anyone made a programming language within TI-BASIC?
Post by: DJ Omnimaga on March 25, 2013, 12:39:45 am
Didn't juju already do that? :P