home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / MOUSE / COM3_4.ZIP / PORTS-4.ZIP / SEND2.ASM < prev    next >
Encoding:
Assembly Source File  |  1986-05-05  |  1.5 KB  |  57 lines

  1.     page    66,132
  2.     name    SEND232
  3.     title    SEND232 - Send byte to (COM2) RS232 from COBOL program
  4. ; (C) Copywrite 1986 - SoftWeir and Associates - Don Weir
  5. prog    group    code,data,stack
  6.  
  7. data    segment para
  8. data ends
  9.  
  10. stack    segment para
  11. stack ends
  12.  
  13. code    segment para
  14.     assume    cs:code,ds:data,ss:stack
  15.  
  16. ;************************************************************************
  17. ;*                                    *
  18. ;*    the parameters are taken from the stack as 4-byte absolute    *
  19. ;*    machine addresses - segment & offset                *
  20. ;*                                    *
  21. ;************************************************************************
  22.  
  23. SEND232:
  24.     pop    bp            ; return segment addr (replaced on stack)
  25.     pop    cx            ; return segment offset (also replaced)
  26.     pop    DI            ; status byte address
  27.     pop    AX            ;    "    "   segment
  28.     pop    si            ; send byte address
  29.     pop    bx            ;    "  "   segment
  30.     push    cx            ; return address back on stack - far ret
  31.     push    bp
  32.     MOV    DS,AX
  33.     MOV    ES,BX
  34.     MOV    DL,1   ;WHICH COMM PORT
  35.     MOV    DH,0
  36.     MOV    AH,1   ;SET TO SEND BYTE VIA RS232
  37.     MOV    AL,BYTE PTR ES:[SI]  ;Contains byte to send via RS232
  38.     INT    14H
  39.     MOV    BYTE PTR DS:[DI],AH  ;Contains status from RS232
  40.  
  41.                 ; and drop through to return to COBOL
  42.  
  43.  
  44. ;************************************************************************
  45. ;*                                    *
  46. ;*    the ret is a FAR RETURN using a segment/offset - 4 bytes    *
  47. ;*                                    *
  48. ;************************************************************************
  49.  
  50.  
  51. return    proc    far
  52.     ret                ; and return to caller
  53. return    endp
  54.  
  55. code    ends
  56.     end
  57.