BigEd wrote:
It feels to me that the most important variable is where RAM is to be found - presuming FLEX is to be loaded into RAM. And a part of that is whether RAM is contiguous. As to the rest of the address space, it doesn't matter too much whether it's ROM, I/O, empty, or an image of something else.
Perhaps you could list your targets and briefly tabulate their complement of RAM, in their various minimal, expanded, and maximal configurations?
Although you'll very likely not have Acorn's systems in your list, here's a sketch:
Yes, the location and availability of unused RAM is the primary determining factor.
The full picture is still incomplete as the use of zero page locations by various system components remains open to debate.
It is possible that multiple "standard" versions of FLEX can be built for any particular platform. For instance, it may be desirable by some to have $200 to $1FFF free for loading legacy software from tape.
Being on the other side of the pond, I am unlikely to have a real Acorn, especially if it requires a PAL monitor. Emulation provides a means to that platform, however.
---
The original target for the project was the Corsham 6502 CPU board for the SS-50 (SWTPC) bus. It has free RAM from $0 up to $DFFF; the monitor uses the upper 256 bytes for scratch memory. The original idea was that FLEX would load at the upper end of that RAM and set the MEMEND system variable to point just below the image. Now, the private portion of FLEX will use $200..$1FFF with the public part from $2000 and up.
---
From Dave at OSIweb,
Quote:
On the C1P, the Monitor ROM is at the top 2K from F800-FFFF. This is also true for systems (C1/2/4/8) with the CEGMON boot ROM. The C2/4/8 Boot ROM occupies the top 3 pages, FD00-FFFF, and the Floppy port is at $FC00. The vido memory starts at $D000. Some serial ports, etc. might be at $C000, so the safest bet is to use the lower 48K of RAM (0000-BFFF). On disk systems that also have BASIC in ROM, BASIC occupies A000-BFFF, so those systems would be limited to 40K.
On A C1P system, the floppy is at $C000, and BASIC from A000-BFFF, so again, 40K available.
The private portion will use what it can from $200 to $1FFF with the rest at the upper end of free RAM.
The nature of the OSI disk hardware may require several track buffers.
---
A fully expanded KIM-1 offers free RAM in two blocks:
$0400..$13FF
$2000..$FFF7
The private portion will use what it can in the lower block with the remainder at the top of the main block.
---
floobydust is building a system with 32K of RAM and 32K of EEPROM. The part of the private portion which can reside in ROM will. The part which has to be in RAM will use the upper end of the $200 to $1FFF range.