Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!mcsun!hp4nl!utrcu1!mi.eltn.utwente.nl!klamer From: klamer@mi.eltn.utwente.nl (Klamer Schutte) Newsgroups: comp.os.minix Subject: Minix-ST keyboard / mouse / clock Message-ID: Date: 2 May 91 07:29:12 GMT Sender: news@utrcu1.UUCP Organization: University of Twente, BSC-El Lines: 45 The atari ST hardware supplies a keyboard proccessor for the user. This keyboard proccessor has the following output: 1) key presses 2) mouse events 3) clock output. 4) joystick output In the current minix setup, 2) and 3) are suppressed, 4) is discarded (in kernel/stkdb.h) and 1) is guided to the consoles. I now suggest the following changes: Let 1) go to the consoles as long as they are displayed. When a graphical screen is displayed, let it go together with 2) and 4) to another device (which can be a terminal in raw mode IMHO). (graphical screen such as gscreen, posted recently by Bert Laverman). This leaves us with 3). This one can be off use. It has a clock which keeps counting as long as the hardware is not switched off. This means that its value is kept between switches between minix and tos. (And thus between reboots of minix *). Reading the value involves giving the command (easy) and picking the BCD digits which give the answer from the keyboard processor (also easy). But what to to with this output? A good choice is IMHO to make another device (again ...) which reads this data. (And the same device can be used to set it ). Another choice would be to do the conversion from BCD to minix time in kernel space and incorporate the device in the clock. This would be hairy because reading the keyboard clock is not immediate; it involves one write and than a hardware interrupt to stkbd.c, which than reads the data, which should go to the clock, which then is ready. Yechh. Comments, anyone??? Klamer *) Where with normal minix it is not possible to reboot without switching the machine off, this is not to difficult. All you have to do is set memory position 0x426.l (from memory) to anything but 0x31415926 (from memory). This can be done by writing in /dev/mem. I will post a (small, trivial) program to do this soon. -- Klamer Schutte Faculty of electrical engineering -- University of Twente, The Netherlands klamer@mi.eltn.utwente.nl {backbone}!mcsun!mi.eltn.utwente.nl!klamer