RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : OS/2 Driver


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Igor V. Vashkevich
To : All
Subj : OS/2 Driver


Hi, All!
Помогите стартовать в написании драйвера!
Проблема заключается в следующем:
-дано - EISA плата с окном памяти по адресу 0xD700:0000 размером 0х80С байт

-написано в секции инициализации:
#define StartAddr 0xD7000000
CHAR InitMessage3[] = "Dual-port Functionality Test begin... 0x00 filling...rn";
CHAR InitMessage4[] = "Done. 0xFF filling...rn";
CHAR InitMessage5[] = "Done. Test is OK.rn";
CHAR InitError1[] = "Unable to allocate GDT selectornr";
CHAR InitError2[] = "Phys to GDT selector failed.nr";
CHAR InitError3[] = "Phys to Virt failed.nr";
/**********************************
* end of deletable data segment *
**********************************/

static SEL Sel = 0; static char *Port;

Port = (char *)StartAddr;

if (DevHelp_AllocGDTSelector((PSEL)&Sel, 1)) {
DosPutMessage(1,strlen(InitError1),InitError1);
return STDON;
}

if (DevHelp_PhysToGDTSelector((ULONG)StartAddr, 0x080C, Sel)) {
DosPutMessage(1,strlen(InitError2),InitError2);
return STDON;
}
Port = MAKEP(Sel, 0);
DosPutMessage(1,strlen(InitMessage3),InitMessage3);
*Port = 0; --- Вот тут-то все и трапается!

Подскажите верный путь!

PS: этот код является плагиатом - источники -
/**************************************************************************
*
* SOURCE FILE NAME = SCSIINIT.C
*
* DESCRIPTIVE NAME = IBM2SCSI.ADD - Adapter Driver for IBM SCSI adapters.
* Initialization routines.


и пример драйвера из WarpStock 2000

Mon 03 Dec 2001 18:39 Mozilla/4.75 [en] (WinNT; U)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.