SirCmpwn wrote:
I actually have a pretty extensive .NET library for mucking about with calculator files. It can create, read, and sign .8xp, .8xu, .8xk and .8xi. It can also convert an 8xi to a bitmap, which is nice 🙂
I should publish it at some point, it's d@mn useful.
You definitely should.
@Merth regarding SourceCoder communication: it would be neat if you could enter your Cemetech username and password and have it synchronize projects between the user's SourceCoder account and your Tokens program. We'll have to talk more about the API.
And here we are, the latest release. You can now open or directly type in programs. Some neat features:
* DCSB/Celtic III/xLib/LibArc functions, easy to add more (see screenshot, XML driven)
* Escaping tokens (in case you want "Disp " to be a five character string, instead of the 'Disp ' token, you would do "\Disp ", there are also escape characters, so '\\' becomes the '\' token, and '\~' becomes the '~' token, since '~' is used as negation)
* Line-by-line byte display
Right now, build only saves the file TEST.8xp as a program called "TEST", that's because this is still all testing stuff for the toolkit.
A lot of it is XML driven, so you can add things function/lib-wise, or adapt it for specific types of development (such as AXE). I'm including the schema in case you want to know how it's formatted.
Here's a screen shot:
Note the "DrawTileMap(" and "DrawSprite(" functions. Those can by typed straight in and run like that.
And the download link:
http://merthsoft.calcg.org/Tokens.zip
Please try and out and let me know how it works for you. It would be nice to know that there is actual interest in a product like this.
For the next step, I'll be switching gears to the map/sprite editors. You'll be able to make a sprite and insert it as hex or into a picture file. You'll be able to make maps and insert them as matrices into a program, or as strings. Basically, anything that has a specific format with these libs you'll be able to create and insert easily. As well as DCS GUI stuff.
This sounds epic! If you want to be super-ambitious, could you make a DCS GUI editor that's sorta WYSIWYG and can paste the TI-BASIC code of sum() commands directly in? Still, what you've done is already quite extremely impressive.
KermMartian wrote:
If you want to be super-ambitious, could you make a DCS GUI editor that's sorta WYSIWYG and can paste the TI-BASIC code of sum() commands directly in?
That's the goal!
merthsoft wrote:
KermMartian wrote:
If you want to be super-ambitious, could you make a DCS GUI editor that's sorta WYSIWYG and can paste the TI-BASIC code of sum() commands directly in?
That's the goal! Most excellent. 🙂 I'm looking forward to how you manage to pull that off.
Wow, from the looks of it this would work well for any token based lang, I could see .xml files for AXE, BBC Basic, the different flavors of TI-basic, etc all working fairly nicely with this. Nice work Merth!
TheStorm wrote:
Wow, from the looks of it this would work well for any token based lang, I could see .xml files for AXE, BBC Basic, the different flavors of TI-basic, etc all working fairly nicely with this. Nice work Merth!
Thanks! That's actually one of the reasons why I did it like I did. From the initial design that was basically the goal, and I made all the reading in recursive so that the xml could be as deep as required (some of the xLib commands are 5 levels deep in the tree).
merthsoft wrote:
TheStorm wrote:
Wow, from the looks of it this would work well for any token based lang, I could see .xml files for AXE, BBC Basic, the different flavors of TI-basic, etc all working fairly nicely with this. Nice work Merth!
Thanks! That's actually one of the reasons why I did it like I did. From the initial design that was basically the goal, and I made all the reading in recursive so that the xml could be as deep as required (some of the xLib commands are 5 levels deep in the tree). You did all this XML stuff with existing libraries though, right? You didn't have to write any custom stuff, other thanks MerthsTokenizer.xsl or whatever you chose to call it? 😁
KermMartian wrote:
merthsoft wrote:
TheStorm wrote:
Wow, from the looks of it this would work well for any token based lang, I could see .xml files for AXE, BBC Basic, the different flavors of TI-basic, etc all working fairly nicely with this. Nice work Merth!
Thanks! That's actually one of the reasons why I did it like I did. From the initial design that was basically the goal, and I made all the reading in recursive so that the xml could be as deep as required (some of the xLib commands are 5 levels deep in the tree). You did all this XML stuff with existing libraries though, right? You didn't have to write any custom stuff, other thanks MerthsTokenizer.xsl or whatever you chose to call it? 😁 As far as reading it in? Yeah, C# handles all that for you in a pretty simple manner. As far as getting the data into a manageable format, I use a custom-wrote Trie (for tokenizing), and the built-in Hastable (for detokenizing). I also use quite a few extension methods to help out with parsing the data.
Very nice, sir! I'll assume you mean a HashTable, but at any rate, keep up the good work. 🙂
KermMartian wrote:
Very nice, sir! I'll assume you mean a HashTable, but at any rate, keep up the good work. 🙂
System.Collections.Hashtable
Just like that. It's lowercase "t" in Java, too.
Sorry, Hashtable, but you had written Hastable. 😉 At any rate, any progress on this, or did I take up all your time dumping the Cemetech6mobile project on you? 😁
KermMartian wrote:
Sorry, Hashtable, but you had written Hastable. 😉 At any rate, any progress on this, or did I take up all your time dumping the Cemetech6mobile project on you? 😁
Oh a, yeah, Hashtable, not Hastable.
Anyways, yesterday I mostly just vegged out and didn't work on anything with this or cemetech6mobile. I think when I get home today I'll be messing with the website, and maybe a little of this. And tomorrow I don't have work, so hopefully I can do some work in the afternoon.
Sounds like a plan; I look forward to seeing what you're able to come up with on either project. 🙂
So I've started working on the sprite/hex editor. It allows you to create/edit/insert a hex sprite. So you can see here that I have a hex sprite highlighted:
And then when I hit Tools->Hex Sprite Editor, I get this:
So that's pretty slick. You can adjust the display options and stuff. You can also edit in that window, both at the pixel-level and the hex-level.
I'm not releasing this one yet for you guys to try, because there's still quite a bit I want to do to it, but that's the progress so far!
This example also does a pretty good job of showing off functions, we've got DetectDCS(, ClearScreen( (note the ',' after it because of the optional parameter), CloseGUIStack(, PushGUIStack(, and GUIMouse( all lookin' sweet
😁
That looks amazing, Merthsoft! I love the icon editor; I can see this being a very popular program.
*bump* Here's an idea for you, Merth. What if you can highlight tokens with special names, like the DCSB Lib, xLIB, Celtic, PicArc, Axe, and Omnicalc tokens, and open their online documentation, eg, the DCS wiki? Also, if you have some sort of list for each library where the user can choose functions, those could also link to documentation. Any thoughts?
KermMartian wrote:
*bump* Here's an idea for you, Merth. What if you can highlight tokens with special names, like the DCSB Lib, xLIB, Celtic, PicArc, Axe, and Omnicalc tokens, and open their online documentation, eg, the DCS wiki? Also, if you have some sort of list for each library where the user can choose functions, those could also link to documentation. Any thoughts?
I was planing on having the documentation (or at least the argument list) be part of it, maybe somewhere in the xml or something. Ideally, there would be something like intellisense, so it tells you which argument you're on and all that. That's further down the line, though. At the very least it'll have what you said.
I agree documentation in the XML, but what about a link to live (frequently-updated, online) documentation in the XML as well?
merthsoft wrote:
KermMartian wrote:
Very nice, sir! I'll assume you mean a HashTable, but at any rate, keep up the good work. 🙂
System.Collections.Hashtable
Just like that. It's lowercase "t" in Java, too. Yikes, .NET 1.x? 😉 We've had generic dictionaries since .NET 2.0. (Dictionary<TKey, TValue>). Looking good, though!