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 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. . |-- README.txt This file | |-- library Library-related routines: | |-- dec16dec32.asm DEC16 and DEC32 routines | |-- dec16only.asm DEC16 (DEC32 support removed to save codesize) | |-- 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 | |-- hex16.asm HEX16 routine alone | |-- hexdisp.asm HEX16 thru HEX4 and HEX12M thru HEX4M routines. | |-- 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 PRINT.xxx string display routines | |-- rand.asm RAND random number generation routine | |-- sqrt.asm SQRT square-root routine | |-- colorsq.asm Baseline colored-squares routines | |-- colorsq_sv.asm PUTPIXELS/GETPIXELS wrappers on PUTPIXEL/GETPIXEL | |-- colorsq_clip.asm Clipping versions of PUTPIXELS/GETPIXELS | |-- ivoice.asm Intellivoice driver routines | |-- saynum16.asm Speaks the value of a 16-bit number | |-- resrom.asm Defines symbols for the Intellivoice's RESROM | |-- al2.asm SP0256 Allophone Library | `-- al2 \ | |-- |__ Allophone library separated into individual | ... | assembly source files. | `-- / | |-- macro Macro sets intended to simplify programming | |-- util.mac Loads of generic utility macros | |-- stic.mac STIC-specific macros | |-- psg.mac PSG-specific macros | `-- print.mac PRINT.xxx specific macros | |-- 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! | |-- README.txt | `-- hello.asm | |-- world Spinning World demo. This illustrates one way to | |-- README.txt deal with cartridges that are larger than 8K. | `-- world.asm | |-- mazedemo My original Maze-Demo, corrected to run on a real | |-- README.txt Intellivision. | `-- mazedemo.asm | |-- bncpix My original Bouncing Pixels demo, corrected to run | |-- README.txt on a real Intellivision. | `-- bncpix.asm | |-- life A turbo-charged implementation of John Conway's | |-- README.txt Life in colored-squares mode. | `-- life.asm | |-- gram_scroll Scrolls a grid w/8-pixel spacing by sequencing GRAM, | |-- README.txt instead of using the horizontal/vertical delay | `-- gram_scroll.asm registers. | |-- gram_scroll2 Same as GRAM scroll #1, except the lines are 16 | |-- README.txt pixels apart. | `-- gram_scroll2.asm | |-- handdemo Demonstrates how to use RUNQ/SCANHAND to read | |-- README.txt the hand controllers. | `-- handdemo.asm | |-- balls1 Psycho Balls: Illustrates MOB movement and | |-- README.txt MOB interaction with an odd little demo. | `-- balls1.asm | |-- balls2 Psycho Balls rewritten to take advantage of the | |-- README.txt task-queue and timer task model. | `-- balls2.asm | |-- sky Some SDK-1600 specific eye-candy | |-- README.txt | `-- sky.asm | |-- tagalong Tag-Along Todd -- Illustrates hand controller | |-- README.txt input and rudimetary AI on a timer-task. | `-- tagalong.asm | |-- tagalong2 Tag-Along Todd #2 -- Extends Tag-Along Todd into | |-- README.txt a full-blown game | `-- tagalong.asm | |-- tagalong2v Tag-Along Todd #2 Voice. Adds Voice to | |-- README.txt Tag-Along Todd #2. | `-- tagalongv.asm | |-- bankdemo Simple Intellicart bank-switching demo | |-- README.txt | `-- bankdemo.asm | |-- bankworld Adaptation of the Spinning World example to use | |-- README.txt Intellicart bank-switching. | `-- bankworld.asm | |-- csumexec Simple demo that identifies which variant of | |-- README.txt the Intellivision it's running on by checksumming | `-- csumexec.asm the EXEC and other ROMs in the system. | |-- mob_test Moving OBject tester. This demo allows you to | |-- README.txt move the various MOBs around and play with their | `-- mob_test.asm attributes. | |-- mem_test Intellicart-specific Memory Tester. | |-- README.txt | `-- mem_test.asm | |-- banktest Intellicart-specific Memory Tester with | |-- README.txt bankswitch support. | `-- banktest.asm | `-- ecscable The ECScable Monitor and construction information |-- README.txt `-- ec_mon2.asm 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. ROM FILE OUTPUT: as1600 -o program.rom -l program.lst program.asm BIN+CFG FILE OUTPUT: as1600 -o program.bin -l program.lst program.asm All of the programs in this tree are licensed under the GNU General Public License, unless the source code for the program itself indicates a different 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" 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