Hi all, For those of you who were interested in my free IDE interface hardware project (http://s.guillard.free.fr) : - the initial low level routines were written in assembly. They only offered sector R/W support, and MBR analysis. - I am currently finishing a "modular OS" for the FAT HD, completely written in C. It compiles under Windows with the CC65 package (see http://www.cc65.org), which I have completely integrated in Microsoft Visual C++ 6 (so as to edit using all features of MSVC, compile w/ cc65, handle compile errors w/ MSVC etc.). At the moment, I have : o complete low level device interface (reset, handle PIO mode 1 xfer etc.), analyze MBR, analyze partition table, analyze 1st partition BPB, find root dirs, geometry etc. o complete sector routines (with LBA <-> CHS calculation etc.) o almost complete FAT16 filesystem support, including cluster chain allocation / free, directory tree traversing routines, etc. o almost complete POSIX like API, which I will use to remap DOS3.3 and ProDOS calls to enable old software to run as is with HD o directory hierarchy support o an interactive sampler included, allowing navigation in directory tree, file ASCII or hex dump etc with your everyday FAT16 files. A snapshot of this work is available in http://s.guillard.free.fr/csrc (both source and a test binary). Note : this is not the final release, even not the current state (something like 2 weeks old :-) Simply download the binary to the Apple 2 (I use Kermit) if you have built the hardware, then run the file and play. Future (to try to put things simple :-) : - finish the POSIX api (will be done by the end of current week, since only write(), lseek() and chsize() are left to write, and by comparison, the following ones are finished : access(), chmod(), close(), creat(), dup(), dup2(), eof(), filelength(), open(), read(), tell(), umask(), unlink() !) - separate software into : . a relocatable binary with only the strict minimum to navigate dirs, launch executables and POSIX minimal set of functions as support for external commands (like Unix). Target is to have around 4K of resident. Will require assembly rewrite, but very easy now as it works in C and CC65 produces intermediate ASM source. This module will be sufficient to copy old programs from floppy to HDD, and run them from there as long as they don't do disk I/O (because the calls would go to floppy). I imagine this resident module could also be made in ROM on the IDE adapter, with a paging system to keep it in the 2K area allocated to board ROMs. It would be tricky but it would maybe allow also autoboot from HDD and would solve problems of finding a valid memory mapping under DOS and ProDOS. . external commands provided as executables for things like cat, rm, mkdir, mv, cp, ls etc. They will be on the HD itself and the resident will try to run off the HDD any command it does not parse itself. . optional remappers for DOS3.3 and for ProDOS, which will enable old software ran from HDD to find their files on the HDD itself instead of floppy. I'm still a long way from there, but I work on it almost every night, and my MSVC + CC65 package is very efficient. I am also motivated, since it is a real pleasure to see things building up on top of a self made hardware project. The interface between modules will be a simple vector table, so with only 1 16 bit base address of the table, each module will dynamically link to others. -- Stéphane GUILLARD - stephane.guillard@steria.fr T : (+33) (0) 4 72 13 37 10 - F : (+33) (0) 4 72 35 99 22 - M : 06 09 41 78 A2KB3.9Ecs2M/GVP-M68060-60+64M+4.3G+32x/CV64-3D+SD A4K3.9/CSPPC233-060+CVPPC+128M+4.3G+32x/PicassoIV-Concierto-Paloma/AriadneII