Paul, Finally: My ATAPI support project. I hope you can handle ZIP files... (Is send directly to you, not to the group) >>>>> \[\A0\@!0PJRC MP3 Player 0.6.99\] MP3 Player with ATAPI support, Version 0.6.99, June 16, 2002 Copyright (C) 2002, PJRC.COM, LLC <<<<< Changed files: I fetched my files from CVS on June 6 20:43, so most files have that date. All newer files are thus modified by me. The list (you're lucky) of changed files is not that long: - malloc.c + .h: Added addrC() - dirlist.c + .h: Added ATAPI support - playlist.c - Ata.c + .h: The Ata stuff needed by ATAPI - Atapi.c + *P.h + .h: Think twice... - main.c: Added ATAPI support - as31glue.asx: Added some assembly functions for ATAPI - drivers.asm Added some assembly functions for ATAPI. Most are not used anymore... - Makefile Added ATAPI support & modifications for Win2K (doesn't know rm -f) Current implementation issues: - the compiled Atapi.asm file is as big as the drivers.asm file ;-) - Only the player.hex file works, due to size problems. You have to use Z to erase the EPROM. Others do NOT work! - It is assumed (on some places) that the CD rom is device 1 and the harddisk is device 0 on the IDE bus - CD is read on startup only, and the playlist is only setup for the CD - ISO useless (8.3 filenames) is supported including Joliet (long file names) - A max of 255 directories are supported (I'm using an unsigned char...) - Since the song is read into memory using PIO, it takes about 100sec to fetch a song before it is played - I myself have no proof that a song is actually played, other than believing the terminal output. My player is not attached to any soundsystem whatsoever (broken cables, did not get new ones yet...) - I used a NEC 5800A DVD player and an old HP 7200i Writer to test the implementation Yet to be done: - DMA support - New state diagram to support CD insertion & removal - Multiple device support for the playlist (for every file it should be known whether it is on device 0 or 1) - Better error handling (in combination with CD insertion & removal) - Multisession support (not much work) - Adding more ATAPI documentation & design issues Yet to be decided: - Should it be possible to play songs from more than one device, or MUST the user select one ??? Or does the player automatically switch to CD if a CD is inserted ????????? In my opinion it should be possible to play from more than 1 device. This would mean adding playmodes !! (all devices, harddisk, CD only or something like that !) Questions: - If you need to rewrite some of the functions in assembly, could you do them inline for the time being ????? I hope I didn't leave something out. Marco. BTW: The ZIP file only contains the *.h, *.c, *.asm *.asx and the Makefile files.