home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 01e / more_ddj.zip / FOO.ASM < prev    next >
Assembly Source File  |  1986-09-27  |  1KB  |  52 lines

  1.    page    60,132
  2.    ;
  3.    ;       Static Name Aliases
  4.    ;
  5.        TITLE   foo
  6.  
  7.   _TEXT   SEGMENT  BYTE PUBLIC 'CODE'
  8.   _TEXT   ENDS
  9.   CONST   SEGMENT  WORD PUBLIC 'CONST'
  10.   CONST   ENDS
  11.   _BSS      SEGMENT  WORD PUBLIC 'BSS'
  12.   _BSS      ENDS
  13.   _DATA   SEGMENT  WORD PUBLIC 'DATA'
  14.   _DATA   ENDS
  15.   ;
  16.   DGROUP  GROUP   CONST,  _BSS,   _DATA
  17.       ASSUME  CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
  18.   ;
  19.   _DATA   SEGMENT
  20.   EXTRN   __chkstk:NEAR
  21.   _DATA   ENDS
  22.   ;
  23.   _TEXT      SEGMENT
  24.   ;
  25.   ; int   look();
  26.   ;
  27.   ;      Tests the bios to see if a key has been hit. If no key has been
  28.   ;      hit then 0 is returned, else an int is returned in which the
  29.   ;      high byte is the scan code and the low byte is the character
  30.   ;      code, if the low byte is 0 then a non-ascii key has been hit
  31.   ;
  32.       PUBLIC  _look
  33.   _look   PROC NEAR
  34.       push      bp
  35.       mov      bp,sp
  36.       mov      ax,2
  37.       call      __chkstk
  38.  
  39.       mov      ah,1          ; service 1, Report on character ready
  40.       int      016H          ; BIOS keyboard interrupt.
  41.       jnz      exit          ; jump if a key is available
  42.                   ;      (return the character)
  43.       mov      ax,0          ; else  (return 0);
  44.   exit:
  45.       mov      sp,bp
  46.       pop      bp
  47.       ret
  48.   _look   ENDP
  49.  
  50.   _TEXT   ENDS
  51.   END
  52.