Jump to content

1

TIA programming guide by COLECO

tia programming

12 replies to this topic

#1 alex_79 OFFLINE  

alex_79

    Moonsweeper

  • 336 posts
  • Location:Italy

Posted Thu Oct 25, 2012 6:56 AM

I found a scan of a VCS programming guide from Coleco. I 'collect' all the tech docs about the VCS that I can find on the web and while I had quite a few versions of the "Stella Programmer's Guide" from Atari I never saw this one before. The file can be found on "The ADAM Resource" website in the technical manuals section. The doc is called "Coleco TIA.pdf", it lacks a few pages which are on another file "Coleco TIA Schematic.pdf" on the same web page. I haven't read it entirely yet, so I could be wrong, but I think the only reference to Coleco is in the filename. TIA is referred to as VIC (Video Interface Circuit)

It seems to me more detailed than the Stella Guide in describing the VCS workings (it also include code snippets in asm), so it might be useful for someone learning VCS programming. The only drawback is that it uses different names for the TIA registers and graphical objects than the 'standard' ones. Here's a corrispondence table:



Object A,B   -> Player 0,1
Projectile A,B -> Missile 0,1
Border -> Ball
Foreground -> Playfield

TIA registers:

VBLNK = VBLANK
HSYNC = WSYNC
CRHOR = RSYNC
OBASR = NUSIZ0
OBBSR = NUSIZ1
CLROA = COLUP0
CLROB = COLUP1
CLRFB = COLUPF
CLRBG = COLUBK
BDRSZ = CTRLPF
OBADR = REFP0
OBBDR = REFP1
FGNDA = PF0
FGNDB = PF1
FGNDC = PF2
CROBA = RESP0
CROBB = RESP1
CRPJA = RESM0
CRPJB = RESM1
CRBDR = RESBL
SNDAS = AUDC0
SNDBS = AUDC1
FREQA = AUDF0
FREQB = AUDF1
LVLSA = AUDV0
LVLSB = AUDV1
OBJAF = GRP0
OBJBF = GRP1
PJAEB = ENAM0
PJBEB = ENAM1
BDREB = ENABL
HMOBA = HMP0
HMOBB = HMP1
HMPJA = HMM0
HMPJB = HMM1
HMBDR = HMBL
OBARS = VDELP0
OBBRS = VDELP1
BDRES = VDELBL
PJATK = RESMP0
PJBTK = RESMP1
HMENB = HMOVE
HMRST = HMCLR
OCRST = CXCLR


I integrated the pages from the two PDFs into a single document in the correct order and also rotated those with diagrams in landscape orientation to make it easier to read on a PC monitor.
I always prefer the DJVU format for scanned documents as it results in smaller file size and the viewer software is lightweight and fast even on old pc, so I converted the document in this format. I added OCR text as well so it is now searchable.

Here is the link of the fixed file, I also included a PDF version, but it lacks the OCRed text.

DJVU
PDF

#2 SeaGtGruff OFFLINE  

SeaGtGruff

    River Patroller

  • 4,988 posts
  • Location:Georgia, USA

Posted Thu Oct 25, 2012 9:35 AM

Thanks, very interesting!

#3 ClausB OFFLINE  

ClausB

    Dragonstomper

  • 776 posts
  • Location:Michigan

Posted Fri Oct 26, 2012 8:12 PM

Interesting indeed! Quite a piece of reverse engineering, with video and sound waveforms, disassemblies, even a chip layout. Did they decap it way back then? Did they have consultations with former Atari programmers? I wonder.

#4 SeaGtGruff OFFLINE  

SeaGtGruff

    River Patroller

  • 4,988 posts
  • Location:Georgia, USA

Posted Fri Oct 26, 2012 9:31 PM

View PostClausB, on Fri Oct 26, 2012 8:12 PM, said:

Interesting indeed! Quite a piece of reverse engineering, with video and sound waveforms, disassemblies, even a chip layout. Did they decap it way back then? Did they have consultations with former Atari programmers? I wonder.
Yeah, some of the information seems a little too detailed to have been discovered through reverse engineering. It makes me wonder if they'd managed to get their hands on the TIA schematics? As for the different names used for the registers, maybe they did that so they could say their chip was different? "Your Honor, Atari's TIA chip had the registers shown in Exhibit A, whereas our VIC chip has the registers shown in Exhibit B. Clearly we did not plagiarize their TIA chip!" :D

I also think it's interesting that the document uses the NTSC color frequency-- ca. 3579545 Hz-- rather than the 3579575 Hz frequency shown in the 2600 schematics. I wonder if Coleco's 2600 clone used a 3579545 Hz crystal instead of a 3579575 Hz crystal like Atari did?

#5 Tjoppen OFFLINE  

Tjoppen

    Chopper Commander

  • 174 posts

Posted Sun Oct 28, 2012 2:41 AM

Great find

#6 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 22,600 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Sun Oct 28, 2012 4:24 AM

Are the files too large to ZIP up and attach to a post?

#7 alex_79 OFFLINE  

alex_79

    Moonsweeper

  • 336 posts
  • Location:Italy

Posted Sun Oct 28, 2012 9:56 AM

The files are 2.8Mb (djvu) and 5.2Mb(pdf) and they won't compress enough to match the size limit (2Mb) for attachments on the forum.

I can upload split archives, if you want, but I must also change the file extension to something accepted by the forum software and you'll have to rename them before decompressing.

#8 Tjoppen OFFLINE  

Tjoppen

    Chopper Commander

  • 174 posts

Posted Sun Oct 28, 2012 9:59 AM

Here, I uploaded the PDF: http://www.acc.umu.s.../Coleco_TIA.pdf

#9 GroovyBee OFFLINE  

GroovyBee

    7800 Developer

  • 7,101 posts
  • Busy bee!
  • Location:North, England

Posted Sun Oct 28, 2012 10:03 AM

You could ask Albert to host them directly on AA. Just drop him a PM and see what he says.

#10 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 22,600 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Sun Oct 28, 2012 10:13 AM

View PostTjoppen, on Sun Oct 28, 2012 9:59 AM, said:

Here, I uploaded the PDF: http://www.acc.umu.s.../Coleco_TIA.pdf

Thanks.

#11 SeaGtGruff OFFLINE  

SeaGtGruff

    River Patroller

  • 4,988 posts
  • Location:Georgia, USA

Posted Sun Oct 28, 2012 8:34 PM

One thing I noticed about the VIC pinouts is that the chip select lines are in reverse order from the TIA chip.

#12 RevEng ONLINE  

RevEng

    River Patroller

  • 2,503 posts
  • bit shoveler
  • Location:Canada

Posted Sun Oct 28, 2012 9:12 PM

I hate it when linked material goes away. :)

Attached Files



#13 nanochess OFFLINE  

nanochess

    Dragonstomper

  • 509 posts
  • Coding something good
  • Location:Mexico, Mexico

Posted Fri Nov 2, 2012 11:48 AM

Very well explained. I'll see if this time I code finally some Atari subroutines. Though I think my 6502 abilities are somewhat oxydized. :-D





Also tagged with one or more of these keywords: tia, programming

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users