1,9 → 1,47 |
include '../macros.inc' |
MEOS_APP_START |
; |
; Netcfg v1.02 |
; |
; Application to load network drivers in KolibriOS |
; |
; By hidnplayr |
; |
|
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+0x100) ; memory for app |
dd (I_END+0x100) ; esp |
dd param, 0x0 ; I_Param , I_Icon |
|
type_ethernet equ 1 |
|
CODE |
include '../macros.inc' |
include 'proc32.inc' |
include 'struct.inc' |
|
START: |
; first, check boot parameters |
|
cmp byte[param], 0 |
je .noparams |
|
mcall 40, 0 |
|
|
push exit |
cmp byte[param], 'A' ; A for All |
je Get_PCI_Info |
|
cmp byte[param], 'F' ; F for First |
je Get_PCI_Info |
|
ret |
|
.noparams: |
call draw_window |
|
still: mcall 10 ; wait here for event |
36,7 → 74,7 |
|
cmp ah, 1 ; button id = 1 ? |
jne @f |
mcall -1 ; close this program |
exit: mcall -1 ; close this program |
@@: |
cmp eax,0x0000ff00 |
jg load_drv |
150,6 → 188,9 |
ret |
|
|
|
|
|
;------------------------------------------------------------------ |
;* Gets the PCI Version and Last Bus |
Get_PCI_Info: |
206,7 → 247,11 |
cmp byte [PCI_Class],2 |
jne nextDev |
|
cmp byte[param], 0 |
jne load_and_start |
|
call Print_New_Device ; print device info to screen |
|
nextDev: |
add byte [V_Dev], 8 ; lower 3 bits are the function number |
|
218,6 → 263,40 |
jbe Start_Enum ; if not jump to keep searching |
ret |
|
|
|
load_and_start: |
|
call get_drv_ptr |
cmp eax, lbl_none |
je .next |
|
mov ecx, eax |
mcall 68, 16 |
test eax, eax |
jz .next |
mov [IOCTL.handle], eax |
|
mov al, [V_Dev] |
mov [hardwareinfo.pci_dev], al |
mov al, [V_Bus] |
mov [hardwareinfo.pci_bus], al |
|
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 |
|
.next: |
cmp byte[param], 'A' |
je nextDev |
jmp exit |
|
|
|
;------------------------------------------------------------------ |
;* Print device info to screen |
Print_New_Device: |
380,8 → 459,12 |
|
include 'vendors.inc' |
include 'drivers.inc' |
|
|
;------------------------------------------------------------------ |
; DATA AREA |
|
|
DATA |
|
|
393,16 → 476,11 |
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 device',0 |
btn_reset db 'Reset device',0 |
btn_stop db 'Stop device',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 |
load_error db 'Could not load driver!',0 |
|
devicename db 'test' |
409,7 → 487,18 |
rb 64 |
db 0 |
|
hardwareinfo: |
.type db 1 ; pci |
.pci_bus db ? |
.pci_dev db ? |
|
|
IM_END: |
|
;------------------------------------------------------------------ |
; UNINITIALIZED DATA AREA |
|
|
IOCTL: |
.handle dd ? |
.io_code dd ? |
421,16 → 510,7 |
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 ? |
450,5 → 530,7 |
|
Proc_Info process_information |
|
param rb 1024 |
|
MEOS_APP_END |
|
I_END: |