Перетаскиваю в ВВ обероновский Juice. Чтобы не вносить собственных ляпов, пользуюсь конвертером, но он не предусматривает преобразование типа BYTE в SHORTCHAR, а проблемы возникают. Например## Код:
```
PROCEDURE Read(VAR R: Rider; VAR x: BYTE);
...
BEGIN
     ...
         ELSE
                 x := 0X[incompatible assignment]; R.eof := TRUE
         END
END Read;
```
Можно убратьX, но тогда не понятно будет ли целочисленный нуль читаться концом строки. Если изменить тип на SHORTCHAR, тогда придется изменять тип массивов BYTE в других местах модуля.

Иная проблема.
## Код:
```
PROCEDURE FreeEntry(): INTEGER;
      VAR i, j: INTEGER;
   BEGIN
      FOR j := 0 TO 1 DO
         FOR i := 0 TO MaxFiles-1 DO
            IF FileTab[i] = S.VAL(INTEGER, NIL[operand inapplicable to (this) function]) THEN
               RETURN i
            END
         END;
         Kernel.GC()
      END;
      HALT(99)
   END FreeEntry;
```
Пока делаю так## Код:
```
PROCEDURE FreeEntry(): INTEGER;
      VAR a, i, j: INTEGER;
   BEGIN
      a := 0;
      FOR j := 0 TO 1 DO
         FOR i := 0 TO MaxFiles-1 DO
            IF FileTab[i] = S.VAL(INTEGER, a) THEN
               RETURN i
            END
         END;
         Kernel.GC()
      END;
      HALT(99)
   END FreeEntry;
```
Но как будет правильно?