CDTV
News.
What is a CDTV?
The making of the CDTV.
Using a CDTV.
CDTV Upgrades.
CDTV Software.
CDTV Projects.
Links.
Developing.
FAQ's

Others...
The CDTV 2
The A570
The CD32

Misc....
Adverts/Reviews.
Forum
CDTV Users Club
Support us

Web Master:
Contact Me.
About Me.
My other web sites.
Coldfire Amiga project.

Developing For The CDTV.

Developing (AKA Making stuff, Hardware or software) for the CDTV is very much like developing for any Amiga computer, Mainly because apart from the CDTV's added screens and CD-Rom it is a stock Amiga 500 with 1 Meg of memory (But programs for the CDTV should only use approximatly 750Kb if at all possiable due to the CDTV's drivers taking up a lot of room when loaded.), The CDTV uses Kickstart version 1.3 which you will need to take into account (Even if your designing hardware).

Making Software.

The Amiga range of computers have a wide range of programing tools, C & C+ compilers are mostly used (As they require only a small amount of Amiga generic info) but Assembler is also fully supported (Which lets you get a little more speed if you are good but requires a lot of knolage on the Amiga's CPU specially but also the hardware you are using), If you are a novice at computer programing then there are special "Easy To Learn" programing languages including such like Amos and Amiga Basic plus the normal collection of WYSIWYG program makers like The Reality Construction Set & The Shoot em up construction kit which anyone with some time and very basic computer skills could make scrolling shoot em ups and platform games.
Making a game specifically for the CDTV using a WYSIWYG program is not possiable and nor really needed, The only thing you will need to do, The main thing to do if you are using such a program is burning it onto a CD, These CD's are not standard ISO9660 (Cross platform standard) and although the CDTV canread such CD's it cant boot of them, You will need to use an Amiga burning program (Either on an Amiga or through emulation on a PC or Mac) which almost always have the ability to add the CDTV "Boot Block" to the CD. More on this latter.
Adding special CDTV features to your program using either a C or assembler programming language is very simple, First the cdtv.device, This device lets you play, stop & fade CDDA tracks, Changestate (Which lets you check if something is in the CD-Rom. (May not be a formated CD-Rom), disable/enable external CD-Rom controls (IE: The play, Stop, << & >> buttons on the front of the CD-Rom), Genlock mode, CD-Rom motor control, CD-Rom info, Play CDXL files, Reset CD-Rom and (Personally) best of all, Write to CD-Rom.
(Excert from CDTV AutoDoc: cdtv.device/CDTV_WRITE
FUNCTION: This command writes data to the CD-ROM at the current seek position. Note that reading the data back might be difficult...
RESULTS
The line voltage is switched through to the laser, causing it to go PHWATTTT!!! and burn enormous holes in the CD-ROM, through the top of the case, and through whatever stereo component happens to be on top of the CDTV.
We recommend invoking this command if you detect that a CD-I or MPC player has been placed on top of the CDTV.
This command always returns CDERR_WRITEPROT (disc is write-protected). End of excert.)

Player Prefs let you load the CDTV preferences screen, centre your display to those stored in the preferences, calculate intermediate colours, Tiling background, decompres Debox image, InstallJoyMouse (activates joy/mouse button), InstallKeyClick (Generate a tone when a key is pressed, Like in Audio CD Player.) & Installscreensaver.

There is not enough room to go into detail here about usage and every command, If you do go into programing you will probably buy the Amiga Developers Kit (Currently V2.1) which has the CDTV's developers info, Example programs, a C compiler & lots more.)

Making Hardware.

OK, Making hardware, Now I will guess you know a little about what you intend to make so the main things I will go into will be CDTV ports (Pinouts and such like), A detailed spec of the CDTV and how the CDTV configures expansions.
Starting with the Detailed information on the CDTV: The CDTV uses a Motorola 68000 16 Bit CPU (Details on this and other Amiga CPU's are available from Motorola's site at www.mot.com), Now is a good time to say that I have got permission from Darren Ewaniuk to put his CDTV Technical Information site up (After being taken down in July 1997) on this server @ www.cdtv.org.uk/cdtv-technical.html., He was the main developler at Amitrix (Who made the SCSI-TV SCSI interface for the CDTV (And others that never got launched)), This site has the pinouts to every port on the CDTV (So I wont put them up on this page aswell, It would just mean you would have to read it twice), Port order numbers, All known upgrades (To him) and other great things.

Ok, now you have visited Darrens web page (You have havent you?) we can continue.
The CDTV, like all OS1.3 and better Amigas use the Autoconfig system, You can think of this like a "Plug and Play" system but it has much more power and has the drivers built in to the card.
Autoconfig is actually a library in the CDTV's Kickstart called Expansion.library, On boot up the kickstart loads and then looks on the expansion bus for cards waiting to configure, It then goes through them one at a time (By using a configin and config out signal on each slot which when recived starts the cards configuration and when finished the signal goes out the config out to the next card), When the expansion recives this signal is sends the CDTV information including maker (Which was a number assigned by Commodore when you joined the CATS (Commodores Developers club) but now just pick a number that hasnt been used) card model (A number that you can pick), Space needed for the card (Normally 64Kb but can be upto 8 Meg on a CDTV or 2 Gig on a A1200, A3000 or A4000, (001 for 64Kb,010=128Kb,011=256Kb,100=512Kb, 101=1Meg and so on till 8 Meg is reached)) The space needed can be worked out (Simply) by just seeing how much memory is on the card, If there is none thenits 64Kb you need, If theres 1 Meg then you need 1 Meg and so on, You can also divide the space needed into sections, For example a memory section (Like 4 Meg on a 4 Meg graphics card) and an IO section (64Kb), This makes things simple when it comes to the software and also keep Z2 fall back on Z3 cards (Otherwise it would all be in Z2 16bit mode and for graphics cards this wouldnt be good as speed is important).
Software can also be loaded through the Autoconfig system, For example Commodores 2323 8 port serial card configured itself as extra ports on the serial device instead of using its own 2323.device or such like, This means the card is there every time, Not just when using Workbench.
Address space is alocated to the chip after all of this is done (You dont need to know what space it uses, The CDTV will handle all of that) and then the cards ready (Dont forget when your finished to put a signal down the Config out as it may hang the system if you dont.). Now the card will just wait (As there are no requests for it), If it wants to jump in it is welcome to try (For example a device attached to it is up to speed and is sending info) but it may instantly get sent a Shutup signal, It then MUST wait untill the signal is lifted before it can continue (Then the other cards will get sent the signal if they try). This signal is very important for graphics cards and IDE or SCSI interfaces as data corruption will occur.

Ok now all of that is done, All the cards are configured on the bus the CDTV continues (If a card fails in its autoconfig the CDTV will put up a red screen with the ability to disable the card).
If you wish you can leave out the auto config PIC and mount the card from the CLI (As you had to with Pre kickstart1.3 systems)This has very few advantages (if you only want the card mounted for one user or want it to work with pre1.3 systems or you want to save a little bit of cash) but can be done, Just write the info above into an unformated txt file and put it into the expansions drawer of workbench, It will then load on bootup.
The Auto Config system is covered in great detail by Commodores Hardware Reference Manual (3rd Edition), The complete reference manuals (including everything you could ever want to know) are still available (In an electronic form) on the Developers CD (Along with the CDTV developers kit (And developers kits for every Kickstart made (Even V1.4))and other great tools) available from most Amiga shops.
The Autoconfig system is also used for CPU upgrades (Like the A2630), Normally its used for making a menu screen (Like a BIOS on a PC (But each card can have its own)) to select the fall back mode, config memory or any other expansions on board (Normally an SCSI interface is added to CPU upgrades).

OK thats the Auto Config section gone over (Badly but you should read the reference manuals), The pinouts are on the above link along with the CDTV's memory map (For all its worth) so there isnt much left. The CDTV does have a small gap between the motherboard and the case, a PCB will fit in fine but if possiable mount the chips facing back down to the motherboard, There is enough room to put a socketed chip on top of the PCB but memory sims or even ZIP's are out (Although Elbox did use ZIPs you could put a monitor in the wrong place and break the motherboard in half so as far as customer satisfaction goes I wouldnt do it).
one major thing to note is that the Configin and out on the diagnostic connector some how ended up getting grounded so a workaround would be needed. 1: A wire to pin 72 of the Dmac to get the config in (As there will only be one card connected to the connector no config out is needed). 2: Have your card look for a config or Shutup command from the Dmac, Then assert an internal /configin. The last one is the best but Amiga users are not dumb and they will all be able to connect a wire with a clip to the correct pin (although a diagram of the Dmac with an arrow might be nice).

i think I have covered everything, Offcoase you can have a mixture of hardware and software if needed, The CDTV does, It would be a standard A500 if it didnt have two Proms (Which dont have a name so I just call them proms, Because they are) with a software patch to add good looking screens.
Another note, Dont power anything using the CDTV's power suply, what I mean is, No harddrives, CD-Roms, USB ports or that sort of thing, The PSU wont take it (Well it will take 2 USB ports but a third will blow its fuse every time).

Adapting hardware to work on the CDTV:
The CDTV has very few hardware upgrades available, And what it does have are mostly the same (3 SCSI interfaces and not one IDE, 7 Infra red mice/tracker balls/joypads and no IR joystick or for that matter no joystick at all) so adapting an Amiga 500 or Amiga 2000 upgrade is a good idea, The diagnostic connector is just like the A2000s zorro port & A500's Side Expansion connector and is very much like the A2000 CPU port which can take upto a 68060 CPU (good enough to write this web page on :) and play a few games).
Adapting the hardware isnt that hard so I am giving it a try so for more info look at the projects section.