Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
TI99/4A examples suite.
by Oscar Toledo G.

Here you'll find some samples of code I've wrote for
the TI99/4A.

This computer is based on the TMS9900 processor but has
a TMS9918 video processor and SN76489 sound chip just
like the Colecovision, though the TI99 has only 256
bytes of internal memory.

The cartridges are loaded typically at >6000 thru >7FFF

  hello.asm      A simple Hello program

  astrocube.asm  Astro Cube game written for the 4K compo
                 at Atariage, won 5th place of 9.

You'll find a short resume of TI99/4A hardware at the
start of each example.

Also I've took note of the default VDP/VRAM configuration
after starting a cartridge, because this saves bytes and
time preparing the system.

I found the TMS9900 16-bits processor not so different of
Intellivision CP1610 processor.

The TMS9900 has 16 registers named R0-R15, you need to
setup a workspace because registers are preserved in RAM,
called scratchspace because is a very high-speed memory.

The stack pointer is recommended in R10, the Link Pointer
is in R11 (Branch & Link instruction)

The memory is addressed in bytes.

My main reference for assembler programming was this one:

Comments are started by an asterisk, these should be
separated by at least two spaces from mnemonics or operands.

Hexadecimal numbers are preceded with >

Labels must carry a @ symbol to distinguish them from
registers, except in immediate instructions like LI, AI
and CI.

Same as Intellivision and 6502, substraction carry sense
is reversed. (Carry set equals no carry)


TI994A snippets (Astro Cube and Hello)







No releases published


No packages published