Silversurfer
Contents |
General
Silversurfer is a high-speed serial port for the clockport of an Amiga, or for the expansion port(s) of many iComp products.
- for A1200 and Buddha Flash
- compatible with the four clock-ports on the Z4 A1200 Zorro board
- optional adapter for A600 and old Buddha/Catweasel Models
- Baudrate up to 460800 Baud, MIDI compatible
- supports low Baudrates and long Cables
- low CPU-Load because of large Fifos
- serial port 25-pin (IBM-standard, so 9-pin Sub-D is possible as well)
- superflat design, fits with all known A1200 expansions (even with BVision!)
- easy installation of the Hardware: colour photo print included!
- easy installation of the Software: just boot from the disk!
- compatible with digital cameras, Miami, terminal programs, faxprograms, and all programs using the serial.device
- compatible with Melody 1200 Sound expansion on the same clock-port
- Up to ten Silversurfer boards in einem Computer supported (if you've got so many clock-ports :-)).
Silversurfer is the alternative for the cost-conscious user if you want to expand your Amiga with a serial interface. We did our best to reduce the price without having to make any compromises in value and performance: The top baudrate is higher than most serial accessories can handle, the software is simply one-hundred percent, and there are numerous ways to connect the board to an Amiga.
As usual with individual Computer's products, you get a full ready-to-go package without having to buy any additional cables or adapters like you have to with other vendors.
The shape of the Silversurfer is so smart that it didn't take long before the first copy arose on the market. That's a nice honour, because it's a good sign that there's no better way to do it!
Naturally, the Silversurfer cannot avoid every place in the computer. There's a mechanical conflict with Mikronik and RBM Zorro-expansions that cannot be resolved, but this is totally compensated by the Silversurfer supporting the four clock-ports of the new Z4-board for the Amiga 1200. In fact, the Silversurfer is the first card on the market to support these ports!
If you don't want to change your Zorro-board, you can operate the Silversurfer on the clock-port of the Buddha Flash controller, and that fits into any Amiga with Zorro-Slots.
Another advantage over competing products is the excellent drivers: Low CPU load for uninterrupted multitasking and compatibility with all the software we know, together with an unparalleled ease of installation make the Silversurfer first-choice for anyone. No matter if you're using an A600 without accelerator or a fully equiupped A4000 - Silversurfer will move your data securely.
Download
For use in an A500, you will have to use the VarIO software, see the VarIO page.
Developer Information
The silversurfer serial port uses a 16c550 UART Chip by California Microdevices (now purchased by ON Semiconductor). The datasheet is not available on the internet - at least not easy to find. If you happen to have a PDF of the exact part, we're happy to host it here.
Programmers can read all about the CM16C550PE chip in the Data sheet. The UART is compatible with other common 16c550 implementations, so you may be able to get ideas from other UART driver sources.
versions
The silversurfer is available in two versions:
- The basic version is meant for the clock-port of the A1200.
- The second version is the "limited Edition", which has a different connector, and a different memory map when connected to the 26-pin expansion port. When connected to the clock-port with a cable, the memory map is the same as with the standard version.
register summary
The 16c550 has eight registers, and some multiplexed registers for the Baud Rate generator. The address space for the clock-port is 16 bytes, and the Silversurfer occupies all of them. The upper eight registers are mirrors of the lower eight registers. In the following text will only deal with the lower eight addresses, but you must keep in mind that there may be a mirror. See further down for details about the possibiliy to disable one of the two blocks by closing a jumper.
note: DLAB is short for Divisor Latch Access Bit, it's bit#7 in register#3. Register numbers 0 and 1 are affected by the DLAB bit:
Register | A1200 Address | Limited Edition Address | Retro Replay Address |
Function |
---|---|---|---|---|
0 (RXD/TXD) | $d80001 | Board Offset + port offset + $18 | $de08 | With DLAB=0: Reading reads the "receiver Buffer Register", Writing writes to the Transmitter holding register With DLAB=1: Divisor Latch (lower significant byte) |
1 (IER) | $d80005 | Board Offset + port offset + $1a | $de09 | With DLAB=0: interrupt enable register With DLAB=1: Divisor Latch (most significant byte) |
2 (IIR) | $d80009 | Board Offset + port offset + $1c | $de0a | read: Interrupt identification register write: Fifo Control register |
3 (LCR) | $d8000d | Board Offset + port offset + $1e | $de0b | Line control register |
4 (MCR) | $d80011 | Board Offset + port offset + $38 | $de0c | Modem control register |
5 (LSR) | $d80015 | Board Offset + port offset + $3a | $de0d | Line status register (read only) |
6 (MSR) | $d80019 | Board Offset + port offset + $3c | $de0e | Modem status register (read only) |
7 | $d8001d | Board Offset + port offset + $3e | $de0f | Scratch pad register |
Amiga-side behaviour
Silversurfer will issue an IRQ6 if connected to an Amiga. There are no more registers than the chip registers. All you need is eight addresses.
If connected to a Retro Replay, Nordic Replay or similar C64 exmapsion, the Silversurfer will issue an NMI to the host computer.
Silversurfer on other clock-ports
Z4 zorro expansion
The Z4 zorro expansion for A1200 computers has four clock-ports, numbered from 0 to 3. It is advisable to support them, as many people have bought the Silversurfer because of the compatibility to this extension:
Add $4000 to all clock-port registers to access a Silversurfer on clock-port 1 of the Z4 board.
Add $8000 to all clock-port registers to access a Silversurfer on clock-port 2 of the Z4 board.
Add $c000 to all clock-port registers to access a Silversurfer on clock-port 3 of the Z4 board.
Check for presence of the Z4 board by checking mirrors of the scratch pad register. If you write to the scratch pad register at $d8001d and also find that value at $d8401d, there can be no Z4 board. DO CROSS-CHECKS by writing the scratch pad register in $d8401d and reading it back on $d8001d, as there can be trash in the scratch pad from the previous run of your (or other) software. Writes should be done with different bit-patterns in order to minimize the possiblity of false identification.
Buddha Flash
The Buddha Flash also contains a clock-port. This port is located at even addresses, so substract $d80001 from the clock-port values and add the board offset plus the port offset. In other words, if the Buddha is located at $ea0000, the eight registers are at:
$ea0e00 $ea0e04 $ea0e08 $ea0e0c $ea0e10 $ea0e14 $ea0e18 $ea0e1c
X-Surf
Register offset calculation is very similar to the Buddha controller. Mind that one of the ports uses even addresses, and the other uses odd addresses. This has been done in order to balance the load on the data lines a bit.
ISDN Surfer
Check the ISDN Surfer page for clockport offset of that card.
Baudrate programming
The UART is clocked at 7,372800 Mhz. The frequency may sound odd, but it is perfect for generating the common baud rates. To operate properly, the Baud rate generator uses a 16x clock rate, so if you want to set 38400 baud, the Baud rate generator must be programmed to generate a 614400 clock. This is done by calculating 7372800/614400=12. Write this value to the Divisor Latch LSB, and a 0 to the Divisor Latch MSB.
Baudrate | Divisor | DLL | DLM |
---|---|---|---|
50 | 9216 | 0 | 36 |
75 | 6144 | 0 | 24 |
150 | 3072 | 0 | 12 |
300 | 1536 | 0 | 6 |
600 | 768 | 0 | 3 |
1200 | 384 | 128 | 1 |
2400 | 192 | 192 | 0 |
4800 | 96 | 96 | 0 |
7200 | 64 | 64 | 0 |
9600 | 48 | 48 | 0 |
19200 | 24 | 24 | 0 |
38400 | 12 | 12 | 0 |
57600 | 8 | 8 | 0 |
115200 | 4 | 4 | 0 |
230400 | 2 | 2 | 0 |
460800 | 1 | 1 | 0 |
Solder-jumpers on the back of the silversurfer
There are six unused pads on the back of the board. Four of them are meant for pullup/pulldown resistors or noise reduction capacitors. Fortunately, The CalMicro chip used on the Silversurfer does not need this kind of debugging, because it has a built-in input hysteresis, so noise is filtered on-chip. Just leave the four pads on the Silversurfer unused, and focus on the other two, which are more interesting: They are simple jumpers, either use a wire or a 0-ohm resistor to close the jumpers.
Never close both jumpers at the same time!
location of the jumpers: The diagram shows the silversurfer from the solder-side!
--------------------------- | clock-port | | | | | | | | | ------ ------- | | | 1# #3 | | | | 2# #4 | | | | | | # #| | | | # # # #| | | | # # | | | | | | | | | | | | | | | | | |## |--- |## |--- |## |--- serial connector |## |--- | |--- ----------------------------
Only use pads with numbers, leave the other pads (marked with #) unused.
Usually, the CS2 signal (pin 16) of the UART is pulled high with a resistor that is located on the top of the silversurfer. Closing one of the jumpers applies address line A5 to this pin, either inverted, or double-inverted (that is, directly). As a result, one of the register banks will be disabled:
Connection 1-2 (R2) will disable the lower register bank This means, that the UART chip is only located at addresses $d80021 and up (Mirror on $d80001 and up is free, can be used for other hardware).
Connection 3-4 (R4) will disable the upper register bank This means, that the UART chip is only located at addresses $d80001 and up (Mirror on $d80021 and up is free, can be used for other hardware).
These solder-jumpers are also present on the limited edition of the Silversurfer. Only use them if you are using the clock-port connector, otherwise you will cause even more confusion with the registers of the 26-pin connector.
The other unused pads on the opposite side are meant for direct connection of a DB9-male connector. This has never been used, and will only fit if you use the Silversurfer on a Zorro board (or in a completely different enviroment). The orientation of the connector is obvious: Four pins on the solderside, five pins on the component side will speak for themselves.
Serial cable pinout
Silversurfer and VarIO use the same serial cable. Please note that there are two different industry-standards that were commonly used. Silversurfer and VarIO uses one of these standards. If you are fine with the included 25-pin serial port, we recommend to use exactly that included 25-pin cable. If you want to use a 9-pin serial port with your VarIO or Silversurfer, please make sure that it uses the correct pinout. The following pictures show how to identify the right cable for use with Silversurfer and VarIO:
C64 software supporting Silversurfer
- Desterm 128 v3.02 Driver by Nicolas Welte
- Novaterm 9.6 Driver by Nicolas Welte
- retrosurf_20210216.zip cleaned up and commented overhaull for use with striketerm (by Groepaz)
- LUnix NG Serial Port Driver by Groepaz
- RR.EXE is a remote monitor, disassembler and comes close to a full featured remote serial debugger - by Groepaz
- RR.EXE can also be used together with the Retro Replay flash util to flash over serial
- Serial Slave is a nice multiplatform PERL-program by Mager Valp
- Striketerm is a terminal program compatible with Novaterm modules, by Alwyz
Resellers
Please shop locally. Our partners are listed in alphabetical order.
- Alinea Computer (Germany)
- Amiga Kit (UK, US)
- F.H.U.EDEN Komputery (Poland)
- GGS Data (Sweden)
- Protovision (Germany) (Retro Products only)
- Relec Software & Hardware (Switzerland)