#ifndef ETHERDEV_H
#define ETHERDEV_H
-#include "REG51.h"
+#include "reg51.h"
extern unsigned char uip_buf[80];
extern unsigned int uip_len;
#define ETH_DATA_PORT P2 // Adjust this to suit hardware.
#define ETH_ADDR_PORT P1 // Adjust this to suit hardware.
-#define ETH_CTRL_PORT P3 // Adjust this to suit hardware.
-sbit IOW = ETH_CTRL_PORT^4; // ISA slot pin B13, RTL8019AS pin 30, active low
-sbit IOR = ETH_CTRL_PORT^5; // ISA slot pin B14, RTL8019AS pin 29, active low
-sbit NICE = ETH_CTRL_PORT^2; // A7, usado para activar placa de red
+#ifdef SDCC
+sbit at 0xB4 IOW; // ISA slot pin B13, RTL8019AS pin 30, active low
+sbit at 0xB5 IOR; // ISA slot pin B14, RTL8019AS pin 29, active low
+sbit at 0xB2 NICE; // A7, usado para activar placa de red
+#else
+#define CTRL_PORT P3 // Adjust this to suit hardware.
+sbit IOW = CTRL_PORT^4; // ISA slot pin B13, RTL8019AS pin 30, active low
+sbit IOR = CTRL_PORT^5; // ISA slot pin B14, RTL8019AS pin 29, active low
+sbit NICE = CTRL_PORT^2; // A7, usado para activar placa de red
+#endif
// Register base address
#define TXP 0x04 // Transmit packet bit
#define STA 0x02 // Start bit (a flag only)
#define STP 0x01 // Stop bit transceiver ctrl
+ // Shortcuts
+ #define PAGE0 0x00 // Page 0
+ #define PAGE1 0x40 // Page 1
+ #define PAGE2 0x80 // Page 2
+ #define PAGE3 0xC0 // Page 3 (Reserved!)
+ #define ABORT 0x20 // Abort/Complete DMA
+ #define READ 0x08 // Remote Read
+ #define WRITE 0x10 // Remote Write
+ #define SENDPKT 0x18 // Send Packet Command
#define RDMA 0x10 // Remote DMA port
#define RESET 0x18 // Reset port
#define LB1 0x04 // Loopback mode select bit 1
#define LB0 0x02 // Loopback mode select bit 0
#define CRC 0x01 // CRC generation inhibit bit
+ // Shortcuts
+ #define MODE0 0x00 // Loopback mode 0
+ #define MODE1 0x02 // Loopback mode 1
+ #define MODE2 0x04 // Loopback mode 2
+ #define MODE3 0x06 // Loopback mode 3
#define DCR ETH_REG_BASE + 0x0E // Data configuration register
// Data configuration register bits (write in page 0, read in page 2)
#define FT1 0x40 // FIFO threshold select bit 1
#define RXSDEF 0x80 /* deferring */
-bit etherdev_init(void);
+bool etherdev_init(void);
void etherdev_send(void);
unsigned int etherdev_read(void);