Использование асм-костылей присутствует.
В паскале на высоком уровне удобно условия городить, хотя асм по возможностям на проверку условий всë же продвинутее : как например проверка флагов, на асме можно отслеживать флаг знака, а в паскале всë беззнаковое. Проверка чëтности опять же, на асме достаточно следить за одним флагом, а тут надо производить лишние арифметические операции с остатком от деления. Процедурки вывода спрайтов взяты из "как написать игру", то есть познакоместное позиционирование без маски, поэтому для попиксельного вывода нужно пихать процедурки spr_lib. Хотя маску можно организовать и штатными процедурами, так как есть AND OR XOR, но при познакоместной позиции толку от этого мало.

- - - Добавлено - - -

Подробно не смотрел как там операции деления умножения транслируются. Но вот на асме если быстро поделить или умножить на 2 - достаточно выполнить побитовый сдвиг. Тут побитовых операций нет и в помине. Так что опять же, если нужно что-то выполнять с битами - асм-костыль. Все асм костыли вызываются из тела паскалевской программы (которая преобразуется в асм код с соответствующими call (addr))

- - - Добавлено - - -

Ну а ещë паскаль удобен организацией циклов. Не надо каждый раз push-pop-ить счëтчик вокруг того или иного цикла. Да и работа с массивами упрощается на порядок.