colecotests - v20210509

Screenshot Screenshot Screenshot 

Click here to download:   biosMem.rom
Click here to download:   blanktest.rom
Click here to download:   dumpRam.rom
Click here to download:   megaTest.rom
Click here to download:   memTest.rom
Click here to download:   portTest.rom
Click here to download:   rollerTest.rom

Various hardware tests for identifying ColecoVision behaviour (not necessarily for verifying hardware is working correctly!)

- Phoenix boot mode test. First checks for 24k of ROM at >0000, then 8k of RAM at >6000. Then it verifies the 512k RAM exists (partial test), and checks that the memory correctly handles Megacart style banking. It follows up by verifying that the mask register works to limit 256k, 128k and 64k. No interactivity.

- Dumps information about the NMI and VDP status register. Press fire button on controller 1 to toggle between NMI counting and VDP status register polling.

- Displays the contents of startup RAM on the screen, and can be scrolled up and down. Meant to view power up RAM patterns.

- emits a byte from 0xC003 of every megacart page, for testing Phoenix Megacart simulation. Builds to differently sized ROMs.

- tests the RAM mapping registers for Phoenix SGM simulation. This RAM test is a little more comprehensive.

- reads the state of all ports and emits to the screen. Some intelligence is added for the VDP ports.

- tests the joysticks and roller controller. Holding fire for 3 seconds toggles between joystick and keypad mode. You can also press up or down for some audio tests.


If you want to rebuild it:

- Install SDCC 3.5.0 (not the latest) 64-bit for Windows from

- In C:\program files\sdcc\bin, replace sdldz80.exe with my version (provided in tursi_tools)

- Use gnuwin32 or cygwin for Make. I have included the gnuwin32 version but not sure if it works standalone.

- You might need to change paths in the Makefile. I tried to get them all relative except SDCC.

That should be all you need to make changes. Just type make.

Since it's not a bank-switched cartridge, you can probably build without my hacked linker or "makemegacart.exe", but you'll have to change the makefile's link step.

- crt0.s has the startup code, the vectors, and the raw interrupt handlers. There's some complexity in the spinner handler around my nmi masking code for libti99coleco - mostly wanted to see if it worked. It shouldn't interfere with your testing since the spinner gets priority.

- look at libti99coleco vdp.h if you need different VDP access functions

- if you need to look at the library source code (which I mostly use here only for the VDP access), it's at

Click here to view repository on Github
Click here to view commit history on Github

Repo Created:2019-11-23
Last Update:2022-05-26

Back to Software Menu

Babble Software Text Dolphin Info Image Gallery Forums HOME

This page belongs to
Email addresses are provided for personal contact only. The operator of this website will not give, sell, or otherwise transfer email addresses maintained by or for this website to any other party for the purposes of initiating, or enabling others to initiate, unsolicited electronic mail messages. This site does not make use of targetted advertising nor does it store cookies on your device nor does it use unique identifiers to track you. It serves you data and walks away. Only the sole system administrator has access to that data, which consists of your IP address and the data you requested. These logs are automatically deleted whether they have been reviewed or not, and are not used for any further purpose.