/* Copyright (C) Magna Carta Software, Inc. 1988-1991. All Rights Reserved. C COMMUNICATIONS TOOLKIT CDEFS.H -- Manifest constant definitions (#included by COMM.H) */ #if !defined(CCTDEF_H_INCLUDED) #define CCTDEF_H_INCLUDED /* GENERAL MANIFEST CONSTANTS */ #define FALSE 0 #define TRUE 1 #define OPEN 1 #define CLOSED 0 #define ON 1 #define OFF 0 #define HIGH 1 /* setting for RS-232 lines */ #define LOW 0 /* setting for RS-232 lines */ #define EOINT 0X20 /* end of interrupt */ #define RX 0X0F /* set databits for RX */ #define TX 0XF0 /* set databits for TX */ #define _KEYBRD_READ 0 #define _KEYBRD_READY 1 #define _KEYBRD_SHIFTSTATUS 2 #define XLAT_SIZE 44 /* size of XLAT region of COMM_PORT */ #define NO_RAM (-5) /* no RAM available */ #define NO_FILE (-6) /* returned in file xfers */ #define CCT_DYNAMIC 1 /* memory allocated dynamically */ #define CCT_INIT_OK 2 /* object initialized OK */ /* FILE TRANSFER PARAMETERS */ #define DISK 50 #define RAM 51 #define HEADROOM 0X100 /* memory not allocated to RX buffer */ #define MAX_RETRIES 10 /* max. # times to retry an operation */ /* ERROR MESSAGES FROM (DE)INITIALIZATION */ #define PORT_OPEN (-100) #define NO_PORT (-101) #define PORT_CLOSED (-102) /* COMMUNICATIONS MANIFEST CONSTANTS AND MACROS */ #define COM1 ((WORD) 0X3F8) /* address of COM1 on IBM PC */ #define COM2 ((WORD) 0X2F8) /* address of COM2 on IBM PC */ #define COM3 ((WORD) 0X3220) /* address of COM3. (PS/2 value) */ #define COM4 ((WORD) 0X3228) /* address of COM4. (PS/2 value) */ #define COM5 ((WORD) 0X4220) /* address of COM5. (Phoenix ABIOS) */ #define COM6 ((WORD) 0X4228) /* address of COM6. (Phoenix ABIOS) */ #define COM7 ((WORD) 0X5220) /* address of COM7. (Phoenix ABIOS) */ #define COM8 ((WORD) 0X5228) /* address of COM8. (Phoenix ABIOS) */ #define IRQ2_VECTOR 0XA /* IRQ2 vector */ #define IRQ3_VECTOR 0XB /* IRQ3 vector (COM2) */ #define IRQ4_VECTOR 0XC /* IRQ4 vector (COM1) */ #define IRQ5_VECTOR 0XD /* IRQ5 vector */ #define IRQ6_VECTOR 0XE /* IRQ6 vector */ #define IRQ7_VECTOR 0XF /* IRQ7 vector */ #define IRQ8_VECTOR 0X70 /* IRQ8 vector (AT, real-time clock) */ #define IRQ9_VECTOR 0X71 /* IRQ9 vector (AT, slaved to IRQ2) */ #define IRQ10_VECTOR 0X72 /* IRQ10 vector */ #define IRQ11_VECTOR 0X73 /* IRQ11 vector */ #define IRQ12_VECTOR 0X74 /* IRQ12 vector */ #define IRQ13_VECTOR 0X75 /* IRQ13 vector (AT, 80287 coprocessor) */ #define IRQ14_VECTOR 0X76 /* IRQ14 vector (AT, hard disk) */ #define IRQ15_VECTOR 0X77 /* IRQ15 vector */ /* THE TYPES OF DATA TRANSLATION AVAILABLE */ #define LOCAL_ECHO 1 /* echo output to local console */ #define REMOTE_ECHO 2 /* echo input to remote or wait for echo*/ #define PRINTER_ECHO 4 /* echo serial I and/or O to printer? */ #define CAPTURE_BUFFER_ECHO 8 /* echo serial I and/or O to buffer? */ #define XLAT 81 /* format serial I/O? */ #define EOL 82 /* end-of-line mode */ #define CASE 83 /* convert to upper, lower, or mixed */ #define ASCII_ONLY 84 /* remove high bit => 0,...,127 */ #define INTERBYTE_DELAY 85 /* interbyte delay time (ms.) */ #define INTERLINE_DELAY 86 /* interline delay (output only) */ #define INTERLINE_DELAY_CHAR 87 /* character that causes interline delay*/ #define ECHO_WAIT 88 /* wait-for-echo flag (output only) */ #define FLOWCTL 89 /* use flow control */ #define TX_DELAY 90 /* delay time in transmission */ #define TX_DELAYCHAR 91 /* literal character that causes delay */ #define XONCHAR 92 /* character defined as XON */ #define XOFFCHAR 93 /* character defined as XOFF */ #define ABORT_KEY 94 /* file transfer abort key */ #define FLOWHIGH 95 #define TRAILINGBYTE_DELAY 96 /* delay after last byte of string */ #define RX_BUFFER_HWM 97 #define RX_BUFFER_LWM 98 #define TX_BUFFER_LWM 98 /* XON-XOFF CONTROL */ #define XON_ALL 0X0 /* if this is XONCHAR, accept any for XON */ /* TYPES OF FLOW CONTROL */ #define XONXOFF 0X10 /* XONXOFF */ #define RTS_CTS 0X20 /* RTS/CTS */ #define DTR_DSR 0X40 /* DTR/DSR */ #define DICTATE 0X80 /* do not accept rx chars. in rx hold */ /* FLOW CONTROL TYPES FOR EACH DIRECTION */ #define RXONXOFF 0X01 /* accept XON-XOFF */ #define RRTS_CTS 0X02 /* accept RTS/CTS */ #define RDTR_DSR 0X04 /* accept DTR/DSR */ #define TXONXOFF 0X10 /* assert XON-XOFF */ #define TRTS_CTS 0X20 /* assert RTS/CTS */ #define TDTR_DSR 0X40 /* assert DTR/DSR */ /* NEW LINE TRANSLATION MODES */ #define CR2LF 1 /* translate CR to LF */ #define CR2CRLF 2 /* convert CR to CRLF */ #define CRLF2LF 3 /* convert CRLF to LF */ #define CRLF2CR 4 /* convert CR to CR */ #define LF2CR 5 /* translate LF to CR */ #define LF2CRLF 6 /* convert LF to CRLF */ #define EOL2SP 7 /* translate CR&LF to spaces */ #define STRIPEOL 8 /* remove all CR and LF */ /* CASE MODES */ #define UPPER 21 /* lower case -> upper case */ #define LOWER 22 /* upper case -> lower case */ /* DATA FORMATS VALUES */ #define PARITY_NONE 0 #define PARITY_ODD 1 #define PARITY_EVEN 3 #define PARITY_MARK 5 #define PARITY_SPACE 7 #define STOPBITS0 0 #define STOPBITS1 1 #define STOPBITS15 15 #define STOPBITS2 2 #define DATABITS5 5 #define DATABITS6 6 #define DATABITS7 7 #define DATABITS8 8 /* INTERRUPT TYPES */ #define RECEIVE 1001 #define TRANSMIT 1002 #define LINE_STATUS 1004 #define MODEM_STATUS 1008 /* TRANSMIT INTERRUPT FLAGS */ #define TX_BUSY 1 /* transmit interrupts going */ #define TX_WAIT 2 /* tell TX to wait for full buffer */ #define istxinwait(a) ((a)->f_txbusy & TX_WAIT) #define istxbusy(a) ((a)->f_txbusy & TX_BUSY) #define istxrts(a) ((a)->f_txbusy == 0) /* TX ints. ready to send */ /* UART FUNCTION SELECTION PARAMETERS */ #define DATABITS 100 #define PARITY 101 #define SPEED 102 #define STOPBITS 103 #define BREAK 104 #define DTR 105 #define RTS 106 #define OUT1 107 #define OUT2 108 #define CTS 109 #define DCD 110 #define DSR 111 #define RI 112 #define LOOPBACK 113 /*PROTOCOLS */ /* Rule: XMODEM derived: Bit8 = 1. Sends file name: Bit7 = 1. Streaming capability: Bit6 = 1. */ #define XDERIVED 0X80 #define XFERNAME 0X40 #define CANSTREAM 0X20 #define XMODEM XDERIVED /* 0X80 */ #define XMODEM_CRC XDERIVED+1 /* 0X81 */ #define XMODEM_1K XDERIVED+2 /* 0X82 */ #define YMODEM (XDERIVED | XFERNAME) /* 0XC0 */ #define YMODEM_G (XDERIVED | XFERNAME | CANSTREAM) /* 0XE0 */ #define KERMIT XFERNAME+1 /* 0X41 */ #define FAST XFERNAME+2 /* 0X42 */ #define ASCII CANSTREAM+1 /* 0X21 */ #define ZMODEM (XFERNAME | CANSTREAM) /* 0X60 */ /* DATA TRANSFER ERRORS */ #define MAX_XFER_ERROR_TYPES 0X15 /* number of errors in this array */ #define XERROR_OFFSET 0X30 /* offset of error msgs. from 0 */ #define UNSPECIFIED (-0X30) /* unspecified reason for abort */ #define USER_CANCELLED (-0X31) /* user cancelled */ #define TX_CANCELLED (-0X32) /* transmitter cancelled (RX acknowledgement) */ #define DISK_FULL (-0X33) /* insufficient disk space on RX disk */ #define CRC_ERROR (-0X34) /* CRC error detected by receiver */ #define FILE_LENGTH_ERROR (-0X35) /* FS not where expected */ #define RX_TIMEOUT (-0X36) /* receiver timed-out */ #define RX_DATA_ERROR (-0X37) /* parity error, overrun, break */ #define BAD_HEADER_FORMAT (-0X38) /* incorrect length, etc. */ #define NO_TX_START (-0X39) /* no response to ENQs */ #define ABORT_WITH_MSG (-0X3A) /* */ #define SKIP_FILE (-0X3B) /* send next file header or EOT */ #define RX_CANCELLED (-0X3C) /* transmitter acknowledgement */ #define NO_RX_START (-0X3D) /* TIM3 expired at transmitter */ #define HEADER_NOT_ACKNOWLEDGED (-0X3E) /* sender abort after TIM4 */ #define FILE_NOT_ACKNOWLEDGED (-0X3F) /* TIM4 expired at transmitter */ #define GARBAGE_RECEIVED (-0X40) /* send next file header or EOT */ #define BAD_PACKET_NUMBER (-0X41) /* packet number out of sequence */ #define MAX_ERRORS_REACHED (-0X42) /* max. error count reached */ #define FILE_INFO_RECEIVED (-0X43) /* max. error count reached */ #define CONNECTION_LOST (-0X44) /* DCD (or equivalent) lost */ #define USING_CHECKSUM 0X4001 #define USING_CRC 0X4002 #define XFER_POSITION 0X4003 #define FILE_SOURCE 0X4004 /* FILE TRANSFER STATUS FLAG MASKS */ #define F_SENT 1 #define F_KEEP 2 /* MACROS THAT TEST THE DATA TRANSLATION ECHO FLAG */ #define isrxecholocal(a) ((a)->echo & LOCAL_ECHO) #define isrxechoremote(a) ((a)->echo & REMOTE_ECHO) #define isrxechoprn(a) ((a)->echo & PRINTER_ECHO) #define isrxechobuf(a) ((a)->echo & CAPTURE_BUFFER_ECHO) #define istxecholocal(a) ((a)->echo & 0X10) #define istxechoremote(a) ((a)->echo & 0X20) #define istxechoprn(a) ((a)->echo & 0X40) #define istxechobuf(a) ((a)->echo & 0X80) /* m->flags bit 0 set if dynamically allocated */ #define isdynamic(a) ((a)->flags & CCT_DYNAMIC) /* Compatibility */ #define c_flush(a, b) c_rxflush((a), (b)) #define clear_rxbuf(a, b) c_rxflush((a), (b)) #define get_key(a) bios_key(a) #define init_port(a, b, c, d, e, f) u8250_init((a), (b), (c), (d), (e), (f)) #define modem_assign(a, b) modem_assign_((a), (b)) #define modem_icmd(a, b) modem_cmd((a), (b)) #define rest_xlat(a, b) memcpy((&a->rx_xlat), (b), XLAT_SIZE) #endif