Source to trap keys
#1
Traps and ignores Print-Screen and Control-Break:

Code:
;Traps and ignores Print-Screen and Control-Break. v1.1a PD 1999-2014.

;Compiled with 'Tasm /t Keytrap;'

            .model  medium, basic           ;Stay compatible with basic.
     extrn   SETUEVENT: far
            .code
public      SETINT

SETINT      proc    uses ds
            mov     ax, 351BH               ;Get old Control-Break interrupt
            int     21h                     ;vector and save it.
            mov     word ptr cs:OldVector1,bx
            mov     word ptr cs:OldVector1+2,es
            push    cs                      ;Set the new
            pop     ds                      ;interrupt vector
            lea     dx, EventHandler        ;to the address
            mov     ax, 251BH               ;of our service
            int     21H                     ;routine.

            mov     ax, 3505H               ;Get old Print-Screen interrupt
            int     21h                     ;vector and save it.
            mov     word ptr cs:OldVector2,bx
            mov     word ptr cs:OldVector2+2,es
            push    cs                      ;Set the new
            pop     ds                      ;interrupt vector
            lea     dx, EventHandler        ;to the address
            mov     ax, 2505H               ;of our service
            int     21H                     ;routine.
            ret 
SETINT     endp

public  EVENTHANDLER

EVENTHANDLER    proc
            iret                            ;Eat keystroke.

OldVector1   dd      0                      ;Keep data in code segment.
OldVector2   dd      0

EVENTHANDLER endp

public      RESTINT

RESTINT     proc    uses ds                 ;Restore the old
            lds     dx, cs:OldVector1       ;interrupt vectors
            mov     ax, 251BH               ;so things will
            int     21h                     ;keep working when
            lds     dx, cs:OldVector2       ;this basic program is
            mov     ax, 2505H               ;finished.
            int     21h
            ret
RESTINT     endp
            end
dndbbs project:

Links to my MUD: (strictly 16-bit); AKA XP:

Dndbbs executables
http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip

Dndbbs source
http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip

Dndbbs upgrade
http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip

DNDDOOR - https://bit.ly/EriksDNDDoor DUNGEON - https://bit.ly/EriksDungeon
Interpreter - https://bit.ly/EriksSICK Hex Editor - https://bit.ly/EriksHexEditor Utilities - https://bit.ly/EriksUtils
QB45 files: - https://bit.ly/EriksQB45 QB64shell - https://bit.ly/QB64shell Some old QB64 versions: - https://bit.ly/OldQB64
Reply