Rain Animation

This TI-83+/84+ program is an animation of rain as viewed from behind a window, written in Axe.

Download from ticalc.org

Download from uploads.s.zeid.me

Web-based Version

A Web-based version of this animation is available at ti-rain.s.zeid.me.  It requires a recent Web browser, such as Firefox or Google Chrome.

The source is on GitLab.

Installation and Running Rain

The recommended way to run Rain is to send it to your calculator with TI-Connect (Windows) or TILP (Windows/OS X/Linux), archive it, install CalcUtil, and run it straight from the PRGM menu while archived.  You can also run it using a shell like Ion or MirageOS, or use the Asm( command under 2nd+[CATALOG], as long as it’s not archived.

If you want to use CalcUtil, it may be found at https://www.ticalc.org/archives/files/fileinfo/400/40029.html.

Please note that these programs have been tested on a TI-84+ SE calculator running TI-OS version 2.43, with and without CalcUtil.

RAIN is compiled for Ion; however it doesn’t use any Ion-specific functions.  You do not need any shell or no-shell program installed to use it.


Once started, no further user action is needed to watch the rain.  However, certain buttons will do things:

CLEAR Exits the animation.
STO> Exits the animation, restoring the raindrops' positions when run next.
ENTER Pauses the animation.  Press any key to resume the animation.
MODE Switches between fast and slow mode on 15 MHz calculators.
DEL Toggles debug mode (certain state variables being displayed in the top-left corner.
Y= Shows the About screen.  Press any key to return to the animation.

Fast mode, debug mode, and the raindrops’ positions are stored in the RAINSAVE application variable upon exiting.  If CLEAR or STO> was pressed, the fast mode and debug mode settings will be restored the next time prgmRAIN is run.  If STO> was pressed, the raindrops’ positions will also be restored.  The RAINSAVE variable is NOT archived, and it will be UNarchived if necessary.

Debug Mode Key

T Timer
N Which raindrop is up for (re)drawing.
I 0 if all raindrops have been drawn at least once, 1 otherwise
F Fast mode enabled?  0 if disabled, 257 if enabled (at least on my calculator)

Debugger Usage

RAINDBG shows all 210 bytes of RAINSAVE, up to 7 at a time, for your enjoyment.[dubious claim]  The 8 variables (B, D, F, I, N, R, S, and T) representing the program state are displayed first, then two padding bytes, then 100 bytes (GDB0) that store the X coordinates + 5 for each raindrop, and finally the 100 bytes (GDB1) that store the Y coordinates + 3 for each raindrop.  The variable’s memory address (in base 10) is displayed at the top of the first page.

To scroll, use the up and down buttons (any other button except ON and CLEAR will also scroll down).  To exit the debugger, press CLEAR.

Variables not listed under Debug Mode Key

B Background sprite number (0-7)
D Debug mode enabled? (0, 1)
R Number of raindrops (35)
S Whether raindrop coordinates will be restored on restart (was STO> pressed) (0, 1)

Source Code

RAIN and RAINDBG are written in Axe 0.2.5.  The source code for these programs are respectively located in RAINSRC and RAINDSRC and can be edited in the TI-BASIC editor.  To compile them, you will need Axe Parser 0.2.5 on your calculator.  I have not tested these programs when compiled with Axe Parser versions later than 0.2.5.

The source code is also available in plain text files viewable on a computer.  If the arrows, greater-than-or-equal-to signs, etc. don’t display properly, make sure your text editor/viewer/Web browser is set to display the files in UTF-8 (Unicode) encoding.

The source code for the Web version is on GitLab.