[Back to KEYBOARD SWAG index]  [Back to Main SWAG index]  [Original]


{

  This program example can replace the ReadKey Function and can
  be used in the same way.  However it does require an AT extended
  keyboard and might be unpredictable if used with a non extended
  keyboard.  This code also requires that you define a global variable
  called ScanCode of type char.  This is important in determining
  whether the key is a standard or extended type.

  Borland Technical Support releases example code to help demonstrate
  common programming usage.  Since this is not a commercial product,
  Borland does not provide technical support for these demonstration
  programs or offer any warranty.

}

program ReadExtendedKey;

var
ScanCode:char;   { Make this a global variable }

function ReadExtKey:byte;
var C:byte;
begin
asm
	MOV	AL,ScanCode
	MOV	ScanCode,0
	OR	AL,AL
	JNE	@@1
	MOV	AH,$10
	INT	16H
	OR	AL,AL
	JNE	@@1
	MOV	ScanCode,AH
	OR	AH,AH
	JNE	@@1
	MOV	AL,'C'-64
@@1:    MOV     C, AL

end;
  ReadExtKey := C;
end;

var
  ch1:byte;
begin
  write('Please enter a key -> ');
  ch1:= ReadExtKey;
  if ch1=0 then  { Received an extended key }
  begin
    writeln(ch1);
    write('Extended Key -> ');
    ch1:= ReadExtKey; { Get the extended key }
  end;
  writeln(ch1);
end.

[Back to KEYBOARD SWAG index]  [Back to Main SWAG index]  [Original]