22,8 → 22,6 |
type_ethernet equ 1 |
|
include '../macros.inc' |
include 'proc32.inc' |
include 'struct.inc' |
|
START: |
; first, check boot parameters |
33,8 → 31,7 |
|
mcall 40, 0 |
|
|
push .launch_zeroconf_exit |
push .exit |
cmp byte[param], 'A' ; A for All |
je Get_PCI_Info |
|
43,14 → 40,14 |
|
ret |
|
.launch_zeroconf_exit: |
mcall 70, zeroconf |
.exit: |
mcall -1 |
|
.noparams: |
call draw_window |
|
still: mcall 10 ; wait here for event |
still: |
mcall 10 ; wait here for event |
dec eax ; redraw request ? |
jz red |
dec eax ; key in buffer ? |
185,8 → 182,6 |
mcall , 33 shl 16 + 62, , btn_reset |
mcall , 36 shl 16 + 82, , btn_stop |
|
; mcall , 140 shl 16 + 62, 1 shl 31 + 0x00000000 , devicename |
|
jmp .done |
|
.nonefound: |
249,19 → 244,33 |
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 |
; cmp byte [PCI_Class], 0 ; device from before class codes |
; je @f |
|
cmp byte [PCI_Class], 2 ; network controller |
jne nextDev |
; @@: |
|
cmp byte[param], 0 |
jne load_and_start |
|
mov cl, 0x0e |
mcall 62 |
|
push eax |
call Print_New_Device ; print device info to screen |
pop eax |
test al, al |
js nextDev |
|
test byte [V_Dev], 7 |
jnz nextDev |
|
or byte [V_Dev], 7 |
|
nextDev: |
add byte [V_Dev], 8 ; lower 3 bits are the function number |
inc [V_Dev] ; lower 3 bits are the function number |
|
jnz Start_Enum ; jump until we reach zero |
mov byte [V_Dev], 0 ; reset device number |
491,24 → 500,12 |
lbl_none db 'none',0 |
load_error db 'Could not load driver!',0 |
|
devicename db 'test' |
rb 64 |
db 0 |
|
hardwareinfo: |
.type db 1 ; pci |
.pci_bus db ? |
.pci_dev db ? |
|
zeroconf: |
dd 7 ; launch app |
dd 0 ; no flags |
dd 0 ; no parameters |
dd 0 ; reserved |
dd 0 ; reserved |
db "/sys/network/zeroconf", 0 |
|
|
IM_END: |
|
;------------------------------------------------------------------ |