;Copyright 2000 - Mark McDonald All rights reserved
; DECLARE: FUNCTION iscapl() AS INTEGER
; DESC:    Return the state of the Caps Lock bit.
; EXAMP:   IF iscapl THEN GOTO CapsIsOn
; ISCAPL()
;     Is Caps key Locked.
;     Returns 1 if Caps Lock bit is set.
;     Returns 0 if not.
;     EXAMPLE:  T = ISCAPL   0

MCODE Segment Byte
        Assume  CS: MCODE

        Public  iscapl

iscapl Proc Far
        push    ES                      ;

        xor     AX,AX                   ; clear AX
        mov     ES,AX                   ; set ES to BIOS data area
        test    Byte Ptr ES: [417h],64  ; is the Caps Lock bit on?
        jz      Exit                    ; no, exit
        inc     AX                      ; yes, set AX to 1
Exit:
        pop     ES                      ;
        retf                            ;
iscapl EndP
MCODE EndS
        End