All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input)
@ 2020-09-12  1:43 Michael Slade
  2020-09-12 23:48 ` [Bug 1895363] " Michael Slade
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Michael Slade @ 2020-09-12  1:43 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the keyboard.
Cursor keys are registered twice, so each press of a cursor key causes
the cursor to move twice. Also the other keys occasionally are missed or
duplicated.

>From an internet search, the problem appears to be this.  These programs
read the PS2 input register multiple times per incoming byte, on the
assumption that the byte will remain there for at least a few hundred
microseconds, before the next byte (if any) appears there.  qemu treats
a read of the register by the guest as an acknowledgement of the
incoming byte and puts the next byte into the register immediately, thus
breaking the programs that expect each successive byte to stay in place
for a while.

The obvious solution is to use a timer to advance through the queued
bytes.

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1895363

Title:
  borland IDEs double up cursor key presses (need timing on PS2 port
  input)

Status in QEMU:
  New

Bug description:
  Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
  C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the
  keyboard.  Cursor keys are registered twice, so each press of a cursor
  key causes the cursor to move twice. Also the other keys occasionally
  are missed or duplicated.

  From an internet search, the problem appears to be this.  These
  programs read the PS2 input register multiple times per incoming byte,
  on the assumption that the byte will remain there for at least a few
  hundred microseconds, before the next byte (if any) appears there.
  qemu treats a read of the register by the guest as an acknowledgement
  of the incoming byte and puts the next byte into the register
  immediately, thus breaking the programs that expect each successive
  byte to stay in place for a while.

  The obvious solution is to use a timer to advance through the queued
  bytes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1895363/+subscriptions


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug 1895363] Re: borland IDEs double up cursor key presses (need timing on PS2 port input)
  2020-09-12  1:43 [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input) Michael Slade
@ 2020-09-12 23:48 ` Michael Slade
  2020-09-13  0:08 ` Michael Slade
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michael Slade @ 2020-09-12 23:48 UTC (permalink / raw)
  To: qemu-devel

This virtualbox bug talks about the same thing, and also mentions qemu:

https://www.virtualbox.org/ticket/58

One of the people in the conversation created a patch for qemu which
wasn't accepted:

http://qemu.11.n7.nabble.com/PATCH-Fix-for-DOS-keyboard-problems-
td114076.html


** Bug watch added: Virtualbox Trac #58
   http://www.virtualbox.org/ticket/58

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1895363

Title:
  borland IDEs double up cursor key presses (need timing on PS2 port
  input)

Status in QEMU:
  New

Bug description:
  Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
  C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the
  keyboard.  Cursor keys are registered twice, so each press of a cursor
  key causes the cursor to move twice. Also the other keys occasionally
  are missed or duplicated.

  From an internet search, the problem appears to be this.  These
  programs read the PS2 input register multiple times per incoming byte,
  on the assumption that the byte will remain there for at least a few
  hundred microseconds, before the next byte (if any) appears there.
  qemu treats a read of the register by the guest as an acknowledgement
  of the incoming byte and puts the next byte into the register
  immediately, thus breaking the programs that expect each successive
  byte to stay in place for a while.

  The obvious solution is to use a timer to advance through the queued
  bytes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1895363/+subscriptions


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug 1895363] Re: borland IDEs double up cursor key presses (need timing on PS2 port input)
  2020-09-12  1:43 [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input) Michael Slade
  2020-09-12 23:48 ` [Bug 1895363] " Michael Slade
@ 2020-09-13  0:08 ` Michael Slade
  2021-05-06  6:21 ` Philippe Mathieu-Daudé
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michael Slade @ 2020-09-13  0:08 UTC (permalink / raw)
  To: qemu-devel

Just found the complete conversation regarding the abovementioned patch:

https://lists.nongnu.org/archive/html/qemu-devel/2009-08/msg01182.html

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1895363

Title:
  borland IDEs double up cursor key presses (need timing on PS2 port
  input)

Status in QEMU:
  New

Bug description:
  Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
  C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the
  keyboard.  Cursor keys are registered twice, so each press of a cursor
  key causes the cursor to move twice. Also the other keys occasionally
  are missed or duplicated.

  From an internet search, the problem appears to be this.  These
  programs read the PS2 input register multiple times per incoming byte,
  on the assumption that the byte will remain there for at least a few
  hundred microseconds, before the next byte (if any) appears there.
  qemu treats a read of the register by the guest as an acknowledgement
  of the incoming byte and puts the next byte into the register
  immediately, thus breaking the programs that expect each successive
  byte to stay in place for a while.

  The obvious solution is to use a timer to advance through the queued
  bytes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1895363/+subscriptions


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug 1895363] Re: borland IDEs double up cursor key presses (need timing on PS2 port input)
  2020-09-12  1:43 [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input) Michael Slade
  2020-09-12 23:48 ` [Bug 1895363] " Michael Slade
  2020-09-13  0:08 ` Michael Slade
@ 2021-05-06  6:21 ` Philippe Mathieu-Daudé
  2021-05-09 13:56 ` Thomas Huth
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-05-06  6:21 UTC (permalink / raw)
  To: qemu-devel

Possible fix:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg804823.html

** Changed in: qemu
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1895363

Title:
  borland IDEs double up cursor key presses (need timing on PS2 port
  input)

Status in QEMU:
  Confirmed

Bug description:
  Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
  C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the
  keyboard.  Cursor keys are registered twice, so each press of a cursor
  key causes the cursor to move twice. Also the other keys occasionally
  are missed or duplicated.

  From an internet search, the problem appears to be this.  These
  programs read the PS2 input register multiple times per incoming byte,
  on the assumption that the byte will remain there for at least a few
  hundred microseconds, before the next byte (if any) appears there.
  qemu treats a read of the register by the guest as an acknowledgement
  of the incoming byte and puts the next byte into the register
  immediately, thus breaking the programs that expect each successive
  byte to stay in place for a while.

  The obvious solution is to use a timer to advance through the queued
  bytes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1895363/+subscriptions


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug 1895363] Re: borland IDEs double up cursor key presses (need timing on PS2 port input)
  2020-09-12  1:43 [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input) Michael Slade
                   ` (2 preceding siblings ...)
  2021-05-06  6:21 ` Philippe Mathieu-Daudé
@ 2021-05-09 13:56 ` Thomas Huth
  2021-05-27  5:01 ` Thomas Huth
  2021-08-25  7:15 ` Thomas Huth
  5 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2021-05-09 13:56 UTC (permalink / raw)
  To: qemu-devel

** Changed in: qemu
       Status: Confirmed => In Progress

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1895363

Title:
  borland IDEs double up cursor key presses (need timing on PS2 port
  input)

Status in QEMU:
  In Progress

Bug description:
  Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
  C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the
  keyboard.  Cursor keys are registered twice, so each press of a cursor
  key causes the cursor to move twice. Also the other keys occasionally
  are missed or duplicated.

  From an internet search, the problem appears to be this.  These
  programs read the PS2 input register multiple times per incoming byte,
  on the assumption that the byte will remain there for at least a few
  hundred microseconds, before the next byte (if any) appears there.
  qemu treats a read of the register by the guest as an acknowledgement
  of the incoming byte and puts the next byte into the register
  immediately, thus breaking the programs that expect each successive
  byte to stay in place for a while.

  The obvious solution is to use a timer to advance through the queued
  bytes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1895363/+subscriptions


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug 1895363] Re: borland IDEs double up cursor key presses (need timing on PS2 port input)
  2020-09-12  1:43 [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input) Michael Slade
                   ` (3 preceding siblings ...)
  2021-05-09 13:56 ` Thomas Huth
@ 2021-05-27  5:01 ` Thomas Huth
  2021-08-25  7:15 ` Thomas Huth
  5 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2021-05-27  5:01 UTC (permalink / raw)
  To: qemu-devel

The patch mentioned by Philippe has now been merged to the QEMU master
branch (commit d1e45668d2128b064). Michael, could you maybe check the
current git version to see whether this problem has been fixed now?

** Changed in: qemu
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1895363

Title:
  borland IDEs double up cursor key presses (need timing on PS2 port
  input)

Status in QEMU:
  Fix Committed

Bug description:
  Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
  C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the
  keyboard.  Cursor keys are registered twice, so each press of a cursor
  key causes the cursor to move twice. Also the other keys occasionally
  are missed or duplicated.

  From an internet search, the problem appears to be this.  These
  programs read the PS2 input register multiple times per incoming byte,
  on the assumption that the byte will remain there for at least a few
  hundred microseconds, before the next byte (if any) appears there.
  qemu treats a read of the register by the guest as an acknowledgement
  of the incoming byte and puts the next byte into the register
  immediately, thus breaking the programs that expect each successive
  byte to stay in place for a while.

  The obvious solution is to use a timer to advance through the queued
  bytes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1895363/+subscriptions


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug 1895363] Re: borland IDEs double up cursor key presses (need timing on PS2 port input)
  2020-09-12  1:43 [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input) Michael Slade
                   ` (4 preceding siblings ...)
  2021-05-27  5:01 ` Thomas Huth
@ 2021-08-25  7:15 ` Thomas Huth
  5 siblings, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2021-08-25  7:15 UTC (permalink / raw)
  To: qemu-devel

** Changed in: qemu
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1895363

Title:
  borland IDEs double up cursor key presses (need timing on PS2 port
  input)

Status in QEMU:
  Fix Released

Bug description:
  Most DOS-era IDEs from Borland (I have tried Borland C++ 2.0, Borland
  C++ 3.1 and Turbo Pascal 7.1) exhibit strange responses to the
  keyboard.  Cursor keys are registered twice, so each press of a cursor
  key causes the cursor to move twice. Also the other keys occasionally
  are missed or duplicated.

  From an internet search, the problem appears to be this.  These
  programs read the PS2 input register multiple times per incoming byte,
  on the assumption that the byte will remain there for at least a few
  hundred microseconds, before the next byte (if any) appears there.
  qemu treats a read of the register by the guest as an acknowledgement
  of the incoming byte and puts the next byte into the register
  immediately, thus breaking the programs that expect each successive
  byte to stay in place for a while.

  The obvious solution is to use a timer to advance through the queued
  bytes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1895363/+subscriptions



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-08-25  7:28 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-12  1:43 [Bug 1895363] [NEW] borland IDEs double up cursor key presses (need timing on PS2 port input) Michael Slade
2020-09-12 23:48 ` [Bug 1895363] " Michael Slade
2020-09-13  0:08 ` Michael Slade
2021-05-06  6:21 ` Philippe Mathieu-Daudé
2021-05-09 13:56 ` Thomas Huth
2021-05-27  5:01 ` Thomas Huth
2021-08-25  7:15 ` Thomas Huth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.