/kernel/branches/net/docs/loader_doc.txt |
---|
File deleted |
/kernel/branches/net/docs/sysfuncr.txt |
---|
File deleted |
/kernel/branches/net/docs/apm.txt |
---|
File deleted |
/kernel/branches/net/docs/sysfuncs.txt |
---|
File deleted |
/kernel/branches/net/docs |
---|
Property changes: |
Deleted: svn:mergeinfo |
/kernel/branches/net/skin/me_skin.inc |
---|
File deleted |
\ No newline at end of file |
/kernel/branches/net/skin/oper_1.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/kernel/branches/net/skin/oper.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/kernel/branches/net/skin/default.asm |
---|
File deleted |
/kernel/branches/net/skin/myblue.dtp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/kernel/branches/net/skin/left_1.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/kernel/branches/net/skin/left.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/kernel/branches/net/skin/base_1.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/kernel/branches/net/skin/base.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/kernel/branches/net/skin |
---|
Property changes: |
Deleted: svn:mergeinfo |
/kernel/branches/net/bootloader/readme |
---|
File deleted |
/kernel/branches/net/bootloader/boot_fat12.asm |
---|
File deleted |
/kernel/branches/net/bootloader/floppy1743.inc |
---|
File deleted |
/kernel/branches/net/bootloader/floppy1680.inc |
---|
File deleted |
/kernel/branches/net/bootloader/floppy2880.inc |
---|
File deleted |
/kernel/branches/net/bootloader/floppy1440.inc |
---|
File deleted |
/kernel/branches/net/bootloader |
---|
Property changes: |
Deleted: svn:mergeinfo |
/kernel/branches/net/applications/netcfg/drivers.inc |
---|
0,0 → 1,89 |
driverlist: |
db 'RTL8139',0 |
dd 0x813910ec |
dd 0x813810ec |
dd 0x12111113 |
dd 0x13601500 |
dd 0x13604033 |
dd 0x13001186 |
dd 0x13401186 |
dd 0xab0613d1 |
dd 0xa1171259 |
dd 0xa11e1259 |
dd 0xab0614ea |
dd 0xab0714ea |
dd 0x123411db |
dd 0x91301432 |
dd 0x101202ac |
dd 0x0106018a |
dd 0x1211126c |
dd 0x81391743 |
dd 0x8139021b |
dd 0x0 ; end |
db 'RTL8029',0 |
dd 0x802910ec |
dd 0x0 |
db 'I8255X',0 |
dd 0x12098086 |
dd 0x10298086 |
dd 0x12298086 |
dd 0x10308086 |
dd 0x24498086 |
dd 0x0 |
db 'RTL8169',0 |
dd 0x816810ec |
dd 0x816910ec |
dd 0x011616ec |
dd 0x43001186 |
dd 0x0 |
db '3C59X',0 |
dd 0x590010b7 |
dd 0x592010b7 |
dd 0x597010b7 |
dd 0x595010b7 |
dd 0x595110b7 |
dd 0x595210b7 |
dd 0x900010b7 |
dd 0x900110b7 |
dd 0x900410b7 |
dd 0x900510b7 |
dd 0x900610b7 |
dd 0x900A10b7 |
dd 0x905010b7 |
dd 0x905110b7 |
dd 0x905510b7 |
dd 0x905810b7 |
dd 0x905A10b7 |
dd 0x920010b7 |
dd 0x980010b7 |
dd 0x980510b7 |
dd 0x764610b7 |
dd 0x505510b7 |
dd 0x605510b7 |
dd 0x605610b7 |
dd 0x5b5710b7 |
dd 0x505710b7 |
dd 0x515710b7 |
dd 0x525710b7 |
dd 0x656010b7 |
dd 0x656210b7 |
dd 0x656410b7 |
dd 0x450010b7 |
dd 0x0 |
db 'SIS900',0 |
dd 0x09001039 |
dd 0x70161039 |
dd 0x0 |
db 'PCNET32',0 |
dd 0x20001022 |
dd 0x26251022 |
dd 0x20011022 |
dd 0x0 |
dd 0x0 ; driverlist end |
/kernel/branches/net/applications/netcfg/macros.inc |
---|
0,0 → 1,543 |
@^ fix macro comment { |
^@ fix } |
; ------------------------- |
macro library [lname,fname] |
{ |
forward |
dd __#lname#_library_table__,__#lname#_library_name__ |
common |
dd 0 |
forward |
align 4 |
__#lname#_library_name__ db fname,0 |
} |
macro import lname,[name,sname] |
{ |
common |
align 4 |
__#lname#_library_table__: |
forward |
if used name |
name dd __#name#_import_name__ |
end if |
common |
dd 0 |
forward |
if used name |
align 4 |
__#name#_import_name__ db sname,0 |
end if |
} |
macro export [name,sname] |
{ |
forward |
dd __#name#_export_name__,name |
common |
dd 0 |
forward |
align 4 |
__#name#_export_name__ db sname,0 |
} |
; ------------------------- |
macro m2m dest,src { |
push src |
pop dest |
} |
macro iglobal { |
IGlobals equ IGlobals, |
macro __IGlobalBlock { } |
macro uglobal { |
UGlobals equ UGlobals, |
macro __UGlobalBlock { } |
endg fix } ; Use endg for ending iglobal and uglobal blocks. |
macro IncludeIGlobals{ |
macro IGlobals dummy,[n] \{ __IGlobalBlock |
purge __IGlobalBlock \} |
match I, IGlobals \{ I \} } |
macro IncludeUGlobals{ |
macro UGlobals dummy,[n] \{ |
\common |
\local begin, size |
begin = $ |
virtual at $ |
\forward |
__UGlobalBlock |
purge __UGlobalBlock |
\common |
size = $ - begin |
end virtual |
rb size |
\} |
match U, UGlobals \{ U \} } |
uglobal |
endg |
iglobal |
endg |
; new application structure |
macro meos_app_start |
{ |
use32 |
org 0x0 |
db 'MENUET01' |
dd 0x01 |
dd __start |
dd __end |
dd __memory |
dd __stack |
if used __params & ~defined __params |
dd __params |
else |
dd 0x0 |
end if |
dd 0x0 |
} |
MEOS_APP_START fix meos_app_start |
macro code |
{ |
__start: |
} |
CODE fix code |
macro data |
{ |
__data: |
IncludeIGlobals |
} |
DATA fix data |
macro udata |
{ |
if used __params & ~defined __params |
__params: |
db 0 |
__end: |
rb 255 |
else |
__end: |
end if |
__udata: |
IncludeUGlobals |
} |
UDATA fix udata |
macro meos_app_end |
{ |
align 32 |
rb 2048 |
__stack: |
__memory: |
} |
MEOS_APP_END fix meos_app_end |
; macro for defining multiline text data |
struc mstr [sstring] |
{ |
forward |
local ssize |
virtual at 0 |
db sstring |
ssize = $ |
end virtual |
dd ssize |
db sstring |
common |
dd -1 |
} |
; macro for defining multiline text data |
struc mls [sstring] |
{ |
forward |
local ssize |
virtual at 0 |
db sstring ; mod |
ssize = $ |
end virtual |
db ssize |
db sstring |
common |
db -1 ; mod |
} |
; strings |
macro sz name,[data] { ; from MFAR [mike.dld] |
common |
if used name |
name db data |
.size = $-name |
end if |
} |
macro lsz name,[lng,data] { ; from MFAR [mike.dld] |
common |
if used name |
label name |
forward |
if lang eq lng |
db data |
end if |
common |
.size = $-name |
end if |
} |
macro szc name,elsz,[data] { ; from MFAR [mike.dld] |
common |
local s,m |
m = 0 |
if used name |
label name |
forward |
virtual at 0 |
db data |
s = $ |
end virtual |
d#elsz s |
if m < s |
m = s |
end if |
db data |
common |
.size = $-name |
.maxl = m |
end if |
} |
macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld] |
common |
local s,m,c |
m = 0 |
c = 0 |
if used name |
label name |
forward |
if lang eq lng |
virtual at 0 |
db data |
s = $ |
end virtual |
d#elsz s |
if m < s |
m = s |
end if |
db data |
c = c+1 |
end if |
common |
.size = $-name |
.maxl = m |
.count = c |
end if |
} |
; easy system call macro |
macro mpack dest, hsrc, lsrc |
{ |
if (hsrc eqtype 0) & (lsrc eqtype 0) |
mov dest, (hsrc) shl 16 + lsrc |
else |
if (hsrc eqtype 0) & (~lsrc eqtype 0) |
mov dest, (hsrc) shl 16 |
add dest, lsrc |
else |
mov dest, hsrc |
shl dest, 16 |
add dest, lsrc |
end if |
end if |
} |
macro __mov reg,a,b { ; mike.dld |
if (~a eq)&(~b eq) |
mpack reg,a,b |
else if (~a eq)&(b eq) |
mov reg,a |
end if |
} |
__CPU_type equ p5 |
SYSENTER_VAR equ 0 |
macro mcall a,b,c,d,e,f { ; mike.dld, updated by Ghost for Fast System Calls |
local ..ret_point |
__mov eax,a |
__mov ebx,b |
__mov ecx,c |
__mov edx,d |
__mov esi,e |
__mov edi,f |
if __CPU_type eq p5 |
int 0x40 |
else |
if __CPU_type eq p6 |
push ebp |
mov ebp, esp |
push ..ret_point ; it may be 2 or 5 byte |
sysenter |
..ret_point: |
pop edx |
pop ecx |
else |
if __CPU_type eq k6 |
push ecx |
syscall |
pop ecx |
else |
display 'ERROR : unknown CPU type (set to p5)', 10, 13 |
__CPU_type equ p5 |
int 0x40 |
end if |
end if |
end if |
} |
; ------------------------- |
macro header a,[b] { |
common |
use32 |
org 0 |
db 'MENUET',a |
forward |
if b eq |
dd 0 |
else |
dd b |
end if } |
macro section name { align 16 |
label name } |
macro func name { |
if ~used name |
display 'FUNC NOT USED: ',`name,13,10 |
else |
align 4 |
name: |
;diff16 `name,0,name |
;pushad |
;pushfd |
;dps `name |
;newline |
;mcall 5,1 |
;popfd |
;popad |
} |
macro endf { end if } |
macro diff16 title,l1,l2 |
{ |
local s,d |
s = l2-l1 |
display title,': 0x' |
repeat 8 |
d = '0' + s shr ((8-%) shl 2) and $0F |
if d > '9' |
d = d + 'A'-'9'-1 |
end if |
display d |
end repeat |
display 13,10 |
} |
macro diff10 title,l1,l2 |
{ |
local s,d,z,m |
s = l2-l1 |
z = 0 |
m = 1000000000 |
display title,': ' |
repeat 10 |
d = '0' + s / m |
s = s - (s/m)*m |
m = m / 10 |
if d <> '0' |
z = 1 |
end if |
if z <> 0 |
display d |
end if |
end repeat |
display 13,10 |
} |
; optimize the code for size |
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp> |
macro add arg1,arg2 |
{ |
if (arg2 eqtype 0) |
if (arg2) = 1 |
inc arg1 |
else |
add arg1,arg2 |
end if |
else |
add arg1,arg2 |
end if |
} |
macro sub arg1,arg2 |
{ |
if (arg2 eqtype 0) |
if (arg2) = 1 |
dec arg1 |
else |
sub arg1,arg2 |
end if |
else |
sub arg1,arg2 |
end if |
} |
macro mov arg1,arg2 |
{ |
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0')) |
if (arg2) = 0 |
xor arg1,arg1 |
else if (arg2) = 1 |
xor arg1,arg1 |
inc arg1 |
else if (arg2) = -1 |
or arg1,-1 |
else if (arg2) > -128 & (arg2) < 128 |
push arg2 |
pop arg1 |
else |
mov arg1,arg2 |
end if |
else |
mov arg1,arg2 |
end if |
} |
macro RGB [a] { |
common |
match (r=,g=,b),a \{ |
\dd ((r) shl 16) or ((g) shl 8) or (b) |
\} |
} |
struc POINT _t,_dx,_dy { |
.x _t _dx |
.y _t _dy |
} |
; structure definition helper |
include 'struct.inc' |
struct RECT |
left dd ? |
top dd ? |
right dd ? |
bottom dd ? |
ends |
struct BOX |
left dd ? |
top dd ? |
width dd ? |
height dd ? |
ends |
; structures used in MeOS |
struct process_information |
cpu_usage dd ? ; +0 |
window_stack_position dw ? ; +4 |
window_stack_value dw ? ; +6 |
dw ? ; +8 |
process_name rb 12 ; +10 |
memory_start dd ? ; +22 |
used_memory dd ? ; +26 |
PID dd ? ; +30 |
box BOX ; +34 |
slot_state dw ? ; +50 |
dw ? ; +52 |
client_box BOX ; +54 |
wnd_state db ? ; +70 |
rb (1024-71) |
ends |
struct system_colors |
frame dd ? |
grab dd ? |
grab_button dd ? |
grab_button_text dd ? |
grab_text dd ? |
work dd ? |
work_button dd ? |
work_button_text dd ? |
work_text dd ? |
work_graph dd ? |
ends |
struct FILEDATE |
Second db ? |
Minute db ? |
Hour db ? |
db ? |
Day db ? |
Month db ? |
Year dw ? |
ends |
struct FILEINFO |
Attributes dd ? |
IsUnicode db ? |
db 3 dup(?) |
DateCreate FILEDATE |
DateAccess FILEDATE |
DateModify FILEDATE |
Size dq ? |
ends |
; constants |
; events |
EV_IDLE = 0 |
EV_TIMER = 0 |
EV_REDRAW = 1 |
EV_KEY = 2 |
EV_BUTTON = 3 |
EV_EXIT = 4 |
EV_BACKGROUND = 5 |
EV_MOUSE = 6 |
EV_IPC = 7 |
EV_STACK = 8 |
; event mask bits for function 40 |
EVM_REDRAW = 1b |
EVM_KEY = 10b |
EVM_BUTTON = 100b |
EVM_EXIT = 1000b |
EVM_BACKGROUND = 10000b |
EVM_MOUSE = 100000b |
EVM_IPC = 1000000b |
EVM_STACK = 10000000b |
/kernel/branches/net/applications/netcfg/netcfg.asm |
---|
0,0 → 1,466 |
include 'macros.inc' |
MEOS_APP_START |
type_ethernet equ 1 |
CODE |
call draw_window |
still: mcall 10 ; wait here for event |
dec eax ; redraw request ? |
jz red |
dec eax ; key in buffer ? |
jz key |
dec eax ; button in buffer ? |
jz button |
jmp still |
red: ; redraw |
mcall 9, Proc_Info, -1 ; window redraw requested so get new window coordinates and size |
mov eax, [Proc_Info.box.left]; store the window coordinates into the Form Structure |
mov [Form + 2], ax ; x start position |
mov eax, [Proc_Info.box.top]; |
mov [Form + 6], ax ; ystart position |
mov eax, [Proc_Info.box.width] ; |
mov [Form], ax ; window width |
mov eax, [Proc_Info.box.height] ; |
mov [Form + 4] ,ax ; window height |
call draw_window ; go redraw window now |
jmp still |
key: ; key |
mcall 2 ; just read it and ignore |
jmp still |
button: ; button |
mcall 17 ; get id |
cmp ah, 1 ; button id = 1 ? |
jne @f |
mcall -1 ; close this program |
@@: |
cmp eax,0x0000fe00 |
jg @f |
cmp ah, 4 |
je hook |
jmp still |
@@: |
shr eax, 16 |
mov dword[MAC],0 |
mov word [MAC+4],0 |
mov word [selected], ax |
call load_drv |
call draw_window |
jmp still |
load_drv: |
; mov ax , [selected] |
test ax , ax |
jz still |
mov bl , 6 ; get a dword |
mov bh , ah ; bus |
mov ch , al ; dev |
mov cl , 0 ; offset to device/vendor id |
mcall 62 ; get ID's |
mov word [PCI_Vendor], ax |
shr eax, 16 |
mov word [PCI_Device], ax |
call get_drv_ptr |
mov ecx, eax |
mcall 68, 16 |
mov [IOCTL.handle], eax |
ret |
hook: |
mov ax , [selected] |
test ax , ax |
jz still |
mov [hardwareinfo.pci_dev], al |
mov [hardwareinfo.pci_bus], ah |
mov [IOCTL.io_code], 1 ; SRV_HOOK |
mov [IOCTL.inp_size], 3 |
mov [IOCTL.input], hardwareinfo |
mov [IOCTL.out_size], 0 |
mov [IOCTL.output], 0 |
mcall 68, 17, IOCTL |
mov byte[drivernumber], al |
printhdwaddr: |
call draw_window |
jmp still |
draw_window: |
mcall 12, 1 ; start of draw |
mcall 0, dword [Form], dword [Form + 4], 0x13ffffff, 0x805080d0, title |
mcall 73, 0 |
mov ecx, eax |
mcall 47, 1 shl 18, , 50 shl 16 + 10, 0x00000000 |
call Get_PCI_Info ; get pci version and last bus, scan for and draw each pci device |
cmp edx, 20 shl 16 + 110 |
je .nonefound |
mcall 4, 20 shl 16 + 100, 1 shl 31 + 0x00000000 , caption |
mcall 8, 122 shl 16 + 100, 50 shl 16 + 18, 0x00000004, 0x00007f00 |
mcall ,, 70 shl 16 + 18, 0x00000005, 0x007f0000 |
mcall 4, 137 shl 16 + 57, 1 shl 31 + 0x00ffffff , btn_start |
mcall , 140 shl 16 + 77, , btn_stop |
mcall , 240 shl 16 + 77, 1 shl 31 + 0x00000000 , lbl_hdw_addr |
mcall , 312 shl 16 + 57, , lbl_type |
add ebx, 38 shl 16 |
cmp byte [type],type_ethernet |
jne @f |
mcall , , 1 shl 31 + 0x00000000, lbl_ethernet |
mcall 8,345 shl 16 + 17, 73 shl 16 + 14, 0x00000006, 0x00aaaa00 |
mcall ,365 shl 16 + 17, , 0x00000007 |
mcall ,385 shl 16 + 17, , 0x00000008 |
mcall ,405 shl 16 + 17, , 0x00000009 |
mcall ,425 shl 16 + 17, , 0x0000000a |
mcall ,445 shl 16 + 17, , 0x0000000b |
movzx ecx,byte[MAC] |
mcall 47, 1 shl 17 + 1 shl 8,,349 shl 16 + 77, 0x000022cc |
movzx ecx,byte[MAC+1] |
add edx, 20 shl 16 |
mcall |
movzx ecx,byte[MAC+2] |
add edx, 20 shl 16 |
mcall |
movzx ecx,byte[MAC+3] |
add edx, 20 shl 16 |
mcall |
movzx ecx,byte[MAC+4] |
add edx, 20 shl 16 |
mcall |
movzx ecx,byte[MAC+5] |
add edx, 20 shl 16 |
mcall |
jmp .done |
@@: |
mcall 4, , 1 shl 31 + 0x00ff0000, lbl_unknown |
jmp .done |
.nonefound : |
mcall 4, 20 shl 16 + 30, 1 shl 31 + 0x00ff0000 , nonefound |
.done: |
mcall 12, 2 ; end of draw |
ret |
;------------------------------------------------------------------ |
;* Gets the PCI Version and Last Bus |
Get_PCI_Info: |
mcall 62, 0 |
mov word [PCI_Version], ax |
mcall 62, 1 |
mov byte [PCI_LastBus], al |
;---------------------------------------------------------- |
;* Get all devices on PCI Bus |
mov edx, 20 shl 16 + 110 ; set start write position |
cmp al , 0xff ; 0xFF means no pci bus found |
jne Pci_Exists ; |
ret ; if no bus then leave |
Pci_Exists: |
mov byte [V_Bus], 0 ; reset varibles |
mov byte [V_Dev], 0 ; |
Start_Enum: |
mov bl , 6 ; get a dword |
mov bh , byte [V_Bus] ; bus of pci device |
mov ch , byte [V_Dev] ; device number/function |
mov cl , 0 ; offset to device/vendor id |
mcall 62 ; get ID's |
cmp ax, 0 ; Vendor ID should not be 0 or 0xFFFF |
je nextDev ; check next device if nothing exists here |
cmp ax, 0xffff ; |
je nextDev ; |
mov word [PCI_Vendor], ax ; There is a device here, save the ID's |
shr eax, 16 ; |
mov word [PCI_Device], ax ; |
mov bl , 4 ; Read config byte |
mov bh , byte [V_Bus] ; Bus # |
mov ch , byte [V_Dev] ; Device # on bus |
mov cl , 0x08 ; Register to read (Get Revision) |
mcall 62 ; Read it |
mov byte [PCI_Rev], al ; Save it |
mov cl , 0x0b ; Register to read (Get class) |
mcall 62 ; Read it |
mov byte [PCI_Class], al ; Save it |
mov cl , 0x0a ; Register to read (Get Subclass) |
mcall 62 ; Read it |
mov byte [PCI_SubClass], al ; Save it |
mov cl , 0x09 ; Register to read (Get Interface) |
mcall 62 ; Read it |
mov [PCI_Interface], al ; Save it |
mov cl , 0x3c ; Register to read (Get IRQ) |
@@: mcall 62 ; Read it |
mov [PCI_IRQ], al ; Save it |
; |
; inc byte [total] ; one more device found |
cmp byte [PCI_Class],2 |
jne nextDev |
call Print_New_Device ; print device info to screen |
nextDev: |
add byte [V_Dev], 8 ; lower 3 bits are the function number |
jnz Start_Enum ; jump until we reach zero |
mov byte [V_Dev], 0 ; reset device number |
inc byte [V_Bus] ; next bus |
mov al , byte [PCI_LastBus] ; get last bus |
cmp byte [V_Bus], al ; was it last bus |
jbe Start_Enum ; if not jump to keep searching |
ret |
;------------------------------------------------------------------ |
;* Print device info to screen |
Print_New_Device: |
push edx ; Magic ! (to print a button...) |
mov ebx, 18 shl 16 |
mov bx , [Form] |
sub bx , 36 |
mov cx , dx |
dec cx |
shl ecx, 16 |
add ecx, 9 |
movzx edx, byte [V_Bus] |
shl dx , 8 |
mov dl , byte [V_Dev] |
mov esi, 0x0000c0ff ; color: yellow if selected, blue otherwise |
cmp word [selected], dx |
jne @f |
mov esi, 0x00c0c000 |
@@: |
shl edx, 8 |
or dl , 0xff |
mcall 8 |
pop edx |
xor esi, esi ; Color of text |
movzx ecx, word [PCI_Vendor] ; number to be written |
mcall 47, 0x00040100 ; Write Vendor ID |
add edx, (4*6+18) shl 16 |
movzx ecx, word [PCI_Device] ; get Vendor ID |
mcall ; Draw Vendor ID to Window |
add edx, (4*6+18) shl 16 |
movzx ecx, byte [V_Bus] ; get bus number |
mcall ,0x00020100 ; draw bus number to screen |
add edx, (2*6+18) shl 16 |
movzx ecx, byte [V_Dev] ; get device number |
shr ecx, 3 ; device number is bits 3-7 |
mcall ; Draw device Number To Window |
add edx, (2*6+18) shl 16 |
movzx ecx, byte [PCI_Rev] ; get revision number |
mcall ; Draw Revision to screen |
add edx, (2*6+18) shl 16 |
movzx ecx, [PCI_IRQ] |
cmp cl , 0x0f ; IRQ must be between 0 and 15 |
ja @f |
mcall |
@@: |
; |
;Write Names |
movzx ebx, dx ; Set y position |
or ebx, 230 shl 16 ; set Xposition |
;------------------------------------------------------------------ |
; Prints the Vendor's Name based on Vendor ID |
;------------------------------------------------------------------ |
mov edx, VendorsTab |
mov cx , word[PCI_Vendor] |
.fn: mov ax , [edx] |
add edx, 6 |
test ax , ax |
jz .find |
cmp ax , cx |
jne .fn |
.find: mov edx, [edx - 4] |
mcall 4,, 0x80000000 ; lets print the vendor Name |
;------------------------------------------------------------------ |
; Get description based on Class/Subclass |
;------------------------------------------------------------------ |
mov eax, dword [PCI_Class] |
and eax, 0xffffff |
xor edx, edx |
xor esi, esi |
.fnc: inc esi |
mov ecx, [Classes + esi * 8 - 8] |
cmp cx , 0xffff |
je .endfc |
cmp cx , ax |
jne .fnc |
test ecx, 0xff000000 |
jz @f |
mov edx, [Classes + esi * 8 - 4] |
jmp .fnc |
@@: cmp eax, ecx |
jne .fnc |
xor edx, edx |
.endfc: test edx, edx |
jnz @f |
mov edx, [Classes + esi * 8 - 4] |
@@: |
add ebx, 288 shl 16 |
mcall 4,, 0x80000000,, 32 ; draw the text |
movzx edx, bx ; get y coordinate |
add edx, 0x0014000A ; add 10 to y coordinate and set x coordinate to 20 |
;------------------------------------------------------------------ |
; Print Driver Name |
;------------------------------------------------------------------ |
push edx |
add ebx, 120 shl 16 |
push ebx |
call get_drv_ptr |
mov edx, eax |
pop ebx |
mcall 4,,0x80000000 ; lets print the vendor Name |
pop edx |
ret |
get_drv_ptr: |
mov eax, driverlist ; eax will be the pointer to latest driver title |
mov ebx, driverlist ; ebx is the current pointer |
mov ecx, dword[PCI_Vendor] ; the device/vendor id of we want to find |
driverloop: |
inc ebx |
cmp byte[ebx],0 |
jne driverloop |
inc ebx ; the device/vendor id list for the driver eax is pointing to starts here. |
deviceloop: |
cmp dword[ebx],0 |
je nextdriver |
cmp dword[ebx],ecx |
je driverfound |
add ebx,4 |
jmp deviceloop |
nextdriver: |
add ebx,4 |
cmp dword[ebx],0 |
je nodriver |
mov eax,ebx |
jmp driverloop |
nodriver: |
mov eax, lbl_none ; lets print the vendor Name |
ret |
driverfound: |
ret |
include 'VENDORS.INC' |
include 'DRIVERS.INC' |
;------------------------------------------------------------------ |
; DATA AREA |
DATA |
Form: dw 800 ; window width (no more, special for 800x600) |
dw 100 ; window x start |
dw 220 ; window height |
dw 100 ; window y start |
title db 'Network Driver Control Center', 0 |
caption db 'Vendor Device Bus Dev Rev IRQ Company Description DRIVER',0 |
lbl_1 db 'Hardware control',0 |
nonefound db 'No compatible devices were found!',0 |
btn_start db 'Start driver',0 |
btn_stop db 'Stop driver',0 |
lbl_hdw_addr db 'hardware address:',0 |
lbl_type db 'type:',0 |
lbl_none db 'none',0 |
lbl_unknown db 'unknown',0 |
lbl_ethernet db 'ethernet',0 |
IOCTL: |
.handle dd ? |
.io_code dd ? |
.input dd ? |
.inp_size dd ? |
.output dd ? |
.out_size dd ? |
drivernumber db ? |
MAC dp ? |
hardwareinfo: |
.type db 1 ; pci |
.pci_bus db ? |
.pci_dev db ? |
;------------------------------------------------------------------ |
; UNINITIALIZED DATA AREA |
UDATA |
type db ? |
selected dw ? |
V_Bus db ? |
V_Dev db ? |
PCI_Version dw ? |
PCI_LastBus db ? |
PCI_Vendor dw ? |
PCI_Device dw ? |
PCI_Bus db ? |
PCI_Dev db ? |
PCI_Rev db ? |
; don`t change order!!! |
PCI_Class db ? |
PCI_SubClass db ? |
PCI_Interface db ? |
PCI_IRQ db ? |
Proc_Info process_information |
MEOS_APP_END |
/kernel/branches/net/applications/netcfg/proc32.inc |
---|
0,0 → 1,270 |
; Macroinstructions for defining and calling procedures |
macro stdcall proc,[arg] ; directly call STDCALL procedure |
{ common |
if ~ arg eq |
reverse |
pushd arg |
common |
end if |
call proc } |
macro invoke proc,[arg] ; indirectly call STDCALL procedure |
{ common |
if ~ arg eq |
reverse |
pushd arg |
common |
end if |
call [proc] } |
macro ccall proc,[arg] ; directly call CDECL procedure |
{ common |
size@ccall = 0 |
if ~ arg eq |
reverse |
pushd arg |
size@ccall = size@ccall+4 |
common |
end if |
call proc |
if size@ccall |
add esp,size@ccall |
end if } |
macro cinvoke proc,[arg] ; indirectly call CDECL procedure |
{ common |
size@ccall = 0 |
if ~ arg eq |
reverse |
pushd arg |
size@ccall = size@ccall+4 |
common |
end if |
call [proc] |
if size@ccall |
add esp,size@ccall |
end if } |
macro proc [args] ; define procedure |
{ common |
match name params, args> |
\{ define@proc name,<params \} } |
prologue@proc equ prologuedef |
macro prologuedef procname,flag,parmbytes,localbytes,reglist |
{ if parmbytes | localbytes |
push ebp |
mov ebp,esp |
if localbytes |
sub esp,localbytes |
end if |
end if |
irps reg, reglist \{ push reg \} } |
epilogue@proc equ epiloguedef |
macro epiloguedef procname,flag,parmbytes,localbytes,reglist |
{ irps reg, reglist \{ reverse pop reg \} |
if parmbytes | localbytes |
leave |
end if |
if flag and 10000b |
retn |
else |
retn parmbytes |
end if } |
macro define@proc name,statement |
{ local params,flag,regs,parmbytes,localbytes,current |
if used name |
name: |
match =stdcall args, statement \{ params equ args |
flag = 11b \} |
match =stdcall, statement \{ params equ |
flag = 11b \} |
match =c args, statement \{ params equ args |
flag = 10001b \} |
match =c, statement \{ params equ |
flag = 10001b \} |
match =params, params \{ params equ statement |
flag = 0 \} |
virtual at ebp+8 |
match =uses reglist=,args, params \{ regs equ reglist |
params equ args \} |
match =regs =uses reglist, regs params \{ regs equ reglist |
params equ \} |
match =regs, regs \{ regs equ \} |
match =,args, params \{ defargs@proc args \} |
match =args@proc args, args@proc params \{ defargs@proc args \} |
parmbytes = $ - (ebp+8) |
end virtual |
name # % = parmbytes/4 |
all@vars equ |
current = 0 |
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \} |
macro locals |
\{ virtual at ebp-localbytes+current |
macro label def \\{ match . type,def> \\\{ deflocal@proc .,label,<type \\\} \\} |
struc db [val] \\{ \common deflocal@proc .,db,val \\} |
struc du [val] \\{ \common deflocal@proc .,du,val \\} |
struc dw [val] \\{ \common deflocal@proc .,dw,val \\} |
struc dp [val] \\{ \common deflocal@proc .,dp,val \\} |
struc dd [val] \\{ \common deflocal@proc .,dd,val \\} |
struc dt [val] \\{ \common deflocal@proc .,dt,val \\} |
struc dq [val] \\{ \common deflocal@proc .,dq,val \\} |
struc rb cnt \\{ deflocal@proc .,rb cnt, \\} |
struc rw cnt \\{ deflocal@proc .,rw cnt, \\} |
struc rp cnt \\{ deflocal@proc .,rp cnt, \\} |
struc rd cnt \\{ deflocal@proc .,rd cnt, \\} |
struc rt cnt \\{ deflocal@proc .,rt cnt, \\} |
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \} |
macro endl |
\{ purge label |
restruc db,du,dw,dp,dd,dt,dq |
restruc rb,rw,rp,rd,rt,rq |
current = $-(ebp-localbytes) |
end virtual \} |
macro ret operand |
\{ match any, operand \\{ retn operand \\} |
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> |
\\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \} |
macro finish@proc \{ localbytes = (((current-1) shr 2)+1) shl 2 |
end if \} } |
macro defargs@proc [arg] |
{ common |
if ~ arg eq |
forward |
local ..arg,current@arg |
match argname:type, arg |
\{ current@arg equ argname |
label ..arg type |
argname equ ..arg |
if dqword eq type |
dd ?,?,?,? |
else if tbyte eq type |
dd ?,?,? |
else if qword eq type | pword eq type |
dd ?,? |
else |
dd ? |
end if \} |
match =current@arg,current@arg |
\{ current@arg equ arg |
arg equ ..arg |
..arg dd ? \} |
common |
args@proc equ current@arg |
forward |
restore current@arg |
common |
end if } |
macro deflocal@proc name,def,[val] |
{ common |
match vars, all@vars \{ all@vars equ all@vars, \} |
all@vars equ all@vars name |
forward |
local ..var,..tmp |
match =label,def \{ ..tmp equ \} |
match tmp,..tmp \{ ..var def val \} |
match ,..tmp \{ label ..var val \} |
match =?, val \{ ..tmp equ \} |
match any =dup (=?), val \{ ..tmp equ \} |
match tmp : value, ..tmp : val |
\{ tmp: end virtual |
initlocal@proc ..var,def value |
virtual at tmp\} |
common |
match first rest, ..var, \{ name equ first \} } |
macro initlocal@proc name,def |
{ virtual at name |
def |
size@initlocal = $ - name |
end virtual |
position@initlocal = 0 |
while size@initlocal > position@initlocal |
virtual at name |
def |
if size@initlocal - position@initlocal < 2 |
current@initlocal = 1 |
load byte@initlocal byte from name+position@initlocal |
else if size@initlocal - position@initlocal < 4 |
current@initlocal = 2 |
load word@initlocal word from name+position@initlocal |
else |
current@initlocal = 4 |
load dword@initlocal dword from name+position@initlocal |
end if |
end virtual |
if current@initlocal = 1 |
mov byte [name+position@initlocal],byte@initlocal |
else if current@initlocal = 2 |
mov word [name+position@initlocal],word@initlocal |
else |
mov dword [name+position@initlocal],dword@initlocal |
end if |
position@initlocal = position@initlocal + current@initlocal |
end while } |
macro endp |
{ purge ret,locals,endl |
finish@proc |
purge finish@proc |
restore regs@proc |
match all,args@proc \{ restore all \} |
restore args@proc |
match all,all@vars \{ restore all \} } |
macro local [var] |
{ common |
locals |
forward done@local equ |
match varname[count]:vartype, var |
\{ match =BYTE, vartype \\{ varname rb count |
restore done@local \\} |
match =WORD, vartype \\{ varname rw count |
restore done@local \\} |
match =DWORD, vartype \\{ varname rd count |
restore done@local \\} |
match =PWORD, vartype \\{ varname rp count |
restore done@local \\} |
match =QWORD, vartype \\{ varname rq count |
restore done@local \\} |
match =TBYTE, vartype \\{ varname rt count |
restore done@local \\} |
match =DQWORD, vartype \\{ label varname dqword |
rq count+count |
restore done@local \\} |
match , done@local \\{ virtual |
varname vartype |
end virtual |
rb count*sizeof.\#vartype |
restore done@local \\} \} |
match :varname:vartype, done@local:var |
\{ match =BYTE, vartype \\{ varname db ? |
restore done@local \\} |
match =WORD, vartype \\{ varname dw ? |
restore done@local \\} |
match =DWORD, vartype \\{ varname dd ? |
restore done@local \\} |
match =PWORD, vartype \\{ varname dp ? |
restore done@local \\} |
match =QWORD, vartype \\{ varname dq ? |
restore done@local \\} |
match =TBYTE, vartype \\{ varname dt ? |
restore done@local \\} |
match =DQWORD, vartype \\{ label varname dqword |
dq ?,? |
restore done@local \\} |
match , done@local \\{ varname vartype |
restore done@local \\} \} |
match ,done@local |
\{ var |
restore done@local \} |
common |
endl } |
/kernel/branches/net/applications/netcfg/struct.inc |
---|
0,0 → 1,180 |
; Macroinstructions for defining data structures |
macro struct name |
{ fields@struct equ name |
match child parent, name \{ fields@struct equ child,fields@\#parent \} |
sub@struct equ |
struc db [val] \{ \common fields@struct equ fields@struct,.,db,<val> \} |
struc dw [val] \{ \common fields@struct equ fields@struct,.,dw,<val> \} |
struc du [val] \{ \common fields@struct equ fields@struct,.,du,<val> \} |
struc dd [val] \{ \common fields@struct equ fields@struct,.,dd,<val> \} |
struc dp [val] \{ \common fields@struct equ fields@struct,.,dp,<val> \} |
struc dq [val] \{ \common fields@struct equ fields@struct,.,dq,<val> \} |
struc dt [val] \{ \common fields@struct equ fields@struct,.,dt,<val> \} |
struc rb count \{ fields@struct equ fields@struct,.,db,count dup (?) \} |
struc rw count \{ fields@struct equ fields@struct,.,dw,count dup (?) \} |
struc rd count \{ fields@struct equ fields@struct,.,dd,count dup (?) \} |
struc rp count \{ fields@struct equ fields@struct,.,dp,count dup (?) \} |
struc rq count \{ fields@struct equ fields@struct,.,dq,count dup (?) \} |
struc rt count \{ fields@struct equ fields@struct,.,dt,count dup (?) \} |
macro db [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,db,<val> \} |
macro dw [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dw,<val> \} |
macro du [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,du,<val> \} |
macro dd [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dd,<val> \} |
macro dp [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dp,<val> \} |
macro dq [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dq,<val> \} |
macro dt [val] \{ \common \local anonymous |
fields@struct equ fields@struct,anonymous,dt,<val> \} |
macro rb count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,db,count dup (?) \} |
macro rw count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dw,count dup (?) \} |
macro rd count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dd,count dup (?) \} |
macro rp count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dp,count dup (?) \} |
macro rq count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dq,count dup (?) \} |
macro rt count \{ \local anonymous |
fields@struct equ fields@struct,anonymous,dt,count dup (?) \} |
macro union \{ fields@struct equ fields@struct,,union,< |
sub@struct equ union \} |
macro struct \{ fields@struct equ fields@struct,,substruct,< |
sub@struct equ substruct \} |
virtual at 0 } |
macro ends |
{ match , sub@struct \{ restruc db,dw,du,dd,dp,dq,dt |
restruc rb,rw,rd,rp,rq,rt |
purge db,dw,du,dd,dp,dq,dt |
purge rb,rw,rd,rp,rq,rt |
purge union,struct |
match name=,fields,fields@struct \\{ fields@struct equ |
make@struct name,fields |
fields@\\#name equ fields \\} |
end virtual \} |
match any, sub@struct \{ fields@struct equ fields@struct> \} |
restore sub@struct } |
macro make@struct name,[field,type,def] |
{ common |
if $ |
display 'Error: definition of ',`name,' contains illegal instructions.',0Dh,0Ah |
err |
end if |
local define |
define equ name |
forward |
local sub |
match , field \{ make@substruct type,name,sub def |
define equ define,.,sub, \} |
match any, field \{ define equ define,.#field,type,<def> \} |
common |
match fields, define \{ define@struct fields \} } |
macro define@struct name,[field,type,def] |
{ common |
local list |
list equ |
forward |
if ~ field eq . |
name#field type def |
sizeof.#name#field = $ - name#field |
else |
rb sizeof.#type |
end if |
local value |
match any, list \{ list equ list, \} |
list equ list <value> |
common |
sizeof.#name = $ |
restruc name |
match values, list \{ |
struc name value \\{ |
match any, fields@struct \\\{ fields@struct equ fields@struct,.,name,<values> \\\} |
match , fields@struct \\\{ label . |
forward |
match , value \\\\{ field type def \\\\} |
match any, value \\\\{ field type value |
if ~ field eq . |
rb sizeof.#name#field - ($-field) |
end if \\\\} |
common \\\} \\} \} } |
macro enable@substruct |
{ macro make@substruct substruct,parent,name,[field,type,def] |
\{ \common |
\local define |
define equ parent,name |
\forward |
\local sub |
match , field \\{ match any, type \\\{ enable@substruct |
make@substruct type,name,sub def |
purge make@substruct |
define equ define,.,sub, \\\} \\} |
match any, field \\{ define equ define,.\#field,type,<def> \\} |
\common |
match fields, define \\{ define@\#substruct fields \\} \} } |
enable@substruct |
macro define@union parent,name,[field,type,def] |
{ common |
virtual at 0 |
forward |
if ~ field eq . |
virtual at 0 |
parent#field type def |
sizeof.#parent#field = $ - parent#field |
end virtual |
if sizeof.#parent#field > $ |
rb sizeof.#parent#field - $ |
end if |
else if sizeof.#type > $ |
rb sizeof.#type - $ |
end if |
common |
sizeof.#name = $ |
end virtual |
struc name [value] \{ \common |
label .\#name |
last@union equ |
forward |
match any, last@union \\{ virtual at .\#name |
field type def |
end virtual \\} |
match , last@union \\{ match , value \\\{ field type def \\\} |
match any, value \\\{ field type value \\\} \\} |
last@union equ field |
common rb sizeof.#name - ($ - .\#name) \} } |
macro define@substruct parent,name,[field,type,def] |
{ common |
virtual at 0 |
forward |
if ~ field eq . |
parent#field type def |
sizeof.#parent#field = $ - parent#field |
else |
rb sizeof.#type |
end if |
local value |
common |
sizeof.#name = $ |
end virtual |
struc name value \{ |
label .\#name |
forward |
match , value \\{ field type def \\} |
match any, value \\{ field type value |
if ~ field eq . |
rb sizeof.#parent#field - ($-field) |
end if \\} |
common \} } |
/kernel/branches/net/applications/netcfg/vendors.inc |
---|
0,0 → 1,1071 |
; AUTHOR: Victor Alberto Gil Hancco Laquita <vhanla@gmail.com> |
; This list might content mistakes, plz report it |
; There are 865 Lists of Vendors' Names |
; Date: 8/14/2005 |
; |
; maybe this list is outdated... |
; (the source was from 2004 list) |
; changed 11/05/2006: + 3 vendors and no more label 'PREVIOUSVERSIONLIST' |
; so the total quantity of vendors is 875 now (changes by Sergey Kuzmin) |
; changed 16/08/2006: + 122 vendors |
; so the total quantity of vendors is 987 now (changes by Sergey Kuzmin) |
; changed ??/04/2007: |
; size optimezed |
; total quantity of vendors is 997 now (changes by Mihailov Ilia) |
macro VendorID a,b { ; by mike.dld |
dw a |
dd _vtmp#a |
\iglobal |
_vtmp#a db b |
db 0 |
\};endg |
} |
macro ClassID a,b,c,d { |
db a |
db b |
local tt |
if c eq |
db 0 |
db 1 |
tt = 'x' |
else |
db c |
db 0 |
tt = c |
end if |
dd _ctmp#a#b#tt |
\iglobal |
_ctmp#a#b#tt db d |
db 0 |
\};endg |
} |
;-------------------------------------- |
VendorsTab: |
VendorID 0x0033, 'PARADYNE CORP.' |
VendorID 0x003D, 'Lockheed Martin Corp' |
VendorID 0x0100, 'NCIPHER CORP. LTD' |
VendorID 0x0675, 'DYNALINK' |
VendorID 0x0571, 'BERKOM' |
VendorID 0x0A89, 'BREA TECHNOLOGIES INC' |
VendorID 0x0E11, 'COMPAQ COMPUTER CORP.' |
VendorID 0x1000, 'SYMBIOS LOGIC INC/LSI Logic' |
VendorID 0x1001, 'KOLTER ELECTRONIC' |
VendorID 0x1002, 'ATI TECHNOLOGIES INC' |
VendorID 0x1003, 'ULSI' |
VendorID 0x1004, 'VLSI TECHNOLOGY INC' |
VendorID 0x1005, 'ADL' |
VendorID 0x100B, 'NATIONAL SEMICONDUCTOR CORPORATION' |
VendorID 0x100C, 'Tseng Labs' |
VendorID 0x100E, 'Weitek' |
VendorID 0x1010, 'VIDEO LOGIC LTD' |
VendorID 0x1011, 'Digital Equipment Corporation' |
VendorID 0x1013, 'Cirrus Logic' |
VendorID 0x1014, 'IBM' |
VendorID 0x1017, 'Spea Software AG' |
VendorID 0x1018, 'UNISYS CORPORATION' |
VendorID 0x1019, 'ELITEGROUP COMPUTER SYS' |
VendorID 0x101A, 'NCR Corporation' |
VendorID 0x101E, 'AMERICAN MEGATRENDS' |
VendorID 0x1020, 'HITACHI COMPUTER PRODUCTS' |
VendorID 0x1021, 'OKI ELECTRIC INDUSTRY CO. LTD.' |
VendorID 0x1022, 'Advanced Micro Devices' |
VendorID 0x1023, 'TRIDENT MICROSYSTEMS' |
VendorID 0x1025, 'Acer Incorporated' |
VendorID 0x1028, 'DELL COMPUTER CORPORATION' |
VendorID 0x102A, 'LSI LOGIC CORPORATION' |
VendorID 0x102B, 'MATROX GRAPHICS' |
VendorID 0x102C, 'Asiliant (Chips And Technologies)' |
VendorID 0x102D, 'Wyse Technologies' |
VendorID 0x102F, 'TOSHIBA AMERICA' |
VendorID 0x1031, 'miro Computer Products AG' |
VendorID 0x1033, 'NEC CORPORATION' |
VendorID 0x1036, 'Future Domain' |
VendorID 0x1038, 'AMP' |
VendorID 0x1039, 'SILICON INTEGRATED SYSTEMS' |
VendorID 0x103C, 'Hewlett-Packard Company' |
VendorID 0x103F, 'SYNOPSYS/LOGIC MODELING GROUP' |
VendorID 0x1042, 'Micron Electronics' |
VendorID 0x1043, 'ASUSTEK COMPUTER' |
VendorID 0x1044, 'DISTRIBUTED PROCESSING TECHNOLOGY' |
VendorID 0x1045, 'OPTI INC.' |
VendorID 0x1048, 'ELSA AG' |
VendorID 0x1049, 'FOUNTAIN TECHNOLOGIES' |
VendorID 0x104A, 'STMicroelectronics' |
VendorID 0x104B, 'BusLogic' |
VendorID 0x104C, 'TEXAS INSTRUMENTS' |
VendorID 0x104D, 'SONY CORPORATION' |
VendorID 0x104E, 'Oak Technology' |
VendorID 0x104F, 'Co-Time Computer Ltd.' |
VendorID 0x1050, 'WINBOND ELECTRONICS CORP' |
VendorID 0x1051, 'Anigma Corp.' |
VendorID 0x1054, 'HITACHI' |
VendorID 0x1055, 'Standard Microsystems Corp.' |
VendorID 0x1057, 'Motorola' |
VendorID 0x1058, 'ETRI' |
VendorID 0x1059, 'TEKNOR INDUSTRIAL COMPUTERS INC' |
VendorID 0x105A, 'PROMISE TECHNOLOGY' |
VendorID 0x105B, 'FOXCONN INTERNATIONAL INC' |
VendorID 0x105D, 'NUMBER 9 VISUAL TECHNOLOGY' |
VendorID 0x105F, 'INFOTRONIC AMERICA INC' |
VendorID 0x1060, 'United Microelectronics' |
VendorID 0x1061, '8x8 Inc.' |
VendorID 0x1063, 'OCEAN MANUFACTURING LTD' |
VendorID 0x1064, 'ALCATEL' |
VendorID 0x1065, 'Texas Microsystems' |
VendorID 0x1066, 'Picopower Technology' |
VendorID 0x1067, 'MITSUBISHI ELECTRIC AMERICA' |
VendorID 0x1068, 'DIVERSIFIED TECHNOLOGY' |
VendorID 0x1069, 'MYLEX CORPORATION' |
VendorID 0x106B, 'APPLE COMPUTER INC.' |
VendorID 0x106C, 'Hyundai Electronics America' |
VendorID 0x106D, 'SEQUENT COMPUTER SYSTEMS' |
VendorID 0x1070, 'DAEWOO TELECOM LTD' |
VendorID 0x1071, 'MITAC' |
VendorID 0x1073, 'YAMAHA CORPORATION' |
VendorID 0x1074, 'Nexgen Microsystems' |
VendorID 0x1076, 'Chaintech Comp.' |
VendorID 0x1077, 'QLOGIC Corporation' |
VendorID 0x1078, 'Cyrix Corporation' |
VendorID 0x1079, 'I-BUS' |
VendorID 0x107B, 'GATEWAY 2000' |
VendorID 0x107D, 'Leadtek Research' |
VendorID 0x107E, 'INTERPHASE CORPORATION' |
VendorID 0x107F, 'Data Technology Corporation' |
VendorID 0x1080, 'Cypress Semiconductor' |
VendorID 0x1081, 'Radius Inc.' |
VendorID 0x1083, 'Forex Computer Corporation' |
VendorID 0x1085, 'Tulip Computers International BV' |
VendorID 0x1087, 'Cache Computer' |
VendorID 0x108A, 'SBS Operations' |
VendorID 0x108D, 'OLICOM' |
VendorID 0x108E, 'Sun Microsystems' |
VendorID 0x1091, 'Intergraph Corporation' |
VendorID 0x1092, 'Diamond Computer Systems' |
VendorID 0x1093, 'National Instruments' |
VendorID 0x1095, 'SILICON IMAGE (WAS CMD TECHNOLOGY INC)' |
VendorID 0x1096, 'ALACRON' |
VendorID 0x1097, 'APPIAN Graphics/ETMA' |
VendorID 0x1098, 'Quantum Designs Ltd.' |
VendorID 0x109A, 'PACKARD BELL NEC' |
VendorID 0x109E, 'BROOKTREE CORPORATION' |
VendorID 0x109F, 'TRIGEM COMPUTER INC.' |
VendorID 0x10A0, 'MEIDENSHA CORPORATION' |
VendorID 0x10A2, 'QUANTUM EFFECT DESIGN' |
VendorID 0x10A4, 'Globe Manufacturing Sales' |
VendorID 0x10A8, 'Sierra Semiconductor' |
VendorID 0x10A9, 'SILICON GRAPHICS' |
VendorID 0x10AC, 'HONEYWELL IAC' |
VendorID 0x10AD, 'Winbond Systems Labs' |
VendorID 0x10AF, 'MICRO COMPUTER SYSTEMS INC' |
VendorID 0x10B5, 'PLX TECHNOLOGY.' |
VendorID 0x10B6, 'MADGE NETWORKS' |
VendorID 0x10B7, '3COM Corp, Networking Division' |
VendorID 0x10B8, 'Standard Microsystems Corporation' |
VendorID 0x10B9, 'ACER LABS Incorp.' |
VendorID 0x10BA, 'MITSUBISHI ELECTRIC CORP.' |
VendorID 0x10BD, 'Surecom Technology' |
VendorID 0x10C2, 'AUSPEX SYSTEMS INC.' |
VendorID 0x10C3, 'Samsung Semiconductors' |
VendorID 0x10C4, 'Award Software International Inc.' |
VendorID 0x10C8, 'NEOMAGIC CORPORATION' |
VendorID 0x10CA, 'FUJITSU MICROELECTRONIC' |
VendorID 0x10CB, 'OMRON CORPORATION' |
VendorID 0x10CD, 'ADVANCED SYSTEM PRODUCTS' |
VendorID 0x10CF, 'FUJITSU LIMITED' |
VendorID 0x10D1, 'FUTUREPLUS SYSTEMS CORP.' |
VendorID 0x10D2, 'MOLEX INCORPORATED' |
VendorID 0x10D9, 'Macronix International Co. Ltd.' |
VendorID 0x10DB, 'ROHM LSI SYSTEMS' |
VendorID 0x10DC, 'CERN-European Lab. for Particle Physics' |
VendorID 0x10DD, 'EVANS & SUTHERLAND' |
VendorID 0x10DE, 'NVIDIA CORPORATION' |
VendorID 0x10DF, 'EMULEX CORPORATION' |
VendorID 0x10E1, 'TEKRAM TECHNOLOGY CO.LTD.' |
VendorID 0x10E3, 'TUNDRA SEMICONDUCTOR CORP' |
VendorID 0x10E5, 'MICRO INDUSTRIES CORPORATION' |
VendorID 0x10E8, 'Applied Micro Circuits Corp.' |
VendorID 0x10EA, 'Tvia, Inc.' |
VendorID 0x10EB, 'Artist Graphics' |
VendorID 0x10EC, 'REALTEK SEMICONDUCTOR CORP.' |
VendorID 0x10ED, 'Ascii Corporation' |
VendorID 0x10EE, 'XILINX' |
VendorID 0x10EF, 'Racore Computer Products' |
VendorID 0x10F0, 'Curtiss-Wright Controls Embedded Computing' |
VendorID 0x10F1, 'TYAN COMPUTER' |
VendorID 0x10F4, 'S-Mos Systems' |
VendorID 0x10F5, 'NKK CORPORATION' |
VendorID 0x10F6, 'Creative Electronic Systems SA' |
VendorID 0x10FA, 'Truevision' |
VendorID 0x10FB, 'Thesys Microelectronics' |
VendorID 0x10FC, 'I-O DATA DEVICE' |
VendorID 0x10FE, 'FAST MULTIMEDIA AG' |
VendorID 0x1101, 'INITIO CORPORATION' |
VendorID 0x1102, 'Creative Labs' |
VendorID 0x1105, 'SIGMA DESIGNS' |
VendorID 0x1106, 'VIA TECHNOLOGIES' |
VendorID 0x1107, 'ASCEND COMMUNICATIONS/Stratus Computer' |
VendorID 0x1108, 'Proteon Inc.' |
VendorID 0x1109, 'Adaptec/Cogent Data Technologies Inc' |
VendorID 0x110A, 'SIEMENS PC SYSTEME GMBH' |
VendorID 0x110B, 'Chromatic Research Inc' |
VendorID 0x1111, 'SANTA CRUZ OPERATION' |
VendorID 0x1112, 'Osicom Technologies Inc.' |
VendorID 0x1113, 'ACCTON TECHNOLOGY' |
VendorID 0x1114, 'Atmel Corp.' |
VendorID 0x1116, 'Media 100, Inc.' |
VendorID 0x1117, 'Datacube Inc.' |
VendorID 0x1118, 'FCI ELECTRONICS' |
VendorID 0x1119, 'ICP-VORTEX COMPUTERSYSTEM GMBH' |
VendorID 0x111A, 'EFFICIENT NETWORKS' |
VendorID 0x111C, 'Tricord Systems Inc.' |
VendorID 0x111D, 'INTEGRATED DEVICE TECH' |
VendorID 0x111F, 'Precision Digital Images' |
VendorID 0x1120, 'EMC CORPORATION' |
VendorID 0x1127, 'FORE SYSTEMS INC' |
VendorID 0x112A, 'HERMES ELECTRONICS COMPANY' |
VendorID 0x112E, 'Infomedia' |
VendorID 0x112F, 'IMAGING TECHNOLOGY' |
VendorID 0x1131, 'PHILIPS SEMICONDUCTORS' |
VendorID 0x1132, 'MITEL CORP' |
VendorID 0x1133, 'Eicon Networks Corporation' |
VendorID 0x1134, 'MERCURY COMPUTER SYSTEMS' |
VendorID 0x1135, 'FUJI XEROX CO LTD' |
VendorID 0x1136, 'MOMENTUM DATA SYSTEMS' |
VendorID 0x1137, 'CISCO SYSTEMS INC' |
VendorID 0x1138, 'ZIATECH CORPORATION' |
VendorID 0x113C, 'CYCLONE MICROSYSTEMS.' |
VendorID 0x113E, 'SANYO ELECTRIC CO-Information Systems Division' |
VendorID 0x113F, 'Equinox Systems' |
VendorID 0x1141, 'CREST MICROSYSTEM INC.' |
VendorID 0x1142, 'Alliance Semiconductor CA - USA' |
VendorID 0x1144, 'Cincinnati Milacron' |
VendorID 0x1145, 'WORKBIT CORPORATION' |
VendorID 0x1146, 'FORCE COMPUTERS GMBH' |
VendorID 0x1147, 'Interface Corp' |
VendorID 0x1148, 'SYSKONNECT/Marvell' |
VendorID 0x114A, 'VMIC' |
VendorID 0x114C, 'ANNABOOKS' |
VendorID 0x114F, 'DIGI INTERNATIONAL' |
VendorID 0x1154, 'MELCO INC' |
VendorID 0x1155, 'Pine Technology Ltd' |
VendorID 0x1158, 'Voarx R&D Inc' |
VendorID 0x1159, 'Mutech' |
VendorID 0x115C, 'PHOTRON LTD.' |
VendorID 0x115D, 'XIRCOM' |
VendorID 0x1161, 'PFU LIMITED' |
VendorID 0x1163, 'RENDITION' |
VendorID 0x1165, 'Imagraph Corporation' |
VendorID 0x1166, 'Reliance Computer Corp./ServerWorks' |
VendorID 0x1169, 'Centre f/Dev. of Adv. Computing' |
VendorID 0x116A, 'Polaris Communications' |
VendorID 0x116E, 'ELECTRONICS FOR IMAGING' |
VendorID 0x1170, 'INVENTEC CORPORATION' |
VendorID 0x1171, 'BLUE WAVE SYSTEMS' |
VendorID 0x1172, 'ALTERA CORPORATION' |
VendorID 0x1176, 'SBE' |
VendorID 0x1178, 'Alfa Inc' |
VendorID 0x1179, 'TOSHIBA AMERICA INFO SYSTEMS' |
VendorID 0x117B, 'GCE-8320B' |
VendorID 0x117E, 'T/R Systems' |
VendorID 0x1180, 'RICOH CO LTD' |
VendorID 0x1185, 'Dataworld' |
VendorID 0x1186, 'D-LINK SYSTEM INC' |
VendorID 0x1187, 'ADVANCED TECHNOLOGY LABORATORIES' |
VendorID 0x1189, 'MATSUSHITA ELECTIC INDUSTRIAL CO LTD' |
VendorID 0x118B, 'PLATYPUS TECHNOLOGY PTY LTD' |
VendorID 0x118C, 'Corollary Inc' |
VendorID 0x118D, 'BitFlow Inc' |
VendorID 0x118E, 'Hermstedt AG' |
VendorID 0x1190, 'Tripace' |
VendorID 0x1191, 'ACARD TECHNOLOGY' |
VendorID 0x1193, 'ZeitNet' |
VendorID 0x1195, 'RATOC SYSTEMS INC' |
VendorID 0x1197, 'Gage Applied Technologies' |
VendorID 0x1199, 'Attachmate Corp.' |
VendorID 0x119A, 'MINDSHARE.' |
VendorID 0x119B, 'Omega Micro Inc.' |
VendorID 0x119D, 'BUG.' |
VendorID 0x119E, 'FUJITSU MICROELECTRONICS LTD.' |
VendorID 0x119F, 'BULL HN INFORMATION SYSTEMS' |
VendorID 0x11A1, 'HAMAMATSU PHOTONICS K.K.' |
VendorID 0x11A8, 'Systech Corp.' |
VendorID 0x11A9, 'InnoSys Inc.' |
VendorID 0x11AA, 'ACTEL' |
VendorID 0x11AB, 'GALILEO TECHNOLOGY LTD/Marvell Semiconductor, Inc.' |
VendorID 0x11AD, 'LITE-ON COMMUNICATIONS INC' |
VendorID 0x11AE, 'SCITEX CORPORATION' |
VendorID 0x11AF, 'AVID TECHNOLOGY INC' |
VendorID 0x11B0, 'V3 SEMICONDUCTOR INC./Quicklogic Corp' |
VendorID 0x11B2, 'EASTMAN KODAK' |
VendorID 0x11B3, 'BARR SYSTEMS INC.' |
VendorID 0x11B5, 'Radstone Technology Ltd.' |
VendorID 0x11B8, 'Xpoint Technologies Inc' |
VendorID 0x11B9, 'Pathlight Technology Inc.' |
VendorID 0x11BC, 'Network Peripherals Inc' |
VendorID 0x11BD, 'Pinnacle Systems Inc.' |
VendorID 0x11BF, 'ASTRODESIGN' |
VendorID 0x11C1, 'AGERE/LUCENT' |
VendorID 0x11C6, 'DAINIPPON SCREEN MFG. CO. LTD' |
VendorID 0x11C8, 'DOLPHIN INTERCONNECT SOLUTIONS AS' |
VendorID 0x11C9, 'MAGMA' |
VendorID 0x11CA, 'LSI SYSTEMS' |
VendorID 0x11CB, 'SPECIALIX INTERNATIONAL LTD' |
VendorID 0x11CE, 'NETACCESS/Primary Rate Inc' |
VendorID 0x11D0, 'LOCKHEED MARTIN-Electronics & Communications' |
VendorID 0x11D1, 'AuraVision Corporation' |
VendorID 0x11D2, 'INTERCOM INC.' |
VendorID 0x11D4, 'Analog Devices, Inc.' |
VendorID 0x11D5, 'IKON CORPORATION/Tahoma Technology' |
VendorID 0x11D9, 'TOSHIBA TEC CORPORATION' |
VendorID 0x11DA, 'NOVELL' |
VendorID 0x11DB, 'Sega Enterprises Ltd' |
VendorID 0x11DE, 'Zoran Corporation' |
VendorID 0x11DF, 'NEW WAVE PDG' |
VendorID 0x11E3, 'QUICKLOGIC CORPORATION' |
VendorID 0x11EC, 'CORECO INC' |
VendorID 0x11EE, 'DOME IMAGING SYSTEMS INC' |
VendorID 0x11F0, 'Compu-Shack GmbH' |
VendorID 0x11F4, 'Kinetic Systems Corporation' |
VendorID 0x11F6, 'Powermatic Data Systems Ltd' |
VendorID 0x11F8, 'PMC-SIERRA INC' |
VendorID 0x11FE, 'Comtrol Corp' |
VendorID 0x1202, 'Network General Corp' |
VendorID 0x1203, 'AGFA CORPORATION' |
VendorID 0x1206, 'AMDAHL CORPORATION' |
VendorID 0x1208, 'Parsytec GmbH' |
VendorID 0x1209, 'Sci Systems Inc' |
VendorID 0x120E, 'Cyclades Corporation' |
VendorID 0x120F, 'ESSENTIAL COMMUNICATIONS' |
VendorID 0x1214, 'PERFORMANCE TECHNOLOGIES.' |
VendorID 0x1216, 'PURUP-EskoFot A/S' |
VendorID 0x1217, 'O2MICRO.' |
VendorID 0x121A, '3DFX INTERACTIVE' |
VendorID 0x121B, 'VIRATA LTD' |
VendorID 0x1220, 'Ariel Corporation' |
VendorID 0x1221, 'CONTEC CO. LTD' |
VendorID 0x1223, 'ARTESYN COMMUNICATIONS PRODUCTS INC' |
VendorID 0x1224, 'Interactive Images' |
VendorID 0x1227, 'TECH-SOURCE' |
VendorID 0x122C, 'SICAN GMBH' |
VendorID 0x122D, 'Aztech System Ltd' |
VendorID 0x1232, 'MARCONI COMMUNICATIONS LTD' |
VendorID 0x1236, 'Sigma Designs, Inc' |
VendorID 0x124C, 'Solitron Technologies Inc.' |
VendorID 0x124D, 'Stallion Technologies' |
VendorID 0x124F, 'Infortrend Technology Inc' |
VendorID 0x1256, 'Perceptive Solutions Inc.' |
VendorID 0x1258, 'Gilbarco Inc.' |
VendorID 0x125B, 'Asix Electronics Corp.' |
VendorID 0x1266, 'Microdyne Corp.' |
VendorID 0x1267, 'S.A. Telecommunications' |
VendorID 0x1361, 'SOLITON SYSTEMS K.K.' |
VendorID 0x123C, 'CENTURY SYSTEMS.' |
VendorID 0x123D, 'Engineering Design Team Inc.' |
VendorID 0x123F, 'C-CUBE MICROSYSTEMS' |
VendorID 0x1242, 'JAYCOR NETWORKS INC./JNI Corporation' |
VendorID 0x1244, 'AVM AUDIOVISUELLES MKTG & COMPUTER SYSTEM GMBH' |
VendorID 0x124B, 'SBS TECHNOLOGIES' |
VendorID 0x1250, 'Hitachi Microcomputer System Ltd.' |
VendorID 0x1253, 'GUZIK TECHNICAL ENTERPRISES' |
VendorID 0x1255, 'OPTIBASE LTD' |
VendorID 0x1259, 'ALLIED TELESYN INTERNATIONAL' |
VendorID 0x125C, 'AURORA TECHNOLOGIES.' |
VendorID 0x125D, 'ESS TECHNOLOGY, INC.' |
VendorID 0x125F, 'CONCURRENT TECHNOLOGIES' |
VendorID 0x1260, 'INTERSIL CORP' |
VendorID 0x1261, 'MATSUSHITA-KOTOBUKI ELECTRONICS' |
VendorID 0x1264, 'AVAL NAGASAKI CORPORATION' |
VendorID 0x1268, 'TEKTRONIX' |
VendorID 0x126C, 'Nortel Networks Corp.' |
VendorID 0x126D, 'SPLASH TECHNOLOGY.' |
VendorID 0x126E, 'SUMITOMO METAL INDUSTRIES' |
VendorID 0x126F, 'SILICON MOTION.' |
VendorID 0x1270, 'OLYMPUS OPTICAL CO. LTD.' |
VendorID 0x1274, 'Creative Labs (was Ensoniq, Malvern)' |
VendorID 0x1275, 'NETWORK APPLIANCE CORPORATION' |
VendorID 0x1278, 'Transtech Parallel Systems' |
VendorID 0x1279, 'TRANSMETA CORPORATION' |
VendorID 0x127A, 'CONEXANT, ROCKWELL' |
VendorID 0x127D, 'VELA RESEARCH LP' |
VendorID 0x127F, 'FUJIFILM' |
VendorID 0x1281, 'YOKOGAWA ELECTRIC CORPORATION' |
VendorID 0x1283, 'Integrated Technology Express Inc.' |
VendorID 0x1286, 'MAZET GMBH' |
VendorID 0x128B, 'TRANSWITCH CORPORATION' |
VendorID 0x128D, 'G2 Networks Inc.' |
VendorID 0x128F, 'TATENO DENNOU.' |
VendorID 0x1290, 'TOSHIBA PERSONAL COMPUTER SYSTEM CORP.' |
VendorID 0x1291, 'NCS COMPUTER ITALIA SRL' |
VendorID 0x1292, 'TRITECH MICROELECTRONICS INC' |
VendorID 0x1297, 'SHUTTLE COMPUTER' |
VendorID 0x1299, 'KNOWLEDGE TECHNOLOGY LAB.' |
VendorID 0x129A, 'VMETRO Inc.' |
VendorID 0x129E, 'VICTOR COMPANY OF JAPAN' |
VendorID 0x12A0, 'ALLEN- BRADLEY COMPANY' |
VendorID 0x12A3, 'Lucent Technologies AMR' |
VendorID 0x12A7, 'AMO GMBH' |
VendorID 0x12A9, 'XIOTECH CORPORATION' |
VendorID 0x12AB, 'YUAN YUAN ENTERPRISE CO. LTD.' |
VendorID 0x12AE, 'Alteon Networks Inc.' |
VendorID 0x12B6, 'NATURAL MICROSYSTEMS' |
VendorID 0x12B7, 'COGNEX MODULAR VISION SYSTEMS DIV.-ACUMEN INC.' |
VendorID 0x12B9, '3Com Corp, Modem Division' |
VendorID 0x12BC, 'ARRAY MICROSYSTEMS' |
VendorID 0x12BE, 'ANCHOR CHIPS INC.' |
VendorID 0x12BF, 'Fujifilm Microdevices' |
VendorID 0x12C0, 'INFIMED' |
VendorID 0x12C3, 'Holtek Microelectronics Inc.' |
VendorID 0x12C4, 'Connect Tech Inc' |
VendorID 0x12C6, 'Mitan Corporation' |
VendorID 0x12C7, 'Dialogic Corp' |
VendorID 0x12CA, 'Integrated Computing Engines' |
VendorID 0x12CD, 'Aims Lab' |
VendorID 0x12D2, 'NVIDIA (WAS: STB,SGS THOMPSON)' |
VendorID 0x12D3, 'GE VINGMED ULTRASOUND AS' |
VendorID 0x12D4, 'COMVERSE NETWORKS SYSTEM & Ulticom, Inc.' |
VendorID 0x12D5, 'Equator Technologies' |
VendorID 0x12D6, 'Analogic Corp' |
VendorID 0x12D8, 'PERICOM SEMICONDUCTOR' |
VendorID 0x12D9, 'Aculab PLC' |
VendorID 0x12DA, 'True Time Inc.' |
VendorID 0x12DE, 'Rainbow Technologies' |
VendorID 0x12DF, 'SBS Technologies Inc' |
VendorID 0x12E0, 'Chase Research PLC' |
VendorID 0x12E2, 'Datum Inc. Bancomm-Timing Division' |
VendorID 0x12E4, 'Brooktrout Technology Inc' |
VendorID 0x12E7, 'Sebring Systems' |
VendorID 0x12EA, 'Real Vision' |
VendorID 0x12EB, 'Aureal Semiconductor' |
VendorID 0x12EC, '3A' |
VendorID 0x12F0, 'PENTEK' |
VendorID 0x12F7, 'COGNEX INC.' |
VendorID 0x12FB, 'Spectrum Signal Processing' |
VendorID 0x12FC, 'CAPITAL EQUIPMENT CORP' |
VendorID 0x12FE, 'ESD Electronic System Design GmbH' |
VendorID 0x1304, 'Juniper Networks Inc.' |
VendorID 0x1307, 'Computer Boards' |
VendorID 0x1308, 'LEVEL ONE COMMUNICATIONS/Jato Technologies Inc.' |
VendorID 0x130A, 'Mitsubishi Electric MicroComputer' |
VendorID 0x130B, 'Colorgraphic Communications Corp' |
VendorID 0x130F, 'Advanet Inc' |
VendorID 0x1310, 'GESPAC' |
VendorID 0x1313, 'YASKAWA ELECTRIC CO.' |
VendorID 0x1316, 'TERADYNE INC.' |
VendorID 0x1317, 'ADMTEK INC' |
VendorID 0x1318, 'Packet Engines Inc.' |
VendorID 0x1319, 'ForteMedia' |
VendorID 0x131F, 'SIIG Inc' |
VendorID 0x1325, 'SALIX TECHNOLOGIES INC' |
VendorID 0x1326, 'SeaChange International' |
VendorID 0x1331, 'RadiSys Corp.' |
VendorID 0x133D, 'PRISA NETWORKS' |
VendorID 0x133F, 'SCM MICROSYSTEMS' |
VendorID 0x1342, 'PROMAX SYSTEMS INC' |
VendorID 0x1344, 'MICRON TECHNOLOGY INC' |
VendorID 0x134A, 'Domex' |
VendorID 0x134B, 'ARK RESEARCH CORP.' |
VendorID 0x134C, 'CHORI JOHO SYSTEM CO. LTD' |
VendorID 0x134D, 'PC-TEL INC' |
VendorID 0x135A, 'BRAIN BOXES LIMITED' |
VendorID 0x135C, 'QUATECH INC' |
VendorID 0x135E, 'SEALEVEL SYSTEMS INC' |
VendorID 0x135F, 'I-DATA INTERNATIONAL A-S' |
VendorID 0x1360, 'MEINBERG FUNKUHREN' |
VendorID 0x1363, 'PHOENIX TECHNOLOGIES LTD' |
VendorID 0x1365, 'HYPERCOPE' |
VendorID 0x1367, 'HITACHI ZOSEN CORPORATION' |
VendorID 0x1368, 'SKYWARE CORPORATION' |
VendorID 0x1369, 'DIGIGRAM' |
VendorID 0x136B, 'KAWASAKI STEEL CORPORATION' |
VendorID 0x136C, 'ADTEK SYSTEM SCIENCE CO LTD' |
VendorID 0x1375, 'BOEING-SUNNYVALE' |
VendorID 0x1376, 'LAN Media Corporation' |
VendorID 0x1377, 'ELECTRONIC EQUIPMENT PRODUCTION & DISTRIBUTION' |
VendorID 0x137A, 'MARK OF THE UNICORN INC' |
VendorID 0x137B, 'PPT VISION' |
VendorID 0x137C, 'IWATSU ELECTRIC CO LTD' |
VendorID 0x137D, 'DYNACHIP CORPORATION' |
VendorID 0x1380, 'SANRITZ AUTOMATION CO LTC' |
VendorID 0x1381, 'BRAINS CO. LTD' |
VendorID 0x1383, 'CONTROLNET INC' |
VendorID 0x1384, 'STELLAR SEMICONDUCTOR INC' |
VendorID 0x1385, 'NETGEAR' |
VendorID 0x1387, 'SYSTRAN CORP' |
VendorID 0x1388, 'HITACHI INFORMATION TECHNOLOGY CO LTD' |
VendorID 0x1389, 'APPLICOM INTERNATIONAL' |
VendorID 0x138A, 'SITERA' |
VendorID 0x138B, 'TOKIMEC INC' |
VendorID 0x138E, 'BASLER GMBH' |
VendorID 0x138F, 'PATAPSCO DESIGNS INC' |
VendorID 0x1393, 'MOXA TECHNOLOGIES CO LTD' |
VendorID 0x1394, 'LEVEL ONE COMMUNICATIONS' |
VendorID 0x1395, 'AMBICOM INC' |
VendorID 0x1396, 'CIPHER SYSTEMS INC' |
VendorID 0x1397, 'COLOGNE CHIP DESIGNS GMBH' |
VendorID 0x1398, 'CLARION CO. LTD' |
VendorID 0x1399, 'RIOS SYSTEMS CO LTD' |
VendorID 0x139A, 'ALACRITECH INC' |
VendorID 0x139C, 'QUANTUM 3D INC' |
VendorID 0x139D, 'XSTREAMS PLC/ EPL LIMITED' |
VendorID 0x139E, 'ECHOSTAR DATA NETWORKS' |
VendorID 0x139F, 'AETHRA S.R.L.' |
VendorID 0x13A0, 'CRYSTAL GROUP INC' |
VendorID 0x13A1, 'KAWASAKI HEAVY INDUSTRIES LTD' |
VendorID 0x13A2, 'OSITECH COMMUNICATIONS INC' |
VendorID 0x13A4, 'RASCOM INC' |
VendorID 0x13A7, 'TELES AG' |
VendorID 0x13A8, 'EXAR CORP.' |
VendorID 0x13A9, 'SIEMENS MEDICAL SYSTEMS' |
VendorID 0x13AA, 'NORTEL NETWORKS-BWA DIVISION' |
VendorID 0x13AF, 'T.SQWARE' |
VendorID 0x13B1, 'TAMURA CORPORATION' |
VendorID 0x13B4, 'WELLBEAN CO INC' |
VendorID 0x13B5, 'ARM Ltd' |
VendorID 0x13B6, 'DLoG GMBH' |
VendorID 0x13B8, 'NOKIA TELECOMMUNICATIONS OY' |
VendorID 0x13BD, 'SHARP CORPORATION' |
VendorID 0x13BF, 'SHAREWAVE INC' |
VendorID 0x13C0, 'Microgate Corp.' |
VendorID 0x13C1, '3ware Inc.' |
VendorID 0x13C2, 'TECHNOTREND SYSTEMTECHNIK GMBH' |
VendorID 0x13C3, 'JANZ COMPUTER AG' |
VendorID 0x13C6, 'CONDOR ENGINEERING INC' |
VendorID 0x13C7, 'BLUE CHIP TECHNOLOGY LTD' |
VendorID 0x13CA, 'IOMEGA CORPORATION' |
VendorID 0x13CC, 'METHEUS CORPORATION' |
VendorID 0x13CF, 'STUDIO AUDIO & VIDEO LTD' |
VendorID 0x13D0, 'B2C2' |
VendorID 0x13D1, 'ABOCOM SYSTEMS' |
VendorID 0x13D2, 'SHARK MULTIMEDIA INC' |
VendorID 0x13D3, 'IMC NETWORKS' |
VendorID 0x13D4, 'GRAPHICS MICROSYSTEMS INC' |
VendorID 0x13D6, 'K.I. TECHNOLOGY CO LTD' |
VendorID 0x13D7, 'TOSHIBA ENGINEERING CORPORATION' |
VendorID 0x13D8, 'PHOBOS CORPORATION' |
VendorID 0x13D9, 'APEX INC' |
VendorID 0x13DC, 'NETBOOST CORPORATION' |
VendorID 0x13DE, 'ABB ROBOTICS PRODUCTS' |
VendorID 0x13DF, 'E-TECH INC' |
VendorID 0x13E0, 'GVC CORPORATION' |
VendorID 0x13E3, 'NEST INC' |
VendorID 0x13E4, 'CALCULEX INC' |
VendorID 0x13E5, 'TELESOFT DESIGN LTD' |
VendorID 0x13E9, 'INTRASERVER TECHNOLOGY INC' |
VendorID 0x13EA, 'DALLAS SEMICONDUCTOR' |
VendorID 0x13F0, 'SUNDANCE TECHNOLOGY INC' |
VendorID 0x13F1, 'OCE-TECHNOLOGIES B.V.' |
VendorID 0x13F2, 'FORD MICROELECTRONICS INC' |
VendorID 0x13F4, 'TROIKA NETWORKS INC' |
VendorID 0x13F6, 'C-MEDIA ELECTRONICS INC' |
VendorID 0x13F9, 'NTT ADVANCED TECHNOLOGY CORP.' |
VendorID 0x13FB, 'AYDIN CORP' |
VendorID 0x13FD, 'MICRO SCIENCE INC' |
VendorID 0x1400, 'ARTX INC' |
VendorID 0x1402, 'Meilhaus Electronic GmbH Germany' |
VendorID 0x1404, 'FUNDAMENTAL SOFTWARE INC' |
VendorID 0x1406, 'OCE PRINTING SYSTEMS GmbH' |
VendorID 0x1407, 'LAVA COMPUTER MFG INC' |
VendorID 0x1408, 'ALOKA CO. LTD' |
VendorID 0x140A, 'DSP RESEARCH INC' |
VendorID 0x140B, 'RAMIX INC' |
VendorID 0x140D, 'MATSUSHITA ELECTRIC WORKS LTD' |
VendorID 0x1412, 'ICEnsemble' |
VendorID 0x1413, 'ADDONICS' |
VendorID 0x1415, 'OXFORD SEMICONDUCTOR LTD' |
VendorID 0x1418, 'KYUSHU ELECTRONICS SYSTEMS INC' |
VendorID 0x1419, 'EXCEL SWITCHING CORP' |
VendorID 0x141B, 'ZOOM TELEPHONICS INC' |
VendorID 0x141E, 'FANUC LTD' |
VendorID 0x1420, 'PSION DACOM PLC' |
VendorID 0x1428, 'EDEC CO LTD' |
VendorID 0x1429, 'UNEX TECHNOLOGY CORP' |
VendorID 0x142A, 'KINGMAX TECHNOLOGY INC' |
VendorID 0x142B, 'RADIOLAN' |
VendorID 0x142C, 'MINTON OPTIC INDUSTRY CO LTD' |
VendorID 0x142D, 'PIXSTREAM INC' |
VendorID 0x1430, 'ITT AEROSPACE/COMMUNICATIONS DIVISION' |
VendorID 0x1433, 'ELTEC ELEKTRONIK GMBH' |
VendorID 0x1436, 'CIS TECHNOLOGY INC' |
VendorID 0x1437, 'NISSIN INC CO' |
VendorID 0x1438, 'ATMEL-DREAM' |
VendorID 0x143F, 'LIGHTWELL CO LTD-ZAX DIVISION' |
VendorID 0x1441, 'AGIE SA' |
VendorID 0x1445, 'LOGICAL CO LTD' |
VendorID 0x1446, 'GRAPHIN CO. LTD' |
VendorID 0x1447, 'AIM GMBH' |
VendorID 0x144A, 'ADLINK Technology Inc' |
VendorID 0x144B, 'LORONIX INFORMATION SYSTEMS INC' |
VendorID 0x144D, 'SAMSUNG ELECTRONICS CO LTD' |
VendorID 0x1450, 'OCTAVE COMMUNICATIONS IND.' |
VendorID 0x1451, 'SP3D CHIP DESIGN GMBH' |
VendorID 0x1453, 'MYCOM INC' |
VendorID 0x1455, 'LOGIC PLUS PLUS INC' |
VendorID 0x1458, 'GIGA-BYTE TECHNOLOGY' |
VendorID 0x145C, 'CRYPTEK' |
VendorID 0x145F, 'BALDOR ELECTRIC COMPANY' |
VendorID 0x1460, 'DYNARC INC' |
VendorID 0x1461, 'AVERMEDIA Tech.' |
VendorID 0x1462, 'MICRO-STAR INTERNATIONAL CO LTD' |
VendorID 0x1463, 'FAST CORPORATION' |
VendorID 0x1464, 'INTERACTIVE CIRCUITS & SYSTEMS LTD' |
VendorID 0x1465, 'GN NETTEST TELECOM DIV.' |
VendorID 0x1468, 'AMBIT MICROSYSTEMS CORP.' |
VendorID 0x1469, 'CLEVELAND MOTION CONTROLS' |
VendorID 0x146C, 'RUBY TECH CORP.' |
VendorID 0x146D, 'TACHYON' |
VendorID 0x146E, 'WILLIAMS ELECTRONICS GAMES.' |
VendorID 0x1471, 'INTEGRATED TELECOM EXPRESS INC' |
VendorID 0x1473, 'ZAPEX TECHNOLOGIES INC' |
VendorID 0x1474, 'DOUG CARSON & ASSOCIATES' |
VendorID 0x1477, 'NET INSIGHT' |
VendorID 0x1478, 'DIATREND CORPORATION' |
VendorID 0x147B, 'ABIT Computer' |
VendorID 0x147F, 'NIHON UNISYS' |
VendorID 0x1482, 'ISYTEC-Integrierte Systemtechnik Gmbh' |
VendorID 0x1483, 'LABWAY COPORATION' |
VendorID 0x1485, 'ERMA-ELECTRONIC GMBH' |
VendorID 0x1489, 'KYE SYSTEMS CORPORATION' |
VendorID 0x148A, 'OPTO 22' |
VendorID 0x148B, 'INNOMEDIALOGIC INC.' |
VendorID 0x148E, 'OSI PLUS CORPORATION' |
VendorID 0x148F, 'PLANT EQUIPMENT.' |
VendorID 0x1490, 'TC LABS PTY LTD.' |
VendorID 0x1493, 'MAKER COMMUNICATIONS' |
VendorID 0x1495, 'TOKAI COMMUNICATIONS INDUSTRY CO. LTD' |
VendorID 0x1496, 'JOYTECH COMPUTER CO. LTD.' |
VendorID 0x1497, 'SMA REGELSYSTEME GMBH' |
VendorID 0x1499, 'EMTEC CO. LTD' |
VendorID 0x149A, 'ANDOR TECHNOLOGY LTD' |
VendorID 0x149B, 'SEIKO INSTRUMENTS INC' |
VendorID 0x149C, 'OVISLINK CORP.' |
VendorID 0x149D, 'NEWTEK INC' |
VendorID 0x149E, 'MAPLETREE NETWORKS INC.' |
VendorID 0x149F, 'LECTRON CO LTD' |
VendorID 0x14A0, 'SOFTING GMBH' |
VendorID 0x14A1, 'SYSTEMBASE CO LTD' |
VendorID 0x14A2, 'MILLENNIUM ENGINEERING INC' |
VendorID 0x14A3, 'MAVERICK NETWORKS' |
VendorID 0x14A4, 'GVC/BCM ADVANCED RESEARCH' |
VendorID 0x14A5, 'XIONICS DOCUMENT TECHNOLOGIES INC.' |
VendorID 0x14A6, 'INOVA COMPUTERS GMBH & CO KG' |
VendorID 0x14A8, 'FEATRON TECHNOLOGIES CORPORATION' |
VendorID 0x14A9, 'HIVERTEC INC.' |
VendorID 0x14AB, 'MENTOR GRAPHICS CORP.' |
VendorID 0x14AC, 'NOVAWEB TECHNOLOGIES INC' |
VendorID 0x14AD, 'TIME SPACE RADIO AB' |
VendorID 0x14AE, 'CTI PET Systems' |
VendorID 0x14AF, 'GUILLEMOT CORPORATION' |
VendorID 0x14B0, 'BST COMMUNICATION TECHNOLOGY LTD' |
VendorID 0x14B1, 'NEXTCOM K.K.' |
VendorID 0x14B2, 'ENNOVATE NETWORKS INC' |
VendorID 0x14B3, 'XPEED INC.' |
VendorID 0x14B4, 'PHILIPS BUSINESS ELECTRONICS B.V.' |
VendorID 0x14B5, 'CREAMWARE GMBH' |
VendorID 0x14B6, 'QUANTUM DATA CORP.' |
VendorID 0x14B7, 'PROXIM INC' |
VendorID 0x14B8, 'TECHSOFT TECHNOLOGY CO LTD' |
VendorID 0x14B9, 'AIRONET WIRELESS COMMUNICATIONS' |
VendorID 0x14BA, 'INTERNIX INC.' |
VendorID 0x14BB, 'SEMTECH CORPORATION' |
VendorID 0x14BC, 'GLOBESPAN SEMICONDUCTOR INC.' |
VendorID 0x14BD, 'CARDIO CONTROL N.V.' |
VendorID 0x14BE, 'L3 COMMUNICATIONS' |
VendorID 0x14BF, 'SPIDER COMMUNICATIONS INC.' |
VendorID 0x14C0, 'COMPAL ELECTRONICS INC' |
VendorID 0x14C1, 'MYRICOM INC.' |
VendorID 0x14C2, 'DTK COMPUTER' |
VendorID 0x14C3, 'MEDIATEK CORP.' |
VendorID 0x14C4, 'IWASAKI INFORMATION SYSTEMS CO LTD' |
VendorID 0x14C5, 'ABB AUTOMATION PRODUCTS' |
VendorID 0x14C6, 'DATA RACE INC' |
VendorID 0x14C7, 'MODULAR TECHNOLOY HOLDINGS LTD' |
VendorID 0x14C8, 'TURBOCOMM TECH. INC.' |
VendorID 0x14C9, 'ODIN TELESYSTEMS INC' |
VendorID 0x14CA, 'PE LOGIC CORP.' |
VendorID 0x14CB, 'Billionton Systems Inc./Cadmus Micro Inc.' |
VendorID 0x14CC, 'NAKAYO TELECOMMUNICATIONS INC' |
VendorID 0x14CD, 'UNIVERSAL SCIENTIFIC IND' |
VendorID 0x14CE, 'WHISTLE COMMUNICATIONS' |
VendorID 0x14CF, 'TEK MICROSYSTEMS INC.' |
VendorID 0x14D0, 'ERICSSON AXE R & D' |
VendorID 0x14D1, 'COMPUTER HI-TECH CO LTD' |
VendorID 0x14D2, 'TITAN ELECTRONICS INC' |
VendorID 0x14D3, 'CIRTECH (UK) LTD' |
VendorID 0x14D4, 'PANACOM TECHNOLOGY CORP' |
VendorID 0x14D5, 'NITSUKO CORPORATION' |
VendorID 0x14D6, 'ACCUSYS' |
VendorID 0x14D7, 'HIRAKAWA HEWTECH CORP' |
VendorID 0x14D8, 'HOPF ELEKTRONIK GMBH' |
VendorID 0x14D9, 'ALPHA PROCESSOR INC' |
VendorID 0x14DA, 'NATIONAL AEROSPACE LABORATORIES' |
VendorID 0x14DB, 'AVLAB TECHNOLOGY INC' |
VendorID 0x14DC, 'AMPLICON LIVELINE LTD' |
VendorID 0x14DD, 'IMODL INC.' |
VendorID 0x14DE, 'APPLIED INTEGRATION CORPORATION' |
VendorID 0x14DF, 'BASIS COMMUNICATIONS CORP' |
VendorID 0x14E1, 'INVERTEX' |
VendorID 0x14E2, 'INFOLIBRIA' |
VendorID 0x14E3, 'AMTELCO' |
VendorID 0x14E4, 'BROADCOM CORPORATION' |
VendorID 0x14E5, 'PIXELFUSION LTD' |
VendorID 0x14E6, 'SHINING TECHNOLOGY INC' |
VendorID 0x14E7, '3CX' |
VendorID 0x14E8, 'RAYCER INC' |
VendorID 0x14E9, 'GARNETS SYSTEM CO LTD' |
VendorID 0x14EA, 'PLANEX COMMUNICATIONS INC' |
VendorID 0x14EB, 'SEIKO EPSON CORPORATION' |
VendorID 0x14EC, 'ACQIRIS' |
VendorID 0x14ED, 'DATAKINETICS LTD' |
VendorID 0x14EE, 'MASPRO KENKOH CORP' |
VendorID 0x14EF, 'CARRY COMPUTER ENG. CO LTD' |
VendorID 0x14F0, 'CANON RESEACH CENTRE FRANCE' |
VendorID 0x14F1, 'Conexant Systems, Inc' |
VendorID 0x14F2, 'Mobility Electronics, Inc.' |
VendorID 0x14F3, 'BROADLOGIC' |
VendorID 0x14F4, 'TOKYO ELECTRONIC INDUSTRY CO LTD' |
VendorID 0x14F5, 'SOPAC LTD' |
VendorID 0x14F6, 'COYOTE TECHNOLOGIES LLC' |
VendorID 0x14F7, 'WOLF TECHNOLOGY INC' |
VendorID 0x14F8, 'AUDIOCODES INC' |
VendorID 0x14F9, 'AG COMMUNICATIONS' |
VendorID 0x14FA, 'WAVETEK WANDEL & GOLTERMANN' |
VendorID 0x14FB, 'TRANSAS MARINE (UK) LTD' |
VendorID 0x14FC, 'QUADRICS SUPERCOMPUTERS WORLD' |
VendorID 0x14FD, 'JAPAN COMPUTER INDUSTRY INC.' |
VendorID 0x14FE, 'ARCHTEK TELECOM CORP.' |
VendorID 0x14FF, 'TWINHEAD INTERNATIONAL CORP' |
VendorID 0x1500, 'LANTECH COMPUTER COMPANY' |
VendorID 0x1501, 'BANKSOFT CANADA LTD' |
VendorID 0x1502, 'MITSUBISHI ELECTRIC LOGISTICS SUPPORT CO' |
VendorID 0x1503, 'KAWASAKI LSI USA INC' |
VendorID 0x1504, 'KAISER ELECTRONICS' |
VendorID 0x1505, 'ITA INGENIEURBURO FUR TESTAUFGABEN GMBH' |
VendorID 0x1506, 'CHAMELEON SYSTEMS INC' |
VendorID 0x1507, 'HTEC LTD' |
VendorID 0x1508, 'HONDA CONNECTORS/MHOTRONICS INC' |
VendorID 0x1509, 'FIRST INTERNATIONAL COMPUTER INC' |
VendorID 0x150A, 'FORVUS RESEARCH INC' |
VendorID 0x150B, 'YAMASHITA SYSTEMS CORP' |
VendorID 0x150C, 'KYOPAL CO LTD' |
VendorID 0x150D, 'WARPSPPED INC' |
VendorID 0x150E, 'C-PORT CORPORATION' |
VendorID 0x150F, 'INTEC GMBH' |
VendorID 0x1510, 'BEHAVIOR TECH COMPUTER CORP' |
VendorID 0x1511, 'CENTILLIUM TECHNOLOGY CORP' |
VendorID 0x1512, 'ROSUN TECHNOLOGIES INC' |
VendorID 0x1513, 'RAYCHEM' |
VendorID 0x1514, 'TFL LAN INC' |
VendorID 0x1515, 'ICS ADVENT' |
VendorID 0x1516, 'MYSON TECHNOLOGY INC' |
VendorID 0x1517, 'ECHOTEK CORPORATION' |
VendorID 0x1518, 'PEP MODULAR COMPUTERS GMBH' |
VendorID 0x1519, 'TELEFON AKTIEBOLAGET LM Ericsson' |
VendorID 0x151A, 'GLOBETEK INC' |
VendorID 0x151B, 'COMBOX LTD' |
VendorID 0x151C, 'DIGITAL AUDIO LABS INC' |
VendorID 0x151D, 'FUJITSU COMPUTER PRODUCTS OF AMERICA' |
VendorID 0x151E, 'MATRIX CORP.' |
VendorID 0x151F, 'TOPIC SEMICONDUCTOR CORP' |
VendorID 0x1520, 'CHAPLET SYSTEM INC' |
VendorID 0x1521, 'BELL CORPORATION' |
VendorID 0x1522, 'MAINPINE LIMITED' |
VendorID 0x1523, 'MUSIC SEMICONDUCTORS' |
VendorID 0x1524, 'ENE TECHNOLOGY INC' |
VendorID 0x1525, 'IMPACT TECHNOLOGIES' |
VendorID 0x1526, 'ISS' |
VendorID 0x1527, 'SOLECTRON' |
VendorID 0x1528, 'ACKSYS' |
VendorID 0x1529, 'AMERICAN MICROSYSTEMS INC' |
VendorID 0x152A, 'QUICKTURN DESIGN SYSTEMS' |
VendorID 0x152B, 'FLYTECH TECHNOLOGY CO LTD' |
VendorID 0x152C, 'MACRAIGOR SYSTEMS LLC' |
VendorID 0x152D, 'QUANTA COMPUTER INC' |
VendorID 0x152E, 'MELEC INC' |
VendorID 0x152F, 'PHILIPS-CRYPTO' |
VendorID 0x1530, 'ACQIS TECHNOLOGY' |
VendorID 0x1531, 'CHRYON CORP.' |
VendorID 0x1532, 'ECHELON CORPORATION' |
VendorID 0x1533, 'BALTIMORE' |
VendorID 0x1534, 'ROAD CORPORATION' |
VendorID 0x1535, 'EVERGREEN TECHNOLOGIES INC' |
VendorID 0x1537, 'DATALEX COMMUNCATIONS' |
VendorID 0x1538, 'ARALION INC.' |
VendorID 0x1539, 'ATELIER INFORMATIQUES et ELECTRONIQUE ETUDES S.A.' |
VendorID 0x153A, 'ONO SOKKI' |
VendorID 0x153B, 'TERRATEC ELECTRONIC GMBH' |
VendorID 0x153C, 'ANTAL ELECTRONIC' |
VendorID 0x153D, 'FILANET CORPORATION' |
VendorID 0x153E, 'TECHWELL INC' |
VendorID 0x153F, 'MIPS DENMARK' |
VendorID 0x1540, 'PROVIDEO MULTIMEDIA CO LTD' |
VendorID 0x1541, 'TELOSITY INC.' |
VendorID 0x1542, 'VIVID TECHNOLOGY INC' |
VendorID 0x1543, 'SILICON LABORATORIES' |
VendorID 0x1544, 'DCM DATA SYSTEMS' |
VendorID 0x1545, 'VISIONTEK' |
VendorID 0x1546, 'IOI TECHNOLOGY CORP.' |
VendorID 0x1547, 'MITUTOYO CORPORATION' |
VendorID 0x1548, 'JET PROPULSION LABORATORY' |
VendorID 0x1549, 'INTERCONNECT SYSTEMS SOLUTIONS' |
VendorID 0x154A, 'MAX TECHNOLOGIES INC.' |
VendorID 0x154B, 'COMPUTEX CO LTD' |
VendorID 0x154C, 'VISUAL TECHNOLOGY INC.' |
VendorID 0x154D, 'PAN INTERNATIONAL INDUSTRIAL CORP' |
VendorID 0x154E, 'SERVOTEST LTD' |
VendorID 0x154F, 'STRATABEAM TECHNOLOGY' |
VendorID 0x1550, 'OPEN NETWORK CO LTD' |
VendorID 0x1551, 'SMART ELECTRONIC DEVELOPMENT GMBH' |
VendorID 0x1552, 'RACAL AIRTECH LTD' |
VendorID 0x1553, 'CHICONY ELECTRONICS CO LTD' |
VendorID 0x1554, 'PROLINK MICROSYSTEMS CORP.' |
VendorID 0x1555, 'GESYTEC GMBH' |
VendorID 0x1556, 'PLD APPLICATIONS' |
VendorID 0x1557, 'MEDIASTAR CO. LTD' |
VendorID 0x1558, 'CLEVO/KAPOK COMPUTER' |
VendorID 0x1559, 'SI LOGIC LTD' |
VendorID 0x155A, 'INNOMEDIA INC' |
VendorID 0x155B, 'PROTAC INTERNATIONAL CORP' |
VendorID 0x155C, 'CEMAX-ICON INC' |
VendorID 0x155D, 'MAC SYSTEM CO LTD' |
VendorID 0x155E, 'LP ELEKTRONIK GMBH/KUKA Controls GmbH' |
VendorID 0x155F, 'PERLE SYSTEMS LIMITED' |
VendorID 0x1560, 'TERAYON COMMUNICATIONS SYSTEMS' |
VendorID 0x1561, 'VIEWGRAPHICS INC' |
VendorID 0x1562, 'Symbol Technologies, Inc.' |
VendorID 0x1563, 'A-TREND' |
VendorID 0x1564, 'YAMAKATSU ELECTRONICS INDUSTRY CO LTD' |
VendorID 0x1565, 'BIOSTAR MICROTECH INT CORP' |
VendorID 0x1566, 'ARDENT TECHNOLOGIES INC' |
VendorID 0x1567, 'JUNGSOFT' |
VendorID 0x1568, 'DDK ELECTRONICS INC' |
VendorID 0x1569, 'PALIT MICROSYSTEMS INC' |
VendorID 0x156A, 'AVTEC SYSTEMS' |
VendorID 0x156B, '2WIRE' |
VendorID 0x156C, 'VIDAC ELECTRONICS GMBH' |
VendorID 0x156D, 'ALPHA-TOP CORP' |
VendorID 0x156E, 'ALFA INC' |
VendorID 0x156F, 'M-SYSTEMS FLASH DISK PIONEERS LTD' |
VendorID 0x1570, 'LECROY CORPORATION' |
VendorID 0x1571, 'CONTEMPORARY CONTROLS' |
VendorID 0x1572, 'OTIS ELEVATOR COMPANY' |
VendorID 0x1573, 'LATTICE-VANTIS' |
VendorID 0x1574, 'FAIRCHILD SEMICONDUCTOR' |
VendorID 0x1575, 'VOLTAIRE ADVANCED DATA SECURITY LTD' |
VendorID 0x1576, 'VIEWCAST COM' |
VendorID 0x1578, 'HITT' |
VendorID 0x1579, 'DUAL TECHNOLOGY CORPORATION' |
VendorID 0x157A, 'JAPAN ELECRONICS IND. INC' |
VendorID 0x157B, 'STAR MULTIMEDIA CORP.' |
VendorID 0x157C, 'EUROSOFT (UK) LTD' |
VendorID 0x157D, 'GEMFLEX NETWORKS' |
VendorID 0x157E, 'TRANSITION NETWORKS' |
VendorID 0x157F, 'PX INSTRUMENTS TECHNOLOGY LTD' |
VendorID 0x1580, 'PRIMEX AEROSPACE CO.' |
VendorID 0x1581, 'SEH COMPUTERTECHNIK GMBH' |
VendorID 0x1582, 'CYTEC CORPORATION' |
VendorID 0x1583, 'INET TECHNOLOGIES INC' |
VendorID 0x1584, 'UNIWILL COMPUTER CORP' |
VendorID 0x1585, 'LOGITRON' |
VendorID 0x1586, 'LANCAST INC' |
VendorID 0x1587, 'KONICA CORPORATION' |
VendorID 0x1588, 'SOLIDUM SYSTEMS CORP' |
VendorID 0x1589, 'ATLANTEK MICROSYSTEMS PTY LTD' |
VendorID 0x158A, 'DIGALOG SYSTEMS INC' |
VendorID 0x158B, 'ALLIED DATA TECHNOLOGIES' |
VendorID 0x158C, 'HITACHI SEMICONDUCTOR & DEVICES SALES CO LTD' |
VendorID 0x158D, 'POINT MULTIMEDIA SYSTEMS' |
VendorID 0x158E, 'LARA TECHNOLOGY INC' |
VendorID 0x158F, 'DITECT COOP' |
VendorID 0x1590, '3PARDATA' |
VendorID 0x1591, 'ARN' |
VendorID 0x1592, 'SYBA TECH LIMITED' |
VendorID 0x1593, 'BOPS INC' |
VendorID 0x1594, 'NETGAME LTD' |
VendorID 0x1595, 'DIVA SYSTEMS CORP.' |
VendorID 0x1596, 'FOLSOM RESEARCH INC' |
VendorID 0x1597, 'MEMEC DESIGN SERVICES' |
VendorID 0x1598, 'GRANITE MICROSYSTEMS' |
VendorID 0x1599, 'DELTA ELECTRONICS INC' |
VendorID 0x159A, 'GENERAL INSTRUMENT' |
VendorID 0x159B, 'FARADAY TECHNOLOGY CORP' |
VendorID 0x159C, 'STRATUS COMPUTER SYSTEMS' |
VendorID 0x159D, 'NINGBO HARRISON ELECTRONICS CO LTD' |
VendorID 0x159E, 'A-MAX TECHNOLOGY' |
VendorID 0x159F, 'GALEA NETWORK SECURITY' |
VendorID 0x15A0, 'COMPUMASTER SRL' |
VendorID 0x15A1, 'GEOCAST NETWORK SYSTEMS INC' |
VendorID 0x15A2, 'CATALYST ENTERPRISES INC' |
VendorID 0x15A3, 'ITALTEL' |
VendorID 0x15A4, 'X-NET OY' |
VendorID 0x15A5, 'TOYOTA MACS INC' |
VendorID 0x15A6, 'SUNLIGHT ULTRASOUND TECHNOLOGIES LTD' |
VendorID 0x15A7, 'SSE TELECOM INC' |
VendorID 0x15A8, 'SHANGHAI COMMUNICATIONS TECHNOLOGIES CENTER' |
VendorID 0x15AA, 'MORETON BAY' |
VendorID 0x15AB, 'BLUESTEEL NETWORKS INC' |
VendorID 0x15AC, 'NORTH ATLANTIC INSTRUMENTS' |
VendorID 0x15AD, 'VMware Inc.' |
VendorID 0x15AE, 'AMERSHAM PHARMACIA BIOTECH' |
VendorID 0x15B0, 'ZOLTRIX INTERNATIONAL LIMITED' |
VendorID 0x15B1, 'SOURCE TECHNOLOGY INC' |
VendorID 0x15B2, 'MOSAID TECHNOLOGIES INC.' |
VendorID 0x15B3, 'MELLANOX TECHNOLOGY' |
VendorID 0x15B4, 'CCI/TRIAD' |
VendorID 0x15B5, 'CIMETRICS INC' |
VendorID 0x15B6, 'TEXAS MEMORY SYSTEMS INC' |
VendorID 0x15B7, 'SANDISK CORP.' |
VendorID 0x15B8, 'ADDI-DATA GMBH' |
VendorID 0x15B9, 'MAESTRO DIGITAL COMMUNICATIONS' |
VendorID 0x15BA, 'IMPACCT TECHNOLOGY CORP' |
VendorID 0x15BB, 'PORTWELL INC' |
VendorID 0x15BC, 'AGILENT TECHNOLOGIES' |
VendorID 0x15BD, 'DFI INC.' |
VendorID 0x15BE, 'SOLA ELECTRONICS' |
VendorID 0x15BF, 'HIGH TECH COMPUTER CORP (HTC)' |
VendorID 0x15C0, 'BVM LIMITED' |
VendorID 0x15C1, 'QUANTEL' |
VendorID 0x15C2, 'NEWER TECHNOLOGY INC' |
VendorID 0x15C3, 'TAIWAN MYCOMP CO LTD' |
VendorID 0x15C4, 'EVSX' |
VendorID 0x15C5, 'PROCOMP INFORMATICS LTD' |
VendorID 0x15C6, 'TECHNICAL UNIVERSITY OF BUDAPEST' |
VendorID 0x15C7, 'TATEYAMA SYSTEM LABORATORY CO LTD' |
VendorID 0x15C8, 'PENTA MEDIA CO. LTD' |
VendorID 0x15C9, 'SEROME TECHNOLOGY INC' |
VendorID 0x15CA, 'BITBOYS OY' |
VendorID 0x15CB, 'AG ELECTRONICS LTD' |
VendorID 0x15CC, 'HOTRAIL INC.' |
VendorID 0x15CD, 'DREAMTECH CO LTD' |
VendorID 0x15CE, 'GENRAD INC.' |
VendorID 0x15CF, 'HILSCHER GMBH' |
VendorID 0x15D1, 'INFINEON TECHNOLOGIES AG' |
VendorID 0x15D2, 'FIC (FIRST INTERNATIONAL COMPUTER INC)' |
VendorID 0x15D3, 'NDS TECHNOLOGIES ISRAEL LTD' |
VendorID 0x15D4, 'IWILL CORPORATION' |
VendorID 0x15D5, 'TATUNG CO.' |
VendorID 0x15D6, 'ENTRIDIA CORPORATION' |
VendorID 0x15D7, 'Rockwell-Collins Inc' |
VendorID 0x15D8, 'CYBERNETICS TECHNOLOGY CO LTD' |
VendorID 0x15D9, 'SUPER MICRO COMPUTER INC' |
VendorID 0x15DA, 'CYBERFIRM INC.' |
VendorID 0x15DB, 'APPLIED COMPUTING SYSTEMS INC.' |
VendorID 0x15DC, 'LITRONIC INC' |
VendorID 0x15DD, 'SIGMATEL INC.' |
VendorID 0x15DE, 'MALLEABLE TECHNOLOGIES INC' |
VendorID 0x15DF, 'INFINILINK CORP.' |
VendorID 0x15E0, 'CACHEFLOW INC' |
VendorID 0x15E1, 'VOICE TECHNOLOGIES GROUP INC' |
VendorID 0x15E2, 'QUICKNET TECHNOLOGIES INC' |
VendorID 0x15E3, 'NETWORTH TECHNOLOGIES INC' |
VendorID 0x15E4, 'VSN SYSTEMEN BV' |
VendorID 0x15E5, 'VALLEY TECHNOLOGIES INC' |
VendorID 0x15E6, 'AGERE INC.' |
VendorID 0x15E7, 'GET ENGINEERING CORP.' |
VendorID 0x15E8, 'NATIONAL DATACOMM CORP.' |
VendorID 0x15E9, 'PACIFIC DIGITAL CORP.' |
VendorID 0x15EA, 'TOKYO DENSHI SEKEI K.K.' |
VendorID 0x15EB, 'DRSEARCH GMBH' |
VendorID 0x15EC, 'BECKHOFF GMBH' |
VendorID 0x15ED, 'MACROLINK INC' |
VendorID 0x15EE, 'IN WIN DEVELOPMENT INC.' |
VendorID 0x15EF, 'INTELLIGENT PARADIGM INC' |
VendorID 0x15F0, 'B-TREE SYSTEMS INC' |
VendorID 0x15F1, 'TIMES N SYSTEMS INC' |
VendorID 0x15F2, 'DIAGNOSTIC INSTRUMENTS INC' |
VendorID 0x15F3, 'DIGITMEDIA CORP.' |
VendorID 0x15F4, 'VALUESOFT' |
VendorID 0x15F5, 'POWER MICRO RESEARCH' |
VendorID 0x15F6, 'EXTREME PACKET DEVICE INC' |
VendorID 0x15F7, 'BANCTEC' |
VendorID 0x15F8, 'KOGA ELECTRONICS CO' |
VendorID 0x15F9, 'ZENITH ELECTRONICS CORPORATION' |
VendorID 0x15FA, 'J P AXZAM CORPORATION' |
VendorID 0x15FB, 'ZILOG INC.' |
VendorID 0x15FC, 'TECHSAN ELECTRONICS CO LTD' |
VendorID 0x15FD, 'N-CUBED.NET' |
VendorID 0x15FE, 'KINPO ELECTRONICS INC' |
VendorID 0x15FF, 'FASTPOINT TECHNOLOGIES INC.' |
VendorID 0x1600, 'NORTHROP GRUMMAN-CANADA LTD' |
VendorID 0x1601, 'TENTA TECHNOLOGY' |
VendorID 0x1602, 'PROSYS-TEC INC.' |
VendorID 0x1603, 'NOKIA WIRELESS BUSINESS COMMUNICATIONS' |
VendorID 0x1604, 'CENTRAL SYSTEM RESEARCH CO LTD' |
VendorID 0x1605, 'PAIRGAIN TECHNOLOGIES' |
VendorID 0x1606, 'EUROPOP AG' |
VendorID 0x1607, 'LAVA SEMICONDUCTOR MANUFACTURING INC.' |
VendorID 0x1608, 'AUTOMATED WAGERING INTERNATIONAL' |
VendorID 0x1609, 'SCIEMETRIC INSTRUMENTS INC' |
VendorID 0x166D, 'Broadcom -SiByte' |
VendorID 0x1695, 'EPOX Computer Co' |
VendorID 0x17F2, 'ALBATRON Corp.' |
VendorID 0x1813, 'AMBIENT TECHNOLOGIES INC' |
VendorID 0x1849, 'ASROCK Inc' |
VendorID 0x1B13, 'Jaton Corp' |
VendorID 0x2001, 'TEMPORAL RESEARCH LTD' |
VendorID 0x270F, 'CHAINTECH COMPUTER CO. LTD' |
VendorID 0x3388, 'HINT CORP' |
VendorID 0x3411, 'QUANTUM DESIGNS (H.K.) INC.' |
VendorID 0x4005, 'AVANCE LOGIC INC' |
VendorID 0x4033, 'DELTA NETWORKS INC' |
VendorID 0x416C, 'ALADDIN KNOWLEDGE SYSTEMS' |
VendorID 0x4444, 'CONEXANT (WAS ICOMPRESION INC.)' |
VendorID 0x4943, 'GROWTH NETWORKS' |
VendorID 0x4CA1, 'SEANIX TECHNOLOGY INC' |
VendorID 0x4D51, 'MEDIAQ INC.' |
VendorID 0x4D54, 'MICROTECHNICA CO LTD' |
VendorID 0x5136, 'S S TECHNOLOGIES' |
VendorID 0x5333, 'S3 Graphics Co., Ltd.' |
VendorID 0x544C, 'TERALOGIC INC' |
VendorID 0x5555, 'GENROCO INC' |
VendorID 0x6409, 'LOGITEC CORP.' |
VendorID 0x6666, 'DECISION COMPUTER INTERNATIONAL CO.' |
VendorID 0x8086, 'Intel Corp.' |
VendorID 0x8888, 'SILICON MAGIC CORP.' |
VendorID 0x8E0E, 'COMPUTONE CORPORATION' |
VendorID 0x9004, 'Adaptec Inc' |
VendorID 0x919A, 'GIGAPIXEL CORP' |
VendorID 0x9412, 'HOLTEK' |
VendorID 0x9699, 'OMNI MEDIA TECHNOLOGY INC.' |
VendorID 0x9710, 'NetMos' |
VendorID 0xA0A0, 'AOPEN INC.' |
VendorID 0xA259, 'HEWLETT PACKARD' |
VendorID 0xAC1E, 'DIGITAL RECEIVER TECHNOLOGY INC' |
VendorID 0xC0DE, 'MOTOROLA' |
VendorID 0xC0FE, 'MOTION ENGINEERING.' |
VendorID 0xCA50, 'VARIAN AUSTRIALIA PTY LTD' |
VendorID 0xCAFE, 'CHRYSALIS-ITS' |
VendorID 0xCCCC, 'CATAPULT COMMUNICATIONS' |
VendorID 0xD4D4, 'DY4 Systems Inc/Curtiss-Wright Controls Embed. Com' |
VendorID 0xE159, 'TigerJet' |
VendorID 0xE4BF, 'EKF ELEKTRONIK GMBH' |
VendorID 0xEA01, 'EAGLE TECHNOLOGY' |
VendorID 0xFA57, 'FAST SEARCH & TRANSFER ASA' |
VendorID 0xFEDA, 'EPIGRAM INC' |
VendorID 0, 'Unknown' ; <- terminator |
;-------------------------------------- |
Classes: |
; Class, Subclass, [Interface], Name |
ClassID 2, 0, , 'Ethernet' |
ClassID 2, 1, , 'Token Ring' |
ClassID 2, 2, , 'FDDI' |
ClassID 2, 3, , 'ATM' |
ClassID 2, 4, , 'ISDN' |
ClassID 2, 5, , 'WorldFip' |
ClassID 2, 6, , 'PICMG 2.14' |
ClassID 2, 0x80, , 'misc' |
ClassID 0x0d, 0x20, , 'Wlan (802.11a)' |
ClassID 0x0d, 0x21, , 'Wlan (802.11b)' |
ClassID 0xff, 0xff, , 'Unknown' ; <- terminator |
/kernel/branches/net/applications/zeroconf/debug-fdo.inc |
---|
0,0 → 1,422 |
; |
; Formatted Debug Output (FDO) |
; Copyright (c) 2005-2006, mike.dld |
; Created: 2005-01-29, Changed: 2006-11-10 |
; |
; For questions and bug reports, mail to mike.dld@gmail.com |
; |
; Available format specifiers are: %s, %d, %u, %x (with partial width support) |
; |
; to be defined: |
; __DEBUG__ equ 1 |
; __DEBUG_LEVEL__ equ 5 |
macro debug_func name { |
if used name |
name@of@func equ name |
} |
macro debug_beginf { |
align 4 |
name@of@func: |
} |
debug_endf fix end if |
macro DEBUGS _sign,[_str] { |
common |
local tp |
tp equ 0 |
match _arg:_num,_str \{ |
DEBUGS_N _sign,_num,_arg |
tp equ 1 |
\} |
match =0 _arg,tp _str \{ |
DEBUGS_N _sign,,_arg |
\} |
} |
macro DEBUGS_N _sign,_num,[_str] { |
common |
pushf |
pushad |
local ..str,..label,is_str |
is_str = 0 |
forward |
if _str eqtype '' |
is_str = 1 |
end if |
common |
if is_str = 1 |
jmp ..label |
..str db _str,0 |
..label: |
add esp,4*8+4 |
mov edx,..str |
sub esp,4*8+4 |
else |
mov edx,_str |
end if |
if ~_num eq |
if _num eqtype eax |
if _num in <eax,ebx,ecx,edx,edi,ebp,esp> |
mov esi,_num |
else if ~_num eq esi |
movzx esi,_num |
end if |
else if _num eqtype 0 |
mov esi,_num |
else |
local tp |
tp equ 0 |
match [_arg],_num \{ |
mov esi,dword[_arg] |
tp equ 1 |
\} |
match =0 =dword[_arg],tp _num \{ |
mov esi,dword[_arg] |
tp equ 1 |
\} |
match =0 =word[_arg],tp _num \{ |
movzx esi,word[_arg] |
tp equ 1 |
\} |
match =0 =byte[_arg],tp _num \{ |
movzx esi,byte[_arg] |
tp equ 1 |
\} |
match =0,tp \{ |
'Error: specified string width is incorrect' |
\} |
end if |
else |
mov esi,0x7FFFFFFF |
end if |
call fdo_debug_outstr |
popad |
popf |
} |
macro DEBUGD _sign,_dec { |
local tp |
tp equ 0 |
match _arg:_num,_dec \{ |
DEBUGD_N _sign,_num,_arg |
tp equ 1 |
\} |
match =0 _arg,tp _dec \{ |
DEBUGD_N _sign,,_arg |
\} |
} |
macro DEBUGD_N _sign,_num,_dec { |
pushf |
pushad |
if (~_num eq) |
if (_dec eqtype eax | _dec eqtype 0) |
'Error: precision allowed only for in-memory variables' |
end if |
if (~_num in <1,2,4>) |
if _sign |
'Error: 1, 2 and 4 are only allowed for precision in %d' |
else |
'Error: 1, 2 and 4 are only allowed for precision in %u' |
end if |
end if |
end if |
if _dec eqtype eax |
if _dec in <ebx,ecx,edx,esi,edi,ebp,esp> |
mov eax,_dec |
else if ~_dec eq eax |
if _sign = 1 |
movsx eax,_dec |
else |
movzx eax,_dec |
end if |
end if |
else if _dec eqtype 0 |
mov eax,_dec |
else |
add esp,4*8+4 |
if _num eq |
mov eax,dword _dec |
else if _num = 1 |
if _sign = 1 |
movsx eax,byte _dec |
else |
movzx eax,byte _dec |
end if |
else if _num = 2 |
if _sign = 1 |
movsx eax,word _dec |
else |
movzx eax,word _dec |
end if |
else |
mov eax,dword _dec |
end if |
sub esp,4*8+4 |
end if |
mov cl,_sign |
call fdo_debug_outdec |
popad |
popf |
} |
macro DEBUGH _sign,_hex { |
local tp |
tp equ 0 |
match _arg:_num,_hex \{ |
DEBUGH_N _sign,_num,_arg |
tp equ 1 |
\} |
match =0 _arg,tp _hex \{ |
DEBUGH_N _sign,,_arg |
\} |
} |
macro DEBUGH_N _sign,_num,_hex { |
pushf |
pushad |
if (~_num eq) & (~_num in <1,2,3,4,5,6,7,8>) |
'Error: 1..8 are only allowed for precision in %x' |
end if |
if _hex eqtype eax |
if _hex in <eax,ebx,ecx,edx,esi,edi,ebp,esp> |
if ~_hex eq eax |
mov eax,_hex |
end if |
else if _hex in <ax,bx,cx,dx,si,di,bp,sp> |
if ~_hex eq ax |
movzx eax,_hex |
end if |
shl eax,16 |
if (_num eq) |
mov edx,4 |
end if |
else if _hex in <al,ah,bl,bh,cl,ch,dl,dh> |
if ~_hex eq al |
movzx eax,_hex |
end if |
shl eax,24 |
if (_num eq) |
mov edx,2 |
end if |
end if |
else if _hex eqtype 0 |
mov eax,_hex |
else |
add esp,4*8+4 |
mov eax,dword _hex |
sub esp,4*8+4 |
end if |
if ~_num eq |
mov edx,_num |
else |
mov edx,8 |
end if |
call fdo_debug_outhex |
popad |
popf |
} |
;----------------------------------------------------------------------------- |
debug_func fdo_debug_outchar |
debug_beginf |
pushad |
mov cl,al |
mov ebx,1 |
mov eax,63 |
mcall |
popad |
ret |
debug_endf |
debug_func fdo_debug_outstr |
debug_beginf |
mov eax,63 |
mov ebx,1 |
.l1: dec esi |
js .l2 |
mov cl,[edx] |
or cl,cl |
jz .l2 |
mcall |
inc edx |
jmp .l1 |
.l2: ret |
debug_endf |
debug_func fdo_debug_outdec |
debug_beginf |
or cl,cl |
jz @f |
or eax,eax |
jns @f |
neg eax |
push eax |
mov al,'-' |
call fdo_debug_outchar |
pop eax |
@@: push 10 |
pop ecx |
push -'0' |
.l1: xor edx,edx |
div ecx |
push edx |
test eax,eax |
jnz .l1 |
.l2: pop eax |
add al,'0' |
jz .l3 |
call fdo_debug_outchar |
jmp .l2 |
.l3: ret |
debug_endf |
debug_func fdo_debug_outhex |
__fdo_hexdigits db '0123456789ABCDEF' |
debug_beginf |
mov cl,dl |
neg cl |
add cl,8 |
shl cl,2 |
rol eax,cl |
.l1: rol eax,4 |
push eax |
and eax,0x0000000F |
mov al,[__fdo_hexdigits+eax] |
call fdo_debug_outchar |
pop eax |
dec edx |
jnz .l1 |
ret |
debug_endf |
;----------------------------------------------------------------------------- |
macro DEBUGF _level,_format,[_arg] { |
common |
if __DEBUG__ = 1 & _level >= __DEBUG_LEVEL__ |
local ..f1,f2,a1,a2,c1,c2,c3,..lbl |
_debug_str_ equ __debug_str_ # a1 |
a1 = 0 |
c2 = 0 |
c3 = 0 |
f2 = 0 |
repeat ..lbl-..f1 |
virtual at 0 |
db _format,0,0 |
load c1 word from %-1 |
end virtual |
if c1 = '%s' |
virtual at 0 |
db _format,0,0 |
store word 0 at %-1 |
load c1 from f2-c2 |
end virtual |
if c1 <> 0 |
DEBUGS 0,_debug_str_+f2-c2 |
end if |
c2 = c2 + 1 |
f2 = %+1 |
DEBUGF_HELPER S,a1,0,_arg |
else if c1 = '%x' |
virtual at 0 |
db _format,0,0 |
store word 0 at %-1 |
load c1 from f2-c2 |
end virtual |
if c1 <> 0 |
DEBUGS 0,_debug_str_+f2-c2 |
end if |
c2 = c2 + 1 |
f2 = %+1 |
DEBUGF_HELPER H,a1,0,_arg |
else if c1 = '%d' | c1 = '%u' |
local c4 |
if c1 = '%d' |
c4 = 1 |
else |
c4 = 0 |
end if |
virtual at 0 |
db _format,0,0 |
store word 0 at %-1 |
load c1 from f2-c2 |
end virtual |
if c1 <> 0 |
DEBUGS 0,_debug_str_+f2-c2 |
end if |
c2 = c2 + 1 |
f2 = %+1 |
DEBUGF_HELPER D,a1,c4,_arg |
else if c1 = '\n' |
c3 = c3 + 1 |
end if |
end repeat |
virtual at 0 |
db _format,0,0 |
load c1 from f2-c2 |
end virtual |
if (c1<>0)&(f2<>..lbl-..f1-1) |
DEBUGS 0,_debug_str_+f2-c2 |
end if |
virtual at 0 |
..f1 db _format,0 |
..lbl: |
__debug_strings equ __debug_strings,_debug_str_,<_format>,..lbl-..f1-1-c2-c3 |
end virtual |
end if |
} |
macro __include_debug_strings dummy,[_id,_fmt,_len] { |
common |
local c1,a1,a2 |
forward |
if defined _len & ~_len eq |
_id: |
a1 = 0 |
a2 = 0 |
repeat _len |
virtual at 0 |
db _fmt,0,0 |
load c1 word from %+a2-1 |
end virtual |
if (c1='%s')|(c1='%x')|(c1='%d')|(c1='%u') |
db 0 |
a2 = a2 + 1 |
else if (c1='\n') |
dw $0A0D |
a1 = a1 + 1 |
a2 = a2 + 1 |
else |
db c1 and 0x0FF |
end if |
end repeat |
db 0 |
end if |
} |
macro DEBUGF_HELPER _letter,_num,_sign,[_arg] { |
common |
local num |
num = 0 |
forward |
if num = _num |
DEBUG#_letter _sign,_arg |
end if |
num = num+1 |
common |
_num = _num+1 |
} |
macro include_debug_strings { |
if __DEBUG__ = 1 |
match dbg_str,__debug_strings \{ |
__include_debug_strings dbg_str |
\} |
end if |
} |
/kernel/branches/net/applications/zeroconf/dhcp.inc |
---|
0,0 → 1,263 |
;Name Number Length Meaning |
dhcp_pad_option equ 0 ; 0 None |
dhcp_end_option equ 255 ; 0 None |
dhcp_subnet_mask equ 1 ; 4 Subnet Mask Value |
dhcp_time_offset equ 2 ; 4 Time Offset in Seconds from UTC |
dhcp_router equ 3 ; N×4 Router addresses |
dhcp_time_server equ 4 ; N×4 Timeserver addresses |
dhcp_name_server equ 5 ; N×4 IEN-116 Server addresses |
dhcp_domain_server equ 6 ; N×4 DNS Server addresses |
dhcp_log_server equ 7 ; N×4 Logging Server addresses |
dhcp_quotes_server equ 8 ; N×4 Quotes Server addresses |
dhcp_lpr_server equ 9 ; N×4 Printer Server addresses |
dhcp_impress_server equ 10 ; N×4 Impress Server addresses |
dhcp_rlp_server equ 11 ; N×4 N RLP Server addresses |
dhcp_hostname equ 12 ; N Hostname string |
dhcp_boot_file_size equ 13 ; 2 Size of boot file in 512-octet blocks |
dhcp_merit_dump_file equ 14 ; N Client to dump and name the file to dump it to |
dhcp_domain_name equ 15 ; N The DNS domain name of the client |
dhcp_swap_server equ 16 ; 4 Swap Server address |
dhcp_root_path equ 17 ; N Path name for root disk |
dhcp_extension_file equ 18 ; N Path name for more BOOTP info |
;IP Layer Parameters per Host |
dhcp_forward equ 19 ; 1 Enable/Disable IP Forwarding |
dhcp_srcrte equ 20 ; 1 Enable/Disable Non-Local Source Routing |
dhcp_policy equ 21 ; N×8 Non-Local Source Routing Policy Filters |
dhcp_mag_dg_assembly equ 22 ; 2 Max Datagram Reassembly Size |
dhcp_default_ip_tll equ 23 ; 1 Default IP Time to Live |
dhcp_mtu_timeout equ 24 ; 4 Path MTU Aging Timeout |
dhcp_mtu_plateau equ 25 ; N×2 Path MTU Plateau Table |
;IP Layer Parameters per Interface |
dhcp_mtu_interface equ 26 ; 2 Interface MTU Size |
dhcp_mtu_subnet equ 27 ; 1 All Subnets are Local |
dhcp_broadcast_address equ 28 ; 4 Broadcast Address |
dhcp_mask_discovery equ 29 ; 1 Perform Mask Discovery |
dhcp_mask_supplier equ 30 ; 1 Provide Mask to Others |
dhcp_router_discovery equ 31 ; 1 Perform Router Discovery |
dhcp_router_request equ 32 ; 4 Router Solicitation Address |
dhcp_static_route equ 33 ; N×8 Static Routing Table |
;Link Layer Parameters per Interface |
dhcp_trailers equ 34 ; 1 Trailer Encapsulation |
dhcp_arp_timeout equ 35 ; 4 ARP Cache Timeout |
dhcp_ethernet equ 36 ; 1 Ethernet Encapsulation |
;TCP Parameters |
dhcp_default_tcp_tll equ 37 ; 1 Default TCP Time to Live |
dhcp_keepalive_time equ 38 ; 4 TCP Keepalive Interval |
dhcp_keepalive_data equ 39 ; 1 TCP Keepalive Garbage |
;Application and Service Parameters |
dhcp_nis_domain equ 40 ; N NIS Domain Name |
dhcp_nis_servers equ 41 ; N×4 NIS Server Addresses |
dhcp_ntp_servers equ 42 ; N×4 NTP Server Addresses |
dhcp_vendor_specific equ 43 ; N Vendor Specific Information |
dhcp_netbios_name_srv equ 44 ; N×4 NETBIOS Name Servers |
dhcp_netbios_dist_srv equ 45 ; N×4 NETBIOS Datagram Distribution |
dhcp_netbios_node_type equ 46 ; 1 NETBIOS Node Type |
dhcp_netbios_scope equ 47 ; N NETBIOS Scope |
dhcp_x_window_font equ 48 ; N×4 X Window Font Server |
dhcp_x_window_manager equ 49 ; N×4 X Window Display Manager |
dhcp_nis_domain_name equ 64 ; N NIS+ v3 Client Domain Name |
dhcp_nis_server_addr equ 65 ; N×4 NIS+ v3 Server Addresses |
dhcp_home_agent_addrs equ 68 ; N×4 Mobile IP Home Agent Addresses |
dhcp_smtp_server equ 69 ; N×4 Simple Mail Server Addresses |
dhcp_pop3_server equ 70 ; N×4 Post Office Server Addresses |
dhcp_nntp_server equ 71 ; N×4 Network News Server Addresses |
dhcp_www_server equ 72 ; N×4 WWW Server Addresses |
dhcp_finger_server equ 73 ; N×4 Finger Server Addresses |
dhcp_irc_server equ 74 ; N×4 Chat Server Addresses |
dhcp_streettalk_server equ 75 ; N×4 StreetTalk Server Addresses |
dhcp_stda_server equ 76 ; N×4 ST Directory Assist. Addresses |
;DHCP Extensions |
dhcp_address_request equ 50 ; 4 Requested IP Address |
dhcp_address_time equ 51 ; 4 IP Address Lease Time |
dhcp_option_overload equ 52 ; 1 Overload "sname" or "file" |
dhcp_msg_type equ 53 ; 1 DHCP Message Type |
dhcp_dhcp_server_id equ 54 ; 4 DHCP Server Identification |
dhcp_parameter_list equ 55 ; N Parameter Request List |
dhcp_dhcp_message equ 56 ; N DHCP Error Message |
dhcp_dhcp_max_msg_size equ 57 ; 2 DHCP Maximum Message Size |
dhcp_renewal_time equ 58 ; 4 DHCP Renewal (T1) Time |
dhcp_rebinding_time equ 59 ; 4 DHCP Rebinding (T2) Time |
dhcp_class_id equ 60 ; N Vendor Class Identifier |
dhcp_client_id equ 61 ; N Client Identifier |
dhcp_server_name equ 66 ; N TFTP Server Name |
dhcp_bootfile_name equ 67 ; N Boot File Name |
;Newer extensions |
dhcp_netware_ip_domain equ 62 ; N Netware/IP Domain Name |
dhcp_netware_ip_option equ 63 ; N Netware/IP sub Options |
dhcp_user_class equ 77 ; N User Class Information |
dhcp_directory_agent equ 78 ; N directory agent information |
dhcp_service_scope equ 79 ; N service location agent scope |
dhcp_rapid_commit equ 80 ; 0 Rapid Commit |
dhcp_client_fqdn equ 81 ; N Fully Qualified Domain Name |
dhcp_relay_agent_info equ 82 ; N Relay Agent Information, RFC 3046 |
dhcp_isns equ 83 ; N Internet Storage Name Service |
; 84 REMOVED/Unassigned |
dhcp_nds_servers equ 85 ; N Novell Directory Services |
dhcp_nds_tree_name equ 86 ; N Novell Directory Services |
dhcp_nds_conext equ 87 ; N Novell Directory Services |
dhcp_bcmcs equ 88 ; Controller Domain Name list |
dhcp_bcmcs equ 89 ; Controller IPv4 address option |
dhcp_authentication equ 90 ; N Authentication |
; 91 REMOVED/Unassigned |
; 92 REMOVED/Unassigned |
dhcp_client_system equ 93 ; N Client System Architecture |
dhcp_client_ndi equ 94 ; N Client Network Device Interface |
dhcp_ldap equ 95 ; N Lightweight Directory Access Protocol |
; 96 REMOVED/Unassigned |
dhcp_uuid_guid equ 97 ; N UUID/GUID-based Client Identifier |
dchp_user_auth equ 98 ; N Open Group's User Authentication |
; 99 REMOVED/Unassigned |
; 100 REMOVED/Unassigned |
; 101 REMOVED/Unassigned |
; 102 REMOVED/Unassigned |
; 103 REMOVED/Unassigned |
; 104 REMOVED/Unassigned |
; 105 REMOVED/Unassigned |
; 106 REMOVED/Unassigned |
; 107 REMOVED/Unassigned |
; 108 REMOVED/Unassigned |
; 109 REMOVED/Unassigned |
; 110 REMOVED/Unassigned |
; 111 REMOVED/Unassigned |
dhcp_netinfo_address equ 112 ; N NetInfo Parent Server Address |
dhcp_netinfo_tag equ 113 ; N NetInfo Parent Server Tag |
dhcp_url equ 114 ; N URL |
; 115 REMOVED/Unassigned |
dhcp_auto_config equ 116 ; N DHCP Auto-Configuration |
dhcp_ns_search equ 117 ; N Name Service Search |
dhcp_subnet_selection equ 118 ; 4 Subnet Selection Option |
dhcp_domain_search equ 119 ; N DNS domain search list |
dhcp_sip_servers equ 120 ; N SIP Servers DHCP Option |
dhcp_cl_static_route equ 121 ; N Classless Static Route Option |
dhcp_ccc equ 122 ; N CableLabs Client Configuration |
dhcp_geoconf equ 123 ; 16 GeoConf Option |
dhcp_v_i_vendor_class equ 124 ; Vendor-Identifying Vendor Class |
dhcp_v_i_vendor_spec equ 125 ; Vendor-Identifying Vendor-Specific |
; 126 REMOVED/Unassigned |
; 127 REMOVED/Unassigned |
dhcp_pxe equ 128 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_etherboot_sign equ 128 ; Etherboot signature. 6 bytes: E4:45:74:68:00:00 |
dhcp_docsis equ 128 ; DOCSIS "full security" server IP address |
dhcp_tftp_server_ip equ 128 ; TFTP Server IP address (for IP Phone software load) |
dhcp_pxe equ 129 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_kernel_options equ 129 ; Kernel options. Variable length string |
dhcp_call_server_ip equ 129 ; Call Server IP address |
dhcp_pxe equ 130 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_ethernet_interface equ 130 ; Ethernet interface. Variable length string. |
dhcp_siscrimination equ 130 ; Discrimination string (to identify vendor) |
dhcp_pxe equ 131 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_remote_stat_server equ 131 ; Remote statistics server IP address |
dhcp_pxe equ 132 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_802.1p equ 132 ; 802.1P VLAN ID |
dhcp_pxe equ 133 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_802.1q equ 133 ; 802.1Q L2 Priority |
dhcp_pxe equ 134 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_diffserv equ 134 ; Diffserv Code Point |
dhcp_pxe equ 135 ; PXE - undefined (vendor specific) (Tentatively Assigned - 23 June 2005) |
dhcp_http_proxy_psa equ 135 ; HTTP Proxy for phone-specific applications |
; 136 REMOVED/Unassigned |
; 137 REMOVED/Unassigned |
; 138 REMOVED/Unassigned |
; 139 REMOVED/Unassigned |
; 140 REMOVED/Unassigned |
; 141 REMOVED/Unassigned |
; 142 REMOVED/Unassigned |
; 143 REMOVED/Unassigned |
; 144 REMOVED/Unassigned |
; 145 REMOVED/Unassigned |
; 146 REMOVED/Unassigned |
; 147 REMOVED/Unassigned |
; 148 REMOVED/Unassigned |
; 149 REMOVED/Unassigned |
dhcp_tftp_server_addr equ 150 ; TFTP server address (Tentatively Assigned - 23 June 2005) |
dhcp_etherboot equ 150 ; Etherboot |
dhcp_grub_conf_path equ 150 ; GRUB configuration path name |
; 151 REMOVED/Unassigned |
; 152 REMOVED/Unassigned |
; 153 REMOVED/Unassigned |
; 154 REMOVED/Unassigned |
; 155 REMOVED/Unassigned |
; 156 REMOVED/Unassigned |
; 157 REMOVED/Unassigned |
; 158 REMOVED/Unassigned |
; 159 REMOVED/Unassigned |
; 160 REMOVED/Unassigned |
; 161 REMOVED/Unassigned |
; 162 REMOVED/Unassigned |
; 163 REMOVED/Unassigned |
; 164 REMOVED/Unassigned |
; 165 REMOVED/Unassigned |
; 166 REMOVED/Unassigned |
; 167 REMOVED/Unassigned |
; 168 REMOVED/Unassigned |
; 169 REMOVED/Unassigned |
; 170 REMOVED/Unassigned |
; 171 REMOVED/Unassigned |
; 172 REMOVED/Unassigned |
; 173 REMOVED/Unassigned |
; 174 REMOVED/Unassigned |
dhcp_etherboot equ 175 ; Etherboot (Tentatively Assigned - 23 June 2005) |
dhcp_ip_telephone equ 176 ; IP Telephone (Tentatively Assigned - 23 June 2005) |
dhcp_etherboot equ 177 ; Etherboot (Tentatively Assigned - 23 June 2005) |
dhcp_packetcable equ 177 ; PacketCable and CableHome (replaced by 122) |
; 178 REMOVED/Unassigned |
; 179 REMOVED/Unassigned |
; 180 REMOVED/Unassigned |
; 181 REMOVED/Unassigned |
; 182 REMOVED/Unassigned |
; 183 REMOVED/Unassigned |
; 184 REMOVED/Unassigned |
; 185 REMOVED/Unassigned |
; 186 REMOVED/Unassigned |
; 187 REMOVED/Unassigned |
; 188 REMOVED/Unassigned |
; 189 REMOVED/Unassigned |
; 190 REMOVED/Unassigned |
; 191 REMOVED/Unassigned |
; 192 REMOVED/Unassigned |
; 193 REMOVED/Unassigned |
; 194 REMOVED/Unassigned |
; 195 REMOVED/Unassigned |
; 196 REMOVED/Unassigned |
; 197 REMOVED/Unassigned |
; 198 REMOVED/Unassigned |
; 199 REMOVED/Unassigned |
; 200 REMOVED/Unassigned |
; 201 REMOVED/Unassigned |
; 202 REMOVED/Unassigned |
; 203 REMOVED/Unassigned |
; 204 REMOVED/Unassigned |
; 205 REMOVED/Unassigned |
; 206 REMOVED/Unassigned |
; 207 REMOVED/Unassigned |
dhcp_pxelinux.magic equ 208 ; pxelinux.magic (string) = F1:00:74:7E (241.0.116.126) (Tentatively Assigned - 23 June 2005) |
dhcp_pxelinux.conffile equ 209 ; pxelinux.configfile (text) (Tentatively Assigned - 23 June 2005) |
dhcp_pxelinux.path equ 210 ; pxelinux.pathprefix (text) (Tentatively Assigned - 23 June 2005) |
dhcp_pxelinux.reboot equ 211 ; pxelinux.reboottime (unsigned integer 32 bits) (Tentatively Assigned - 23 June 2005) |
; 212 REMOVED/Unassigned |
; 213 REMOVED/Unassigned |
; 214 REMOVED/Unassigned |
; 215 REMOVED/Unassigned |
; 216 REMOVED/Unassigned |
; 217 REMOVED/Unassigned |
; 218 REMOVED/Unassigned |
; 219 REMOVED/Unassigned |
dhcp_subnet_aloc equ 220 ; Subnet Allocation Option (Tentatively Assigned - 23 June 2005) |
dhcp_virtual_subnet equ 221 ; Virtual Subnet Selection Option (Tentatively Assigned - 23 June 2005) |
; 222 REMOVED/Unassigned |
; 223 REMOVED/Unassigned |
/kernel/branches/net/applications/zeroconf/dll.inc |
---|
0,0 → 1,157 |
;----------------------------------------------------------------------------- |
proc mem.Alloc size ;///////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx |
mov eax,[size] |
lea ecx,[eax+4+4095] |
and ecx,not 4095 |
mcall 68,12 |
add ecx,-4 |
mov [eax],ecx |
add eax,4 |
pop ecx ebx |
ret |
endp |
;----------------------------------------------------------------------------- |
proc mem.ReAlloc mptr,size;/////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
push ebx ecx esi edi eax |
mov eax,[mptr] |
mov ebx,[size] |
or eax,eax |
jz @f |
lea ecx,[ebx+4+4095] |
and ecx,not 4095 |
add ecx,-4 |
cmp ecx,[eax-4] |
je .exit |
@@: mov eax,ebx |
call mem.Alloc |
xchg eax,[esp] |
or eax,eax |
jz .exit |
mov esi,eax |
xchg eax,[esp] |
mov edi,eax |
mov ecx,[esi-4] |
cmp ecx,[edi-4] |
jbe @f |
mov ecx,[edi-4] |
@@: add ecx,3 |
shr ecx,2 |
cld |
rep movsd |
xchg eax,[esp] |
call mem.Free |
.exit: |
pop eax edi esi ecx ebx |
ret |
endp |
;----------------------------------------------------------------------------- |
proc mem.Free mptr ;////////////////////////////////////////////////////////// |
;----------------------------------------------------------------------------- |
mov eax,[mptr] |
or eax,eax |
jz @f |
push ebx ecx |
lea ecx,[eax-4] |
mcall 68,13 |
pop ecx ebx |
@@: ret |
endp |
proc dll.Load, import_table:dword |
mov esi,[import_table] |
.next_lib: mov edx,[esi] |
or edx,edx |
jz .exit |
push esi |
mov esi,[esi+4] |
mov edi,s_libdir.fname |
@@: lodsb |
stosb |
or al,al |
jnz @b |
mcall 68,19,s_libdir |
or eax,eax |
jz .fail |
stdcall dll.Link,eax,edx |
stdcall dll.Init,[eax+4] |
pop esi |
add esi,8 |
jmp .next_lib |
.exit: xor eax,eax |
ret |
.fail: add esp,4 |
xor eax,eax |
inc eax |
ret |
endp |
proc dll.Link, exp:dword,imp:dword |
push eax |
mov esi,[imp] |
test esi,esi |
jz .done |
.next: lodsd |
test eax,eax |
jz .done |
stdcall dll.GetProcAddress,[exp],eax |
or eax,eax |
jz @f |
mov [esi-4],eax |
jmp .next |
@@: mov dword[esp],0 |
.done: pop eax |
ret |
endp |
proc dll.Init, dllentry:dword |
pushad |
mov eax,mem.Alloc |
mov ebx,mem.Free |
mov ecx,mem.ReAlloc |
mov edx,dll.Load |
stdcall [dllentry] |
popad |
ret |
endp |
proc dll.GetProcAddress, exp:dword,sz_name:dword |
mov edx,[exp] |
xor eax,eax |
.next: or edx,edx |
jz .end |
cmp dword[edx],0 |
jz .end |
stdcall strcmp,[edx],[sz_name] |
test eax,eax |
jz .ok |
add edx,8 |
jmp .next |
.ok: mov eax,[edx+4] |
.end: ret |
endp |
proc strcmp, str1:dword,str2:dword |
push esi edi |
mov esi,[str1] |
mov edi,[str2] |
xor eax,eax |
@@: lodsb |
scasb |
jne .fail |
or al,al |
jnz @b |
jmp .ok |
.fail: or eax,-1 |
.ok: pop edi esi |
ret |
endp |
s_libdir: |
db '/sys/lib/' |
.fname rb 32 |
/kernel/branches/net/applications/zeroconf/zeroconf.asm |
---|
0,0 → 1,613 |
; Zero-config |
; v 1.4 |
; |
; DHCP code is based on that by Mike Hibbet (DHCP client for menuetos) |
; |
; Written by HidnPlayr & Derpenguin |
use32 |
org 0x0 |
db 'MENUET01' ; 8 byte id |
dd 0x01 ; header version |
dd START ; start of code |
dd IM_END ; size of image |
dd I_END ; memory for app |
dd I_END ; esp |
dd 0x0 , path ; I_Param , I_Icon |
; CONFIGURATION |
TIMEOUT equ 60 ; in seconds |
BUFFER equ 1024 ; in bytes |
__DEBUG__ equ 1 ; enable/disable |
__DEBUG_LEVEL__ equ 1 ; 1 = all, 2 = errors |
; CONFIGURATION FOR LINK-LOCAL |
PROBE_WAIT equ 1 ; second (initial random delay) |
PROBE_MIN equ 1 ; second (minimum delay till repeated probe) |
PROBE_MAX equ 2 ; seconds (maximum delay till repeated probe) |
PROBE_NUM equ 3 ; (number of probe packets) |
ANNOUNCE_NUM equ 2 ; (number of announcement packets) |
ANNOUNCE_INTERVAL equ 2 ; seconds (time between announcement packets) |
ANNOUNCE_WAIT equ 2 ; seconds (delay before announcing) |
MAX_CONFLICTS equ 10 ; (max conflicts before rate limiting) |
RATE_LIMIT_INTERVAL equ 60 ; seconds (delay between successive attempts) |
DEFEND_INTERVAL equ 10 ; seconds (min. wait between defensive ARPs) |
AF_INET4 equ 1337 ;;;;; |
include '../../../proc32.inc' |
include '../../../macros.inc' |
include 'debug-fdo.inc' |
include 'dhcp.inc' |
include 'dll.inc' |
Ip2dword: |
push edx |
; This code validates if the query is an IP containing 4 numbers and 3 dots |
xor al, al ; make al (dot count) zero |
@@: |
cmp byte[edx],'0' ; check if this byte is a number, if not jump to no_IP |
jl no_IP ; |
cmp byte[edx],'9' ; |
jg no_IP ; |
inc edx ; the byte was a number, so lets check the next byte |
cmp byte[edx],0 ; is this byte zero? (have we reached end of query?) |
jz @f ; jump to next @@ then |
cmp byte[edx],':' |
jz @f |
cmp byte[edx],'.' ; is this byte a dot? |
jne @r ; if not, jump to previous @@ |
inc al ; the byte was a dot so increment al(dot count) |
inc edx ; next byte |
jmp @r ; lets check for numbers again (jump to previous @@) |
@@: ; we reach this when end of query reached |
cmp al,3 ; check if there where 3 dots |
jnz no_IP ; if not, jump to no_IP |
; The following code will convert this IP into a dword and output it in eax |
; If there is also a port number specified, this will be returned in ebx, otherwise ebx is -1 |
pop esi ; edx (query address) was pushed onto stack and is now popped in esi |
xor edx, edx ; result |
xor eax, eax ; current character |
xor ebx, ebx ; current byte |
.outer_loop: |
shl edx, 8 |
add edx, ebx |
xor ebx, ebx |
.inner_loop: |
lodsb |
test eax, eax |
jz .finish |
cmp al, '.' |
jz .outer_loop |
sub eax, '0' |
imul ebx, 10 |
add ebx, eax |
jmp .inner_loop |
.finish: |
shl edx, 8 |
add edx, ebx |
bswap edx ; we want little endian order |
ret |
no_IP: |
pop edx |
xor edx, edx |
ret |
START: ; start of execution |
mcall 40, 1 shl 7 ; network event |
; eth.set_network_drv 0x00000383 |
DEBUGF 1,"Zero-config service:\n" |
; eth.status eax ; Read the Stack status |
; test eax,eax ; if eax is zero, no driver was found |
; jnz @f |
; DEBUGF 1,"No Card found!\n" |
; jmp close |
; @@: |
; DEBUGF 1,"Detected card: %x\n",eax |
; @@: |
; eth.check_cable eax |
; test al,al |
; jnz @f |
; DEBUGF 1,"Cable disconnected!\n" |
; mcall 5, 500 ; loop until cable is connected (check every 5 sec) |
; jmp @r |
; @@: |
; eth.read_mac MAC |
mcall 73, 10 |
mov word[MAC], bx |
mov dword[MAC+2], eax |
DEBUGF 1,"MAC: %x-%x-%x-%x-%x-%x\n",[MAC]:2,[MAC+1]:2,[MAC+2]:2,[MAC+3]:2,[MAC+4]:2,[MAC+5]:2 |
cld |
mov edi, path ; Calculate the length of zero-terminated string |
xor al , al |
mov ecx, 1024 |
repnz scas byte[es:edi] |
dec edi |
mov esi, filename |
movsd |
movsb |
DEBUGF 1,"path to ini: %s\n", path |
mcall 68,11 |
stdcall dll.Load,@IMPORT |
or eax,eax |
jnz skip_ini |
invoke ini.get_str, path, str_ipconfig, str_type, inibuf, 16, 0 |
mov eax,dword[inibuf] |
cmp eax,'stat' |
jne skip_ini |
invoke ini.get_str, path, str_ipconfig, str_ip, inibuf, 16, 0 |
mov edx, inibuf |
call Ip2dword |
mcall 73, 3, edx |
invoke ini.get_str, path, str_ipconfig, str_gateway, inibuf, 16, 0 |
mov edx, inibuf |
call Ip2dword |
mcall 73, 9, edx |
invoke ini.get_str, path, str_ipconfig, str_dns, inibuf, 16, 0 |
mov edx, inibuf |
call Ip2dword |
mcall 73, 7, edx |
invoke ini.get_str, path, str_ipconfig, str_subnet, inibuf, 16, 0 |
mov edx, inibuf |
call Ip2dword |
mcall 73, 5, edx |
mcall -1 |
skip_ini: |
DEBUGF 1,"Skip ini\n" |
mcall 74, 0, AF_INET4, 1, 0 ; open socket (parameters: domain, type, protocol) |
cmp eax, -1 |
je error |
mov [socketNum], eax |
DEBUGF 1,"socket %x opened\n", eax |
mcall 74, 2, [socketNum], sockaddr1, 18 ; bind socket to local port 68 |
cmp eax, -1 |
je error |
DEBUGF 1,"Socket Bound to local port 68\n" |
mcall 74, 4, [socketNum], sockaddr2, 18 ; connect to 255.255.255.255 on port 67 |
cmp eax, -1 |
je error |
DEBUGF 1,"Connected to 255.255.255.255 on port 67\n" |
mov byte [dhcpMsgType], 0x01 ; DHCP discover |
mov dword [dhcpLease], esi ; esi is still -1 (-1 = forever) |
mcall 26, 9 |
imul eax,100 |
mov [currTime],eax |
buildRequest: ; Creates a DHCP request packet. |
DEBUGF 1,"Building request\n" |
stdcall mem.Alloc, BUFFER |
mov [dhcpMsg], eax |
test eax,eax |
jz apipa |
mov edi, eax |
mov ecx,BUFFER |
xor eax,eax |
cld |
rep stosb |
mov edx,[dhcpMsg] |
mov [edx], byte 0x01 ; Boot request |
mov [edx+1], byte 0x01 ; Ethernet |
mov [edx+2], byte 0x06 ; Ethernet h/w len |
mov [edx+4], dword 0x11223344 ; xid |
mov eax,[currTime] |
mov [edx+8], eax ; secs, our uptime |
mov [edx+10], byte 0x80 ; broadcast flag set |
mov eax, dword [MAC] ; first 4 bytes of MAC |
mov [edx+28],dword eax |
mov ax, word [MAC+4] ; last 2 bytes of MAC |
mov [edx+32],word ax |
mov [edx+236], dword 0x63538263 ; magic number |
mov [edx+240], word 0x0135 ; option DHCP msg type |
mov al, [dhcpMsgType] |
mov [edx+240+2], al |
mov [edx+240+3], word 0x0433 ; option Lease time = infinity |
mov eax, [dhcpLease] |
mov [edx+240+5], eax |
mov [edx+240+9], word 0x0432 ; option requested IP address |
mov eax, [dhcpClientIP] |
mov [edx+240+11], eax |
mov [edx+240+15], word 0x0437 ; option request list |
mov [edx+240+17], dword 0x0f060301 |
cmp [dhcpMsgType], byte 0x01 ; Check which msg we are sending |
jne request_options |
mov [edx+240+21], byte 0xff ; "Discover" options |
mov [dhcpMsgLen], dword 262 ; end of options marker |
jmp send_request |
request_options: |
mov [edx+240+21], word 0x0436 ; server IP |
mov eax, [dhcpServerIP] |
mov [edx+240+23], eax |
mov [edx+240+27], byte 0xff ; end of options marker |
mov [dhcpMsgLen], dword 268 |
send_request: |
mcall 74, 6, [socketNum], [dhcpMsg], [dhcpMsgLen] ; write to socket ( send broadcast request ) |
mov eax, [dhcpMsg] ; Setup the DHCP buffer to receive response |
mov [dhcpMsgLen], eax ; Used as a pointer to the data |
mcall 23, TIMEOUT*10 ; wait for data |
read_data: ; we have data - this will be the response |
mcall 74, 7, [socketNum], [dhcpMsg], BUFFER ; read data from socket |
DEBUGF 1,"%u bytes received\n", eax |
push eax |
mcall 74, 10, [socketNum] ; close the socket |
pop eax |
cmp eax, -1 |
je error |
mov [dhcpMsgLen], eax |
; depending on which msg we sent, handle the response |
; accordingly. |
; If the response is to a dhcp discover, then: |
; 1) If response is DHCP OFFER then |
; 1.1) record server IP, lease time & IP address. |
; 1.2) send a request packet |
; If the response is to a dhcp request, then: |
; 1) If the response is DHCP ACK then |
; 1.1) extract the DNS & subnet fields. Set them in the stack |
cmp [dhcpMsgType], byte 0x01 ; did we send a discover? |
je discover |
cmp [dhcpMsgType], byte 0x03 ; did we send a request? |
je request |
jmp close ; really unknown, what we did |
discover: |
call parseResponse |
cmp [dhcpMsgType], byte 0x02 ; Was the response an offer? |
jne apipa ; NO - so we do zeroconf |
mov [dhcpMsgType], byte 0x03 ; DHCP request |
jmp buildRequest |
request: |
call parseResponse |
cmp [dhcpMsgType], byte 0x05 ; Was the response an ACK? It should be |
jne apipa ; NO - so we do zeroconf |
jmp close |
;*************************************************************************** |
; Function |
; parseResponse |
; |
; Description |
; extracts the fields ( client IP address and options ) from |
; a DHCP response |
; The values go into |
; dhcpMsgType,dhcpLease,dhcpClientIP,dhcpServerIP, |
; dhcpDNSIP, dhcpSubnet |
; The message is stored in dhcpMsg |
; |
;*************************************************************************** |
parseResponse: |
DEBUGF 1,"Data received, parsing response\n" |
mov edx, [dhcpMsg] |
pusha |
mcall 73, 3, [edx+16] |
mov eax,[edx] |
mov [dhcpClientIP],eax |
DEBUGF 1,"Client: %u.%u.%u.%u\n",[edx+16]:1,[edx+17]:1,[edx+18]:1,[edx+19]:1 |
popa |
add edx, 240 ; Point to first option |
xor ecx, ecx |
next_option: |
add edx, ecx |
pr001: |
mov al, [edx] |
cmp al, 0xff ; End of options? |
je pr_exit |
cmp al, dhcp_msg_type ; Msg type is a single byte option |
jne @f |
mov al, [edx+2] |
mov [dhcpMsgType], al |
add edx, 3 |
jmp pr001 ; Get next option |
@@: |
inc edx |
movzx ecx, byte [edx] |
inc edx ; point to data |
cmp al, dhcp_dhcp_server_id ; server ip |
jne @f |
mov eax, [edx] |
mov [dhcpServerIP], eax |
DEBUGF 1,"Server: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1 |
jmp next_option |
@@: |
cmp al, dhcp_address_time |
jne @f |
pusha |
mov eax,[edx] |
bswap eax |
mov [dhcpLease],eax |
DEBUGF 1,"lease: %d\n",eax |
popa |
jmp next_option |
@@: |
cmp al, dhcp_subnet_mask |
jne @f |
pusha |
mcall 73, 5, [edx] |
DEBUGF 1,"Subnet: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1 |
popa |
jmp next_option |
@@: |
cmp al, dhcp_router |
jne @f |
pusha |
mcall 73, 9, [edx] |
DEBUGF 1,"Gateway: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1 |
popa |
jmp next_option |
@@: |
cmp al, dhcp_domain_server |
jne next_option |
pusha |
mcall 73, 7, [edx] |
DEBUGF 1,"DNS: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1 |
popa |
jmp next_option |
pr_exit: |
; DEBUGF 1,"Sending ARP announce\n" |
; eth.ARP_ANNOUNCE [dhcpClientIP] ; send an ARP announce packet |
jmp close |
apipa: |
stdcall mem.Free, [dhcpMsg] |
link_local: |
call random |
mov ecx,0xfea9 ; IP 169.254.0.0 link local net, see RFC3927 |
mov cx,ax |
mcall 73, 3, ecx ; mask is 255.255.0.0 |
DEBUGF 1,"Link Local IP assinged: 169.254.%u.%u\n",[generator+2]:1,[generator+3]:1 |
mcall 73, 5, 0xffff |
mcall 73, 9, 0x0 |
mcall 73, 7, 0x0 |
mcall 5, PROBE_WAIT*100 |
xor esi,esi |
probe_loop: |
call random ; create a pseudo random number in eax (seeded by MAC) |
cmp al,PROBE_MIN*100 ; check if al is bigger then PROBE_MIN |
jge @f ; all ok |
add al,(PROBE_MAX-PROBE_MIN)*100 ; al is too small |
@@: |
cmp al,PROBE_MAX*100 |
jle @f |
sub al,(PROBE_MAX-PROBE_MIN)*100 |
@@: |
movzx ebx,al |
DEBUGF 1,"Waiting %u0ms\n",ebx |
mcall 5 |
DEBUGF 1,"Sending Probe\n" |
; eth.ARP_PROBE MAC |
inc esi |
cmp esi,PROBE_NUM |
jl probe_loop |
; now we wait further ANNOUNCE_WAIT seconds and send ANNOUNCE_NUM ARP announces. If any other host has assingned |
; IP within this time, we should create another adress, that have to be done later |
DEBUGF 1,"Waiting %us\n",ANNOUNCE_WAIT |
mcall 5, ANNOUNCE_WAIT*100 |
xor esi,esi |
announce_loop: |
DEBUGF 1,"Sending Announce\n" |
; eth.ARP_ANNOUNCE MAC |
inc esi |
cmp esi,ANNOUNCE_NUM |
je @f |
DEBUGF 1,"Waiting %us\n",ANNOUNCE_INTERVAL |
mcall 5, ANNOUNCE_INTERVAL*100 |
jmp announce_loop |
@@: |
; we should, instead of closing, detect ARP conflicts and detect if cable keeps connected ;) |
error: |
close: |
mcall -1 |
random: ; Pseudo random actually |
mov eax,[generator] |
add eax,-43ab45b5h |
ror eax,1 |
bswap eax |
xor eax,dword[MAC] |
ror eax,1 |
xor eax,dword[MAC+2] |
mov [generator],eax |
ret |
; DATA AREA |
align 16 |
@IMPORT: |
library \ |
libini,'libini.obj' |
import libini, \ |
ini.get_str,'ini.get_str' |
include_debug_strings |
filename db '.ini',0 |
str_ip db 'ip',0 |
str_subnet db 'subnet',0 |
str_gateway db 'gateway',0 |
str_dns db 'dns',0 |
str_ipconfig db 'ipconfig',0 |
str_type db 'type',0 |
sockaddr1: |
dw AF_INET4 |
dw 68 ; local port |
dd 0 ; local IP |
rb 10 |
sockaddr2: |
dw AF_INET4 |
dw 67 ; destination port |
dd -1 ; destination IP |
rb 10 |
IM_END: |
inibuf rb 16 |
dhcpClientIP dd ? |
dhcpMsgType db ? |
dhcpLease dd ? |
dhcpServerIP dd ? |
dhcpMsgLen dd ? |
socketNum dd ? |
MAC dp ? |
currTime dd ? |
renewTime dd ? |
generator dd ? |
dhcpMsg dd ? |
I_END_2: |
path rb 1024+5 |
I_END: |
/kernel/branches/net/applications/zeroconf/zeroconf.ini |
---|
0,0 → 1,9 |
[ipconfig] |
; type should be static or zeroconf |
; zeroconf means the service first tries to contact a DHCP server |
; If dhcp is not available, it switches to link-local |
type = zeroconf |
ip = 192.168.1.150 |
gateway = 192.168.1.1 |
dns = 192.168.1.1 |
subnet = 255.255.255.0 |