Checking for the extra GRAM *should* be as simple as writing to the expanded RAM, and seeing if the value persists. Try a POKE to $400, then a PEEK. See what you get
Detecting the extra GRAM is almost that simple. There are 3 known configurations out there:
- Normal Intellivision or normal Intellivision II GRAM: 0.5KB located at $3800-$39FF and mirrored at $3A00-$3BFF, $3C00-$3DFF, $3E00-$3FFF
- Modified Intellivision II GRAM: 1KB located $3800-$3BFF and mirrored at $3C00-$3FFF. I'm only aware of JZ performing this modification as a one-off experiment.
- Tutorvision GRAM: 2KB located at $3800-$3FFF
A IntyBASIC program could POKE the values 4, 2, 1 into memory locations $3E00, $3A00, $3800, respectively and in that order. Then it would PEEK the value at memory located $3E00:
- 4 -> 2KB GRAM (Tutorvision)
- 2 -> 1KB GRAM (modified Intellivision II)
- 1 -> 0.5KB GRAM (normal Intellivision or normal Intellivision II)
At least that's my understanding from the documentation. I could be wrong.