На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> DosBox , Функции BIOS/DOS
    Jin X Вообще то, мне DosBox кажется лутьше VMware.. Совершенно с Вами согласен, что VMware.. более продвинут. Но для старых программ он не подходит. Хотя бы по причине проблем со старыми видео картами.
    Старые игры лутьше работают в DosBox, также как и старые программы под DOS.
      Цитата andr00 @
      Но для старых программ он не подходит. Хотя бы по причине проблем со старыми видео картами.

      У VMWare с видео картой и старыми программами никаких программ не было.
      В отличие от DosBox который не правильно обрабатывает каретку. Или к примеру на король лев на 3 уровне в досбоксе вылетает.
        Цитата andr00 @
        Старые игры лутьше работают в DosBox, также как и старые программы под DOS.
        Старые стандартные программы нормально работают в DOSBox (там же есть ещё и замедление – это одна из главных фишек DOSBox'а). "Лучше" он разве что в этом отношении...
        А если программы используют какие-то штуки, которые в DOSBox реализованы через костыли, тогда возникнет "у-упс".

        Добавлено
        Короче, каждый инструмент предназначен для своей области использования.

        Каждой кастрюле своя крышка ©
        Знай, кошка, свое лукошко ©
        Всяк сверчок, знай свой шесток ©
        Рождённый ползать летать не может ©
        :D
          Так хочется же идеальный эмулятор, с идеальным выбором псевдо-железа и запуском ОС под оным 'оборудованием'. Ан нету... :yes-sad:
            Запустил в DosBox образ DOS 7.10
            Запустил программу mem.exe (от DOS 7.10)
            Как обычно она выдала мне распределение памяти.
            Но в строке "зарезервированно" стоит цифра 393216 байт.
            Я понимаю, что это область между сегментами A000H ... 10000H.
            Но, почему на реальных машинах (в том числе и на VMWare) в этой строке стоят нули ?
            Возникает вопрос, что такое "зарезервированно"? и правилно ли mem.exe (от DOS 7.10) определяет распределение памяти ?
              andr00, пришлите эту утилиту (в zip'е), посмотрим что там.
                Эта утилита от windows_98 (dos 7.10)
                Прикреплённый файлПрикреплённый файлMEM.zip (19,13 Кбайт, скачиваний: 181)
                  andr00
                  Dos-Box вообще не возвращает корректное распределение памяти.
                  Цитата andr00 @
                  Но, почему на реальных машинах (в том числе и на VMWare) в этой строке стоят нули ?

                  Это баг утилиты mem.
                    Pavia
                    Вообще моей целью стало написание утилиты распределения памяти MS DOS.
                    Мне надоело, что для каждой версии MS DOS - свой MEM.EXE.
                    За шаблон принял DOS 7.10, но появились большие непонятки.
                    Следя документации DOS (от версии DOS 4 и выше), буду пытытся завершить свой MEM.EXE
                    несмотря на различее (незначительное) в показаниях.
                      Немного не по теме.
                      В литературе по HIMEM.SYS указывается, что начиная с версии 3.00, по функции AH=88H выдатся значения:
                      EAX - мах. свободный блок XMS (>64 Мб).
                      EDX - мах. свободной XMS памяти (>64 Мб).
                      ECX - последний бойт в памяти (>64 Мб).
                      На практике:
                      EAX - мах. свободный блок XMS (не более 64 Мб).
                      EDX - мах. свободной XMS памяти (не более 64 Мб).
                      ECX - последний бойт в памяти ( = 0 Мб).
                      Получить значения более 64 Мб (до 4 Гб) удолось только используя XMGR.SYS.
                      Не подскажите в чем дело ?

                      Добавлено
                      К стати, MEM.EXE (от DOS 7.10) покаэывает не более 64 Мб при HIMEM.SYS,
                      и настоящий объем (>64Мб), если установлен XMGR.SYS
                        Цитата andr00 @
                        Не подскажите в чем дело ?

                        HIMEM.SYS должен был быть выпилен из DOS так как он конфликтует с DPMI. Который появился примерно на год позже.
                        Но для совместимости со старыми программами его оставили.

                        А так как он ещё и с ошибками было перепутано > и <, то ещё и разные программы с ним работали по разному.
                        Сообщение отредактировано: Pavia -
                          andr00, а ты не путаешь версии HIMEM.SYS и спецификации XMS? Это не одно и то же. Вообще, я бы не сильно доверял DosBox-у в каком-либо плане, если речь заходит о противоречиях между описанием поведения и наблюдаемыми результатами.
                          Pavia, прям откровение какое-то. Пруфы есть? Вообще, спецификация XMS разрабатывалась ровно для того, чтобы стандартизировать API для памяти свыше первого мегабайта и сделать возможным сосуществование разных программ, одновременно использующих её. Исходный API, реализованный в BIOS и основанный на int 15h, был крайне неудобным. Спецификация DPMI вообще не об этом. Вот от слова ни коим боком. И к слову, без хоть какого XMM менеджера любой DPMI-хост обязательно столкнётся с проблемами при старте.
                            Qraizer , еще раз не по теме.
                            Я имел в виду программу MEM.EXE от DOS 7.10 (WIN98)в чистом DOS (или под DosBox)
                            Покаывает: Версия XMS 3.00 ; Версия драйвера 3.10

                            P.S. вообще,может сменить тему, на исследование памяти ? .
                              Вроде бы решил свои проблемы с HIMEM.SYS, не стал пользоватся функцией AH=88H.
                              Вместо её использую прерывание INT 2FH, AX=4309H. Она выдает таблицу handle и её я анализирую.
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,1327 ]   [ 18 queries used ]   [ Generated: 28.03.24, 14:09 GMT ]