--- arcether.asm.old	Tue Dec 27 00:26:30 1994
+++ arcether.asm.new	Tue Dec 27 00:26:36 1994
@@ -1,4 +1,9 @@
 ;History:180,18
+;Dec 23, 1994   Add patches to fix PC/TCP compatibility, etc
+;               -- from Vladimir Shergin <vsher@sao.stavropol.su>
+;Nov 23, 1994   Increase Increase RST_IVAL from 7 to 14 for PC110.
+;               Let address_len default to 6, not ARCADDR_LEN
+;               -- from Stephen A. Wood <saw@hallc1.cebaf.gov>
 ;Sun Jan 05 22:13:57 1992 increased RST_IVAL from 4 to 7.
 ;Tue Feb 27 10:56:15 1990 send_pkt wasn't timing out properly.
 version equ     1
@@ -46,7 +51,7 @@
 SW_RST          equ     8
 
 ; time needed to do various things (in clock ticks)
-RST_IVAL        equ     7               ;reset
+RST_IVAL        equ     15              ;reset
 SEND_IVAL       equ     4               ;send
 ACK_IVAL        equ     4               ;acknowledge
 
@@ -479,7 +484,7 @@
 Send_ARP_loop:                          ;check ARP destination for broadcast
         lodsw
         cmp    ax,0ffffh
-        je     Send_ARP_1
+        jne    Send_ARP_1           ; vsher - changed je to jne
         loop   Send_ARP_loop
         xor    al,al
         jmp    Send_ARP_2
@@ -736,13 +741,14 @@
         cmp     al,213
         jne     recv_new_6
         mov     recv_protocol,0608h     ;ARP Packet
-        mov     cx,42
+        mov     cx,60           ; vsher - changed 42 to 60
+                                            ; (minimum ethernet packet size)
         jmp     recv_new_10
 recv_new_6:
         cmp     al,214
         jne     recv_new_7
         mov     recv_protocol,3580h     ;RARP Packet
-        mov     cx,42
+        mov     cx,60           ; vsher - changed 42 to 60
         jmp     recv_new_10
 
 recv_new_7:
@@ -862,7 +868,8 @@
         stosb
         jmp     recv_client_2
 recv_hw_bcast:
-        mov    ax,0ffffh              ;Target was Broadcast
+;       mov    ax,0ffffh              ;Target was Broadcast
+        mov    ax,0                   ; vsher - proper ARP padding is 0
         mov    cx,3
         rep    stosw
 recv_client_2:
@@ -910,7 +917,9 @@
         public  copyright_msg
 copyright_msg   db      "Packet driver for Novell ARCnet TCP/IP and IPX version ",'0'+(majver / 10),'0'+(majver mod 10),".",'0'+version,CR,LF
                 db      "Portions Copyright 1988 Philip Prindeville",CR,LF
-                db      "Copyright 1991 Martin Wilmes",CR,LF,'$'
+                db      "Copyright 1991 Martin Wilmes",CR,LF
+                db      "Slight modifications by Avery Pennarun and Stephen A. Wood",CR,LF
+                db      "Further modifications by Vladimir Shergin",CR,LF,'$'
 
 no_arcnet_msg   db      "No ARCnet found at that address.",CR,LF,'$'
 failed_test_msg db      "Failed self test.",CR,LF,'$'
@@ -1014,9 +1023,11 @@
 etopen_3:
         mov     al,es:[1]
         mov     rom_address[5],al
+; remove this - defaulting to 6 makes ethernet emulation work better. <saw>
         mov     address_len,ARCADDR_LEN
 etopen_2:
-
+        jmp     etopen_4                ; vsher - test flag is not
+                                ;  supported on all cards.
 ;another simple diagnostic:
 ;       force test flag on in RIM,
 ;       check to see that it is set,
