ArcView extension for NC4.0 v3.01 Last update 12/11/1994 Содержащаяся здесь информация не может быть изменена, запрещается частичное или полное использование изложенных здесь материалов в коммерческих целях и в средствах массовой информации без письменного разрешения автора. ARC.EXE распространяется свободно и в составе программного продукта ARCVIEW, и может передаваться в неизменном виде любым пользователлям, при условии, что такая передача не несет коммерческой выгоды. За проблемы, возникающие в процессе эксплуатации автор не несет никакой ответственности. NC, Norton Commander V4.0 (C) by Symantec Inc. ARCVIEW (C) by Nazarenko Sergey Небольшая примочка к ARCVIEW. Версия 3.01 Изготовлена по заказу для поставки вместе с ARCVIEW. 1.00 - требовалось 2 .EXE файла для работы 2.00 - меньшee количество требуемой памяти и правильная передача параметров командной строки. 2.01 - исправлена ошибка, приводившая к небольшой несовместимости ARCVIEW c API ARC.EXE 2.02 - исправлен поиск переменной TEMP 3.00 - введена обработка ошибок, связанных с отсутствием переменных окружения TMP и TEMP. Полностью изменен API, поэтому не совместима с ARCVIEW версии ниже 6.9 3.01 - исправлен мелкий баг с восстановлением векторов прерываний. Возвращает версию API 3.01 Я думаю, что любители ARCVIEW, при переходе на 4 Нортон коммандер обнаружили неприятную вещь: Петя так раздулся в размерах, что любимый ARCVIEW и любимый ARJ уже не умещаются вместе с Петей в памяти. И ARCVIEW отказывается производить распаковку/просмотр архива, что весьма обидно. Данный набор из двух утилит позволяет решить эту проблему. Посмотрим, что получается в памяти, когда вызывается ARCVIEW, а из него ARJ: ├──────────────────────────┤ │ Norton Commander ~330k │ ├──────────────────────────┤ │ ArcView ~110k │ ├──────────────────────────┤ │ ARJ остаток 100k │ └──────────────────────────┘ В такой ситуации ARJ остается около 100k памяти, что ему явно недостаточно. Весьма не плохо было бы выкидывать ArcView во время вызова ARJ. Как это происходит. Весьма просто. ARC.EXE вызывается из NC и в свою очередь вызвает ARCVIEW. ARC.EXE - это программа, которая осуществляет свопинг на диск исполняемого модуля, который вызывает другую программу по функции INT 21h, AX=4B00. Память при запуске ARC.EXE: ├──────────────────────────┤ │ Norton Commander ~330k │ ├──────────────────────────┤ │ ARC.EXE ~10k │ ├──────────────────────────┤ │ ArcView ~110k │ ├──────────────────────────┤ │ FREE MEMORY ~100k │ └──────────────────────────┘ А когда вы, скажем, нажимаете F3 в ARCVIEW, то происходит следующее: ARC получает запрос на int 21h, ax=4B00h и записывает на диск все MCB до "Z" и корректирует память. Тем самым освобождается память, занятая ARCVIEW и запускается ваш любимый ARJ, которому пямяти УЖЕ хватает (шутка ли выкинуть 110 килов). Когда ARJ закончит свои операции с архивом - процесс инвертируется и содержимое памяти возвращается на место. Содержимое памяти при вызове ARJ: ├──────────────────────────┤ │ Norton Commander ~330k │ ├──────────────────────────┤ │ ARC.EXE ~10k │ ├──────────────────────────┤ │ ARJ ~210k │ └──────────────────────────┘ ARC в состоянии произвести 256 операций по свопингу памяти на диск, поэтому ваша фантазия относительно ARC может отправляться в свободный полет. Единственным ограничением является наличие свободного пространства на диске и наличие переменной среды TMP или TEMP, например в AutoExec.bat нужно написать: SET TMP=D:\TEMP ^ обратный слеш писать не нужно (Петя глючит) Перепишите ARC.EXE в каталог с Нортоном. Исправьте таким образом NC.CFG: ------------8<------------------------------------ # Compressed viewer ~arc.exe $*.zip $*.arc $*.lzh $*.zoo $*.arj $*.pak $*.lim $*.ha $*.rar ------------8<------------------------------------ И не забывайте иногда стирать файлы SWAP_TMP.0xx из TMP каталога - компьютеры иногда зависают. ARC.EXE обычно удаляет сам эти файлы, но в случае зависания этого сделать не сможет. Однако, пока в зависаниях не замечен. Ограничения: 1) ARC.EXE не работает с APPEND (также, как и Окошки - кстати Мелкософт об этом предупреждает). При выходе (окончательном) возникает GPF #12 или #13 внутри кода APPEND, или просто компьютер виснет. 2) ARC.EXE должен находиться в каталоге Нортона. 3) Нельзя загружать нортон командой LH NC. В этом случае происходит иное распределение памяти и DOS пытается запускать программы в UMB. Для ARC это смертельно. Если возникнут какие-либо проблены - пишите: 2:5020/205.8@FidoNetOrg Alexey Shamarokov