В AFDPro работает, в обычном запуске - нет?

Тема в разделе "WASM.BEGINNERS", создана пользователем _mm_, 20 май 2011.

  1. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    Не знаю, как ты не можешь скачать? Я вижу его уже скачали несколько раз (люди добрые кто качнул отпишитесь у вас работает?) сам я сейчас с сотового телефона и нормально скачал. Кстати у тебя антивирь есть? У меня нод так вот он вообще без вопросов сразу удаляет этот фаил, может поэтому у тебя не качает? Так же можно предположить, что он блокирует работу программы когда ты запускаешь ее не под отладчиком. И еще я вижу ты меня не услышал, что лучше запускать и отлаживать программу в настоящем досе, а не в эмуляторе! У меня под виндой тоже ошибка 08 типа нехватка памяти, однако в досе там совсем другая ошибка и возникает она в другом месте!
     
  2. _mm_

    _mm_ New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2010
    Сообщения:
    45
    Спасибо за советы и за труд! Файл всё же скачал, но мне кажется, это были проблемы с сервером. Видеть, что скачали - полбеды - сколько раз кликнешь на гиперссылку, столько и засчитают, а файла может на сервере уже и не быть. )) Антивируса нет, запускаю пустой Windows XP 32bit под виртуалкой (VirtualBox рулит). То, что работает в ДОСе хорошо, но мне бы запустить её в эмуляторе. )) Хотя, если выхода нет, придётся и ДОС устанавливать. ((

    Upd. У меня под эмулятором ДОС всё заработало, хоть и с ошибкой (но файл записывается). А что Вы изменили? Я вижу, что вместо конструкции

    Код (Text):
    1. metka2:
    2. ;+--------------------------------------------------------------+
    3. ;| Конец зарезервированной области памяти.                      |
    4. ;| Начало вируса. Сохраняем по традиции регистры.               |
    5. ;+--------------------------------------------------------------+
    6. pushf                                           ;Сохраняем регистры.
    7. pusha
    8.                                      
    9. mov Length_file,cx                              ;Сохраним длину файла при старте (в CX).
    появилась

    Код (Text):
    1. metka2:
    2. ;+--------------------------------------------------------------+
    3. ;| Конец зарезервированной области памяти.                      |
    4. ;| Начало вируса. Сохраняем по традиции регистры.               |
    5. ;+--------------------------------------------------------------+
    6.                                      
    7. mov Length_file,197h                              ;Сохраним длину файла при старте (в CX).
    То есть убраны pusha и pushf, и прописана длина файла напрямую.

    Я вписал в свой код длину напрямую и у меня тоже заработало (с зависанием, правда). О, чудо! Как это так - не совсем ясно. Ведь длина-то в переменную записывалась при старте из CX! И дальше в отладке видно, что значение сохраняется... Буду пробовать под настоящий ДОС.
     
  3. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    да я тупо в шестнадцатиричном редакторе потер пуши(что бы не менять размер файла) и вписал слово с длинной. Давно надо было попробовать под настоящей дос, так как мне уже приходилось встречаться с глюками эмуляции я вам сразу дал такой совет ! Обрати внимание при трассеровке на описатель файла хендл он случайно не 06 равен?
     
  4. _mm_

    _mm_ New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2010
    Сообщения:
    45
    У меня заработал - но почему-то при запуске вывел себе "Hello, world" и молчит. Завис. А оригинальный выходит.

    Я теперь через Far не запускаю - что-то он с памятью творит, каждый раз по-разному получается результат. А просто в проводнике Windows щёлкаю. Так вот там окошечко не закрывается, а продолжает висеть.

    А ещё никак DOS не найти нормальный, всё MS-DOS попадается. Где бы скачать?
     
  5. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    А чем мс-дос не устраивает?
     
  6. _mm_

    _mm_ New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2010
    Сообщения:
    45
    Тогда я не совсем понимаю слово "эмулятор". Или в каких-то версиях Windows был MS-DOS, а в более поздних стали его эмулировать? Кроме того, где-то я читал (очень давно), что это всё же разные вещи.

    Upd. У меня программа заработала правильно только из командной строки (cmd). А из-под Far или двойного клика под Windows - работает неправильно.
     
  7. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    Начиная с NT DOSа не стало, командная строка это совсем не то, что в ранешних версиях сеанс мс-дос. Создай загрузочную дискету с досом, в биосе установи загрузку с нее и вперед. Нету флопика? тоже самое можно сделать с флешкой
     
  8. _mm_

    _mm_ New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2010
    Сообщения:
    45
    Перепробовал самые разнообразные варианты. Проблемы в CX при старте. Оказалось, в отладчике действительно в CX помещается длина файла. Но при запуске из командной строки происходит затык. Как можно рассчитать длину запущенной программы иначе? Вообще если смотреть структуру DTA, то там пишется размер по адресу 1Ah, но чей размер? Вероятно, не собственный, а найденного файла. А как сосчитать запущенный - есть ли простой способ?
     
  9. _mm_

    _mm_ New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2010
    Сообщения:
    45
    Я понял, о чём ты. Однажды и я такую фишку обнаружил. А оказалось, это всё из-за отладочной функции 59h. Регистр ES почему-то обнуляется и команда rep movsb работает неверно.

    P.S. С длиной решил, спасибо, высчитал дедовским способом в самом файле.