Device driver function 10h Output Until Busy c
Output Until Busy transfers data from the specified buffer to a
device until the device signals that it cannot accept more input.
This function is used for character device drivers only.
──────────────────────────────────────────────────────────────────
DOS calls this function only if bit 13 is set in the dhAttributes
field of the DeviceHeader structure for the driver.
This function should write as much data to the device as possible
until the device signals that it cannot accept more data, at which
point the function should return immediately. The driver should
not wait under any circumstances. It is not an error for the
driver to transfer fewer bytes than DOS requested, but the driver
must return a value for the number of bytes transferred.
This function allows device drivers to take advantage of a
printer's internal RAM buffers. The driver can send data to the
printer until the printer's internal buffer is full and then
return to DOS immediately, rather than wait while data is printed.
DOS can then periodically check the printer's status and send more
data only when the printer is ready.
──────────────────────────────────────────────────────────────────
orStatus
Specifies the status of the completed function. If the function
was successful, the driver must set the done bit (bit 8).
Otherwise, the driver must set both the error and done bits (bits
15 and 8) and copy an error value to the low-order byte.
orBuffer
Contains the 32-bit address of the buffer containing data to write
to the device.
orBytes
Contains the number of bytes to write and receives the number of
bytes written.
input Specifies the number of bytes to write. This number
must not exceed the amount of data in the specified
buffer.
output Specifies the number of bytes written. This number
cannot exceed the requested number of bytes.