From: Ahto Truu <ahto@era.tartu.ee>
To: Multiple recipients of list <prog@kadri.ut.ee>


>  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 sna teine kasutusvimalus. 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)

