1/******************************************************************************* 2* 3* (c) 1998 by Computone Corporation 4* 5******************************************************************************** 6* 7* 8* PACKAGE: Linux tty Device Driver for IntelliPort family of multiport 9* serial I/O controllers. 10* 11* DESCRIPTION: Definition table for In-line and Bypass commands. Applicable 12* only when the standard loadware is active. (This is included 13* source code, not a separate compilation module.) 14* 15*******************************************************************************/ 16 17//------------------------------------------------------------------------------ 18// 19// Revision History: 20// 21// 10 October 1991 MAG First Draft 22// 7 November 1991 MAG Reflects additional commands. 23// 24 February 1992 MAG Additional commands for 1.4.x loadware 24// 11 March 1992 MAG Additional commands 25// 30 March 1992 MAG Additional command: CMD_DSS_NOW 26// 18 May 1992 MAG Discovered commands 39 & 40 must be at the end of a 27// packet: affects implementation. 28//------------------------------------------------------------------------------ 29 30//************ 31//* Includes * 32//************ 33 34#include "i2cmd.h" /* To get some bit-defines */ 35 36//------------------------------------------------------------------------------ 37// Here is the table of global arrays which represent each type of command 38// supported in the IntelliPort standard loadware. See also i2cmd.h 39// for a more complete explanation of what is going on. 40//------------------------------------------------------------------------------ 41 42// Here are the various globals: note that the names are not used except through 43// the macros defined in i2cmd.h. Also note that although they are character 44// arrays here (for extendability) they are cast to structure pointers in the 45// i2cmd.h macros. See i2cmd.h for flags definitions. 46 47// Length Flags Command 48static UCHAR ct02[] = { 1, BTH, 0x02 }; // DTR UP 49static UCHAR ct03[] = { 1, BTH, 0x03 }; // DTR DN 50static UCHAR ct04[] = { 1, BTH, 0x04 }; // RTS UP 51static UCHAR ct05[] = { 1, BTH, 0x05 }; // RTS DN 52static UCHAR ct06[] = { 1, BYP, 0x06 }; // START FL 53static UCHAR ct07[] = { 2, BTH, 0x07,0 }; // BAUD 54static UCHAR ct08[] = { 2, BTH, 0x08,0 }; // BITS 55static UCHAR ct09[] = { 2, BTH, 0x09,0 }; // STOP 56static UCHAR ct10[] = { 2, BTH, 0x0A,0 }; // PARITY 57static UCHAR ct11[] = { 2, BTH, 0x0B,0 }; // XON 58static UCHAR ct12[] = { 2, BTH, 0x0C,0 }; // XOFF 59static UCHAR ct13[] = { 1, BTH, 0x0D }; // STOP FL 60static UCHAR ct14[] = { 1, BYP|VIP, 0x0E }; // ACK HOTK 61//static UCHAR ct15[]={ 2, BTH|VIP, 0x0F,0 }; // IRQ SET 62static UCHAR ct16[] = { 2, INL, 0x10,0 }; // IXONOPTS 63static UCHAR ct17[] = { 2, INL, 0x11,0 }; // OXONOPTS 64static UCHAR ct18[] = { 1, INL, 0x12 }; // CTSENAB 65static UCHAR ct19[] = { 1, BTH, 0x13 }; // CTSDSAB 66static UCHAR ct20[] = { 1, INL, 0x14 }; // DCDENAB 67static UCHAR ct21[] = { 1, BTH, 0x15 }; // DCDDSAB 68static UCHAR ct22[] = { 1, BTH, 0x16 }; // DSRENAB 69static UCHAR ct23[] = { 1, BTH, 0x17 }; // DSRDSAB 70static UCHAR ct24[] = { 1, BTH, 0x18 }; // RIENAB 71static UCHAR ct25[] = { 1, BTH, 0x19 }; // RIDSAB 72static UCHAR ct26[] = { 2, BTH, 0x1A,0 }; // BRKENAB 73static UCHAR ct27[] = { 1, BTH, 0x1B }; // BRKDSAB 74//static UCHAR ct28[]={ 2, BTH, 0x1C,0 }; // MAXBLOKSIZE 75//static UCHAR ct29[]={ 2, 0, 0x1D,0 }; // reserved 76static UCHAR ct30[] = { 1, INL, 0x1E }; // CTSFLOWENAB 77static UCHAR ct31[] = { 1, INL, 0x1F }; // CTSFLOWDSAB 78static UCHAR ct32[] = { 1, INL, 0x20 }; // RTSFLOWENAB 79static UCHAR ct33[] = { 1, INL, 0x21 }; // RTSFLOWDSAB 80static UCHAR ct34[] = { 2, BTH, 0x22,0 }; // ISTRIPMODE 81static UCHAR ct35[] = { 2, BTH|END, 0x23,0 }; // SENDBREAK 82static UCHAR ct36[] = { 2, BTH, 0x24,0 }; // SETERRMODE 83//static UCHAR ct36a[]={ 3, INL, 0x24,0,0 }; // SET_REPLACE 84 85// The following is listed for completeness, but should never be sent directly 86// by user-level code. It is sent only by library routines in response to data 87// movement. 88//static UCHAR ct37[]={ 5, BYP|VIP, 0x25,0,0,0,0 }; // FLOW PACKET 89 90// Back to normal 91//static UCHAR ct38[] = {11, BTH|VAR, 0x26,0,0,0,0,0,0,0,0,0,0 }; // DEF KEY SEQ 92//static UCHAR ct39[]={ 3, BTH|END, 0x27,0,0 }; // OPOSTON 93//static UCHAR ct40[]={ 1, BTH|END, 0x28 }; // OPOSTOFF 94static UCHAR ct41[] = { 1, BYP, 0x29 }; // RESUME 95//static UCHAR ct42[]={ 2, BTH, 0x2A,0 }; // TXBAUD 96//static UCHAR ct43[]={ 2, BTH, 0x2B,0 }; // RXBAUD 97//static UCHAR ct44[]={ 2, BTH, 0x2C,0 }; // MS PING 98//static UCHAR ct45[]={ 1, BTH, 0x2D }; // HOTENAB 99//static UCHAR ct46[]={ 1, BTH, 0x2E }; // HOTDSAB 100//static UCHAR ct47[]={ 7, BTH, 0x2F,0,0,0,0,0,0 }; // UNIX FLAGS 101//static UCHAR ct48[]={ 1, BTH, 0x30 }; // DSRFLOWENAB 102//static UCHAR ct49[]={ 1, BTH, 0x31 }; // DSRFLOWDSAB 103//static UCHAR ct50[]={ 1, BTH, 0x32 }; // DTRFLOWENAB 104//static UCHAR ct51[]={ 1, BTH, 0x33 }; // DTRFLOWDSAB 105//static UCHAR ct52[]={ 1, BTH, 0x34 }; // BAUDTABRESET 106//static UCHAR ct53[] = { 3, BTH, 0x35,0,0 }; // BAUDREMAP 107static UCHAR ct54[] = { 3, BTH, 0x36,0,0 }; // CUSTOMBAUD1 108static UCHAR ct55[] = { 3, BTH, 0x37,0,0 }; // CUSTOMBAUD2 109static UCHAR ct56[] = { 2, BTH|END, 0x38,0 }; // PAUSE 110static UCHAR ct57[] = { 1, BYP, 0x39 }; // SUSPEND 111static UCHAR ct58[] = { 1, BYP, 0x3A }; // UNSUSPEND 112static UCHAR ct59[] = { 2, BTH, 0x3B,0 }; // PARITYCHK 113static UCHAR ct60[] = { 1, INL|VIP, 0x3C }; // BOOKMARKREQ 114//static UCHAR ct61[]={ 2, BTH, 0x3D,0 }; // INTERNALLOOP 115//static UCHAR ct62[]={ 2, BTH, 0x3E,0 }; // HOTKTIMEOUT 116static UCHAR ct63[] = { 2, INL, 0x3F,0 }; // SETTXON 117static UCHAR ct64[] = { 2, INL, 0x40,0 }; // SETTXOFF 118//static UCHAR ct65[]={ 2, BTH, 0x41,0 }; // SETAUTORTS 119//static UCHAR ct66[]={ 2, BTH, 0x42,0 }; // SETHIGHWAT 120//static UCHAR ct67[]={ 2, BYP, 0x43,0 }; // STARTSELFL 121//static UCHAR ct68[]={ 2, INL, 0x44,0 }; // ENDSELFL 122//static UCHAR ct69[]={ 1, BYP, 0x45 }; // HWFLOW_OFF 123//static UCHAR ct70[]={ 1, BTH, 0x46 }; // ODSRFL_ENAB 124//static UCHAR ct71[]={ 1, BTH, 0x47 }; // ODSRFL_DSAB 125//static UCHAR ct72[]={ 1, BTH, 0x48 }; // ODCDFL_ENAB 126//static UCHAR ct73[]={ 1, BTH, 0x49 }; // ODCDFL_DSAB 127//static UCHAR ct74[]={ 2, BTH, 0x4A,0 }; // LOADLEVEL 128//static UCHAR ct75[]={ 2, BTH, 0x4B,0 }; // STATDATA 129//static UCHAR ct76[]={ 1, BYP, 0x4C }; // BREAK_ON 130//static UCHAR ct77[]={ 1, BYP, 0x4D }; // BREAK_OFF 131//static UCHAR ct78[]={ 1, BYP, 0x4E }; // GETFC 132static UCHAR ct79[] = { 2, BYP, 0x4F,0 }; // XMIT_NOW 133//static UCHAR ct80[]={ 4, BTH, 0x50,0,0,0 }; // DIVISOR_LATCH 134//static UCHAR ct81[]={ 1, BYP, 0x51 }; // GET_STATUS 135//static UCHAR ct82[]={ 1, BYP, 0x52 }; // GET_TXCNT 136//static UCHAR ct83[]={ 1, BYP, 0x53 }; // GET_RXCNT 137//static UCHAR ct84[]={ 1, BYP, 0x54 }; // GET_BOXIDS 138//static UCHAR ct85[]={10, BYP, 0x55,0,0,0,0,0,0,0,0,0 }; // ENAB_MULT 139//static UCHAR ct86[]={ 2, BTH, 0x56,0 }; // RCV_ENABLE 140static UCHAR ct87[] = { 1, BYP, 0x57 }; // HW_TEST 141//static UCHAR ct88[]={ 3, BTH, 0x58,0,0 }; // RCV_THRESHOLD 142//static UCHAR ct90[]={ 3, BYP, 0x5A,0,0 }; // Set SILO 143//static UCHAR ct91[]={ 2, BYP, 0x5B,0 }; // timed break 144 145// Some composite commands as well 146//static UCHAR cc01[]={ 2, BTH, 0x02,0x04 }; // DTR & RTS UP 147//static UCHAR cc02[]={ 2, BTH, 0x03,0x05 }; // DTR & RTS DN 148 149//******** 150//* Code * 151//******** 152 153//****************************************************************************** 154// Function: i2cmdUnixFlags(iflag, cflag, lflag) 155// Parameters: Unix tty flags 156// 157// Returns: Pointer to command structure 158// 159// Description: 160// 161// This routine sets the parameters of command 47 and returns a pointer to the 162// appropriate structure. 163//****************************************************************************** 164 165//****************************************************************************** 166// Function: i2cmdBaudDef(which, rate) 167// Parameters: ? 168// 169// Returns: Pointer to command structure 170// 171// Description: 172// 173// This routine sets the parameters of commands 54 or 55 (according to the 174// argument which), and returns a pointer to the appropriate structure. 175//****************************************************************************** 176static cmdSyntaxPtr 177i2cmdBaudDef(int which, unsigned short rate) 178{ 179 cmdSyntaxPtr pCM; 180 181 switch(which) 182 { 183 case 1: 184 pCM = (cmdSyntaxPtr) ct54; 185 break; 186 default: 187 case 2: 188 pCM = (cmdSyntaxPtr) ct55; 189 break; 190 } 191 pCM->cmd[1] = (unsigned char) rate; 192 pCM->cmd[2] = (unsigned char) (rate >> 8); 193 return pCM; 194} 195