Page 1 of 1

VDP memory organization

Posted: Mon Aug 05, 2019 9:41 am
by Wmaalouli
This is a repost of Milli's excellent breakdown of the VDP memory organization table for those interested in accessing graphics via assembly language (form the AtariAge forum). I thought it would be easier to find and more relevant here. I just clarified the titles of each section based on the TI nomenclature.

-------------------------------------------------------------------------------------

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 (Pattern Descriptor Table)

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 (Screen Image Table)

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 (Color Table)

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 Descriptor Table)

3880h - 38FFh (Sprite Attribute List)

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

Re: VDP memory organization

Posted: Fri Aug 16, 2019 12:52 pm
by Wmaalouli
I thought this might be useful for anyone trying to understand how the VDP is organized and how to use it. It's an excerpt for the TI 99/4A computer Editor/Assembler manual, and it goes into great detail not otherwise easily available for the Adam.

Re: VDP memory organization

Posted: Sat Aug 17, 2019 7:22 am
by Milli
Thank you for posting this - once I get back in to coding in a week or 2 this will come in handy.

Re: VDP memory organization

Posted: Sat Aug 17, 2019 4:06 pm
by Wmaalouli
One important difference between the set up of the VDP on the ADAM compared to the TI 99/4A is that the bitmap display on the ADAM disables interrupts in VDP register 1 whereas on the TI they are enabled. Therefore, the standard content of VR1 for the ADAM for the bitmap mode is $C0. It took me a while to figure this out while ripping my hair trying to understand why the screen was getting corrupted! :mrgreen:

Re: VDP memory organization

Posted: Sun Aug 18, 2019 8:29 am
by Milli
Wmaalouli wrote:
Sat Aug 17, 2019 4:06 pm
One important difference between the set up of the VDP on the ADAM compared to the TI 99/4A is that the bitmap display on the ADAM disables interrupts in VDP register 1 whereas on the TI they are enabled. Therefore, the standard content of VR1 for the ADAM for the bitmap mode is $C0. It took me a while to figure this out while ripping my hair trying to understand why the screen was getting corrupted! :mrgreen:
I bet this is my problem too! It works fine in the Emulator but on real hardware garbage