Omnimaga

Calculator Community => Major Community Projects => The Axe Parser Project => Topic started by: Quigibo on April 10, 2010, 03:08:20 am

Title: The Axe Pages
Post by: Quigibo on April 10, 2010, 03:08:20 am
The time has come!  Yes, I need to actually start making a manual and/or tutorial for how to use Axe Parser.  I need at least a small one so I can release the beta next week or else new coders will have no clue how it works and this subforum is getting way too large to find that type of information.  I'd like to have a very clean format.  HTML is okay, but I'd really prefer a pdf instead so I can have more control with the formatting and it just looks nicer in general.  So does anyone know a good free program that can do the job?  Or if someone is really good with this kind of stuff and would be willing to put the articles together, that would be great too.

Which brings me to my next point.  I think I'll need a lot of help writing this since there's already over 100 commands and I'd like to eventually have a little paragraph about each one with an example or two.  If you're already experienced with the language and you have a little time to volunteer, let me know so I can put this together this week.  Even if you aren't an Axe expert, you can still help with formatting, reviewing, and writing the general stuff.  And yes, everyone that helps gets credited.

I'm not actually going to start writing this until after the next update which should be tomorrow, but I just want to see who can help.  I'll get everyone's email via PM and partition the load depending on the situation.

This community has already helped with the project enormously with all your feedback and motivation for me to continue at this pace.  Thanks so much!  ;D
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 10, 2010, 03:21:06 am
I think Open Office or Abiword had tools to create PDFs, but I personally am unsure if they are reliable. I know TsukasaZX was working on a PDF based newsletter a while ago (I wonder what happened to it x.x) so maybe he could do it.

It would be nice to have each commands (or at least, the complex ones) be documented more, too. What I think, however, is that the old doc should be kept too. TL;DR people might be scared at the large one so they might like a small format doc too. Examples might be cool too. I don't think it really needs a very complex formatting, though. A PDF can get pretty large if it contains too many images.

I also agree that this sub-forum grew pretty fast. I think eventually it will almost require its own entire set of subforums o.o.

And glad we could help :)
Title: Re: The Axe Pages
Post by: meishe91 on April 10, 2010, 03:43:56 am
I can basically do any part of helping with this, and would really like to. The only things I can't really help with is creating example codes and explanations for the codes and I wouldn't be able to do things relating to the code. But I can proofread, expand, edit, etc. everything others write and I can organize everything. I can also most likely put it into a PDF file. If I start working with Axe soon and get the hang of it and what the commands are I can then start helping with the things I said I couldn't. But would love to help anyway I can :)
Title: Re: The Axe Pages
Post by: Silver Shadow on April 10, 2010, 04:21:45 am
I recommend using OpenOffice for PDFs. I can't help with anything at the moment though, I have to finish my CD beta before the end of Easter Holidays, and I still have lots of things to add to it.
Title: Re: The Axe Pages
Post by: Raylin on April 10, 2010, 09:50:28 am
I'm up for it.
Just tell me what to do.
:)
Title: Re: The Axe Pages
Post by: SirCmpwn on April 10, 2010, 10:10:05 am
I use Word for PDFs, but it's not free.  If you guys want to create your stuff in various formats (doc, docx, odt, ect), then I can put them all together into a PDF.
Also, I feel compeltely comfortable with Axe if you want me to help write some stuff.
Title: Re: The Axe Pages
Post by: _player1537 on April 10, 2010, 01:48:26 pm
I would love to help, I understand the syntax pretty well so I could do documentation on them.
Title: Re: The Axe Pages
Post by: mapar007 on April 10, 2010, 01:49:27 pm
I think Open Office or Abiword had tools to create PDFs, but I personally am unsure if they are reliable. I know TsukasaZX was working on a PDF based newsletter a while ago (I wonder what happened to it x.x) so maybe he could do it.


OpenOffice PDF generator has worked for me in the past, even with weird math formulas in them :P
Title: Re: The Axe Pages
Post by: Builderboy on April 10, 2010, 01:52:31 pm
Mmmmm i don't know if i am familiar with Axe syntax enough to be of any help... X.X



;)
Title: Re: The Axe Pages
Post by: SirCmpwn on April 10, 2010, 01:53:27 pm
lol ;D
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 10, 2010, 02:05:16 pm
lolz :P
/me slaps Builderboy around a bit with a large trout.
Title: Re: The Axe Pages
Post by: ACagliano on April 11, 2010, 12:33:31 am
I can help in the writing of it. At least the simpler commands, or an intro perhaps. Just let me know.
Title: Re: The Axe Pages
Post by: Quigibo on April 13, 2010, 04:08:30 pm
Okay, I downloaded openoffice and I think I get the hang of it.  I'll post a list of articles that need to be written.  Don't feel pressured to write something you don't want to becasue I'm going to be writing whatevers left over anyway.  And I'll be rewriting or rewording the articles to make them transition between each section better so don't worry about that, its the core content that's most important.

If you want to do one, post your request here.  First post first pick to avoid duplicates:


Plus there are the Individual commands.  Each one should have 1 or 2 examples and a short paragraph sized explanation.  Some commands might need more or less though depending on how complicated they are.  I'll put the list of done commands right after this:

N/A

I have to write the "Using the parser" one becasue its changing next version with new options like shell support.  When you finish one, just upload it here as an attachment.
Title: Re: The Axe Pages
Post by: SirCmpwn on April 13, 2010, 05:20:42 pm
I can do the simple game tutorial.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 13, 2010, 05:43:20 pm
People could actually use parts of my news article regarding Axe Parser for the description, altough some stuff might need to be changed if not accurate, since Axe got updated a lot since then. Some grammar mistakes in my description could be done too, if any.
Title: Re: The Axe Pages
Post by: meishe91 on April 13, 2010, 05:57:28 pm
Well until I learn some more about Axe all I could do is do edits of what others write (and such) and I could re-list the commands with more descriptions and like a sample syntax maybe, if you want something like that. Hope I can help some other way soon too.
Title: Re: The Axe Pages
Post by: Quigibo on April 15, 2010, 07:04:50 pm
I made a template for the user's guide using my own graphics and style.  It looks pretty good I think so far.  I attached a sample of it.

Anyone else want to write an article?
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 15, 2010, 07:09:30 pm
Wow I like the title page. Me thinks that for the on-calc title screen, the logo should probably be similar to the Axe parser text in the pdf. For the rest, I like it too, altough I would maybe reduce the table of content text, page text and the top text size a little bit (ATM it would be pretty great if for example it was for a small instruction booklet, but on the PC, people who print this will most likely print each page so they take one sheet of paper each, meaning the text doesn't really need to be as big to be easy to read.
Title: Re: The Axe Pages
Post by: meishe91 on April 15, 2010, 07:34:01 pm
That looks really cool.
Title: Re: The Axe Pages
Post by: Quigibo on April 16, 2010, 03:44:21 am
Has anyone used BBC Basic?  I'm doing a comparison between the languages.  What is it usually used for?  Same with xLib/Celtic.  Are they normally targeted for game development or do most people use them for other things.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 16, 2010, 04:17:26 am
BBC Basic is mostly aimed toward game dev. It is meant as an alternative to BASIC and ASM that is easier than ASM but faster than BASIC. Certain commands are slower but other stuff is much faster. I never used it much, though, but I know Builderboy did. Here are some games that were alerady made with it: http://www.ticalc.org/pub/83plus/bbcbasic/

It's interpreted, btw. The good things I hear about it are that the language is not too hard to learn and is fast, but that the inline programming editor is a major hassle to use. Basically, you may be best at using the PC editor included, which is more user-friendly, than the on-calc one. I do not think the language is as fast as Axe Parser since BBC Basic is not compiled, but it's still quite fast. It's also finished, IIRC. This review pretty much sums it up. http://www.ticalc.org/archives/files/fileinfo/416/41608.html

For xLIB/Celtic, you can do a lot of stuff you could do in ASM, except much slower. Both are mainly aimed toward game development, but Celtic III can also be used for file management (or even basic shells). Both are ASM libs used to add new functions to BASIC programs.
Title: Re: The Axe Pages
Post by: Quigibo on April 18, 2010, 12:27:19 pm
I'll just update everyone on the status of the Axe Pages.

I've finished writing most of the articles.  There are still a lot of gaps, and the tutorial already assumes you know BASIC, but I think I've covered all of the more complicated stuff.  Another thing I won't have time for in this build is the detailed command list.  For now, you'll just have to use the old list.

I'm pretty sure I'm still on track to release tonight.
Title: Re: The Axe Pages
Post by: SirCmpwn on April 18, 2010, 12:35:43 pm
the tutorial already assumes you know BASIC
^sounds like you already wrote a tutorial
Would you still like me to write a tutorial/sample program article like you asked before?
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 18, 2010, 12:38:50 pm
I understand. Detailled command list will take a while because most will require examples with static screenshots (for visual people) of before and after running a code example using the command. As long as the current list is included it should be fine. Also I recommend continuing including the current command list even after the large one will be done, for both people who cannot install any PDF viewer and for tl;dr people.

Don't bother about explaining TI-BASIC stuff in details. Just specify in the tutorial that it's recommended that you know how TI-BASIC commands and boolean logic works, and explain the differences (alerady done for the most part in text files, right?). From what I saw in your available commands, it appears that just the TI-83 Plus guidebook would be enough, and anyone who have the 82 or 83 guidebook instead should be quickly familiar with Axe Parser too, since the languages are similar.
Title: Re: The Axe Pages
Post by: Hot_Dog on April 18, 2010, 01:15:48 pm
If, in the future, you need to create pdfs for more than just documents, there's some free pdf printers out there...meaning you "print a file" and it is saved to a pdf.  For instance, the one I use is called "Bullzip", and I can't even begin to tell you how reliable it is.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 18, 2010, 02:45:55 pm
I never heard of that one. I always used OpenOffice PDF converter. However, in some cases, the image locations were altered or there were some missing ones. But again, when I tried it was a MS Word 97 doc opened in OOo 2.x then converted to PDF so it was at risk to screw up.

In the days where I still went to college we used a very reliable program to do this on Mac Os that used a "print to pdf" option but I totally forgot how it's called.
Title: Re: The Axe Pages
Post by: Quigibo on April 18, 2010, 05:59:55 pm
the tutorial already assumes you know BASIC
^sounds like you already wrote a tutorial
Would you still like me to write a tutorial/sample program article like you asked before?
I was about to, but I haven't actually yet.  If you think you can finish it soon today, then go ahead, if not, I'll be able to handle it.
Title: Re: The Axe Pages
Post by: SirCmpwn on April 18, 2010, 06:02:31 pm
Probably not gonna happen today.  Go for it.
Title: Re: The Axe Pages
Post by: kalan_vod on April 18, 2010, 07:39:22 pm
I never heard of that one. I always used OpenOffice PDF converter. However, in some cases, the image locations were altered or there were some missing ones. But again, when I tried it was a MS Word 97 doc opened in OOo 2.x then converted to PDF so it was at risk to screw up.

In the days where I still went to college we used a very reliable program to do this on Mac Os that used a "print to pdf" option but I totally forgot how it's called.

CutePDF (http://download.cnet.com/CutePDF-Printer/3000-6675_4-10220039.html) does this very well
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 18, 2010, 08:22:46 pm
Thanks ^^

I like PDF format because Adobe Reader, which is free, is easy to find, unlike MS Word viewer (also free but hard to find) and the format is more compatible accross versions. I can open most 2010 PDFs with a 2003 version of Adobe Acrobat Reader. I'll just get warned that some functionalities will be missing. With Word, compatibility is broken every version.

HTML is great too but it's much more tedious to edit
Title: Re: The Axe Pages
Post by: lafferjm on April 19, 2010, 05:36:00 pm
I hate to be the bearer of bad news, but I noticed some errors which I will point out later.  Also, not so bad but kinda funny, the pong program in the included examples is fun to play but it needs to be slowed down a bit :)
Title: Re: The Axe Pages
Post by: Quigibo on April 19, 2010, 10:19:47 pm
Yeah, the doc probably has some errors, I rushed through it.  What did you find exactly?  Grammar error?  Spelling?  Broken source snippets?  Hopefully not misinformation...
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 19, 2010, 11:37:02 pm
Maybe the 65536 bytes of RAM part? (The 83+ calc has 32 KB of RAM, 24 for the user)
Title: Re: The Axe Pages
Post by: Quigibo on April 19, 2010, 11:46:35 pm
I think you're mistaken.  The 83+/84+ calculators all have 64KB of RAM.  In fact some of them even have extra ram pages that extend the ram up to 128KB.  By default, 64KB is available for reading and 32KB can be used for writing, but there are ways in assembly to extend read and write to the entire ram as well as most of the rom.

Edit: I think some people might consider the being able to read and write continuously to be what separates what is called "ram" and "rom" but I consider it ram since its partially accessible without needing to switch pages.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 19, 2010, 11:53:40 pm
Well, why do I hear everywhere that the TI-83 Plus has a 32 KB RAM chip? I know the 83+SE has 128 KB RAM chip, the old 84+ 128 KB and the newer ones 48 KB chip combo, but I always heard that the 83/83+ had a 32 KB one. You will have to confirm this with Calc84maniac and BrandonW, though. Since they do not read forum threads often, you will have to PM them, though.

I have serious doubts Datamath, which is an online calc museum, would put erroneous info about most popular TI calcs, though:

http://datamath.org/Graphing/TI-83PLUS.htm

Quote
The hardware of the TI-83 Plus is similar to a lot of other products: An 8-bit microprocessor of the Z80 family, a huge Flash-ROM of 512k Byte capacity, a RAM of 32k Byte size and a driver for the LCD display. You'll find similar architectures with just another balance of RAM and ROM capacity:

If you are really certain you are right that the 83 Plus has 64 KB of RAM, then you will need to e-mail Datamath that they did errors and fix Wikipedia. http://en.wikipedia.org/wiki/TI-83_series
Title: Re: The Axe Pages
Post by: calc84maniac on April 20, 2010, 12:33:18 am
Edit: I think some people might consider the being able to read and write continuously to be what separates what is called "ram" and "rom" but I consider it ram since its partially accessible without needing to switch pages.
Yeah, I think the problem is that we aren't talking about the same thing here.
Title: Re: The Axe Pages
Post by: lafferjm on April 20, 2010, 08:48:07 am
Yeah, the doc probably has some errors, I rushed through it.  What did you find exactly?  Grammar error?  Spelling?  Broken source snippets?  Hopefully not misinformation...

Im still working on listing them, but most of the errors had to do with the pong game.  I noticed for instance that you stored both pong and score to string1 but later on tried to display string1 and 2.  Just little things like that.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 22, 2010, 04:49:15 pm
Some people including Calc84maniac and SirCmpwn confirmed that the 83+ effectively has 32 KB of RAM, so I guess I was right. However, I am curious, if the calc has 65536 bytes of memory addresses like this, would the second half be archive memory? Would it be problematic if we tried to write stuff there?
Title: Re: The Axe Pages
Post by: calc84maniac on April 22, 2010, 05:40:41 pm
Some people including Calc84maniac and SirCmpwn confirmed that the 83+ effectively has 32 KB of RAM, so I guess I was right. However, I am curious, if the calc has 65536 bytes of memory addresses like this, would the second half be archive memory? Would it be problematic if we tried to write stuff there?
Yeah, these others are usually used for archive. Accidental writing shouldn't be a problem, unless you HAPPEN to have flash writing unlocked and HAPPEN to write one of the command codes for flash write/erase (very unlikely, especially because we have to do carefully planned hacks to even unlock flash in the first place)
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 22, 2010, 05:47:58 pm
i am confused at the later part x.x

But I guess it doesn't matter much really since I remember Flash unlocking was something only BrandonW did  (if he did it at all) x.x
Title: Re: The Axe Pages
Post by: calc84maniac on April 22, 2010, 11:42:17 pm
Well, what I am saying is that most attempted writes to archive memory are simply ignored. The only time it would have any effect is if you unlock flash and then do specific commands to the flash controller. This will never happen during normal ASM/Axe use unless you are trying very hard to do it.
Title: Re: The Axe Pages
Post by: Builderboy on April 23, 2010, 12:01:22 am
Whys is flash protected so?  Why is it made so hard to unlock if it is a supposedly closed system?  Like there arnt any malicious viruses flying around :P
Title: Re: The Axe Pages
Post by: calc84maniac on April 23, 2010, 12:14:25 am
Whys is flash protected so?  Why is it made so hard to unlock if it is a supposedly closed system?  Like there arnt any malicious viruses flying around :P
Well, it is not hard for the OS to unlock it, since it has permission. It's quite hard to do it by accident, though. For our programs to unlock flash, we have to hack into the TI-OS code that unlocks it, which is the hard part.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 23, 2010, 12:34:07 am
Well, what I am saying is that most attempted writes to archive memory are simply ignored. The only time it would have any effect is if you unlock flash and then do specific commands to the flash controller. This will never happen during normal ASM/Axe use unless you are trying very hard to do it.
aaaah ok I see.
Title: Re: The Axe Pages
Post by: meishe91 on April 23, 2010, 12:40:34 am
What exactly is the flash and such?
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 23, 2010, 01:21:44 am
archive
Title: Re: The Axe Pages
Post by: meishe91 on April 23, 2010, 01:30:27 am
Ah, ok.
Title: Re: The Axe Pages
Post by: Runer112 on April 25, 2010, 12:56:20 pm
An error on page 13 in case it hasn't been found yet. I'm sure you'll see it:

Quote
Next step is to define all our data. There will be 2 strings and 2 sprites:

:“PONG”→Str1
:“SCORE:”→Str1
:[000000000000FFFF]→Pic1
:[0000182C3C180000]→Pic1    
Our Title
For the score
The paddle
The ball
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 25, 2010, 01:17:09 pm
Wouldn't “SCORE:”→Str1 overwrite “PONG” and [0000182C3C180000]→Pic1  overwrite [000000000000FFFF]?
Title: Re: The Axe Pages
Post by: Builderboy on April 25, 2010, 01:20:55 pm
Yep i think thats the error he is talking about

* Runs off to try the pong program and see if there are any more bugs :O *
Title: Re: The Axe Pages
Post by: ztrumpet on April 25, 2010, 01:23:13 pm
I think that's an error too, but it does this (I think):

At the end of the program data looks like this:
“PONG”“SCORE:”[000000000000FFFF][0000182C3C180000]
However, the pointers are wrong, as Str1 points to "SCORE:" and Pic1 points to [0000182C3C180000].
The other two values are "lost", right? :)
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 25, 2010, 01:34:21 pm
wouldn't it be “PONG”“SCORE:”[000000000000FFFF][0000182C3C180000]?
Title: Re: The Axe Pages
Post by: ztrumpet on April 25, 2010, 01:37:10 pm
Sorry, I changed my oops. ;D
Thanks for noticing DJ! :D
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 25, 2010, 01:46:42 pm
no problem

Btw it must just be a typo, because I checked the AXEPONG.8xp example file in Wabbitemu and here's the data code:

Code: [Select]
:“PONG”→Str1
:“SCORE:”→Str2
:[000000000000FFFF]→Pic1
:[0000182C3C180000]→Pic2

Otherwise, if you tried compiling the program from the code in the doc, you would get a Err Duplicate error.

EDIT: I am not sure if the following is an error, though. I used the program file from examples folder. Is the ball supposed to bounce back in random direction when it hits the top of screen?
Title: Re: The Axe Pages
Post by: Quigibo on April 25, 2010, 02:32:43 pm
Yeah, I fixed that already.  Another thing I noticed is that I refer to  an "Error Table" for error messages, but I forgot to write that.  :-[
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 25, 2010, 02:34:41 pm
Oh lol I didn't pay attention to that one so I kinda didn't notice either x.x

Now that you mention it, though, on the title page, there's the "Special Thanks" part that is empty
Title: Re: The Axe Pages
Post by: Quigibo on April 25, 2010, 02:37:30 pm
WOW how did I miss that... I forgot I moved it to the end, thanks.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 25, 2010, 02:43:25 pm
No problem ^^
Title: Re: The Axe Pages
Post by: Runer112 on April 25, 2010, 03:19:38 pm
What happened here? :o
I point out a small typo in the documentation and that sets off a whole chain of fixing errors?
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 25, 2010, 11:01:13 pm
Oh lol doN,t worry, sometimes errors can go unnoticed and be discovered all at once after one or two are discovered :P

EDIT: Also minor typo discovered in the command index for EXP1//EXP2: "negitive" :P
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 26, 2010, 02:02:00 pm
In addition to the typo reported in my previous post, I would have a suggestion for next release: add the keycode table either in the command index or the doc.
Title: Re: The Axe Pages
Post by: Runer112 on April 26, 2010, 03:06:46 pm
In addition to the typo reported in my previous post, I would have a suggestion for next release: add the keycode table either in the command index or the doc.

I would appreciate this very much, as I've only programmed in pure BASIC before and I need to keep finding the keycode layout somewhere each time I want to detect a new key.
Title: Re: The Axe Pages
Post by: meishe91 on April 26, 2010, 04:32:03 pm
Well to make that easier I think TIBD has a image that you could just save onto your computer. (I don't know if the topic here is an image of it or typed up.)
Title: Re: The Axe Pages
Post by: Quigibo on April 26, 2010, 05:54:57 pm
Use this for now, I'll put a copy of it in the next update, which might be tonight since I think I may have a serious bug that needs fixing.  Nothing new in the update and not a separate version, just a fix to the previous.
(http://tibasicdev.wdfiles.com/local--files/key-codes/xlib-keys.png)

The numbering actually kind of makes sense in hexadecimal, but in base 10, the numbering system seems kind of random.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 26, 2010, 10:52:43 pm
Can 41 can be used?
Title: Re: The Axe Pages
Post by: meishe91 on April 26, 2010, 11:27:26 pm
I don't see why not since it is getting turned into Assembly and assembly can use it (I believe?).
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 26, 2010, 11:39:38 pm
Well I remember reading somwehre ON was not supported in Axe yet, but that he may add support soon. Maybe he added it and I missed it?
Title: Re: The Axe Pages
Post by: Quigibo on April 26, 2010, 11:54:29 pm
No, its not there yet.  I completely forgot about it.  Maybe next version, I'll add it to the list.
Title: Re: The Axe Pages
Post by: meishe91 on April 27, 2010, 12:08:02 am
Oh ok, my bad. Forget what I said then :P
Title: Re: The Axe Pages
Post by: calcdude84se on April 27, 2010, 06:30:50 pm
Yeah, the ON key is special... Generates an interrupt rather than being able to be read from the keyboard...
Title: Re: The Axe Pages
Post by: meishe91 on April 27, 2010, 07:27:20 pm
Just curious, but if the [ON] key hasn't been supported then does it just do nothing or does it interrupt the program (like in BASIC)?
Title: Re: The Axe Pages
Post by: SirCmpwn on April 27, 2010, 07:32:48 pm
Interrupt being a hardware interrupt, one that will not stop program execution (not for long, at least).  Don't worry.
In MirageOS it might interrupt the program, but it won't quit.
Title: Re: The Axe Pages
Post by: meishe91 on April 27, 2010, 07:37:23 pm
Ah ok, just confused me since people used to say they couldn't exit because they forgot to implement that in the code. Thanks for explaining.
Title: Re: The Axe Pages
Post by: SirCmpwn on April 27, 2010, 07:43:48 pm
Sure thing.  What a hardware interrupt does is stop executing code, move the program pointer elsewhere, and execute from there.  Then, when that code finishes, it moves back to the original code.  Kind of like multithreading.
Title: Re: The Axe Pages
Post by: meishe91 on April 27, 2010, 08:06:58 pm
Ah ok. Thanks.
Title: Re: The Axe Pages
Post by: calcdude84se on April 27, 2010, 08:12:53 pm
Call it multi-threading if you will, but it sucks as that. More like something that allows you to run small amounts of code in the background
Title: Re: The Axe Pages
Post by: SirCmpwn on April 27, 2010, 08:19:05 pm
Yeah, that's a better description.  The right word to describe it escaped me.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 27, 2010, 11:35:18 pm
Btw, when running an Axe game, try pressing ON repeatdely. Notice the tiny pauses when pressing the key x.x

I even noticed that in ASM games ran with the Asm() command
Title: Re: The Axe Pages
Post by: calcdude84se on April 28, 2010, 07:32:07 am
The OS itself does that too... It will happen anywhere, in any program, unless the ON interrupt is disabled or the calc is set to IM2 (maybe).
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 28, 2010, 09:42:30 am
There's also something I discovered in TI-BASIC:

When you use ASM programs to disable the ON button in a BASIC game, using certain programs like CODEX afterward may crash the calc. And during archiving/unarchiving process, if the busy indicator was turned OFF it will be turned back ON. Idk if the latter happens with Axe, though
Title: Re: The Axe Pages
Post by: titane666 on April 28, 2010, 12:59:47 pm
I found out (too late) that I coded a infinite loop without the possibility to quit.
what should have I done?
I mean, is there any kind of key combination to force an asm program to quit or something like the BASIC [on].
I had to upgrade the os to quit. (I have an nspire)
and to restore my data's.
If someone know anything, thank to help.
Title: Re: The Axe Pages
Post by: Quigibo on April 28, 2010, 02:00:09 pm
Unfortunately, assembly doesn't allow you this option without some special interrupt code.  I may be adding a safety feature eventually that allows you to test in a "debug mode" which adds the interrupt code to the source to allow [ON] breaks.  Even though it makes the executable larger and slower, it would really just be for testing anyway.

I'm not sure how the NSpire handles 84+ emulation, but I've heard its not the greatest when it comes to things like this.
Title: Re: The Axe Pages
Post by: Silver Shadow on April 28, 2010, 02:32:35 pm
Instead of updating the OS every time this happens, just press the reset button located on the back of the Nspire. This might be helpful. :P
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 28, 2010, 03:14:17 pm
Unfortunately, assembly doesn't allow you this option without some special interrupt code.  I may be adding a safety feature eventually that allows you to test in a "debug mode" which adds the interrupt code to the source to allow [ON] breaks.  Even though it makes the executable larger and slower, it would really just be for testing anyway.

I'm not sure how the NSpire handles 84+ emulation, but I've heard its not the greatest when it comes to things like this.
Mostly the undocumented z80 instructions will fail
Title: Re: The Axe Pages
Post by: Galandros on April 28, 2010, 03:50:03 pm
Quigibo, the On interrupt can be easily disabled with a write to a port.
Seeing the WikiTI documentation, I coded this routines. They are experimental, no test was made by me.

disableOnInterrupts:
 in a,(3)
 and %11111110   ; Bit 0: Set 1 to enable the ON key. Set 0 acknowledge the interrupt request and/or to disable it.
 out (3),a
 ret

defaultInterruptTIOS:
;For normal operation, write 0B (00001011) to this port. This will allow the first timer to generate interrupts, and the on key.
 ld a,$0B
 out (3),a
 ret
Title: Re: The Axe Pages
Post by: calcdude84se on April 28, 2010, 04:43:08 pm
Would it really make the code that much larger? It's probably on the order of ~100 bytes, if even, and it only needs set up; the code doesn't need stuff inserted w/in it.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 28, 2010, 05:01:43 pm
Mhmm I seriously doubt this would increase the code size for executables that much. Maybe a bit for the APP but that doesn,t matter much.
Title: Re: The Axe Pages
Post by: Galandros on April 28, 2010, 05:31:36 pm
My code only disables the On interrupt and later restores it. I hope it works and stops the On slow down. The code does not install custom interrupts...

It is only 10 bytes. (the 2 ret's can be omitted if you run the code forwardly instead of using as a function call'ed)

In z80 assembly, the instructions (a instruction correspond to 1 line of source code, normally) take 1 to 4 bytes.

EDIT2: Oh, I got it. The On Break is really useful to prevent endless loops and a RAM Clear. That is a important feature in debug even if for 100 bytes because it is quite common to get in a endless loop.
Title: Re: The Axe Pages
Post by: calcdude84se on April 28, 2010, 05:33:15 pm
Maybe a coupled hundred bytes then? But it still wouldn't be that large, and could be useful.
Do you like RAM resets? of course not. :)
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 28, 2010, 05:35:29 pm
Nah I hate them D:

I am used to grouping my stuff everytime befiore testing, it's not too long, but sometimes we forget or test in a hurry and them BAM! Endless loop/crashes x.x

I did that since the days I've been using xLIB, because I got crashes with it too
Title: Re: The Axe Pages
Post by: Quigibo on April 28, 2010, 06:07:13 pm
Its not just enabling and disabling the [ON] interrupt, you also have to set up a vector table in RAM for the interrupt as well as some code to handle the interrupt.  Not only that, but I also have to save the state of the stack and then restore it when the interrupt is called otherwise, it will never break out of the code when you're in a subroutine.  I'm sure it wold be at least 100 bytes and in addition it would have to use about 300 bytes of free ram that would no longer be available for the programmer.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 28, 2010, 07:11:59 pm
ouch that sounds more complicated than I thought x.x

I would just make this as debugging feature and still allow the programmer to keep ON disabled if he wants too
Title: Re: The Axe Pages
Post by: _player1537 on April 28, 2010, 07:16:29 pm
actually, I'd be fine with that.  It would be quite helpful with a program I am writing where I need to do the same thing every few seconds.  Good luck with making it (if you do)
Title: Re: The Axe Pages
Post by: meishe91 on April 28, 2010, 10:48:52 pm
So I just read it all through (just once right now) and I only saw one thing that would be a mistake. In the program where you display twenty smilies there is no DispGraph to update the screen. I don't know if you meant that but only thing I saw right now.
Title: Re: The Axe Pages
Post by: Quigibo on April 28, 2010, 10:55:57 pm
Thanks!  Fixed.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 29, 2010, 08:08:05 pm
Question about the Auto Optimization text file:

For example, when you say "*VAR            7 + sub", what does the "sub" part means?

You may want to explain it in the legend at the bottom of text file.
Title: Re: The Axe Pages
Post by: Quigibo on April 29, 2010, 11:19:00 pm
It means that in addition to the bytes required for the command, there is also a subroutine that has to be added to the program.  The subroutines are shared though, so if you make 10 divisions by unoptimized constants in your code, and the division routine is 20 bytes (I don't know what it actually is offhand), then the amount of size it would take up would be 10*6 + 20 since every call uses 6 bytes and the subroutine itself is 20.

I've actually already updated that for the next version since I had so many optimizations to add to the list.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on April 29, 2010, 11:37:21 pm
OOoh thanks for clarifying :)
Title: Re: The Axe Pages
Post by: DJ Omnimaga on May 25, 2010, 01:41:29 am
Just pointing out: The keycodes image from Axe 0.2.4 download is missing from Axe 0.2.5 zip file.
Title: Re: The Axe Pages
Post by: Runer112 on May 30, 2010, 02:23:12 pm
In the command list, "UnArchive" is incorrectly capitalized as "Unarchive"
Title: Re: The Axe Pages
Post by: cooliojazz on June 08, 2010, 01:31:16 pm
Small thing: "Returns the variable. Uppercase A through Z are variables." What about theta? O_o
Title: Re: The Axe Pages
Post by: DJ Omnimaga on June 08, 2010, 01:48:54 pm
I don't remember if he added Theta support yet. I swear he did in one update but I forgot.

Suggestions:
-It would be nice to warn users that there is a 8811 bytes limit on executable excluding data in the doc, so people won't go overboard on game size and watch out.
-Also, since not everyone who download Axe Parser on ticalc.org might check Omnimaga, it might be a good idea to add a changes.txt file with next Axe releases, listing all changes made accross all versions of Axe Parser, so people can keep track easier of what's added, changed, and so on.
Title: Re: The Axe Pages
Post by: cooliojazz on June 08, 2010, 02:25:29 pm
He did; I've used it in most of my programs as the file pointer... =P
Title: Re: The Axe Pages
Post by: DJ Omnimaga on June 08, 2010, 03:00:57 pm
Aaah ok ^^
Title: Re: The Axe Pages
Post by: Deep Toaster on January 29, 2011, 11:29:02 am
Epic necro, but just noticed the documentation says

Quote from: Axe documentation.pdf
What is RAM?  You probably know its just a bunch of memory, 65536 bytes of it to be exact on the TI-83/84.

Probably not too important, but I think that's a good place to tell the reader he only has $8000 and above to work with.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on January 30, 2011, 04:29:04 am
Also does the calc really have 65536 bytes of RAM? I always thought the regular 83+ had 32768, so maybe it would be good to specify what part of that 32768 is the RAM.
Title: Re: The Axe Pages
Post by: JosJuice on January 30, 2011, 04:33:07 am
Also does the calc really have 65536 bytes of RAM? I always thought the regular 83+ had 32768, so maybe it would be good to specify what part of that 32768 is the RAM.
It has 65536 bytes of addressable memory locations. Different pages of RAM and ROM are swapped into those readable 65536 bytes when required. The total amount of RAM can be completely different.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on January 30, 2011, 04:37:32 am
I see. Thanks for clarifying. :)
Title: Re: The Axe Pages
Post by: Deep Toaster on January 30, 2011, 11:34:53 am
Also does the calc really have 65536 bytes of RAM? I always thought the regular 83+ had 32768, so maybe it would be good to specify what part of that 32768 is the RAM.

There are 65536 addressable bytes, but only 32768 of them are used for RAM ($8000-$FFFF). Even if you're on an SE and switched in other RAM pages there, RAM can still be only from $8000 to $FFFF (everything else is used for the flash). That's my suggestion in my earlier post :)
Title: Re: The Axe Pages
Post by: DJ Omnimaga on January 31, 2011, 12:49:48 am
I see. Thanks for the info. :)
Title: Re: The Axe Pages
Post by: Builderboy on January 31, 2011, 01:06:49 am
Also does the calc really have 65536 bytes of RAM? I always thought the regular 83+ had 32768, so maybe it would be good to specify what part of that 32768 is the RAM.

There are 65536 addressable bytes, but only 32768 of them are used for RAM ($8000-$FFFF). Even if you're on an SE and switched in other RAM pages there, RAM can still be only from $8000 to $FFFF (everything else is used for the flash). That's my suggestion in my earlier post :)

Correct me if I am wrong, but can't the addresses from $0 - $8000 be mapped to Ram as well? Perhaps through ports?
Title: Re: The Axe Pages
Post by: Deep Toaster on January 31, 2011, 10:38:10 am
$4000-$7FFF can be mapped to either a flash page or a RAM page, same with $8000-$BFFF, but (I think) everything under $8000 is usually used for flash. $0000-$3FFF is always ROM page 0 and $C000-$FFFF is always RAM page 0.

Not completely sure, though. Someone correct me :D
Title: Re: The Axe Pages
Post by: JosJuice on January 31, 2011, 11:18:27 am
$4000-$7FFF can be mapped to either a flash page or a RAM page, same with $8000-$BFFF, but (I think) everything under $8000 is usually used for flash. $0000-$3FFF is always ROM page 0 and $C000-$FFFF is always RAM page 0.

Not completely sure, though. Someone correct me :D
That's the normal usage. I believe it's possible to map pages slightly differently if needed, but it's usually not needed... And some of the stranger re-mappings don't work on the TI-83+ BE, so using them would break compatibility.
Title: Re: The Axe Pages
Post by: calcdude84se on February 01, 2011, 09:55:06 pm
On others besides the 83+BE, port $05 will map RAM pages only to the $C000-$FFFF range.
(Port $06 controls $4000-$7FFF and $07 $8000-$BFFF, btw)
Title: Re: The Axe Pages
Post by: Deep Toaster on April 29, 2011, 07:49:30 pm
Necro.

Just found out MD5Buffer (which Axe uses for nearly everything) is actually part of tempSwapArea (L4, which I use for everything). That created a whole host of bugs that haunted me for a month x.x

Can the command index be changed so tempSwapArea is listed as 256 bytes instead of 323? That's the real number of bytes we're allowed to use.
Title: Re: The Axe Pages
Post by: DJ Omnimaga on May 08, 2012, 03:52:39 pm
Question: WIth the arrival of Grammer, wouldn't it be best to also include it in the Axe language comparison list of the manual to compare with Axe? It got a bit more popular over the last year so I thought it would make sense for people to compare. I know for instance that Grammer is interpreted and smaller, but is slightly slower, plus the fact it requires an extra app like BBC Basic (although you edit it with the BASIC editor) but I don't know the other differences.

Also it might be good to replace the following links in the doc:

http://axe.omnimaga.org to http://www.omnimaga.org/index.php?board=71.0
And
http://www.revsoft.org to http://www.revolutionsoftware.org