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 ... 85 86 [87] 88 89 ... 135
1291
« on: June 17, 2010, 03:33:45 am »
Sounds like there might not be enough delay. That surprises me since it works on mine and I have the slow LCD driver. What model calculator are you using and what letter on the back?
1292
« on: June 17, 2010, 03:23:10 am »
It is very important you read all of this before you vote. This is a crucial part to the future of Axe Parser.
The original concept behind going through the trouble of renaming some of the Tokens is that I am very quickly running out of intuitive TI-BASIC tokens to use for more complicated Axe Commands. I've often resorted to using the r or sometimes even the double rr but that's not going to cut it soon. In this last version, I was all out of sprite tokens, so I used what was left in the drawing menu: Tangent(). The name has no meaning to the intended function and may force one to read the documentation before figuring out what it might be used for.
This is okay though. I realize that a lot of TI-BASIC programmers are used to their tokens and they know where they are on all the menus lightning fast. If you hear the word "Str1" you might immediately think "[VARS][7][1]" as I usually do. But if you hear "Bitmap()" you have no idea where it might be. The catalog isn't in alphabetical order either so that doesn't help much (maybe I can change that with hooks in the future but I'm unsure). So there is a concern that you have to learn new shortcuts.
There are many many new commands still to come. For my example, I will mention the commands for reading from archive. There would need to be an openfile and a readbyte command. It is entirely possible that I just use maybe log() to open the files and prod() to read a byte, there is no problem with that. But I imagine the code is much more readable with Open() and ReadByte() for instance. This is not an isolated case, there are more than 20 other commands I can think of that don't have any meaningful tokens.
One other advantage of renaming some tokens is that often in BASIC, commands such as int() have totally different uses in Axe. This can ease any potential misuse since the new names imply that the interpretation of the commands have changed. While tokens that have the same name will be interpreted as working the same way in both Axe and BASIC.
So, if I start using the new token names, then that raises the new issue of documentation. Sure, it may be possible to document both in the commands list, and maybe even the user's guide, but not having a single standard can get very confusing when reading other people's source code, writing your own tutorials or routines, and even regular conversations like asking for help and fixing code.
I could still offer the option of using the old tokens but just have them minimally documented (like a simple table that tells you the equivalences between tokens). That way, it encourages the new standard among the forums and when documenting the code.
If I have the tokens be completely "Mandatory" then I can hook the program editor so that the tokens are automatically enabled when editing Axe programs and then automatically disabled when you quit to the home screen or edit a regular TI-BASIC program. There could be an option to toggle this behavior in the parser even if the old names names are documented or undocumented.
The last thing I'm going to throw out there: These are only name changes. The actual position in the menus for each token does not change and all past and future source code is totally compatible since the tokes themselves are still the same, only the physical letters displayed on the calculator are affected.
Please ask more questions if you want clarification on something or want to bring up another point. You can change your vote at any time.
1293
« on: June 17, 2010, 02:33:49 am »
I'm not planning anything yet. This is just an experiment. I'm going to see if people like it or not. I've clearly got 1 vote for not.
1294
« on: June 17, 2010, 02:21:23 am »
While that is true, and he probably would, what about things like TI-GraphLink? I don't know if anyone still uses that but that's what I used to use a lot for basic editing. But I suppose as long as there is at least one computer editor that supports it, then it at least gives you the option. Does anyone here code on the computer in something other than SourceCoder and would be uncomfortable switching?
1295
« on: June 17, 2010, 02:13:50 am »
DJ suggested a really cool idea. I think If I use my hooks correctly, I can have the Axe Tokens automatically enabled whenever the basic editor detects the program it is editing is an Axe source file and then revert back to normal when you quit so that the tokens never get mixed up or confused when you're dealing with regular BASIC.
I'm just worried if I eventually want to switch to Axe Tokens as the default tokens, then computer coding might get more complicated since programs like SourceCoder only use the original tokens.
1296
« on: June 17, 2010, 01:49:13 am »
Ah yes, the good ol' bcall(_DisplayImage)
Here is how you use it. Define the sprite like this: Data(height,width)->Pic1 [row1] [row2] ... [last row]
Then, when you want to display the sprite: Tangent(X,Y,Pic1)
1297
« on: June 17, 2010, 01:45:50 am »
Ooh, base 2 logarithm/exponent can be useful for a simple floating-point implementation.
Come to think of it, to improve the usefulness of fixed-point values (see: sin/cos), you should make an alternate multiplication routine, "**", to multiply two numbers but return the top 16 bits of the 32-bit result. Currently, there is no easy way to do that.
That's a good idea. Design me a little routine and I'll add it. I'm not sure how to approach it
1298
« on: June 17, 2010, 01:27:59 am »
Okay, first thing, Axe Tokens. Enable and disable them with Alpha+Vars. If the screen flashes, you know they have been toggled. The current token remapping is this:
conj <-> Copy Expr <-> Exch SinReg <-> Freq det <-> Zeros int <-> sign >Frac <-> >Char deltalist <-> Data Repeat <-> Until Tangent <-> Bitmap
Let me know if you all like it. I might decide to make it quote unquote 'Mandatory'. Like the code would be pretty unreadable without it.
I modified my RPG demo to use subroutines if you want to look at it. Basically, you call it with up to 6 arguments and then in the subroutines, the arguments turn into r1 through r6. Do not use subroutines with arguments in subroutines with arguments otherwise there could be conflicts since they all share these values. While these new variables can be used outside of subroutines, it is discouraged because they get erased every time you call a subroutine with arguments.
EDIT: Oops, I just realized I accidentally switched Fill( with Zeros( instead of det(. I'm releasing another version soon to fix stupid typos like this. I think that will be the pattern from now on. Big improvements followed by corrections. I'll wait to see what other corrections need to be made first of course.
1299
« on: June 17, 2010, 01:15:14 am »
Axe Parser Gamma 0.3.0
This should make up for skipping a week of updates New Features:- Subroutines can now have arguments!
- New variables for subroutine arguments.
- Experimantal "Axe Tokens". Toggle them with Alpha+Vars.
- Grayscale commands improved and save interrupt states.
- Base 2 logarithm and exponential.
- Draw arbitrary sized bitmaps to the buffer or directly to the screen
Changed:- Major bug fix, no more errors when reading from archive.
- SetupEditor is no longer needed or supported.
- Fixed other minor bugs.
1300
« on: June 17, 2010, 12:48:08 am »
Neither. Use Bitmap(). Its coming soon to an Axe near you
1301
« on: June 17, 2010, 12:38:17 am »
You didn't disable intterupts did you? They are required for getkey.
1302
« on: June 16, 2010, 09:04:24 pm »
The pause would have to be fairly long, about 50-100μs and more if in 15MHz mode presumably (a little less than "Pause 2"). All it would do is slow down the command and increase the code size. Since the normal use is not flashing the screen back and forth, its best left to the programmer to decide if they need the pause or not.
1303
« on: June 16, 2010, 07:59:24 pm »
Yeah, I wasn't sure if this was for a menu or part of the game. Regular getkey is definitely good for menus.
Signed division is definitely the slowest of the 3. The reason the circle looks a little square-ish is that I'm using a very fast approximation of sine and cosine for performance reasons. Normally you don't notice it at all unless you draw the trail of the sprite.
1304
« on: June 16, 2010, 07:52:33 pm »
1 byte = 8 bits 1 bit = 1 pixel Need 64 pixels
Therefore: Size = 64/8 = 8 bytes
1305
« on: June 16, 2010, 07:34:46 pm »
You shouldn't be using the normal getkey for games. Its slow and it returns funky stuff sometimes. That code should be:
Pause 50 X+getKey(3)-getKey(2)->X
Pages: 1 ... 85 86 [87] 88 89 ... 135
|