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 ... 93 94 [95] 96 97 ... 135
1411
The Axe Parser Project / Re: Axe Parser
« on: June 02, 2010, 01:11:26 am »
Oh no, no!  These aren't custom interrupt routines (im 2)!  These are the OS interrupts (im 1), they don't do much as you can see right now, but they will come in handy when I do add custom interrupt support.

1412
The Axe Parser Project / Re: Axe Parser
« on: June 02, 2010, 01:04:18 am »
Thanks!  I made the game in about 4 hours when I was bored, which I think is pretty good because it would have taken much much longer if it was in assembly.  I figured that since so many other people used Axe to made a tunnel clone, I would do the same... only differently.

The interrupt commands are fairly useless right now.  All of them are 1 byte each and so the Stop command is really efficient for quick pauses.  Each one is around a Pause 40ish and you can do :Stop:Stop:Stop:Stop up to about 8 times I think and still be less bytes than the normal pause command.  Make sure you have enabled interrupts first!

EDIT: By the way, is the new version working right for everyone's code?  I only tested it with the example programs, they all seem to work, but since I rewrote so many routines there is bound to be something I missed.  Just want to make sure I didn't make any stupid mistakes before I update the one on ticalc.

1413
The Axe Parser Project / Re: Latest Updates (***DO NOT POST HERE!***)
« on: June 02, 2010, 12:02:45 am »
Axe Parser
Beta 0.2.6



New Features:
  • Instant goto when pressing [prgm] after errors.
  • Use Sub() and Asm() inline with math operations.
  • Sorting command added.
  • Some very basic OS interrupt commands.
  • Constant expressions are evaluated pre-compile time.
  • Reading and writing to static addresses should be fully optimized now.
  • Math and numbers are more flexible.

Changed:
  • Reading and writing to static addresses returns the value instead of the address.
  • Fixed several bugs.

Made a 3D game for the fun of it.

1414
The Axe Parser Project / Re: Bug Reports
« on: June 01, 2010, 10:57:41 pm »
I've fixed a lot of bugs so far, but I didn't find anything that sounded like either of the two mentioned.  Its possible it was a side effect of another bug, but tell me how it works with the new version when I release it in a few hours.

By the way, everyone is using the newest version when reporting bugs right?  Just a reminder becasue that's really important for this thread.

EDIT:
happybobjr, can you attach the file that's causing problems here so I can see what's wrong?  Or you can email it to me if you need to keep it secret.

1415
News / Re: Omnimaga holds Axe Parser Programming Contest
« on: June 01, 2010, 02:05:01 pm »
Axe has supported reading programs for a long time.  Its creating programs that I haven't added yet (but will soon).

The use for this would be if you wanted to make a level editor for your game or something, you could just have the main program read another program that contains nothing but level data.  That way its easy to make your own levels because you can use the built-in TI-BASIC editor.  I think this would definitely be in the spirit of Axe.  Although I do agree, if you add a feature like this, it is much better if the program itself is stand-alone without needing "level packs".  At least include a built in demo level so that the level packs are optional and the single executable alone is still playable.

1416
Why is this not in Random?  Is this being taken seriously?  Is my secret out!  Oh noes! *draws more pentagrams*

1417
The Axe Parser Project / Re: Your Projects - Post and Critique
« on: June 01, 2010, 12:23:59 pm »
Hmm, the idea could work.  I like the idea for iPart() as the command, but at the same time, I am also planning to add the Rect() command for drawing filled boxes and I wonder if I can use a modifier to switch between fill black, fill white, and fill invert.  This will come when I get to geometry drawing, but don't expect it for a while.

1418
The Axe Parser Project / Re: Axe Parser
« on: June 01, 2010, 12:55:51 am »
I wish there were more tokens for this, its too bad there aren't many intuitive ones that could work for this purpose.

I am hoping that later in development, there will be an option to install an "Axe Language" pack which changes token names to more intuitive namings so then I won't have these restrictions.  You can then disable them if you need to use the calc for math and BASIC programming.  It seems very possible since there are already apps out there that change the tokens to other languages like Spanish or French.

1419
The Axe Parser Project / Re: Axe Parser
« on: May 31, 2010, 07:01:49 pm »
IMPORTANT UPDATE!

Unfortunately, or fortunately depending on how you look at it, one of the new optimizations will change the way you optimize your code.  When saving to a pointer at a static location, the return value will now be the value stored rather than the address that is being saved to.  This rule does NOT apply to locations with variable addresses like {A} or {B+L1+8}, those will remain the same as before.  Its when you save to pointers like {L1+4} or {Str1-16} that this will affect.   Both 1 byte and 2 byte storage are affected the same way.

The advantages vastly outweigh the inconveniences however.  Realize that after this release, saving to static addresses will have the EXACT SAME efficiency and code size as saving to a regular variable.  {L1+9}r+1->{L1+9}r for instance will be the same size code as A+1->A in the executable.  That saves about 4 bytes for every time you read a static pointer and 3 bytes every time you save to one.  The speed increase might be noticeable too if you use these in loops a lot.

If you still want to do tricks like this: Fill(0->{L1},100)  You can still write Fill(0->{L1}rL1,100) and it should be the same sized code in the executable.  The double byte storage is actually smaller and faster than single byte storage when using static locations by the way.  Just making sure I warn everyone first before anyone panics if their executable doesn't work right in the next version.  This is the second wave of major optimizations and the first REAL look-ahead parsing with actual backtracking and I've still got many more to go.

1420
The Axe Parser Project / Re: Axe Parser
« on: May 31, 2010, 04:02:34 pm »
Create the new appvar first, copy the old one to the new one, then delete the old one.  It works as long as the appvars are much smaller than the 24k of user ram, which they should be.  You can always check to make sure the appvar was created successfully before copying by making sure the pointer is not null.

1421
The Axe Parser Project / Re: Your Projects - Post and Critique
« on: May 31, 2010, 01:13:02 pm »
And when I insert the pic into the program, I added det(12 before Pic#->DispGraph, but it displays some random pixels on the bottom row where the inaccessible row 64 is.  I don't think det(12 WORKS THERE, BECAUSE i'M guessing thats a portion of the next Pic in RAM.  If I'm right, can someone tell how to fix this? ???

You have to put the det(12) directly after the picture data because the det command is a data command and isn't actual code.

1422
The Axe Parser Project / Re: Axe Parser
« on: May 31, 2010, 12:59:21 am »
Whenever you call a subroutine, you "push" the place its supposed to return to into the stack so it knows where to go back to in the code when it reaches the Return, which then "pops" the stack.  Also, I wasn't sure at the time of writing if he did use any assembly code which is why I was explaining it at a lower level.

Glad you found the error :)

1423
The Axe Parser Project / Re: Axe Parser
« on: May 31, 2010, 12:48:24 am »
Quigibo, it would be nice to maybe describe what involves pushing/poping and the stack when it comes to Axe code, because it is ASM stuff that isn't referenced in the Axe manual, so it might be confusing to Axe programmers that doesn't know ASM.
As I said before, Axe doesn't allow you do use the stack unless you use your own assembly code, that's why I never mention it.

Runer, are the numbers off by 2 or by a lot?  Try putting it in your other subroutines and see if you narrow down the one that changes it.

1424
The Axe Parser Project / Re: Axe Parser
« on: May 31, 2010, 12:40:43 am »
What you're describing is exactly a subroutine problem.  What happened is that there was probably a "push without a pop" somewhere in the code so that by the time it get to the return, it has changed the stack order becasue something else was pushed, hopefully a label and not a number since Axe doesn't allow you to use the stack directly, and so it is actually returning not to the place from where it was called but some other place instead, or a random location if a number got pushed.

I would recommend a more thorough debugging.  Try this: Disp Asm(E1E5)>Dec,i Put it at the beginning of the subroutine and then again at the end.  If the numbers displayed are not the same number, you have a leak somewhere.  The difference between the numbers divided by 2 tells you how many levels off you are.

1425
The Axe Parser Project / Re: Axe Parser
« on: May 31, 2010, 12:26:49 am »
@Runer

Axe doesn't have restrictions on this other than the 150 individual label names.  Its more of a hardware limitation.  I think the stack size is like 400 bytes or something although I have no idea really I'm basically making up this number.  Anyone actually know?

It sounds more like you have a memory leak on the programming side than on the parser side.  Double check that all the subroutines end in Return and that you aren't using goto between subroutines or trapping recursive subroutines, I don't know if you're using those.  Also, it could be some other command that is not subroutine related that is causing it to freeze.

Pages: 1 ... 93 94 [95] 96 97 ... 135