No announcement yet.


  • Filter
  • Time
  • Show
Clear All
new posts

  • Pause

    How do I disable the pause function.
    I don't wan't the pause key to have any effect.


  • #2
    The following as an example in assembler. Can be used as a small .com program or needs to be converted to PB's inline assembler.
    (If you want, I can email you the .COM file)
    ;NOPAUSE.ASM    Kills PAUSE key on an AT keyboard (TSR program)
    ;               Use A86 assembler or so to make .COM file
    ;               Key pause exists of keycodes: E1 14 77 E1 F0 14 F0 77
    ;               So we need to kill 8 scancodes
    code            segment byte public 'code'
                    assume  cs:code,ds:nothing,es:nothing
                    org 100h
    start:          jmp     install_tsr
                    db      ' v1.00, 09 nov 2000 '
    oldint9_vec     dd  ?                                   ;original int 9 vector
    int9_isr:       push    ax                              ;save ax
                    push    cx                              ;and cx
                    mov     cx, 08h                         ;8 keys to kill
                    in      al,60h                          ;get key (non-destruct)
                    cmp     al,0e1h                         ;scan code ext func?
                    je      kill_keys                       ;yep, kill keys
    chain_int9:     pop     cx
                    pop     ax
                    jmp     dword ptr cs:[oldint9_vec]      ;chain to org. int 9
    kill_keys:      in      al,61h                          ;eat-up keys
                    mov     ah,al                           ;get kb ctrl /save it
                    or      al,80h                          ;set enable kb bit
                    out     61h,al                          ;send it out
                    mov     al,ah                           ;get original control values
                    out     61h,al                          ;send them out
                    dec     cx                              ;all done?
                    jnz     kill_keys                       ;no.
                    mov     al,20h                          ;hw eoi signal
                    out     20h,al                          ;send eoi to 8259
                    pop     cx
                    pop     ax
    install_tsr:    push    ds                              ;save org. 9h intvector and
                    push    cs                              ;set-up the new handler
                    pop     ds                              ;ds = cs for get vector
                    mov     ax,3509h
                    int     21h
                    mov     word ptr cs:[oldint9_vec],bx
                    mov     word ptr cs:[oldint9_vec][2],es
                    mov     ax,2509h
                    mov     dx, offset int9_isr
                    int     21h
                    mov     dx,offset installed_msg         ;display the instal-
                    mov     ah,9                            ;led message
                    int     21h
                    pop     ds                              ;prepare exit and tsr
                    mov     dx,offset install_tsr           ;throw away install code
                    add     dx,15                           ;round to next para
                    mov     cl,4
                    shr     dx,cl                           ;this form for 8088,86's
                    mov     ax,3100h                        ;term, stay resident
                    int     21h
    installed_msg   db      13,10
                    db      ' v1.00 '
                    db      'is installed.',13,10,'$'
    code            ends
                    end     start
    mailto[email protected][email protected]</A>

    "Simplicity is a prerequisite for reliability"