Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Windows 98 SE (оптимизация и улучшение) — пятая часть

Автор: MERCURY127
Дата сообщения: 28.09.2009 14:22
turbopack
Нет, это я туплю ... Разобрался, спасибо! Понадобилось и то, и это. Короче, ляпаю DMRP 3.01 beta...

Добавлено:
Опять вопрос : как из батника получить от юзера некоторую строку текста???
Автор: IFkO
Дата сообщения: 28.09.2009 18:36
Kirill666

Цитата:
Скринсавер - не столь жизненно важная программа, чтобы добавлять ее в систему, если есть хоть малейшие подозрения.
дело все в том, что беседа приняла странный характер, на что я уже устал указывать: странным и подозрительным можно объявить АБСОЛЮТНО ВСЁ! И в первую очередь - сторонние системные патчи. На основании смутных подозрений можно вообще свихнуться. Если же страдать вирусобоязнью, а оставить поиск вирусов на совести антивирусников, то можно смело ставить в систему все, что прошло проверку. Так что вопрос не об этом злосчастном сейвере, а о принципах подхода к стороннему софту: чего бояться, а чему доверять. Учитывая, что "часы ОРТ" в эфире уже 8 лет и очень широко распространены, больше оснований им верить, чем наоборот.

MERCURY127

Цитата:
какого хрена его вообще патчить было
вроде там пропатчена система кэширования ... впрочем, какая разница - вопрос-то о том, кто это пробовал, и какие имеет впечатления?

Цитата:
патчер, латающий ЛЮБЫЕ версии esdi & ios
проверю, но не быстро - мне же еще найти нужно эти непатченные версии, еще в систему встроить... а времени ни на что не хватает.



Автор: MERCURY127
Дата сообщения: 28.09.2009 19:30
IFkO

Цитата:
вроде там пропатчена система кэширования... впрочем, какая разница - вопрос-то о том, кто это пробовал, и какие имеет впечатления?

Ну, я могу попробовать, на заведомо рабочей системе... Впрочем, мои впечатления будут заведомо отрицательными, в лучшем случае - нейтральными, ибо уверен, что в 16-ибитную подсистему совместимости с Win3x лучше не лезть - настолько там все накуролешено, недокументировано, и вообще это все - типа паяние в ночи... А с кешем в Win 9x/3x - лучше бы вообще не связываться. Где это барахло лежит, с описанием причины его рождения? На чем проверять то? На Ворд 6.0?
Кстати, до сих пор лучше этого редактора не видел , все новые версии - только хуже и хуже ...
Автор: NightBowl
Дата сообщения: 28.09.2009 19:38
MERCURY127

Цитата:
Опять вопрос : как из батника получить от юзера некоторую строку текста???

Хех, для DOS и Win9x BAT языка это архисложный вопрос и обычно это делается с привлечением утилит 3-их фирм, однако решение на чистом бате существует, но что-то мне подсказывает что оно тебе не понравится
Вот универсальная рыба для этого случая работает на DOS50-WinME (в середине есть место для твоего кода)
ВНИМАНИЕ - НЕ РАБОТАЕТ НА NT СИСТЕМАХ

**********НАЧАЛО ASK.BAT****************

@echo off
if exist $temp01$.bat goto inside
if "%1"=="#" goto begin
%comspec% nul /e:4096/c%0 #
call $temp01$
del $temp??$.*
goto the_end
:inside
if "%1"=="" goto the_end
rem>$temp01$.bat
:::::::::::::::::::::::::::::::::::
:Здесь вставляй свои другие команды где
:то что ввел юзер - это переменная %1 - например:


echo %1


:Здесь закончились твои команды
:::::::::::::::::::::::::::::::::::
goto the_end
:begin
:::::::::::::::::::::::::::::::::::
echo Enter something, then press F6 and Enter>con
copy con $temp00$.bat
:::::::::::::::::::::::::::::::::::
for %%# in (md cd) do %%# $tmpdir$
prompt call %0;
path;
%comspec%/c..\$temp00$>..\$temp01$.bat
cd ..
rd $tmpdir$
:the_end

*************КОНЕЦ ASK.BAT************
Автор: turbopack
Дата сообщения: 28.09.2009 22:28
Заценил извращенность вышеприведенного скрипта Тока не понял, нафиг уходить в $tmpdir$ и нафиг rem>$temp01$.bat, а так интересно. Обход драконовских ограничений убогого командного процессора ДОСки. Гугленьем по "dos bat input" можно найти еще варианты с привлечением debug-а, я не разбирался как и зачем, но если они работают, то так будет лучше в плане ненажимания F6 или Ctrl+Z. А если один-единственный батник - не самоцель, то наверно можно просто положить рядом прогу, пихающую ввод юзера в переменную окружения.
А что там вообще нужно спросить в патчере?
Автор: Grandparent
Дата сообщения: 28.09.2009 23:30
Курчаво ... однако! Мы тут, подковы вручную гнём, а ОН - NightBowl плюшками балуется ... Может проще на батниках - ОСьку написать?!

Шучу конечно, а вообще то, искуство написания выполняемых задач на BAT файлах, заслуживает отдельной темы. С уходом DOS из массовой практики, "компютерное человечество" много потеряло, в простых и изящных решенииях ...
Автор: AlexG
Дата сообщения: 29.09.2009 00:04
turbopack

Цитата:
просто положить рядом прогу, пихающую ввод юзера в переменную окружения.

хм..., не всё так просто. Запущенная стандартными средствами программа получает
копию окружения и всё, что она с ним сделает, умрёт вместе с ней.
Чтоб добраться до окружения command.com надо нештано запускаться через
прерывание 2Eh, что для батника не подходит. Поэтому я в своё время делал так:

...
rem bat-file example
prog.exe
SET PARAM1=000000
SET PARAM2=000000
...

prog.exe искала в файле батника, который её и запустил и продолжает выполнятся,
сигнатуру 'PARAM1=' и писала дальше в файл батника что нужно,
благо значение имеет фиксированный размер.

А может хватит этого:
%WINDIR%\command\choice.exe
?
Автор: turbopack
Дата сообщения: 29.09.2009 01:16
AlexG

Цитата:
Запущенная стандартными средствами программа получает копию окружения и всё, что она с ним сделает, умрёт вместе с ней.

Угу, я поэтому тоже сомневался... Но был winset, который менял переменные глобально, вот я и подумал, что мелкософт сделал для этого какую-то полудокументированную дырку. Но возможно там просто левый хак.

Цитата:
Чтоб добраться до окружения command.com надо нештано запускаться через прерывание 2Eh, что для батника не подходит.

А это работает по отношению к родительскому процессу? В смысле, не сработает, если вызвать себя второй раз через 2E?

Цитата:
prog.exe искала в файле батника, который её и запустил и продолжает выполнятся, сигнатуру 'PARAM1=' и писала дальше в файл батника что нужно

Тогда уж лучше в батнике делать call что-то.bat, и что-то.bat писать в .exe. Для батников ведь окружение не копируется.

Цитата:
А может хватит этого:
%WINDIR%\command\choice.exe

Ага, я тоже об этом подумал. Поэтому и спросил, какая вообще цель

Grandparent

Цитата:
С уходом DOS из массовой практики, "компютерное человечество" много потеряло, в простых и изящных решенииях

Приобрело скорее. Во всех современных системах командные процессоры гораздо мощнее. Дос еще нужен в основном ради досовского софта, вроде прошивальщиков или тестов железа, из тех, что до сих пор не обзавелись своей оболочкой. Делать из-под него бэкап FAT32 сегодня уже ИМХО как-то несерьезно
Автор: Kirill666
Дата сообщения: 29.09.2009 01:35

Цитата:
Но был winset, который менял переменные глобально,

ИДЕ !!! ХАЧУ !! Ссылку киньте плизз .


Цитата:
Делать из-под него бэкап FAT32 сегодня уже ИМХО как-то несерьезно

Очень даже серьезно
Автор: Grandparent
Дата сообщения: 29.09.2009 01:50
Вот, уж - даже по ностальгировать о DOS нельзя, почти - моветон ...
Гляну, что там в холодильнике - залью горе и дрыхнуть прилягу ...
Автор: turbopack
Дата сообщения: 29.09.2009 02:00
Kirill666

Цитата:
ИДЕ !!! ХАЧУ !! Ссылку киньте плизз .

Хотите дизассемблировать Был на каком-то сидюке то ли 95, то ли 98 винды, у мну нету, в вебе навскидку не нашел Походу надо качать максимально некоцанные диски 9x, если тут ни у кого не найдется...

Цитата:
Очень даже серьезно

Ну пусть так Можно даже поставить ntfs4dos и бэкапить семерку

Grandparent
Дык ностальгия не подразумевает безусловного консерватизма. У мну у самого ностальгия, как походу и у большинства присутствующих
Автор: NightBowl
Дата сообщения: 29.09.2009 03:48
turbopack

Цитата:
Тока не понял, нафиг уходить в $tmpdir$ и нафиг rem>$temp01$.bat,

Так как то что ввел пользователь прогоняется через EXEC то нужно быть уверенным, что программы с таким именем нет ни в текущей директории ни на PATH поэтому PATH обнуляется через path; и EXEC делается в пустом каталоге.
Комада rem>$temp01$.bat обнуляет $temp01$.bat для того чтобы из него выполнилась только одна строчка из того что ввел юзер.
Автор: Kirill666
Дата сообщения: 29.09.2009 05:19
turbopack

Цитата:
Ну пусть так Можно даже поставить ntfs4dos и бэкапить семерку

Я так и делаю, только не столько бэкапить, сколько ресторить (хотя можно и бэкапить, но ресторить, когда навернулось - актуальнее), не семерку а XP напару с 98 (но и семерку, если она у меня когда будет, - ждет таже участь )
DOS, поднимается с чего угодно, хоть с флешки, хоть с флопика, и без всякого гемороя.
А дальше - все легко и приятно. Только необходимо поставить еще DOSLFN.
Кстати поднимать новый комп "с нуля" (размечать, форматировать) тоже предпочитаю из под DOS, для чего держу набор утилит для работы с современным железом и софтом.


Цитата:
Хотите дизассемблировать

Нет есть место, где было бы очень удобно использовать, в свое время даже сам хотел такую приблуду писать, но выкрутился, хотя и криво. Вобщем это еще актуально.
Так что если у кого есть - просьба поделиться.
Автор: NightBowl
Дата сообщения: 29.09.2009 08:19
Kirill666

Цитата:
Так что если у кого есть - просьба поделиться.

http://rapidshare.com/files/286351467/winset.zip.html
Автор: MERCURY127
Дата сообщения: 29.09.2009 10:36
NightBowl turbopack

Цитата:
Заценил извращенность вышеприведенного скрипта

Да, я тоже заценил ... Ой, мама... choice пробовал, но он только позволяет выбрать одну букву из нескольких предопределенных... А мне надо, чтоб юзверь, который сумел поставить винду НЕ в c:\windows, указал, куда же он ее, такой умный, поставил ...
Благодарю NightBowl за отзывчивость, но это уже садизм какой то ... Скачал winset, буду копать, что это и с чем его едят... Если не устроит, буду писать свой хак либо вставлю запрос в собственно патчер (не хотел этого делать, дабы не засорять код излишествами).

PS: Что то у мя на С: много места стало ... вчера было 380 метров, сёдни аж 720...
Автор: NightBowl
Дата сообщения: 29.09.2009 11:20
MERCURY127


Цитата:
А мне надо, чтоб юзверь, который сумел поставить винду НЕ в c:\windows, указал, куда же он ее, такой умный, поставил


А чем %winbootdir% не мил?
Автор: MERCURY127
Дата сообщения: 29.09.2009 12:43
winset - это 32-хбитное приложение ...
NightBowl

Цитата:
А чем %winbootdir% не мил?

Это сделано, но %winbootdir% можно и проигнорировать? А если юзер держит на ОДНОМ разделе несколько осей, как это модно делать здесь? Или если раздел "уплыл" на другую букву?
Автор: Simplestas
Дата сообщения: 29.09.2009 17:30
MERCURY127
Возьмите просто параметр (%1), а по умолчанию %winbootdir%.
Автор: SerbeyBV
Дата сообщения: 29.09.2009 20:54

Цитата:
PS: Что то у мя на С: много места стало [Image]... вчера было 380 метров, сёдни аж 720...

Если 98, то это скорее всего pagefile после перезапуска усох, если ХР - restore point'ы для освобождения места стерло.
Автор: turbopack
Дата сообщения: 30.09.2009 01:27
MERCURY127
Вообще-то windir и winbootdir настраиваются в msdos.sys (winbootdir необязателен), и при неправильной настройке загрузится только дос, так что %winbootdir% вполне хватит. Но для крутизны можно поставить и упомянутый мной вариант с fc и debug. Например этот:

@echo off
echo Type in input
echo.>%temp%.\$$tmp.bat
FC con nul /lb1 /n |FIND "1:" >> %temp%.\$$tmp.bat
echo e100'set input='>%temp%.\$$tmp.dat
echo w>>%temp%.\$$tmp.dat
echo q>>%temp%.\$$tmp.dat
debug %temp%.\$$tmp.bat < %temp%.\$$tmp.dat > nul
call %temp%.\$$tmp.bat
for %%d in (tmp.bat tmp.dat) do if exist %temp%.\$$%%d del %temp%.\$$%%d
echo INPUT="%INPUT%"

Обратите внимание, между set и input два пробела. Не требует F6 и не вызывает сам себя. Единственный минус - завязан на fc и debug, и на формат вывода fc.

NightBowl
Ясно, спасибо.

Добавлено:
Kirill666
Как замечено выше, winset под win32. Если нужно под дос, то два варианта: или хак с парсеньем MCB и прочими извращенными приблудами, в сети есть исходники на паскале, или прерывание 2E (недокументированное), ему можно давать "set param=value", но у меня оно не работает, говоря "Memory allocation error. Cannot start COMMAND". В неофициальном доке сказано, что выгружаемая часть command.com должна быть подгружена перед вызовом, может нужно копать в этом направлении.
Автор: Kirill666
Дата сообщения: 30.09.2009 03:03
turbopack


Цитата:
Как замечено выше, winset под win32. Если нужно под дос, то два варианта:

Нужно то для дос, но если будет работать в дос сесси, то все нормально.

Цитата:
хак с парсеньем MCB и прочими извращенными приблудами

Вот имено это, я ипытался в свое время написать.
Автор: MERCURY127
Дата сообщения: 30.09.2009 10:01
Спокойно, товарищи! Все сделал ...
Google в помощь, если знаешь 1) инглиш, 2) что и 3) как искать :
http://www.merlyn.demon.co.uk/programs/stow.zip и многое другое.
Короче, сделал батничек, который не только запрашивает, если ему надо, но и откат делает сам! Щас выложу...
Автор: turbopack
Дата сообщения: 30.09.2009 12:46
MERCURY127

Цитата:
http://www.merlyn.demon.co.uk/programs/stow.zip и многое другое

Дык это самый натуральный хак, только его код не в архиве. Environ - это вовсе не библиотечная функция
Автор: MERCURY127
Дата сообщения: 30.09.2009 13:13
turbopack
А то я не понял? Зато самому не пыхтеть, и пользовать удобно... Зачем усложнять себе жизнь садо-мазо-извращениями ?
Автор: turbopack
Дата сообщения: 30.09.2009 14:01
По мне так ентот stow еще извращеннее варианта с fc и debug
Автор: Grandparent
Дата сообщения: 30.09.2009 14:12
Это из серии - размышления и измышления (обещал как то)

Сколько компьютерный мир - условностей породил!

Не слыхивал-ли кто, как в 98-ом, IRQ до 30-и добавить? Под ХР, у меня занято 12 штук под ACPI - всего 27!! Нельзя под 98 ничего добавить, там их всего 16, увеличить нельзя принципиально, не умеет работать 98-й с логическими прерываниями, он обрабатывает прерывание физически. Некоторые дрова умеют делить прерывание между собой, некоторые нет. В ядре 98-го такого деления не предусмотрено. Пробовал с ключикми накатить setup/ I или J? но железо ACPI - а APM не разумеет ... В ХР прерывания обрабатываются по сигнатурам устройств, ему глубоко фиолетово на 15 физических прерываниях сидят устройства, или все на одном. Только те устройства, которые не могут передать сигнатуру (клавиатура старая или мыша, например) должны сидеть на отдельном физическом прерывании ...

98-й написали как раз когда продвинутые девайсы только начинали появляться т.е. прочитать что за девайс 98-й успели научить, а вот работать с ними по этому коду нет. Кто учить работать железо должен - производитель? А ему это надо? Под версию ОС закосят, а там новое на рынок выбросят! Мне к примеру, извращениями заниматься стало уже не в моготу. А с другой сторны у Хрюна свои проблемы - СОМ порты, дисковые операции с системными файлами ... трудновато без 98-го! А Линукс - надо изучать, ядро своё под железо ваять ...

Уже не очевидно, к кому вперёд придёт "костлявая с косой" - к 98-у или ко мне ... Ясно одно, согласно законам природы, отжившее, должно уступить со временем, место новому. Реанимация только продлевает агонию, возрождать былое - дело не всегда благодарное. А может проще поступить - прикрутить "апендиксы" к ХР и укоротить ей крылья, чтобы с рук высоко не взлетала ...

Автор: turbopack
Дата сообщения: 30.09.2009 15:30
Grandparent
98-й тоже умеет шарить прерывания. Не может не уметь, так как это входит в спецификацию Plug&Pray. На PCI и AGP устройства к примеру выделено всего 4 линии прерываний. 30 используемых прерываний никогда не наблюдал ни под XP, ни под что-либо еще. Даже не представляю, куда можно напихать такое количество устройств. ACPI ИМХО вообще не должно использовать прерывания, тем более в количестве 12 штук. Логические прерывания - это вообще из другой оперы, вроде 21-го дос. ХР - а что там такого с системными файлами? В крайнем случае можно иметь клон системы на другом винте/разделе и менять что-то оттуда. COM - это в смысле для старых прог, которые юзают их напрямую? Поставьте DOS или 98 на виртуальную машину, например MS VirtualPC 2007, и юзайте проброс физического порта. Линукс - давно уже никто ядро не компилит, за исключением экзотических случаев, и может для WiFi.
Автор: MERCURY127
Дата сообщения: 30.09.2009 15:39
DMRP 3.01 Beta. Просьба тщательно все проверить И НЕ МОЛЧАТЬ !!!
Автор: Grandparent
Дата сообщения: 30.09.2009 15:47
СОМ порт, под виртуальной машиной - это геморой в квадрате! Он требуется очень часто для многих профессиональных устройств, работая там уже на пределе возможности. У моего железа, нет раздельных "северных и южных" мостов - обеспечение его работы, требует не малых извращений под 98. nVidia заметно отошла от принципов универсальности и уже, сама начинает диктовать моду ...

Как будет время, я отпишу - как современные устройства под ХР, вершат свои задачи, не стесняясь особо в ресурсах - главное функционируют, являясь фактически виртуальными паразитами в системе. "Паразиты" в механике - промежуточные шестерни - передаюшие крутящий момент в нужном направлении ...
Автор: MERCURY127
Дата сообщения: 30.09.2009 17:52

Цитата:
Как будет время, я отпишу как современные устройства под ХР, вершат свои задачи - не стесняясь в ресурсах - главное функционируют, являясь фактически виртуальными паразитами в системе...

Да-да-да... Не сумневаюсь , будет очень интересно, но вы KILLACPI хоть пробовали?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677

Предыдущая тема: Непонятные глюки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.