38K
06 сентября 2008 года
svalvz
7 / / 20.08.2008
Обращение к функциям диспетчера XMS памяти производится посредством загрузки параметров в регистры процессора и far call на адрес процедуры диспетчера. Это легко сделать на ассемблере но нереально на ЯВУ типа QBASIC. Прошу не смеяться, но дело серьёзное. Прошу помочь написать процедуру на ассемблере для осуществления запросов к диспетчеру памяти XMS из QBASIC посредством вызовов CALL ABSOLUTE. Диспетчеру HIMEM.SYS передаются параметры в регистрах AX, BX, DX, ES, так что мне надо чтобы было примерно так:
Код:
DIM XMSArguments(1 TO 4) AS INTEGER
XMSArguments(1)=...
...
DEF SEG=VARSEG(XMSCallCode(0))
CALL ABSOLUTE(VARPTR(XMSCallCode(0)),XMSArguments(),XMSDispatcherSegment,XMSDispatcherOffset)
DEF SEG
Мои попытки наассемблерить такой код завершились провалом. Пожалуйста помогите!