RobC wrote: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:
Wonderful! Well done!
RobC wrote: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.
I'd recommend "our" standard format: 256 bytes per sector, 10 sectors per track, starting at sector 0, tracks counting up side 0, then counting up side 1 (400K for 80T-doublesided). As things progress we can add 16-sector tracks if the host's controller supports them (640K for 80T-doublesided) or even 720K using a DOS physical format.
RobC wrote: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.
The Flex disk format reserves the first 512 bytes of the filesystem for system-specific data boot sector data. I'd recommend that we put a standard DFS catalog in that first 512 bytes - ie sector 0/00/0 and 0/00/1 - and put two files in that catalog: !BOOT and FLEX, both of which point to boot code to load the Flex system either with *FLEX
Now, here's the clever bit: the catalog entry for !BOOT and FLEX can actually point to the 512 bytes that are the catalog, so the rest of the catalog space can actually hold the Flex bootstrap! Lay out the first two sectors like this:
Code: Select all
0000 EQUS "FLEX DIS"
0008 EQUS "!BOOT $"
0010 EQUS "FLEX $"
0020 Boot code
0100 EQUS "K ":EQUB 0:EQUB &10:EQUW &0220
0108 EQUW &C100:EQUW &C100:EQUB &0200:EQUB &0000
0110 EQUW &C100:EQUW &C100:EQUB &0200:EQUB &0000
0120 more boot code
This will give a catalog that looks like this:
Code: Select all
FLEX DISK Option 2 (Run)
$.!BOOT 00C100 00C100 000200 0000
$.FLEX 00C100 00C100 000200 0000
The boot code would then load the Flex root directory and look for a "FLEX.SYS" file (or whatever it should be called) and load and enter it. This is how HADFS system disks work.
I'll put together some initial boot code when I get to Sellafield.