Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var
gd,gm : integer;
PathToDriver : string;
begin
gd:=detect;
gm:=0;
PathToDriver:='C:\VESA';
InitGraph(gd,gm,PathToDriver);
...
CloseGraph;
end.Type ScreenChar = record
Symbol : char;
Attrib : byte;
end;
ScreenAr = array[1..25,1..80] of ScreenChar;
Var
Screen : ScreenAr absolute $B800:$0000;struct ScreenChar {
char symbol, attrib;
};
struct Screen {
char volatile all[25][80];
};
static const Screen *screen = (Screen*)(void*)0xb8000000;

Ну, это на 32-х битной системе было бы отдаленно похоже на правду, а у нас ведь сегментная адресация ;-)
static const Screen * FAR screen = (Screen* FAR)(void* FAR)0xb8000000;
Второй ньюанс С — двумерные массивы в памяти не расположены линейно
Что не мешает полному (FAR) указателю быть 32х-битным


шрифты конечно тоже пробовал менять


Почти заработало:

У меня ArchLinux x86. Надо бы погуглить как шрифт сменить. Кажется в ArchLinux Вики видел что-то на эту тему :)
Первая игра, которую я просто написал для себя