> narod, если уж не в лом, киньте кусо4ек кода или расскажите > чуть подробней > о выводе?
Я послал тебе кодец - g_kars@mail.ru - там с пяток базовых функций именно для 13h - режима; Помни, что у меня там все вызовы и адреса ближние - ну там разберешься. Enjoy It ;)
> Народ,подскажите,как выводть STRING в Граф.режиме? > (и если у коГо есть исходники каких-нить эффектов пришлите > plz g_kars@mail.ru ) Ну дык в паскале есть в модуле graph.tpu функция TextOut(или OutText не помню точно) Только если на асме графич. режим врубаешь, то пасовские проги виснут просто. Тогда весь вывод надо на асме писать.
[ASM or PAS] Граф.режим09.10.01 00:49 Автор: kar Статус: Незарегистрированный пользователь
> > Народ,подскажите,как выводть STRING в Граф.режиме? > > (и если у коГо есть исходники каких-нить эффектов > пришлите > > plz g_kars@mail.ru ) > Ну дык в паскале есть в модуле graph.tpu функция > TextOut(или OutText не помню точно) Только если на асме > графич. режим врубаешь, то пасовские проги виснут просто. > Тогда весь вывод надо на асме писать.
> > > Народ,подскажите,как выводть STRING в > Граф.режиме? > > > (и если у коГо есть исходники каких-нить > эффектов > > пришлите > > > plz g_kars@mail.ru ) > > Ну дык в паскале есть в модуле graph.tpu функция > > TextOut(или OutText не помню точно) Только если на > асме > > графич. режим врубаешь, то пасовские проги виснут > просто.
Так еще бы! Они сами по себе криво написаны.
> > Тогда весь вывод надо на асме писать. >
Мда.... wirteln() не подходит? Он имхо, в графическом режиме тоже пишет. Правда криво. Ну на крайняк есть outtext() или outtextxy() - выбирай любую.
> КАК на asm'е-та???
1) Инициализируешь графический режим.
2) Пишешь subrountine для установки точки.
3) Буковка в виде точек у тебя имеется (если нет, то можно получить из биоса таблицу) или загрузить из файла шрифтов.
4) Выводишь буковку по точкам.
[ASM] bios-таблица..?!09.10.01 13:17 Автор: kar Статус: Незарегистрированный пользователь
> 1) Инициализируешь графический режим. > 2) Пишешь subrountine для установки точки. > 3) Буковка в виде точек у тебя имеется (если нет, то можно > получить из биоса таблицу) или загрузить из файла шрифтов. > 4) Выводишь буковку по точкам.
Если можно подробней плз о bios-tabl(+ о файле-шрифте )
[Или где можно о ней прочесть???]
> Если можно подробней плз о bios-tabl(+ о файле-шрифте ) > [Или где можно о ней прочесть???]
Есть такая прекрасная документация TechHelp v6.0 называется так там много чего интересного есть ;) Вот вырезка правда в Win она смотриться не очень :))))
Compatibility: EGA VGA
Expects: AX 1130H
BH request code: 00H = get addr at INT 1fH vector
01H = get addr at INT 43H vector
02H = get addr of ROM 8x14 font
03H = get addr of ROM 8x8 font
04H = get addr of ROM 8x8 font (2nd half)
05H = get addr of ROM 9x14 alternate font
(VGA) 06H = get addr of ROM 8x16 font
(VGA) 07H = get addr of ROM 8x16 alternate font
──────────────────────────────────────────────────────────────────
Returns: CX height (scan-lines) / bytes per character (from 0040:0085)
DL screen rows (from 0040:0084)
ES:BP address of requested font-definition table
──────────────────────────────────────────────────────────────────
Info: This provides a means to locate ROM-defined character-definition
tables.
A typical use would be to copy the table data, make some custom
modifications, then modify the EGA/VGA Data Areas to point to you
changed table, and then use TSR function to make the changes
permanent.
The tables are always CX*256 bytes long.
┌76543210┐ ┌76543210┐ ┌76543210┐
│ │=00000000=00 │ │=00000000=00 │ │=00000000=00
│ │=00000000=00 │ │=00000000=00 │ │=00000000=00
│ ■■■ │=00111000=38 │■■■■■■ │=11111100=FC │ ■■ │=00001100=0C
│ ■■ ■■ │=01101100=6C │ ■■ ■■ │=01100110=66 │ ■■ │=00001100=0C
│■■ ■■ │=11000110=C6 │ ■■ ■■ │=01100110=66 │ │=00000000=00
│■■ ■■ │=11000110=C6 │ ■■ ■■ │=01100110=66 │ ■■■ │=00011100=1C
│■■ ■■ │=11000110=C6 │ ■■■■■ │=01111100=7C │ ■■ │=00001100=0C
│■■■■■■■ │=11111110=FE │ ■■ ■■ │=01100110=66 │ ■■ │=00001100=0C
│■■ ■■ │=11000110=C6 │ ■■ ■■ │=01100110=66 │ ■■ │=00001100=0C
│■■ ■■ │=11000110=C6 │ ■■ ■■ │=01100110=66 │ ■■ │=00001100=0C
│■■ ■■ │=11000110=C6 │ ■■ ■■ │=01100110=66 │ ■■ │=00001100=0C
├■■ ■■ ┤=11000110=C6 ├■■■■■■ ┤=11111100=FC ├■■ ■■ ┤=11001100=CC
│ │=00000000=00 │ │=00000000=00 │■■ ■■ │=11001100=CC
│ │=00000000=00 │ │=00000000=00 │ ■■■■ │=01111000=78
│ │=00000000=00 │ │=00000000=00 │ │=00000000=00
│ │=00000000=00 │ │=00000000=00 │ │=00000000=00
└────────┘ ║ └────────┘ ║ └────────┘
╔════════════════════╝ ║
╔║═══════════════════════════════════════════╝
║║ c000:n+(m*0) 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ASCII 0=
║║ c000:n+(m*1) 00,00,7E,81,A5,81,81,BD,99,81,81,7E,00,00,00,00 ASCII 1=
║║ c000:n+(m*2) 00,00,7C,FE,FE,D6,FE,FE,BA,C6,FE,7C,00,00,00,00 ASCII 2=
║║ .
║║ :
║╚c000:n+(m*65) 00,00,38,6C,C6,C6,C6,FE,C6,C6,C6,C6,00,00,00,00 ASCII 65=A
╚═c000:n+(m*66) 00,00,FC,66,66,66,7C,66,66,66,66,FC,00,00,00,00 ASCII 66=B
.
:
In the 8x16 font above, each character of the ASCII table is represented
by 16 bytes. In each of those 16 bytes, each bit represents one pixel,
with the high-order bit representing the leftmost of eight pixels.
[ASM] String in Graph(13h) ?!10.10.01 20:57 Автор: kar Статус: Незарегистрированный пользователь
> narod, если уж не в лом, киньте кусо4ек кода или расскажите > чуть подробней > о выводе?
Я послал тебе кодец - g_kars@mail.ru - там с пяток базовых функций именно для 13h - режима; Помни, что у меня там все вызовы и адреса ближние - ну там разберешься. Enjoy It ;)
thnk$13.10.01 14:27 Автор: kar Статус: Незарегистрированный пользователь
В режиме 13h сегмент видео памяти 0xA000.
Символы кодируються так скажем
00000000
00111100
01000010
01000010
01000010
01000010
01000010
01000010
01000010
01000010
01000010
01000010
01000010
01000010
00111100
00000000
Это ноль :) 8x16. Соответсвенно выводить надо попиксельно. Сканируем каждый байт в двоичном виде если 0-то пусто иначе выводим цветом каким-то... Лучше всего сначала сгенерить спрайтик для символа а потом уже его вывести так будет быстрее. Можно выводить кстати и в тесктовом режиме :).