From: Ahto Truu To: Multiple recipients of list > Kuidas teha TP 7.0-is programmi, mis loeks spetsiaalseid koode nagu > Alt+Tab, Ctrl+Esc, Shift+Alt+F9 ja sihukseid? Asmi ma kahjuks ei tunne. Shift-Control-Alt nuppude seisu ja veel m=F5nda asja hoiab BIOS m=E4lus kahes baidis: $0040:$0017: Bitt 7 6 5 4 3 2 1 0 | | | | | | | +--> 1, kui parem Shift on all | | | | | | +----> 1, kui vasak Shift on all | | | | | +------> 1, kui Control on all (=FCksk=F5ik kumb) | | | | +--------> 1, kui Alt on all (=FCksk=F5ik kumb) | | | +----------> 1, kui ScrollLock tuli p=F5leb | | +------------> 1, kui NumLock tuli p=F5leb | +--------------> 1, kui CapsLock tuli p=F5leb +----------------> 1, kui Insert mode on sees $0040:$0018: Bitt 7 6 5 4 3 2 1 0 | | | | | | | +--> 1, kui vasak Control on all | | | | | | +----> 1, kui vasak Alt on all | | | | | +------> 1, kui SysReq on all | | | | +--------> 1, kui Hold/Pause mode on sees | | | +----------> 1, kui ScrollLock on all | | +------------> 1, kui NumLock on all | +--------------> 1, kui CapsLock on all +----------------> 1, kui Insert on all Ja nende kasutamiseks ei ole mingit Mem ega Asm keemiat vaja. Vaja on ainult v=F5tmes=F5na absolute (vodkaga pole sellel pistmist =3D> v=F5in se= lle kasutamist ka noorematele inimestele soovitada :-). P=F5him=F5tteliselt on sellel s=F5nal kaks v=F5imalikku kasutusviisi. Esit= eks saab deklareerida, et kaks muutujat on m=E4lus samas kohas: var b : byte; c : char absolute b; N=FC=FCd on kaks muutujat m=E4lus samas kohas. Kui =FChe v=E4=E4rtust muut= a, muutb teise v=E4=E4rtus ka. (Selle baasil v=F5iks n=E4iteks iga=FCks ise funktsioonid Chr ja Ord kirjutada.) Praegu aga huvitab meid selle säna teine kasutusväimalus. Ja nimelt var keyb1 : byte absolute $0040:$0017; keyb2 : byte absolute $0040:$0018; s=E4testab, et muutujat keyb1 tuleb hoida aadressil $0040:$0017. Seega on klaviatuurilipud n=FC=FCd nende nimede kaudu kasutatavad. V=E4ike biti- kaupa AND ka abiks ja saabki k=F5ik teada, mis vaja. šks hoiatus veel: neid lippe peaks ldjuhul ainult lugema. -- Ahto Truu (ahto@era.tartu.ee)