Programming docs for the ISDN-Surfer This document is freely distributable as long as it is not changed, and one of the sources www.jschoenfeld.com, www.jschonfeld.de, www.siliconsonic.com is mentioned. last update: August 2nd, 2000 Vendor ID: 4626 ($1212) Product ID: 5 ($05) Serial ID: 0 for Siemens Chipset. Other IDs reserved. If you write your software, make sure that the serial ID is checked properly! The autoconfiguration is optimized to fit in a single MACH110. One drawback had to be taken in order to make the design fit: The ISDN surfer can only be mapped to addresses in the regular IO area. That means, if the IO area is filled with other cards, the card will not work. However, this only happens if the ISDN surfer is the 8th card in your system that uses IO address space at $ex0000. This hardly happens, and if it does, a simple change of the board order will make the system work. It's a real advantage over the old ISDN Blaster board by VMC, because that one only worked properly as first, second or third card in the system. The data bus is buffered, meaning, the board should work in all known Zorro- setups. The bus design has been optimized for working with bad or even missing clock signals, so it should even work in RBM-towered 1200s. Another enhancement over the ISDN Blaster is the S0 bus part, that one is now symmetrical (as recommended by Siemens), and it uses a VAC ISDN transciever. VAC is a Siemens daughter, they guarantee to meet all the requirements of the used chipset. Memory map: All addresses are byte-addresses. The whole board has only got even addresses. Do not use word-accesses to the board, because they may harm future options. $0000-$00fa Configuration nibbles The board does not only say that it supports shutup_forever, it really supports this feature. Although it is not used in normal configurations, it is implemented here. Usually, you don't use the airbag of your car every day, but you want to know that it's there! $00fc IRQ lock register. A write to this register locks the IRQ selection. Once the IRQ is locked, the write-accesses to $00fe and $0240 do not have any effect. The lock can only be removed with a hardware reset. It is recommended to use the lock option, because there has been a lot of software that plays around with hardware registers. Intentionally or not - it could stop the product from working properly. Locking makes the hardware more stable, and more convenient for the customer (because there are no jumpers on the baord). $00fe IRQ select register. A read from this register tells you which IRQ has been selected: If the MSB of this byte is set, the ISDN surfer uses IRQ6. If the MSB is 0, IRQ2 is used. This is useful for cross-checking if the lock-access has been successful. A write to this register selects IRQ2, no matter what value you write. $0100-$01fe Siemens ISAC-S $0200-$02fe IRQ control, continued after a reset, IRQ6 is selected. If IRQ2 has been selected by writing to register $00fe, it can be switched back to IRQ6 with a write to $0240. $0200 read: Test reset access (hardware testmode only) $0200 write: Test set access 0 (hardware testmode only) $0220 write: Test set access 1 (hardware testmode only) $0300-$03fe Siemens HSCX $0400-$7ffe mirrors - do not acces, reserved for future use. $8000-$9ffe clock-port (spare_CS only) $a000-$bffe 26-pin expansion port The hardware testmode is not implemented in all boards, because it does not fit in a MACH 110 chip (a minimum of 210 is required). The testmode can only be activated in our facilities, or with the special equipment that has been handed out to our betatesters. Table of testmodes: mode bit 0 mode bit 1 chosen mode 0 0 2189/3 1 0 5000/1 0 1 2092/64 1 1 5001/1 The testmode bits are NOT reset with a hard-reset, so the desired mode stays in the MACH chip after a warm start. Since the only reset to these registers is the read from $0200, the combination is undefined after a cold start. The modebits are locked with the IRQlock access, so once the IRQ is locked, the mode bits cannot be changed until the next reboot. the 10-pin port for the telephone module can only be programmed via the Siemens Chipset, because it controls the IOM bus. The IOM bus is not directly mapped into the Amiga's address space. It wouldn't make any sense, because you wouldn't want a phone module that loads the CPU because it cannot talk to the ISDN chipset directly. If you have any questions, feel free to ask me via e-mail: jens@siliconsonic.de