home *** CD-ROM | disk | FTP | other *** search
- page 60,132
- ;
- ; The Greenleaf Comm Library
- ;
- ; Copyright (C) 1984-90 Greenleaf Software Inc. All Rights Reserved.
- ;
-
- .xlist
- include model.h
- include prologue.h
- include asiports.equ
- .list
-
-
- pseg _asihold
-
-
- ;**<< _ A S I H O L D >>**
- ;
- ; void _asihold(base_8250,intregister,p)
- ;
- ; The interrupt enables for the port (in the 8250) are shut down.
- ;
- ; Modifications:
- ; "" 12-MAY-1988 12:43:54.77 (2.11)
- ; Modified to take a third paramter, a pointer to the channel state
- ; structure. Added conditional assembly for the alternate method
- ; of disabling/enabling transmit interrupts.
- ;
- ;
- cproc _asihold,,,,,<NODI,NOSI>
- mov dx,parm1_
- add dx,INTER ; dx points to interrupt enable registers
- in al,dx
- KILL_TIME
- mov ah,parm2_
-
- test ah,ENTX ;are we dropping transmit enable
- jz nodtx
- test al,ENTX ;is transmit already on
- jz nodtx
- and ah,not ENTX ;disable a different way via bit
- if _LDATA
- push ds
- lds bx,parm3_
- else
- mov bx,parm3_
- endif
- and [bx+chst_bits],not TXIFLAG ;shut off tx interrupts
- if _LDATA
- pop ds
- endif
- nodtx:
- not ah
- and al,ah ; set bits to 0
- out dx,al
- KILL_TIME
- cproce
- endps
- end