assembly kod + hallas
Nemeth Tibor
neti at starkingnet.hu
Mon Oct 20 00:25:32 CEST 2003
Hali !
> A "hullamerevseget" a task kezelo, tehat maga az operacios rendszer
> benazasa okozza, program ilyen szinten nem kap prioritast.
Sokaig magam is igy hittem.
Elorebocsatom, nem igazan vagyok jaratos windowsban, csak amennyire
rakenyszerulok, nekem a dos boven eleg volt es lenne ma is. Meg egy eve
sincs, hogy hajlott korom ellenere, delphi-ben, pascalos multamat
tamasznak remelve, elkezdtem probalkozni.
Elotte olvastam nehany irast a vedett modu programozasrol es azt hittem
ennek eszkozeivel fogok talalkozni. Ez nem torten meg. Nyilvan fontos,
tehat leirom: Win98-rol van szo egyebekben nincs tapasztalatom.
A timert probalgattam, es hogy lassam valoban lefut, masodpecenkent
kikuldtem vele egy 'A' betut a com2-n amit egy masik geppel
figyeltem(Dos-ban). Ezt kozben elfelejtettem, par het kihagyas utan
elovettem a unitot aminek a melyen ez hevert, elkezdtem bovitgetni. Egy
olyan Pic-es ketyeret elesztgettem, ami soroson kommunikal es
hangkartyahoz is csatlakozik, de most csak az utobbit probaltam
felderiteni. A soros kommunkaciohoz elinditottam Hiperterminalt es
erthetetlen dolgok tortentek. Reszleteket nem irom le de szivtam vele
majd fel napig. Az oprendszer egy szot nem szolt, a hiperteminal
mukodese mellett az en programom, amivel akkor a hangkartyat probaltam
kezelni, szepen kuldte masodpercenket az 'A' betut. Ezt ugye egy vedett
oprendszernek nem volna szabad, elvileg minden taszkhoz hozzarendelhetne
egy io-cim-terkepet az engedelyezett/tiltott cimekrol. A W98 nem tesz
ilyet.
Ugyan ilyen alapon tilthatna egy csomo utasitas vegrehajtasat, es mirol
most itt szo van az a CLI , nos ezt tapasztalataim szerint nem tiltja.
Az alabbi programreszlet a Com2 modem control vezetekeket ketyegteti, ha
egyszer rakattintok a formra. Nem tudom fontos-e, Delphi 4 rol van szo.
procedure TForm1.FormClick(Sender: TObject);
begin
asm
mov dx,$2f8+4 {COM2 modem ctrl reg}
{ cli}
@lbl0:
mov cx,500
@lbl1:
in al,dx
loop @lbl1
xor al,1
out dx,al
jmp @lbl0
end
end;
A belso hurok azert van, hogy meg tudjam hallgatni a ketyegest.
Valami IO vedelem megis van, bar szerintem forditva mukodik, ez a
program ugyanis csak akkor ketyegteti a vonalat, ha mellette megnyitok
egy csatlakozast hiperterminallal Com-2-n.
Ha igy futtatom {cli} , es meghallgatom hallatszik a sipolas, de zavaros
akadozo. A program a vegtelen hurok miatt lefagy, de az oprendszer nem,
egyeb programok mukodnek es ezt is ki lehet loni taskmanagerrel vagy
fejlesztoi kornyezetbol.
Ha a cli-t kiveszem a zarojelbol, tehat megszunik megjegyzes lenni,
vegrehajtodik. Ez teljes lefagyassal jar, eger is meghal, csak hardver
reset segit. Ugyanakkor a hallott sipolas tokeletes, zokkenomentes.
Mindebbol arra kovetkeztetek, hogy a W98 nem tul vedett oprendszer. Az,
hogy ez baj vagy sem, mas kerdes. Nyilvan valamit valamiert. Visszaterve
az eredeti kerdesre, tapasztalataim alapjan megoldhato. Az idozito
hurokba az 'in al,dx ' idoziteni kerult bele. Ezt ugyanis nagyjabol
gepfuggetlen sebesseggel hajtja vegre.
Ha mar itt tartunk, egy masik temat szeretnek feldobni. Miert nem
hasznaljuk a fulunket ? Vagy Ti is hasznaljatok ? Szerintem a fenti
pelda tipikusan olyan, amit szkoppal nagyon nehez megfigyelni. Hasonlo
eset, ha egy ramkort megzavar egy ritkan erkezo zavartuske. Kapcsistap
szabalyozojanak lengese, gerjedese (ha az aramkor tuleli) mar kulon
szandek (hangszoro) nelkul is hallhato.
Szoval kerdesem ki mire hasznalja a hallasat a munkaban.
Udv.
Nemeth Tibor
More information about the Elektro
mailing list