home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Developer CD v1.2
/
amidev_cd_12.iso
/
inc&ad2.0
/
includes
/
devices
/
parallel.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-01
|
4KB
|
105 lines
#ifndef DEVICES_PARALLEL_H
#define DEVICES_PARALLEL_H
/*
** $Filename: devices/parallel.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.1 $
** $Date: 90/05/10 $
**
** parallel.device I/O request structure information
**
** (C) Copyright 1985-1991 Commodore Amiga Inc.
** All rights reserved.
*/
#ifndef EXEC_IO_H
#include "exec/io.h"
#endif /* !EXEC_IO_H */
struct IOPArray {
ULONG PTermArray0;
ULONG PTermArray1;
};
/******************************************************************/
/* CAUTION !! IF YOU ACCESS the parallel.device, you MUST (!!!!) use
an IOExtPar-sized structure or you may overlay innocent memory !! */
/******************************************************************/
struct IOExtPar {
struct IOStdReq IOPar;
/* STRUCT MsgNode
* 0 APTR Succ
* 4 APTR Pred
* 8 UBYTE Type
* 9 UBYTE Pri
* A APTR Name
* E APTR ReplyPort
* 12 UWORD MNLength
* STRUCT IOExt
* 14 APTR io_Device
* 18 APTR io_Unit
* 1C UWORD io_Command
* 1E UBYTE io_Flags
* 1F UBYTE io_Error
* STRUCT IOStdExt
* 20 ULONG io_Actual
* 24 ULONG io_Length
* 28 APTR io_Data
* 2C ULONG io_Offset
* 30 */
ULONG io_PExtFlags; /* (not used) flag extension area */
UBYTE io_Status; /* status of parallel port and registers */
UBYTE io_ParFlags; /* see PARFLAGS bit definitions below */
struct IOPArray io_PTermArray; /* termination character array */
};
#define PARB_SHARED 5 /* ParFlags non-exclusive access bit */
#define PARF_SHARED (1<<5) /* " non-exclusive access mask */
#define PARB_SLOWMODE 4 /* " slow printer bit */
#define PARF_SLOWMODE (1<<4) /* " slow printer mask */
#define PARB_FASTMODE 3 /* " fast I/O mode selected bit */
#define PARF_FASTMODE (1<<3) /* " fast I/O mode selected mask */
#define PARB_RAD_BOOGIE 3 /* " for backward compatibility */
#define PARF_RAD_BOOGIE (1<<3) /* " for backward compatibility */
#define PARB_ACKMODE 2 /* " ACK interrupt handshake bit */
#define PARF_ACKMODE (1<<2) /* " ACK interrupt handshake mask */
#define PARB_EOFMODE 1 /* " EOF mode enabled bit */
#define PARF_EOFMODE (1<<1) /* " EOF mode enabled mask */
#define IOPARB_QUEUED 6 /* IO_FLAGS rqst-queued bit */
#define IOPARF_QUEUED (1<<6) /* " rqst-queued mask */
#define IOPARB_ABORT 5 /* " rqst-aborted bit */
#define IOPARF_ABORT (1<<5) /* " rqst-aborted mask */
#define IOPARB_ACTIVE 4 /* " rqst-qued-or-current bit */
#define IOPARF_ACTIVE (1<<4) /* " rqst-qued-or-current mask */
#define IOPTB_RWDIR 3 /* IO_STATUS read=0,write=1 bit */
#define IOPTF_RWDIR (1<<3) /* " read=0,write=1 mask */
#define IOPTB_PARSEL 2 /* " printer selected on the A1000 */
#define IOPTF_PARSEL (1<<2) /* printer selected & serial "Ring Indicator"
on the A500 & A2000. Be careful when
making cables */
#define IOPTB_PAPEROUT 1 /* " paper out bit */
#define IOPTF_PAPEROUT (1<<1) /* " paper out mask */
#define IOPTB_PARBUSY 0 /* " printer in busy toggle bit */
#define IOPTF_PARBUSY (1<<0) /* " printer in busy toggle mask */
/* Note: previous versions of this include files had bits 0 and 2 swapped */
#define PARALLELNAME "parallel.device"
#define PDCMD_QUERY (CMD_NONSTD)
#define PDCMD_SETPARAMS (CMD_NONSTD+1)
#define ParErr_DevBusy 1
#define ParErr_BufTooBig 2
#define ParErr_InvParam 3
#define ParErr_LineErr 4
#define ParErr_NotOpen 5
#define ParErr_PortReset 6
#define ParErr_InitErr 7
#endif /* DEVICES_PARALLEL_H */