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
|
|