Если я буду писать на непонятном языке , то получу непонятный ответ
Мне это чисто для общего развития интересно .
Ну, давай тогда "на понятном".
Взято отсюда:
http://map.tni.nl/resources/msx_io_ports.php
Определить количество доступной памяти можно записывая уникальные значения по одному и тому же адресу разных страниц маппера, с последующим проходом через них в поисках повторения. Если повтор обнаружен, скажем, через 8 страниц (1 страница = 16К), значит у нас есть 16*8=128К. Как правило, желательно отключить прерывания на время проверки, а также восстановить затёртые ячейки по её окончанию.
Также там пишут, что при работе под MSX-DOS2 нельзя самому переключать память, ибо её измерением и выделением заведует сама операционная система.
Я от себя добавлю, что сам маппер может быть расположен нестандартно - не в слоте 3-2, а где-либо ещё, и тогда процедура усложняется. А если подключить внешний маппер, то их вообще может быть несколько одновременно...
Теперь по основному вопросу: при старте система пишет сколько у неё памяти, но независимо от того, забито это число в ROM или же объём памяти действительно определяется подпрограммой (где-то я читал обсуждение этого вопроса, до чего договорились - не помню), я бы ею не пользовался, ибо она наверняка не всегда правильно отрабатывает - в частности, в случае с 2-мя мапперами.
Ну и, наконец, из собственного опыта: я видел немало загрузчиков игр, написанных на Бейсике, которые проверяли объём памяти именно таким способом - записью и проверкой на повтор.
10X !!!