Hollosi Information eXchange /HIX/
HIX CODER 85
Copyright (C) HIX
1998-04-22
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: Soros port Win-NT alatt (mind)  32 sor     (cikkei)
2 Re:abc szerinti rendezes (mind)  9 sor     (cikkei)
3 Re:abc szerinti rendezes (mind)  18 sor     (cikkei)
4 Re: Idozites (mind)  11 sor     (cikkei)
5 Soros port Win-NT alatt (mind)  104 sor     (cikkei)
6 Re: TSR PROBLEM? (mind)  8 sor     (cikkei)
7 idomeres temahoz (mind)  24 sor     (cikkei)
8 >From h555383 Tue Apr 21 08:40:33 +0200 1998 remote fro (mind)  32 sor     (cikkei)
9 Re: *** HIX CODER *** #84 (mind)  10 sor     (cikkei)
10 Re: abc szerinti rendezes (mind)  21 sor     (cikkei)
11 ask? (mind)  6 sor     (cikkei)
12 Delphi procedure pointer & egyebek (mind)  40 sor     (cikkei)
13 =?us-ascii?Q?Va=3A_Onmodosito_kod?= (mind)  16 sor     (cikkei)

+ - Re: Soros port Win-NT alatt (mind) VÁLASZ  Feladó: (cikkei)

Hello Mark!

> a soros port olvasasara Win32-ben eddig csak azt az elegge favago modszert
> sikerult alkalmaznom, hogy megnyitottam a COM2-t mint fajlt, aztan ugy
>  60 ms-onkent megneztem, hogy mi erkezett a bemeneti bufferba.

Amennyire en tudom ez nem favago modszer, hanem az egyetlen lehetoseg
a soros port kezelesere. Viszont talan nem WM_TIMER-rel (remelem
jol gondolom) kellene figyelni, hanem inditasz egy threadet, es belenyomsz
egy WaitCommEventet, ami egy EV_RXCHAR erkezeset figyeli, ami
akkor jon, ha karakter erkezett az input bufferba. Es ekkor lehet kiolvasni.
(De ehhez kell nehany adminisztracio a port megnyitasa korul,
pl: SetCommMask)
Ez tuti nem terheli feleslegesen a procit, es asszem Win32-ben, foleg
NT-n az ilyen modszer ajanlott.

Kozben az jutott eszembe, hogy procedurat irtal, amibol arra
kovetkeztetek, hogy valamilyen pascalban dolgozol (vagy Delphi,
Modula2?), akkor viszont lehet, hogy nem pontosan igy mukodik,
pascalul nem tudok Win32-ben, szoval akkor bocsi.
C-ben tudok krealni konkret peldakodot, ha kell, de lehet, hogy ez
is eleg iranymutato volt a help hatekonyabb tanulmanyozasahoz :-)

Udv: Tibi

> p.s. Milyen szep is volt dos ala programozni, ahol az ember belotte a hardver
t,
>      magara iranyitotta a szukseges megszakitasokat, aztan o volt elet es hal
al
>      ura a gepeben!

En is szoktam szep lanyokrol almodozni :-) (ja, jo volt...)
+ - Re:abc szerinti rendezes (mind) VÁLASZ  Feladó: (cikkei)

>Felado : Ke'tszeri Csaba
>
>Kellene egy okos kis rutin, ami a magyar abc szerint rendezi sorba a
>stringeket. Ami gond az az, hogy az kettos betukre is illene figyelnie.
ok, de mi lesz a ko:zse'g-el? :-)

>-------------------------------------------------------<
Kovacs Karoly (   )
>-------------------------------------------------------<
+ - Re:abc szerinti rendezes (mind) VÁLASZ  Feladó: (cikkei)

>Temakor: abc szerinti rendezes ( 16 sor )
>
>Kellene egy okos kis rutin, ami a magyar abc szerint rendezi sorba a
>stringeket. Ami gond az az, hogy az kettos betukre is illene figyelnie.
Megneztem a telefonkonyvet, ott a magzat utan van a magyar.

magas
magyar
magzat

mi erre a hivatalos szabaly?

es mi van a hosszu kettosbetukkel?

jo kis rutin lenne.
>-------------------------------------------------------<
Kovacs Karoly (   )
>-------------------------------------------------------<
+ - Re: Idozites (mind) VÁLASZ  Feladó: (cikkei)

> Megvan a kersett kod, ami az INT 15h-t hasznalja (Extended AT BIOS
> functions) abbol is a 86h fuggvenyt.

Azt nem tudtam kideriteni, hogy hogyan mukodik, de a kovetkezo megjegy-
zest talaltam:

 ...only accurate to 977us...

Ez nyilvan valamilyen szamlalo miatt lehet...
-- 
Tibor
+ - Soros port Win-NT alatt (mind) VÁLASZ  Feladó: (cikkei)

> Felado :  [Austria]

> a soros port olvasasara Win32-ben eddig csak azt az elegge favago
> modszert sikerult alkalmaznom, hogy megnyitottam a COM2-t mint fajlt,
> aztan ugy 60 ms-onkent megneztem, hogy mi erkezett a bemeneti
> bufferba.

A megoldas nem tul rovid, ha szepen kidolgozza az ember, de nem is olyan
szornyu:

- Port megnyitasa, pl.:
    if( (COMDEV(MeasApp) =
            CreateFile( szPort,
                        GENERIC_READ | GENERIC_WRITE,
                        0,                      // exclusive access
                        NULL,                   // no security attrs
                        OPEN_EXISTING,
                        FILE_ATTRIBUTE_NORMAL |
                        FILE_FLAG_OVERLAPPED,   // overlapped I/O
                        NULL )) == (HANDLE) -1 )
    {
        return FALSE;
    }

- Annak beallitasa, hogy az adott porton milyen esemenyek legyenek fi-
  gyelve (a WaitCommEvent()-tel, de most csak inicalizalashoz allitjuk
  be), pl.:
    SetCommMask( COMDEV(MeasApp), EV_RXCHAR );

- RX es TX bufferek beallitasa, pl.:
    SetupComm( COMDEV(MeasApp), RXQUEUE_SIZE, TXQUEUE_SIZE );

- Bufferek es egyebek torlese, pl:
    PurgeComm( COMDEV(MeasApp), PURGE_TXABORT | PURGE_RXABORT |
                                 PURGE_TXCLEAR | PURGE_RXCLEAR );

- Egyeb beallitasok, pl:
    // Set up for overlapped I/O
    CommTimeOuts.ReadIntervalTimeout          = 0xFFFFFFFF;
    CommTimeOuts.ReadTotalTimeoutMultiplier   = 0;
    CommTimeOuts.ReadTotalTimeoutConstant     = 1000;
      
    // CBR_9600 is approximately 1byte/ms. For our purposes, allow
    // double the expected time per character for a fudge factor.
    CommTimeOuts.WriteTotalTimeoutMultiplier  =
                                    2 * CBR_9600/BAUDRATE(MeasApp);
    CommTimeOuts.WriteTotalTimeoutConstant    = 0;
    SetCommTimeouts( COMDEV(MeasApp), &CommTimeOuts );

- Kommunikacios jellemzok beallitasa, pl.:
    BOOL fRetVal;
    DCB  dcb;

    dcb.DCBlength = sizeof(DCB);

    GetCommState( COMDEV(MeasApp), &dcb );

    dcb.BaudRate = BAUDRATE(MeasApp);
    dcb.ByteSize = BYTESIZE(MeasApp);
    ...

    fRetVal = SetCommState( COMDEV(MeasApp), &dcb );


- Egy kulonallo thread inditasa (persze nem kotelezo), ahol varni lehet
  az (elozoleg SetCommMask()-kal beallitott) esemenyekre, pl:

    SetCommMask(...)

    while( TRUE )
    {
        WaitCommEvent( COMDEV(MeasApp), &dwEvtMask, NULL );

        if( (dwEvtMask & EV_RXCHAR) == EV_RXCHAR )
        {
            do
            {                         // Itt van a ReadFile() elasva...
                nlen = ReadCommBlock(...);
                Evalu8RecdBlock(...); // Vett adatok kiertekelese...
            } while( nlen > 0 );
        }
    }


Ez az az resz, ami igazabol a kerdes volt.

A dolgnak persze van meg egy-ket szepsege, pl. a ClearCommError()
hasznalata, az overlapped I/O, ami plusz hibavizsgalatot tesz szukseges-
se (GetLastError()), az EV_TXCHAR felvetele az esemenyek koze, ha onteni
kell kifele az adatokat (az altalam keszitett programnak inkabb csak
vennie kellett), stb.


> p.s. Milyen szep is volt dos ala programozni, ahol az ember belotte a
>      hardvert, magara iranyitotta a szukseges megszakitasokat, aztan o
>      volt elet es halal ura a gepeben!

 ...es milyen nehez volt korrektul inicializalni a soros portot, hogy
    _minden_ fellelheto kartyan jo legyen ... es milyen jo volt mindig
    kilepni a programokbol, ha egy masikat akart futtatni az ember...

   Biztosan megnyugtatobb volt, de valahogy mar nem tud lelkesiteni. :-)
-- 
Tibor
+ - Re: TSR PROBLEM? (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Nekem van me'g valahol ASM mintapeldam. Szepen kidolgozott, ertheto,
tobb megszakitasba is beveszi magat, eleg biztonsagos.

A masik veglet az otsoros C program...
-- 
Tibor
+ - idomeres temahoz (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Csak egy tapasztalatot szeretnek megosztani az
idomeres temahoz. Egyszer szuksegem volt egy
digitalis jelfolyam analizalasara. Egyszeruen 
a parhuzamos port bemeneteire kotottem a kerdeses
vezetekeket, es egy gyors ciklussal neztem, hogy
mi tortenik. Az ido meghatarozasahoz az idozito
IC-t olvasgattam. A kovetkezo dolgot figyeltem meg:
Minden kiolvasott ertek pozitiv volt (tehat a 0. bit
mindenhol 0), es csak ket korbeszamolas (0-65535-ig)
utan hivta meg a megszakitast. Ugy nezett ki, mintha
a rendes erteket "valaki" egy bittel eltolta volna
felfele, es igy egy ertekes bit elszalt. Szivtam
is miatta rendesen!

Csak ennyi. Valaki megmagyarazhatna! Nekem akkor
nem volt eleg idom, hogy utananezzek, hatha be lehet
allitani az IC-t, hogy rendesen szamoljon.

Udv
Emze
----
MailTo: 
+ - >From h555383 Tue Apr 21 08:40:33 +0200 1998 remote fro (mind) VÁLASZ  Feladó: (cikkei)

Date: Tue, 21 Apr 1998 08:40:33 +0200 (MET DST)
From: Csordas Gabor >
X-Sender: 
To: 
Subject: koszonet 
Message-ID: >
MIME-Version: 1.0
Received: from jgytf.u-szeged.hu by kurrah.cab.jgytf.u-szeged.hu; Tue, 21 Apr 1
998 08:40 MET
Content-Type: TEXT/PLAIN; charset=US-ASCII
Content-Length: 450

 
Hi all!

	Kosz mindenkinek a segitseget "dat in exe" temaban.
	Sajnos elobb nem tudtam valaszolni mert bekoszontott a 
	tavaszi szunet. De azert kosz!
	



	----------------------------------------------------------------

				Csordas Gabor
				   /TACSI/
				6724 Szeged
		              Debreceni u 18/b
			   	  HUNGARY
			   	
			      tel: (62) 474-075
	---------------------------------------------------------------
+ - Re: *** HIX CODER *** #84 (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok,

Tudna valaki segiteni ActiveX-ben? C-ben kellene egy olyan
ActiveX controlt megirnom, ami Visual Basic-ba belehelyezve
tobbszintu hiearchiat tud megvalositani.
(Tehat a VB-ben a property-jei kozott van olyan elem, ami egy
ujabb objektumra mutat, s ez is a control-omon belul van.)

Koszi
Juan
+ - Re: abc szerinti rendezes (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

>Kellene egy okos kis rutin, ami a magyar abc szerint rendezi sorba a
>stringeket. Ami gond az az, hogy az kettos betukre is illene figyelnie.

Szerintem ilyet nem lehet szotar nelkul csinalni, mert
szep magyar nyelvunkben egy program szamara nem
egyertelmu, hogy kettosbeturol van szo, vagy csupan
veletlenul kerult egymas melle a ket betu, pl:

vilagoszold (vila'gos-zo:ld)
pacso (pa'c-so')
vizszint, vizsugar, malacsag, stb.

Ha csak a kezdobetut figyeled, akkor lehet, sot a cs
es a zs kivetelevel a helyen is lesz mindenki.

Ha valaki megis tud ilyen algoritmust, arra kivancsi
lennek en is.

Udv.Csaboca.
+ - ask? (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!
Ugy tudom c-ben van egy valamifele gotoxy(x,y)
Hogyan kell ezt hasznalni es milyen headerben van
Hogyan tudom lekerdezni az aktualis kurzor poziciot??
SOS maganlevelben a leggyorsabb!!!!
BYE!
+ - Delphi procedure pointer & egyebek (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Most irom at a felkesz Pascalos kalandjatekunkat Delphi ala, hogy
megiscsak valami pofa'sat tudjak kihozni az alatt a csekely ido alatt,
ami programozasra a rendelkezesemre all, es rengeteg problemaba utkozom.
A help legtobbszor segit, de van amikor nem megyek vele semmire. Ez
tortent most is. A DOS-os jatekban a kulonleges (kulonleges... volt
beloluk vagy 20) valasztasi lehetosegeket egyenkent vizsgalva kezeltem,
ami a bovitest nehezkesse tette (nomeg fene "unelegans" volt). Az
atirasnal jott az otlet, hogy mi lenne, ha csinalnek egy pointer tombot
nekik, es az adatfeltoltesnel beallitanam oket a kivalasztasukkor
vegrehajtando procedure-okra. Ilyet eddig csak C-ben csinaltam, ott is
mar nagyon regen, igyhat nem jutottam sokra, allandoan kulonbozo
"incompatible types" uzeneteket kapok. Szoval, tudtok segiteni? Hogyan
oldjam meg, mi a szintaxisa? Osszefoglalva tehat az kene, hogy hogyan
tudok Delphiben egy globalis eljarasra mutato pointer-t letrehozni.

Mas(nr.1): egy mar kesz, leforditott programrol meg lehet mondani, hogy
milyen fejlesztoi eszkozzel (C, Pascal, Visual Basic, stb...) keszult?
Ha igen, milyen modszerekkel?

Mas(nr.2): Szinten annal a bizonyos kalandjateknal mar azon a szinten,
amikor a kod kezd attekintethetetlenul bonyolulta valni (nalam 1400 sor
korul), fellepett egy erdekes, majdhogynem misztikus hiba. Az egyebkent
a helyszinnleirast beolvaso eljaras readln(szovegfile,stringvaltozo)
utasitasa nem a fajlbol olvasott be, hanem elkezdte szepen bekerdezni a
kepernyorol a usertol a szoveget, es Ctrl+Break-re hagyta csak abba. Ezt
miert tette? 

Mas(nr.3): A memoria melyik teruleten tarolja a Win95 a futasahoz
nelkulozhetetlen reszeket? Szeretnek ugyanis egy szep, gyors, hatekony
kifagyasztot irni. Hogy minek? Fene tudja, csak jo lesz valamire...

Na, jolesett ugye az Asm es a karakterfelismeres emelkedett
szarnyalasaibol leereszkedni a puritan Pascal es Delphi szintjere...
:)))
Elore is kosz a valaszokat (remelem lesznek),

Gyongyosi Pe'ter a lamer   (nem is annyira, csak tok jol rimelt)

+ - =?us-ascii?Q?Va=3A_Onmodosito_kod?= (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok! 

	Lenne 1 kerdesen: lehet vedett (protected) uzemmodban onmodosito
kodot irni, pl. Windows, vagy WinDosBox? Ha lehet, akkor hogyan.
	Meg egy kerdes: vedett modban milyen antidebugging (antidebug)
technikakat lehet alkalmazni?
	Meg egy utolso: vedett modban milyen kesleltetest lehet kesziteni
(mikroszekundumost lehet)?	
 
Minden kerdesedre a valasz benne van a Szamitogep virusok c. konyvben.
Ha erdekel a szerzo es a kiado, akkor irj.
Remelem nem virusirason torod a fejed :(

Udvozlettel:

			Takacs Istvan

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