summaryrefslogtreecommitdiffstats
path: root/contrib/romid
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/romid')
-rw-r--r--contrib/romid/pktdrv.bat84
-rw-r--r--contrib/romid/readme8
-rw-r--r--contrib/romid/romid.c124
-rw-r--r--contrib/romid/setenvs.c200
4 files changed, 0 insertions, 416 deletions
diff --git a/contrib/romid/pktdrv.bat b/contrib/romid/pktdrv.bat
deleted file mode 100644
index 058fd4e92..000000000
--- a/contrib/romid/pktdrv.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@echo off
-if (%PKTDRV%)==(P) goto end
-A:\PKT\ROMID
-if (%ROMID%)==() goto select
-if (%ROMID%)==(NE) goto NE
-if (%ROMID%)==(WD) goto WD
-if (%ROMID%)==(3C509) goto 3C509
-if (%ROMID%)==(3C905B) goto 3C905B
-if (%ROMID%)==(EEPRO100) goto EEPRO100
-if (%PCIID%)==(10EC:8029) goto RTL8029
-if (%PCIID%)==(10EC:8139) goto RTL8139
-if (%PCIID%)==(11AD:0002) goto LITEON
-if (%PCIID%)==(1011:0009) goto DEC
-echo No Driver installed!
-goto end
-:select
-cls
-echo *** Select your network card.... ***
-echo.
-echo 1 -- Intel EtherExpress 100B PCI Adapter
-echo 2 -- 3Com 3C90X Etherlink III PCI Adapter
-echo 3 -- 3Com 3C5X9 Etherlink III ISA Adapter
-echo 4 -- NE2000 Novell ISA Adapter
-echo 5 -- Realtek 8029 PCI Adapter
-echo 6 -- Realtek 8139 PCI Adapter
-echo 7 -- SMC EliteUltra 8216 ISA Adapter
-echo 8 -- DEC21x4 Busmaster PCI Adapter
-echo 9 -- LiteOn PNIC Busmaster PCI Adapter
-echo.
-echo *** **************************** ***
-echo.
-choice /c123456789 /n Select:
-if errorlevel 9 goto LITEON
-if errorlevel 8 goto DEC
-if errorlevel 7 goto WD
-if errorlevel 6 goto RTL8139
-if errorlevel 5 goto RTL8029
-if errorlevel 4 goto NE
-if errorlevel 3 goto 3C509
-if errorlevel 2 goto 3C905B
-if errorlevel 1 goto EEPRO100
-goto end
-
-:EEPRO100
-A:\PKT\E100BPKT 0x60
-if errorlevel 0 goto ok
-goto end
-:NE
-A:\PKT\NE2000 0x60 11 0x0300
-if errorlevel 0 goto ok
-goto end
-:RTL8029
-A:\PKT\PCIPKT 0x60
-if errorlevel 0 goto ok
-goto end
-:RTL8139
-A:\PKT\RTSPKT 0x60
-if ERRORLEVEL 0 goto OK
-goto end
-:WD
-A:\PKT\SMC_WD 0x60
-if errorlevel 0 goto ok
-goto end
-:3C509
-A:\PKT\3C5X9PD 0x60
-if errorlevel 0 goto ok
-goto end
-:3C905B
-A:\PKT\3C90XPD 0x60
-if errorlevel 0 goto ok
-goto end
-:LITEON
-A:\PKT\FEPD 0x60
-if ERRORLEVEL 0 goto ok
-goto end
-:DEC
-A:\PKT\ETHPCI 0x60
-if ERRORLEVEL 0 goto ok
-goto end
-
-:ok
-SET PKTDRV=P
-:end
-
diff --git a/contrib/romid/readme b/contrib/romid/readme
deleted file mode 100644
index 6c6c500aa..000000000
--- a/contrib/romid/readme
+++ /dev/null
@@ -1,8 +0,0 @@
-This simple utility has currently no correct error checking.
-If your environment space couldn't hold up the variables, the
-program breaks without an error message, so be sure to add a
-line similar to the following to your config.sys:
-SHELL=A:\COMMAND.COM A:\ /P/E:2048
-
-The batch is a sample which shows how it could be used for those
-one not familar with batch files and environment variables. \ No newline at end of file
diff --git a/contrib/romid/romid.c b/contrib/romid/romid.c
deleted file mode 100644
index f6049bfdf..000000000
--- a/contrib/romid/romid.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* This little program is my try to provide information about the
- EtherBoot rom via environment variables to a batch file. This
- could be done better, I think, but it works...
- The program compiles with Borland C 3.1; other versions not tested.
- The C code for setting the environment variables I got from an
- archive, it was written by Richard Marks <rmarks@KSP.unisys.COM>.
- ROMID is written by Guenter Knauf <eflash@gmx.net>
-*/
-#define VERSION "0.6"
-#define VDATE "2003-08-24"
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define ROMSTART 0xC8000
-#define ROMEND 0xE8000
-#define ROMINCREMENT 0x00800
-#define ROMMASK 0x03FFF
-
-int verbose = 0;
-
-int settheenv(char *symbol, char *val);
-
-static int rom_scan(const unsigned char huge *rom,long offset,long len) {
- long size,i,j;
- char symbol[16];
- char val[64];
- char romid[64];
- char *rptr;
-
- if (rom[offset] != 0x55 || rom[offset+1] != 0xAA)
- return 0;
-
- size = (long)rom[offset+2]*512L;
- if (verbose) {
- printf("Found ROM header at %04lX:0000; announces %ldk image\n", offset/16,(size+512)/1024);
- if (offset & ROMMASK)
- printf(" This is a unusual position; not all BIOSs might find it.\n"
- " Try to move to a 16kB boundary.\n");
- if (size > len) {
- printf(" This image extends beyond %04X:0000. It clashes with the system BIOS\n", ROMEND/16);
- size = len;
- }
- }
-
- for (i=0; i<64; i++) {
- if (rom[offset+size-3-i] == 0xff)
- break;
- }
- if (20<i && i<63) {
- i--;
- for (j=0; j<i; j++)
- val[j] = rom[offset+size-3-i+j];
- val[i] = 0;
- } else
- return 0;
-
- if (strstr(val, "therboot") == NULL)
- return 0;
-
- if (verbose)
- printf("ROM Signature '%s'\n", val);
- if ((rptr = strstr(val, "rom")) != NULL) {
- for (i=1; i<4; i++) {
- rptr--;
- if (rptr[0] == 0x2E)
- break;
- }
- i = 0;
- while (!(rptr[0] == 0x20 || rptr < val)) {
- i++;
- rptr--;
- }
- rptr++;
- i--;
- strncpy(romid, rptr, i);
- romid[i] = 0;
- if (verbose)
- printf("ROM Driver ID '%s'\n", romid);
- strcpy(symbol, "ROMID");
- if (settheenv(symbol, romid))
- printf("Error setting evironment var %s with value %s\n", symbol, romid);
- } else {
- if (verbose)
- printf("Couldnt find driver name!\n");
- return 0;
- }
- if (rom[offset+0x1C] == 'P' && rom[offset+0x1D] == 'C' && rom[offset+0x1E] == 'I') {
- sprintf(val, "%02X%02X:%02X%02X", rom[offset+0x21], rom[offset+0x20],
- rom[offset+0x23], rom[offset+0x22]);
- if (verbose)
- printf("ROM Vendor ID '%s'\n", val);
- strcpy(symbol, "PCIID");
- if (settheenv(symbol, val))
- printf("Error setting evironment var %s with value %s\n", symbol, val);
- }
- return 1;
-}
-
-/* **************** main stuff **************** */
-int main (int argc, char *argv[]) {
- long i;
-
- printf("\nROM-ID for Etherboot v%s (c) G. Knauf %s\n", VERSION, VDATE);
- if (argc > 1) {
- /* parse input parameters */
- for (argc--, argv++; *argv; argc--, argv++) {
- if ((strnicmp (*argv, "-", 1) == 0) || (strnicmp (*argv, "/", 1) == 0)) {
- if ((strnicmp (*argv, "-V", 2) == 0) || (strnicmp (*argv, "/V", 2) == 0)) {
- verbose = 1;
- } else {
- printf("Usage: %s [-v]\n");
- }
- }
- }
- }
- for (i = ROMEND; (i -= ROMINCREMENT) >= ROMSTART;)
- if (rom_scan(0,i,ROMEND-i))
- break;
-
- return 0;
-}
diff --git a/contrib/romid/setenvs.c b/contrib/romid/setenvs.c
deleted file mode 100644
index e18e399e8..000000000
--- a/contrib/romid/setenvs.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* subroutine to put a value string into an environment symbol.
- Uses the controling command.com environment, not the programs.
- This means that the env variable is set so other routines in
- a .BAT file may use it.
-
- call: settheenv (char * symbol, char * val);
- symbol is an asciiz string containing the env variable name,
- val is an asciiz string containing the value to assign to this vbl.
-
- returns: 0 = OK,
- 1 = failure.
- failure is not unlikely. The env block may be full. Or on some
- systems the env block might not be found
-
- SETENVS.C was written by Richard Marks <rmarks@KSP.unisys.COM>.
-*/
-
-
-#include <stdio.h>
-#include <dos.h>
-#include <string.h>
-#include <stdlib.h>
-
-typedef struct {
- char fill1[0x0A];
- int *prev_term_handler;
- int *prev_ctrl_c;
- int *prev_crit_error;
- char fill2[0x16];
- int envir_seg;
-} psp;
-
-typedef struct {
- char type;
- int psp_segment;
- int num_segments;
- char fill[11];
- char arena_data;
-} arena;
-
-
-#define NORMAL_ATYPE 0x4D
-#define LAST_ATYPE 0x5A
-
-
-static arena * get_next_arena (arena * ap) {
- return( MK_FP( FP_SEG(ap)+1+ap->num_segments, 0) );
-}
-
-/* returns 0 if passed pointer is to an arena, else returns 1 */
-static int is_valid_arena (arena * ap) {
- arena * ap1;
- if (ap->type == NORMAL_ATYPE &&
- (ap1=get_next_arena(ap))->type == NORMAL_ATYPE &&
- ( (ap1=get_next_arena(ap1))->type == NORMAL_ATYPE ||
- ap1->type == LAST_ATYPE) )
- return(0);
- return (1);
-}
-
-
-static arena * get_first_arena () {
-/* return pointer to the first arena.
- * scan memory for a 0x4D on a segment start,
- * see if this points to another two levels of arena
- */
- arena * ap, * ap1;
- int * temp;
- int segment;
-
- for (segment=0; segment<_CS; segment++) {
- ap = MK_FP(segment, 0);
- if ( is_valid_arena (ap) == 0) return (ap);
- }
- return(NULL);
-} /* end get_first_arena */
-
-
-static int is_valid_env (char * ad, int num_segs) {
- char * base_ad;
- base_ad = ad;
- while ( (*ad) && (((ad-base_ad)>>4) < num_segs) ) {
- if (strnicmp(ad, "COMSPEC=", 8)==0) return(0);
- ad += strlen(ad) + 1;
- }
- return (1);
-}
-
-
-static arena * get_arena_of_environment () {
-/* to get the arena of first environment block:
- First get segment of COMMAND.COM from segment of previous critical err code.
- Then scan all the arenas for an environment block with a matching PSP
- segment */
-
-arena * ap;
-psp * pspp, * pspc;
-unsigned int i, ccseg;
-
-/* set pspp to psp of this program */
-pspp = MK_FP(_psp,0);
-
-#ifdef DEBUG
-printf("prog psp=%p\n",pspp);
-#endif
-
-/* set pspc to psp of COMMAND.COM, back up a bit to get it if needed */
-ccseg = FP_SEG (pspp->prev_crit_error);
-if ( (i=ccseg-32) < 60) i=60;
-
-while (ccseg>i) {
- pspc = MK_FP (ccseg, 0);
- if ( is_valid_arena((arena *) pspc) == 0) goto L1;
- ccseg--;
-}
-return (NULL);
-
-L1: pspc = MK_FP (++ccseg, 0);
-#ifdef DEBUG
-printf("comm.com=%p\n",pspc);
-#endif
-
-/* first see if env seg in command.com points to valid env block
- if env seg is in a valid arena, then arena must point to this command.com
- else assume env block is fabricated like for 4DOS, use 128 bytes */
-
-ap = MK_FP (pspc->envir_seg-1, 0);
-i = ap->num_segments;
-
-if (is_valid_arena (ap) == 0) {
- if (ap->psp_segment != FP_SEG(pspc)) goto L2;
-} else {
- i = 9;
-}
-
-if ( is_valid_env (&ap->arena_data, i) == 0 )
- return (ap);
-
-/* command.com did not so point, search thru all env blocks */
-
-L2:
-if ( (ap=get_first_arena()) != NULL ) {
- while (ap->type != LAST_ATYPE) {
-#ifdef DEBUG
- printf("%p\n",ap);
-#endif
- if (ap->psp_segment == FP_SEG(pspc) &&
- is_valid_env (&ap->arena_data, ap->num_segments)==0 )
- return (ap);
-
- ap = get_next_arena(ap);
- }
-} return(NULL);
-} /* end get_arena_of_environment */
-
-/*****************************************************************************/
-
-int settheenv(char * symbol, char * val) {
-int total_size,
- needed_size=0,
- strlength;
-char * sp, *op, *envir;
-char symb_len=strlen(symbol);
-char found=0;
-arena * ap;
-
-strupr(symbol);
-
-/* first, can COMMAND.COM's envir block be found ? */
-if ( (ap=get_arena_of_environment()) == NULL)
- return(1);
-
-/* search to end of the envir block, get sizes */
-total_size = 16 * ap->num_segments;
-envir = &ap->arena_data;
-op=sp=envir;
-while (*sp) {
- strlength = strlen(sp)+1;
- if ( *(sp+symb_len)=='=' &&
- strnicmp(sp,symbol,symb_len)==0 )
- found=1;
- else {
- needed_size += strlength;
- if (found) strcpy(op,sp);
- op = &op[strlength];
- }
- sp += strlength;
-}
-*op=0;
-if (strlen(val) > 0) {
- needed_size += 3 + strlen(symbol) + strlen(val);
- if (needed_size > total_size)
- return(1); /* could mess with environment expansion here */
-
- strcpy(op, symbol); strcat(op, "="); strcat(op, val);
- op += strlen(op)+1;
- *op = 0;
-}
-return(0);
-} /* end setheenv subroutine */