Подрезюмируя сказанное. В итоге всё сводится к вопросу: литерал 0FFFFFFFFH считать 64-битным без знака или 32-битным со знаком? У нас три решения:

1. Считать 64-битным. Если Артуру не нравится писать## Код:
```
DWord(90909090H - 100000000H);
```
, то Ofront+ предлагает ещё такой вариант:## Код:
```
DWord(SYSTEM.VAL(INTEGER, 90909090H));
```
, вполне в духе Оберон-парадигмы. И системность не должна смущать — у нас же шестнадцатеричные литералы юзаются для системщины. Так что, Артур, я предлагаю в твоём компиляторе поступить именно так.
2. Считать 32-битным. А для 64-битного использовать постфикс типа 0FFFFFFFFL, как в КП. Ofront+ тоже реализует этот вариант (в режиме -C).
3. Сделать вид, что у нас все целочисленные литералы одного размера. В этом случае знак шестнадцатеричного литерала задавать разрядом. Это то, что реализовано в большинстве компиляторов Оберона-07, что оправдывается отсутствием в них целочисленной арифметики разной битности.
Что я упустил?