[comp.binaries.ibm.pc.d] Sys Req - key.

jeff@nmtvax.nmt.edu (- Jeff -) (12/05/89)

This is probably a useless question, but there is a mysterious key on my 
XT-keyboard called the 'Sys Req' key. I've seen this key on many other 
IBM and compatible keyboards and I am just curious if anyone knows what it 
is for and how to access it? I can't seem to find anything in my DOS 3.3 
manual about it. Anyone know what this key is for? Just curious...

								- Jeff -
								jeff@nmtvax.nmt.edu

wang@m.cs.uiuc.edu (Eric Wang) (12/06/89)

In article <187@nmtvax.nmt.edu> jeff@nmtvax.nmt.edu (- Jeff -) writes:
>This is probably a useless question, but there is a mysterious key on my 
>XT-keyboard called the 'Sys Req' key. I've seen this key on many other 
>IBM and compatible keyboards and I am just curious if anyone knows what it 
>is for and how to access it? I can't seem to find anything in my DOS 3.3 
>manual about it. Anyone know what this key is for? Just curious...

This is only what little I know of SysReq.  It does not claim to be a
comprehensive, technical treatise.

The SysReq key is indeed a special key.  Of all keys on the keyboard, it is
the only one which is NOT processed through the INT 09 Keyboard interrupt.
Instead, it has a special interrupt all to itself (INT 15, I believe).  It
is a carryover from the days of pre-PC IBM terminals, when it was used to
send noninterruptable signals to e.g. an IBM mainframe, for use in 
establishing a connection and/or starting/ending/otherwise modifying a
login session.  Though it is little used today by most engineering, business,
or recreational programs (can't say about PC-mainframe connectivity programs,
as I've never seen one), it remains extremely useful for PC-host connection
programs.  Its primary strength is the fact that it is not affected by any
TSRs or the like that are chained to the keyboard interrupt, so that no
matter how badly your runaway program has messed up your keyboard layout, you
can always rely on SysReq to come through with its meaning unchanged.

One elegant and exceedingly useful use of SysReq was in an ANSI terminal
emulation program written by Doug Schafer for use on the rather specialized
Ethernet equipment that we had installed at Caltech.  This wonderful comm
program, which was called Ansi PopTerm,  was done as a TSR that would 
communicate directly with the Ethernet card in the machine when active, and
hide in the background when not active.  It used SysReq as its hotkey to 
toggle between the host and the PC.  The nice thing about this program was 
that you could run any application on the PC while you logged into a remote
host and ran another application(s) there, then toggle between the two at
the touch of a key.  My friends and I used it to play Empire, and it beat
logging in via Kermit or Cterm hands down, mostly because we could escape
back to the PC at the touch of a single key and edit a map file, then pop
back to the host, and do this so quickly that it made it feasible to
interactively map a scout's entire move.  To the best of my knowledge,
this program is alive and well and still widely used at Caltech.  

Let me state right now that I don't know how to write a program to use 
SysReq.

Eric Wang
wang@cs.uiuc.edu

"Birds of prey know they're cool."

swh@hpcupt1.HP.COM (Steve Harrold) (12/06/89)

Re: SysReq key

Isn't this key also used in Microsoft's CodeView to interrupt
runaway programs?

cs9a-ax@dorothy.Berkeley.EDU (Mike Morrison) (12/06/89)

In article <1989Dec5.190738.17084@ux1.cso.uiuc.edu> wang@cs.uiuc.edu (Eric Wang) writes:
-In article <187@nmtvax.nmt.edu> jeff@nmtvax.nmt.edu (- Jeff -) writes:
--This is probably a useless question, but there is a mysterious key on my 
--XT-keyboard called the 'Sys Req' key. I've seen this key on many other 
--IBM and compatible keyboards and I am just curious if anyone knows what it 
--is for and how to access it? I can't seem to find anything in my DOS 3.3 
--manual about it. Anyone know what this key is for? Just curious...
-
-This is only what little I know of SysReq.  It does not claim to be a
-comprehensive, technical treatise.
-
-The SysReq key is indeed a special key.  Of all keys on the keyboard, it is
-the only one which is NOT processed through the INT 09 Keyboard interrupt.
-Instead, it has a special interrupt all to itself (INT 15, I believe).  It

This is at least partially false.  On my machine, an XT clone, the sys-req
key DOES use int 09.  (int 15h is for cassette io).  It generates ascii 00, 
scan code 37h.  When num-lock is on it generates ascii 77h, scan code 54h.
The rest of the posting sounds ok to me, though -- I don't have any idea what
the key is supposed to be used for.

Mike Morrison
cs9a-ax@dorothy.berkeley.edu
morrison@ocf.berkeley.edu

trier@wrangell..scl.cwru.edu (Stephen Trier) (12/06/89)

Peter Norton's _Programmer's_Guide_to_the_IBM_PC_and_PS/2_ contains a pretty
complete description of the Sys Rq key.  The key is apparently meant to be
used for operating systems, perhaps as a hot key to switch between virtual
terminals or to suspend a process and return you to a shell.  When it is
pressed, the BIOS does an Int 15H with AH=85H and AL=00H.  When the key is
released, it does the same interupt, but with AL set to 01H instead.  That
way, your program can use it as a shift key, kind of like Alt.

Apparently, very few (if any) programs or operating systems use the key.

                         <=> Stephen Trier    sct@po.CWRU.Edu
                                              trier@skybridge.scl.CWRU.Edu

c60c-4ab@e260-4c.berkeley.edu (Scott Drellishak) (12/06/89)

In article <20358@pasteur.Berkeley.EDU> cs9a-ax@dorothy.Berkeley.EDU.UUCP (Mike Morrison) writes:
>In article <1989Dec5.190738.17084@ux1.cso.uiuc.edu> wang@cs.uiuc.edu (Eric Wang) writes:
>-In article <187@nmtvax.nmt.edu> jeff@nmtvax.nmt.edu (- Jeff -) writes:
>--This is probably a useless question, but there is a mysterious key on my 
>--XT-keyboard called the 'Sys Req' key. I've seen this key on many other 
>--IBM and compatible keyboards and I am just curious if anyone knows what it 
>--is for and how to access it? I can't seem to find anything in my DOS 3.3 
>--manual about it. Anyone know what this key is for? Just curious...
>-
>-This is only what little I know of SysReq.  It does not claim to be a
>-comprehensive, technical treatise.
>-
>-The SysReq key is indeed a special key.  Of all keys on the keyboard, it is
>-the only one which is NOT processed through the INT 09 Keyboard interrupt.
>-Instead, it has a special interrupt all to itself (INT 15, I believe).  It
>
>This is at least partially false.  On my machine, an XT clone, the sys-req
>key DOES use int 09.  (int 15h is for cassette io).  It generates ascii 00, 
>scan code 37h.  When num-lock is on it generates ascii 77h, scan code 54h.
>The rest of the posting sounds ok to me, though -- I don't have any idea what
>the key is supposed to be used for.
>
>Mike Morrison
>cs9a-ax@dorothy.berkeley.edu
>morrison@ocf.berkeley.edu

On my XT clone, the Sys Req key doesn't generate any ascii or scan codes,
and, according to Peter Norton's Programmer's Guide to the IBM PC (not
actually called that, but close enough), it generates INT 15H with AH equal
to 85H.  It says nothing about the use of this key, however.


( Scott Drellishak
(
(   "You pays your money and you takes your frame of reference."
(                                           - Joe Haldeman, _The Forever War_

bill@hpcvlx.cv.hp.com (Bill Frolik) (12/07/89)

| This is probably a useless question, but there is a mysterious key on my 
| XT-keyboard called the 'Sys Req' key. I've seen this key on many other 

How you use the SYS REQ key is completely up to you.  I'm not sure
exactly WHY the key is there, or why IBM chose to call it SYS REQ.
I think it might have been derived from the old IBM minicomputer
consoles and/or their SNA terminals -- the microcomputer market was
just getting started, and I don't think anyone really knew what kinds
of special keys ought to be on the keyboards...

Anyway, SYS REQ has a scancode (54h), but doesn't stick anything the
keyqueue, so you generally can't detect it with Int 16h or your run-of-
the-mill CON driver.  The advertised method for detecting SYS REQ
being pressed/released is to intercept the SYS REQ hook in Int 15h
and examine AX.  The BIOS calls Int 15h with AH=85h whenever SYS REQ
changes state.  If AL=0, the key has been depressed.  If AL=1, it has
been released.

________________________________________

Bill Frolik	Hewlett-Packard Co.
hp-pcd!bill	Corvallis, Oregon


	

djo7613@blake.acs.washington.edu (Dick O'Connor) (12/07/89)

In article <20358@pasteur.Berkeley.EDU> cs9a-ax@dorothy.Berkeley.EDU.UUCP (Mike Morrison) writes:
>This is at least partially false.  On my machine, an XT clone, the sys-req
>key DOES use int 09.  (int 15h is for cassette io).  It generates ascii 00, 
>scan code 37h.  When num-lock is on it generates ascii 77h, scan code 54h.
>The rest of the posting sounds ok to me, though -- I don't have any idea what
>the key is supposed to be used for.
>

My copy of the Much-Feared MSDOS Interrupt List does indeed list cassette
functions for Interrupt 15, AH=00, 01, 02, and 03.  It also lists Interrupt
15, AH=85 as an OS Hook (System Request Key Pressed) for AT, XT2, XT286,
Convertible and PS type machines.

Isn't INT 09 usually a keyboard interrupt?

"Moby" Dick O'Connor                            ** DISCLAIMER: It would
Washington Department of Fisheries              ** surprise me if the
Olympia, Washington  98504                      ** rest of the Department
Internet Mail: djo7613@blake.u.washington.edu   ** agreed with any of this!

jonathan@cs.keele.ac.uk (Jonathan Knight) (12/07/89)

From article <1989Dec6.071852.25430@agate.berkeley.edu>, by c60c-4ab@e260-4c.berkeley.edu (Scott Drellishak):
> 
> On my XT clone, the Sys Req key doesn't generate any ascii or scan codes,
> and, according to Peter Norton's Programmer's Guide to the IBM PC (not
> actually called that, but close enough), it generates INT 15H with AH equal
> to 85H.  It says nothing about the use of this key, however.


I use it as a ^C key when my program isn't writing to the screen or
reading the keyboard.  Hold down CTRL and hit SYS REQ.  Looks like
a ^C, acts like a ^C but isn't a ^C.  Because its done by an interrupt
it should not require DOS to read it and process it, it clears
the outstanding chars from the input buffer too.  Play with it
and see what use it is, it's certainly more useful that ^C.

-- 
  ______    JANET :jonathan@uk.ac.keele.cs     Jonathan Knight,
    /       BITNET:jonathan%cs.kl.ac.uk@ukacrl Department of Computer Science
   / _   __ other :jonathan@cs.keele.ac.uk     University of Keele, Keele,
(_/ (_) / / UUCP  :...!ukc!kl-cs!jonathan      Staffordshire.  ST5 5BG.  U.K.

markc@wpi.wpi.edu (Mark B. Cohen) (12/08/89)

In article <1989Dec6.054648.17589@usenet.ins.cwru.edu> 
  trier@skybridge.scl.cwru.edu (Stephen Trier) writes:
]Peter Norton's _Programmer's_Guide_to_the_IBM_PC_and_PS/2_ contains a pretty
]complete description of the Sys Rq key.  The key is apparently meant to be
]used for operating systems, perhaps as a hot key to switch between virtual
]terminals or to suspend a process and return you to a shell.  When it is
]pressed, the BIOS does an Int 15H with AH=85H and AL=00H.  When the key is
]released, it does the same interupt, but with AL set to 01H instead.  That
]way, your program can use it as a shift key, kind of like Alt.
]
]Apparently, very few (if any) programs or operating systems use the key.

For Microport's System V/AT with DosMerge, the SysReq key _is_ used
to switch between virtual terminals under UNIX, or between DOS and
UNIX screens when using a Merge (DOS) application.  

I know some other PC compatible UNIX's have this feature.  I don't know 
if they also use the SysReq key.  Microport is now defunct.
-- 
Internet:  markc@wpi.wpi.edu                         "This is drugs...
UUCP:      uunet!wpi.wpi.edu!markc                    this is your brain...
BITnet:    markc@wpi.bitnet                           this is your breakfast."

schaut@cat9.CS.WISC.EDU (Richard Schaut) (12/08/89)

In article <187@nmtvax.nmt.edu> jeff@nmtvax.nmt.edu (- Jeff -) writes:
| This is probably a useless question, but there is a mysterious key on my 
| XT-keyboard called the 'Sys Req' key. I've seen this key on many other 
| IBM and compatible keyboards and I am just curious if anyone knows what it 
| is for and how to access it? I can't seem to find anything in my DOS 3.3 
| manual about it. Anyone know what this key is for? Just curious...

I'm not positive, but I think IBM added it to their PC keyboards in order
to establish some compatibility with the 3270 series terminals.  That's
also one of the reasons for the addition the f11 and f12 function keys.
If you've ever used a terminal emulation package for systems that predate
the 101 key board, then you know that PF11 and PF12 were always generated
in strange ways.

If you're not doing any terminal emulation to an IBM mainframe, you'll
never need the Sys Req key.


Rick

"Any questions?  Any answers?  Anyone care for a mint?" -- Rita Rudner

brown@vidiot.UUCP (Vidiot) (12/09/89)

In article <1989Dec6.054648.17589@usenet.ins.cwru.edu> trier@skybridge.scl.cwru.edu (Stephen Trier) writes:
<Peter Norton's _Programmer's_Guide_to_the_IBM_PC_and_PS/2_ contains a pretty
<complete description of the Sys Rq key.  The key is apparently meant to be
<used for operating systems, perhaps as a hot key to switch between virtual
<terminals or to suspend a process and return you to a shell.  When it is
<pressed, the BIOS does an Int 15H with AH=85H and AL=00H.  When the key is
<released, it does the same interupt, but with AL set to 01H instead.  That
<way, your program can use it as a shift key, kind of like Alt.
<
<Apparently, very few (if any) programs or operating systems use the key.

IGC's VM/386 uses it.  You do a Alt-SysRq to bring up the menu manager or
to switch to a different partition.  If you don't have the 101 key layout,
then the SysRq key is used by itself.
-- 
                harvard\     att!nicmad\
Vidiot            ucbvax!uwvax..........!astroatc!vidiot!brown
                rutgers/  decvax!nicmad/
        ARPA/INTERNET: <@spool.cs.wisc.edu,@astroatc:brown@vidiot>

leonard@bucket.UUCP (Leonard Erickson) (12/10/89)

cs9a-ax@dorothy.Berkeley.EDU (Mike Morrison) writes:

>This is at least partially false.  On my machine, an XT clone, the sys-req
>key DOES use int 09.  (int 15h is for cassette io).  It generates ascii 00, 
>scan code 37h.  When num-lock is on it generates ascii 77h, scan code 54h.
>The rest of the posting sounds ok to me, though -- I don't have any idea what
>the key is supposed to be used for.

The SysReq key first appeared on the AT, thus it's operation on the PC, XT,
and clones on them is non-defined. The scan codes don't matter. The BIOS
processes the scan codes, and that is where an AT BIOS would use INT 15h.
(remember, the AT didn't have a cassette port). 

A similar situation situation exists with respect to using an extended
keyboard on one of these machines. The keyboard may have the extended
layout, but the scan-codes it sends are those that the XT understands.

BTW, 00h 37h is *not* the scan code for SysReq. It's the keycode. That's
what the BIOS translates the scancode to. Except for a couple of keys on
the extended keyboard, the scan code for a key is always the same. 
The code for SysReq is 54h. But it takes an incredibly low-level access
to the keyboard to ever see scancodes. (hint: the shift keys send scan
codes, so if hitting shift doesn't result in a value, you aren't getting
the scancodes.
-- 
Leonard Erickson		...!tektronix!reed!percival!bucket!leonard
CIS: [70465,203]
"I'm all in favor of keeping dangerous weapons out of the hands of fools.
Let's start with typewriters." -- Solomon Short

gpitcher@edpmgt.UUCP (Glenn Pitcher) (12/12/89)

In article <187@nmtvax.nmt.edu>, jeff@nmtvax.nmt.edu (- Jeff -) writes:
> This is probably a useless question, but there is a mysterious key on my 
> XT-keyboard called the 'Sys Req' key. I've seen this key on many other 
> IBM and compatible keyboards and I am just curious if anyone knows what it 
> is for and how to access it? I can't seem to find anything in my DOS 3.3 
> manual about it. Anyone know what this key is for? Just curious...
> 

If I remember correctly, the sys-req is a key that is used on the big IBM's
(303x, 308x).  Now, you asking, "well, why then is this key on my PC 
keyboard?"  Well, glad you asked.  Very early on in the PC's life, there 
were a couple of specialized products that were produced.  These were called
the 3270 PC and PC/370(?). 
  The 3270 PC was intended to give people access to both their mainframe
and the PC.  I belive you could have up to four mainframe sessions, one PC
session and two "electronic notepads" for whatever you wanted.  Believe it
or not, this thing actually had windows!  That, if I remember correctly,
was pretty rare back in 83-84. 
   The PC/370 was a little more complex.  It was designed not only for
connecting up to the local monster (mainframe) but it could also execute 
ost commands locally via an extra processor.

Well, hope that answers your questions.  If I messed up, I'm quite sure I'll
be flamed! :-)
-- 
Glenn Pitcher                              UUCP: {crash,ucsd}!edpmgt!gpitcher
Programmer/Analyst &                       ARPA: Too many $$$
Unix Guru in training                    BITNET: A net for runaway programs
EDP Management, Inc.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

dick@slvblc.UUCP (Dick Flanagan) (12/17/89)

In article <1806@bucket.UUCP> leonard@bucket.UUCP (Leonard Erickson) writes:
>
>The code for SysReq is 54h. But it takes an incredibly low-level access
>to the keyboard to ever see scancodes. (hint: the shift keys send scan
>codes, so if hitting shift doesn't result in a value, you aren't getting
>the scancodes.

Scan codes are quite low level.  Most keyboards will give you different
scan codes for the left and right shift keys, and each key will give you
two different codes:  one when the key is pressed (the 'make') and another
one when the key is released (the 'break').

Dick

bill@hpcvlx.cv.hp.com (Bill Frolik) (12/19/89)

>>This is at least partially false.  On my machine, an XT clone, the sys-req
>>key DOES use int 09.  (int 15h is for cassette io).  It generates ascii 00, 
>>...
>The SysReq key first appeared on the AT, thus it's operation on the PC, XT,
>and clones on them is non-defined. The scan codes don't matter. The BIOS
>processes the scan codes, and that is where an AT BIOS would use INT 15h.
>(remember, the AT didn't have a cassette port). 
>...

Int 9h is the keyboard HARDWARE interrupt vector -- ALL keys go
through it in true PC-compatible systems.  On any transition (up or
down), the BIOS Int 9h handler retrieves the key's scancode from
the keyboard controller, notes whether it was an up or down
transition, and performs an appropriate action.  Most of the time
that means converting the scancode into a keycode if necessary and 
stuffing the results into a queue, where it can be later read using 
Int 16h.  Int 9h treats some keys special: instead of getting
stuffed in the keyqueue, SYS REQ causes the Int 9h handler to turn
around and perform an Int 15h, allowing whoever is fielding Int 15h
requests to handle the transition.  Modifier keys such as Ctrl, Shift,
Alt, and CapsLock set/clear flags in the BIOS RAM "shift state" byte, 
so that subsequent calls to the Int 9h handler will properly convert 
scancode to keycode.  This "shift state" byte can also be read via Int 16h.
Ctrl-Alt-Del gets trapped in the Int 9h handler, causing a "warm boot"
flag (1234h) to be stuffed into the word at 40:72, generally followed 
by a far jump to FFFF:0, causing a reboot.

If you want to see ALL keyboard activity, you write your own Int 9h
handler.  If you simply want to WATCH all keyboard activity without 
changing the way things are currently handled, intercept Int 9h, 
examine the keyboard registers without doing anything, and then pass 
the interrupt on to the real Int 9h handler.

________________________________________

Bill Frolik	Hewlett-Packard Co.
hp-pcd!bill	Corvallis, OR

jeffj@masscomp.ccur.com (Jeff Jonas) (12/19/89)

In article <216@edpmgt.UUCP>, gpitcher@edpmgt.UUCP (Glenn Pitcher) writes:
> In article <187@nmtvax.nmt.edu>, jeff@nmtvax.nmt.edu (- Jeff -) writes:
> > This is probably a useless question, but there is a mysterious key on my 
> > XT-keyboard called the 'Sys Req' key. I've seen this key on many other ...

> If I remember correctly, the sys-req is a key that is used on the big IBM's
> (303x, 308x).  Now, you asking, "well, why then is this key on my PC 
> keyboard?"  Well, glad you asked.  Very early on in the PC's life, there 
> were a couple of specialized products that were produced.  These were called
> the 3270 PC and PC/370(?). 

I remember in high school, we had a big RJE terminal
(keyboard, printer and card reader).
In the IBM tradition of "speak when you are spoken to",
the keyboard was disabled until the controller was ready to listen.
The 'sys req' key requested keyboard input,
and the keyboard was then unlocked for input
(yes, all the other keys were disabled until the keyboard was selected).

Perhaps there were batch systems intended for the PC  :-)

So far, all responses confirm that 'sys req' is an out of band signal,
so it was intended to have an important function.
I guess an underutilized function is better than an overutilized
function, where applications would fight over control of the key interrupt.


J
 e     J
  f     o
   f     n
    r     a
     e     s
      y