ZXNet эхоконференция «code.zx»


тема: если на то пошло



от: Valery Grigoriev
кому: All
дата: 20 Nov 2005
Hello, All

то указанные способы подразумевают "взаимодействие" программы загруженной и
парсера, работающего в ПЗУ. посмотрите на
http://zxdocs.fatal.ru/coding/module.zip - там уже очень замечательно решён
этот вопрос, в принципе с небольшими модификациями можно этот же метод считать
оптимальным.

Вообще, моё глубокое убеждение состоит в том, что глупо реализовывать парсинг
вызова в ходе работы самой программы - при загрузке программы всё равно
тратится ОЧЕHЬ много процессорного времени и препроцессинг тела программы
незначительно увеличит это время (загрузка одного сектора в 256 байт длится
около 20-30 тысяч тактов, а среднестатистическая программа-утилита занимает
секторов 5-6, игрушки и демки в разы больше; процесс настройки прямых вызовов
рутин из ПЗУ жрёт качественно меньше тактов - скорей всего уложится в одно
прерывание), однако отсутствие парсера в процессе ВЫПОЛHЕHИЯ программы приведёт
просто к качественному ускорению РАБОТЫ кода.

Hапример, взять программы умножения двух однобайтовых чисел. Сама программа
занимает около 500 тактов. А парсер 200. Получается что из всего времени
выполнения тратится около 40% времени на определение адреса п/п вызова???? И
это каждый вызов!!! Именно поэтому все фирменные игрушки пользовали либо прямые
вызовы ПЗУ (напрямую Call <ПЗУ>) либо вообще свои собственные программы,
которые точно известно где находятся.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Games - Heavy on the Magic: Вскрытие показало.
Тема - Swap: "От письма до бандероли" как найти в своем городе Спектрумистов.
Список BBS - Сетевые новости.
Описание - Описание языка программирования NedoLang
Tест - как всегда.

В этот день...   29 марта