Hollosi Information eXchange /HIX/
HIX CODER 1795
Copyright (C) HIX
2003-04-07
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: szamtek alapjai - billentyuzet + IRQ + prog.konyvt (mind)  195 sor     (cikkei)

+ - Re: szamtek alapjai - billentyuzet + IRQ + prog.konyvt (mind) VÁLASZ  Feladó: (cikkei)

> A billentyuzetet megprobalom osszefoglalni: Az 5 vezetek: fold, tap,
>  reset, data, clock. (Hol itt a megszakitas keres vezetek?)
Ugy tudom, a megszakitasvezerlo kezeli, ha adat jon.

> Az eleinte 84 gombos billentyuzet szoftvere fix volt, ezeken ez a 
> kod 1 bajt volt (ASCII ?), kesobb a bill. szoftvere
Nem, ez a scancode: a billentyu sorszama 1-84.

> teljesen kicserelheto lett szoftverbol, es igy beallithato lett, 
> hogy pl. lenyomva tartott billentyunel milyen ideig varjon mire 
> elkezdi ismetelni a bill kodjat, meg milyen gyakran ismetelje, 
> illetve hogy egyaltalan melyik gombhoz milyen (ASCII??) kodot
Nem cserelheto, csak programozhato (parameterezheto), de a scancode
nem. Az szabvanyos, akar egy byte, akar negy. Es ez a fajta
billentyuzet nem ismeri az ASCII kodokat: CSAK scankodot kuld.

> Tovabba a NumLock meg CapsLock allapota is bellithato.** Egyetlen 
> billentyu kodja mar aka'r 4 bajt is lehet, mert kitalaltak a 
> scancode-ot, ami viszont fix es egyertelmuen jellemzi,
Nem emiatt - ne keverd a dolgokat.

> Na itt me'g zavaros, hogy akkor most a fix és 84 gombos bill. 
> mife'le kodokat tett a pufferebe. A scankodot mindig, es ha van 
> ASCII megfeleloje, akkor azt is pluszba? Az 1 bajtos valtozatban
Ez a fajta billentyuzet MINDIG scankodot kuld es a fo BIOS fogja
hozzarendelni az ASCII kodokat, ha lehet.
Amirol idaig nem sokat irtam: leteznek szabvanyos terminalok (UNIX,
stb. rendszereken. Ez volt elobb, a PC ujabb talalmany). Ezek ugyanugy
mukodnek, mint a billentyuzet, de a soros portra kell oket kotni es
szabvanyos ASCII kodokat kuldenek. A kulonbseg kozottuk az, hogy a NEM
ASCII kodokra (pl. a kurzormozgatok) mit kuldenek: ezekre leteznek
terminalszabvanyok (vt100, Ansi, stb.) Ilyenkor altalaban egy Esc kod
erkezik, utana nehany kod, majd a funkcio kodja. Ha a soros porton
erkezik jel, a megszakitasvezerlo egy masik BIOS rutint hiv, amelyik
beolvassa a karaktert, majd nyugtazza a jelet. A bemeneteket at lehet
iranyitani: ha pl. standard bemenetnek a soros vonalat allitod be,
akkor a szabvanyos fuggvenyek innen kapjak a kodokat a billentyuzet
helyett.

>> Egyebkent mindenki ezt a tarolot olvassa, de a szabvanyos 
>> fuggvenyek csak a ASCII kodokat szoktak megkapni, pl. az "F" 
>> gombokat vagy a nyilakat nem.
> Mifele szabvanyos fuggvenyek??? Azok mik?
Barmi, ami az adott programozasi nyelvben szabvanyos: pl. a C-ben az
"olvass be egy karaktert" (getchar) fuggveny. Ami viszont PC-specifikus
"nezd meg a kovetkezo kodot" (bioskey) fuggveny, az a scankodot is
beolvassa, de ez CSAK A PC-n fut es ott is csak a billentyuzetet
olvassa, nem torodve pl. az atiranyitasokkal.

> ?Lehetseges, hogy a bill. a BIOS rutint inditja, az meg megszakitja 
> a futo progit? De mi is a BIOS rutin feladata azon tul, hogy azt a 
> gyurus tarolot meg a kezfogast kezeli?
Nem - a megszakitasvezerlo indit egy megszakitast, ami a megfelelo BIOS
rutinra mutat. Ennek csak ez a feladata, amit irtam, de boven van meg
BIOS rutin, ami mast csinal.

> Hogyhogy optikai lemez?  Gondolom nem CD.  MiniDisc? Szemmel lathato
>  szektorjelek???
Irhato es olvashato magneto-optikai lemez. Lezerrel olvassak es
magnessel irjak (megvaltozik a fenyvisszaveres), de irni egyszerre
csak azon az egyetlen ponton lehet, ahol lezerrel felmelegitik. 600MB
es akkora, mint a CD, de tokba van epitve. A meghajto nagy bohom joszag
es eleg regi technika, viszont ugyanugy kezelheto, mint egy HDD, nem
kell kulon "egetni".

> De hat mar senki nem hasznal 500MB alatti vinyot...
Ugy ertem, egyetlen eddigi winchester sem fog vele menni, hacsak nem
alkalmazol valami trukkot, pl. amit irtal:

> Meg aztan elfer ott ketto BIOS rutin is e celra, nem?
MOST nincs benne a gepben, es nem lenne konnyu elterjeszteni, hogy
minel tobb gepben benne legyen...

>> Ettol fuggetlenul a kodot el is teszem, igy a tobbi funkcio is 
>> megy a programban, csak ugy kellett megirnom, hogy scankodokat 
>> hasznaljon, mert ilyenkor senki sem forditja nekem.
> Hogyhogy elteszed? Hova? Melyik kodot is teszed el? Hogyhogy senki 
> "nem fordit"?? Nem ertem.
Ilyenkor senki nem fordit, tehat a scankodot kapom meg. Sajat valtozoba
teszem el es ugyanugy hasznalhatom, mintha ASCII kodot kaptam volna,
csak a programnak tudnia kell, hogy mi pl. a kurzormozgatok vagy az
Enter scankodja. Ezert van az, hogy ez a programom kulso
palyaszerkesztot hasznal, mert a scankodbol eleg bonyolult eloallitani
az ASCII-t (ami kellene a karakteres kepernyo szerkesztesehez) es en
nem veszodtem ezzel.

>> Ha egy program "ratelepszik" egy BIOS rutinra,
> Azaz a rutint hivo megszakitas vektorat atirja a sajatjara?
Igen.

>> akkor a sajat rutin[nak] el KELL vegeznie az eredeti rutin 
>> feladatat is (pl. kezelni a rendszerorat vagy nyugtazni a 
>> billentyuzetet, kulonben az ora nem megy,
> Az ora miert nem ketyeghet hardveresen, kvarccal, a szoftverektol 
> tok fuggetlenul?
Az a HW ora: az megy is, semmi baja nem lesz - de a PC-n a programok
NEM azt hasznaljak, hanem a SW orat, amit viszont a BIOS kezel. A
kettot csak indulaskor szinkronizalja.

>> a billentyuzet pedig - hiaba olvassak - egy ido utan sipolni fog, 
>> hogy betelt a puffer: ilyenkor nem a gepben, hanem a 
>> billentyuzetben levo).
> Ha kezfogasos a dolog, akkor a billnek tudnia kellene magatol, hogy
>  egy-egy kodot elvett a fo" gep. Hogyhogy kulon mondani kell neki?
Ez a kezfogas lenyege! Meg kell mondani neki, hogy elvettem a kodot es
keszen allok a kovetkezo fogadasara!

>> Figyelni kell arra is, hogy a rutin ne legyen tul hosszu, mert ha
>>  kozben erkezik tobb ujabb megszakitas, akkor ezekbol tipusonkent
>>  csak egy fog lefutni,
> Egyelore van a CPU+ram+fdd+hdd+videokartya+bill. Ezek kozul me'g mi
>  kerhet megszakitast a bill.en kivul? (Lent irod, hogy "lemezkezelo
>  megszakitas". Jelenti ez azt, hogy pl. FDD visszaszol, amikor vegre
>  megtalalta a kert adatot, hogy most szeretne' odaadni?) Es miert 
> csak egy fog lefutni tipusonkent?
A 8085-nel ugyan van tobbfele uzemmod, de lenyegeben mindig ugyanugy
megy: ha engedelyezve van es jon egy megszakitas, akkor lefut a rutin
es kozben TILTVA van a tovabbi megszakitasok fogadasa. a 8086-nal a
megszakitasvezerlo ilyenkor is meg tud jegyezni mindenfajta keresbol
EGYET. Tehat ha pl. a floppy kezelese 55ms-ig tartott, akkor kozben
erkezett egy idozites keres, ami akkor futhat le, amikor vege van a
floppy rutinnak. Ahogy lefutott, gyorsan jon a kovetkezo keres is, de
ilyenkor meg nem gond: kicsit "ugrott" az ora, de meg nem kesett. Ha
viszont a floppy miatt a gep egy tizedmasodpercre letiltotta a
megszakitasokat, akkor ezalatt ket idoziteskeres jott, amibol csak egy
fog lefutni, ezert a SW ora 55ms-ot kesik. Van olyan program, amivel
ossze lehet hasonlitani a SW es a HW orat. Amikor en neztem, 1/100 mp
volt a kulonbseg.

>>> BIOS belso rutin forditja a kodokat.
> Mirol mire?
Scan -> ASCII.

>>> Nem tudom milyen programmal nezted
> :-)))  Notepaddel.
A Windows-t egyelore hagyjuk... ott minden legalabb negyszer
bonyolultabb. A Notepad - mint a tobbi program is - szabvanyos
fuggvenyeket hasznal es csak a szabvanyos kodokat kapja meg.

> Ez is "megmutatta": uj sor kezdodott. De az Outlookban is mukodik
...mindket gombra ugyanaz az "uj sor". Hol a kulonbseg???

>> Pl. ha valaki "elfogta" a lemezkezelo megszakitast (virusok 
>> kedvenc modszere), akkor minden lemezkezelesi muveletnel megkapja
>>  a vezerlest.
> Es hogy lehet ilyen "elfogni". A 8085nel me'g ugy volt, hogy volt 
> atprogramozni nehany parancsszoval vagy a memorianak azt a 
> tablazatos reszet kell atirni. Ezt irjak at a virusok? Jol ertem?
^^^^^^^^^^^^^ standard BIOS megszakitas van erre a celra (is).
Igen, nagyjabol ugyanezt a rendszert hasznalja a 8086 is. A kulonbseg
annyi, hogy itt mar sokmindenre hasznalnak SW megszakitasokat is: a
bemeno adatok regiszterekben, a program kiad egy "int." utasitast,
amire lefut az adott megszakitas es regiszterekben adja vissza az
eredmenyt. Nagyon hasznos: szabvanyos es nem kell tudni a BIOS rutin cimet.

> Nem "pofatlansag" raulni a megszakitasokra? Ha mas progi is dolgozni
>  akar, akkor miert nem ker inkabb idot az OStol? (Hogy hogyan, ne 
> kerdd, csak hallottam, hogy van ilyen.) De nehogy mar mas progitol 
> lopja.
Miert, szerinted az OS mit csinal? Gepido csak egy van, ezt lehet
kulonbozo modszerekkel osztani. Kitol kersz "plusz" idot??? Kesobbi
tema, de a 32 bites OS is a megszakitasokat hasznalja: ha letelt az
adott programra kiszabott idoszelet, akkor egy megszakitas fut le, az
OS megkapja a vezerlest, elvegzi a sajat dolgat majd atkapcsol a
kovetkezo programra es atadja neki a vezerlest. Az pedig fut, amig le
nem telik a sajat ideje vagy rendkivuli esemeny nem tortenik. A
programok DOS, Windows vagy UNIX alatt sem "erzik", hogy idonkent
megszakitjak oket (bar problemak lehetnek belole, ha eppen idozitest
szamoltak vagy hasznaltak). Ez az idoosztasos vezerles. A filozofiaja
az, hogy mindenki ugy erzi, hogy csak o fut - a valosag az, hogy
mindenki ugy erzi, csak o"ra' nem jut ido :-(

> Varjunk. Adott egy HelloVilag! Qbasic progi. Megirom a kek fejleszto
>  kornyezeben, leforditom, lesz belole egy .exe fajl. Forditaskor a 
> fordito a PRINThez tartozo gepikod-reszletet beilleszti, ugy, hogy a
>  kodban a megfelelo parametereket aszerint modositja, hogy en mit 
> akartam kiiratni. Ez a gepi kod valoban a CPU altal hasznalt 
> utasitaskeszletbol all? vagy ahhoz mar regen semmi koze es me'g
A futtathato file-oknal (com, exe) igen, a tobbinel nem. Az exe
file-ban tovabbi info van, ami az inditashoz kell, ahogy mar irtam.

Az is erdekes tema, hogy a processzor mit kezd a gepi kodu
utasitasokkal. Altalaban belul tovabb forditja, igy lehet, hogy egy
gepi utasitasra 10-100 elemi utasitast, ciklust, stb.-t futtat le.
Ha van leirasod, nezd meg, hogy a 8085 hogyan hajtja vegre az
utasitasokat, mar az is tanulsagos. Ha nincs, irhatok rola egy-ket
dolgot emlekezetbol.

> szazszor atforditodik addig? (A cimek persze ossze-vissza 
> transzponalodnak, de az utasitaskeszlet marad-e?) Tegyuk fel, hogy 
> az elso. Ekkor az egesz ugy a fejleszto kornyezet/fordito dolga. O 
> az, amelyiknek van kulon programkonyvtara minden utasitasra? Akkor 
> ennek a BIOShoz semmi koze, ugye?
Igy igaz, bar BIOS rutinokat is meghivhat.
Folyt. kov...

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