MSX and memory

Página 2/2
1 |

Por Manuel

Ascended (19320)

Imagen del Manuel

08-07-2021, 19:03

Yes, many larger tape games require 64kB RAM. Remember that also the program is in the RAM.

Por Grauw

Ascended (10716)

Imagen del Grauw

08-07-2021, 19:34

I think the primary reason for manufacturers to include 64K RAM was probably for MSX-DOS (CP/M) support though, that was a big deal back then. And then as many machines with 64K came out, tape games took advantage of that as well.

Por Juan Luis

Master (143)

Imagen del Juan Luis

09-07-2021, 05:48

Grauw wrote:

So as you can imagine, even though a single bank switch is quick, the overhead of switching those banks all the time can add up quickly if you’re not careful. The MSX-BASIC interpreter was written before the memory mapping mechanism was created, so this would mean a major rewrite of it to support the memory mapped memory, and it would likely run more slowly. This is why the MSX-BASIC interpreter does not support it at all outside of being able to use it

If you executes:
print fre("")
in an Amstrad CPC Locomotive Basic you will get 42 KBytes of RAM. Amstrad CPC 464 also has 16 KBytes ROM BIOS + 16 KBytes of Basic interpeter. That is possible because Locomotive uses bank switching writing I/O port. It's true that CPC 6128 doesn't allow more memory because Locomotive Basic was designed for 464 and the designers just wanted to do minor changes in Basic for 6128. Despite of bank switching, Locomotive Basic is quick.

Other example of 8-bit computer that does bank switching or equivalent mechanism is Commodore 128. The C-128 memory is divided in two 64 Kbytes areas. The first 64 KBytes area is for code and the second one is for variables. You can execute the following command to see the available memory in C128:

print fre(0),fre(1)

You'll get 58109 bytes for code and 64256 bytes for variables available. If you add lines of code, the first number will be reduced, and if you create variables or arrays the second number will be reduced. The start message of C128 gives 122365 bytes free (the sum of both numbers).

I think Microsoft could have used a similar solution for MSX.

Página 2/2
1 |