2 hours ago, TomXP411 said:
I don't think anyone has explained why that would be... if the chips aren't populated on the board, then the lines will float and either have random values, be all zero, or be all one. There's no mechanism I can think of for reads and writes to "mirror" lower banks. To actually write to a chip, the CS line must be set for that socket, and the CS for the first RAM chip would not be set if you're writing to bank 64.
If the emulator is doing that now, I'm going to pin that down as an emulator bug, rather than the correct behavior of the final board.
Of course, if all 256 banks are populated, the test does not actually write to 0. It falls past the JNZ MEMTEST1 and sets the top bank to $FF.
as to using MEMTOP... @SlithyMatt explained above that it doesn't always work.
The behavior of ramtas, which is what initializes memory and detects the number of banks and reports the total memory at bootup, seems to rely on it working this way. If it doesn't work on actual hardware, wouldn't they have seen it in their testing?