I found an old IBM Model M keyboard in the dumpster of my university.
The keyboard works fine, every key still has its legendary click...
This Keyboard has a speaker, and I'd like to access it.
I wrote this tiny x86 Assembler program some time ago, to set the LEDs
on it:
section .text
global _start
_start:
mov al, 0EDh ; command to set LEDs to keyboard
out 60h, al ; write command
mov al, 111b ; set flags
out 60h, al ; write flags
mov al,1 ; system call number (sys_exit)
int 0x80 ; call kernel
I don't know much about I/O-Registers, obviously 60h is for the keyboard.
Now I'd like to know two things:
1. What is the command code (sequence) to access the speaker of an old
IBM Model M (1993 made)
2. How can I read keyboard data (what register and how should I access it)
Regards,
--polemon
--
-EOF-
> Hi!
>
> I found an old IBM Model M keyboard in the dumpster of my university.
>
> The keyboard works fine, every key still has its legendary click...
>
> This Keyboard has a speaker, and I'd like to access it.
>
> I wrote this tiny x86 Assembler program some time ago, to set the LEDs
> on it:
>
> section .text
> global _start
>
> _start:
Before you write to the keyboard-controller, it is better to check the
status if the input buffer is empty, otherwise it is possible that the
command won´t progress.
A1: in al, 64h
test al, 2
jnz A1
> mov al, 0EDh ; command to set LEDs to keyboard
> out 60h, al ; write command
> mov al, 111b ; set flags
> out 60h, al ; write flags
>
> mov al,1 ; system call number (sys_exit)
> int 0x80 ; call kernel
>
>
> I don't know much about I/O-Registers, obviously 60h is for the keyboard.
> Now I'd like to know two things:
>
> 1. What is the command code (sequence) to access the speaker of an old
> IBM Model M (1993 made)
I am not familar with that old modell.
> 2. How can I read keyboard data (what register and how should I access it)
Here you can also check the status, in this case if the output buffer is
filled with a byte and than check if it recieved from a PS2-mouse.
A2: in al, 64h
test al, 1
jz A2
test al, 20h
jnz A2
in al, 60h
Additional take a look into Ralf Browns Interrupt List:
RBIL->inter61d.zip->Ports.a->PORT 0060-006F
http://www.pobox.com/~ralf
http://www.pobox.com/~ralf/files.html
ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/
Dirk
AFAIK the speaker is not accessible via the keyboard controller,
unfortunately. That model of keyboard was designed for the RS/6000
and even then I don't remember any RS/6000 using it.
> I found an old IBM Model M keyboard in the dumpster of my university.
> The keyboard works fine, every key still has its legendary click...
> This Keyboard has a speaker, and I'd like to access it.
IIRC there were an unused pin (one of five) on old keyboards.
Are you sure for this speaker is wired to the connector at all ?
(if, then you may need a solder iron to rewire the speaker-output
in your PC. Can't remember which pin ... one of the two grounded)
Or is it just in there for producing the 'legendary click' sound ?
__
wolfgang
The Speaker is not wired to the connector.
It's wired to the controler in the keyboard.
>From what I've learned by browsing through webpages is, that there is a special
command that needs to be sent to the keyboard, in order to activate the speaker.
The 'legendary click' is being made by the keyboard mechanism itself,
the buckling spring mechanism.
The Speaker is for producing another 'click' for every keystroke. I've never heard
this clicking sound, all I know it's there to make one.
I'm still searching for the command code that needs to be send to the keyboard,
in order to activate this clicking.
I've send mails to museums, asking if they have personel, that knows how to enable
this feature (sometimes retirees that are familiar with old computers work for
computer museums), maybe they know what to do.
--
-EOF-
...
> I'm still searching for the command code that needs to be send to the keyboard,
> in order to activate this clicking.
> I've send mails to museums, asking if they have personel, that knows how to enable
> this feature (sometimes retirees that are familiar with old computers work for
> computer museums), maybe they know what to do.
You might try a post to news:alt.folklore.computers - some geezers hang
out there.
Best,
Frank
>> IIRC there were an unused pin ....
> The Speaker is not wired to the connector.
> It's wired to the controller in the keyboard.
Sorry I can't remember in detail and I lost my old IBM manuals.
Is it connection to the LED-driver ?
(five unused bits are there ... try at your own risk! )
All I found about speaker mentioned in the keyboard section
is the known story for the PC-internal speaker.
from RBIL-ports: bit0,1 [port 0061h]
____
Bitfields for KB controller port B [output]:
(Table P0392)
7 pulse to 1 for IRQ1 reset (PC,XT)
6-4 reserved
3 I/O channel parity check disable
2 RAM parity check disable
1 speaker data enable
0 timer 2 gate to speaker enable
Bitfields for KB controller port B [input]:
(Table P0393)
7 RAM parity error occurred
6 I/O channel parity error occurred
5 mirrors timer 2 output condition
4 toggles with each refresh request
3 NMI I/O channel check status
2 NMI parity check status
1 speaker data status
0 timer 2 clock gate to speaker status
Note: also supported by OPTi 82C392
____
Have you tried any Beep ?
__
wolfgang
You're right!
Those keyboards _were_ designed for RS/6000 but as far as I know,
the speaker was used to emit the normal system sounds.
>From what I read, if and only if the correct keaboard was
attached to the system, it was actually operable.
Since this is a German 1394542, I'm desperately looking for a
"Strg/Ausf" key cap (as right Ctrl key).
The fact that this is a german keyboard, makes it even rare-er.
--
-EOF-