The SCC/ESCC driver for the Atari ST and PC Clones By R.E. Janssen, PE1CHL. [updated to reflect status of SCC driver in NET.PE1CHL.930430] A driver has been written to support a number of Z8530/Z85C30 SCC chips connected to an Atari ST computer. The driver is configurable for different hardware configurations, and an example schematic supporting up to 7 SCC's (14 channels) is available. The driver now also runs on PC Clones, although the interrupt handling capabilities of this type of computer often limit the maximum speed and number of channels to a lower value than on the Atari. (depending on the speed and BIOS of your PC, of course) On the PC, most of the available SCC cards are supported, including PA0HZP's OptoPcScc, the DRSI PC*PA, PacComm PC-100, PC-110, PC120, Baycom USCC and others. The latest version also supports Zilog's Z85130 and Z85230 ESCC chips, which feature a larger FIFO and can therefore be used at higher datarates (at a given interrupt latency). The SCC/ESCC driver can support any mix of SCC and ESCC chips, provided that the CTRL and DATA ports of the chips are arranged in some regular pattern. Each SCC or ESCC channel can be independently programmed to support: - An asynchronous SLIP line - An asynchronous interface to a KISS TNC - Direct AX.25 (HDLC) The software has been written in such a way that a port to another environment where Z8530/Z85C30 SCCs and/or Z85130/Z85230 ESCCs are available should be relatively straightforward. Addresses of the chips are completely configurable, as long as the chips are addressed using some regular pattern. Initialization and attachment of the channels To use the driver, 2 steps must be performed: 1. Global initialization of the driver 2. Attachment of each channel, specifying mode and options The global initialization is needed to reset all SCCs and to install a common interrupt handler. Also, the hardware addresses of the chips are defined in this step. In the second step, each channel is set up for the intended use. 1. Initialization Initialization is performed using the "attach scc init" command, using the following syntax: attach scc <number of chips> init <base address> <spacing between chips> <offset to channel A ctrl> <offset to channel B ctrl> <offset from ctrl to data> <address of INTACK latch>|0 <interrupt number> p<PCLK frequency>|r<RTxC frequency> [<special interface type> <interface parameter> [<timing channel>]] To initialize a board with 2 SCCs using my schematic for the Atari ST, the following command would be used: attach scc 2 init fffd00 8 3 7 -2 fffd3f 3 p4915200 This specifies interrupt number 3, a normally unused interrupt in 520ST and 1040ST machines. In the newer Mega-ST this interrupt is used for the Blitter. In this case, it is possible to use the "ring indicator" input of the RS232 interface as an interrupt source. It has interrupt number 14. The INTACK latch (write, then read to get the interrupt vector) is located at 0xfffd3f. It is also possible to specify 0 for this address. In that case, INTACK is not used and the driver finds the interrupting chip by polling each RR3A register. This allows a more simple hardware design. The crystal clock is specified as 4915200 Hz (4.9152 MHz). Other frequencies can be used, and this parameter should be adjusted accordingly. The clock used for baudrate generation is connected to the SCC's PCLK pin. It would also be possible to supply a baudrate clock to the RTxCA/RTxCB pins, and a clock of a different frequency to PCLK (like the processor clock). In this case, it is the RTxC clock frequency that really matters for the "attach scc init" command. This clocking method is supported by prefixing the clock frequency with an "r" instead of a "p": r4915200. On a PC, a similar command can be used to initialize the driver. The PA0HZP OptoPcScc card would use the following command: attach scc 2 init 150 4 2 0 1 168 3 p4915200 This command differs only from the "Atari ST" example, in that it different different addresses and arrangement of the ports. In a PC, the I/O ports always occupy addresses between 0 and 3ff(hex). The interrupt number 3 is defined in this command. Of course it must match the interrupt number that you have selected on the board using a jumper or dip-switch. Also, the interrupt must not be in use by a different type of board in the system, e.g. a COM board or a disk controller. When using an AT-type machine (with two 8259 interrupt control- lers), and using the "interrupt 2" line on the BUS, specify interrupt number 9 in the "attach scc init" command instead of number 2. This better reflects the actual configuration: the interrupt line labeled "interrupt 2" on the BUS is actually connected to interrupt number 9 on the second 8259. The BIOS will attempt the redirection of interrupt vector #9 to #2, but it does not completely do the job. The result will be that the driver hangs after some random amount of interrupts. In the PC version, the "special interface type" and "interface parameter" fields in the "attach scc init" command can be used to specify some special type of interface board to be used. Adding more types of interface boards requires modification to the driver software. Currently, the following special types are supported on the PC: - type 01: EAGLE - type 02: PC-100, PC-110, PC-120 - type 04: PRIMUS - type 08: DRSI PC*Packet The PC-100 and the PRIMUS types accept an interface parameter, that is used to control the on-board MODEM. It must be specified as a hexadecimal value, to be sent to the output port on the board. Possible initialisation commands are: EAGLE: attach scc 1 init 2e8 8 2 0 1 0 3 p3686400 01 PC-100: attach scc 1 init 2e8 16 6 4 1 0 3 p4915200 02 82 PRIMUS: attach scc 1 init 2e8 4 2 0 1 0 3 r2457600 04 02 DRSI: attach scc 1 init 300 16 2 0 1 0 3 p4915200 08 When the DRSI card type is selected, the Z8536 CIO on the DRSI card is initialized to provide two divide-by-32 counters (see below), and a timer tick generator that will generate a tick every 10 ms, to be used as a timing reference for use by AX.25- type channels. For other card types on a PC, the system timer will be used to provide these timer ticks, and it provides a 55 ms resolution. It turns out that multitaskers like Desqview treat the 55ms system timer interrupt in such a way that a running task does not receive all timer ticks. This results in random timing errors when a program is running in another window. (you can observe this as unusually long flag leaders and trailers when listening to your own transmissions) Also, the 55ms timing interval may be somewhat long when higher speeds are used (e.g. 9600 bps), and a finer control of the TXDELAY timing is desired. When a spare SCC channel is available, it can be set up as a 10ms timer, to be used instead of the system timer: add the option "t<n>" at the end of the "attach scc init" command, where <n> is the channel number to be used for timing. When no "special interface type" and "interface parameter" options ar used, one or two zeroes must be inserted between the <frequency> parameter and the option, to hold their place. Example for use with the PA0HZP OptoPcScc card: attach scc 2 init 150 4 2 0 1 168 3 p4915200 0 0 t3 This defines channel number 3 (the last channel on the board) as a timer tick generator. The timer tick generator defined this way generates 10ms ticks. It is also possible to specify the interrupt number to be used for SCC timer ticks as an optional parameter to the "attach scc init" command. The default is 08, i.e. the hardware timer interrupt. Possible other candidates are 1C (software timer interrupt) and 70 (PC-AT Real Time Clock interrupt). The driver assumes that the timing hardware has been initialized before, and a handler is in place that resets the pending interrupt. It only chains its handler on the specified vector. The tickrate should be somewhere between 18 and 200 ticks per second. Example (for the PA0HZP OptoPcScc card): attach scc 2 init 150 4 2 0 1 168 3 p4915200 0 0 1c Note that the 1C vector is not suitable when multi-tasking DOS replacements like DesqView and DoubleDos are in use. Vector 70 can only be used in an AT, and needs a TSR routine to setup and handle the RTC timer interrupt. 2. Attach commands When the SCC driver has been initialized, you can attach the channels. This is done using one of 3 forms of the "attach scc" or "attach escc" command: attach scc <channel> slip <mtu> <baudrate> attach scc <channel> kiss <mtu> <baudrate> <callsign> attach scc <channel> ax25 <mtu> <baudrate> <callsign> attach escc <channel> slip <mtu> <baudrate> attach escc <channel> kiss <mtu> <baudrate> <callsign> attach escc <channel> ax25 <mtu> <baudrate> <callsign> These will be refferred to as "slip", "kiss" and "ax25" mode. The <channel> parameter specifies which half of which SCC will be programmed, as follows: channel 0: "A" side of first SCC channel 1: "B" side of first SCC channel 2: "A" side of second SCC channel 3: "B" side of second SCC and so on. The channel number ranges from 0 to (2 * nchips) - 1, where nchips is the number of chips specified in the "attach scc init" command. SLIP mode This can be used for a link to another machine, when the channel has an RS232 interface. Example: attach scc 0 slip sl0 256 9600 This attaches the "A" side of the first SCC as interface "sl0", with an MTU of 256 and an initial baudrate of 9600. The baudrate can be changed later by: param sl0 <baudrate> Entering just "param sl0" will display the current baudrate. KISS mode KISS mode can be used to talk to a KISS TNC. It can also be used on an asynchronous link to another computer running NET. The difference with SLIP is that the interface will be AX.25 type, and can therefore be used for AX.25 connections. A callsign must be given as a parameter, this will be used for IP and NET/ROM purposes on the interface. Example: attach scc 2 kiss 430 256 4800 pe1chl-7 In the example the "A" side of the second SCC will be attached as interface "430" using an MTU of 256, a baudrate of 4800 and the callsign PE1CHL-7. The command "param 430 <paramnum> <decimal value>" can be used to set the parameters of the KISS TNC. It is not possible to display the current settings. AX.25 mode This is probably the most interesting mode to use with this interface. It allows AX.25 communication without a TNC. Only a MODEM is needed. Example: attach scc 2 ax25 430 256 1200 pe1chl-7 The parameters have the same meaning as in KISS mode. In fact, the AX.25 mode is emulating an extended KISS TNC, so the same commands can be used to set the parameters of the interface (see below). To be able to run fullduplex using an SCC in AX.25 mode, an external divider must be available, that divides the baudrate generator clock available on the TRxC pin by 32, and puts the resulting signal on the RTxC pin of the same channel of the SCC. Such a divider is not necessary for normal halfduplex CSMA packet radio operation, as the driver will re-program the SCC baudrate generator at each transmit/receive transition. Interrupt overhead is slightly reduced if you still install it. If you have installed the divider, prefix the baudrate with a letter "d", as in: attach scc 2 ax25 430 256 d1200 pe1chl-7 Note that when using the RTxC input as the baudrate generator clock source, you will have to feed the exact rate of the transmitter to TRxC to be able to use fullduplex. For this reason, it is better to use PCLK as the clocksource whenever possible. The DRSI PC*Packet adapter uses the Z8536 CIO on the board as a divider, so you can (and should) specify the "d" option for that board. Another option is to use external clocking, supplied by the MODEM. This is specified using the keyword "ext" in the baudrate field, as in: attach scc 2 ax25 430 256 ext pe1chl-7 The receive clock will be taken from the RTxC pin, the transmit clock from the TRxC pin. make sure the phase relationship between the clock and the data is correct! When "external clocking" is selected, NRZ encoding instead of the default NRZI can be selected by specifying "ext/nrz" in the baudrate field. NRZ encoding is used with the DF9IC 9600 baud modem, which provides NRZ-NRZI conversion. The SCC driver also allows complete specification of the clocking mode, so that all modems requiring- or providing external clocks can be configured. The value to be written to WR11 of the Z8530 can be specified as a hexadecimal value after the existing baudrate specification, separated by a colon (e.g. d1200:66). Refer to a Z8530 technical manual for more information about the value to be written to WR11. Attaching an ESCC (Z85130 or Z85230) Besides the original Z8530/Z85C30 SCC chip, the SCC driver also supports the newer Z85130/Z85230 ESCC chips. The main advantage of the ESCC is the larger TX FIFO (4 bytes instead of 1) and RX FIFO (8 bytes instead of 3), allowing a longer interrupt latency without causing overrun/underrun errors. Therefore, the chip can be used at the high edge of the speed range supportable using interrupt-driven I/O (19200 and possibly 38400 baud). It also solves some bugs in the original SCC, and has introduced a few of its own... Unfortunately it is quite expensive, so for now default choice is likely to remain the SCC. The presence of an ESCC is indicated to the driver by the use of "attach escc" instead of "attach scc" to attach the channels. The driver will then automatically use the extra features of the ESCC. The "attach scc init" attach line can indicate either "scc" or "escc", with no difference in operation. The total set of chips driven by the SCC driver can be a mix of Z8530/Z85C30 (SCC) and Z85130/Z85230 (ESCC). The ESCC can run fullduplex without the external divide-by-32 counter, because an extra internal clock source selection has been added to provide its function. You may or may not install the external divider. Parameters The setting of parameters of the emulated KISS TNC is done in the same way as in the KISS mode of the SCC driver: param 430 <paramnum> <decimal value> In AX.25 mode however, it is also possible to display the current settings using "param 430". This will display a line like: sp=d1200:66 grp=000 tx=y 1=36 2=50 3=30 4=3 5=0 6=0 7=50 8=7 9=3 10=30 11=0. The "timer tick" unit mentioned in the descriptions for SCC channel parameters 1,3,4,7 and 11 below depends on the computer type and SCC driver initialization. - On the Atari ST, each timer tick is 10ms. - On the PC Clones, a timer tick is usually 55ms, but it can be different when an alternative timing method is selected in the "attach scc init" command (see above). The actual value is printed during execution of the "attach scc init". Consider that the exact time of each delay may be up to 1 timer tick time less than the specified time. It is therefore unwise to specify a value less than 2 for a "timer tick"-relative delay (except when the special-case value 0 is selected). When you have defined your own values for SCC channel parameters 1,3,4,7 or 11: remember to re-calculate the values of these parameters when you change the timing method. The parameters have the following meaning: 1: The delay (in units of timer tick) after keying of the transmitter, until the first byte is sent. "flags" are sent during this period. This is usually called "TXDELAY" in a TNC. When 0 is specified, the driver will wait until the CTS signal is asserted, instead of waiting for a pre- determined time. This assumes the presence of circuitry in the MODEM and/or transmitter, that asserts CTS when the transmitter is ready for data. The default value of this parameter is 360ms. 2: This is the probability that the transmitter will be keyed when the channel is found to be free ("persistence"). It is a value from 0 to 255, and the probability is (value+1)/256. Selecting a relatively low persistence decreases the chance that multiple stations send at the same time, when the channel becomes clear. The value should be somewhere in the range 20-60, and should be lowered when the channel is used more heavily. The default value is 25 (10% persistence). 3: This is the time between sampling of the DCD state, to detect a free channel. It is expressed in units of timer tick. About 100-300 ms seems to be a good value. This parameter should never be 0. The transmitter will not key when 0 is used! The default value is 160ms. 4: The time the transmitter will remain keyed after the last byte of a packet has been transferred to the SCC. This extra transmission time is necessary because the CRC and a flag still have to leave the SCC before the transmitter is shut down. The value depends on the baudrate selected. A few character times should be sufficient, e.g. 30ms at 1200 baud. The value of this parameter is in timer tick units, the default is 30ms (or at least 2 clock ticks). 5: The full-duplex mode switch. This can be one of the folowing values: 0: The interface will operate in CSMA mode (the normal half-duplex packet radio operation). 1: Fullduplex mode, i.e. the transmitter will be keyed at any time, without checking the received carrier (DCD). It will be unkeyed when there are no packets to be sent. 2: Like 1, but the transmitter will remain keyed, also when there are no packets to be sent. Flags will be sent in that case, until a timeout (parameter 10) occurs. The default value is 0, CSMA operation. The fullduplex modes are only meaningful when a fullduplex modem and transceiver is in use, e.g. when accessing a packet satellite. Also, when using an SCC (Z8530 or Z85C30) and the internal baudrate generator, and external divide-by-32 counter is required for fullduplex operation. 6: Control of the DTR output of the SCC. DTR will be set when this value is nonzero, it will be reset when the value is 0. After initialization DTR will be set by default. The DTR output can be used as a general-purpose output, e.g. to change between 2 transceiver frequencies or output power levels. The default value of this parameter is 1, DTR SET. 7: The initial waittime before any transmit attempt, after the frame has been queued for transmit. This is the length of the first slot in CSMA mode. In fullduplex modes it can be set to 1 for maximum performance, or to a higher value to give NET a chance to combine several packets in a single transmission. The value of this parameter is in timer tick units. It should never be set to 0. (The channel will not transmit in that case) The default value is 500ms. 8: The maximal time the transmitter will be keyed to send packets, in seconds. This can be useful on busy CSMA channels, to avoid "getting a bad reputation" when you are generating a lot of traffic. After the specified time has elapsed, no new frame will be started. Instead, the transmitter will be switched off for a specified time (parameter 9), and then the selected algorithm for keyup will be started again. The value 0 will disable this feature, and allow infinite transmission time. The default value is 7 seconds. 9: This is the time the transmitter will be switched off when the maximum transmission time (parameter 8) is exceeded. This parameter is in seconds, and should never be 0. The default value is 3 seconds. 10: In CSMA mode, this parameter specifies the maximum time the transmitter will wait for the channel to become clear, expressed in units of one second. When this time has elapsed without an opportunity to transmit, the transmitter will be keyed. This is a safeguard against situations where the squelch refuses to close, or a weak carrier is present on the frequency, to prevent an indefinite pileup of frames to transmit (with a possible danger of memory overflow). Of course, the value should be set sufficiently high to prevent accidental keyups in periods of high channel load, e.g. 60 seconds. In fullduplex 2 mode, this parameter specifies the maximum idle time, in seconds. When no frames have been sent for this time, the transmitter will be keyed down. A value of 0 will disable this feature, i.e. the transmitter will be keyed indefinitely. The default value of this parameter is 120 seconds. 11: The DCD hold time, in timer tick units. Whenever DCD falls, the receiver remains enabled for <n> ticks. Setting this parameter to a suitable value will eliminate the packet loss caused by a flickering DCD, as can sometimes be observed with the G3RUH 9600bps FSK modem. Setting parameter 11 to 0 will select the default operation, where the fall of DCD will immediately eliminate the packet being received. This DCD handling option does not affect the "channel busy" detection that is performed in half-duplex mode (CSMA). The P-persistent channel access algorithm takes the unsmoothed DCD as input. Other parameters Using the "param" command, some other parameters of the SCC driver can be controlled. These are detailed below: param <iface> dcd n DCD-changes are ignored, the receiver is permanently enabled. In this mode, a packet is never discarded because of DCD loss. However, when noise is present on RxD it will cause a permanent interrupt load on the system. This mode of operation can be useful in fullduplex systems, when there is no reliable DCD circuit. Note that a good DCD circuit is essential when operating halfduplex CSMA! Normal operation restored by: param <iface> dcd y param <iface> speed <speed> Can be used to change the bitrate of a channel after it has been attached. This command can only change the bitrate, it cannot change between internal/external clocking, fullduplex divider yes/no, etc. param <iface> tx n This will disable the transmitter of the selected channel. Can be useful when a channel is receive-only, or to disable a transmitter when receiving on a channel where you don't want to transmit, e.g. a satellite downlink. It can also be useful for remootely controlled stations, to disable a transmitter when interference or other malfunction has been observed. Transmitter Groups It is possible to build special radio equipment to use more than one frequency on the same band, e.g. using several receivers and only one transmitter that can be switched between frequencies. Also, you can connect several radios that are active on the same band. In these cases, it is not possible, or not a good idea, to transmit on more than one frequency. The SCC driver provides a method to lock transmitters on different interfaces, using the "param <interface> group <x>" command. This will only work when you are using CSMA mode (parameter #5 = 0). The number <x> must be 0 if you want no group restrictions, and can be computed as follows to create restricted groups: <x> is the sum of some HEX numbers: 100 This transmitter will only be keyed when the carrier detect of all other interfaces in the group is off. 200 This transmitter will only be keyed when all other transmitters in the group are off. 400 This transmitter will be keyed when all other transmitters in the group are either off, or are sending flags (TXDELAY period). 0xx A byte that can be used to define different groups. Interfaces are in the same group, when the logical AND between their xx values is nonzero. Examples: When 2 interfaces use group=101, the transmitters will only key when both channels are clear at the same time. When 2 interfaces use group=201, their transmitters will never be keyed at the same time. When group=301, the transmitters will not be keyed at the same time, and only if both channels are clear. Maximal packet length Input packets on the SCC driver and the SLIP and KISS protocols on async ports are checked for a maximal length. Packets longer than the MTU of an interface plus the header overhead (for AX.25) are discarded. This is necessary, because otherwise very long packets could be received and stored into memory, causing unnecessary use of buffers. Make sure the value of MTU specified in the "attach" commands is correct (i.e. 256 for normal AX.25 use), as there is no indication for packets that are ignored because they are too long. SCCSTAT command Once the SCC driver has been initialized, some statistic information can be shown using the sccstat command. The output of this command shows one line of information per attached channel. Example: net> sccstat Ch Iface Sent Rcvd Error Space Overr Rxints Txints Exints Spints 0 144 88 152 200 0 0 10013 4488 905 235 1 430 6 70 0 0 0 1915 29 0 0 The info shown is: - channel number of the attach command, - name of the interface, - number of frames queued for transmission, - number of frames received correctly, - number of receive errors (CRC, ABORT), - number of times the receiver buffer pool was found empty, - number of receiver overruns and transmitter underruns, - number of receiver interrupts, - number of transmitter interrupts, - number of receiver special condition interrupts, - number of external/status interrupts. It is normal that a SLIP or KISS channel shows no errors, and no special condition or external/status interrupts, while an AX25 channel has lots of these. An overrun is abnormal for all operating modes. If lots of these occur, the product of baudrate and number of interfaces is too high for the processing power of your computer. If "Space" errors occur, specify a higher number of buffers in the "buffers" command. It is, however, normal if these errors occur when you start a shell, or when you pause the output of any command using CTRL-S. This is because the processing and allocation of buffers stops in these cases, while receiver input keeps coming in under interrupt control. When you see only transmitted frames, the number of transmitter interrupts is 1, and all other counters are 0, the SCC is not generating interrupts to the computer. The single transmitter interrupt is a "simulated" interrupt that should start the transmission (but apparently doesn't). When a channel number is specified in the "sccstat" command, more detailed information for that channel is displayed: net> sccstat 0 Ch Iface Sent Rcvd Error Space Overr Rxints Txints Exints Spints 0 144 88 152 200 0 0 10013 4488 905 235 CTRL=fffd03 DATA=fffd01 STATUS=7c WR0=00 WR1=13 WR2=00 WR3=c9 WR4=20 WR5=e9 WR6=00 WR7=7e WR8=00 WR9=09 WR10=a4 WR11=66 WR12=3e WR13=00 WR14=03 WR15=88 Timer: 0 DCD_tail: 0 RX_ovr: 0 TX_undr: 0 Too_long: 1 The extra information displayed is: - the CTRL and DATA register addresses for the channel, - the last STATUS value that was read from the SCC, - the last values written to the sixteen Write registers, - the current values of the "Timer" and "DCD tail" downcounters, - the number of Receive Overruns and Transmit Underruns, - and the number of received frames that were too long. The number shown under the "Overr" header is the sum of the receiver overruns and transmitter underruns shown in the detail. Most other information is only understandable when an SCC technical manual is used for reference. The command "sccstat b" shows the percentage of time that an AX.25 interface was busy: net> sccstat b Ch Iface Time Active %DCD %RTS 0 144 002/08:43:01 17 5 1 430 002/08:43:01 43 2 This indicates, during the measurement period shown under the "Time Active" header, how long the DCD (carrier detect) and RTS (request to send) signals were active. Note that some modems or modem/transceiver combinations will assert the DCD line during the time RTS is activated, so it may be that the percentage DCD also includes the percentage RTS. The command "sccstat b c" can be used to clear the counters and start a new measurement. The "Time Active" will be reset to zero at that time. The "sccstat" command also has a few other subcommands, mainly for testing and aligning modems. They are: sccstat c <chan#> sends 30 seconds of zeroes (NRZI pattern 101010...) on AX.25-type interfaces. This is intended for tune-up of TCM3105 modems and for link tests. sccstat f <chan#> sends 30 seconds of 'flags' on AX.25-type interfaces. This is useful when evaluating the performance of certain modems (especially the HAPN 4800 baud modem) on a scope. These testing/alignment commands work only when the channel is clear (no DCD, no "transmit group" limitation). They can only make a 30-second transmission. When 30 seconds isn't enough, simply re-issue the command. The 101010 sequence is used to align a TCM3105 modem. Make an audio loopback connection, or send the sequence on a transmitter while the modem to be aligned is connected to a receiver. The output of the modem can then be aligned to provide a 50% duty cycle signal, using a scope. Baycom USCC card The Baycom USCC card is somewhat exceptional. It has 2 SCC chips driving 3 onboard modems, plus one spare channel to which an external modem can be connected. One of the modems (the 9600bps G3RUH-compatible modem) uses external clocking and has an exter- nal NRZ-to-NRZI converter. Because of the peculiar arrangement of chip addresses, only a single USCC card is supported by the SCC driver. Example configuration for the Baycom USCC, located at address 300 using IRQ7. The 'external modem' channel (#2) is used for 10ms timing: attach scc 2 init 300 6 4 1 0 0 7 p4915200 0 0 t2 attach scc 0 ax25 chan0 256 1200 $CALLSIGN-2 attach scc 1 ax25 chan1 256 1200 $CALLSIGN-7 attach scc 3 ax25 chan2 256 ext/nrz $CALLSIGN-10