Hollosi Information eXchange /HIX/
HIX CODER 522
Copyright (C) HIX
1999-07-17
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Kepernyo karakter attributumok Clipperben (mind)  13 sor     (cikkei)
2 DelphiX helpje, Componens iras (mind)  22 sor     (cikkei)
3 Interrupt kezeles C-ben (mind)  86 sor     (cikkei)
4 Javitas (mind)  11 sor     (cikkei)

+ - Kepernyo karakter attributumok Clipperben (mind) VÁLASZ  Feladó: (cikkei)

> >>>Ki tud olyan fuggvenyt CLIPPER 5.3-hoz,
> amellyel a karakteres kepernyo tetszoleges helyen
> allo karakter attributumat le lehet kerdezni ?
> Arnyekolashoz kellene, nem akarok extern C modultirni
> hozza, ha nem muszaj... :)<<<
Hali!
Ha a SAVESCREEN-nel lemented a kepernyo egy reszet, akkor egy olyan
karaktersorozatot kapsz, ahol minden keprnyo karakterhez ket
byte tartozik: az elsoben a karakter ASCII kodja, a masodikban pedig
az attributum. Ha ezt gusztusosan atirkalod, majd a RESTSCREEN
segitsegevel kidobod a kepernyore, tied a palya...
Bye
Hody
+ - DelphiX helpje, Componens iras (mind) VÁLASZ  Feladó: (cikkei)

Udvozlet mindenkinek!

   Van 1 olyan problemam, hogy a DelphiXnek a helpje nem muxik w98 alatt,
azt mondja (mar a vindoz), hogy nem tamogatott nyelvu (mind a magyar, mind
az angol w98). A regebbi verzionak ment a helpje, ezt mostansag toltottem
le, es nem jo :(. Ha valakinek esetleg van 1 mukodo help fileje, nagy-nagy
oromot okozna nekem, ha elkuldene. Eleg surgos ...
   A masik porblema, lehet, hogy hulyeseg. A Directx miatt rakenyszerultem
1 sajat gomb komponens irasara.  modositgattam mar komponenseket
delphiben, de itt az kene, hogy ugye legyen sajat pl. OnMouseMove
esemenykezeloje, ne kelljen figyelnem a DxDraw Mousemovejaban, hogy most a
gomb felett van az eger v.  nem. Hogy kezdjek hozza ? Nem lehet pl. 1
TLabelbol csinalni, mer nem lehet kirakni a DxDraw fole ..... Remelem nem
valami primko dologgal zaklatlak titeket.
  Jaj, meg 1 utolso aztan nem tartok fel senkit tovabb ! A
TDxImageList.Items[i].Picture.loadfromfilevel hiaba toltok be futasidoben
1 kepet 1 masik helyere nem csereli ki. Miert lehet ez ?

Koszonom  a turelmet, es (elore) a segitokesz levelaradatot :)

chead

+ - Interrupt kezeles C-ben (mind) VÁLASZ  Feladó: (cikkei)

>On Mon, 5 Jul 1999, Rad Imre wrote:
>> A helpben talaltam rola egy mintaprogit, es nem ertem
>> ezt a reszletet:
>> 
>> #ifdef __cplusplus
>>     #define __CPPARGS ...
>> #else
>>     #define __CPPARGS
>> #endif
>> 
>> void interrupt handler(__CPPARGS)
>> 
>> ezt az argumentumot kapja a sajat interrupt rutin. De miert
>> van erre szukseg?
>Fogalmam nincs, mar regen irtam ilyet. Annyit tudok, hogy a fuggvenynev

A kovetkezot gondolom hogy tudodjatok, de leirom azert is:
 ha C compilerrel forditod akkor a precompiler igy irja at:
	void interrupt handler()
 ha C++ compilerrel forditod akkor meg:
	void interrupt handler(...)

Az '...' (ellipsis) annyit jelent C++nak hogy a fuggvenyt valtozo szamu
parameterrel lehet hivni, es igy nincs 'type checking'.

>> Egy olyan interruptot szeretnek installalni, ami x masodpercenkent
>> meghivodik. Melyik ez? Lehet allitani, hogy milyen gyakran hivodjon
>0x1C kb 18* hivodik masodpercenkent. Ha ennel surubbet akarsz, 
>lehet azt is, de fejbol nem tudom. Mar csinaltam. Tomor asm...
>Elsore annyira emlexem, hogy at kell programozni a 8253 timer ic
>valamelyik csatornajat. Meg at kell venni az egesz 

Egyszeru: 

TR_LOW            equ   0ffh
TR_HIGH           equ   003h

	cli
	mov al,036h
	out 043h,al
	jmp $+2			; ha jol emlekszem csak 8086-nak kell ez
	mov al,TR_LOW
	out 040h,al
	jmp $+2
	mov al,TR_HIGH
	out 040h,al
	jmp $+2

;	.. es atvenni a int 8-et a sajat hadler-rel !!
;	getvector ... setvector ...

	sti

Az eredeti ertekek : TR_LOW es TR_HIGH mindketto 0ffh
igy a timer interrupt 1193180/65536 -szor tortenik minden mp-be (~18.2)

Ha gyorsabban akarod akkor meg kell valtoztatni a TR_HIGH es TR_LOW
szamokat. 
Pelda: ha 64-szer gyorsabban akarod a megszakitast, akkor
0ffffh/040h = 03ffh, TR_HIGH = 003h, TR_LOW = 0ffh
igy az int 8 1193180/1280 szor tortenik, kb 932.2 szer (minden 1.073 ms)

Tobb problemak ott vannak hogy az eredeti int 8 fuggveny neked
MUSZAJ az eredeti idobe hivni, igy szamolni kell es minden
64-edszer hivni kell. Es el nem felejteni a sajat handler vegen
a PIC-nak megmondani hogy vege van a megszakitasnak
	mov al,020h
	out 020h,al

Na es ha vege van a programnak akkor mindent vissza kell allitani
eredetire!!

>> Es egy zarokerdes. Mi tortenik akkor, ha tul nagy processzoridot 
>> igenybevevo rutint vegeztetek el? (Gondolom jegkrem...)
>Igen. Ui. ezt az it-t a 0x08 hivja, az meg hw. it. Ez azt jelenti hogy ha
>tetszik, meg ha nem akkor is beut, mert a 8253-nak lejar az ideje, es...
>Tehat ha nem lepsz ki idoben, akkor elmarad a stack felszabaditasa, es

Ezt egyszeru megoldani, kell egy valtozo (flag). Amikor belepsz
a fuggvenybe, nezd meg a valtozot, es ha mar benne vagy a fuggvenybe azonnal
kilepni. (A fuggveny ir pl 1-et a valtozoba a teszt utan, es ir 0-at mielott
kilep).

Udv

Attila Voros, Chief Engineer, ISDgames
+ - Javitas (mind) VÁLASZ  Feladó: (cikkei)

Haat.. nyilvanvalo hogy elrontottam az elozo uzenetbe
a szamitasokat..

Ezt irtam:
igy az int 8 1193180/1280 szor tortenik, kb 932.2 szer (minden 1.073 ms)
helyesen:
igy az int 8 1193180/1024 szer tortenik, kb 1165.2 szer (minden 0.858 ms)

Bocsanat!

Attila Voros, Chief Engineer, ISDgames

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