i_rawwrite.c File Reference

Write some bytes to the IEC bus, internal version. More...

#include <wdm.h>
#include "cbm_driver.h"
#include "i_iec.h"

Go to the source code of this file.


NTSTATUS cbmiec_i_raw_write (PDEVICE_EXTENSION Pdx, const UCHAR *Buffer, ULONG Count, ULONG *Sent, BOOLEAN Atn, BOOLEAN Talk)
 Write some bytes to the IEC bus. More...

Detailed Description

Write some bytes to the IEC bus, internal version.

Spiro Trikaliotis
Based on code from Michael Klein <michael(dot)klein(at)puffin(dot)lb(dot)shuttle(dot)de>

Definition in file i_rawwrite.c.

Function Documentation

NTSTATUS cbmiec_i_raw_write ( PDEVICE_EXTENSION  Pdx,
const UCHAR *  Buffer,
ULONG  Count,
ULONG *  Sent,

Write some bytes to the IEC bus.

PdxPointer to the device extension.
BufferPointer to a buffer where the read bytes are written to.
CountMaximum number of characters to read from the bus.
SentPointer to the variable which will hold the number of written bytes.
AtnIf true: Sent the bytes with set ATN; else, with released ATN
TalkIf true: A talk command is to be sent (some special care has to be taken at the end of the transmission).
If the routine succeeds, it returns STATUS_SUCCESS. Otherwise, it returns one of the error status values.

ATN is released on return of this routine

Definition at line 54 of file i_rawwrite.c.

References CABLESTATE_ERROR_OCCURRED, CABLESTATE_SUCCESSFULLY_USED, cbmiec_block_irq(), cbmiec_checkcable(), CBMIEC_GET, CBMIEC_RELEASE, cbmiec_release_irq(), cbmiec_schedule_timeout(), cbmiec_send_byte(), CBMIEC_SET, cbmiec_setcablestate(), cbmiec_udelay(), cbmiec_wait_for_listener(), DBG_ASSERT, DBG_ERROR, DBG_PREFIX, DBG_SUCCESS, DebugNtStatus(), FUNC_ENTER, libiec_global_timeouts, PERF_EVENT_WRITE_BYTE, PERF_EVENT_WRITE_BYTE_NO, PP_ATN_OUT, PP_CLK_IN, PP_CLK_OUT, PP_DATA_IN, PP_DATA_OUT, QueueShouldCancelCurrentIrp(), IEC_TIMEOUTS::T_10_SEND_BEFORE_1ST_BYTE, IEC_TIMEOUTS::T_11_SEND_BEFORE_BYTE_DELAY, IEC_TIMEOUTS::T_12_SEND_AFTER_BYTE_DELAY, IEC_TIMEOUTS::T_14_SEND_AT_END_DELAY, IEC_TIMEOUTS::T_9_SEND_WAIT_DEVICES_T_AT, and IEC_TIMEOUTS::T_9_Times.

Referenced by cbmiec_close(), cbmiec_listen(), cbmiec_open(), cbmiec_raw_write(), cbmiec_talk(), cbmiec_unlisten(), and cbmiec_untalk().