Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата ShaddyR:
т.е. himem ничего не меняет в отсутствие emm'а, я верно понял основную идею?»
Меняет. Драйвер HIMEM.SYS используется для организации доступа DOS к расширенной памяти (XMS). При наличии в CONFIG.SYS директивы:
Код: Выделить весь код
DOS=HIGH
Драйвер позволяет резидентным модулям ядра DOS загружать себя в область высокой памяти (HMA — первые (64 Кб-16 байт) сверх 1-го Мб оперативной памяти), т.е. — фактически освободить в основной памяти до 64 Кб для загружаемых не оверлейных программ (размер ядра, конечно, меньше; потому не строго 64 Кб, а только — до 64 Кб).

Цитата ShaddyR:
теперь вопрос знатокам ДОСа: как при этом в примере №2 оказалось на 60 кил свободнее первого примера? »
Там же ясно написано во втором листинге, что ядро DOS загружено в область высокой памяти:
Код: Выделить весь код
MS-DOS is resident in the high memory area.
Но какое это отношение имеет к EMM386.EXE?

Я же выше писал про другое, про то, что речь идёт не о HMA, а об UMB, что позволяет сделать только EMM386.EXE (разумеется, при загруженном драйвере HIMEM.SYS). Использование параметра NOEMS дополнительно позволяет использовать для организации UMB 64 Кб памяти в UMA (которое, в противном случае, было бы использовано под окно доступа к эмулируемой дополнительной памяти (EMS)).

читать дальше »
Насколько я понимаю, Ваши примеры основаны именно на DOS?! Мне же было бы гораздо интереснее рассмотреть отличия DOS под Windows от чистой DOS, ибо некоторые моменты там отличаются. Например, у меня нет информации, почему под Windows при отсутствующих в CONFIG.SYS директиве DOS=HIGH и драйверах HIMEM.SYS/EMM386.EXE, они, тем не менее, используются, равно как и задействуется эмуляция отображаемой памяти — судя по тому же «mem /c /p»:
читать дальше »
Код: Выделить весь код
Модули, использующие адреса памяти ниже 1 МБ:

  Имя            Размер         Обычная память     Верхняя память
  --------  ----------------   ----------------   ----------------
  MSDOS       18 272   (18K)     18 272   (18K)          0    (0K)
  DISPLAY     18 064   (18K)     18 064   (18K)          0    (0K)
  HIMEM        1 120    (1K)      1 120    (1K)          0    (0K)
  DBLBUFF      2 976    (3K)      2 976    (3K)          0    (0K)
  IFSHLP       2 864    (3K)      2 864    (3K)          0    (0K)
  WIN          3 776    (4K)      3 776    (4K)          0    (0K)
  vmm32        3 392    (3K)      3 392    (3K)          0    (0K)
  KEYB         6 944    (7K)      6 944    (7K)          0    (0K)
  COMMAND      7 408    (7K)      7 408    (7K)          0    (0K)
  Свободно   590 352  (577K)    590 352  (577K)          0    (0K)

Сведения о памяти:

  Тип памяти           Размер        Занято      Свободно
  ----------------  -----------   -----------   -----------
  Обычная               655 360        65 008       590 352
  Верхняя                     0             0             0
  Зарезервировано             0             0             0
  Память XMS         67 107 840             ?   267 120 640
Нажмите любую клавишу . . .
  ----------------  -----------   -----------   -----------
  Всего памяти:      67 763 200             ?   267 710 992

  Ниже 1 МБ:            655 360        65 008       590 352

  Всего отображаемой памяти (EMS):               67 108 864     (64M)
  Свободно отображаемой памяти (EMS):            16 777 216     (16M)
  Максимально допустимый размер программы:          590 336   (577K)
  Наибольший свободный блок верхней памяти:               0     (0K)
  Резидентная часть MS-DOS загружена в сегмент HMA.

Вот что интересно было бы узнать, хотя, увы, ныне сие уже давно, давно не актуально.


2Игорь Лейко: у Вас, должно быть, отключены скрипты, ибо сие не ссылки, а обычные спойлеры, внутри которых листинги «mem /c /p» (к сожалению, не в тэге «code»). Включите скрипты для домена oszone.net.

Отправлено: 03:53, 04-04-2011 | #11