home *** CD-ROM | disk | FTP | other *** search
/ Power CD-ROM!! 7 / POWERCD7.ISO / prgmming / clipper / numlock.asm < prev    next >
Assembly Source File  |  1993-10-14  |  2KB  |  87 lines

  1. ;  File......: NUMLOCK.ASM
  2. ;  Author....: Andy M Leighton
  3. ;  BBS.......: The Dark Knight Returns
  4. ;  Net/Node..: 050/069
  5. ;  User Name.: Andy Leighton
  6. ;  Date......: $Date$
  7. ;  Revision..: $Rev$
  8. ;
  9. ;  This is an original work by Andy Leighton and is placed in the public
  10. ;  domain.
  11. ;
  12. ;  Modification history:
  13. ;  ---------------------
  14. ;
  15. ;  $Log$
  16. ;
  17. ;
  18. ;
  19. ;   $DOC$
  20. ;   $FUNCNAME$
  21. ;       GT_ISNUMLOCK()
  22. ;   $CATEGORY$
  23. ;       Keyboard
  24. ;   $ONELINER$
  25. ;       Checks Num Lock
  26. ;   $SYNTAX$
  27. ;       GT_isNumLock() --> lRet
  28. ;   $ARGUMENTS$
  29. ;       None
  30. ;   $RETURNS$
  31. ;       lRet    -       TRUE if numlock is on, otherwise FALSE
  32. ;   $DESCRIPTION$
  33. ;       Checks status of Num Lock
  34. ;   $EXAMPLES$
  35. ;       ? "Num Lock Is Turned " + if(GT_isNumLock(), "On", "Off")
  36. ;   $END$
  37. ;
  38.  
  39. ; This has been written using TASM
  40. ; If you are using MASM you might have to change things
  41. ; around a little
  42. ; look for comments telling you what to do
  43. ;
  44.  
  45. ;MASM   remove next line
  46.  
  47.                 IDEAL
  48.  
  49.  
  50. Public          GT_ISNUMLO
  51.  
  52. Extrn           __RetL:Far
  53.  
  54. ;MASM change next line to
  55. ;               GtLibrary       SEGMENT WORD  "CODE"
  56. Segment         GtLibrary       Word    "CODE"
  57.                 Assume          CS:GtLibrary
  58.  
  59. ;MASM change next line to
  60. ;               GT_ISNUMLO      PROC FAR
  61. Proc            GT_ISNUMLO      Far
  62.  
  63.                 PUSH    ES                         ; save for later
  64. ; set up ES:[BX] to point to the address 0x00000417
  65.                 MOV     AX,40H
  66.                 MOV     ES,AX
  67.                 MOV     BX,17H
  68.  
  69.                 XOR     AH,AH                      ; Clear high byte of AX
  70.                 MOV     AL,BYTE PTR ES:[BX]        ; Get keyboard flags
  71.                 AND     AL,20H                     ; isolate bit 6
  72.                 PUSH    AX
  73.                 CALL    __RETL                     ; set up CLIPPER return
  74.                 ADD     SP, 2                      ; reset stack ptr
  75.                 POP     ES                         ; restore ES
  76.                 RET
  77.  
  78. ;MASM change next line to
  79. ;               GT_ISNUMLO      ENDP
  80. EndP            GT_ISNUMLO
  81.  
  82. ;MASM change next line to
  83. ;               GtLibrary       ENDS
  84. EndS            GtLibrary
  85.  
  86.                 End
  87.