На главную
ПРАВИЛА 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 уровне в досбоксе вылетает.
      Правильный обед должен состоять из 5 блюд приготовленных из 33 ингредиентов.
        Цитата andr00 @
        Старые игры лутьше работают в DosBox, также как и старые программы под DOS.
        Старые стандартные программы нормально работают в DOSBox (там же есть ещё и замедление – это одна из главных фишек DOSBox'а). "Лучше" он разве что в этом отношении...
        А если программы используют какие-то штуки, которые в DOSBox реализованы через костыли, тогда возникнет "у-упс".

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

        Каждой кастрюле своя крышка ©
        Знай, кошка, свое лукошко ©
        Всяк сверчок, знай свой шесток ©
        Рождённый ползать летать не может ©
        :D
        aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq qword rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv yword zword
          Так хочется же идеальный эмулятор, с идеальным выбором псевдо-железа и запуском ОС под оным 'оборудованием'. Ан нету... :yes-sad:
            Запустил в DosBox образ DOS 7.10
            Запустил программу mem.exe (от DOS 7.10)
            Как обычно она выдала мне распределение памяти.
            Но в строке "зарезервированно" стоит цифра 393216 байт.
            Я понимаю, что это область между сегментами A000H ... 10000H.
            Но, почему на реальных машинах (в том числе и на VMWare) в этой строке стоят нули ?
            Возникает вопрос, что такое "зарезервированно"? и правилно ли mem.exe (от DOS 7.10) определяет распределение памяти ?
              andr00, пришлите эту утилиту (в zip'е), посмотрим что там.
              aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq qword rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv yword zword
                Эта утилита от windows_98 (dos 7.10)
                Прикреплённый файлПрикреплённый файлMEM.zip (19,13 Кбайт, скачиваний: 68)
                  andr00
                  Dos-Box вообще не возвращает корректное распределение памяти.
                  Цитата andr00 @
                  Но, почему на реальных машинах (в том числе и на VMWare) в этой строке стоят нули ?

                  Это баг утилиты mem.
                  Правильный обед должен состоять из 5 блюд приготовленных из 33 ингредиентов.
                    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 -
                        Правильный обед должен состоять из 5 блюд приготовленных из 33 ингредиентов.
                          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,1149 ]   [ 18 queries used ]   [ Generated: 9.08.20, 08:23 GMT ]