OpenCBM
Functions
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.

Functions

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.



Author
Spiro Trikaliotis
Authors
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,
BOOLEAN  Atn,
BOOLEAN  Talk 
)

Write some bytes to the IEC bus.

Parameters
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).
Returns
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().