Error in E.O.S. Programmers Manual

I have discovered an error in the manual on page 78.  They have the values of the controller table mixed up. It should be this way:

If you are reading both controllers Stick 1 comes first, then Stick 0. Also you need to swap the fire buttons, Left comes first, then Right.

I have verified this with debugging and also by looking at the EOS source code (though EOS puts the Spinners first internally it puts them in the correct place when you call the routine.

Here is a code snippet showing how to access the controller:

STICK_UP .equ 1

; Process Joystick

; ReadStick
; Update the StickData table with joysticks 0 and 1

 push hl
 push de
 push bc
 push af
 ld a,3 ; Read stick 0 and 1
 ld ix,StickData ; Where to put the results
 call 0fd3eh ; Use EOS to read the controller
 pop af
 pop bc
 pop de
 pop hl

 .db 0
 .db 0
 .db 0
 .db 0
 .db 0
 .db 0
 .db 0
 .db 0
 .db 0
 .db 0

New Adam Software: ColecoVision Experience Volume I & II

The ColecoVision Experience (Volume I & II) is new software written to take advantage of the VDD. Each volume is a 2mb image that contains over 60 Colecovision cartridge games that you can load from an easy to navigate menu on the Adam or within the ADAMem emulator.  There will be more software from ADAM-WARE soon (

This is the Beta version, once I am sure all of the ROM files work I will remove the beta instructions.


From the Read Me file:

There are 2 image files in this zip file ColecoV1.dsk and ColecoV2.dsk. Each is a program that will allow you to select a Colecovision game and load it from a menu. Volume 1 has 67 titles, volume 2 has 65. When the system loads press Escape to the help screen which describes which key does what. The system will remember which selection you made so the next time you reset it will go to that selection. It also remembers the colors you change the screen to.

What I would like you to do is not play the games, but test to see if each game loads and is playable. I have had issues with a few games (Alcazar, Beamrider, Pitfall to name a few) but I believe that the CV board in my Adam may have a memory issue so this is why I want you to test it. If your VDD times out when loading a ROM you will get an error screen telling how to correct it. If you want to know what that error screen looks like, at the menu unmount the VDD and then select an item to load.

If a ROM doesn’t load correctly use the Debug mode to verify that the ROM actually did load in memory. To do this, reload the program. Press TAB. You will see periods down the left column of the screen. Then select the ROM you had issues with. Instead of jumping to the ROM you should see the ROM code on the screen. If it is all 0’s then the ROM didn’t load, it is is a bunch of numbers then it did but will not run for one reason or another.

Thank you for offering to assist.

Please let me know which of the following ROM’s you have issues with by putting an X before the name and sending me back the list. If you could also tell me what hardware you have so I can see if there is a pattern to any ROMs not loading (ie ram expansion, disk drives etc).

ColecoVision Experience Volume I

Alcazar – The Forgotten Fortress
Alphabet Zoo
Amazing Bumpman
Antarctic Adventure
Artillery Duel
B.C.’s Quest for Tires
B.C.’s Quest for Tires 2 – Grog’s Rev.
Blockade Runner
Boulder Dash
Brain Strainers
Buck Rogers – Planet of Zoom
Bump ‘n’ Jump
Cabbage Patch Kids – Adv. in the Park
Cabbage Patch Kids – Picture Show
Campaign ’84
Chuck Norris Superkicks
Congo Bongo
Cosmic Avenger
Cosmic Crisis
Dance Fantasy
Decathlon, The Activision
Donkey Kong 24kb
Donkey Kong 16kb
Donkey Kong Junior
Dr. Seuss Fix-Up the Mix-Up Puzzler
Flipper Slipper
Fraction Fever
Frantic Freddy
Frogger II – Threeedeep!
Front Line
Gateway to Apshai
Gust Buster
Heist, The
It’s Only Rock ‘N’ Roll
James Bond 007
Jumpman Junior
Jungle Hunt
Ken Uston Blackjack-Poker
Keystone Kapers
Lady Bug
Learning with Leeper
Linking Logic
Logic Levels
Memory Manor
Meteoric Shower
Miner 2049er
Monkey Academy

ColecoVision Experience Volume II

Montezuma’s Revenge
Motocross Racer
Mountain King
Mouse Trap
Mr. Do!
Mr. Do!’s Castle
Nova Blast
Oil’s Well
Omega Race
Pepper II
Pitfall II – Lost Caverns
Q-Bert’s QUBES
Quest for Quintana Roo
River Raid
Robin Hood
Roc’N Rope
Rock n’ Bolt
Rocky – Super Action Boxing
Sammy Lightfoot
Sector Alpha
Sewer Sam
Sir Lancelot
Smurf Paint ‘n’ Play Workshop
Smurf Rescue in Gargamel’s Castle
Space Fury
Space Panic
Squish’Em featuring Sam
Star Trek – Strategic Operations Sim.
Star Wars – The Arcade Game
Strike It!
Super Action Baseball
Super Cobra
Super Cross Force
Super Sketch – Sketch Master
Tank Wars
Telly Turtle
Time Pilot
TOMARC The Barbarian
Tournament Tennis
Up’n Down
War Room
Wing War
WizMath, The Wizard of Id’s
Word Feud


64mb Smart Basic Disk Image

In a recent post I gave a quick update on creating a 64MB disk image that I was then able to copy to microSD card and then running a quick program I made that initialized the image to be 64MB in size I could access it on the Adam using microfox’s VDD.

I have since done more testing experimenting and I was able to get a copy of Smart Basic onto the image and have it boot from the image and have access to the whole 64mb. This involved a few steps:

  1. open up the new image in FileManager and using the edit block function look at block 1, the directory block, and see what values it had for total blocks on disk, in this case FFFFh (65535) and how many blocks left, FDFFh (65533)
  2. open up an image of smart basic and look at its directory block, its total blocks was A000h (160) and blocks left after having basic as 7A00h (122)
  3. now I used the block copy feature to copy the 160kb smart basic image to the 65mb blank image. When done the image is still 65mb but the directory block on the image only reports back a 160kb image size
  4. now using file manager again I go into block 1, the directory block of the 65mb image and change A000h to FFFFh and after the blocks left I changed &A00h for E5FFh, this is FFFFh – 26, the number of blocks used by smart basic
  5. after these changes i saved them to the image and then rebooted

Here is the image to download – and it does work in the AdamEM emulator also! (BTW it is 64mb, I typed 65mb in Smart Basic)

Coleco Adam Replacement Power Supply Project

Front of power supply – click for larger image

Update: These are now available! Click here for details

I am currently in the process of finishing up a replacement power supply for the Adam. It uses a proven power supply that I have been using on the Adam for the past 2 years and other off the shelf components to make a very sleek replacement power supply for the Adam. This will be available September 2018 through Retro System Rescue with a list price around $99 depending on the price of the components. If you are interested please leave a comment telling me how many you are interested in so I can get a rough idea how many to make in the initial build.

Back of power supply, click for larger image

The replacement power supply will also have the following features:

  • Lighted on / off switch
  • 2 Adam Net ports
    plug in disk drives and /or the microFox VDD, eliminate daisy chaining
  • Printer plug
    plug in the Adam printer and be able to use it as a printer and not a power supply (this is accomplished by only passing the data lines to the printer, printer still needs to be plugged into the wall)
Power Supply

If you wish you can also wire the microFox VDD and / or the microFox CF / IDE to the power supply and eliminate the need for the additional power supplies they use.


Here is the initial wiring diagram for the power supply.

Data Pack Image to Disk Image

I recently found myself needing to create a few CP/M data packs for customers. This is normally no problem, but I needed to load them with programs. Since I normally use the VDD all of my files are in disk images, and a CP/M disk image is limited to 160kb, where as a CP/M data pack image is 256kb. The total amount of the programs was around 200kb so I would need to import files from the PC into 2 CP/M disk images, move those images via microSD card to an Adam and then copy those to a CP/M data pack. This is very tiresome and if you have ever copied files under CP/M it really abuses the data drive. For other purposes under EOS, I normally just copy disk images to data packs and let Backup+ 3.0 correct the directory. This is a simple block copy and it works fast.

File Manager settings for copying a data pack turned disk image to a real data pack on the Adam. Note the 320k disk drive to allow for accessing mare than 160 blocks on the disk.

So I thought to myself, why not take the tape image with is 256 1kb blocks in sequential order and interleave the 256 byte records so it is now a 256kb disk image. The VDD does not care what the size of the image is. Then I can just use File Manager to do a block copy and have the CP/M image on tape. in one pass, no copying of individual files and abusing the data drive.

Included in this post is a DOS program (requires DOSBOX under windows 7 and up) that takes a data pack image (.ddp) and makes a disk image (.dsk) for you. I am also including the source code in Turbo Basic so you can see how it works.

The following zip file has a copy of the Dragon’s Lair Data Pack image and a conversion to a 256kb disk image which you can use with the VDD or in your emulator or copy back to a data pack using the File Manager Method above.

This zip file contain’s the data pack game “2010 – The Text Adventure Game” converted into an interleaved disk image as the disk image does not contain the ending sequence.

Fix It Guide: Coleco Adam Controller

The extra line is the Smart Basic cursor being caught by my screen capture program.

I have added a new video on YouTube on my Retro System Rescue channel that gives details on how to disassemble and recondition the Adam controller. In this video I make use of a simple program I wrote that lets you test all aspects of the controller in Smart Basic.

Here is the program for you to type in if you want to test your controller:

In this program I am using the values of the controller to make characters inverse if the controller is being activated. For instance on line 200 I take the value of PDL(5) and compare it to the value of 1. If they match then the result is 1 and I multiple it by 128 and add this to the ASCII value of the letter U to get an inverse U if the controller is being press up. Any other value returned by PDL(5) will cause this formula to show a normal letter U.  If you wonder why I use an ‘*’ for the ‘#’ sign on the controller this is because the number sign has the ASCII value of 35 and when you add 128 this actually tells smart basic to backspace on the screen. So I used the ‘*’.