1. Does the GetFidNumber macro return an index into the database given a File ID, as it appears? This seems to me as the only method of making this a bidirectional system of operation.

given a file couple : 89d1/89d0, you can get the database entry by shifting 4 places to the right, leaving 0x89d. Substracting 16 from that leaves 0x88d, so the file's tag-info should be at entry 2189 of the database

2. Are File IDs unique across both drives? From what I can tell, not all tunes in the database have a tag to tell you whether they are located on Drive 1 or Drive 0.

They are unique. Files are searched on both drives. Files are written on the disk that has most free space available.

3. Would it be advisable to clear out these deleted entries in the database once in a while? Presumably I would delete the database, tags, and playlists files in order to force Emplode to rebuild them.

Also my idea at first. Then I started hypotheticalizing :
What if I decided to upload all Monty Python one-liners as single MP3's on my empeg, which could account for more than 25.000 database-entries.
Let's presume the tag data for every file is 200 bytes on average. So 25000 * 200 bytes = 2500000bytes = 4.76Mb. If I decide a week after to delete every MP MP3 and replace it with some multiple-hour-long classical masterpieces, about 150, I would have a lot of unused database-space : (25000-150)* 200 = 4.74 MB.
It shouldn't be much of a problem in emplode or in terms of disk-usage, but I hope the player-app deletes the unused entries after reading the database...
_________________________
Frank van Gestel