Задолбался я с ошибками. Решил просмотреть все видеорежимы с помощью программы:

Код:
Program CGX_Test;
uses  exec, sysutils, utility, intuition,agraphics,cybergraphics;
var

        execlist:PList;
        cybernode:PCyberModeNode;

begin



        execlist:=AllocCModeListTagList(nil);
        if execlist <> nil then writeln('cyber');
        cybernode:=PCyberModeNode(execlist^.lh_Head);
        while cybernode<>nil do
        begin
                writeln('Mode ',cybernode^.ModeText);
                writeln('Width ',cybernode^.Width);
                writeln('Height ',cybernode^.Height);
                writeln('Depth ',cybernode^.Depth);
                writeln();
                cybernode:=PCyberModeNode(cybernode^.Node.ln_Succ);
        end;

end.
Опять, с ошибками формирует список. Вручную откорректировал указатели на некоторые данные:

Код:
Program CGX_Test;
uses  exec, sysutils, utility, intuition,agraphics,cybergraphics;
var

        execlist:PList;
        cybernode:PCyberModeNode;
        p:^Word;

begin
        execlist:=AllocCModeListTagList(nil);
        if execlist <> nil then writeln('cyber');
        cybernode:=PCyberModeNode(execlist^.lh_Head);
        while cybernode<>nil do
        begin
                writeln('Mode ',cybernode^.ModeText);
                p:=@cybernode^.Width;
                 writeln('Width ',(p-1)^);
                // writeln('Width ',cybernode^.Width);
                p:=@cybernode^.Height;
                 writeln('Height ',(p-1)^);
                //writeln('Height ',cybernode^.Height);
                p:=@cybernode^.Depth;
                writeln('Depth ',(p-1)^);
                //writeln('Depth ',cybernode^.Depth);
                writeln();
                cybernode:=PCyberModeNode(cybernode^.Node.ln_Succ);
        end;
Выводит видеорежимы правильно. Но другие данные побиты.
Зарегистрируюсь на форуме Фри Паскаля и опишу баги.

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

Незнаю, что делать. Написал на форум https://forum.lazarus.freepascal.org...c,64644.0.html