sarah-walker-pcem / arculator

Arculator
http://b-em.bbcmicro.com/arculator
GNU General Public License v2.0
56 stars 23 forks source link

Add emulation of HCCS A3000 IDE podule #47

Open rhalkyard opened 4 months ago

rhalkyard commented 4 months ago

I threw together an emulation of the HCCS A3000 IDE podule for some experiments I'm working on. If you'd like to add it to mainline Arculator, please feel free to.

On the IDE side, the emulation is complete enough that its IDEFS appears to work as it should. The original card also included a VIA, with the ROM paging outputs on Port A and a user port on Port B. I have not implemented this fully since I wasn't sure how to bring in the generic VIA emulation from podules/common/misc without messing up the include paths - instead I have just implemented some bare minimum Port A functionality to allow ROM paging to work.

The zipped ROM (imaged from my own card) is attached below. hccs_a3k_ide.rom.zip

sarah-walker-pcem commented 2 months ago

I'm having difficulty getting this working. Using a pre-existing hard drive image gives an error on startup - "Directory not empty" on RISC OS 2 and "Filecore error" on RISC OS 3. HCCS's IDE Manager claims "No IDE devices found". Any suggestions?

rhalkyard commented 2 months ago

Just stood up an emulated machine from scratch, and you're right, it doesn't quite work 'by default' - my apologies for not including more detailed instructions.

HCCS IDEFS does not handle a cleared CMOS very gracefully. Per the user guide you'll need to run:

*configure IDEFSDiscs 1
*configure IDEFSDisc 4
*configure IDEFSDelay 8
*configure IDEFSTimer 4
*configure IDEFSDircache 32 

to set it up for a baseline single-partition system.

Specifically, IDEFSDelay sets how long IDEFS will wait for a response when probing for a drive; a zero value here means that it will never check for a response at all and thus never 'see' any drives, giving the error message you described when opening IDE Manager.