Для программы нужен красивый символ)). Возможно ли создать в паскале символ notx4 токо чтоб было не так "notx4", а Х в нижнем регистре 4 и над иксом отрицание. Возможно ли такое и с помощю каких средств? Спасибо.
Можно попробовать (если Турбо-Паскаль, разумеется) через $10 прерывание (если не ошибаюсь, функция $11), там есть возможность загрузить пользовательский шрифт или его часть... Для этого надо будет описать символ в виде последовательности байтов (одна строка матрицы символа = один байт).
У Фроловых в БСП был пример для ассемблера, так же и на Паскале реализуется...
Вот так, например:
uses Dos;, из-под DOSBox-а выглядит чем-то напоминающим отрицание X4 (художник из меня - никакой, да и в 14 линий по 8 пикселов вряд-ли можно что-то сверхкрасивое уложить. Попробуй, может у тебя получится)
procedure Reg_Table (var Table; Where : Integer);
var
Regs : Registers;
begin
with Regs do
begin
AX := $1100;
BX := $0E00;
CX := 1;
DX := Where;
BP := Ofs (Table);
ES := Seg (Table);
Intr ($10, Regs);
end;
end;
const
New_Sym : array[1 .. 14] of Byte =
( $FF, $00, $88, $50, $20, $55, $57, $89,
$00, $00, $00, $00, $00, $00 );
begin
Reg_Table (New_Sym, 254);
WriteLn(Chr(254));
end.
> var
> Regs : Registers;
Никогда не понимал смысл этой конструкции. Код вызова прерывания выглядит с ней ну очень по-уродски. Как раз тут асм и нужен. Это конструкцию ввели какие-то ярые асмофобы.
Никакой модуль граф не нужен. Если тебе нужен символ в текстовом режиме - то делаешь так: берешь лист бумаги в клетку, и очерчиваешь область размером 8 (ширина) на 14 (высота) клеток. И потом в ней рисуешь. Вот что у меня получилось (точки - пустые пиксели, звездочки - закрашенные) :
********
........
*...*...
.*.*....
..*.....
.*.*.*.*
.*.*.***
*...*..*
........
........
........
........
........
........
> Он непереносим (ни между ОСями, ни между компиляторами), следовательно очень неудобен...
Это код почти прямого обращения к функциям системы. Обёртка только - функция Intr. В других компиляторах есть другие её реализации, например, эмулирующие всю таблицу прерываний через функции из dll?
> или программа на Паскале, состоящая наполовину из asm/mov/add/sub
Надо понимать, что хоть применения асма и надо избегать как только можно, но в некоторых местах он смотрится как родной.