Software Developers Kit for the Intellivision Video Game System

This directory tree contains a number of example programs and library routines. Many of the routines (especially those under "library") may be useful in your own programs. All of these routines are part of SDK-1600.

All of these programs and routines are being made available to you under the GNU General Public License. Please read the file "COPYING.txt" in the top-level directory for details.

library Library-related routines:
 prnum32.asm Prints 32-bit numbers (requires prnum16)
 prnum16.asm Prints 16-bit numbers
 dividivu.asm Signed and unsigned divide
 fastdivu.asm Unsigned divide only (untested!)
 dist_fast.asm Fast Euclidean distance estimation
 fillmem.asm FILLMEM, FILLZERO and CLRSCR routines
 gimini.asm Various constants and masks useful for Intellivision
 hexdisp.asm Prints numbers in hex. HEX16 thru HEX4 and HEX12M thru HEX4M routines.
 hex16.asm HEX16 routine alone
 ic_banksw.asm Intellicart bank-switching support routines
 memcmp.asm MEMCMP routine
 memcpy.asm MEMCPY routine
 memset.asm MEMSET routine (similar to FILLMEM)
 memunpk.asm MEMUNPK routine
 print.asm string display routines
 rand.asm RAND random number generation routine
 sqrt.asm SQRT square-root routine
 colorsq.asm Baseline colored-squares routines
 colorsq_clip.asm Clipping versions of PUTPIXELS/GETPIXELS
task Event-driven Multitasking routines
 README.txt Describes the tasking model
 taskq.asm Task-queue routines
 timer.asm Timer-based task routines
 scanhand.asm Hand-controller scanning / event generation
 sleep.asm SLEEP/SPAWN advanced timer task functions
hello Simplest of simple: Hello world!
world Spinning World demo. This illustrates one way to deal with cartridges that are larger than 8K.
mazedemo My original Maze-Demo, corrected to run on a real Intellivision.
bncpix My original Bouncing Pixels demo, corrected to run on a real Intellivision.
life A turbo-charged implementation of John Conway's "Life" in colored-squares mode.
gram_scroll Scrolls a grid w/8-pixel spacing by sequencing GRAM, instead of using the horizontal/vertical delay registers.
gram_scroll2 Same as GRAM scroll 1, except the lines are 16 pixels apart.
handdemo Demonstrates how to use RUNQ/SCANHAND to read the hand controllers.
balls1 Psycho Balls: Illustrates MOB movement and MOB interaction with an odd little demo.
balls2 Psycho Balls rewritten to take advantage of the task-queue and timer task model.
tagalong Tag-Along Todd -- Illustrates hand controller input and rudimetary AI on a timer-task.
tagalong2 Tag-Along Todd #2: Extends Tag-Along Todd #1 into a fullly playable game.
bankdemo Simple Intellicart bank-switching demo
bankworld Adaptation of the Spinning World demo to use Intellicart bank-switching
csumexec Simple demo that identifies which variant of the Intellivision it's running on by checksumming the EXEC and other ROMs in the system.
mob_test Moving OBject tester. This demo allows you to move the various MOBs around and play with their attributes.
mem_test Intellicart-specific Memory Tester.
banktest Intellicart-specific Memory Tester with bankswitch support.
ecscable The ECScable Monitor and construction information

How to build

Each of the demos can be build with a single 'as1600' commandline. The exact command used depends on your desired output format. The assembler selects the output format based on the file extension.


    as1600 -o program.rom -l program.lst program.asm


    as1600 -o program.bin -l program.lst program.asm


All of the programs in this tree are licensed under the GNU General Public License. The short description of the license is that you're allowed to incorporate pieces of this code in your own programs. The resulting program, though, can only be legally distributed under the GNU GPL. Please see the file "COPYING.txt" in the top-level directory for the legally binding details.

If you do not wish to be bound by the GPL, but would like to use some of this code in your game software, please contact me. We may be able to work something out.

-- Joseph Zbiciak [im14u2c AT primenet DOT com]