Выходит, как я и предполагал, беззнаковая арифметика нужна в узкоспециальных системнопрограммных задачах. И если так, ей всамделе место в SYSTEM, или CRYPTO.

Хотя при нынешней внутренней архитектуре компилятора - для синтезатора кода это абсолютно все равно, ему по-любому все M*M сочетаний базовых типов нужно перебирать.

> -- Борис Рюмшин писал(а):
> Вы криптографию или протоколы связи с коррекцией ошибок попишите -- там умахаться можно выписывая всякие преобразования. Это не очень частые задачи, но случаются. Можно этот набор полностью в SYSTEM заткнуть, чтобы включалось только тогда, когда надо.
Или, опять-таки, грамотно сделать набор кодовых процедур под задачу. Да, они не переносимы (непереносимы:)), поэтому "живут" в SYSTEM. Сейчас согласно Platform-specific issues действует соглашение "вызова" для кодовых процедур, что первый аргумент передается в аккумуляторе, прочие - в стеке, и результат возвращается в аккумуляторе. Можно его дополнить, передавать 2 аргумента в регистрах, и т.д.

Рискну предположить, что для криптографии или др задач вообще полезно с битовыми цепочками работать. А этого в универсальном ЯВУ вообще нет, и поделом.

> -- Борис Рюмшин писал(а):
> Это опасный хак, который в другой реализации может просто не работать.
В другой реализации чего? Если SYSTEM соответствует P-S-I, то в чем опасность? На крайний случай легко переделать:
## Код:
```
PROCEDURE Shortchar (b: BYTE): SHORTCHAR;
BEGIN RETURN SHORT(CHR(b MOD 100H)) 
END Shortchar;
```
