Witam ponownie.
Dzisiejsze pytaie brzmi: jak sprawić żeby przy ort! z trybu graficznego (egavga.bgi w BC++3.1) wyświetlały się polskie znaki. Strony kodowe mam OK. Wydaje mi się że cała wina leży po stronie BGI. W oknie kompilatora są a w wykonanym programie nie... jak to spolszczyć????
Muszisz zdefiniować własne ostatnie 128 znaków. Jeżeli jest to rastrowa (8x8), to spróbuj ustawić przerwanie 1fh (0x1f) na bufor definicji tych 128 znaków. To działało przy niektórych drajwerach bgi. A jeśli nie, to niestety musisz pomęczyć się i napisać własne outext/outtextxy, takie które bedą rysowały znaczek pixel po pixelu. Wtedy sam decydujesz skąd zaczerpnąć dane. W ostateczności, jeśli umiesz -> własny drajwer.
Hmm... może by i zadziałało przechwycenie, pod warunkiem że wiedział bym jak to zrobić. Czy nie znasz jakiegoś linku z nieco okładniejszym opisem? No a zrobienie własnego sterownika odpada... niestety jeszcze do takiego poziomu nie doSZEDŁem...
Nie przechwycenie, tylko ustawienie wektora przerwań. Na upartego możesz to zrobić bezpośrednio w pamięci:
char* far* wektrory=null; // zapomniałem o tym far wcześniej
asm cli;
wektory[0x1f]=&mój_bufor;
asm sti;
Pod adresesm 0000:0000 jest tablica 256 wektorów. Albo setvect(). A co do linku... W downloadzie umieściłem dwa pliki (http://4programmers.net/download.html?cat=9) tfd1.zip i tfd2.zip- bawiłem się czcionkami dosowymi przez kilka ładnych latek. W drugim są źródla (niestety wtedy uzywałem tylko tp) i jest tam przykład wykorzystania 0x1f. W szczególności pliki _graph.pas, litery.pas i jako efekt wizualny litery.exe.
(nieskromny jestem, ale każda pliszka... ma swój ogon :> )
Dzięki :) Muszę to jescze "przemóżdżyć". Nie będzie łatwo ale powinienem to załapać. W razie czego będę nękał Was znów :)