Аппаратное обеспечение персонального компьютера


           

Функция для вывода сообщения об


  (char far*)move_d.SourceOffset = (char far*)testmsg;

  move_d.DestHandle = (short)handle;

  move_d.DestOffset = 0L;

  rc = XMM_MoveExtended(&move_d);

  if(rc < 0)

    error("Copy in EMB error",rc);

  move_d.Length = strlen(testmsg) + 1;

  move_d.DestHandle = 0;

  (char far*)move_d.DestOffset = (char far*)buf;

  move_d.SourceHandle = (short)handle;

  move_d.SourceOffset = 0L;

  rc = XMM_MoveExtended(&move_d);

  if(rc < 0)

    error("Copy from EMB error",rc);

  // Выводим сообщение для проверки

  printf("\n%s",buf);

  // Освобождаем блок EMB

  rc = XMM_FreeExtended((unsigned)handle);

  if(rc)

    error("Free XMB error",rc);

  return 0;

}

// Функция для вывода сообщения об ошибке

// и кода ошибки

void error(char *msg, long rc)

{

  rc = (unsigned char)(rc >> 24) ;

    printf("\n%s, error: %02.2X\n",

      msg, (unsigned char)rc);

  exit(-1);

}

Листинг 11.3. Файл callhma\hma.asm

; =====================================================

; Это интерфейсный модуль для вызова функций

; XMS из Си. Текст программы рассчитан на

; модель памяти Small

;

; (C) A. Frolov, 1997

;

; E-mail: frolov@glas.apc.org

; WWW:    http://www.glasnet.ru/~frolov

;            or

;         http://www.dials.ccas.ru/frolov

; =====================================================

  .model small

  .DATA

; В этом месте будет храниться адрес

; управляющей функции XMM

XMM_Control  dd   ?

          .CODE

; Макроопределения для выполнения соглашения об

; использовании регистров в процедурах Си

c_begin macro

  push bp

  mov  bp,sp

  push si

  push di

  endm

c_end   macro

  pop  di

  pop  si

  mov  sp,bp

  pop  bp

  ret

  endm

; Все процедуры должны быть public

  public _XMM_Installed

  public _XMM_Version

  public _XMM_RequestHMA

  public _XMM_ReleaseHMA


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий