LD HL,4000h ; es un ejemplo
LD A,(HL)
NEG A
LD (HL),A
XOR (HL)
JR Z,RAM_ENCONTRADA
¿Y si en vez de NEG A, le pones CPL? Así evitas que una rom con un 0
en la posición 4000 (NEG 0 == 0), pueda ser interpretada como ram
(aunque es un caso poco frecuente, me parece).
-MSX2: supongo que tendra siempre como minimo 64 KB en un mismo
slot. Copio el slot al que apuntan las paginas 2 y 3 para las
paginas 0 y 1, manipulando directamente el puerto A8h. A
continuacion, hago lo mismo con la posicion de memoria FFFFh.
Funcionará en todos los MSX2 que conozco, salvo en uno: el Sony
F500. Al parecer el estándar MSX2 sólo pide que haya ram en los 64K,
pero no obliga a que esté toda en el mismo slot... y el F500 lo hace
así, tiene los 32K altos en el slot 0-0 (¡a continuación de la rom!)
y los bajos en otro subslot del 0, no recuerdo cual.