MSXDOS2 and the horrible RAM consumption

By ro

Scribe (4818)

Аватар пользователя ro

11-09-2022, 14:16

well, hi there. I've been pondering on some stuff: why does MSXDOS2 only have 5 of the 16 memory mappers available for use on a 256K machine like the FSA1ST.

According to the MSXDOS2 Env doc at Grauw's delicous msx pages, MSXDOS2 should take 32K (the last two mappers) for it's code and data.

Booting in openMSX, Sunrise IDE, MSXDOS2 kernel 2.30, .sys 2.40 (nyyrikki's work) .com 2.44.

Haven't tried a plain disk or anything...


Для того, чтобы оставить комментарий, необходимо регистрация или !login

By ro

Scribe (4818)

Аватар пользователя ro

11-09-2022, 14:43

I quickly tested this on a plain MSXDOS2 formated FDD on a plain ST machine. No IDE etc. 6 out of 16 free. Still makes me angry. Also, I noticed that map 0x0A contains vital MSXDOS stuff. If I clear that mapper, DOS2 calls just crash. So, there goed that "highest two mappers for system and data" theory.

By mars2000you

Enlighted (6346)

Аватар пользователя mars2000you

11-09-2022, 14:57

You have a part of the explanation here:

By Manuel

Ascended (19058)

Аватар пользователя Manuel

11-09-2022, 15:00

In short: did you have the MSX-DOS 2 RAMdisk active?

By erpirao

Paragon (1292)

Аватар пользователя erpirao

11-09-2022, 15:28

turboR Dram mode

if you are using the DRAM mode of the MSX TurboR, the memory is greatly reduced:
64KB-DRAM (BIOS to RAM), to improve speed

DRAM mode can be used also on MSX-DOS1 and other older applications. DOS2 is not required
It is true that DRAM mode uses 4 last pages of memory mapper to store a copy of ROM, and therefore applications can't use this area when DRAM mode is in use.

However, DRAM mode was designed so that it looks like there is no RAM at all on these pages. This means that writing to these addresses don't have any effect and if you try to read this memory area you get only #FF as return. This means that usually programs just detect the mapper smaller than it actually is and don't even try to use this area. So, usually older applications work as well.

On MSX Turbo R, MSX-DOS2 always reserves this space for DRAM mode by default and if you want to use it for other purposes, you need to request DOS2 to free it. (See DOS2 mapper support routines)

By ro

Scribe (4818)

Аватар пользователя ro

11-09-2022, 16:05

No Ramdisk, but I was indeed looking at the DRAM mode myself. And therefor did NOT use DRAM mode. My RAM detects 256KB, so indeed it proves no DRAM mode.
BUT, when you say DOS2 always reserves those last 4 pages, then things come together indeed. That also explains why I see DOS sys/prog maps lower than the last two (as the tech book describes).

Thanx for this input erpirao, if this means I can just release the upper four maps (after checking if this is a turbo R) then I learned something new today Smile
Is this MSXDOS kernel OM behavior, or in the msxdos.sys ? If in .sys, let's bring Nyyrikki in to change that to be optional or something Smile

back to testing, thanks a bunch for the input!

By gdx

Enlighted (5845)

Аватар пользователя gdx

12-09-2022, 11:35

erpirao wrote:

DRAM mode can be used also on MSX-DOS1

I think it depends on the disk controller used.