; outsw.asm - just does an outsw with Watcom register conventions ; ; all parameters are passed in registers ; eax = pointer to data ; edx = link adapter output data port ; ebx = no of bytes to send ; ; assumes the calling C code has fired the first 3 bytes of the protocol ; word at the link adapter, and has spun waiting for the c012 to be ready ; so if we disable interrupts, we execute very rapidly the output followed ; by the string output. The tranny will unfortunately have to spin on the ; fifo flag assume cs:_text _text segment para public use32 'code' public _outsw_ _outsw_ proc mov esi,eax ; save away for pump mov ecx,ebx mov al, 0x40 ; the 'use fifo' tag cli ; dont let us be interrupted in here out dx,al ; send last byte of message add dx, 0x3 ; point at fifo read/write port rep outsw ; pump up the jam sti ; and restore ret ; return to caller _outsw_ endp _text ends end _outsw_