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.


Topics - squidgetx

Pages: 1 ... 4 5 [6] 7 8 9
76
Math and Science / 0.5!
« on: February 23, 2011, 07:46:39 pm »
So according to our trusty calculators...

Code: (that's a factorial symbol!) [Select]
              __
(1/2)!=(1/2)\/pi
              __
(3/2)!=(3/4)\/pi
               __
(5/2)!=(15/8)\/pi
                 __
(7/2)!=(105/16)\/pi
                 __
(9/2)!=(945/32)\/pi

Now, my question is...Why?

77
TI Z80 / Electric Field Sim
« on: February 22, 2011, 06:04:07 pm »
So in physics we were supposed to be doing a predict-the-electric-field activity, but instead I decided to spend the time writing a program that could do it for me (Axe). I think it's not too shabby, but if someone could help me fine-tune the accuracy of it a bit? In some situations it behaves oddly. Source (Axe) is in prgmA0E.

Controls:
2nd: place positive charge
Alpha: place neg. charge
Enter: advance scenario

78
Axe / VAT tutorial
« on: February 20, 2011, 03:19:54 pm »
Let's write another tutorial (I'm just in the mood today) Anyway, this'll talk about the VAT, specifically, the symbol table of the calculator where programs, appvars, and protected programs are found. Ever wonder how Axe displays a list of all the Axe programs on your calculator? Well, read on!

1. What is the VAT? (By VAT, I actually mean program table, even though that's not really what VAT means)
The VAT is a chunk of user RAM that keeps track of every program/prot prog and appvar in your calc. If you notice, when you delete a program in archive, you still free up some RAM; that program's table entry is erased.

Every entry in the VAT is backwards (annoying), and structured in the following manner:
Code: (thanks to Iambian) [Select]
==============================================
| -(n+6)    -6    -5   -4    -3    -2  -1  0 |
==============================================
| VarName  N.Len Page DadrH DadrL Ver  T2  T |
==============================================
Now for an explanation of each part:
T: Sort of important but not really: the first five bits are used to identify which object type the variable is. We'll get into this later.
T2: Completely useless to us. Ignore.
Ver: Tells the OS whether or not it can be sent across certain OSs. Ignore.
DadrL: More important: Tells us the low byte of the address of this object.
DadrH: The high byte
Page: What flash page? If in RAM, it'll equal 0.
N. Len: How long is the name
And from here, we have the name of the object (backwards)

Now, the location of the VAT is always changing. Fortunately the calculator stores it for us at address $9830. The address of the end of the VAT is stored in $982E.

Here's a code example on how to set up a loop that goes through the VAT, one entry at a time...
Code: (the little e is the scientific notation E) [Select]
{e9830}^^r->E     //set up
While E>{e982E}^^r  //While we're in the VAT
For(F,0,14)        //Copy backwards to L1. For some reason I couldn't get Copy()r to work...
{E-F}->{F+L1}
End
...stuff. Now you have your VAT entry sitting in L1...do what you want with it.
E-{L1+6}-7->E    //Increment the pointer "position" appropriately. Every entry is a different length, depending on the name length.
End

Now, you can use the value of {L1+3}r+2 as a pointer to the object without even needing a GetCalc statement. This even works with file pointers as well, storing {L1+3}r+2 to {oY1}r and {L1+5} to {oY1+2} allows you to use Y1 normally as well.

79
Axe / Specific Tutorials List (Axe)
« on: February 20, 2011, 02:20:31 pm »
Complete Axe Tutorial (in french) by kindermoumoute


General:

Learning Binary by z80man: A quick explanation on this intricate system of numbers. 101010!

Explanation of pointers by Deep Thought: An excellent post detailing the basics of pointers for people new to Axe or otherwise low-level languages.

Launching external ASM programs from an application by squidgetx: credit goes mainly to Runer112 and FinaleTI though.

Program Flow Basics for a Platformer by Eeems: A short guide on how to setup your program so that it is easy to handle and relatively quick.


Specific Functions and Commands:

Table of Frequencies for use with the Freq() command accompanied by an explanation by Floppus Maximus

Bit Manipulation by Hot_Dog, Runer112, and nemo: A somewhat slapdash series of posts detailing how to read and write to bits.

The ** command by nemo: a full tutorial on fixed point multiplication.

Fix command tutorial by Scout: A more indepth explanation of the Fix command than the documentation.

Interrupts Tutorial by Hot_Dog: A detailed PDF showing how to maximize the effectiveness of interrupts in Axe

Using Axe to its full functional form ? by Ashbad: A nicely written tutorial on how to take advantage of many of Axe 1.0.0's new features including lambdas, getting label addresses, etc.

Lazy Evaluation by Ashbad: Another excellent tutorial this time discussing how to implement lazy evaluation in an Axe environment.


Game Mechanics:

Physics Lessons by Builderboy: A great collection of physics lessons explaining gravity, cellular automata, trig, and more! (Sorry Builderboy, I unstickied it for now, you can put it back up if you want)

Slope Physics Tutorial by squidgetx: an indepth-exploration/physics lesson.

Arrays and Bullet Code by Deep Thought: A work-in-progress on manipulating complex data structures, geared specifically towards coding bullet and ememy systems.

SHMUP tutorial by Deep Thought: In-the-works tutorial on making a Shoot-em-up game, building further on many of the concepts from the Array tutorial.

New Tilemapping Tutorial by yunhua98: a look at smoothscrolling tilemapping

Tilemapping Tutorial by SirCmpwn: The first comprehensive tilemapping tutorial including tilemap detection/collision

thydowulays's Complete n00bs guide to Tilemapping in Axe by thydowulay: Well, as the title says, a beginner's guide to tilemapping. Introduces basic concepts and sample code.

Beginner's Physics Tutorial by Scout:  A look at physics from the beginner's point of view.

OS and Data

External Variables Tutorial by FinaleTI: A comprehenisve tutorial on using the OS external variables such as appvars, real variables, lists, and more.

VAT tutorial by squidgetx: A tutorial showing how to go through the program table on the calc to retrieve programs/appvars

Pseudo-Huffman Compression by shmibs: A not-really-huffman compression technique that nevertheless is valid and useful.

Huffman Compression by Runer112: Runer112's response; focused on how to generate and use a Huffman compression tree.


Graphics:

Flame Graphics by Builderboy: Simple and easy way to create awesome fire effects in games.

Axe Grayscale Tutorials by Scout and squidgetx: Two short and simple tutorials on how to use grayscale in Axe

8 level grayscale by willrandship and kindermoumoute: O.o

Particluar Explosion Tutorial by leafiness0

80
News / cerzus69 releases Benumbered 2.0 beta
« on: February 18, 2011, 05:35:39 pm »
Benumbered 2.0 (an update from the old 1.0), recently released as a beta on Cemetech by cerzus69, is a Bejeweled port written in z80 asm. Instead of using jewels, we get to swap around numbers, from one to seven. The game is very polished already, even in its beta state. Its many features include six gameplay modes, flickerless four level grayscale, cascade animations, 24bit highscores, and even hints. o.O

You can download the beta from the Cemetech archives here and follow its progress in its thread.

81
Axe / Quick Grayscale Tutorial
« on: February 17, 2011, 12:02:11 pm »
Quick Grayscale Tutorial

3 level gray:
Three level grayscale is utilized by using the command DispGraphr in place of the normal DispGraph command. Three level gray uses the backbuffer (L3) and the front buffer (L6). Everything on the back buffer will show as gray while everything on the front buffer will show as black. The front buffer is drawn over the back buffer, so if a pixel is "on" on both the front and back buffers, it will be shown as black.

You can change the common drawing operations Pt-On, Pt-Off, Pt-Change, Pxl-On, ClrDraw, Rect, Line, DrawInv, etc. to operate on the back buffer by adding the raidan r at the end of the command. For example, Pt-On(X,Y,Pic1)r will draw Pic1 to the backbuffer. If you then look at it with DispGraph, you will see it in gray.

Text, by default is drawn directly to the screen and not to the buffer. For this reason, it can appear as grayscale because it is being erased every time you call DispGraphr, and then redrawn very quickly. To make it so that text is drawn to the buffer, put a Fix 5 at the beginning of the program (and a Fix 4 at the end). To draw text to the back buffer, you will have to Exch the back and front buffers, write to the front buffer, and switch back:
Code: [Select]
Exch(L3,L6,768): Text(X,Y,"Text") : Exch(L3,L6,768)
4 level gray
With four level gray, the front buffer becomes somewhat transparent. Use the following table to figure out the pixel colors:
Code: [Select]
Front:Back:Color
0    :1   :Light Gray
0    :0   :White
1    :0   :Dark Gray
1    :1   :Black

Buffer operations remain the same. To display in four level gray, use DispGraphrr

Note: In order for the grayscale to show up, you must put the DispGraphr or DispGraphrr in a loop. In monochrome, you can get away with this:
Code: [Select]
:Pt-On(X,Y,Pic1)
:DispGraph
:Repeat getKey
:End
But with grayscale, you'll have to write the code like this:
Code: (displays Pic1 in dark gray) [Select]
:Pt-On(X,Y,Pic1)
:Repeat getKey
:DispGraph[sup]r[/sup][sup]r[/sup]
:End

edit: 1000 posts :D

82
News / nDoom for the Nspire!
« on: February 16, 2011, 07:29:29 am »
Mrakoplaz, one of our newer members, has one thing very few of us have: more post ratings than posts. But, as Deep Thought has pointed out, it's very well deserved. Very, very well deserved.

DOOM... on the Nspire!

A fully functional port of ID Software's famous first person shooter, now available on your calculator!

Mrakoplaz has just recently released a beta version of Doom for the Nspire. It's an exact port of the original, and is made to be compliant with most Doom WAD files. Just check out these screenies:



The beta as well as the project discussion can be found in the project subforum


First of all, I must take the time to thank the entire Omnimaga community. Although there were many troubles, bugs, and other technical difficulties associated with the first release of nDOOM, you nevertheless responded with great passion and encouragement. Without you, I probably would have abandoned the project soon after January 1st, and would never have taken the time to sort through some of the more egregious bugs the project suffered through - namely the wall texture bug, or the crash-on-exit bug.

Now, finally, after many weeks of development (weekends, rather), the game has reached a state I would consider "fun". Although there is still no menu, difficulty selection, and no extensive testing had been conducted, there are now enough features to approach the original version, released for MS-DOS in 1993. All of you will welcome the addition of savegames, the main new feature of the beta release.

The game is a bit hard to see at points, but I have found that this problem can be corrected via judicious adjustment of the contrast. The game is pretty dark even on the computer, and so visibility problems are not only to be expected, but even intentional half the time (those of you who have tried the first versions, however, should note that I've remapped the pallette severely and it is now significantly easier to see than in the early days).

I have attached two versions of the release - the "b1" release contains the game itself, built for Ndless 2.0 (therefore compatible with OS's between 1.7 and 2.1), while the "b1_source" contains the source code in C, available for any budding programmers or interested persons to investigate; However, beware! It's full of hacks!

Many important features are still untested, so there'll still be bugfix releases. Furthermore, I do intend to get that silly menu working eventually. However, this version is playable enough already, so go give it a go already!

Have fun ;D


83
News / Axe Parser v0.5.0 Released
« on: February 12, 2011, 08:10:58 pm »
Quigibo has released version 0.5.0 of the hugely popular Axe Parser, taking the project out of delta and into epsilon! Some notable new features include the now fully functional axiom system as well as EndIf and End!If commands for loops!

The new update can be downloaded here

From the original topic:
Axe Parser
Epsilon 0.5.0



New Features:
  • Axioms finally fully functional!
  • Example axiom included.
  • "While 1" and "Repeat 0" automatically optimize to "Do" loops.
  • New "EndIf" and "End!If" statements for post-testing in loops.
  • Help menu actually shows something now!

Changed:
  • Fixed sprite rotation commands.
  • Fixed nibble reading commands.

We applaud Quigibo for this update and wish him good luck with version 1.0.0 ;D

84
Axe / Axe Q&A
« on: February 12, 2011, 11:28:50 am »
Since we no longer have the Axe Parser general thread due to the forum split (and since q/a wasn't even that appropriate for the Axe Parser thread), this topic will be the new quick question/answer thread. :)
If you have any quick questions about Axe programming: things that you feel don't quite merit their own thread, feel free to post them here. :) Anyone able to answer your question will most certainly do so.

Questions like "What does [function] do" or "How do I do grayscale" are suited for this thread, while we encourage the creation of a new thread for more indepth questions and issues :)

FAQ/RANDOM:

Please, do not refer to Axe "lists" L1, L2, etc. as "lists." Instead, refer to them as "saferam" or "free ram." The term "list" is reserved for the OS lists that are used in plots and BASIC
Q-Help! Why doesn't Fill({L1},1000) work?
Fill() takes a pointer as an argument. Fill({L1},XXX) is incorrect. You want Fill(L1,XXX). Same with the Copy/Exch commands.[/green]

Q-Help! My program is inexplicably crashing on execution!
A-Asm programs have a size limit of 8192 bytes. If you compile for MOS/DCS, you have a limit of 8811 bytes of code, and unlimited data (well as much data that you can fit into RAM). If you're over 8811 bytes, you might want to think about compiling to an application, using Crabcake or Fullrene. or optimizing some more.

Q-How come this doesn't work: 0->{GDB1+xxxx}???
A-GDB1, Str1, etc. are all static pointers This means that you aren't supposed to change the data defined there. You can however, do this (called SMC; and be warned that it will not work in an application) by using Copy and Exch, or by storing the static pointer to a variable and then using that variable as a pointer instead, eg GDB1->theta:0->{theta}

Q-How do I do realistic gravity???
A: Check out Builderboy's physics lessons.

85
News / Axe Parser Subforum split
« on: February 11, 2011, 11:57:31 pm »
The Axe Parser subforum has been split into two parts: the Axe Project forum and the Axe Language forum. This is to help separate the Axe project discussion from tutorials and other language help/support as the original forum was becoming rather crowded. Now, language help and tutorials can go in the newly created Axe Language board, while project disucssion will continue in the original Axe parser subforum. Hopefully this will help to organize things a bit better, and apologies for any inconvenience. :)

86
News / Powder/Dust Games Trickling In
« on: February 10, 2011, 07:34:59 pm »
Builderboy's amazing physics lessons on cellular automata, along with the power of Axe have inspired some of the first powdertoy projects for the z80 line of calculators. Featuring realistic flowing of particles, these programs are fairly sophisticated, and. better yet, fun to play with! :D
Shmibs has recently released his dust toy featuring solids, water, dust, fire, and ? particles. The program even features grayscale on 15mhz models. :o


Meanwhile, Qwerty.55, who actually started his powder game before Builderboy's tutorial, is hard at work (;))on his powder game. His features greyscale as well (not shown in the screenshot) and a very nice cursor routine. He is hard at work on implementing some of the more advanced physics and eventually plans to have particles interact with each other (explosions? :D).


87
Math and Science / Taking square roots by hand
« on: February 06, 2011, 08:09:01 pm »
Why would you need this??? We have calculators! ;)

Anyway, thought some of you guys would appreciate this ;)

edit: holy, massive picture x.x

88
Humour and Jokes / Travelblog
« on: February 03, 2011, 05:57:56 pm »
lol.

89
TI Z80 / SandLand
« on: February 01, 2011, 07:33:15 pm »
This is a project that was inspired by Builderboy's Cellular Automata physics tutorial (hence the name). Ironically it currently does not have any kind of particle physics or cellular automata in it at all. For now I'm just working on the main character physics, and I've managed to produce something I thought was worthy enough to post and officially unveil this previously secret project ;)

More details on gameplay will be unveiled later, as I think that if I succeed, I want it to be a surprise (because it will look really, really cool). For now you can just know that it will be some sort of platformer with as much physics as I can cram into it.

Currently all the character physics are done, including horizontal acceleration and deceleration due to friction, collision/momentum with walls, jumping (use 2nd) with real gravity and such.

Next up is the scrolling tilemapper... I'm planning to use the tilemapper only for drawing, and not for collision detection. Hooray for inefficiency :D

90
News / Ticalc.org Hiring
« on: January 30, 2011, 01:52:35 pm »
Ticalc.org has started hiring to fill their position for primary news editor-the office responsible for featuring programs and posting news. The only qualifications are a love of calcs (which I think we all have ;)), a time commitment, high availability, and an eye for news, so if you think you've got what it takes, submit an application by Sunday February 13th 2011.

More information can be found in the news article

Pages: 1 ... 4 5 [6] 7 8 9