delorie.com/archives/browse.cgi | search |
Xref: | news2.mv.net alt.msdos.programmer:13727 comp.os.msdos.djgpp:6329 comp.os.msdos.programmer:26888 |
From: | jim AT curved-logic DOT com (James Shaw) |
Newsgroups: | alt.msdos.programmer,comp.os.msdos.programmer,comp.os.msdos.djgpp |
Subject: | Re: An key board handler ISR question. |
Date: | Tue, 23 Jul 1996 18:08:31 GMT |
Organization: | Zippo |
Lines: | 36 |
Message-ID: | <31f513dc.34649065@snews2.zippo.com> |
References: | <4t2krp$8jp AT lion DOT cs DOT latrobe DOT edu DOT au> |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
boylesgj AT lion DOT cs DOT latrobe DOT edu DOT au (Gregary J Boyles) wrote: >Could any one tell me if there is any reason why this key board handler may >fail. It is based on some info from Game Programmer's Encyclopedia but there >was not enough info for me to be absolutely sure that this will work. looks reasonable, see additions in code below. >void interrupt KeyBoardISR(...) In watcom (flat model protected mode) this is void __interrupt __far KeyboardISR() > // Read the key's scan code from the keyboard port. > ScanCode=inportb(KeyBoardPort); if (ScanCode & 0x80) { // key up message ScanCode &= 0x7f; } else { // key down message } > // Acknowledge the interrupt. > outportb(AckPort,AckValue); I don't usually do this 'til I'm just about to exit the interrupt so I don't get interrupted again. However, others may think differently on this one :) Jim PS. You are patching into interrupt 0x9 aren't you :)
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |