Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Streetwalrus on November 14, 2012, 02:54:38 pm

Title: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Streetwalrus on November 14, 2012, 02:54:38 pm
Hey !
So this is what I am working on right now : an Axe IDE.
I'm creating this topic to share the progress with you, guys. ;)

Current progress so far :
The main menu is working, I'm coding the "New Project" function before moving on to the next part. I have a variable width*6 custom font to display text.
Hint : Holding Alpha while scrolling will make the list go up/down by one page.

Planned features :
-Mimas style project management
-Token auto-completion
-Intuitive PC-style 2nd/Alpha keys usage
-Build-and-Run button
-Easy key code and sprite insertion
-(De)Tokenizing will happen on program load/save

Attached is the current source and build. ;) No screenies ATM, 'cause I can't put my 8xv files in Wabbit (Mac version) for some reason and it's buggy in Tilem 2.
Outdated build. Dig through the topic to find the latest one. ;)
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Vijfhoek on November 14, 2012, 02:56:51 pm
Nice idea. Hopefully it won't be an idea for "tomorrow" :D
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 14, 2012, 03:12:08 pm
Thanks for the support. And it's for today as the progress is attached. ;)
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: DJ Omnimaga on November 14, 2012, 03:48:55 pm
Hmm interesting. I wonder if there will be stuff like a map editor or the ability to export to existing ones (online) or vice-versa? Also what would be nice for the code is if there was a way to add 16 chars divisions in the code editor, so if someone develops on both the PC and calc can see his code in a similar way. That could be nice for example if someone prefers to edit his hex data by hand or NPC convos that uses large fonts and want to make sure the text data will be aligned properly on the calc screen.

It will definitively be hard for a new Axe IDE to compete head-on with the well-established TokenIDE by Merthsoft/Shaun, so you will definitively need to offer stuff that he doesn't offer or focus directly on Axe development.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 14, 2012, 04:16:28 pm
Didn't understand the first part, but for advantages, mine is on-calc. :P The goal is to create a decent editor to replace the Basic one while focusing on Axe. As for a map editor, I like tileIt!, so I wont make one.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: DJ Omnimaga on November 14, 2012, 04:21:47 pm
Oh wait it's on-calc lol. I was sure it was on the computer. Nice then :D. In that case, disregard the first part.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 14, 2012, 04:24:36 pm
Yup. I got this idea when I saw the dead XDE. I felt we need a better way to code on-calc.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: squidgetx on November 14, 2012, 05:54:14 pm
Yup. I got this idea when I saw the dead XDE. I felt we need a better way to code on-calc.

What about zStart ???

I mean, I can think of lots of ways this could be better than zStart but the way you phrase your sentences makes me think that maybe you haven't seen it lol
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: DJ Omnimaga on November 14, 2012, 08:35:11 pm
Or maybe he uses Doors CS (which messes up ZStart)
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Hayleia on November 15, 2012, 01:10:45 am
Yup. I got this idea when I saw the dead XDE. I felt we need a better way to code on-calc.

What about zStart ???

I mean, I can think of lots of ways this could be better than zStart but the way you phrase your sentences makes me think that maybe you haven't seen it lol
Yes, that is what I thought too :P

The thing that is missing with zStart is that it still uses the original editor and it displays with the big font. So that would be great if an IDE used the small font to display tokens (so we can fit more on one line) :D
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 15, 2012, 01:40:13 am
I do use zStart (and I love it), but as Hayleia said, it still uses the Basic editor which I hate on many aspects. The way it's displayed and how 2nd and Alpha keys work are a couple examples.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: willrandship on November 15, 2012, 03:07:05 am
If you make this, you should add in support for general txt files, so we could compile BBC Basic programs with the *EXEC command. :D

Oh, and on tilEm I can't figure out how to make a new file. Is that supported yet? It didn't do anything but show the nonfunctioning dialog boxes.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 15, 2012, 04:27:41 am
I'm trying to focus on Axe developpement, so no BBC basic ATM (but it should be doable once finished).
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: willrandship on November 15, 2012, 04:29:32 pm
Yeah, depending on how you make it it might take a significant remodel to your text editor. Depends on how you interface tokens and whatnot.

I like this project either way. Keep up the good work!
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 16, 2012, 02:27:20 am
It should be easy to port to other languages since I plan the editor to use plain text. (De)Tokenizing will happen on load/save, like on the HP40g. Removing a couple lines could make the job. ;)

Edit : I have four hours of free time, so I'm going to work on it a little bit. I already have an optimized getKey routine in pure Axe and a key code to char map (if you looked at the source you probably saw part of this).
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: aeTIos on November 16, 2012, 06:24:28 am
is this compatible with the regular program editor?
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: TIfanx1999 on November 16, 2012, 09:20:03 am
I believe it is an alternative, though this one is specifically for AXE.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Hayleia on November 16, 2012, 09:26:10 am
I believe it is an alternative, though this one is specifically for AXE.
I think the question was more "can sources produced with this IDE still be opened with the regular editor ?" ;)
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: TIfanx1999 on November 16, 2012, 09:37:26 am
Ahh, if that's the case i don't see why not. Sources are still saved the same way afaict.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: aeTIos on November 16, 2012, 10:04:21 am
Oh yeah of course :P
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: willrandship on November 17, 2012, 12:48:11 am
BBC BASIC stuff will be totally good, since you're using plaintext. All that would be desirable, unless it's going to have really fancy stuff, would be automatically inserting and  adjusting line numbers.

As in: BBC BASIC needs line numbers like so.

10 PRINT "Hello"
20 GOTO 10

and inserting things between is annoying, since you break the 10-line routine

10 PRINT "Hello"
13 PRINT "THERE"
20 GOTO 10

so ideally a BBC-focused editor would reline 13 to 20, and 20 to 30 and so on, but it's not necessary for this IDE to support BBC basic.

As long as it can save the plaintext to a file, the BBC BASIC App can run *EXEC on it to convert it to bytecode.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 17, 2012, 02:47:55 am
is this compatible with the regular program editor?
I'm using the same format. Else, Axe won't be able to compile it. ;)

BBC BASIC stuff will be totally good, since you're using plaintext. All that would be desirable, unless it's going to have really fancy stuff, would be automatically inserting and  adjusting line numbers.

As in: BBC BASIC needs line numbers like so.

10 PRINT "Hello"
20 GOTO 10

and inserting things between is annoying, since you break the 10-line routine

10 PRINT "Hello"
13 PRINT "THERE"
20 GOTO 10

so ideally a BBC-focused editor would reline 13 to 20, and 20 to 30 and so on, but it's not necessary for this IDE to support BBC basic.

As long as it can save the plaintext to a file, the BBC BASIC App can run *EXEC on it to convert it to bytecode.
OK. I will port it to TI Basic, Grammer and BBC Basic once done with Axe. The first two will only need the token table to be updated, for BBC I'll just get rid of tokenization. :P Then only a couple tweaks will be needed.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: thepenguin77 on November 17, 2012, 01:03:39 pm
Now hold on, I think one of the best parts of programming on the calculator is that it has tokens. People who program Axe or Basic frequently can tell you exactly how to get any command on the calculator in 3 buttons or less, and the fact that one token is comprised of perhaps 6 characters makes programming with tokens very quick.

In your program editor, you aren't using tokens though, and honestly, I think that is a mistake. The reason for this is that the TI-84 keyboard is a little awkward to type on. There are of course people who are quick with it, but those people are in the far minority (and they're faster with tokens). Also, without the token system, people actually have to memorize the names of functions, and while this won't be difficult for experience programmers, it puts a serious learning curve that wasn't there before on new programmers.

So, what I am saying is that if you want your IDE to become popular (and increase coding efficiency :P) I think you should stick with tokens.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 17, 2012, 01:43:26 pm
I personally remember the function names quite easily, and the way I'm going to handle the keyboard is kind of like the Control/Shift keys work on the computer, applied to 2nd and Alpha. This will definitely make typing faster. Plus token auto-completion will make it easy to quickly type long function names, and I'll probably have an organized catalog (with categories), like on the HP40g to paste functions.
I totally hate digging through menus to find what I need.
This IDE is based on the coding experience I had with the HP40g, which I preferred to how the TI-8x series work. I used the TI-80 for about three years, then the said HP for one year. Coming back to the TI-84 Plus was a pleasure (more powerful), But it's Basic language is quite limited compared, once again, to the HP (this one had sprites !), and the way you code on it is why I'm making this IDE.
Hope you understand my motivations. If you get your hands on an HP calc, you'll probably see what I mean. ;)
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: thepenguin77 on November 17, 2012, 02:54:30 pm
Ok, I've never used one, so you might be right. Plus, if that's what you want to program with, then you might as well make it.

Good luck
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 17, 2012, 04:13:49 pm
Thanks. ^^
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 18, 2012, 02:32:07 pm
Update ! :w00t:
-The New Project function works. Alpha works just like Control/Shift on the computer. That's how the editor will work. Use 2nd or Enter to validate, Clear to cancel.
-Added the HIDEKB runtime AppVar, generated from scratch by (B)HIDEDAT. It contains the keyboard to ASCII map.
-Optimized the TXT() routine (merged r1 and r5) and moved the 8 bytes buffer it uses for the sprite from L4 to L4+247.
-Added the GETK() routine, an optimized getKey designed for text input, with MultiKey support.
-Fixed a missing ClrDraw at the beginning that caused a weird display half of the time when running with Asm().

Hope you'll enjoy it guys ! ;)

Now, to the project manager. Then I'll work on the editor, (de)tokenizer, and the final touches.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: DJ Omnimaga on November 18, 2012, 02:40:51 pm
Glad to see more progress. :) And yeah I would like to see compatibility with BBC Basic once the Axe one is done. A lot of people who tried BBC Basic said they liked the language and found it kinda easy, but the inline/command line editor turned them away, and a lot of people prefer on-calc programming so they won't use the better editor that is available for the computer. (probably the main reason why there are so few BBC Basic games)

Also the HP-40g had BASIC? I thought it only had RPN? ???
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on November 18, 2012, 02:49:41 pm
Nope, it wasn't RPN. It has a command prompt similar to the TI-68k series (plus a live PrettyPrinted CAS interface). And you programmed on it with HP Basic. I guess you're mislead with the 48/49/50 series.

Edit : GRRRRR Y NO SCREENIES IN WABBIT FOR MAC ?! :mad:

Edit 2 : Finally ! Wine FTW. This screenie is pretty slow, but you get to see most of the stuff. What you don't see here is the scrollbar that appears when the list doesn't fit on the screen.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: willrandship on November 18, 2012, 06:07:49 pm
@thep I was worried about speed too until I saw the auto-completion.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on December 02, 2012, 01:23:27 pm
So, I'm still working on it, just finishing the project manager ATM. I'll post an update this week.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on December 18, 2012, 04:03:55 am
Hi.
I'm really inactive on this topic, so I figured I should post.
I finished the project manager last week, but then I figured out it would be much easier if I implemented a custom file format.
What I mean is that I'm going to have some kind of package that will allow me to easily manage the source. Then it will be exportable to a regular program that Axe can compile and anyone can edit from the regular editor.
That, and my inherent lazyness, are the reasons why I didn't upload anything.
Spoiler For Format specifications:
-16 chararacter header string to identify it from the program : "(theta)HammerIDEprojXX" where XX is the version of the format.
-Executable name (9 bytes : up to 8 chars padded with zeros and a null terminator).
-Number of sections (1 byte)
-Each section will be listed with 11 bytes descriptors : 2 bytes for size, name (same as exec).
-Then will come the tokenized source in order of sections.
-When exported, it will be a single file so that libs and such can be referenced without importing their source in the project.
Hope you like it.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Sorunome on December 19, 2012, 08:43:16 pm
This is sounding cool!
What is the most recent version?
EDIT: Oh, does it also allow loading old axe programs you are already working on?
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on December 20, 2012, 04:25:06 am
Yes, it will allow importing regular source files. I didn't upload anything yet, though, because it isn't finished. Once the project manager is completely migrated, I'll post it.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Sorunome on December 20, 2012, 05:13:37 pm
Wow, cool, can't wait for it, I'll defenetley try it out!
What i'd like about it is that it uses the smaller font -> i can see mroe code at the same time :D
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: 133794m3r on December 20, 2012, 07:34:23 pm
I was trying the latest version that you've uploaded on the ti-84plus se, 2.43, and when I go to open the program, it just exits. I don't know why, but yeah. It's not working sadly. I can't wait to use it, since it sounds awesome.
Title: Re: [AXE for AXE] HammerIDE : about a 5000% coding efficiency increase !
Post by: Streetwalrus on December 21, 2012, 01:10:24 am
That's because that part wasn't done back then. ;) I'm close to finishing the manager though, then I'll make the editor, and after that the (de)tokenizer.
Edit : I changed the title to make it clear that it's a work in progress.
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Sorunome on December 21, 2012, 04:31:19 pm
I can't wait for it, I wanne download it NOW, lol
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: 133794m3r on December 21, 2012, 06:33:59 pm
Ah well, I can't wait for it to be done then! I'd love to be able to program faster on my calc(especially when I'm waiting around w/o a computer), sinec I found TokenIDE, on calc programming has gotten a tad bit too slow for my tastes.
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Hayleia on December 22, 2012, 01:30:22 am
Ah well, I can't wait for it to be done then! I'd love to be able to program faster on my calc(especially when I'm waiting around w/o a computer), sinec I found TokenIDE, on calc programming has gotten a tad bit too slow for my tastes.
Do you use zStart on your calc ? It has features that allow you to code a lot faster, like the label menu allowing you to jump to any label of your program when editing it, or the copy-paste feature ;)
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: TheNlightenedOne on February 07, 2013, 04:33:21 pm
Bump, any progress?
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Streetwalrus on February 25, 2013, 06:44:59 am
Not really, I've put it on hold because I'm working on an RPG (shh, it's a secret :P), but I may start working on it again soon, with a little different approach on the editor.
And maybe rewrite it from scratch if my code is too crappy. XD
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: willrandship on February 26, 2013, 06:22:45 am
Every rewrite brings improvement.
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Streetwalrus on February 26, 2013, 12:35:59 pm
I know, this is why I already rewrote it three times or so before posting it. :P
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Sorunome on February 26, 2013, 07:28:32 pm
yay/me wants the re-written version that doesn't exist yet now
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: TheNlightenedOne on March 08, 2013, 05:13:35 pm
bumpity bump bump
Title: Re: Re: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: DJ Omnimaga on March 08, 2013, 10:26:59 pm
Every rewrite brings improvement.
just as long as you don't enter an endless rewrite loop O.O (I saw projects die because 1 part was rewritten about 5 times in 3 years and the author eventually ran out of interest to finish the rest of the game.
Title: Re: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Streetwalrus on March 09, 2013, 01:13:25 pm
I think this'll be the last rewrite.
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Matrefeytontias on May 15, 2013, 03:38:11 pm
Bump,

Any progress since your last post ? Or did you drop it for something else ?
Title: Re: [WIP][AXE] HammerIDE for Axe : a good coding efficiency increase !
Post by: Streetwalrus on May 16, 2013, 12:37:37 pm
I still have plans for this, but I didn't start that rewrite I was speaking about (yet). I might pick it up during the summer vacation though, but for now I've got the Baccalauréat. ;)