nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 Apr 2024 21:45



Reply to topic  [ 4 posts ] 
Описалово 46h, 47h досовых функций (DSS v1.60 R) 
Author Message
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Если у кого нет, держите описалово 46h,47h досовых функций,
появившихся в Estex версии 1.60.


46h (70) ENVIRON (Системное окружение)

входные значения:

C - 46h
B - номер подфункции:
B = 0, получение системного окружения
HL - буфер
B = 1, получить переменную окружения
HL - имя переменной
DE - буфер для значения переменной
B = 2, установить/удалить переменную окружения
HL - имя переменной и значение, разделенные
символом "=", (ПЕРЕМЕННАЯ=ЗАЧЕНИЕ)

выходные значения:

A - состояние, если CF=0
DE - указывает на конец буфера
A = 0 - переменная обнаружена
A = 0FFh - переменная не обнаружена
A - код ошибки, если CF=1



47h (71) APPINFO (Получение информации приложения)

входные значения:

C - 47h
HL - буфер данных
B - номер подфункции:
B = 0 - получение параметров командной строки
B = 1 - получение полного пути к каталогу программы
B = 2 - получение полного пути и имени файла программы

_________________
Vasil Ivanov
vasil-i@yandex.ru


13 Apr 2004 14:02
Profile
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Post 
Quote:
Если у кого нет, держите описалово 46h,47h досовых функций,
появившихся в Estex версии 1.60.


Спасибо! :D


13 Apr 2004 22:15
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
Mac Buster wrote:
Спасибо! :D


На здоровье ;). Но в брошенном описании 46h функции есть неточность.
Ниже идет поправленное описание.

46h (70) ENVIRON (Системное окружение)

входные значения:

C - 46h
B - номер подфункции:
B = 0, получение системного окружения
HL - буфер
B = 1, получить переменную окружения
HL - имя переменной
DE - буфер для значения переменной
B = 2, установить/удалить переменную окружения
HL - имя переменной и значение, разделенные символом "="
т.е. ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ
В конце строки должен стоять нуль.

выходные значения:

A - состояние, если CF=0
DE - указывает на конец буфера (только для B=1)
A = 0FFh - переменная обнаружена
A = 0 - переменная не обнаружена
A - код ошибки, если CF=1

Текстовые строки имен переменных должны оканчиваться на нуль.

Формат буферов.

Подфункция "B=0".
Строка каждой переменной окружения заканчивается на нуль. В конце буфера
дополнительно стоит нуль, показывающий, что дальше переменных нет.
Пример (в асмовом варианте):

buffer: db "PATH=c:\fn;c:\zx",0
db "LASTDRV=G",0
db 0

Подфункция "B=1".
Если переменная не найдена (A=0), буфер содержит нулевой байт.
Если переменная найдена (A=0FFh), в буфер записывается значение переменной,
оканчивающееся нулем.
В обоих случаях, значение DE на выходе функции - указывает на конец буфера.
Пример (в асмовом варианте):

buffer: db 0 <- переменная не найдена
buffer: db "G",0 <- переменная найдена (пример для "LASTDRV=G")


P.S. Знает ли кто-нить, какие тэги поставить, чтобы текст оставался
форматированным (скажем асмовый листинг), а не смешивался в одну
кучу ?.

_________________
Vasil Ivanov
vasil-i@yandex.ru


17 Apr 2004 10:08
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
code и quote


17 Apr 2004 22:55
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 4 posts ] 

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.