home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / dos_ency / 18 / testcom1.asm < prev    next >
Encoding:
Assembly Source File  |  1988-08-11  |  2.4 KB  |  55 lines

  1.         TITLE TESTCOMM -- TEST COMMSCOP ROUTINE
  2. ; ***********************************************************************
  3. ; *                                                                     *
  4. ; *  TESTCOMM                                                           *
  5. ; *     THIS ROUTINE PROVIDES DATA FOR THE COMMSCOP ROUTINE.  IT READS  *
  6. ; *     CHARACTERS FROM THE KEYBOARD AND WRITES THEM TO COM1 USING      *
  7. ; *     INT 14H.  DATA IS ALSO READ FROM INT 14H AND DISPLAYED ON THE   *
  8. ; *     SCREEN.  THE ROUTINE RETURNS TO MS-DOS WHEN Ctrl-C IS PRESSED   *
  9. ; *     ON THE KEYBOARD.                                                *
  10. ; *                                                                     *
  11. ; ***********************************************************************
  12.  
  13. SSEG    SEGMENT PARA STACK 'STACK'
  14.         DW      128 DUP(?)
  15. SSEG    ENDS
  16.  
  17. CSEG    SEGMENT
  18.         ASSUME  CS:CSEG,SS:SSEG
  19. BEGIN   PROC    FAR
  20.         PUSH    DS                      ;SET UP FOR RET TO MS-DOS
  21.         XOR     AX,AX                   ; .
  22.         PUSH    AX                      ; .
  23.  
  24. MAINLOOP:
  25.         MOV     AH,6                    ;USE MS-DOS CALL TO CHECK FOR
  26.         MOV     DL,0FFH                 ; KEYBOARD ACTIVITY
  27.         INT     21                      ; IF NO CHARACTER, JUMP TO
  28.         JZ      TESTCOMM                ; COMM ACTIVITY TEST
  29.  
  30.         CMP     AL,03                   ;WAS CHARACTER A Ctrl-C?
  31.         JNE     SENDCOMM                ; NO, SEND IT TO SERIAL PORT
  32.         RET                             ; YES, RETURN TO MS-DOS
  33.  
  34. SENDCOMM:
  35.         MOV     AH,01                   ;USE INT 14H WRITE FUNCTION TO
  36.         MOV     DX,0                    ; SEND DATA TO SERIAL PORT
  37.         INT     14H                     ; .
  38.  
  39. TESTCOMM:
  40.         MOV     AH,3                    ;GET SERIAL PORT STATUS
  41.         MOV     DX,0                    ; .
  42.         INT     14H                     ; .
  43.         AND     AH,1                    ;ANY DATA WAITING?
  44.         JZ      MAINLOOP                ; NO, GO BACK TO KEYBOARD TEST
  45.         MOV     AH,2                    ;READ SERIAL DATA
  46.         MOV     DX,0                    ; .
  47.         INT     14H                     ; .
  48.         MOV     AH,6                    ;WRITE SERIAL DATA TO SCREEN
  49.         INT     21H                     ; .
  50.         JMP     MAINLOOP                ;CONTINUE
  51.  
  52. BEGIN   ENDP
  53. CSEG    ENDS
  54.         END     BEGIN
  55.