Zdar, programátoři.
Potřeboval bych vědět, na jaké adrese je uložená tabulka, podle které BIOS přiřazuje scankódům z klávesnice jejich ASCII hodnoty. Mám totiž problém s jedním programem, že asi někde zapisuje někam, kam nemá, a po jeho skončení mívám přemapované znaky na pravém konci dolní řady kláves (obvykle někde od 'n' do '/') - když tyhle klávesy zmáčknu se shiftem, naskakují mi na obrazovce různé paznaky včetně těch speciálních pro pohyb kurzoru. Proto by mě zajímalo, kde je přiřazení znaků klávesám uložené, abych mohl zjistit, která část programu na tuhle adresu omylem píše a opravit to.
Díky předem.
Fórum › Pascal
Přiřazení ASCII hodnot klávesám
Moje stránka.
Taková "tabulka" musí být z podstaty v ROMBIOSu a tudíž je nepřepsatelná.
Taky jsem neviděl nikdy nerezidentní přehazovač kláves.
Tady je tab. na fonty(ale běžně je taky v ROMBIOSu mimo CZ fontu..):
0:4A8 pointer->ofs.8=textovy mod,ofs.0xC graf.mod
z textovyho na ofs.6 pointer na danej font
z grafickyho na ofs.3 pointer na font
ale jestli po zmacknuti blbne primo kurzor tak to ten font nebude:)
Na takovyhle problemy je dobrej jedine Protected prekladac+hlidani poli,atd...
pozn. nejspíš je zásah až v oblasti DOSu kde se na přerušení klávesnice nabalují další rutiny
Díky za tip, prohledám oblast DOSu.
Jestli to nepomůže, zkusím ještě disassemblovat standardní obsluhu přerušení klávesnice.
Moje stránka.
Myslím, že taková tabulka je neveřejná a její umístění a zpracování vůbec se liší BIOS od BIOSu. Ve většině případů to navíc nešéfuje BIOS, ale národní TSR ovladač klávesnice. Logika je jasná - mapování scan kódy -> ASCII je záležitost národního prostředí. To je značně různorodá skupina, ale dokonce ani standard, t.j. KEYB.COM žádnou takovou tabulku nezpřístupňuje. V případě tvého problémového programu je nejspíš potíž v tom, že přesměrovává obsluhu INT 9 a po ukončení ji nevrací na původní vektor (anebo to dělá nějak nekorektně)
Ten program právě s klávesnicí vůbec nesouvisí, to je ten problém. Jde o jednotku na přehrávání zvuku na Sound Blasteru (upravený SMIX). Hraje se přes DMA, přerušení se volá po 512 vzorcích, natáhne kus zvuku ze XMS, smíchá hrající kanály a pošle je na výstup. Teoreticky všechno v pohodě, ale po nějaké době hraní dělá kraviny...
Moje stránka.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Funkce - přiřazení hodnot do pole (C) — založil Blead
Nacitani hodnot z txt do pole,vyhledavani a vypis hodnot — založil JiriVavru
Přiřazení hodnoty — založil Midnight
Prirazeni komponenty — založil dyžon
Moderátoři diskuze