Что, да как... помогите новичку.

صفحة 4/4
1 | 2 | 3 |

بواسطة fan

Resident (47)

صورة fan

11-01-2007, 16:51

Если я буду писать на непонятном языке , то получу непонятный ответ Big smile
Мне это чисто для общего развития интересно .

بواسطة cax

Prophet (3737)

صورة cax

11-01-2007, 17:41

Ну, давай тогда "на понятном".

Взято отсюда:
http://map.tni.nl/resources/msx_io_ports.php


Определить количество доступной памяти можно записывая уникальные значения по одному и тому же адресу разных страниц маппера, с последующим проходом через них в поисках повторения. Если повтор обнаружен, скажем, через 8 страниц (1 страница = 16К), значит у нас есть 16*8=128К. Как правило, желательно отключить прерывания на время проверки, а также восстановить затёртые ячейки по её окончанию.

Также там пишут, что при работе под MSX-DOS2 нельзя самому переключать память, ибо её измерением и выделением заведует сама операционная система.

Я от себя добавлю, что сам маппер может быть расположен нестандартно - не в слоте 3-2, а где-либо ещё, и тогда процедура усложняется. А если подключить внешний маппер, то их вообще может быть несколько одновременно...

Теперь по основному вопросу: при старте система пишет сколько у неё памяти, но независимо от того, забито это число в ROM или же объём памяти действительно определяется подпрограммой (где-то я читал обсуждение этого вопроса, до чего договорились - не помню), я бы ею не пользовался, ибо она наверняка не всегда правильно отрабатывает - в частности, в случае с 2-мя мапперами.

Ну и, наконец, из собственного опыта: я видел немало загрузчиков игр, написанных на Бейсике, которые проверяли объём памяти именно таким способом - записью и проверкой на повтор.

بواسطة fan

Resident (47)

صورة fan

11-01-2007, 22:04

10X !!!

صفحة 4/4
1 | 2 | 3 |