А зачем вообще трогать?
Code:
.dir_default_pach dd communication_area_default_pach ;+20
Этот путь оставлен как резервный, когда совсем нечего брать программе. То что программа подставляет
/rd/1/ сама, так это вообще левое - на случай если она запущена не через макрос opendial.mac (который теперь в Proc_Lib.obj), а например файловым менеджером.
Для использования рабочего пути есть заранее предусмотренный параметр:
Code:
.opendir_pach dd temp_dir_pach ;+16
А вот если уже он пустой, то используется значение адреса, которое по смещению +20.
Во время работы в адрес по +16 копируется меняющийся путь к последней открытой директории, если операция по выбору файла прошла успешно. При старте это обычно пустая область, но если туда прописать путь к директории, то он откроет именно нужную директорию. Разумеется если она существует.
А если скопировать путь к файлу в область:
Code:
.openfile_pach dd fname_buf ;+36
так можно даже с очисткой пути от имени файла не мучаться - код в opendial.mac сам обработает и поместит путь к директории в область, по адресу указанному в +20.
В последнем случае это должно быть сделано до вызова:
Code:
call [OpenDialog_Init]