ZNET
ISA 8bit adapter for computer network FELAN produced by ZPA Nový Bor for PC 16 NB ("Honza").
Speed 880kbps, Manchester coding, topology - bus, CSMA/CD, 50ohm coaxial cable, max. length 300m, maximum 32 participants.
Hardware development for TNS-NET 900 and ZNET cards (FELAN) took place at Tesla Elstroj.
Martin Bílý from ČVUT FEL, one of the authors of the FELAN network, commented on the similarity of the cards in 2024: "I believe that the ZNET card was a local development without copying, Tesla Elstroj, people around E.Smutný. And also a possible similarity with the cards for SAPI86 -net etc. seems understandable to me. On the one hand, it is from the same people, on the other hand, it was built from the current component base in terms of component types and their real availability in some quantities. And probably with regard to the expected quality of the components and the requirements for some quality of the resulting unit controlling some industrial process. I know, I'm simplifying it a bit :-).
All this was actually already at the beginning of the nineties. The market gradually opened up, Novell NetWare began to appear, the Ministry of Education created the House of Foreign Relations, through which schools obtained relatively cheap licenses. Well, everything was suddenly different."
ZNET control from PC
In the RAM memory, from address CD00:0000, there is a zone of parameters for the cooperation of a personal computer with a communication adapter. If a second communication adapter is plugged into the computer, its parameter zone is from address CE00:0000. The parameter zone stores:
+0 | The status of the adapter configuration switches. Switches zero through five are used to set the network address (number) of the communication adapter. Switch six corresponds to jumper W1 on the IBM. Setting the sixth switch causes the PC to request an operating system from the computer providing the Boot Server service when it is initialized (turned on). Switch number seven sets the adapter's local number, usually zero. If two adapters are plugged into the computer, they are distinguished by this switch. |
+1 | The number of this adapter. During initialization, the six-bit address set on the switches is written here. The PC has the right to change this number and thus receive messages addressed to other computers as well. |
+2 | Collision counter. If a collision is detected during transmission, the counter is incremented. The PC has the right to change the value of the counter. |
+3 | Error packet counter. If an erroneous packet is received (CRC error, etc.), the counter is incremented. The PC has the right to change the value of the counter. |
+4 | Tx traffic light. If the PC has a message ready to send, it sets the semaphore to a positive value. Successful transmission of a message (including receipt of any requested acknowledgment) is indicated by setting the semaphore to zero and interrupting IRQ 2. If the requested acknowledgment does not arrive within the time limit, the semaphore is set to 0FFH by the adapter and an IRQ 2 interrupt is requested. If a collision occurs during transmission, an attempt the send message is repeated only after the semaphore value is tested. Thus, by resetting the semaphore, the PC can cancel long-running failed attempts to send a message. A value of 80H indicates frame rejection for bad format. A value of 0FEH means sending the frame and waiting for acknowledgment. |
+5, +6 | Message length in bytes. |
+7 - +606 | The text of the transmitted message (buffer). |
+607 | Rx1 semaphore. A semaphore value of zero enables receiving messages. When a message is received, a non-zero value is stored in the semaphore and IRQ 2 interrupt is executed, i.e. interrupt number 0AH. If the PC wants to receive another message, it must reset the semaphore. |
+608,+609 | Length of received message in bytes. |
+610 - +1209 | Buffer for receiving messages. |
+1210,+1211 | Reserved for adapter. |
+1212 | Rx2 traffic light, ... etc. as from Rx1. This is where the second message receiving area begins. |
+1817 | POST information. After the adapter is reset, the ZNET test takes place. Until 'OK' appears in POST, the PC is not allowed to do anything with the shared memory. After the reset and the POST OK message, there is a ZROM version string in the TX_BUF ASCIIZ. If 'ER' appears in the POST, the adapter is not functional and TX_BUF may contain ASCIIZ error message text. As long as there is an undefined value in the POST, nothing can be done. |
+1819 - +2047 | Adapter data. The PC is NEVER allowed to write here. |
It follows from the sizes of the buffers that messages of a maximum length of 600 bytes can be transmitted. One of the currently available two reception areas is used to receive messages.
+0 | Recipient's address. Address 0FFH has message meaning for all. |
+1 | Request confirmation (when <> 0) |
+2 | Sender's address |
+3 - +6 | Reserve, all zeros |
+7, +8 | Message length starting from byte +0 |
+9 | Message type |
+10 | Data - according to the specific type of message |