{Ein Listing fr Pascal-Programmierer APUC - Advanced PC User Club Dennis Klinkott Bethelstrae 1B 59555 Lippstadt Dieses Programm lt die Lichter an der Tastatur blinken. Wenn man diesen Effekt in eigenen Programmen verwendet, kann man damit spektakulre Ergebnisse erzielen. Diese Datei steht in dem Verzeichnis LISTING (Text-Datei) } program LEDP; uses CRT, {die CRT-Unit einbinden} DOS; {die DOS-Unit einbinden} const SCRL = 16; { Scroll-Lock-Bit } NUML = 32; { Num-Lock-Bit } CAPL = 64; { Caps-Lock-Bit } procedure SetFlag(Flag : byte); var BiosTSByte : byte absolute $0040:$0017; { BIOS-Tastatur-Status-Byte } Regs : Registers; { Prozessorregister fr Interrupt-Aufruf } Begin BiosTSByte := BiosTSByte or Flag; { das entsprechende Bit einblenden } Regs.AH := 1; { Funktionsnr.: Zeichen vorhanden? } intr($16, Regs); { BIOS-Tastatur-Interrupt aufrufem } end; procedure ClrFlag(Flag : byte); var BiosTSByte : byte absolute $0040:$0017; { BIOS-Tastatur-Status-Byte } Regs : Registers; { Prozessorregister fr Interrupt-Aufruf } begin BiosTSByte := BiosTSByte and ( not Flag ); { Bit ausblenden } Regs.AH := 1; { Funktionsnr.: Zeichen vorhanden? } intr($16, Regs); { BIOS-Tastatur-Interrupt aufrufem } end; var zaehler : integer; begin WriteLn ('Lichtlein, scheine fr mich !!!'); WriteLn ('Tastatur, scheine noch heller !!!'); for zaehler:=1 to 10 do { die Schleife 10 mal durchlaufen } begin SetFlag( CAPL); { CAPS anschalten } Delay( 200 ); { 200 Millisekunden warten } ClrFlag( CAPL ); { CAPS wieder ausschalten } SetFlag( NUML); { NUM anschalten } Delay( 200 ); { 200 Millisekunden warten } ClrFlag( NUML ); { NUM wieder ausschalten } SetFlag( SCRL); { SCROLL-LOCK anschalten } Delay( 200 ); { 200 Millisekunden warten } ClrFlag( SCRL ); { SCROLL-LOCK wieder ausschalten } end; for zaehler:=1 to 5 do { die Schleife 10 mal durchlaufen } begin SetFlag(CAPL or SCRL or NUML); { alle drei Flags an } Delay( 500 ); { 500 Milli-Sekunden warten } ClrFlag(CAPL or SCRL or NUML); { alle Flags wieder aus } Delay( 500 ); { 500 Milli-Sekunden warten } end; end. #MTIHYPER: TITLE:Source Put:DOS.PUT