Go to the source code of this file.
Typedefs | |
| typedef enum iec_cabletype | IEC_CABLETYPE |
| typedef enum iec_checkdevice | IEC_CHECKDEVICE |
Enumerations | |
| enum | iec_cabletype { IEC_CABLETYPE_AUTO = -1, IEC_CABLETYPE_XM = 0, IEC_CABLETYPE_XA = 1 } |
| enum | iec_checkdevice { IEC_CHECKDEVICE_BUSFREE = 0, IEC_CHECKDEVICE_NODEVICE = 1, IEC_CHECKDEVICE_BUSBUSY = 2 } |
Functions | |
| NTSTATUS | cbmiec_reset (IN PDEVICE_EXTENSION Pdx) |
| Send a RESET to the IEC bus. | |
| BOOLEAN | cbmiec_send_byte (IN PDEVICE_EXTENSION Pdx, IN UCHAR Byte) |
| Write one byte to the IEC bus. | |
| VOID | cbmiec_wait_for_listener (IN PDEVICE_EXTENSION Pdx, IN BOOLEAN SendEoi) |
| Wait until listener is ready to receive. | |
| VOID | cbmiec_release_bus (IN PDEVICE_EXTENSION Pdx) |
| Release the IEC bus. | |
| NTSTATUS | cbmiec_untalk (IN PDEVICE_EXTENSION Pdx) |
| Send an UNTALK over the IEC bus. | |
| NTSTATUS | cbmiec_unlisten (IN PDEVICE_EXTENSION Pdx) |
| Send an UNLISTEN over the IEC bus. | |
| NTSTATUS | cbmiec_listen (IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress) |
| Send a LISTEN over the IEC bus. | |
| NTSTATUS | cbmiec_talk (IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress) |
| Send a TALK over the IEC bus. | |
| NTSTATUS | cbmiec_open (IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress) |
| Open a file on the IEC bus. | |
| NTSTATUS | cbmiec_close (IN PDEVICE_EXTENSION Pdx, IN UCHAR DeviceAddress, IN UCHAR SecondaryAddress) |
| Close a file on the IEC bus. | |
| NTSTATUS | cbmiec_get_eoi (IN PDEVICE_EXTENSION Pdx, OUT PBOOLEAN Result) |
| Check if an EOI signal has been sent over the IEC bus. | |
| NTSTATUS | cbmiec_clear_eoi (IN PDEVICE_EXTENSION Pdx) |
| Reset the EOI state. | |
| NTSTATUS | cbmiec_iec_wait (IN PDEVICE_EXTENSION Pdx, IN UCHAR Line, IN UCHAR State, OUT PUCHAR Result) |
| Wait for a line to have a specific value. | |
| NTSTATUS | cbmiec_iec_poll (IN PDEVICE_EXTENSION Pdx, OUT PUCHAR Result) |
| Polls the status of the lines on the IEC bus. | |
| NTSTATUS | cbmiec_iec_set (IN PDEVICE_EXTENSION Pdx, IN USHORT Line) |
| Set a specific line on the IEC bus. | |
| NTSTATUS | cbmiec_iec_release (IN PDEVICE_EXTENSION Pdx, IN USHORT Line) |
| Release a specific line on the IEC bus. | |
| NTSTATUS | cbmiec_iec_setrelease (IN PDEVICE_EXTENSION Pdx, IN USHORT Set, IN USHORT Release) |
| Activate and deactive a line on the IEC serial bus. | |
| NTSTATUS | cbmiec_pp_read (IN PDEVICE_EXTENSION Pdx, OUT UCHAR *Byte) |
| Read a byte from the X[M|A]P1541 cable. | |
| NTSTATUS | cbmiec_pp_write (IN PDEVICE_EXTENSION Pdx, IN UCHAR Byte) |
| Write a byte to the X[M|A]P1541 cable. | |
| BOOLEAN | cbmiec_interrupt (IN PDEVICE_EXTENSION Pdx) |
| Interrupt handler for the IEC bus. | |
| NTSTATUS | cbmiec_cleanup (IN PDEVICE_EXTENSION Pdx) |
| Cleanup the IEC bus. | |
| NTSTATUS | cbmiec_init (IN PDEVICE_EXTENSION Pdx) |
| Initialize the IEC bus. | |
| NTSTATUS | cbmiec_global_init (IN PHANDLE HKey) |
| Initialization for libiec which are global in nature. | |
| NTSTATUS | cbmiec_raw_write (IN PDEVICE_EXTENSION Pdx, IN const PUCHAR Buffer, IN ULONG BufferLength, OUT ULONG *Written) |
| Write some bytes to the IEC bus. | |
| NTSTATUS | cbmiec_raw_read (IN PDEVICE_EXTENSION Pdx, OUT PUCHAR Buffer, IN ULONG BufferLength, OUT ULONG *Read) |
| Read some bytes from the IEC bus. | |
| NTSTATUS | cbmiec_set_cabletype (IN PDEVICE_EXTENSION Pdx, IN IEC_CABLETYPE CableType) |
| Set the type of the IEC cable. | |
| NTSTATUS | cbmiec_check_device (IN PDEVICE_EXTENSION Pdx, OUT IEC_CHECKDEVICE *CheckDevice) |
| Fast IEC drive detection. | |
| NTSTATUS | cbmiec_parallel_burst_read (IN PDEVICE_EXTENSION Pdx, OUT UCHAR *Byte) |
| NTSTATUS | cbmiec_parallel_burst_write (IN PDEVICE_EXTENSION Pdx, IN UCHAR Byte) |
| NTSTATUS | cbmiec_parallel_burst_read_track (IN PDEVICE_EXTENSION Pdx, OUT UCHAR *Buffer, IN ULONG BufferLength) |
| NTSTATUS | cbmiec_parallel_burst_write_track (IN PDEVICE_EXTENSION Pdx, IN UCHAR *Buffer, IN ULONG BufferLength) |
**************************************************************
Definition in file iec.h.
|
||||||||||||
|
Fast IEC drive detection. This function has two purposes: First of all, it tries to find out if there are devices responding on the IEC bus. Secondly, it finds out if the bus is blocked by a device, for example, because the device is busy.
Definition at line 50 of file checkdevice.c. References CBMIEC_GET, CBMIEC_RELEASE, cbmiec_schedule_timeout(), CBMIEC_SET, DBG_ASSERT, FUNC_ENTER, PP_ATN_OUT, PP_CLK_OUT, PP_DATA_IN, PP_DATA_OUT, and PP_RESET_OUT. Referenced by cbmiec_reset(). |
|
|
Cleanup the IEC bus. This function cleans the IEC bus immediately before it is released.
Definition at line 193 of file libiec/init.c. References cbmiec_release_bus(), and FUNC_ENTER. |
|
|
Reset the EOI state.
Definition at line 62 of file eoi.c. References FUNC_ENTER. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||||||
|
Close a file on the IEC bus. This function opens a file on the IEC bus.
Definition at line 82 of file libiec/openclose.c. References cbmiec_i_raw_write(), DBG_PREFIX, FUNC_ENTER, and FUNC_PARAM. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||
|
Check if an EOI signal has been sent over the IEC bus.
Definition at line 41 of file eoi.c. References FUNC_ENTER. Referenced by cbm_execute_devicecontrol(). |
|
|
Initialization for libiec which are global in nature. This function initializes libiec.
Definition at line 291 of file libiec/init.c. References FUNC_ENTER. Referenced by cbm_init_registry(). |
|
||||||||||||
|
Polls the status of the lines on the IEC bus.
Definition at line 40 of file poll.c. References FUNC_ENTER, IEC_LINE_ATN, IEC_LINE_CLOCK, IEC_LINE_DATA, IEC_LINE_RESET, IN_PORT, PP_ATN_IN, PP_CLK_IN, PP_DATA_IN, and PP_RESET_IN. Referenced by cbm_execute_devicecontrol(), and cbmiec_iec_wait(). |
|
||||||||||||
|
Release a specific line on the IEC bus. This function releases a specific line on the IEC bus.
Definition at line 43 of file release.c. References cbmiec_iec_setrelease(), and FUNC_ENTER. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||
|
Set a specific line on the IEC bus. This function sets a specific line on the IEC bus.
Definition at line 43 of file set.c. References cbmiec_iec_setrelease(), and FUNC_ENTER. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||||||
|
Activate and deactive a line on the IEC serial bus. This function activates (sets to 0V, L) and deactivates (set to 5V, H) lines on the IEC serial bus.
Definition at line 52 of file setrelease.c. References CBMIEC_SET_RELEASE, DBG_ASSERT, DBG_PREFIX, FUNC_ENTER, FUNC_PARAM, IEC_LINE_ATN, IEC_LINE_CLOCK, IEC_LINE_DATA, and IEC_LINE_RESET. Referenced by cbm_execute_devicecontrol(), cbmiec_iec_release(), and cbmiec_iec_set(). |
|
||||||||||||||||||||
|
Wait for a line to have a specific value. This function waits until a listener is ready.
Definition at line 46 of file wait.c. References cbmiec_iec_poll(), cbmiec_schedule_timeout(), cbmiec_udelay(), DBG_PREFIX, FUNC_ENTER, FUNC_PARAM, IEC_LINE_ATN, IEC_LINE_CLOCK, IEC_LINE_DATA, IN_PORT, libiec_global_timeouts, PP_ATN_IN, PP_CLK_IN, PP_DATA_IN, QueueShouldCancelCurrentIrp(), IEC_TIMEOUTS::T_8_IEC_WAIT_LONG_DELAY, and IEC_TIMEOUTS::T_8_IEC_WAIT_SHORT_DELAY. Referenced by cbm_execute_devicecontrol(). |
|
|
Initialize the IEC bus. This function initializes the IEC bus itself, and sets some variables in the device extension. It has to be called before any other IEC function is called.
Definition at line 239 of file libiec/init.c. References CBMIEC_RELEASE, CBMIEC_SET, FUNC_ENTER, PP_ATN_OUT, PP_CLK_OUT, PP_DATA_OUT, PP_LP_BIDIR, PP_LP_IRQ, and PP_RESET_OUT. Referenced by cbm_lock_parport(). |
|
|
Interrupt handler for the IEC bus. This function is the interrupt handler for the IEC bus. Its only purpose is to count the number of interrupts for cbmiec_wait_for_listener().
Definition at line 41 of file interrupt.c. References DBG_PPORT, DBG_PREFIX, FUNC_ENTER, and IN_PORT. Referenced by cbm_isr(). |
|
||||||||||||||||
|
Send a LISTEN over the IEC bus. This function sends a listen on the IEC bus.
Definition at line 45 of file listen.c. References cbmiec_i_raw_write(), DBG_PREFIX, FUNC_ENTER, and FUNC_PARAM. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||||||
|
Open a file on the IEC bus. This function opens a file on the IEC bus.
Definition at line 45 of file libiec/openclose.c. References cbmiec_i_raw_write(), DBG_PREFIX, FUNC_ENTER, and FUNC_PARAM. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||
|
Read a byte from the X[M|A]P1541 cable. This function reads a byte from the parallel portion of the X[M|A]P1541 cable.
Definition at line 43 of file ppread.c. References CBMIEC_SET, FUNC_ENTER, PAR_PORT, and PP_LP_BIDIR. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||
|
Write a byte to the X[M|A]P1541 cable. This function writes a byte to the parallel portion of the X[M|A]P1541 cable.
Definition at line 43 of file ppwrite.c. References CBMIEC_RELEASE, DBG_PREFIX, FUNC_ENTER, FUNC_PARAM, PAR_PORT, and PP_LP_BIDIR. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||||||||||
|
Read some bytes from the IEC bus. This function reads some bytes from the IEC bus. If debugging of function parameters is defined, output the given parameters and the returned values.
Definition at line 49 of file rawread.c. References cbmiec_i_raw_read(), DBG_PREFIX, FUNC_ENTER, and FUNC_PARAM. Referenced by cbm_execute_readwrite(). |
|
||||||||||||||||||||
|
Write some bytes to the IEC bus.
Definition at line 48 of file rawwrite.c. References cbmiec_i_raw_write(), DBG_PREFIX, FUNC_ENTER, and FUNC_PARAM. Referenced by cbm_execute_readwrite(). |
|
|
Release the IEC bus. This function releases the IEC bus.
Definition at line 39 of file releasebus.c. References CBMIEC_RELEASE, FUNC_ENTER, FUNC_LEAVE, PP_ATN_OUT, PP_CLK_OUT, PP_DATA_OUT, and PP_RESET_OUT. Referenced by cbm_lock_parport(), cbm_unlock_parport(), and cbmiec_cleanup(). |
|
|
Send a RESET to the IEC bus. This function sends a RESET on the IEC bus.
Definition at line 39 of file reset.c. References cbmiec_check_device(), CBMIEC_RELEASE, cbmiec_schedule_timeout(), CBMIEC_SET, DBG_PREFIX, DBG_PRINT, DBG_SUCCESS, FUNC_ENTER, libiec_global_timeouts, PP_ATN_OUT, PP_CLK_OUT, PP_DATA_OUT, PP_LP_BIDIR, PP_LP_IRQ, PP_RESET_OUT, and IEC_TIMEOUTS::T_holdreset. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||
|
Write one byte to the IEC bus.
Definition at line 40 of file sendbyte.c. References cbmiec_block_irq(), CBMIEC_GET, CBMIEC_RELEASE, cbmiec_release_irq(), CBMIEC_SET, CBMIEC_SET_RELEASE, cbmiec_udelay(), DBG_PREFIX, DBG_SUCCESS, FUNC_ENTER, FUNC_LEAVE_BOOLEAN, libiec_global_timeouts, PERF_EVENT_WRITE_BIT_NO, PP_CLK_OUT, PP_DATA_IN, PP_DATA_OUT, IEC_TIMEOUTS::T_15_SEND_BEFORE_BIT_DELAY_T_S, IEC_TIMEOUTS::T_16_SEND_BIT_TIME_T_V, IEC_TIMEOUTS::T_17_SEND_FRAME_HANDSHAKE_T_F, and IEC_TIMEOUTS::T_17_Times. Referenced by cbmiec_i_raw_write(). |
|
||||||||||||
|
Set the type of the IEC cable. This function sets the type of the IEC cable.
Definition at line 216 of file libiec/init.c. References FUNC_ENTER. Referenced by cbm_init_registry(). |
|
||||||||||||||||
|
Send a TALK over the IEC bus. This function sends a TALK to the IEC bus.
Definition at line 45 of file talk.c. References cbmiec_i_raw_write(), DBG_PREFIX, FUNC_ENTER, and FUNC_PARAM. Referenced by cbm_execute_devicecontrol(). |
|
|
Send an UNLISTEN over the IEC bus. This function sends an UNLISTEN to the IEC bus.
Definition at line 39 of file unlisten.c. References cbmiec_i_raw_write(), and FUNC_ENTER. Referenced by cbm_execute_devicecontrol(). |
|
|
Send an UNTALK over the IEC bus. This function sends an UNTALK to the IEC bus.
Definition at line 39 of file untalk.c. References cbmiec_i_raw_write(), and FUNC_ENTER. Referenced by cbm_execute_devicecontrol(). |
|
||||||||||||
|
Wait until listener is ready to receive. This function waits until a listener is ready.
Definition at line 81 of file waitlistener.c. References cbmiec_block_irq(), CBMIEC_GET, CBMIEC_RELEASE, cbmiec_release_irq(), cbmiec_schedule_timeout(), CBMIEC_SET, DBG_ASSERT, DBG_PREFIX, DBG_SUCCESS, DBG_VERIFY, DBGDO, FUNC_ENTER, FUNC_LEAVE, libiec_global_timeouts, PP_CLK_OUT, PP_DATA_IN, PP_LP_IRQ, QueueShouldCancelCurrentIrp(), and IEC_TIMEOUTS::T_WaitForListener_Granu_T_H. Referenced by cbmiec_i_raw_write(). |
1.4.2