------------------------------------------------ Guide for the Care and Feeding of IntelliFeatures On IntelliPort-II and other Computone products 8/29/94 ------------------------------------------------- Table Of Contents: Section 1 Introductory: 1-1 What are IntelliFeatures 1-2 Organization of files 1-3 What's in a profile: IntelliPrint, IntelliView, IntelliSet 1-5 Assigning existing profile Section 2 Creating New Profiles 2-1 Creating New Profiles 2-2 Specifying Character sequences 2-2 ASCII & notational conventions 2-4 Notational chart 2-7 Example: deriving a profile from information in a terminal manual (IntelliPrint) 2-8 Example continued: IntelliView 2-9 Things to watch out for using IntelliView 2-11 Figuring out function keys when you don't have the manual. Section 3 Summary of IntelliFeatures Keywords 3-1 Used by installation/administration 3-2 IntelliPrint 3-3 IntelliView 3-4 IntelliSet Section 4 Troubleshooting 4-1 IntelliPrint dysfunctional 4-5 IntelliView dysfunctional 4-7 My function keys don't work. 4-7 My screen switches but I'm still on ttys00 Section 5 IntelliFeatures on other Computone products 5-1 ALC (a somewhat old product) 5-2 IntelliPort/ATvantage (a very old product) 5-4 IntelliCluster (a really new product) *** Page 1-1 *** ------------------------- What are IntelliFeatures? ------------------------- IntelliFeatures include all Computone-specific features which we have added to our product beyond those supported by standard serial port drivers. On the IntelliPort-II, these include: IntelliView Running Multiple screens from a single port. IntelliPrint Printing through the terminal's AUX port IntelliSet Selecting special baud rates, flow-control, or other options not otherwise supported by UNIX/XENIX To implement these extensions in an orderly fashion, we allow you to create what we call "profiles". A profile is a collection of one or more IntelliFeatures specifications, together with a name and a description. Several commonly-used profiles are supplied with your driver, in a file called "intellicap". Once a profile has been defined, it can be assigned to one or more Computone ports, which will then have the features specified in that profile. This is somewhat analogous to the way some UNIX implementations store terminal characteristics in the /etc/termcap file, and apply them to specific ports through an /etc/ttytype file. In this way, we handle all Computone-specific extensions in an orderly, unified way. Many popular profiles are already defined in the intellicap file we supply with your drivers. You can, by running one of our configuration programs (e.g., for SCO UNIX, mkdev fip) assign existing profiles and use them without knowing what is in this document. The pages that follow explain how to create and assign new profiles, and how to troubleshoot the results. The body of this document assumes you are using the IntelliPort-II or IntelliPort-IIEX product. At the end, there is a section which summarizes the differences between the IntelliPort-II implementation, and that of the IntelliPort/ATvantage, ALC, and IntelliCluster. *** Page 1-2 *** --------------------- Organization of Files --------------------- The IntelliPort-II IntelliFeatures (IntelliPrint, IntelliSet, and IntelliView) are supported by three files, called intellitype intellicap icap.site The UNIX 3.2/XENIX drivers store these files in the /etc/default/fip.d directory, and the UNIX SVR4 (streams) drivers store them in /etc/default/ip2.d They are roughly analogous to the /etc/ttytype and /etc/termcap files; the intellicap and icap.site files connect a set of features with a profile name, and the intellitype file connects specific ports with specific profile names. The icap.site acts like a continuation of the intellicap file: If you want to modify an existing entry or add a new one, you may use either file; the only difference is that if you upgrade your driver to a newer version of the same driver, any existing icap.site file will NOT be replaced. (For this to be true, you must not remove the old drivers first; instead you must install the newer drivers over the old ones). Having said that, I would STILL plan on making a backup copy of the intellicap and/or icap.site files if I have done extensive editing. If the IntelliPort-II drivers were inadvertently removed, those files would be deleted. When the system is booted, our initialization utility fip_reinit (or ip2_reinit under SVR4) is run automatically to initialize the drivers with IntelliFeature information. If profile assignments are changed using our standard maintenance utility (mkdev fip - see below), the initialization utility is automatically rerun. *** Page 1-3 *** -------------------------- What's In a Profile? -------------------------- Each profile starts with a name, for example $wy60.samp: These names are arbitrary, except we insist they start with a '$' and are no more than 15 characters long. The colon indicates that this profile name introduces a new profile. Each profile also contains a description, and a help line, for example, desc="Wy60 terminal in native mode (2 screens)" help="Use the F11 key to toggle between screens" These are used by the mkdev fip (or ip2_sysadm, for SVR4 drivers) utility to describe the profile and provide optional information. These utilities also use a logins field, e.g., logins = 2 to determine how many logins there should be for a port that uses that profile. A profile may begin with a default to a previously-defined profile, e.g., $wy60.s1: # -- pretend a bunch of specifications are here $wy60.samp: = $wy60.s1 # Start with the wy60.s1 spec baud=76800! # but also lock the baud rate to 76800 Notice also that comments may appear anywhere, after a pound sign. You may add whitespace (tabs, spaces, blank lines) more or less at will (except in the middle of words, or within quotes, of course) to improve clarity. So baud = 76800! will do as well. You may also put multiple specs on a single line, e.g. baud=76800! parity=none! The remaining fields are specifications for IntelliView, IntelliPrint, or IntelliSet. A summary of the syntax and additional details are in the file, doc.intellcap, found in the same directory as your intellicap file. --------------------------------- IntelliPrint --------------------------------- This causes the IntelliPort-II driver to treat an AUX port on your terminal as a separate device. For example, while the terminal on port 0 might be called /dev/ttys00, the AUX port would be accessed as /dev/xlps00. This all depends on the terminal's supporting the means to reach the aux port through some escape sequence. The profile tells the driver how to switch between data intended for the screen and that intended for the printer. *** Page 1-4 *** --------------------------------- IntelliView --------------------------------- This causes the driver to treat the port as two or more virtual "screens". For example, the devices /dev/ttys01, /dev/ttyT01, /dev/ttyU01 all represent different screens on port 1. This depends on the terminal's supporting more than one page of screen display. The profile tells the driver how to switch between display pages on this terminal. It also indicates which function keys or key sequences the user will press in order to flip screens. Internally, IntelliView is implemented in a fairly simple fashion. The main screen (ttys00) starts as active. Any keyboard input is sent to the process using the active screen. Output for the active screen is sent, while any output for an inactive screen is held (blocked). When a hot-key is detected, the driver switches to a different active screen by (1) routing any further keystrokes to the process using the newly active screen, (2) sending an appropriate screen switch sequence to the terminal, (3) enabling output of data (including held data) from the process on the newly-active screen, and blocking further output from the process on the newly-INactive screen. --------------------------------- IntelliSet --------------------------------- These are used to specify physical options which are not otherwise supported by the operating system, or to lock in existing features, preventing their being changed. For example, most UNIX 's do not provide explicit support for 76800 baud, but if your profile contains the specification baud=76800! Then the rate will be 76800 regardless of later attempts by UNIX or an application to change it. The "!" is important. Without it, the rate will default to 76800, but it can be changed. Since most programs that open a serial port for the first time will make an attempt to set these parameters, you will usually want to use the "!" with IntelliSet parameters. *** Page 1-5 *** --------------------------- Assigning existing profiles --------------------------- If there is already an existing profile which has the characteristics you want, you may assign it to one or more ports using the mkdev fip (or ip2_sysadm for SVR4) utility. When you exit the utility (having saved changes), the update utilities are automatically run. The mkdev fip utility is currently divided into two sections. The first is responsible for assigning an IntelliFeatures profile to a port. The second section is used for assigning information which is used if the port will be supporting a login session. This includes such details as the number of logins to be enabled (none, all, or main), the port speed (as defined in the /etc/gettydefs file), the terminal type, and whether the port is a "modem" or "direct" device. There is sometimes confusion because in both sections you seem to be answering the question "what kind of terminal am I using?" In the first section, you are specifying a profile name, so the drivers will know what collection of IntelliFeatures to use. These features apply regardless of how the port is used. Some of the profiles which are specific to certain types of terminals have a terminal name as part of the profile name, but it is the contents of the profile, not the name, that really matters. Information in the second section only applies to ports supporting login processes (getty, ttymon). There is nothing Computone-specific here. We just take the information and put it in standard places where the UNIX/XENIX utilities can find it. You are again asked for something that looks like a terminal type, but this information is used by applications so that they will know how to do cursor addressing and other terminal-dependent cosmetic features. So it is very possible that you might use a profile $dumb in the first section, but use a terminal type wy60ak in the second section. The two are completely unrelated. *** Page 2-1 *** -------------------------- Creating New Profiles -------------------------- To create new profiles, or to modify existing ones, you will need to use vi or some other ascii text editor. The standard visual editor, vi, is available on virtually all UNIX/XENIX systems, and is documented there. The easiest way to create a new profile is to begin with one that is already close. For example, suppose the intellicap file contained the following profile: $b76800: baud=76800! # no features other than forcing the rate desc="Lock terminal to 76800" help="No other features" logins=1 # so there will be a login prompt If you wanted to add a profile which would force the port to 7 bits even parity, you might add the following to the icap.site file, using the example I showed as a model. $fred: baud=76800! # no features other than forcing the rate size=7! parity=even! desc="Lock terminal to 76800/7E" help="No other features" logins=1 # so there will be a login prompt Alternatively, you could have written $fred: =$b76800 desc="Lock terminal to 76800/7E" size=7! parity=even! even though the original would be in the intellicap file, and this entry would be going into the icap.site file. I used the profile name "$fred" so it would be unlikely to conflict with any Computone-created profile. You cannot set a profile equal to one that hasn't been defined yet. Since the intellicap file is always scanned before icap.site, the above example would work. But you could not do this: $nostradamus: # start bad example =$lincoln # <---- :-( noflush=y! # ... and further down... $lincoln: baud=4800 # end bad example Once you have added the profile, you would run mkdev fip or ip2_sysadm to assign the profile (which will now be one of your choices) to whatever port or ports you wish. *** Page 2-2 *** ---------------------------------------- Specifying character sequences ---------------------------------------- Many IntelliFeatures specifications involve defining character-sequences for special terminal functions such as page selection and beginning transparent printing. You must also sometimes define incoming key-sequences which represent function keys or key-combinations. There is a special notation used for this, which I will describe in great detail, because it is an area which sometimes causes problems for the novice. The ASCII standard: Every byte that travels between the terminal and the computer is, after all, just a number. Since there are at most 8 data bits used, the possible range is from 0 - 255. Seven-bit characters are commonly used, in which case the possible range is 0 - 127. A standard called "ASCII" assigns meaning to these numbers. Values between 32 and 126 represent letters, numbers, and punctuation, in other words, printable characters. Values 0-31 and 127 are "control" codes; they cause a device to take some action, like tabbing, or advancing a new line or new page. The following ASCII chart gives the standard meanings for 0 through 127. 0 nul | 1 soh | 2 stx | 3 etx | 4 eot | 5 enq | 6 ack | 7 bel 8 bs | 9 ht | 10 nl | 11 vt | 12 np | 13 cr | 14 so | 15 si 16 dle | 17 dc1 | 18 dc2 | 19 dc3 | 20 dc4 | 21 nak | 22 syn | 23 etb 24 can | 25 em | 26 sub | 27 esc | 28 fs | 29 gs | 30 rs | 31 us 32 sp | 33 ! | 34 " | 35 # | 36 $ | 37 % | 38 & | 39 ' 40 ( | 41 ) | 42 * | 43 + | 44 , | 45 - | 46 . | 47 / 48 0 | 49 1 | 50 2 | 51 3 | 52 4 | 53 5 | 54 6 | 55 7 56 8 | 57 9 | 58 : | 59 ; | 60 < | 61 = | 62 > | 63 ? 64 @ | 65 A | 66 B | 67 C | 68 D | 69 E | 70 F | 71 G 72 H | 73 I | 74 J | 75 K | 76 L | 77 M | 78 N | 79 O 80 P | 81 Q | 82 R | 83 S | 84 T | 85 U | 86 V | 87 W 88 X | 89 Y | 90 Z | 91 [ | 92 \ | 93 ] | 94 ^ | 95 _ 96 ` | 97 a | 98 b | 99 c | 100 d | 101 e | 102 f | 103 g 104 h | 105 i | 106 j | 107 k | 108 l | 109 m | 110 n | 111 o 112 p | 113 q | 114 r | 115 s | 116 t | 117 u | 118 v | 119 w 120 x | 121 y | 122 z | 123 { | 124 | | 125 } | 126 ~ | 127 del Note that I have broken the table into four sections. On most keyboards, holding down the key and pressing a key from group 3 will cause the corresponding code from group 1 to be sent. For example, pressing S causes the value 19 (ASCII 'dc3') to be sent. M sends value 13 (carriage return). Original ASCII did not define meanings for 128-255, but they are now frequently used by devices when they are in 8-bit mode; sometimes sent by function keys, sometimes representing non-english printable characters. *** Page 2-3 *** When you enter a character-sequence into a profile, you can enter it as either: A list of numerical values, separated by commas or A character string, surrounded by single quotes or A combination of the two notations. Numerical Values: When listing the numerical values, you may use either decimal, octal, or hexadecimal notation. The form of the number indicates the base: Decimal: Number without any leading 0 Octal (base 8): Number with a leading 0 Hex (base 16): Number with a leading 0x Octal and Hex notation are frequently used in computer contexts because they make the underlying binary representation more apparent. In octal, there are three bits per "digit", so valid "digits" are 0 through 7. After that you go to the next place, counting in ones, eights, sixty-fours, and so on, rather than by ones, tens, hundreds... In hex, there are four bits per "digit", so there are 16 "digits", 0-9 and then we kidnap the letters a-f for the remaining 6, since we did not have the foresight or the fingers to invent enough numerals. Individual values are separated by commas, and spaces may be added between values. Codes listed in your terminal manual will often be listed in hexadecimal. Character Strings: When listing characters or character strings, everything within the quotes is significant. Most printable characters are represented just by typing them. Control characters may be represented within a character string in one of two ways: The ^ sign is used to represent . For example, the character string '^M' represts a single value, 13 (decimal) (see the ascii chart above). For that reason, the symbol ^ cannot be used alone to represent itself. The backslash (\) followed by a three-digit number represents that single octal value. The number needs to be padded to three octal digits, but need not begin with 0. A backslash followed by certain other symbols represents other commonly used control characters, as shown in the complete chart below. Note that the sequence '\\' represents a single backslash, and a '\^' represents a single caret. The table on the next few pages shows all the ways that each single numerical value can be represented. If you don't understand the explanation so far, study the table and try to see the pattern. *** Page 2-4 *** For perspective, here is a table of all possible values in each notation. Decimal Octal Hex Character Backslash ----------------------------------------------------------------- 0 0 0x0 '^@' '\000' 1 01 0x1 '^A' '\001' 2 02 0x2 '^B' '\002' 3 03 0x3 '^C' '\003' 4 04 0x4 '^D' '\004' 5 05 0x5 '^E' '\005' 6 06 0x6 '^F' '\006' 7 07 0x7 '^G' '\007' 8 010 0x8 '^H' '\010' or '\b' 9 011 0x9 '^I' '\011' or '\t' 10 012 0xa '^J' '\012' or '\n' 11 013 0xb '^K' '\013' or '\v' 12 014 0xc '^L' '\014' or '\f' 13 015 0xd '^M' '\015' or '\r' 14 016 0xe '^N' '\016' 15 017 0xf '^O' '\017' 16 020 0x10 '^P' '\020' 17 021 0x11 '^Q' '\021' 18 022 0x12 '^R' '\022' 19 023 0x13 '^S' '\023' 20 024 0x14 '^T' '\024' 21 025 0x15 '^U' '\025' 22 026 0x16 '^V' '\026' 23 027 0x17 '^W' '\027' 24 030 0x18 '^X' '\030' 25 031 0x19 '^Y' '\031' 26 032 0x1a '^Z' '\032' 27 033 0x1b '^[' '\033' or '\E' 28 034 0x1c '\034' 29 035 0x1d '^]' '\035' 30 036 0x1e '^^' '\036' 31 037 0x1f '\037' 32 040 0x20 ' ' '\040' 33 041 0x21 '!' '\041' 34 042 0x22 '\042' 35 043 0x23 '#' '\043' 36 044 0x24 '$' '\044' 37 045 0x25 '%' '\045' 38 046 0x26 '&' '\046' 39 047 0x27 '\047' 40 050 0x28 '(' '\050' 41 051 0x29 ')' '\051' 42 052 0x2a '*' '\052' 43 053 0x2b '+' '\053' 44 054 0x2c ',' '\054' 45 055 0x2d '-' '\055' 46 056 0x2e '.' '\056' 47 057 0x2f '/' '\057' *** Page 2-5 *** Decimal Octal Hex Character Backslash ----------------------------------------------------------------- 48 060 0x30 '0' '\060' 49 061 0x31 '1' '\061' 50 062 0x32 '2' '\062' 51 063 0x33 '3' '\063' 52 064 0x34 '4' '\064' 53 065 0x35 '5' '\065' 54 066 0x36 '6' '\066' 55 067 0x37 '7' '\067' 56 070 0x38 '8' '\070' 57 071 0x39 '9' '\071' 58 072 0x3a ':' '\072' 59 073 0x3b ';' '\073' 60 074 0x3c '<' '\074' 61 075 0x3d '=' '\075' 62 076 0x3e '>' '\076' 63 077 0x3f '?' '\077' 64 0100 0x40 '@' '\100' 65 0101 0x41 'A' '\101' 66 0102 0x42 'B' '\102' 67 0103 0x43 'C' '\103' 68 0104 0x44 'D' '\104' 69 0105 0x45 'E' '\105' 70 0106 0x46 'F' '\106' 71 0107 0x47 'G' '\107' 72 0110 0x48 'H' '\110' 73 0111 0x49 'I' '\111' 74 0112 0x4a 'J' '\112' 75 0113 0x4b 'K' '\113' 76 0114 0x4c 'L' '\114' 77 0115 0x4d 'M' '\115' 78 0116 0x4e 'N' '\116' 79 0117 0x4f 'O' '\117' 80 0120 0x50 'P' '\120' 81 0121 0x51 'Q' '\121' 82 0122 0x52 'R' '\122' 83 0123 0x53 'S' '\123' 84 0124 0x54 'T' '\124' 85 0125 0x55 'U' '\125' 86 0126 0x56 'V' '\126' 87 0127 0x57 'W' '\127' 88 0130 0x58 'X' '\130' 89 0131 0x59 'Y' '\131' 90 0132 0x5a 'Z' '\132' 91 0133 0x5b '[' '\133' 92 0134 0x5c '\\' '\134' or '\\' 93 0135 0x5d ']' '\135' 94 0136 0x5e '\^' '\136' or '\^' 95 0137 0x5f '_' '\137' *** Page 2-6 *** Decimal Octal Hex Character Backslash ----------------------------------------------------------------- 96 0140 0x60 '`' '\140' 97 0141 0x61 'a' '\141' 98 0142 0x62 'b' '\142' 99 0143 0x63 'c' '\143' 100 0144 0x64 'd' '\144' 101 0145 0x65 'e' '\145' 102 0146 0x66 'f' '\146' 103 0147 0x67 'g' '\147' 104 0150 0x68 'h' '\150' 105 0151 0x69 'i' '\151' 106 0152 0x6a 'j' '\152' 107 0153 0x6b 'k' '\153' 108 0154 0x6c 'l' '\154' 109 0155 0x6d 'm' '\155' 110 0156 0x6e 'n' '\156' 111 0157 0x6f 'o' '\157' 112 0160 0x70 'p' '\160' 113 0161 0x71 'q' '\161' 114 0162 0x72 'r' '\162' 115 0163 0x73 's' '\163' 116 0164 0x74 't' '\164' 117 0165 0x75 'u' '\165' 118 0166 0x76 'v' '\166' 119 0167 0x77 'w' '\167' 120 0170 0x78 'x' '\170' 121 0171 0x79 'y' '\171' 122 0172 0x7a 'z' '\172' 123 0173 0x7b '{' '\173' 124 0174 0x7c '|' '\174' 125 0175 0x7d '}' '\175' 126 0176 0x7e '~' '\176' 127 0177 0x7f '\177' 128 0200 0x80 '\200' 129 0201 0x81 '\201' ... and so on for codes up to 255 0377 0xff '\377' ----------------- Example ----------------- Each line below represents the SAME thing. Study until you see why. screen1 = 0x1b, 0x31, 0x3b, 0x30, 0x7d # separate values (in hex)... screen1 = 27, 49, 59, 48, 125 # ...or decimal... screen1 = '^[', '1', ';', '0', '}' # ...or as characters screen1 = '^[1;0}' # smooshed together screen1 = '\E1;0}' # (esc) represented differently.. screen1 = '\0331;0}' # ... and yet differently While this flexibility may cause some confusion at first, it allows you to define the sequences using the notation that mostly closely matches your terminal's documentation. *** Page 2-7 *** ------------------------------------------------ Deriving a profile from a manual: IntelliPrint ------------------------------------------------ Suppose there were no profiles for Wy60. I have here a WY60 manual. Assume I am using it in Native mode. I want to do IntelliPrint. Print functions are listed on page E-13, where is lists sequences for 'Auxiliary print on/off', 'Transparent print on/off', and so on. Either from previous experience or by trial and error, I learn that the Auxiliary print on/off sequences cause data to printed to the printer AND the screen, so it's the "transparent" ones I want. The book says Transparent print mode off CTRL T Transparent print mode on ESC d # or CTRL X (with enhance mode off) Well, I expect enhance mode will be on, so I'll plan to use the first of the two sequences. So, I would enter into my profile printoff = '^T' # Literally what the manual said: "CTRL T" printon = '^[d#' # Remembering that ASCII escape is 0x1b, a.k.a # 27 (decimal), a.k.a. "Control Left-Bracket" If you look at your intellicap file, you will see that the entries we supply look different: we say printoff = 0x14 printon = 0x1b, 0x64, 0x23 But these represent exactly the same thing, since 0x14 is just the numerical value (in base 16) that is sent by an ASCII T. You can use the big table above to verify that the other values would be equivalent as well. Also, I need to fill in the startdelay and pause options. The startdelay parameters specifies how many tenths of seconds must elapse between the writing of screen data, and when print data is allowed to print. Use larger values to prevent print data from interfering with display data. Larger values will also tend to slow the printing. The pause parameter generally determines how quickly the print can occur, with larger values slowing the printing. The optimum settings will depend on your printer; select values that are just large enough to slow the printer slightly, and then the printer will be less likely to go into flow control. (If the printer flow-controls the terminal, soon the terminal will flow-control the port.) Typical values are startdelay = 5 pause = 10. *** Page 2-8 *** ------------------------------------------------ Deriving a profile from a manual: IntelliView ------------------------------------------------ Turning my Wy60 manual to page E-7, I read Display page 0 ESC w 0 Display page 1 ESC w 1 Display page 2 ESC w 2 (if economy 80-column mode is set) Display page 3 ESC w 3 (if in WY50 mode...) Well, I'm NOT in WY50 mode, nor am I figuring on being in econ-80 mode, so I expect I have 2 pages I can use. So I can specify as follows: screen1 = '^[w0' screen2 = '^[w1' Just like the book says. So now the driver knows what to send to the terminal when it wants to switch screens. But how shall the driver know when we want to switch? We need to define one or more "hot key" sequences which will correspond to function keys or sequences of ordinary keys. The driver will look for any sequences we define. If found, the driver strips the sequence from the incoming data stream and takes the appropriate action. There are two types of sequences you can define. The first tells the driver that you want to go to a specific screen and is called goto1, goto2, and so on. The second tells the driver that you want to go to the "next" screen and so is called "nextscreen". Suppose your applications don't use the F11 key, and you want to use that key to toggle between your two screens. What byte sequence is sent by the F11 key? Well, these are actually programmable, but their default values are given on page B-12. It says [F11] CTRL A J CR Translated from Wyse-ese, this means "Control-A, Jay, Return", or nextscreen='^AJ^M' # since ^M is an ascii CR or you might have said, nextscreen=1,'J','\r' If you would want shift F8 to switch you to screen 1, and shift F9 to switch you to screen 2, you would specify (looking at page B-12), goto1 = '^Ag^M' goto2 = '^Ah^M' If a 'nextscreen' is given, the 'goto's are not required. Often, your applications already make use of almost every function key combination, so it is often desirable to use only the nextscreen key to reduce the number of keys we tie up. *** Page 2-9 *** ------------------------------------------------ Things to watch out for using IntelliView ------------------------------------------------ (1) Don't use a function key that your application needs. If you do, the driver will detect the function key first and perform the screen-switch, instead of passing the sequence up to the application. If you need to temporarily disable IntelliView hot-key scanning, you may use our utility fip_hot (or ip2_hot for the SVR4 drivers). (2) Don't use part of a function key that your application needs. Suppose you had run out of Function keys and decided you wanted to use, say, a single control key as the nextscreen. Suppose also that an overview of your applications reveals that NONE of them ever asks the user to hit A for anything. So you say nextscreen = '^A' # ??????????????????? Then you learn, to your alarm, that none of your function keys work in your applications! Why? Because the function keys all start with '^A'. When the driver sees the ^A, it strips it out of the stream and flips screens. Then the remaining characters are sent to the process on the other screen... (3) Beware of applications which re-program the function keys. Some terminals allow their special keys to be reprogrammed automatically from the host. If this happens, your function keys will no be sending the expected sequences, and so they will not be detected by the IntelliView hot-key scan. If your application "sees" a function key that you had specified as an IntelliView screen switch key, either you specified the incorrect sequence for that key, or the application has re-programmed it. (4) Beware of applications which put the terminal into PC scancode mode. This is a special case of #3 above. When a terminal is in scancode mode, NONE of the keys send their normal ASCII values, a fortiori the function keys. This dilemma is well documented and not specific to our implementation. For example, several SCO applications which would otherwise use a terminal in scancode mode are designed to NOT do so if the port is using "mscreens" (SCO's multi-screen-on-serial-ports feature). This is also done because most terminals will not "remember" if one screen was in scancode mode and the other was not. Switching screens does not also switch modes. *** Page 2-10 *** (5) Do Specify a timeout value if your application might use a key that is the start of your hot key sequence. Suppose you have chosen F11 as the "nextscreen" key. It sends ^AJ^M, really fast. Now what if you had an application that used ^A (i.e., A, typed alone on the keyboard) to mean something. Ordinarily, as soon as the driver saw the ^A, he would say, "Well, I'd better hang on to this character and see what's next, because it might be the beginning of a hot-key sequence. Well, if the next character turns out to be, say, 'W', he says, "No luck, I'll just pass on the ^A now as well as the W", and he waits for the next possible sequence. If you were to type a plain ^A from the keyboard, you might expect something should happen right then. The trick is to specify how long the driver should wait for a sequence to become complete before giving up on it. To wait for a maximum of 1/10 second, specify timeout = 1 Sometimes, you DO want to wait a long time: for example, if you have used up all your function keys and decide you want to use a special combination of regular keys. For example, perhaps you want to "hold down CTRL, hit B, release CTRL, hit 1" to toggle between screens. Then you want to say nextscreen='^B1' But unless you can type very quickly, you might want to say timeout = 20 Which gives you up to 2 seconds to complete the sequence before the driver mindlessly passes on the ^B out of frustration... (6) Don't use IntelliView if you are connected to a terminal emulator that will be uploading files or using binary file transfer protocols. Or if you do, be sure to disable hot-key scanning using fip_hot or similar, before you begin file transfers. After all, that binary file you are transferring is very apt to contain a sequence that matches one or more of your profile's screen-switch sequences. And you don't want it flipping back and forth while you're trying to get something done. *** Page 2-11 *** -------------------------------------------------------------- What if you just want to change the function key selection and you don't have a manual -------------------------------------------------------------- The problem is, you have to find out exactly what gets sent when such-and-such a key is hit on the terminal, so you can enter the value into your profile. XENIX and most of the UNIXes we support, have a command called hd. This is normally used for examining the contents of files. If you do not have it, you may also try the command od -x . You can use such a command to determine what your terminal is sending. (1) Assign your terminal to an IntelliFeatures profile that does not use Intelliview. Then we will not interfere with the incoming data stream. (2) Turn off any incoming mapchan options. (If you're using them, you'll know it, and you'll know how to turn them off). (3) Log your terminal in as root, or whatever it takes to be at a non-visual shell (Bourne, preferably). (4) After completely logging in and you are at the #, type stty -icrnl J This removes the CR -> LF conversion which normally occurs on input, allowing hd to report the correct characters. For the time being, you will need to hit J instead of Enter or Return at the end of each command. (5) Now type hd J The screen will move to the next line, but you do not get your prompt back. hd is waiting for you to type data. As an experiment, hit a b c J D The abc will echo, and when you hit D, you will see the following display (or similar): 0000 61 62 63 0a abc. *** Page 2-12 *** The 61 62 63 0a are the numerical values, in hex (base 16), of the keys a, b, c, and J. Now that you see how to interpret what you can expect, you can try something more interesting. Hit a b c [MYSTERY KEY] a b c J D In this case, suppose it returns 61 62 63 1b 5b 31 37 7e 61 62 63 0a Well, we know that the abc keys at the beginning and the end are represented by 61 62 63 and 61 62 63 0a. So strip them out and what you get is 1b 5b 31 37 7e which is what the mystery key must have sent. When you edit your profile, you would translate that to, say, nextscreen=0x1b, 0c5b, 0x31, 0x37, 0x7e (6) When your investigations are complete, type J D D to flush out the last buffer. (7) Finally, restore normal operation by typing stty icrnl J This method will generally cough up the sequences used by most terminals. An exception would be in case the terminal used a special "signal" character as part of its sequence. For example, if the key sent a D, it would have been stripped (notice you didn't see any of them?) Other examples might include C or the DEL key, frequently used as "Interrupt" keys in canonical mode. Because such characters often have such special significance, they are seldom used as part of function-key sequences. INTERESTING FACT: Using this method, I learned something that is not easy to find from the WYSE-60 manual. Namely, I learned what the F1, F2 keys send when the terminal is in native mode. It the terminal is configured for 8-bit characters, the function keys send the codes 0x80, 0x81, 0x82, and so on. Supposing you wanted to use F12 as the nextscreen, then you would code it as nextscreen = '\213' #F12 or nextscreen = 0x8b Depending on the terminal, using hd to determine key-sequences is often faster then trying to decipher the manual. *** Page 3-1 *** ------------------------------------------------------- Summary of IntelliFeatures Keywords and their meanings. ------------------------------------------------------- Several of the IntelliFeatures keywords have synonyms. Some are listed here; a more complete list is in doc.intellicap. A common synonym is that any keyword which expects a true/false answer can take 'true', 'yes' as synonyms of 'y', or 'false', 'no', as synonyms of 'n'. Values shown with '!' indicate that the parameter is to be "locked in". Otherwise, without the '!', it is set as a default only. ------------------------- USED BY INSTALLATION MENU: ------------------------- desc. = (Profile Description) quoted string up to 56 characters help = (Profile Help-Notes) quoted string up to 126 characters logins = (Number of logins to create) Numeric value from 0 to 8 Profiles intended for printers and such will have logins=0 or the parameter will be omitted. *** Page 3-2 *** ------------------------ INTELLIPRINT PARAMETERS: ------------------------ startdelay = (Delay N/10 seconds before printing) Numeric value from 1 to 100 For example, when the driver sees data being sent to /dev/ttys05 (i.e., to display) it will wait this long before it sends data to /dev/xlps05 (to the aux port, to print). The purpose is to prevent data for the printer from interrupting an multi-charcter control sequence sent to the display. pause = (Delay N/10 seconds between print requests) Numeric value from 1 to 50 When the driver sees data being sent to /dev/xpls05 (the printer on the AUX port), it will wait this long before sending any more data to the same place. The purpose is to slow down the sending of data for printing, to prevent the terminal from going into flow control. **bug: in the UNIX drivers 1.3.2 (non-streams) there is a bug in which the value you specify for startdelay is used also for the pause value, and the pause value you specify is ignored. (saying startdelay=4 pause=2 would be taken to mean startdelay=4 pause=4). This will be fixes in future versions of the driver. The SVR4 drivers work properly. printon = (Sequence to start transparent print) sequence of up to 15 characters When sent, the terminal should re-direct all further output to its AUX port. Many terminals describe this as a "transparent" or "pass-through" print feature. printoff = (Sequence to end transparent print) sequence of up to 15 characters When sent, the terminal stops re-directing output to the AUX port, and resumes display. paddcr = (Printer to map NL->CRNL?) y / n If set to y, driver will add cr before nl on data going to the AUX port. ptab = (Printer to expand tabs?) y / n If set to n, driver will expand tab on data going to the AUX port. *** Page 3-3 *** ---------------------- INTELLIVIEW PARAMETERS: ---------------------- nextscreen = (Incoming hot-key sequence to select 'next' screen) sequence of up to 7 characters When the driver sees this sequence coming in, it switches to the next IntelliView screen. goto1 = (Incoming hot-key sequence to select screen 1) sequence of up to 7 characters When the driver sees this sequence coming in from the keyboard, it will switch to the first IntelliView screen. goto2...goto7 sequence of up to 7 characters Causes driver to switch to screen 2...7 screen1 = (Sequence to select screen 1) sequence of up to 15 characters (Some earlier driver versions allowed fewer). The driver will send this to the terminal when it wants to switch to screen 1. Screen 1 on port 0 would be called /dev/ttys00. screen2 ... screen 7 sequence of up to 15 characters What the driver must send to switch to screens 2, 3, 4, ...7 (assuming that the terminal has that many pages of screen memory). [Note that hot-key scanning is only enabled when (1) an IntelliView profile with IntelliView is assigned, and (2) at least two virtual devices on the same port are open. For example, if there were logins enabled on /dev/ttys00 and /dev/ttyT00, both devices would be open. If only /dev/ttys00 were enabled and none of /dev/ttyT00 (and so on) were open, hot-key scanning would be disabled. Scanning can be temporarily disabled using the fip_hot (ip2_hot for SVR4) utility.] timeout = (Time-out value for key sequences) Numeric value from 0 to 255 If the hot-key sequence is not complete within this many tenth's of seconds, abort the scan and send along the incomplete sequence. 0 = don't time out, wait forever. *** Page 3-4 *** --------------------- INTELLISET PARAMETERS: --------------------- baud = (Transmit/Receive Baud Rate) One of the following keywords: 50! 75! 110! 134! 134.5! 150! 200! 300! 600! 1200! 1800! 2000! 2400! 3600! 4800! 7200! 9600! 19200! 38400! 56000! 57600! 64000! 76800! 115200! custom1! custom2! If custom1! or custom2! are chosen, the rates specified by custom1= and custom2= (see below) are used. inbaud = (Receive Baud Rate) One of the following keywords: 50! 75! 110! 134! 134.5! 150! 200! 300! 600! 1200! 1800! 2000! 2400! 3600! 4800! 7200! 9600! 19200! 38400! 56000! 57600! 64000! 76800! 115200! custom1! custom2! Using inbaud and outbaud allows you to transmit at different rates. outbaud = (Transmit Baud Rate) One of the following keywords: 50! 75! 110! 134! 134.5! 150! 200! 300! 600! 1200! 1800! 2000! 2400! 3600! 4800! 7200! 9600! 19200! 38400! 56000! 57600! 64000! 76800! 115200! custom1! custom2! stop = (Stop Bits) One of the following keywords: 1! 1.5! 2! parity = (Parity) One of the following keywords: none! mark! space! odd! even! "mark" parity sets the parity bit to 1 unconditionally, "space" parity to a 0. with "none", no parity bit is sent. size = (Character Size) One of the following keywords: 5! 6! 7! 8! inflow = (Input flow control) One or more of the following keywords: none! No action. Does NOT prevent flow control. It's the same as not using "inflow" xon! Send an xoff when buffers are nearly full, send an xon when they are nearly empty again. dtr! Raise DTR when input buffers are available (lower when nearly full) rts! Raise RTS when input buffers are available (lower when nearly full) When multiple keywords are combined, all actions are taken. *** Page 3-5 *** outflow = (Output flow control) One or more of the following keywords: none! No action Does NOT prevent flow control. xon! Stop transmitting when xoff is received, resume when an xon is received. (like UNIX ixon -ixany) xany! Stop transmitting when xoff is received, resume when any character is received (like UNIX ixany) cts! Don't send unless cts is asserted. dcd! Don't send unless dcd is asserted. dsr! Don't send unless dsr is asserted. If multiple keywords are combined, transmission will not take place unless all conditions are ripe. On IntelliPort-II Expandable with DB25, DSR comes in on pin 11. Otherwise, DSR shadows the DCD signal. local = (Ignore DCD change?) y! / n! Setting to y! is equivalent to forcing UNIX CLOCAL flag set. Setting to n! has no effect. hduplex = (Half-Duplex) y! / n! Setting to y! causes RTS to be asserted whenever there is data in the UART's transmit buffers. n! has no effect. dsrreq = (Need DSR for Receive?) y! / n! Setting to y! causes incoming data to be ignored unless DSR is asserted. n! has no effect. ixon = (Custom incoming xon) Numeric value from 0 to 255 Value scanned for, to turn enable transmission, if we are using xon/xoff output flow control. ixoff = (Custom incoming xoff) Numeric value from 0 to 255 Value scanned for, to turn disable transmission. oxon = (Custom outgoing xon) Numeric value from 0 to 255 If we are using xon/xoff input flow control, what character do we send to disable the sender from transmitting... oxoff = (Custom outgoing xoff) Numeric value from 0 to 255 ...And what character to re-enable him? onlcr = (Map NL->CRNL?) y! /n! Like forcing OPOST and ONLCR: Outgoing newlines mapped to CR-NL pairs. Popular with printers. *** Page 3-6 *** tab = (Expand tabs?) y! / n! Like forcing OPOST and TAB3: Outgoing tabs expanded to spaces. noflush = (Inhibit flush on close?) y! / n! Normally, XENIX/UNIX 3.2 will cause output to be flushed when the port is closed. If set to y!, such data will not be flushed. Most profiles intended for printers have this set. This allows you to perform commands such as cat myfile >/dev/ttyi00 without being concerned about loss of data. Otherwise, when cat terminates, any data that has not yet been sent to the printer could be lost. This has no effect on SVR4 drivers, which normally do not flush output data when the port is closed. osproc = (Always use o/s line disciplines?) y! / n! Normally, the drivers will ask the board to perform any output post-processing. If set to y!, the drivers will allow all such processing to be done using the OS's line discipline. While generally it requires more Host CPU if it were to do the processing, this may depend on your application and system, so you are given the flexibility to optimize. custom1 = (Custom Baud Rate 1) Numeric value from 48 to 115200 (Some versions may allow higher rates than 115200) custom2 = (Custom Baud Rate 2) Numeric value from 48 to 115200 (Some versions may allow higher rates than 115200) For example, if you needed to connect to a bizarre device running at exactly 30,000 baud, you would need to specify in your profile: custom1=30000 baud=custom1 There are two custom rates per port, in case you need to use a different rate for transmit and receive. *** Page 4-1 *** ---------------------------------------------------------------------- Troubleshooting Tip: I have a Wyse 60 on port 4 of an IntelliPort-II, with a serial printer attached. My IntelliPrint doesn't work. ---------------------------------------------------------------------- (1) Narrow it down: Either you are (a) getting no printed output, (b) getting garbled printed output or (c) output to the screen that should be going to the printer, or vice-versa. Either this is (a) a persistent problem, or (b) an intermittant one. (2) Make sure the terminal itself works: In order to print properly to the AUX port, the terminal device (/dev/ttys04) needs to be enabled. Otherwise, the line-speed, character size, and other parameters are not guaranteed to be initialized. Make sure you are getting a login on your terminal, and that you can log in, and run pretty much as expected, before you concentrate on the printer. If you are not getting a login, make sure the port is enabled, and make sure the terminal is cabled properly. Consult the product-specific manuals for more information about this area. (3) Simplify: Assuming your terminal is on /dev/ttys04, your printer device is /dev/xlps04. Rule out everything concerned with your application setup or print-spooler administration, by simply trying to echo something to the printer, e.g. (log in as root, and from the # sign type:) date > /dev/xlps04 (or something similar) If the date appears on the terminal instead of the printer, there is a problem with the IntelliPrint configuration vs. your terminal. If the date appears on the printer, good. If the date appears nowhere, the terminal-printer link is suspect. (4) Rechecking the terminal-printer link: Many terminals can do local screen-dumps to the AUX port. For example, on the Wyse 60 you would hit the "print" or "print screen" key. If local screen dumps work correctly, the cabling is probably mostly ok. If not, you have some work to do. *** Page 4-2 *** You will need to consult the manuals for the terminal and printer, and compare the terminal's AUX port pinout with the printer's serial port pinout. (Assuming your terminal as a serial AUX port. Some support parallel ports, in which case your printer would be a parallel printer, and setup is much easier, so we will ignore that case). Make sure you have signal ground connected, and that the pin for transmitting FROM the AUX port is connected to the pin for receiving incoming data on the printer. If you are using XON/XOFF flow control, make sure that data FROM the printer is also wired to incoming data on the AUX port. If you are using "hardware" flow control, one of the printer's data set signals, often DTR but sometimes a different pin, must be wired to whatever pin on the AUX port is used for flow control (usually CTS). Furthermore, if the printer's documentation says that any other signals on the printer side must be supplied, you must do the appropriate thing. Double check the printer's configuration as well as the AUX port's. Make sure that the baud rates, character size, parity, and flow-control options match. For example, if the printer were configured for DTR flow control, and the cable connected the printer's DTR to the AUX port's CTS, you would want the AUX port to be configured for CTS flow control. (5) Rechecking the IntelliPrint plumbing. Make sure you have selected a profile that supports IntelliPrint. Make sure the printon and printoff sequences are appropriate for your terminal. If you attempt to use, say, /dev/xlps04, and the IntelliFeatures profile assigned to that port does not support IntelliPrint, the drivers will fail the "open" system call with an error (ENODEV). If you are trying to redirect the date to that port as in the above example, the command will fail with a message similar to "cannot create". If the profile contains printon and printoff definitions that are incorrect for your terminal, then the "print" data may appear on the terminal screen instead of being sent to the printer. *** Page 4-3 *** To verify that the printon and printoff strings are being sent properly by the driver, you can use the following trick: By editing the intellicap file, change the sequences to ordinary printable messages, like printon = 'SP:\r\n' printoff = 'EP:\r\n' After running mkdev fip to assign the modified profile to the port, and redirect the date again. On the terminal screen, you should see something like SP: Tue Aug 2 11:02:50 EDT 1994 EP: This shows the our driver is sending what you are telling him to. (6) Rechecking flow control: If short things seem to print fine but you seem to lose data when printing longer things, it is a sign that the flow control is not configured properly. There are actually two links to consider: between the printer and the AUX port, and between the terminal and the IntelliPort-II. If, when data is lost, "print" data never appears on the terminal screen, it suggests that the problem is between the AUX port and the printer. Recheck the configuration. If print data sometimes appears on the screen, then the flow control problem is probably between the IntelliPort-II and the terminal. Frequently, ports are configured to use IXANY protocol, which means that when transmission has been stopped because of an incoming xoff (a.k.a. ctrl-S) then ANY key will cause transmission to resume. That is a good option if you aren't really in flow control but want to use the ctrl-S key to pause output. If you are really in flow control, you don't want the operator's typing ahead to cause output to resume, and with IXANY set, that will happen. On XENIX and UNIX 3.2 systems, you can eliminate the problem by replacing IXANY with IXON in the /etc/gettydefs file, for the entries you are using on such ports. Or copy an existing entry and change its name to make a new one. *** Page 4-4 *** There are also some applications which will turn xon/xoff flow control on and off as they are running. If you are trying to use xon/xoff flow control on the terminal, and are trying to print while using one of these applications, you are apt to lose data. To validate whether this may be happening, log on to the console as root, and while the application is running on the terminal (say ttys04) type stty -a " and "To2:" will be sent instead of the terminal-specific page-selection commands. Suppose now that you have entered the correct codes. Then, if you log into the first screen and display a directory listing, then flip to the second screen and display a different listing, you should be able to flip back to the first screen and see the original listing. (8) If screens are not flipping properly, either (a) The wrong screen1= , screen2= sequences were entered for your terminal. Re-check the terminal's documentation. (b) You are running the terminal in a mode which does not support multiple screens. For example, a WY60 running in native mode using ECON-80, supports three pages. Running in reqgular 80-column mode, it only supports two pages, and in 132-column mode only a single page. (9) Sometimes UNIX/XENIX is configured to send a "terminal initialization string" to the terminal at login time. Under UNIX3.2, this is controlled by options to the tset command generally included in the user's .profile file, as well as the choice of termcap/terminfo entry chosen. Often, this initialization string contains a command to clear all pages of terminal memory. If that is the case, you can be running an application on the main screen, flip to an alternate, log in, flip back to the main screen, and whoomp! there it ain't. The fix is either to add the -I option to the tset command in the .profile, or to remove the offending initialization code from the termcap/terminfo description. (Consult UNIX/XENIX manpages for details how to do the latter). *** Page 4-7 *** ---------------------------------------------------------------------- Troubleshooting Tip: My function keys don't work in my application. ---------------------------------------------------------------------- The first thing to eliminate is a conflict between IntelliView function keys and the requirements of your application. This is easy to rule out. Simply use mkdev fip to select a profile (e.g., $dumb) which does not support IntelliView, or make sure that only the main screen is enabled. If the function key problem disappears, then you will need to create a different IntelliView profile which uses different function keys or control sequences. If the problem persists, it is most commonly a problem in the configuration of the application, or in the assignment of the TERM environment variable. The latter is usually done though the /etc/ttytype file, and often some trial and error is required. To further rule out a Computone problem in this case, attempt to configure your application on the built-in serial port. If it fails there, you have a problem that is not specific to Computone: consult the application/os supplier. If it works, try to eliminate any obvious differences in configuration, and try each again. Unfortunately, simply trying things out on the system console is not good proof that things are configured correctly, because generally the system console is a built-in ANSI device, and the serial terminals may be of various types with wildly different protocols. ---------------------------------------------------------------------- Troubleshooting Tip: My screen switches the page but my application thinks I am still on the first page. ---------------------------------------------------------------------- On the WYSE-60, for example, hitting PAGE-UP causes the terminal to internally flip to an alternate display page, without sending any codes. This is completely a local function (since nothing is sent to the host) and there is nothing for it but to not use such key sequences. Applications that otherwise would use such a key pattern will have to do without. This is a generic issue which will appear on standard COM ports as well. *** Page 5-1 *** -------------------------------------- IntelliFeatures on Older products: ALC -------------------------------------- The IntelliFeatures on the ALC are basically parallel to those of the IntelliPort-II. There are some differences: 1) Files are kept in /etc/default/alc.d 2) The screen1, screen2, ... sequences are limited to 7 characters. 3) The DSR signal is not supported. 4) Custom baud rates and rates beyond 38400 are not supported. 5) ALC drivers for SVR4 do not support IntelliFeatures *** Page 5-2 *** -------------------------------------------------------- IntelliFeatures on Older products: IntelliPort/ATvantage -------------------------------------------------------- The IntelliFeatures on IntelliPort/ATvantage products are more restrictive, but are similar in format. 1) Instead of an intellicap file, there is /etc/ic_master. Instead if an intellitype file, there is /etc/ic_control. The utility ic_install creates /etc/ic_control by copying the actual specifications (rather than just the profile names) from ic_master. 2) ic_install does not "clean up" the way "mkdev fip" does on IntelliPort-II. You need to run '/etc/ic_init -please' or reboot the system for new profile assignments to take effect. 3) ic_install uses a shadow data base. Edited changes to /etc/ic_control, /etc/ttys, /etc/inittab, and /etc/ttytype (e.g., made using vi) will be lost the next time ic_install is run. The IntelliPort-II utilities (mkdev fip or ip2_sysadm) do not share this limitation. 4) Profiles in ic_master contain an optional default ttytype entry. Whenever a profile is changed, that default is applied. So if you have been using a specific ttytype entry (say, wy60ak) and change the profile to, say, "Generic Terminal, no features", the ttytype entry will be defaulted to "dumb", and you must remember to change it back. (In all later products these two parameters were isolated to avoid this confusion). 5) IntelliPort/ATvantage supports a maximum of two screens per port. 6) The goto1 and goto2 sequences are a maximum of 4 bytes long, and they must begin with a character in the range 0x00 - 0x1f. This makes it impossible to use ctrl-F1 on a Wyse 60 as a hot-key, because that key sends an 0x80, out of the range. 7) There is no nextscreen key on IntelliPort/ATvantage. 8) IntelliPort/ATV supported also an IntelliKey feature, which is seldom used and never required. It was removed from IntelliPort-II. The most common question is, "How do I turn it off? None of my function keys work." Well, look at the file and see which profiles have them defined. For example, you probably do not want the one that says "WY60 all features" if you want any of your function keys to work in a standard way. A better choice would be "WY60 - no IntelliKey" (which implies that it does have IntelliView and IntelliPrint). 9) IntelliSet options were more primitive and were called "device:" or "communication:" options. There was also a "buffer: receive%= NN" option, which was needed because those boards had much less RAM than the IntelliPort-II series. If any of those options were used, the other IntelliFeatures were disabled. *** Page 5-3 *** This is a common error: a uses starts with a profile that already has a buffer statement, then tries to add an additional feature like IntelliPrint. It is not obvious why IntelliPrint would not work, and no error message is given. The statement is just ignored. Removing the buffers statement cures the problem. 10) The initialization program is called ic_init instead of fip_reinit. It does not run automatically after ic_install, and, unlike fip_reinit, ic_init should not be run when ports are actively being used. It causes a major reset of the board and any data buffered there will be lost. While the syntax of the files is not exactly identical, it is possible to create new profiles in /etc/ic_master much as you would with IntelliPort-II. Since IntelliPort/ATvantage products are discontinued, further additions to ic_master will not be forthcoming. However, you may use the information in IntelliPort-II intellicap files to add additional profiles to your own copy of ic_master, subject to the limitations above. --------- IMPORTANT --------- If you are upgrading from an existing IntelliPort/ATvantage to an IntelliPort-II, it is a good idea to make a spare copy of your ic_master and ic_control files before you switch over, in case a particular customization had been done for that customer in the misty past. While you can't simply copy the files, the information they contain will help you sort out any problems to have during the switchover. (While you are at it, a spare copy of /etc/ttytype and /etc/ttys or /etc/inittab wouldn't hurt. Since the device names are different between IntelliPort/ATvantage and IntlliPort-II, the older configurations are not "inherited", so you need to know how the ports are supposed to be set up.) *** Page 5-4 *** -------------------------------------------------------- IntelliFeatures on another New Product: IntelliCluster -------------------------------------------------------- Features under IntelliCluster work essentially the same as they do under IntelliPort-II, except for the following differences. 1) The intellicap, intellitype, and other Computone-related files are stored in the directory: /usr/lib/intelliCluster 2) The maintenance utility is called icct_sysadm instead of "mkdev fip" or ip2_sysadm. There are a number of cosmetic improvements over the IntelliPort-II style, but the basic actions are presently identical so far as IntelliFeatures are concerned. 3) The initialization program is called icct_reinit, and like IntelliPort-II, it is run automatically after icct_sysadm.