home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / lan / drivrs30 / defs.asm < prev    next >
Assembly Source File  |  1989-06-08  |  3KB  |  86 lines

  1. majver    equ    3
  2.  
  3. ;  Copyright, 1988, 1989, Russell Nelson
  4.  
  5. ;   This program is free software; you can redistribute it and/or modify
  6. ;   it under the terms of the GNU General Public License as published by
  7. ;   the Free Software Foundation, version 1.
  8. ;
  9. ;   This program is distributed in the hope that it will be useful,
  10. ;   but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. ;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. ;   GNU General Public License for more details.
  13. ;
  14. ;   You should have received a copy of the GNU General Public License
  15. ;   along with this program; if not, write to the Free Software
  16. ;   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  
  18.     .286
  19.  
  20. HT    equ    09h
  21. CR    equ    0dh
  22. LF    equ    0ah
  23.  
  24. ;
  25. ;  Packet Driver Error numbers
  26. BAD_HANDLE    equ    1        ;invalid handle number
  27. NO_CLASS    equ    2        ;no interfaces of specified class found
  28. NO_TYPE        equ    3        ;no interfaces of specified type found
  29. NO_NUMBER    equ    4        ;no interfaces of specified number found
  30. BAD_TYPE    equ    5        ;bad packet type specified
  31. NO_MULTICAST    equ    6        ;this interface does not support
  32.                     ;multicast
  33. CANT_TERMINATE    equ    7        ;this packet driver cannot terminate
  34. BAD_MODE    equ    8        ;an invalid receiver mode was specified
  35. NO_SPACE    equ    9        ;operation failed because of
  36.                     ;insufficient space
  37. TYPE_INUSE    equ    10        ;the type had previously been accessed,
  38.                     ;and not released.
  39. BAD_COMMAND    equ    11        ;the command was out of range, or not
  40.                     ;implemented
  41. CANT_SEND    equ    12        ;the packet couldn't be sent (usually
  42.                     ;hardware error)
  43. CANT_SET    equ    13        ;hardware address couldn't be changed
  44.                     ;(more than 1 handle open)
  45. BAD_ADDRESS    equ    14        ;hardware address has bad length or
  46.                     ;format
  47.  
  48.  
  49. RUNT        equ    60        ;smallest legal size packet, no fcs
  50. GIANT        equ    1514        ;largest legal size packet, no fcs
  51.  
  52. EADDR_LEN    equ    6        ;Ethernet address length.
  53.  
  54. ;The following two macros are used to manipulate port addresses.
  55. ;Use loadport to initialize dx.  Use setport to set a specific port on
  56. ;the board.  setport remembers what the current port number is, but beware!
  57. ;setport assumes that code is being executed in the same order as the
  58. ;code is presented in the source file.  Whenever this assumption is violated,
  59. ;you need to enter another loadport.  Some, but not all examples are:
  60. ;in a loop with multiple setports, or a backward jump over a setport, or
  61. ;a forward jump over a setport.  If you have any doubt, consult the
  62. ;individual driver sources.
  63. loadport    macro
  64.     mov    dx,io_addr
  65. port_no    =    0
  66.     endm
  67.  
  68. ;change the port number from the current value to the new value.
  69. setport    macro    new_port_no
  70.     ifdef    no_confidence        ;define if you suspect that you don't
  71.         loadport        ;  have enough loadports, i.e. dx is
  72.     endif                ;  set to the wrong port.
  73.     if    new_port_no - port_no EQ 1
  74.         inc    dx
  75.     else
  76.         if    new_port_no - port_no EQ -1
  77.             dec    dx
  78.         else
  79.             if    new_port_no - port_no NE 0
  80.                 add    dx,new_port_no - port_no
  81.             endif
  82.         endif
  83.     endif
  84. port_no    =    new_port_no
  85.     endm
  86.