- ;todo: xon/xoff\r
- bit IXOFF,(ix+oint.fflags)\r
- jr z,txi&dev&_char\r
-txi&dev&_dc1:\r
- bit TDC1,(ix+oint.stat)\r
- jr z,txi&dev&_dc3\r
- res TDC1,(ix+oint.stat)\r
- ld a,DC1\r
- jr txi&dev&_dc1dc3\r
-\r
-txi&dev&_dc3:\r
- bit TDC3,(ix+oint.stat)\r
- jr z,txi&dev&_char\r
- res TDC3,(ix+oint.stat)\r
- ld a,DC3\r
-txi&dev&_dc1dc3:\r
- out0 (tdr&dev),a ;\r
- jp rxtxi&dev&_lp0\r
+\r
+ ; TX Interrupt\r
+\r
+ ld a,(ix+oint.stat) ;check if xon/xoff should be sent\r
+ tst M_TDC1+M_TDC3 ;\r
+ jr z,txi&dev&_char ; no\r
+\r
+ ld l,DC3 ;prepare for xoff\r
+ bit TDC1,a ;request for xon (also) set?\r
+ jr z,txi&dev&_cch ;\r
+ ld l,DC1 ;\r
+txi&dev&_cch:\r
+ out0 (tdr&dev),l ;\r
+ and ~(M_TDC1+M_TDC3) ;reset request flags\r
+ ld (ix+oint.stat),a ;\r
+ jp rxtxi&dev&_lp1 ;\r