From: Serdar KÖYLÜ (skoylu@gizemcafe.net)
Date: Thu 11 Sep 2003 - 08:23:15 EDT
Selamlar...
Eski DOS/Windows programcilari baska cikar yollari olmadigi icin bu tur
API isleriyle bogusmayi tercih ederler :)) Bende hain pengueni oynayip
ses cikarmadim ki hacking kabileyetlerimiz biraz semirsin.. Ama
goruyorum ki is maalesef baska mecralara gidecek, thin client
marka/model vs. flame'i kopacak :))
Oysa, Terminal denen sey, ESCAPE kodlari ile ayarlanan bir
sanal/fiziksel cihazdir. Sutun sayisini degistir, kursoru yerlestir, su
renkle yaz, scroll et vs. vs. hepsi esc[foo;bar; gibi karakterlerle
yapilir. Mesela sizin aradiginiz 25x132 modu, vt220 uyumlu terminallerde
"\ESC[1;25r\ESC[25;1H" gibi bir komut olmali. Peki mesela Linux
terminalde nasildir, vt340'da nasildir ? Bu sorunun cevabi
"/etc/termcap" dosyasinda gizlidir. Bu dosyayi incelerseniz, Linux'un
destekledigi her tur terminal icin bu kodlarin tek tek listelendigini
goreceksiniz. Basitce, 132 cols seklinde grep veya search yapin..
Peki kodu bulunca ne yapacagiz ? Basit
'printf("\0x1B[kod;hede;hodo\n");' Oldu size dilediginiz terminal
aksiyonu.. 0x1B yerine gene o dosyadan bulabileceginiz ESCAPE
karakterini koymalisiniz..
man termcap
man terminfo
man ncurses
Size yardimci olacak en iyi asistanlardir, konsol uygulamasi yazarken..
Bu termcap/terminfo icinden calistiginiz terminal icin gerekli olan
komut dizesini ogrenip ekrana yazmaniz yeterli ve sart olan kosul..
Saygi ve sevgiler..
On Thu, 11 Sep 2003 03:51:20 -0700 (PDT)
Kenan Dogan <kndogan@yahoo.com> wrote:
> =20
> > Elimde Igel e-terminaller var. Bunlar linux
> > tabanl=FD disksiz (diskonchip ile =E7al=FD=FE=FDyor)
> > makineler.
> =20
> Terminalleriniz san=FDyorum "=C7elimsiz istemci :^)"
> (thin-client) t=FCr=FCnden. Bir ara bro=FE=FCrlerini
> inceledi=F0imi hat=FDrl=FDyorum.
> =20
> > Bu makineler uygulamadan gelen komut ile her
> > konsolu ayr=FD ayr=FD 80-132 kolona de=F0i=FEtirebiliyor.
> > Ancak elimdeki linux makineler bunu desteklemiyor.=20
> > svgalib'i y=FCkleyip resizcons'u inceleyece=F0im.
> "Uygulamadan gelen komut ile" derken kast=FDn=FDz acaba
> bu terminallere y=F6nelik =F6zel bir kod mu, yoksa daha
> genel bir C program kodu mu ? Buras=FD belki bir =E7=FDk=FD=FE
> noktas=FD olabilir. Bir de =FEu var; o terminaller ana
> makinaya san=FDyorum "terminal em=FClasyonu" ile
> ba=F0lan=FDyordur (VT220, Wyse-60 v.b.).
> Siz o terminallerin yerine Linux y=FCkl=FC PC koyunca,
> do=F0rudan Linux konsol kullanm=FD=FE oluyorsunuz.
> (Bu yorumumda yan=FDl=FDyor olabilirim...)
> =20
> svgalib'in incelenmesini, bu konu ile ilgili temel
> baz=FD bilgi ve program kodlar=FDn=FD i=E7eriyor olmas=FD
> nedeniyle =F6nermi=FEtim. Yoksa "resizecons" program=FDn=FDn
> bu paket b=FCnyesinde oldu=F0unu kastetmedim. Zaten size
> cevap yazd=FDktan sonra merak edip arad=FD=F0=FDmda "kbd"
> paketinin i=E7inde oldu=F0unu g=F6rd=FCm. Bu C prog. kodunun
> ba=FE=FDndaki a=E7=FDklama sat=FDrlar=FD da size fikir verebilecek
> nitelikte g=F6r=FCn=FCyorlar.
> =20
> Ayr=FDca kodun bir yerinde /dev/tty[0-9] , tty[0-9][0-9]
> serisinin t=FCm=FCne uygulanan "size" de=F0i=FEtirme i=FElemi
> var. Siz her bir konsol ekran=FDn=FDn ayr=FD ayr=FD
> ayarlanmas=FDn=FD tercih ediyorsan=FDz, kodun o b=F6l=FCm=FC ile
> oynaman=FDz gerekebilir.
> =20
> =D6zetlersek :
> =20
> * kbd paketinin son s=FCr=FCm=FCnden "resizecons.c" yi
> inceleyebilirsiniz. ( ben 1.08 s=FCr=FCm=FCn=FC buldum )
> =20
> * svgalib paketinde bu konu ile do=F0rudan ilgili
> "restoretextmode" ve "restorefont" programlar=FDn=FD
> (hem kod, hem man sayfas=FD olarak) inceleyebilirsiniz.
> "restore" s=F6z=FC sizi yan=FDltmas=FDn; "-r" , "-w"
> se=E7imlikleri ile hem okuma hem yazma yapabiliyorlar.
> =20
> Ek-Not: K=FC=E7=FCk bir C program=FD i=E7inden system(".....")
> y=F6ntemi ile kabu=F0a inerek deneme yapt=FDm;
> her iki t=FCrl=FC ge=E7i=FE de ger=E7ekle=FEiyor.
> (80->132 , 132->80) Basit bir denemeydi,
> ama fikir vermesi a=E7=FDs=FDndan yazd=FDm bunu.
> =20
> =DDncelemeniz bitti=F0inde, olumlu-olumsuz sonucu da
> listeye yazarsan=FDz, ilgilenebilecek di=F0er =FCyeler
> ve liste ar=FEivi a=E7=FDs=FDndan yararl=FD olabilir.
> =20
> =DDyi =E7al=FD=FEmalar.
> =20
>=20
>=20
> ---------------------------------
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free, easy-to-use web site design software
>=20
>=20
>=20