Здравствуйте, Ikemefula, Вы писали:
I>>>С помощью EMM386 я получал 700кб оперативной памяти на своей 486 dx2 66
N>>Маловато
I>Больше это вряд ли. Не любое железо это позволит.
Если графический режим видоеадаптера не использовать, то где-то около 700 (или чуть больше) получалось. Даже драйвер был для этого.
Здравствуйте, Ikemefula, Вы писали:
N>>>>Это не так. Ещё через ~10 лет после появления EMM386 — QEMM активно использовался там, где оставалась DOS — потому что он умел много из того, что EMM386 как прямолинейный и тупой не желал уметь. В средней конфигурации за счёт возможностей QEMM можно было выиграть 30-50KB, что для мира DOS было огромным успехом. Я вокруг себя помню крайне мало систем с DOS, где не ставили бы QEMM. I>>>С помощью EMM386 я получал 700кб оперативной памяти :)) на своей 486 dx2 66 N>>Маловато:) I>Больше это вряд ли. Не любое железо это позволит.
С QEMM можно было занять приличный кусок памяти, обычно рассчитанной под всякие ROM'ы, плюс UMA. Получалось в базе до ~800K. От железа это не зависело — замапить в v86 режиме позволяло всё начиная с i386.
Дальше уже сколько оставалось от драйверов. В полной набивке включая сеть для обычного приложения без любых EMM оставалось менее 400K, с EMM386 вытягивал где-то только до 450, с QEMM я получал 520-540, и этого хватало на программу.
Больше всего я тогда тосковал по варианту всяких FoxPro и Clipper под защищённый режим и от несправедливости — всякие игры идут без проблем, а полезные приложения требуют страшных плясок с бубном.
Здравствуйте, netch80, Вы писали:
N>Больше всего я тогда тосковал по варианту всяких FoxPro и Clipper под защищённый режим и от несправедливости — всякие игры идут без проблем, а полезные приложения требуют страшных плясок с бубном.
Про Clipper ничего не скажу, а FoxPro(X) работал нормально. Обычный, впрочем, тоже. При старте запихивал оверлей не то в Expanded, не то в Extended, без всяких бубнов.
А еще висячие указатели с QEMM отлавливались прекрасно. Память расстреливать не давал.
Здравствуйте, netch80, Вы писали:
N>С QEMM можно было занять приличный кусок памяти, обычно рассчитанной под всякие ROM'ы, плюс UMA. Получалось в базе до ~800K. От железа это не зависело — замапить в v86 режиме позволяло всё начиная с i386.
А куда видеобуфер девать ? Она начинается на границе 750кб примерно.
N>Больше всего я тогда тосковал по варианту всяких FoxPro и Clipper под защищённый режим и от несправедливости — всякие игры идут без проблем, а полезные приложения требуют страшных плясок с бубном.
Так уж получается — самые серьезные программисты в геймдеве
Здравствуйте, Privalov, Вы писали:
I>>>>С помощью EMM386 я получал 700кб оперативной памяти на своей 486 dx2 66
N>>>Маловато
I>>Больше это вряд ли. Не любое железо это позволит.
P>Если графический режим видоеадаптера не использовать, то где-то около 700 (или чуть больше) получалось. Даже драйвер был для этого.
У меня получалось как раз 700кб если не трогать графический видеорежим. Драйверов не нужно никаких — все чз em386.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, netch80, Вы писали:
N>>С QEMM можно было занять приличный кусок памяти, обычно рассчитанной под всякие ROM'ы, плюс UMA. Получалось в базе до ~800K. От железа это не зависело — замапить в v86 режиме позволяло всё начиная с i386. I>А куда видеобуфер девать ? Она начинается на границе 750кб примерно.
Ну. А сверху ещё область бывшего ROM, а затем UMA. Оно же несплошное.
N>>Больше всего я тогда тосковал по варианту всяких FoxPro и Clipper под защищённый режим и от несправедливости — всякие игры идут без проблем, а полезные приложения требуют страшных плясок с бубном. I>Так уж получается — самые серьезные программисты в геймдеве :))
Здравствуйте, netch80, Вы писали:
N>>>С QEMM можно было занять приличный кусок памяти, обычно рассчитанной под всякие ROM'ы, плюс UMA. Получалось в базе до ~800K. От железа это не зависело — замапить в v86 режиме позволяло всё начиная с i386. I>>А куда видеобуфер девать ? Она начинается на границе 750кб примерно.
N>Ну. А сверху ещё область бывшего ROM, а затем UMA. Оно же несплошное.
Ну так дос не умеет распределять память кусками. Если буфер начинается на 750, стало быть в дос будет максимум 750.
Можно конечно передвинуть и видеобуфер и тд и тд — но это далеко не любое железо/биос позволит.
У меня например не получалось заюзать память от B0000 до B8000 как раз по этой причине.
Здравствуйте, Ikemefula, Вы писали:
P>>Если графический режим видоеадаптера не использовать, то где-то около 700 (или чуть больше) получалось. Даже драйвер был для этого.
I>У меня получалось как раз 700кб если не трогать графический видеорежим. Драйверов не нужно никаких — все чз em386.
Ну дак этот драйвер только и делал, что блокировал переход в графический режим. Только у нас был QEMM.
Здравствуйте, Privalov, Вы писали:
I>>У меня получалось как раз 700кб если не трогать графический видеорежим. Драйверов не нужно никаких — все чз em386.
P>Ну дак этот драйвер только и делал, что блокировал переход в графический режим. Только у нас был QEMM.
А толку от такой блокировки ? Если прога требует графику, она по любому дохнет.
Здравствуйте, Ikemefula, Вы писали:
N>>>>С QEMM можно было занять приличный кусок памяти, обычно рассчитанной под всякие ROM'ы, плюс UMA. Получалось в базе до ~800K. От железа это не зависело — замапить в v86 режиме позволяло всё начиная с i386. I>>>А куда видеобуфер девать ? Она начинается на границе 750кб примерно. N>>Ну. А сверху ещё область бывшего ROM, а затем UMA. Оно же несплошное. I>Ну так дос не умеет распределять память кусками. Если буфер начинается на 750, стало быть в дос будет максимум 750.
Я просто удивляюсь, как все забыли подробности работы в досе. Ну при чём тут "распределение памяти кусками"?
Выделяя память в диапазоне 640K — 1M (кроме заведомо непригодных — видеобуфера и BIOS), и 1M — 1M+65520 (UMA) и располагая в ней драйвера и постоянные части DOS, можно было получить связный кусок в conventional секторе достаточного размера. Без таких распределителей они все отъедали куски от conventional. Даже несчастные 60K, получаемые за счёт UMA, могли быть переходом от неработы приложения к работе. А если ещё удавалось добавлять память из C0000-DFFFF, то могло получаться связных ~600K. И это ещё без игр типа "видео только текст => забираем ещё кусочек".
I>Можно конечно передвинуть и видеобуфер и тд и тд — но это далеко не любое железо/биос позволит. I>У меня например не получалось заюзать память от B0000 до B8000 как раз по этой причине.
Здравствуйте, netch80, Вы писали:
N>Я просто удивляюсь, как все забыли подробности работы в досе. Ну при чём тут "распределение памяти кусками"?
При том, что программы умеют раобтать только с непрерывной памятью. программу напрмиер в 600 кб невозможно вгрузить в память если у тебя два куска 500 и 200.
И даже так — если программа 100кб но требует еще 500, то 500 и 200 тебе не помогут.
N>Выделяя память в диапазоне 640K — 1M (кроме заведомо непригодных — видеобуфера и BIOS), и 1M — 1M+65520 (UMA) и располагая в ней драйвера и постоянные части DOS, можно было получить связный кусок в conventional секторе достаточного размера.
Это банальности. см выше и ниже.
N>Без таких распределителей они все отъедали куски от conventional. Даже несчастные 60K, получаемые за счёт UMA, могли быть переходом от неработы приложения к работе. А если ещё удавалось добавлять память из C0000-DFFFF, то могло получаться связных ~600K. И это ещё без игр типа "видео только текст => забираем ещё кусочек".
Здравствуйте, Ikemefula, Вы писали:
I>А у меня связных было 700к.
Повтори этот фокус без забирания видеобуфера и с загруженной сетью (NWLite, Lantastic — пофиг) — тогда это будет что-то значить.
А просто так без реальной нагрузки это рекорд сферических коней в вакууме.
Здравствуйте, netch80, Вы писали:
N>Повтори этот фокус без забирания видеобуфера и с загруженной сетью (NWLite, Lantastic — пофиг) — тогда это будет что-то значить.
Ну ты и дал. 640кб это значит что забирается вся память до A0000. 700К это до B0000. B80000 — это 750К.
N>А просто так без реальной нагрузки это рекорд сферических коней в вакууме.
Если видеобуфер не забирать, то больше 640 даже теоретически ничего не выйдет — арифметику вряд ли отменить
700к нужно например для отладки, а не для рекордов.
Здравствуйте, Ikemefula, Вы писали:
N>>Повтори этот фокус без забирания видеобуфера и с загруженной сетью (NWLite, Lantastic — пофиг) — тогда это будет что-то значить. I>Ну ты и дал. 640кб это значит что забирается вся память до A0000. 700К это до B0000. B80000 — это 750К.
Вычти ~30K на нижний кусок (таблицы, DOS)
А "дал" — так речь про реальные условия.
N>>А просто так без реальной нагрузки это рекорд сферических коней в вакууме. I>Если видеобуфер не забирать, то больше 640 даже теоретически ничего не выйдет — арифметику вряд ли отменить :)))
Ну так и я о том же.
I>700к нужно например для отладки, а не для рекордов.
Отлаживать уже тогда лучше было в том, что умело себя в extended держать. Такие отладчики уже были. А вот старый досовский код было переделать сложно.
Здравствуйте, Ikemefula, Вы писали:
P>>Ну дак этот драйвер только и делал, что блокировал переход в графический режим. Только у нас был QEMM.
I>А толку от такой блокировки ? Если прога требует графику, она по любому дохнет.
ЕМНИП, с такой блокировкой программа дохла, но система оставалась живая. Но не уверен. Много воды утекло с тех пор.