Posted By: Tuttle (Abort, Retry, FEL) on 'CZmsdos'
Title: Re: TSR spustec programu
Date: Thu Nov 7 11:44:29 1996
Nazdar lidi!
Predem se chci omluvit za svuj omyl, kdyz jsem jako jeden z
prvnich odpovedel na post o TSR spousteci a tvrdil, ze by to bylo
jednoduche. Mac ma samozrejme pravdu, jednoduche by to nebylo. Jina vec
je program, ktery se tu popisuje prave ted, neboli podsunuti prikazovemu
interpreteru do promptu jmeno spousteneho programu. Toto je skutecne
proste, ale zase neni zarucene spusteni; take nevim kde by to slo pouzit.
Na tohle prece neni potreba resident, kdyz muze bezet prompt, proc by
nemohl bezet stale nejaky nonTSR, ktery by takto cekal na spusteni
podprocesu, bylo by to bezpecnejsi.
Prectete si posledni reakce na toto tema od Kesona a Zefa,
protoze je sem nechci cele quotovat. Mam totiz jine reseni. Takovemu TSR
(ted tedy nejde o aplikaci toho spusteni programu v urcitou dobu, jen o
sdeleni cesty jako neco takoveho udelat, o napad), ktery ma v urceny cas
podsunout do klavesnicoveho bufferu klavesu by stacilo se pripojit na
preruseni 8 a 4A.
Preruseni 8 je casovac (pozor, Zef se zmylil, osmicka se
standardne - pokud jste zrovna neodesli z nejake hry ;) - vyvolava
18.2-krat za sekundu, nikoli 55-krat, tedy pouzit jako citac dva registry
typu word, to uz je pekne dlouha perioda!
Preruseni 4A (mozna trosku jine, nepamatuji si to presne) je
Real-Time-Clock-Alarm. Je to preruseni, ktere je hardwarove vyvolano,
kdyz hodiny realneho casu dosahnou zadane hodnoty. Zde doporucuji si
prostudovat kapitolu o tomto INT a o CMOS pameti, nepriklad v sysmanovi.
Pomoci tohoto preruseni jsem udelal jednoduchy zertovny program, ktery v
zadany cas (po zadanem case) resetuje pocitac; pouzivali jsme to proti
otravnym ucitelum. Program pracoval na principu Alarmu, nemusel byt
residentni, nastavil Alarm na zadany cas, a preruseni 4A presmeroval na
F000:FFFF. Mozna je i varianta, ze ho presmeruje na stejnou adresu, na
kterou ukazuje INT 19 (Bootstrap), ale to nemam vyzkousene. Pokud o tento
program ma nekdo zajem, neni problem mu ho poslat, obsahuje nejaka
bezpecnostni opatreni. ;)
Preruseni 9 nas TSR nepotrebuje.
Preruseni 8 je pouzito proto, aby program mohl porad zjistovat,
zda jim naplnena klavesnicova fronta se jiz uvolnila. Je tak mozno
podsouvat do bufferu retezce, ktere jsou delsi nez tento buffer. Funguje
to bezvadne, to vas mohu ubezpecit. Muzete si to sami vyzkouset, kdyz se
podivate na http://cs.felk.cvut.cz/~xmacekv/sw. Je tam ke stazeni program
DOSClip, ktery to tak dela. Chyby, ktere obsahuje planuji odstranit, ale
nejsou v druhe casti (paste - klavesnicovy buffer).
Uff... ;)
Hodne stesti pri programovani pod MS-DOS, pro takovy system se programu
je jedna radost, kdyz si necha udelat cokoliv. ;))
Takze byte,
Tuttle
Vidis neznameho a nevis, ze je to
tvuj pritel, ktereho jsi jeste nepoznal.