Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Subj: CD-MAN EGA Version_____________________



Добрая, старая, великолепная игрушка! Выполненная в высшем EGA разреше­нии (будет почище некоторых VGA-шных), очень красочно нарисованная. Хорошо чувствуется вкус и тонкий добрый юмор автора. Занимая всего 380 килобайт и отвечая всем современным требованиям (только музыка на спикер...), CD-MAN вызывает трепещущее ностальгическое чувство: "Эх, делали же игры во времена нашей молодости...".

Но, попав на Pentium, Сиди-ман бегает как... словом, очень быстро! Надо исправить... Несколько раз остановив игру, мы, вероятно, должны попасть в тело процедуры ожидания (хотя это бывает и не всегда, но достаточно часто). То, что это именно процедура ожидания, легко узнать по характерным циклам. Вот что мы обнаружим. Хм... неплохо оптимизированный код! Нетрудно понять его смысл... увы! задержка привязывается не к таймеру, а к быстродействию компь­ютера. Посмотрим, что можно сделать...

Итак, ясно, что интервал задержки (передаваемый как параметр этой проце­дуре) хранится в слове DS:[ll20h], учитывая размер процедуры, можно было бы переписать ее полностью, используя RTC через функцию f.86h прерывания 15h. тогда бы она работала на всех компьютерах одинаково. Но давайте поступим иначе. В 6123h и 612Dh в СХ грузятся константы. Ясно, что если их увеличить, то задержка возрастет. Увеличим пропорционально эти две константы — скажем, раз в пять — и полюбуемся результатом... Да, теперь скорость нормализовалась...

0000611D: 53 push by.

0000611Е: 51 push ex

0000611F: 8В1Е2011 mov bx,word ptr [1120]

00006123: B90800 mov ex, 0008;<—1

00006126: 803E540200 cmp byte ptr [0254],00

0000612B: 7403 jz 00006130;—,

0000612D: B90500 mov ex, 0005

00006130: E2FE loop 00006130;«—^

00006132: 8BCB mov cx,bx

00006134: 4В dec bx

00006135: E2EC loop 00006123;—

00006137: 59 pop ex

00006138: 5В pop bx

00006139: C3 ret





Дата публикования: 2014-12-08; Прочитано: 219 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...