As I mentioned in the OmniFlop thread, I've managed to get Flex up and running.
I had to upgrade the 6809 code to v0.25 but it will now boot, run commands and read a Flex system disk:
I'm using a system disk that I created with OmniFlop as I haven't written a routine to created Flex formatted disks on the Beeb yet.
Oddly, I've got an intermittent bug when writing to disk/saving data from Flex. It's odd because it sometimes works and the write sector code is identical to the read sector code (apart from the operation number). Reading seems to be consistently reliable.
I'll try to do some debugging in the next couple of days...
As Flex doesn't seem to mandate a particular disk setup, I'd also welcome feedback on what this should cater for - I'm currently using two drives: one to hold the DFS disk with the BFLEX code and the other to hold the Flex system disk.
As Flex immediately looks for a Flex disk in what it sees as drive 0, the Flex drives are mapped in reverse to the way they are on the Beeb (0 becomes 1 and 1 becomes 0) so that I can boot with the DFS disk in drive 0 and Flex format disk in drive 1.
I could put the BFLEX routine in ROM and then leave both drives free to hold Flex disks. Or I could put a delay in the Flex boot process to allow for the swapping of disks. Both options would then allow for use with single drive setups.
Also, I'm currently using an 80T, single sided, single density disk image but I need to see what the majority of Flex software disk images uses. (Although the FloppyMaint utility I posted above will allow you to copy software from one disk image type to another.)
One other consideration is that I couldn't get OmniFlop to work with my 5.25" drive (even though it seems to have the required jumpers to switch between Beeb and PC usage). So, I'm currently having to use 3.5" disks (and consequently 80 tracks).
Thoughts on any of the above would be very much appreciated.
Once I've sorted out the write problem, I'll give it a good testing and then release the code.
Cheers,
Rob