mirror of
https://github.com/gbowne1/ClassicOS.git
synced 2024-11-22 06:06:52 -08:00
adding a NE2000 compatible network driver and updated README.md
This commit is contained in:
parent
ad28352c29
commit
d175b403da
25
README.md
25
README.md
@ -10,6 +10,9 @@ These are the versions I use, but please use the latest possible versions.
|
|||||||
- QEMU x86_64
|
- QEMU x86_64
|
||||||
- GNU ld (GNU Binutils for Debian) 2.31.1 or newer
|
- GNU ld (GNU Binutils for Debian) 2.31.1 or newer
|
||||||
- dd (coreutils) 8.30
|
- dd (coreutils) 8.30
|
||||||
|
- as (GNU Binutils for Debian) 2.31.1 or newer
|
||||||
|
- ld (GNU Binutils for Debian) 2.31.1 or newer
|
||||||
|
- cc (Debian 8.3.0-6) 8.3.0
|
||||||
|
|
||||||
The C and C++ standards we are using for this are C17 and C++20
|
The C and C++ standards we are using for this are C17 and C++20
|
||||||
|
|
||||||
@ -20,4 +23,26 @@ For C/C++:
|
|||||||
- g++ version 8.3.0 (Debian 8.3.0-6)
|
- g++ version 8.3.0 (Debian 8.3.0-6)
|
||||||
- GNU gdb (Debian 8.2.1-2+b3) 8.2.1
|
- GNU gdb (Debian 8.2.1-2+b3) 8.2.1
|
||||||
- lldb version 7.0.1
|
- lldb version 7.0.1
|
||||||
|
- Coreutils 8.30
|
||||||
|
- Binutils 2.31.1
|
||||||
|
- Bison 3.3.2
|
||||||
|
- Diffutils 3.7
|
||||||
|
- Findutils 4.6.0.225
|
||||||
|
- Gawk 4.2.1
|
||||||
|
- Grep 3.3
|
||||||
|
- Gzip 1.9
|
||||||
|
- M4 1.4.18
|
||||||
|
- Make 4.2.1
|
||||||
|
- Patch 2.7.6
|
||||||
|
- Perl 5.28.1
|
||||||
|
- Python 3.7.3
|
||||||
|
- Sed 4.7
|
||||||
|
- Tar 1.30
|
||||||
|
- Texinfo 6.5, Xz 5.2.4
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Booting from 1.2M, 1.44MB, hard drive or ISO9660
|
||||||
|
- FAT12, FAT16, FAT32, NTFS and ext2 support
|
||||||
|
- GUI
|
||||||
|
-
|
41
src/drivers/network/ne2000.c
Normal file
41
src/drivers/network/ne2000.c
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
// NE2000 registers
|
||||||
|
#define NE2000_COMMAND 0x00
|
||||||
|
#define NE2000_PSTART 0x01
|
||||||
|
#define NE2000_PSTOP 0x02
|
||||||
|
// ... more registers ...
|
||||||
|
|
||||||
|
// NE2000 commands
|
||||||
|
#define NE2000_CMD_START 0x02
|
||||||
|
#define NE2000_CMD_STOP 0x01
|
||||||
|
// ... more commands ...
|
||||||
|
|
||||||
|
// Write a value to a NE2000 register
|
||||||
|
void ne2000_write_reg(uint16_t base_addr, uint8_t reg, uint8_t value) {
|
||||||
|
// Write to the register
|
||||||
|
// This will depend on your specific hardware interface
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read a value from a NE2000 register
|
||||||
|
uint8_t ne2000_read_reg(uint16_t base_addr, uint8_t reg) {
|
||||||
|
// Read from the register
|
||||||
|
// This will depend on your specific hardware interface
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the NE2000 card
|
||||||
|
void ne2000_init(uint16_t base_addr) {
|
||||||
|
// Stop the NE2000 card
|
||||||
|
ne2000_write_reg(base_addr, NE2000_COMMAND, NE2000_CMD_STOP);
|
||||||
|
|
||||||
|
// Set up the packet buffer
|
||||||
|
ne2000_write_reg(base_addr, NE2000_PSTART, 0x40);
|
||||||
|
ne2000_write_reg(base_addr, NE2000_PSTOP, 0x80);
|
||||||
|
|
||||||
|
// ... more initialization ...
|
||||||
|
|
||||||
|
// Start the NE2000 card
|
||||||
|
ne2000_write_reg(base_addr, NE2000_COMMAND, NE2000_CMD_START);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ... more driver functions ..
|
23
src/drivers/network/ne2000.h
Normal file
23
src/drivers/network/ne2000.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef NE2000_H
|
||||||
|
#define NE2000_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
// NE2000 registers
|
||||||
|
#define NE2000_COMMAND 0x00
|
||||||
|
#define NE2000_PSTART 0x01
|
||||||
|
#define NE2000_PSTOP 0x02
|
||||||
|
// ... more registers ...
|
||||||
|
|
||||||
|
// NE2000 commands
|
||||||
|
#define NE2000_CMD_START 0x02
|
||||||
|
#define NE2000_CMD_STOP 0x01
|
||||||
|
// ... more commands ...
|
||||||
|
|
||||||
|
// Function prototypes
|
||||||
|
void ne2000_write_reg(uint16_t base_addr, uint8_t reg, uint8_t value);
|
||||||
|
uint8_t ne2000_read_reg(uint16_t base_addr, uint8_t reg);
|
||||||
|
void ne2000_init(uint16_t base_addr);
|
||||||
|
// ... more function prototypes ...
|
||||||
|
|
||||||
|
#endif // NE2000_H
|
Loading…
Reference in New Issue
Block a user