A simple implementation in C of John Conway's Game of Life for TI-83+ series calculators.
This program is tested on a TI-84+. It should be compatible with the TI-83+, TI-83+SE, TI-84+, and TI-84+SE. However, it will run noticeably slower on the TI-83+, which has a slower CPU.
The source code for this program is hosted on Github. To compile the program, you will need the following software:
- SDCC (Small Device C Compiler): compiler/assembler/linker
- binpac8x.py: packages binary file into executable for the calculator
The makefile assumes all these programs are in your system path.
On Linux, it may also be necessary to change the permissions of binpac8x.py so you can execute it: chmod +x binpac8x.py
.
To download and compile the source: open a terminal and navigate to the directory you want to download the source to. Then enter the commands:
git clone --recursive https://github.com/mortonsc/TIgameoflife.git
cd TIgameoflife && make
That's it! The executable file is conway.8xp
.
All the required software is available for Windows, so it should be possible to compile, but I haven't tried.
To install on your calculator, you must obtain an executable, either by compiling the source
using the instructions above or by downloading the release from this repository.
Once you've done that, open conway.8xp
with your favorite emulator, or, if you're particularly trusting,
upload it to your calculator with your favorite linking software.
As far as I know the program is safe,
but bear in mind that running assembly programs on the calculator is inherently dangerous.
The compiled program is called CONWAY on the calculator. To run, use the Asm(
command (found in the catalog):
Asm(prgmCONWAY
The program does not offer any way to edit the screen; the contents of your graph screen at the time you run the program
are used as the initial state. If you want to quickly create an interesting screen, you can use the Draw->Text(
command
to print text to the screen.
When the program starts, it is paused. There are 5 possible actions:
Clear
: quits the program-
: advances the game one step+
: starts the game runningSto
+Num: Stores the contents of the screen to picture variable Num. Num is any of the numerical keys. (as if you had enteredStorePic
Num)Ln
+Num: Loads the contents of picture variable Num to the screen. (as if you had enteredRecallPic
Num)
While the game is running, pressing Enter
will pause it again. You may have to hold the button for a second
before the game pauses.
This is a list of features I plan to add:
- About/help screen
- Wrapping around edges
- Generation number tracking
You can contact me via email; my address is visible on my Github profile. Bug reports should include enough information for me to replicate the error.