varВ TMT естественно не сработает, но под 16 бит все ОК...
Vmem: array[1 .. 50 * 80] of record
ch: char; attr: byte;
end absolute $b800:$0000;
procedure putchar(x, y: byte; ch: char);
begin
Vmem[80*pred(y) + x].ch := ch;
end;
begin
putchar(80, 25, 'A');
end.
procedure putchar(x, y: byte; ch: char; attr: byte);
begin
Vmem[80*pred(y) + x].ch := ch;
Vmem[80*pred(y) + x].attr := attr;
end;
begin
putchar(80, 25, 'A', White + 16*Black); { Белый на черном фоне }
end.