Первая программа с названием TESTHMA (листинг 11.1) демонстрирует проверку подключения драйвера и использование его основных функций.
Листинг 11.1. Файл testhma\testhma.asm
; =====================================================
; Вызов основных функций API драйвера HIMEM.SYS
;
; (C) A. Frolov, 1997
;
; E-mail: frolov@glas.apc.org
; WWW: http://www.glasnet.ru/~frolov
; or
; http://www.dials.ccas.ru/frolov
; =====================================================
@@out_ch MACRO c1,c2,c3,c4,c5,c6,c7,c8,c9,c10
mov ah,02h
IRP chr,<c1,c2,c3,c4,c5,c6,c7,c8,c9,c10>
IFB <chr>
EXITM
ENDIF
mov dl,chr
int 21h
ENDM
ENDM
@@out_str MACRO
mov ah,9
int 21h
ENDM
BEEP MACRO
mov bx,0
mov ax, 0E07h
int 10h
ENDM
.model small
.STACK 100h
.DATA
msg DB 13,10,"HIMEM.SYS API Demo", 13, 10
DB "(C) Frolov A., 1997",13,10,13,10
DB "$"
noHMM DB 13,10
DB "HIMEM.SYS not installed",13,10,"$"
yesHMM DB 13,10,"HIMEM.SYS istalled, ", "$"
ver1 DB "version: ", "$"
ver2 DB ", modification: ", "$"
errmsg DB 13,10,"Error code ", "$"
okmsg DB 13,10,"Success!", "$"
hmareq DB 13,10,"Request HMA", "$"
hmarel DB 13,10,"Release HMA", "$"
enA20 DB 13,10,"Open A20", "$"
dsA20 DB 13,10,"Close A20", "$"
loc_enA20 DB 13,10,"Local open A20","$"
loc_dsA20 DB 13,10,"Local close A20", "$"
check_A20 DB 13,10,"Check A20", "$"
free_ext_mem DB 13,10,"Extended memory, Kbyte: ", "$"
max_ext_block DB 13,10,"Max free Extended memory block, Kbyte: ", "$"