b ist zB i, w ist 4, a ist h
Macs verwenden offenbar dieses Schema für die Tastencodes:
https://stackoverflow.com/questions/3202629/where-can-i-find-a-list-of-mac-virtual-key-codes
Zeichen Hexadezimal Binär
b 0x0B 0000 1011
i 0x22 0010 0010
w 0x0D 0000 1101
4 0x15 0001 0101
a 0x00 0000 0000
h 0x04 0000 0100
Meine erste Idee war, dass aufgrund des Alters der Tastatur einige Leitungen beschädigt sein könnten und auf dem Wert 1 bleiben, und andere auf 0. Das würde voraussetzen, dass das Signal irgendwo parallel über 8 Leitungen läuft - ob das auf deine Tastatur zutrifft, weiß ich natürlich nicht.
Allerdings ergibt sich aus der Tabelle sowieso, dass das so nicht stimmen kann oder zumindest nicht die vollständige Erklärung ist, denn wenn z.B. die drittletzte binäre Ziffer immer auf 1 gesetzt würde (a wird zu h), könnte das "b" nicht zu einem "i" werden.
Zweite Idee: Die von dir genannten Zeichenpaare liegen entweder in derselben Zeile (a und h) oder nicht sehr weit voneinander entfernt (b und i, w und 4).
Ältere und günstige Tastaturen sind oft mit Folien realisiert, die jeweils mehrere dünne lange Leiterbahnen tragen. Die Folien liegen so aufeinander, dass die Leiterbahnen beider Folien zusammen eine Matrix bilden (die nicht unbedingt rechtwinklig sein muss). Die gedrückte Taste verbindet eine Zeilenleitung mit einer Spaltenleitung, so dass sich der Kreuzungspunkt und somit die gedrückte Taste ergibt.
Wenn jetzt durch hohe Luftfeuchtigkeit, hineingelaufene Getränke oder andere Ursachen diese Leiterbahnen zueinander überbrückt werden, können Tasten falsch erkannt werden.
Ich hatte mal ein ähnliches Problem bei einer Fernseher-Fernbedienung, die auch nach dem Folienprinzip aufgebaut war. Die habe ich aufgeschraubt und die Leiterbahnen vorsichtig gereinigt, danach funktionierte sie wieder.