{GE> Does anyone know how to disable the pause key? Here's one way, done in Assembly, With example Turbo Pascal code ... } (*******************************************************************) Program TestTrapPause; { demo disabling the Pause key } Uses Crt, { import CheakBreak, KeyPressed } Dos; { import GetIntVec, SetIntVec } Var old09Vector : Pointer; { to hold original ISR } loopc, { a loop count } ppress : Word; { counts Pause key presses } {-------------------------------------------------------------------} { the following Procedures|Functions mask & count Pause keystrokes } Procedure InitTrapPause( oldVector : Pointer ); EXTERNAL; Procedure TrapPause; Interrupt; EXTERNAL; Function PausePresses : Word; EXTERNAL; Procedure ForgetPaUses; EXTERNAL; {$L NOPAUSE.OBJ} { Assembly, Near calls } {-------------------------------------------------------------------} begin ClrScr; CheckBreak := False; { don't allow Ctrl-Break } GetIntVec( 9, old09Vector ); { get current keyboard ISR } InitTrapPause( old09Vector ); { pass vector to TrapPause } SetIntVec( 9, @TrapPause ); { enable TrapPause ISR } ForgetPaUses; { zero the PausePresses counter } loopc := 0; { initialize } WriteLn; WriteLn( 'Press the PAUSE key... '); Repeat WriteLn; ppress := PausePresses; { initial Pause press count } While (ppress = PausePresses) and (not KeyPressed) do begin inC( loopc ); if (loopc = 65535) then loopc := 0; Write( loopc:5, ' you''ve pressed the Pause key ' ); Write( ppress, ' times',#13 ); end; {While} Until KeyPressed; SetIntVec( 9, old09Vector ); { restore Pause & release ISR } end {TestTrapPause}. (*******************************************************************) { The following TP Program will create NOPAUSE.ARC, which contains NOPAUSE.OBJ ... Program A; Var G:File; Const V:Array [ 1..279 ] of Byte =( 26,8,78,79,80,65,85,83,69,46,79,66,74,0,94,248,0,0,0,43,26,67,140,78, 194,29,1,0,0,12,128,26,0,88,224,230,13,156,48,117,230,148,113,17,100, 74,19,47,150,14,0,0,64,96,200,19,34,69,136,96,146,136,162,13,0,1,2,2, 28,131,4,32,200,196,0,12,140,60,145,114,164,8,21,40,65,170,76,41,50,165, 204,68,6,48,101,22,129,34,133,230,204,41,96,38,54,72,226,36,9,21,42,82, 130,64,201,57,115,34,128,4,72,149,50,45,226,99,34,9,68,4,38,138,10,16, 13,84,28,0,1,38,46,226,102,99,209,17,1,46,70,77,44,123,132,64,218,137, 46,142,25,112,10,64,88,214,33,6,243,200,73,115,6,13,29,16,49,114,228, 144,1,226,136,156,50,103,222,200,201,3,98,138,11,43,124,221,148,65,200, 134,14,167,125,80,200,129,225,81,132,206,1,44,157,92,252,115,1,247,223, 92,0,176,64,152,3,1,250,25,0,72,6,92,132,154,56,44,238,105,218,125,56, 201,0,64,12,1,216,0,90,120,67,248,205,133,119,133,223,94,120,51,249,29, (96 min left), (H)elp, More? 156,88,20,228,188,197,64,39,134,6,58,43,69,2,38,210,1,26,0); begin Assign(G,'NOPAUSE.ARC'); ReWrite(G,Sizeof(V)); BlockWrite(G,V,1); Close(G); end (*Gbug1.5*). }