1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Dos и нижняя/верхняя память

Тема в разделе "Hard & Soft", создана пользователем kot-perm, 8 фев 2018.

  1. daventry

    daventry

    Переводчик

    Регистрация:
    19 апр 2005
    Сообщения:
    1.309
    @Yuriy_X,
    Сам механизм схожий.
    У вас используются официальные драйвера русификации DOS от Microsoft. До появления русифицированных версий DOS, использовались драйвера энтузиастов, их было множество (и энтузиастов и драйверов клавиатуры:)). С разным функционалом. Кто-то делал упор на минимизацию размера программы, кто-то на красивые шрифты для всех возможных видео-режимов, кто-то на максимальную широту возможностей. Чаще всего шла борьба именно за минимальный размер в памяти.
    Изначально у вас вопрос был про extended память.
    Вот так должно быть:
    [X]
    DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
    DEVICE=C:\DOS\EMM386.EXE NOEMS


    В этом случае expanded памяти не будет, а будет extended.
     
  2. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.775
    С подробностями работы ни того, ни другого я не знаком - только вижу, что ваш вариант нативен и входит в состав DOS, а сторонние русификаторы - нет :)

    Лично мне и TSR за последние 5 лет активного издевательства над старым железом пригодился отсилы раза 3 (самое то, чтобы хранить его в утилитах для вызова по запросу). Ни в изолированном от интернета англоязычном DOS, ни для отображения текста в русских версиях графических (не текстовых) игр и программ - и тем более их запуска, - ничего такого прописывать на постоянке просто не требуется, учитывая, что нижняя память на компьютерах не резиновая.

    P.S. 3.5-дисковод, кстати, тоже где-то валяется, но вообще ни разу не пригождался.
     
    Последнее редактирование: 17 фев 2021
  3. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Можно смело заменять на RK.
    COUNTRY необходимо оставить.
     
    fly_indiz нравится это.
  4. Yuriy_X

    Yuriy_X

    Регистрация:
    27 авг 2018
    Сообщения:
    3.010
    Не знаю, есть ли этому логическое объяснение, но Dune 2 (1.07) запускается с использованием General MIDI, только при трёх условиях:
    1. Строка DEVICEHIGH=C:\DOS\DISPLAY.SYS CON=(EGA,,1) должна находится в блоке [COMMON], хотя в этом случае, как выяснилось выше, драйвер не попадает в верхнюю память.
    2. Вообще не должно быть EMM386.EXE вне зависимости от параметра (пробовал и RAM, и RAM 16384, и NOEMS, и без параметра - в любом случае игра не запускается).
    3. Запускать исполняемый файл необходимо только из командной строки (предварительно выйти из DOS Navigator).
    Базовая память в этом случае равна примерно 603 *** Кб. При использовании RK.COM базовой памяти становится больше, но Dune 2 перестаёт запускаться даже при соблюдении условий № 2 и 3.
     
    Последнее редактирование: 17 фев 2021
  5. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    842
    Могу дать небольшое пояснение.
    Перед запуском программы (EXE, COM, BAT) файловый менеджер запускает еще один новый экземпляр интерпретатора командной строки (в DOS по умолчанию COMMAND.COM), что отнимает порядка 1200 Байт (зависит от версии и настроек) без учета памяти, требуемой самому файловому менеджеру.
    Для проверки можно запустить второй экземпляр файлового менеджера и проверить состояние памяти.

    Еще одно следствие запуска программ из файлового менеджера: изменения переменных окружения действуют только в новом экземпляре интерпретатора и теряются при возврате управления файловому менеджеру.
     
    Yuriy_X нравится это.
  6. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    В DOS Navigator есть такая коварная штука, как «быстрый запуск программ»:
    upload_2021-2-18_0-32-35.png

    А ещё он сам использует XMS. Не лучший файл-менеджер для запуска из-под него капризных игр, в общем.
     
    Yuriy_X нравится это.
  7. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    842
    Если игра не требует кирилических шрифтов и региональных настроек, то логично для ее запуска организовать альтернативную загрузку вообще без русификатора.

    ...и выгружать любые файловые менеджеры перед запуском игры для освобождения памяти. =)
     
    Последнее редактирование: 18 фев 2021
    TBAPb и Yuriy_X нравится это.
  8. vorob

    vorob

    Регистрация:
    9 мар 2003
    Сообщения:
    1.674
    Только что столкнулся с проблемой описанной на пред. странице. Про Дюну 2, запуск со всеми возможными звуками и нехватку памяти. Знали бы вы как у меня рвет пукан от этой истории. Ну был 100500 лет назад какой-то сраный проц который не умел с более чем 1мб работать, ну забыли про него, хрен бы с ним....

    И почему столько приблуд требуется для запуска? Какой-то himem, какой-то ЕММ386, XMS, EMS. Придумали бы ровно 1 файл, который давал бы доступ ко всей памяти. Нет, наворочено черт ногу сломит :)

    Щас вот буду заниматься этой ерундой, перекидывать дрова в верхнюю память, чтоб три копейки снизу освободить. Кстати, если можно бросать вещи в верхнюю память и им там хорошо, почему игры туда же не отправить?

    --- добавлено 17 авг 2021, предыдущее сообщение размещено: 16 авг 2021 ---
    Почитал гайды, перетряс конфиг и решил проблему :)

    image.jpg
     
    Последнее редактирование: 17 авг 2021
    Yuriy_X нравится это.
  9. Yuriy_X

    Yuriy_X

    Регистрация:
    27 авг 2018
    Сообщения:
    3.010
    @vorob, скиньте, если не трудно, свои config и autoexec, с которыми работает Дюна 2.
     
    Последнее редактирование: 17 авг 2021
  10. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.192
    @vorob, HMA (и UMB ) маленькие. Я не помню кто из них кто, но одна - это всего одна страница памяти (64 кБ), а другая - это место между 640 кБ и 1 МБ рамы. Туда ничего кроме ядра и пары драйверов не влезет.

    Ну и, вообще говоря, все остальные менеджеры памяти, которые не микрософтские, — обычно одним файлом и есть.
     
  11. Grue13 Manul12

    Grue13

    Регистрация:
    26 апр 2006
    Сообщения:
    9.806
    Для IBM PC и IBM PC-совместимых компьютеров очень важна была обратная совместимость. Это тебе не Apple, которая сначала начисто перевела пользователей МакОси на Intel, затем на Intel 64-бит, а теперь на ARM.
     
    Последнее редактирование: 18 авг 2021
  12. vorob

    vorob

    Регистрация:
    9 мар 2003
    Сообщения:
    1.674
    @Grue13, да, тут я конечно погорячился. Обратная совместимость на ПК это то что я сам хвалю и люблю. Просто я думал о каком-то более элегантном решении :)
     
  13. TheMadLynx

    TheMadLynx

    Хелпер

    Регистрация:
    9 июн 2015
    Сообщения:
    6.464
    Элегантно было бы ставить старые реликты в виде самостоятельных плат расширения более нового компа, которые софтово активировались бы при запуске реликтового софта. Но такое барство себе позволяла, как раз, эпл и производители индустриальных IBM PC совместимых системников стоечно-шкафного формата. Обычные пользователи кушали кашу из костылей.
     
  14. vorob

    vorob

    Регистрация:
    9 мар 2003
    Сообщения:
    1.674
    Ребят я думал что если писать LH и DEVICEHIGH то не будет тратиться память. Вот я привод прописал и стало 578кб вместо 621. Что я сделал не так?

    54D5F12E-93D4-44FE-8348-5A310A36DD0E.jpeg 63BB5806-4C20-4382-9401-1B2FC8F01115.jpeg
     
  15. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    842
    @vorob, верхняя память ограничена. Если туда поместить небольшую программу, она может вытеснить (занять место) запускающуюся позже большую в обычную память.
    Плюс сегментация - верхняя память часто не один непрерывный участок, а несколько. При запуске программа должна помещаться в один из таких участков целиком. Причем не только резидентная часть программы, а весь исполняемый модуль с буферами и т.п. Программа отрабатывает, оставляет после себя резидентную часть и возвращает часть используемой памяти в общий пул.
    Поэтому, на "плотность упаковки" программ в верхней памяти влияет не только их количество, но и порядок запуска.
     
    Последнее редактирование: 20 авг 2021
    Goblinit нравится это.
  16. Revolter

    Revolter

    Регистрация:
    12 июл 2006
    Сообщения:
    2.775
    @vorob, кстати, MOUSE.COM, если этот тот, о котором я думаю, для затей с высвобождением нижней памяти никуда не годится, т.к. очень много весит. Рекомендую заменить его на Cutemouse.
     
  17. BrainRipper

    BrainRipper

    Регистрация:
    1 ноя 2009
    Сообщения:
    9.210
    @vorob, введите команду mem /c /p и узнаете, как конкретно занята память.
     
    Goblinit и TheMadLynx нравится это.
  18. TheMadLynx

    TheMadLynx

    Хелпер

    Регистрация:
    9 июн 2015
    Сообщения:
    6.464
    @vorob, для начала стоит проверить без EMM386. И да, выше правильно написали, что можно узнать какие именно программы и куда (в какую память) загружены.
     
    Последнее редактирование: 21 авг 2021
  19. vorob

    vorob

    Регистрация:
    9 мар 2003
    Сообщения:
    1.674
    Загадкой остаётся SYSTEM и DBLBUFF

    image.jpg

    image.jpg
     
  20. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    842
    @vorob,
    SYSTEM - собственно система, DOS. Включая буферы и стеки из CONFIG.SYS (примерно для DOS 6.22)
    DOS=HIGH,UMB
    FILES=32
    BUFFERS=16
    FCBS=1
    STACKS=9,256
    LASTDRIVE=Z
    Можно попробовать уменьшить значения. LASTDRIVE задать последнюю используемую букву диска.
    Некоторые программы требуют что-то вроде FILES=40 или FILES=42.

    DBLBUFF - драйвер второго/двойного(?) буфера для HDD.
    "The Dblbuff.sys device driver is used to perform double buffering which is required to provide compatibility for certain hard-disk controllers that cannot work with memory provided by EMM386 or Windows running in 386 Enhanced mode."
    Обычно можно безнаказанно отключить.
    Или перенести в верхнюю память, добавив в Config.sys (путь по умолчанию):
    DeviceHigh=c:\windows\Dblbuff.sys
    и изменив (если есть) в Msdos.sys:
    DoubleBuffer=1
    на
    DoubleBuffer=0

    Примечание: еще одна причина установить отдельно DOS 6.22 и Windows 98 - чтобы драйверы не путались между операционными системами.
     
    Последнее редактирование: 30 авг 2021
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление