MULRPT Multi-port AX.25 Repeater Page 1 Multi-port AX.25 repeater Xerox 820 Version Files The following files are included in the multi-port repeater package: MULRPT.MAC Assembly language source file -- main module. HDLSIO.MAC Assembly language source file -- SIO driver. RTIMER.MAC Assembly language source file -- timer functions. HDWINT.MAC Assembly language source file -- initialization. RPTTAB.MAC Assembly language source file -- configurable data. RCONFIG.LIB Assembly language include file -- assembly-time configuration STRUCT.LIB Assembly language include file -- internal data structure. LINKRPT.SUB CP/M submit file for linkage of MULRPT RPT000.PRM Binary image of U64 EPROM. RPT800.PRM Binary image of U63 EPROM for W1AW-5. BITSYNC.PRM Binary image of the NRZI state-machine ROM program. XEROX.DOC Documentation of Xerox 820 modifications. MULRPT.DOC This file. Required Support The Microsoft utility software package, including the M80 macroassembler and the L80 linkage editor must be used to assemble and link the MULRPT program. However, the RPTTAB.MAC file may be assembled using Digital Research assemblers MAC or ASM. See the RPTTAB.MAC file for more information. Customization The Xerox 820 version of the multi-port repeater (MULRPT) is a two-port repeater which uses the Z80-SIO as the HDLC I/O device. The code for the repeater is contained in two 2716 EPROMs. The first, or lower, of these (U64) is unchanged between machines. The second, or higher, EPROM (U63) contains the tables which must be configured for each machine. U63 contains the following data: Address Length Description 0800H 7 AX.25 address of this repeater 0807H 2 Baud rate select for channel 0 (SIO port B). The first byte contains a value from 0 to 0FH, inclusive, which selects the baud rate to use MULRPT Multi-port AX.25 Repeater Page 2 for channel 0. The second byte is unused in the Xerox 820 version of MULRPT. 0809H 2 Baud rate select for channel 1 (SIO port A). Same format as for channel 0. 080BH 2 Transmit delay for channel 0. This 16-bit value is the number of 10.24 millisecond units to delay after asserting RTS before sending the first byte of data in a transmission. Flags are sent during this period. (Note: Data transmission will not occur until CTS becomes TRUE). 080DH 2 Transmit delay for channel 1. 080FH 1 Number of repeater addresses, channel 0. 0810H 1 Number of repeater addresses, channel 1. 0811H 1 Number of destination addresses, channel 0. 0812H 1 Number of destination addresses, channel 1. 0813H 1 Default SSID, channel 0. (0FFH = no default). 0814H 1 Default SSID, channel 1. (0FFH = no default). 0815H 1 Default retransmission channel, channel 0. 0816H 1 Default retransmission channel, channel 1. 0817H Variable Repeater addresses, channel 0. There must be EXACTLY as many addresses as specified in location 080FH, one after the other, with no delimiters. ???? Variable Destination addresses, channel 0. There must be EXACTLY as many addresses as specified in location 0811H, one after the other with no delimiters. ???? Variable Repeater addresses, channel 1. There must be EXACTLY as many addresses as specified in location 0810H, one after the other, with no delimiters. ???? Variable Destination addresses, channel 1. There must be EXACTLY as many addresses as specified in location 0812H, one after the other with no delimiters. All addresses are specified as 7 bytes. The first six of these are ASCII characters, representing the call sign of the station. These characters are NOT shifted. The last byte is the binary value 0 to 0FH, inclusive, and is the SSID of the station. The (rather inelegant) routing algorithm is as follows: If the frame is fully repeated (that is, this repeater is the last one in the address field): 1) Search the table of destination addresses of all channels, looking for a match between a table entry and the destination address of the received frame. If a match is found, repeat the frame on the channel in whose destination table the matching address was found. 2) Failing a match, retransmit the frame on the default retransmission channel for the receiving channel. MULRPT Multi-port AX.25 Repeater Page 3 If the frame is not fully repeated (that is, this repeater is not the last one in the address field: 1) If the frame is not fully repeated (that is, this repeater is not the last one in the address field) search the table of repeater addresses of all channels, looking for a match between a table entry and the next repeater address in the address field of the received frame. If a match is found, repeat the frame on the channel in whose repeater table the matching address was found. 2) Failing a match, compare the SSID of the next repeater address in the address field of the received frame with the default SSID of each channel. If a match is found, repeat the frame on the channel whose default SSID matched. 3) Failing a match, retransmit the frame on the default retransmission channel for the receiving channel. Available Memory Patch There is one patch which may be made in the lower ROM (U64). Locations 0003 and 0004 of this ROM contain a 16-bit value specifying the memory available for frame buffers. At present it is set to 16k (4000H). The RAM starts at 4000H (we never switch banks from the reset state) and all of memory is available up through 0FEFFH. 0FF00H through 0FFFFH is the interrupt vector page. Don't allow the frame buffer memory to extend into this area. Note that 16k of frame buffers represents a sizable amount -- a very long transmission at 1200 baud. Xerox 820 Baud Rate Select Values Value Rate 0 50 1 75 2 110 3 134.5 4 150 5 300 6 600 7 1200 8 1800 9 2000 A 2400 B 3600 C 4800 D 7200 E 9600 F 19200