Использованием типа SHORTINT {-128..127} вместо INTEGER {-32768..32767} Вы стараетесь сэкономить байт памяти, а здесь всё не так уж однозначно. Параметры в процедуры всё равно передаются через стек, и я точно не помню, но, кажется, передача двухбайтовых параметров даже создаёт более компактный код, а может даже и более быстрый. Попробуйте это сами проверить и сравнить. Я расчитываю на квалифицированную помощь опытных спектрумистов. По возможности не только обозначайте проблему, но и указывайте пути решения. Не стесняйтесь заглядывать в сгенерированные *.c и *.asm
Объявляйте переменные как INTEGER.
P.S. Ага, понял. Тут конечно надо исправить. Открываете File -> Open -> Basic.odc
Было: PROCEDURE DRAW* (x, y: SHORTINT); BEGIN END DRAW;
Стало: PROCEDURE DRAW* (x, y: Coords); BEGIN END DRAW;
F11




Ответить с цитированием
