Author Topic: TBEXE - Pre-alpha feature requests  (Read 14180 times)

0 Members and 1 Guest are viewing this topic.

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
TBEXE - Pre-alpha feature requests
« on: July 16, 2011, 06:41:17 pm »
Hello everyone! Even if you're not reading this, hello!

I'm BlakPilar, in case you didn't know that. However, this little forum post is for you! Yes, you! Not that chick down the hall, or that dude on the other side of the room- you. I'm working on a project called TBEXE (+1 if you can guess what it is without reading on.) It will allow anyone who decides to try it out to take their boring, old, bland .8xp programs and turn them into full-fledged executable programs for use on any Windows machine! With full access to color and processor speed! Yay!

Right now TBEXE is still very much in its infancy, which is the perfect time for me to be doing this kind of poll. I want you to ask yourself and anyone else who you think might download and/or use TBEXE when it is released what you would want in it. I want your ideas because I want to make this a lasting program that many people will use. Heck, if enough people want it, I'll draw a purple dinosaur and throw that in there. TBEXE is a program made by me, for you.

I have some obvious, common features planned, such as syntax highlighting, auto-complete/intellisense, code snippets, a WinForms designer (like the one in Visual Studio), plugin support, and possibly theme support. I have little to no creativity in my mind and I can't really think of any other features besides those aforementioned. Oh, of course you can also import and export as a .8xp, but some command syntax will be changed, not all commands will be supported when exporting to .exe, and some commands/functionality will be added.

So um... Yeah. Gimme suggestions ;D

--EDIT--
If you still don't understand what this is, here's a simple explanation:
I take your calculator-only .8xp programs and turn them into fully-functional .exe programs so you can use your calculator programs on the computer WITHOUT the need of an emulator. With the resulting executable file, you will be able to do everything with a normal computer program that the calculator can do with a calculator program. See EDIT3 if you're still confused.

--EDIT2--
TBEXE will be completely open-source! :D I'll be hosting it on Codeplex (and maybe here if I get the privilege >.>) as soon as it's ready for Alpha testing.

--EDIT3--
TBEXE will only support BASIC .8XPs. If you try to open an ASM compiled program, you'll get the same result as if you tried editing the same program on-calc after unlocking it using MirageOS or something similar. Because of the plugin support, if someone wants to write a plugin to handle decompiling of those ASM programs, go right ahead.

I probably left some stuff out  (I wrote EDIT3 quickly from my Zune HD), so if I did, just ask me and I'll get to you. Also, don't forget to give me suggestions! Thanks! ;D
« Last Edit: July 20, 2011, 11:27:26 am by BlakPilar »

Offline Ti-Programmer

  • LV3 Member (Next: 100)
  • ***
  • Posts: 84
  • Rating: +3/-0
  • Whats this? so many features...
    • View Profile
    • Ti-Programmer's website
Re: TBEXE - Pre-alpha feature requests
« Reply #1 on: July 16, 2011, 07:21:32 pm »
Can i get a second on templates? Possibly with permision from others you could include a built in emulator, like wabbit, and tell ppl to get roms from calc, or automate the rom process. FTP file support for uploading projects to server? thas just some.
Spoiler For Sig:







Offline pianoman

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 426
  • Rating: +24/-0
  • ♪♫ ♪♫ ♪♫ ♪♫ ♪♫ ♪♫ ♪♫
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #2 on: July 16, 2011, 08:41:15 pm »
I'll go for the purple dinosaur. :P

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #3 on: July 16, 2011, 09:58:39 pm »
@Ti-Programmer, could you explain more on what you mean by templates? It'll only support .8xp program files on the first release, if that helps. It seems like a good idea, though. As for the emulator, I might consider that for the first release, but I was thinking that might be able to be accomplished using a plugin (I'll contact the people who control Wabbit when the time comes). FTP shouldn't be too hard using sockets. I like that idea, people could easily work on the project with others. Thanks! :D

@pianoman, get about 199 others to go for it and you got yourself a deal :P

Offline ralphdspam

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 841
  • Rating: +38/-1
  • My name is actually Matt.
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #4 on: July 16, 2011, 10:14:53 pm »
I don't quite understand.  Is this a basic interpreter or a Z80 emulator? 

Either way, I'd go for that dinosaur!  :P
ld a, 0
ld a, a

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #5 on: July 16, 2011, 11:36:03 pm »
@ralphdspam, it's kind of a basic interpreter, but it's really neither. It'll be able to open/save as 8xp files, but I am building a sort of conversion engine that will allow users to turn .8xp programs into fully-functional .exe programs to run on the computer.

Offline ralphdspam

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 841
  • Rating: +38/-1
  • My name is actually Matt.
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #6 on: July 17, 2011, 12:37:49 am »
@ralphdspam, it's kind of a basic interpreter, but it's really neither. It'll be able to open/save as 8xp files, but I am building a sort of conversion engine that will allow users to turn .8xp programs into fully-functional .exe programs to run on the computer.
I'm sorry.  I still don't quite understand.  Will your program only parse through TI-BASIC commands or will it support no-stub ASM as well? 
It is a little confusing because an .8xp file could contain either one.  ???
Also, do you plan on adding support for 3rd party commands from xLib, CelticIII, Omnicalc, etc.?

Either way, you have a great idea, and I would like to see it take root.  :)

« Last Edit: July 17, 2011, 12:41:05 am by ralphdspam »
ld a, 0
ld a, a

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #7 on: July 17, 2011, 01:12:34 am »
Okay, my bad, sorry lol. It'll open ASM-compiled .8XPs, but it'll just do what the calculator does when you try to open an ASM program after unlocking it with MirageOS or something.

I could add support for xLib, etc. It wouldn't really be that hard to implement. I was thinking of designating that for a plugin as well, but you never know...

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #8 on: July 18, 2011, 10:02:11 am »
I just thought of another feature! How does a BASIC Sprite Helper sound? You can highlight text from your code, open the helper, and it will show you what it will look like on-calc!

Offline lunixbochs

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 13
  • Rating: +1/-0
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #9 on: July 18, 2011, 10:29:26 pm »
How mature is the project so far? What sort of details can you provide (implementation language, general design)?

This project is relevant to my interests... if you like Python at all, I'm in the middle of writing a very flexible TI-BASIC interpreter (it's almost to the point of running normal programs, can parse and execute simple ones already)

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #10 on: July 18, 2011, 11:33:04 pm »
Well, check out my signature for the progress lol. The language I'm using to write it is C#.NET. Possibly when I get my tokenizer done and implement opening/saving I'll upload the source to the Codeplex page I'm working on. I'm sure you'll also read my comment on TIConvert, but Python and I have a love/hate relationship. I love it because of its flexibility and looseness, but because of that I can't use it (I'm OCD like that). I think in my OP I discussed some design features, etc. and once I upload some source, Codeplex will let me publish the project so others can see it there.

I could always use someone else on the development team, even if they only cover one or two aspects. So if you're interested... :) (Python to C# shouldn't be too hard, but don't quote me on that lol)

Offline lunixbochs

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 13
  • Rating: +1/-0
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #11 on: July 19, 2011, 12:03:24 am »
well, once I get the interpreter fleshed out a bit more (it still needs a finished implementation of comma-separated values like used in Disp+functions, and working jump/skip for blocks (If, While, Repeat) + Goto/LBL), my next goal is a Javascript port w/ html canvas for display

afaik you can invoke both python and javascript from C#/CLR, maybe you could save a lot of work that way :) my token handling is extremely flexible, and I could easily delegate parts or all of it to C#
« Last Edit: July 19, 2011, 12:03:56 am by lunixbochs »

Offline BlakPilar

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 734
  • Rating: +44/-1
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #12 on: July 19, 2011, 12:15:32 am »
Hmm... What do you mean a "finished implementation of comma-separated values"? Is that in tokenizing, or detokenizing? And what do you mean by "jump/skip blocks"?

I may have to look into invoking Python in C# then... That would be much easier for everyone involved lol.

Offline Michael_Lee

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1019
  • Rating: +124/-9
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #13 on: July 19, 2011, 12:22:36 am »
I think he's trying to build an interpreter that will actually run a TI-Basic program from the computer.
My website: Currently boring.

Projects:
Axe Interpreter
   > Core: Done
   > Memory: Need write code to add constants.
   > Graphics: Rewritten.  Needs to integrate sprites with constants.
   > IO: GetKey done.  Need to add mostly homescreen IO stuff.
Croquette:
   > Stomping bugs
   > Internet version: On hold until I can make my website less boring/broken.

Offline lunixbochs

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 13
  • Rating: +1/-0
    • View Profile
Re: TBEXE - Pre-alpha feature requests
« Reply #14 on: July 19, 2011, 12:29:24 am »
I don't need to detokenize, because I'm only interested in running the code - not displaying it :)
I define tokens as classes in python, with methods like get(), set(), run()

tokens have an "order of operations" property, which allows me to push the proper token types into expressions, and evaluate expressions in the right order

right now, the following test cases work:

Code: [Select]
Disp "string constant:"
Disp "spam"

Disp "string concatenation:"
Disp "eggs" + " foo"

Disp "expression with parens"
Disp ((1 + 2) + 3) * 4

Disp "unterminated brackets"
Disp ((1 + 2

Disp "logic operators"
Disp 1 < 3 and 4 > 3

Disp "variable set, implied multiplication"
2->A
1->B
Disp AB

Disp "-> should close all brackets (this should Disp 6)"
3+(1+2->C
Disp C

Disp "->D->E"
1->D->E
Disp D + E

the only code constructs I can't handle yet, are If/Then/Else/End, While, Repeat statements (blocks), which actually just need an interpreter method to skip around (when I hit an "If" token, it'll evaluate the expression i.e. "If 1" will check to see if 1 is true, then either continue execution or jump to the next (Else or End))

when I hit an End during normal execution, it'll look at the stack of blocks I'm in and ask the last block on the stack whether to repeat the block or not. this even allows me to simulate the "If 1 End" feature to skip back to the last While loop

for Goto, I just need to be able to say "Skip to the next Label token with the label x"

the interpreter can already handle all of this except the skipping around part :)


for comma-separated values, that's function arguments and Disp as per this test case:
Code: [Select]
Disp 1, 2, 3
Output(1, 2, 3)

once I get these working, I just need to implement the behavior of a lot of tokens/functions - but the way it's designed, that's completely separate from the VM.
I just define a class with a run() function, and its behavior is completely isolated there

for the pure-python version, I'm thinking I'll just implement something along the lines of really limited homescreen emulation for now, and aim for being able to at least run menu-based games like drugwars :) I might implement vt100 control codes for better homescreen emulation so we can play mofrog and such

for the javascript version, I was planning to do full homescreen and graph screen emulation, including the fonts used. that's a bit down the road.


I'm pretty happy with my progress so far, and excited to have a turing-complete language pretty soon.

in the next few days, I'm hoping to be able to run most BASIC programs driven by menus and text input, which don't rely on the graph screen or homescreen positioning from Output()


I think he's trying to build an interpreter that will actually run a TI-Basic program from the computer.
it can already run simple programs
« Last Edit: July 19, 2011, 12:36:52 am by lunixbochs »