@Jim:

Update: I found the code in your Star Commander source. It seems to be an 
altered version of the TurboVision shipped with Borland Pascal 7. Did this 
alterations come from Borland directly, or from some other source?

I consider the implemented test to be flawed. I think this will fail on an 
original IBM-PC.

Bernd


> Am 30.05.2025 um 12:56 schrieb Bernd Böckmann via Freedos-devel 
> <freedos-devel@lists.sourceforge.net>:
> 
> Hi Joe,
> 
>> In Turbo Pascal's Turbo Vision, extended keyboards are detected once, upon 
>> program startup, like this:
>> 
>>   mov ax, 11ffh
>>   int 16h
>>   xor bl, bl
>>   cmp ax, 11ffh
>>   je  @@1
>>   mov bl, 10h
>> @@1:mov ReadKeyFunc, bl
>> 
>> and then keyboard functions are called like this:
>> 
>>   mov ah, ReadKeyFunc
>>   (inc ah)
>>   int 16h
> 
> from which specific Turbo Pascal version is that code snippet? I did not find 
> this in the TV source shipped with Borland Pascal 7. Instead, I found this:
> 
> procedure GetKeyEvent(var Event: TEvent); assembler;
> asm
> MOV AH,1
> INT 16H
> MOV AX,0
> MOV BX,AX
> JE @@1
> MOV AH,0
> INT 16H
> XCHG AX,BX
> MOV AX,evKeyDown
> @@1: XOR CX,CX
> MOV DX,CX
> CALL StoreEvent
> end;
> 
> So no use of INT16.11 all. I may have overlooked it?
> 
> However, I did a few tests using DEBUG. The sequence
> 
> mov ax,11ffh
> int 16h
> 
> seems to return some random value in AX (probably some previously entered 
> key?) under the specific BIOS I tested. However, I consider this value to be 
> undefined if the zero flag (no key in buffer) is set. So not sure if the 
> comparison
> 
> cmp ax,11ffh
> 
> is a reliable test. It would only be reliable if a) every BIOS supporting 
> INT16.11 does NOT return 11ffh, and every BIOS not supporting INT16.11 DOES 
> return 11ffh. I am not sure that this is the case. At least I nowhere found 
> this documented. Also, the source of the IBM-PC BIOSv3 [1] does speak against 
> it (AH=0 on return).
> 
>> Wouldn't the BIOS detect the extended keyboard when you call INT 16H, 
>> AH=11H? (Probably not but I though I'd ask. :-) ) Bye,
> 
> No, some only seem to detect when the first enhanced key is pressed.
> 
> [1]: 
> https://github.com/gawlas/IBM-PC-BIOS/blob/e6cae33370fa7cd0568d72b785f682971edcc70c/IBM%20PC/PCBIOSV3.ASM#L1839
> 
> Bernd
> 
> 
> 
> 
> _______________________________________________
> Freedos-devel mailing list
> Freedos-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freedos-devel



_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to