Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Листинг 5.1. Файл vxdsrv\vxdsrv.asm


; --------------------------------------------------- ; Виртуальный драйвер VXDSRV ; Version 1.1 ; --------------------------------------------------- ; Copyright (C) Александр Фролов 1995 ; --------------------------------------------------- ; Работает совместно с приложением dos2win.exe ; и DLL-библиотекой d2w.dll ; ; Позволяет запускать приложения Windows из виртуальной ; машины MS-DOS, из командной строки Norton Commander или ; аналогичной оболочки, работающей на виртуальной ; машине MS-DOS ; ; Выполняет перехват функции 4B00h прерывания int 21h ; и сохраняет полученные этой функцией командную строку ; и строку параметров, а также определенные отдельно ; текущий диск и текущий каталог в области памяти, ; зарезервированной DLL-библиотекой d2w.dll. ; Затем драйвер вызывает функцию, определенную ; в этой библиотеке и посылающую сообщение приложению ; dos2win.exe. Приняв сообщение, приложение dos2win.exe ; запускает программу, пользуясь данными, полученными ; от виртуального драйвера ; ---------------------------------------------------

.386p include vmm.inc

; Идентификатор драйвера VXDSRV. VXDSRV_Id equ 8000h

HiVers equ 1 ; верхний номер версии драйвера LoVers equ 1 ; нижний номер версии драйвера Vers equ ((HiVers shl 8) or LoVers) CFlag equ 1

; =================================================== ; Заголовок виртуального драйвера ; =================================================== Declare_Virtual_Device VXDSRV, HiVers, LoVers, \ VXDSRV_Control, VXDSRV_Id, Undefined_Init_Order, \ VXDSRV_V86API_Handler, VXDSRV_PMAPI_Handler,

; =================================================== ; Инициализация в реальном режиме ; =================================================== VXD_REAL_INIT_SEG

RealInit proc near

; Вывод "рекламной" текстовой строки mov ah, 9 mov dx, offset VxD_Hello int 21h

; Признак успешной инициализации mov ax, Device_Load_Ok

; Страницы физической памяти не резервируются xor bx, bx

; Данные для каждого экземпляра виртуальной машины ; не резервируются xor si, si




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



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