Hollosi Information eXchange /HIX/
HIX CODER 643
Copyright (C) HIX
1999-11-16
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: Turbo Pascal: 320x200x16M (mind)  33 sor     (cikkei)
2 mp3 info (mind)  26 sor     (cikkei)
3 tomorites (mind)  7 sor     (cikkei)
4 re: Turbo Pascal: 320x200x16M (mind)  60 sor     (cikkei)
5 Re: Delphi: fsMDIform (mind)  22 sor     (cikkei)
6 Re: Delphi3 (mind)  19 sor     (cikkei)
7 Re: exe vs parameterek (mind)  49 sor     (cikkei)
8 ScrollBars FoxPro-ban (mind)  9 sor     (cikkei)
9 16 bites DMA + Hangkartya programozas (mind)  9 sor     (cikkei)

+ - Re: Turbo Pascal: 320x200x16M (mind) VÁLASZ  Feladó: (cikkei)

Udv mindenkinek es neked is Zoli,

> Sikeresen beallitottam a kepernyot 320x200x16M-ra es elkezdtem
> a pixeleket a memoriaba irni. Egy ideig minden szep es jo volt,
> de kb. a kepernyo 1/3 resze ala egyaltalan nem tudtam pontot
> tenni. A problemat szemlelteti a http://www.extra.hu/h_zoli/Pixelz.pas
> fajl. Tud valaki segiteni? Ha lehet, a megoldas ne csak erre a
> konkret esetre legyen jo, mert tervezem a program atirasat
> nagyobb felbontasokra is. (800x600x16M, 1024x768x16M)

Nos van egy olyan dolog, hogy a videomemoriat csak 64k-s szegmensekben
erheted el. :((((( 
1. Emiatt lapozni kell (asszem az 4f05h os kodu rutinnal de ez nem biztos)
javaslom nezz utana a Ralf Brown INT listaban vagy ahonnan a programodhoz
szerezted az infot. 
2. Hasznalj LFB-t (Linear Frame Buffer). A segitsegevel a teljes videomem
elerh eto mindenfele kapcsolgatas nelkul, :)))))))) valahol a 32 bites
cimteruletben (persze le lehet kerdezni, hogy pontosan hova kerult be)

Javasolom nezd meg a tobbi funkciot is ne csak azokat amiket a programodban
hasznalsz.

> Volt meg egy dolog, ami szamomra kulonos volt...
> Szakirodalom hianyaban, nekem kellett rajonnom arra, hogy a
> video memoria irasakor az elso harom bajt a harom szin-
> osszetevo (BGR sorrendben) es utana kovetkezik egy *negyedik*
> bajt, amit (latszolag) nem hasznal semmire. Megprobaltam

Ilyen a hardver  :)))

Udv,
--
Alex.
+ - mp3 info (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok

Kerdesem inkabb a szorakozas, mint a munka fele hajlik 8-)
Azt szeretnem megtudni, hogy az mp3 fileokbol hogy lehet 
kiszedni az olyan infokat, mit pl. bitrate, mono-stereo, szam 
hossza,...
A TAG infot sikerult "analizalnom". Ha valakit erdekelne:
a file vegetol szamitott 125 byteon van a kovetkezo strukturaban 
(C):
struct TAGinfo
	{
		char			title[30];
		char			artist[30];
		char			album[30];
		char			year[4];
		char			comment[30];
		unsigned char	genre;
	};

Ha tudtok valamit legyszi irjatok...
		
minden jot...
                                                         bye...
> ----------------------------------------------------------
E-Mail: 
PMail32 v3.12a
+ - tomorites (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok !

Kepeket szeretnek tomoriteni, egymas utan tobbet, amik elegge hasonlok
(szoval jo lenne csak a valtozasokat atvinni). Ha tud valaki egy jo
modszert, akkor megkoszonnem (lehet veszteseges is).

Udv.: Szaszi
+ - re: Turbo Pascal: 320x200x16M (mind) VÁLASZ  Feladó: (cikkei)

Hali!

>Sikeresen beallitottam a kepernyot 320x200x16M-ra es elkezdtem
>a pixeleket a memoriaba irni. Egy ideig minden szep es jo volt,
>de kb. a kepernyo 1/3 resze ala egyaltalan nem tudtam pontot
>tenni.

Nos szamolj csak egy picit utana 320x200x4 vagyis ennyi byte-bol all a kepernyo
 320x200x32 bites felbontasban ez 256000 byte ami nem fer bele egy
szegmensbe(max. 64k).Itt ez a 0a000h.Ezert tudtad csak a kepernyo 1/3
reszet kezelni. Erre van tobb megoldas, egy ilyen a bankvaltas. 320x200x32
bites felbontas 4*64kb vagyis negy szegmensbe fern bele.A bankvaltas
 arra jo hogy e negy szegmens kozott tudsz valtogatni irni, ugyanugy a
0a000h ra kell csak mondjuk ha 160,100 ra akarsz kirakni egy pixelt akkor:
  cim:=(160+100 *320)*4
ez a 1. szegmens (0. tol szamolva)   63105. pixele.
A bankvaltas:
procedure setbank(banknumber:word);assembler;
asm
mov ax,4f05h
 xor bx,bx
 mov dx,banknumber
 int 10h
end;

Rövid pelda a pixel cim szamitasra:
addr:=(x+y*320)*4;
setbank(addr div 65535);
mem[sega000:addr mod 65535]:=color;

Ha igy csinalod mukodni kell neki, de nem fog elszallni a sebessegtol:)
Jobb ha bufferrel csinalod mondjuk 4 buffer picit nehezkes kezelni ezert en ugy
 csinaltam regebben:
eloszor is 320x200x16 boven eleg pascal alatt meg meg konnyu kezeleni is
 ket buffert hasznalok egy a szin felso byte-janak  egy az alsonak
mem[seg(buf1^):(x+y*320)]:=lo(color);
mem[seg(buf2^):(x+y*320)]:=hi(color);
miutan megvolt a kep a virtualis kepernyon akkor egy eljarassal kimasoltam a a0
00-ra. Ehhez osszesen ket bankvaltas kellett, ez is rosszabb az lfb-nel,
de megiscsak viszonylag jo.
Ha kell kuldok pelda prog.-t is.

>Volt meg egy dolog, ami szamomra kulonos volt...
>Szakirodalom hianyaban
'Periferiak programozasa' az alap ebben a tamaban

> nekem kellett rajonnom arra, hogy a
>video memoria irasakor az elso harom bajt a harom szin-
>osszetevo (BGR sorrendben) es utana kovetkezik egy *negyedik*
>bajt, amit (latszolag) nem hasznal semmire. Megprobaltam
>mindenfele erteket beletolteni, de a kepernyon nem valtozott
>semmi. Ha viszont nem kell neki, akkor minek kell elpazarolni
>pixelenkent egy bajtot?
Hasznalj 320x200x24 bites felbontast  mondjuk ez sok videokartya nem tamogatja 
(univbevel mar igen)
BGR v. RGB sorrend is videokartyatol fugg.

bye
--
vic/all.inq
+ - Re: Delphi: fsMDIform (mind) VÁLASZ  Feladó: (cikkei)

>Sziasztok ! Tudna segiteni abban valaki, hogy hogyan
>lehet egy  MDIForm-on egy TImage objektumot megjeleniteni?
>Ha csak felrakom, akkor a futatas kozben nem latszik (mint
>ahogy más objektum se). Az OnPaint-tal is probaltam futas kozeben letrehozni de
>akkor se jelenik meg.
Azert, mert ilyenkor a foformon belul keletkezik egy specialis ablak (amiben
majd a child formok jelennek meg), es eppen ezert hiaba rajzolsz a formra
vagy a hatterere, mert valojaban azt teljesen kitakarja ez, az amugy szinte
ugyanolyan kinezetu (csak egy picit "sullyesztett") kontroll.
Ez alapjaban nem lenne tul nagy baj, hiszen a ParentHandle property
allitasaval barmelyik TWinControl-t bele lehetne rakni, csak hogy a TImage
nem a TWinControl-bol van szarmaztatva!
A megoldas az, hogy a Form.ClientHandle ablak WM_PAINT esemenyet el kell
kapni es ennek az ablaknak a Canvas-ara kell rajzolni (ti. ez a szoban forgo
kliens-terulet-ablak). Persze azert van egy kis csavar a dologban, mert
ahhoz, hogy ennek a WM_PAINT ill.  WM_ERASEBKGND esemenyet el tudd kapni, a
SetWindowLong()-gal "at kell iranyitani" az uzenet-kezelest egy sajat
rutinra, amibol esetleg majd az eredetit is meg kell hivni.

Elkuldtem egy komponens maganban ami megoldja a dolgot.

Gabor
+ - Re: Delphi3 (mind) VÁLASZ  Feladó: (cikkei)

>1. hogy hogyan lehet egy TMemo-t gorgetni soronkent programbol,
SendMessage(Memo1.Handle,EM_SCROLL,SB_LINEUP,0); ill.
SendMessage(Memo1.Handle,EM_SCROLL,SB_LINEDOWN,0);

>2. hogyan lehet lekerdezni az idot msec pontossan,
Now(). Persze DateTimeToSystemTime()-mal at kell alakitani, hogy ki tudd
fejteni belole az egyes komponenseket...

>3. hogyan lehet valamilyen delay-t csinalni,
Sleep().

>4. es valami ilyesmit:
>     Repeat
>      teszvesz();
>     Until keypressed;
Hosszabb ciklusok kozben az Application.ProcessMessages()-t erdemes
hivogatni az alkalmazas "valaszkepessegenek" megorzese erdekeben...

Gabor
+ - Re: exe vs parameterek (mind) VÁLASZ  Feladó: (cikkei)

>erdekelne ot, de piszkosul, hogy az exe fileok hol taroljak a

A PSP-n a 80h offseten. Az elso byte, hogy mekkora a parameter, es utana maga a
parameter-lanc (natur ugy, ahogy azt megadtak...). A PSP szegmens cime alapban 
a DS ill. ES regiszterekben van a prog. indulasakor, tehat:

code segment

start:
     mov  cl, [80h]
     xor  ch, ch
     mov  si, 81h
     cld
ciklus:
     lodsb
     ... karakter AL-ben, csinalsz vele amit akarsz...
     loop ciklus

     int  20h
code ends

end  start


>Szoval hogy hogy lehet azt elerni, hogy o olyan exet irjon, amit
>parameterezgetve lehet futtatni a kesobbiekben. Aki erti a kerdest, es

De ha magasszintu nyelvben programozik a baratod, akkor nem erdemes a PSP-t
kozvetlenul maceralni. Pl. C-ben:

int main (int argc, char *argv[])
{
  int i;

  printf("A program neve es eleresi utvonala: %s\n", argv[0]);

  for (i = 1; i < argc; i++) {
    printf("%u. parameter: \"%s\"\n", argv[i]);
  } // for
}

Turbo pacalban fuggvenyeket kell hivogatni, de ugyanez a lenyege, mas
programnyelvekben pedig nyilvan maskepp, de mindegyiknek megvan a maga logikaja.

Udv, Tamas

Tamas Rudnai / Sophos Plc
mailto:
http://www.sophos.com
+ - ScrollBars FoxPro-ban (mind) VÁLASZ  Feladó: (cikkei)

Hello mindenkinek !

Egy kis segitsegre volna szuksegem. Meg tudna valaki mondani, hogyan lehet
Foxpro 2.6 alatt(Dos vagy Windows verzio, nem legyeg) scrollbart felrakni
az alblakkeretre?
Mert mar belekarikasodtak a szemeim a sok keresesbe.....

Koszi elore is,
	joco
+ - 16 bites DMA + Hangkartya programozas (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok

A 16 bites DMA-val kapcsolatban kernek infot (vagy Pascal forrast),
illetve hog y ezt mi modon lehet osszehozni egy SB16 kompatibilis
(100%-ig) hangkartyaval. Irni kellene az egyik DOS-os programban egy olyan
reszt, ami lejatszik 22 Khz-es 16 bites, sztereo wavokat.  Idozitessel
kapcsolatban is johetnek otletek...

Koszi, udv: McMacee

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS