Прикольно ;) Не могбы в си/с++ или асм перевести (у меня напряги с паскалем)?01.12.02 01:45 Число просмотров: 1363 Автор: pup3 Статус: Незарегистрированный пользователь
Есть такая команда в MS DOS - load. И есть такая операционная система - PTS DOS 2000 (отечественная, кстати), в которой нет команды load. Спрашивается как загрузить новеловский клиент SPX 32 битный , если последний для загрузки ряда своих драйверов использует команду load.
Команда Load не в DOS29.11.02 14:05 Автор: :-) <:-)> Статус: Elderman
LOAD (также как UNLOAD, MODULES...) - это команды cамого Novell Client'а, он их добавляет при своей установке. А в чистой MS-DOS их нет (с какой стати MS будет поддерживать загрузку Netware'вских NLM ?).
Может быть, твоя проблема из-за неполной совместимости PTS-DOS с MS-DOS - (на PTS-DOS 6.x даже Win95 не ставилась - висла при установке).
А как можно решить проблему в сложившейся ситуации ?30.11.02 12:29 Автор: pup3 Статус: Незарегистрированный пользователь
На C/asm ее код будет длиннее.
А вообще тут и так все ясно - вызывается команда LOAD Новелловского клиента через Int 2Fh/ax=0xAE01 (описано в Ralf Brown's IntList).
Напиши потом, заработал ли после этого Client32 в PTS-DOS 2k, ok?
У меня в PTS-DOS 6.6 заработал =)
Не могу въехать, как это все работает01.12.02 17:06 Автор: pup3 Статус: Незарегистрированный пользователь
Я в том сообщении обновил бинарник ({$M 4096,0,0} - урезал heap, а то client32.nlm в конце вис. Сейчас вроде все нормально)
> 1. Поправь меня (помоги перевевти места, где вопрос стоит > ,- или на слолвах объясни, что там делается). > Для начала найди Ральфа Брауна в поисковике. Там для написания этой проги инфы достаточно.
> #include <dos.h> > > REGS rg;
Тут в первом байте строк должна быть длина строки (см. Ральфа Брауна), а BP это делает автоматом
> > union { > unsigned char far * p_line; > unsigned int a[2]; > } Un; > > > void main (int argc,char*argv[]) { > > // ? Move(Mem[PrefixSeg:$80], CmdLine, > Mem[PrefixSeg:$80]+1);
Переписывем командую строку из PSP:0x80 (см. описание PSP, 1-й байт - ее длина) в CmdLine.
char far *p = (char far*) MK_FP(_psp, 0x80);
memcpy(CmdLine, p, *p+1);
1. В общем-то под PTS DOS 2000 твой load.exe вроде как заработал.
Однако что-то у меня один вариант сервера как-то глючно устанавливает канал (перестает принимать сообщения после установления канала) ,- но это скорее всего ошибка реализации сервера.
2. Но вот на 16 битной карте client 32 я установить пока не смог - может дарайвер не тот или еще что-то.
В общем огромное тебе спасибо !
Вау, Паскаль форева… Это ж язык для обучения студентов ;-))) Про «дамп» внутри ;-))))01.12.02 18:32 Автор: HandleX <Александр М.> Статус: The Elderman
> ЗЫ 2: Если твой дамп - экзешник, то где у него сигнатура MZ > ? Этот «дамп» на самом деле широко распространённые метод кодирования бинарных файлов в ASCII, назвается он UUE-encoding. Применятся скажем, если хочешь послать бинарник Биллу Гейтсу по телеграфу ;-) Или чтобы запостить этот бинарник в конференцию без ошибок.
Итак, выделяем всё, что идёт после слов «begin 644 load.exe», и кончая словом «end», причём «begin 644 load.exe» тоже выделяем... Компируем это всё в буфер обмена, потом создаём Блокнотом новый файл, вставляем туда содержимое буфера и сохраняем всю эту белиберду с расширением «UUE». И, скармливаем этот файл, скажем, WinRAR'у. И — о чудо! — видим там файл «load.exe». Распаковываем этот файл. Наслаждаемся сигнатурой MZ в начале.
Enjoy!
не был я студентом ;))) И в школе не проходил pascal. ( PS: Отдельное спасибо за тактичность ;) )01.12.02 19:20 Автор: pup3 Статус: Незарегистрированный пользователь
> Есть такая команда в MS DOS - load. И есть такая > операционная система - PTS DOS 2000 (отечественная, > кстати), в которой нет команды load. Спрашивается как > загрузить новеловский клиент SPX 32 битный , если последний > для загрузки ряда своих драйверов использует команду load. 5-ого ДОС-а сейчас под рукой нету, но и там такой команды не было, afair. Были
"LOADFIX"
Ensures that a program is loaded above the first 64K of conventional memory,
and runs the program.
и
"LOADHIGH (LH)"
Loads a program into the upper memory area.
load - это как раз из Новела, а не из DOS-а, насколько помню.
Какие вообще в PTS DOS 2000 есть команды - кинь, плз.
> Есть такая команда в MS DOS - load. И есть такая > операционная система - PTS DOS 2000 (отечественная, > кстати), в которой нет команды load. Спрашивается как > загрузить новеловский клиент SPX 32 битный , если последний > для загрузки ряда своих драйверов использует команду load. Написать для PTS DOS внешнюю команду load :) Либо попытаться найти ее в сети.