Hi pgo,
Thank you for the prompt reply.
Firstly, some clarification:
I use several S12 variants namely S12XE256, S12G48, S12P128 and S12G96.
I use assembly language for all my applications (really!).
My images are assembled using "AS12" assembler. Despite it's age has served me well for over 20 years.
The S-records generated by as12 all look perfectly correct. I assume the S-records are what really matters to the USBM programmer.
As a test I ran some small programs on an S12G48. This has 48K of contiguous Flash memory from $4000 to $ffff. Note that the $8000 to $bfff block is NOT paged, just linear address space.
The first program used two blocks of memory (org) at $4000 and also memory (org) at $c000. This works perfectly well.
The second program used 3 blocks of memory (org) $4000, $8000, $c000. This program was identical to the first except for about 20 lines of code starting at $c000. This failed to program with the usual "program data not within target flash memory".
Note that I have used full memory map programming on the S12XE256 without problems.
This problem appears to be peculiar to the programming of G48, G96 and G128 variants (that I have tested anyway).
Thanks for any insights.