Perhaps use could be made of the SECTION command using reserved names such as ROM, RAM, READONLY and INVALID that can be used alone with an address range or appended to a named section with the range of that section defining the addresses.
E.g.
Code:
SECTION ROM $F80000,$FFFFFF
.. or ..
Code:
CPM_bios EQU 15
SECTION CPM_bios ROM
If there is no definition or only ROM or READONLY is defined everything undefined is assumed to be RAM.
If RAM is defined everything not RAM, ROM or READONLY is assumed to be INVALID.
RAM can be both read and written.
ROM can be read and writes will complete the cycle but without writing the data.
READONLY can be read but writes will cause a bus error.
INVALID will cause a bus error for both reads and writes.
Accessing hardware device addresses never cause an error.
Also if you're going to add this could we also have the option to wrap all addresses into the $00FFFFFF range like a real MC68000 would do.
Just some ideas.
Lee.