Function 42 - read IRQ data.
When an IRQ occurs, the system reads data from ports indicated
earlier by function 44 and writes this data to
internal buffer. This function reads out data from that buffer
bytewise.
Parameters:
- eax = 42 - function number
- ebx = IRQ number, 0..15
Returned value: (use value of ecx to distinguish)
- if the thread is not IRQ owner (or IRQ number is incorrect):
- if there is no data:
- eax = 0
- ecx = 1
- ebx destroyed
- if all is ok:
- eax = byte size of data, not yet read from buffer
- ecx = 0
- ebx = current byte
Remarks:
- Previously the thread must reserve indicated IRQ for itself
by function 45.
- The size of data buffer is 4000 bytes, on overflow
"fresh" data cease to be written in the buffer.