Show Posts

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
The Axe Parser Project / Re: Bug Reports
« 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
The Axe Parser Project / Axe Tokens (Read Post Before Voting)
« 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
The Axe Parser Project / Re: Features Wishlist
« 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
The Axe Parser Project / Re: Features Wishlist
« 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
The Axe Parser Project / Re: Features Wishlist
« 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
The Axe Parser Project / Re: Axe Parser
« 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
The Axe Parser Project / Re: Axe Parser
« 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
The Axe Parser Project / Re: Axe Parser
« 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:

Code: [Select]
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
The Axe Parser Project / Re: Latest Updates (***DO NOT POST HERE!***)
« 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
Axe / Re: Line by line hex to pixel display
« on: June 17, 2010, 12:48:08 am »
Neither.  Use Bitmap().  Its coming soon to an Axe near you :)

1301
Other Calc-Related Projects and Ideas / Re: Axe Snake
« on: June 17, 2010, 12:38:17 am »
You didn't disable intterupts did you?  They are required for getkey.

1302
The Axe Parser Project / Re: Bug Reports
« 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
Other Calc-Related Projects and Ideas / Re: Axe Snake
« 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
Axe / Re: Size of sprite
« 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
Other Calc-Related Projects and Ideas / Re: Axe Snake
« 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:

Code: [Select]
Pause 50
X+getKey(3)-getKey(2)->X

Pages: 1 ... 85 86 [87] 88 89 ... 135