Интегрированные сети ISDN


Структура переменных rd_stat - часть 6


/p>


SETDRV:

MOV AH, 35H

 

 

INT 21H

 

 

MOV _PARAM.HANDLER.OFFS,BX

; Определяем адрес драйвера

 

MOV _PARAM.HANDLER.SEGM, ES

 


 

PUSH DS

 

 

POP ES

 

 

MOV CX, EADDR_LEN

 

 

MOV SI, OFFSET ETHER_ADDR

 

 

MOV DI, OFFSET ETHER_BDCST

 

 

REPE CMPSB

 

 

JE GET_MODE

; Адрес не определен


 

MOV AH, 25

; Записываем ethernet-адрес

 

MOV DI, offset ETHER_ADDR

 

 

MOV CX, EADDR_LEN

 

 

call int_pkt

 

 

MOV _PARAM.ER_CODE, DX

; Устанавливаем код ошибки

 

JMP OKAY

 

GET_MODE:

 

MOV SAFE, DS

; Спасаем DS

 

PUSH DS

 

 

MOV AH, 2

; Открываем доступ пакетам

 

MOV AL, 1

; Класс интерфейса

 

MOV BX, -1

; Тип интерфейса

 

MOV DL, 0

; Номер интерфейса

 

MOV CX, 2

; Используем длину type = 2

 

MOV SI, OFFSET BOGUS_TYPE

 

 

PUSH CS

; ES:DI -> Receiver.

 

POP ES

 

 

MOV DI, OFFSET RECEIVER

 

 

call INT_PKT

 

 

JNC $_$

 

 

MOV _PARAM.ER_CODE, DX

; Устанавливаем код ошибки

$_$:

MOV _PARAM.HANDLES, AX

; Записываем указатель-Handle


 

MOV AH, 6

; Определяем ethernet-адрес интерфейса

 

PUSH DS

 

 

POP ES

 

 

MOV DI, offset _PARAM.ETHER_ADR

 

 

MOV CX, EADDR_LEN

 

 

MOV BX, _PARAM.HANDLES

 

 

call int_pkt

 

 

JNC NOBAD

 

 

MOV _PARAM.ER_CODE, 273

; Ошибка при определении Ethernet-адреса

 

POP DS

 

 

JMP OKAY

 

NOBAD:

 

MOV AX, 1FFH

; Запрашиваем информацию о драйвере

 

MOV BX, _PARAM.HANDLES

; Устанавливаем указатель

 

call INT_PKT

 

 

JNC N_BAD

 

 

MOV _PARAM.ER_CODE, 272

; Ошибка при получении информации о драйвере

 

POP DS

 

 

JMP OKAY

 

<


Начало  Назад  Вперед



Книжный магазин