This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Quigibo
Pages: 1 ... 114 115 [116] 117 118 ... 135
1726
« on: April 11, 2010, 05:09:03 am »
New update.
I explain the new file system a bit in the general help file. But anyway, you have to prefix your names when saving to files from now on. So if you want to save to an appvar with the name "MONKEY" you have to store the string as "vMONKEY"->Str1. That 'v' is the prefix for appvars and is not the lowercase 'v', its the one on the [2nd][8] button. To access programs, you prefix with prgm. So "prgmMONKEY" will read and write to the program called monkey. However, you can not create new programs currently.
Another new thing that might need explanation is the new grayscale command. I haven't added any grayscale drawing commands yet, but I think it can still be useful. Basically, whatever is drawn on the back buffer will appear gray wherever the front buffer is white. So it effectively gives you a background layer. Keep in mind you have to update the display an odd number of times each frame (3 is fine spread out around the code) and you have to make sure sprites update their positions an even number of of draw cycles apart (every other cycle is perfect). Otherwise they leave a checkered blur.
1727
« on: April 11, 2010, 04:55:50 am »
Axe Parser Alpha 0.1.5 New Features:- Sine and cosine.
- Signed comparisons.
- Grayscale display.
- Programs can now be accessed just like appvars.
Changed:- The commands for using calc files have changes to make them easier, smaller, and faster.
- Fixed a couple minor bugs.
- A few new optimizations.
I changed the example program "Counter" to show the new format for saving to files. Notice its 30 bytes smaller as well.
1728
« on: April 11, 2010, 02:41:50 am »
hmm... If they are forced to be in order from 0 to N that would greatly simplify the statement. But since the parser doesn't know how many labels are in the switch statement, I would have to dynamically expand the table in the end of program location. And I think I would still need nonlinear parsing.
What I could do is have the switch statement require labels in the program which would take the burden off of the parser and into the programmer's hands. Something like this:
Switch(A,J0,J1,J2,J3)
Lbl J0 ...
Lbl J1 ...
etc.
Here, if A is 0, it jumps to label J0, if A is 1, it jumps to label J1, etc. You can choose any labels you want (including identical labels) and the variable you are comparing can be any expression.
Would this be useful to anyone though? It does kind of limit the usage a little bit.
1729
« on: April 11, 2010, 02:10:47 am »
In cases like this though, it could make the compiled size smaller if you are using enough options, because it can use a table of jumps instead of a bunch of, well, if statements
Right, its much more efficient in an assembly program to do switch statements than a bunch of if statements. Unfortunately, it would be way too hard to automate this into the parser since its not just simple templated code. It would have to check all the conditions in the beginning (non-linear parsing) and then create a jump table to each of the switch labels. It's just way too complex to code and it would need a lot of extra memory. I mean I could just do it as something that just makes it "easy on the eyes" but I don't feel like its worth the extra effort. ElseIf statements should take care of this for the most part anyway.
1730
« on: April 10, 2010, 04:14:08 am »
Wow it worked. Thanks! And that was fast too
1731
« on: April 10, 2010, 03:18:57 am »
You use the unit triangle. That means the hypotenuse has length 1. In such a triangle, the side opposite to the angle is the sin of the angle and the side adjacent is the cosine. That's why the identity sin^2+cos^2=1 because its just the Pythagorean theorem of that triangle.
1732
« 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!
1733
« on: April 10, 2010, 12:31:48 am »
Okay, I noticed that recently, there was the addition of the little chat box at the top of the page. Its pretty cool, but it was kinda distracting so I hit the little minus sign on the right to move it out of the way. However, it still constantly refreshes the page every few seconds even when the chat is not open and its really getting annoying, especially when I have multiple tabs of omnimaga open. Is there a way to turn it off or some type of setting I can change?
1734
« on: April 09, 2010, 07:35:58 pm »
the 83+ has 2 hardware timers the 83+SE had 2 hardware timers and 3 crystal timers the 84+ has 2 hardware timers, 3 crystal timers, and a clock.
I'm almost certain that the 83+SE does not have crystal timers, where did you get that information? And what do you mean by hardware timers? You can make your own timers with interrupts once I get that working.
1735
« on: April 09, 2010, 04:14:29 pm »
The range is the least of my concerns. The increase in file size is what I'm worried about because It will make all programs bigger that use for loops. I think I will use a modifier to make it optional, probably the R again. From now on, the R will stand for "Revised" and be a slight modification of the original command. For instance, adding it to the end of any drawing command makes it do grayscale drawing instead of regular. I'm sure I will find more uses for it soon as well. Another thing I wanted to mention is that for signed math, I think I will make the default unsigned instead of my original idea of making it signed by default. I have chosen this way for the following reasons - Unsigned routines are faster and smaller than signed, so they should be used by default if sign doesn't make a difference.
- Older Axe programs do not need to be modified to accommodate the new behavior of signed math.
- It make it easier on me with less modification on the parser
But the first of these reasons is the most important.
1736
« on: April 09, 2010, 04:14:40 am »
Just want to take a little poll:
Should For() loops be signed or unsigned? If they are unsigned, you can make loops as large as 65536 but you can not increment from a negative number to a positive one. With signed For loops, you can do things like this: For(A,-8,8) however it limits the maximum size to half of the unsigned max. Also, the signed routine would probably be about 3-4 bytes larger each For loop and consequently slightly slower each iteration (usually negligible). I could have an option to do either one, but I don't want it to get too confusing and I have no idea what type of syntax modifier I would use. Maybe I can make the 'R' power thing the universal modifier where when you put it at the end of a command, it does the non-default version.
1737
« on: April 08, 2010, 04:56:56 pm »
Just wanted to give a heads up:
There is a 100% chance that the file management commands will be changing big time. The main reason is that I've found a way to better generalize the commands (you can now save and edit programs as well as appvars) and also, the current commands use a lot of extra memory for something that really can be done by the programmer instead. I don't think the difficulty of using the commands will change by much, but I have a feeling it will make more sense.
So moral of the story is; wait until next version to use these. I'll probably release it tonight or tomorrow because I did a lot of bug fixes recently.
1738
« on: April 08, 2010, 01:53:21 am »
By the way, there is also the copy command which is conj(). You can use it to copy large blocks of data. You would especially use it to save and load from appvars. Lets say you want to save the entire graph buffer to an appvar. Obviously you wouldn't want to store one element at a time and even a for loop would be slow and cumbersome.
conj copies however many consecutive bytes you want from one location to another. So to copy all 768 bytes of the graph buffer to the appvar (lets say the pointer for that is in A) then you would do this:
conj(L6,A,768)
Since L6 is the graph buffer. First argument is source, second is destination, and third is how many bytes. Also you can load a saved screen from the appvar back into the buffer the same way:
conj(A,L6,768)
1739
« on: April 08, 2010, 01:39:02 am »
I know, I haven't actually made a real tutorial for it yet. I don't think I will either until its finished. I might make a mini one when the beta comes out, but other than that, these threads are the only resource for those types of general information.
Speaking of which, whats with all the sudden influx of posts? Just a few days ago there were only a handful of posts per day in this subforum, and now entire threads get filled up in a matter of hours. There's got to have been over 100 new posts here just from today alone...
1740
« on: April 08, 2010, 01:24:07 am »
No! The single bytes max out at 255 (or 127 if you're storing as positive and negative numbers instead of just positive). To store larger numbers, they will have to take up 2 bytes. Doubles give you up to 65535. It makes the data storage a little tricky though since you have to remember that offsets with 2 byte variables is an offset by 2 for each variable. You tell the parser to store 2 bytes by adding a r after the brackets. So lets say A,B,and D are 2 byte variables and C and E are 1 byte. You can store them like this: A->{L1} rB->{L1+2} r B has to be 2 bytes after A C->{L1+4} C has to be 2 bytes after B D->{L1+5} r D is only 1 byte after C E->{L1+7} etc. Notice how you have to leave enough room for each variable. Usually, this can get pretty confusing to index the array if you mix 1 and 2 byte variables. In that case, its sometimes a good idea to just make them all 2 byte variables just for convenience. Well ya, he is the one developing Axe but I don't think he has been working with it in programming nearly as much as some other guys have This is so true! I haven't really had a lot of time to actually fool around with the language myself since I'm constantly spending that time on new features. I bet all those people you mentioned have used it more than I have hours wise. I'll let you in on a secret though. My ultimate goal is to make the game "Frog Flap" for the calculator complete with music, grayscale, and saving. That will be my final project when the final version comes out. It's another minigame from warioware btw.
Pages: 1 ... 114 115 [116] 117 118 ... 135
|