Twoja procedura zakłada po prostu, że banki się mirrorują (tak jak mogą się mirrorować banki pamięci 16k w normalnych rozszerzeniach). Wtedy zapamiętywanie, zaznaczanie itd. jest konieczne. Procedura bardzo podobna do twojej jest w SI używana do testowania rozmiaru pamięci bankowanej w $4000-$7FFF.
Natomiast w przypadku pamięci liniowej, jeśli w pewnym momencie RAM się kończy i następuje ROM albo pustka, to wystarczy taka procedura, jak moja - która sprawdza, czy pod danym adresem pamięć jest zapisywalna.
Jak już jest 16 MB przestrzeni adresowej, to może by tak, wzorem Motoroli 68k, przeznaczyć jakiś kawałek pod koniec na nowe urządzenia I/O? Np. ostatnie 64k (albo ostatnie 2 MB).
KMK
? HEX$(6670358)