Jump to content

Milli Vee's Photo

Milli Vee

Member Since 12 Apr 2017
OFFLINE Last Active Yesterday, 5:43 AM

Posts I've Made

In Topic: CP/M related questions

Tue May 14, 2019 8:29 AM

I'll post this here but the discussion will be on FB

I have just finished reverse engineering how CP/M sets up the VDP. For those of you that want access graphics in CP/M here is the basic CPM VDP setup


Notes: CPM breaks the screen up into thirds: TOP, MID, BOT
CPM uses a sprite for the cursor

0000h - 07FFh Font patterns for the top 8 lines of screen

0800h - 0FFFh Font patterns for the middle 8 lines of screen

1000h - 17FFh Font patterns for the bottom 8 lines of screen

1800h - 18FFh Characters for the top 8 lines

1900h - 19FFh Characters for the middle 8 lines

1A00h - 1AFFh Characters for the bottom 8 lines

1B00h - 1FFFh Unused, CP/M may use for scratch RAM

2000h - 27FFh Colors for the top 8 lines of the screen

2800h - 3FFFh Colors for the middle 8 lines of the screen

3000h - 37FFh Colors for the bottom 8 lines of the screen

3800h - 387Fh Sprite Data, 128 bytes used for cursor

3880h - 38FFh Sprite attributes

3900h - 3FFFh Unused, CP/M may use for scratch RAM


In Topic: Two Mario’s in Donkey Kong?

Tue May 14, 2019 5:43 AM

I would say you have a bad RAM chip(s), something wasn't clearing / when you started it and now it just happens to be a dead RAM chip(s). For example the VDP had a standing Mario sprite setup and when the program went to make it not visible by moving it off the screen the RAM did not update, leaving it on the screen.


Also did you leave the RF modulator hooked up so you can verify that it is not the composite mod?



In Topic: CP/M related questions

Mon May 13, 2019 9:48 AM

So I made a little progress in figuring this out via the Hacker's guide and the Adam technical reference and it looks like ports 190 and 191 on the Z80 are mapped to the VDP and I should be able to access it using an OUT instruction in assembly. I need to experiment a bit though because the Hacker's guide does not give any examples on how to do it in practice.

Unfortunately, the OUT instruction is throwing a syntax error every time during assembly with the ASM assembler under CP/M even though I know my syntax is correct. 


This should work, transferring the 8-bit contents of register B to the port referenced by register C.

Does anyone here have any experience with the OUT instruction on the Adam?

HI - I have TONS of experience with programming the Adam and the z80 - it is better to contact me on FB or via email - I do not come on here often


William "Milli" Hicks

In Topic: Disk definition for Adam

Mon May 13, 2019 6:45 AM

On this topic. When I have tried to use ADAM Image Maker, it seems to corrupt the files. I have tried moving basic programs to a .dsk file and the programs are always corrupt.

Are you copying to DDP images or DSK images? DSK images are interleaved and DDP are not. I wrote a little utility to convert DDP to an interleaved image since the Emulator nor the VDD or ADE care about the size of the image. I'd share the utility but you need a 32 bit processor or DosBOX to use it since I like to write my utilities in Turbo Basic, a 1987 Borland program - I know I'm weird.



In Topic: Coleco Adam ADE Software

Mon May 13, 2019 6:41 AM

Version 1.0 of Image Manager for the ADE is now available at: http://adamware.us/ImageManager.php


Version 1 corrects a sorting issue, has a number of speed enhancements and adds Smart Keys. You can now use the smart keys to assign images to each of the 4 virtual disk drives and then reboot the system with the for drives setup. This eliminates the need to use the ADE controls for assigning images to the drives.