Помощь - Поиск - Пользователи - Календарь
Полная версия: 4 вопроса по: ОС(win, dos), модем, ЖД
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Altair
1.?-
Как можно определить в какой ОС запущенна программа (DOS или WINDOWS 9895 )
2.?-
Как можно передать модему (COM1) AT - команду
найденно: http://www.lcard.ru/~nail/frolov/bsp/v04/home.htm
заходите, там много инфы о модемах
3.?-
Можно ли форматировать на диске не каждую дорожку, а через n
4.?-
В WIN98 можно было MSDOS-овскую программу прописать в AUTOEXEC.BAT или CONFIG.SYS. Как запустить
программу до загрузки WIN_XP
DI
2 в виндоусе через HyperTerminal
DI
можно опросить модем через диспечер устройств
Altair
Все вопросы касаются  ТОЛЬКО Турбо Паскаля!
>>> в виндоусе через HyperTerminal  
это понятно, или в досе через NC terminal.
Имею ввиду, как программа должна обращаться к порту модема,
для предачи ему  AT команды?
SKVOZNJAK
3 Таких команд в форматировщике не видел. Но можно добиться похожего эффекта. Перезаписать отдельные сектора в файле. Или подвинуть информацию, создать новый логический диск и потом отфарматировать. Но форматировать всё равно придётся в реальном режиме.
4 Наверно можно прописать прогу в комманд коме.
Altair
RE SKVOZNJAK>>>Наверно можно прописать прогу в комманд коме
Т.Е. прописать COMMAND.COM с параметром /C <путь_к_программе> . Так?
------------------
Предложение о форматировании не подходит.
Мне надо форматировать через 3 дорожки диск  для скорости!
(неважно, что потом остается на диске  ;D   )
SKVOZNJAK
Не, ты не так понял ;D Никаких коммандных строк. Имелась в виду коррекция содержимого файла программой на паскале с тем, чтобы этот файл потом работал чуточку не так. Только для этого асму надо знать sad.gif
Дык если надо форматировать побыстрее - применяй быстрое форматирование.
APAL
Насколько я помню было какое-то дисковое прерывание (функцию не помню) для форматирования определенной дорожки диска. Если им воспользоваться, то можно как угодно "извращаться" с диском...
Altair
APAL: Насколько я помню было какое-то дисковое прерывание
Именно. Прерывание N 13
Функция $06 и $07 - 06 - форматировать дорожку, 07-весь диск
Для форматирования надо:
в  регистр AH  поместить 6
А что еще не знаю!
SKVOZNJAK:  применяй быстрое форматирование
Что это такое?
-------
А файл COMMAND как править - нужно исходники достать или Turbo  Debugger -ом можно
SKVOZNJAK
Форматирование только части дискового пространства. Навроде стирания файлов, только тут ещё и фат стирается и не выполняется проверка поверхности. Запускаешь утилиту FORMAT /? с таким ключём, и получишь список команд.
Дебуггером. Создашь изменённый вариант, запишешь изменения в отдельный файл, напишешь прогу, которая будет вставлять изменения в чистый файл. На грани вируса, но если запортишь комманд ком, диск перестанет быть стартовым ;)
GLuk
2All: Думаете ХРен сначала грузит command.com? Насчет форматирования Oleg_Z спрашивает кокретно, а отвечают какую-то хрень насчет format.com.  >:(
Форматирование ESDI'шного HDD осущ-ся ф-ей 1Ah (есть в любой доке). А вот пага по поводу фактора чередования - это уже юзая БИОС не реализовать. Нужно обращаться к контроллеру напрямую (но рыться в этом не советую, засиралово мозгов и в дальнейшем не пригодится).
А запустить прогу до ХРена в принципе невозможно, потому как ядро грузится по-любому до всего, а ето вроде как и есть ХРен (ничего не утверждаю). Может через реестр только если (RUn), но это тож самое
Altair
Ну с форматированием я поэксперементирую. С WIN XP тоже все ясно, эта гадость грузится сама,
а не поверх COMMAND.COM , и файлы AUTOEXEC и CONFIG уже в WIN ME нельзя изменять (проверил)Осталось   узнать как различить ОС, в которой запущенна программа.
Мне кажется, что WINDOWS где то пишет свой лог, иначе как она определяет, что завершенна работа
неправильно!
Может кто- нибудь знает, какой - нибудь файл ВИНДОВС, изменяемый системой, при загрузке?
GLuk
Цитата
Мне кажется, что WINDOWS где то пишет свой лог, иначе как она определяет, что завершенна работа неправильно!

Это можно определить и через адресное пр-во BIOS.

Насчет различения ОС'ов - юзай команду VER через перенаправление ввода/вывода. Хотя можно тут и поглубже покопать, а зачем тебе это??
Вообще (имхо) программить под ДОС и думать о Win - чушь.
Какой HDD собираешься форматить?
Altair
>>>Вообще (имхо) программить под ДОС и думать о Win - чушь.
Нет не чушь,  у моей программы разные функции должны выполняться при
запусках из разных ОС
>>>Какой HDD собираешься форматить?
разве есть разница  ???
GENERIC IDE
команда VER по моему выводит всегда версию ДОСа, даже при запуске под WIN
А как это определить через адресное пространство?
SKVOZNJAK
Цитата
2All: Думаете ХРен сначала грузит command.com? Насчет форматирования Oleg_Z спрашивает кокретно, а отвечают какую-то хрень насчет format.com.  >:(

1 Не ХРен, а комп грузит комманд ком, а уже от него пляшет ХРюша. Значит, обладая определёнными знаниями, в принципе, можно поставить систему на уши, только вот чего это будет стоить.
2 Конкретность понятие растяжимое smile.gif до тех пор пока чётко не сформулированы условия и задача :smile.gif
GLuk
Цитата
>>>Вообще (имхо) программить под ДОС и думать о Win - чушь.
Нет не чушь,  у моей программы разные функции должны выполняться при
запусках из разных ОС
>>>Какой HDD собираешься форматить?
разве есть разница  ???
GENERIC IDE
команда VER по моему выводит всегда версию ДОСа, даже при запуске под WIN
А как это определить через адресное пространство?


Ну насчет VER - это не всегда так: под каким-то Win9x (вроде как 98SE) она выводит ИМЕННО версию Windows. А в Windows 2000 Prof - MSDOS версия 5.00.500, как понимать честно говоря не знаю.. + ко всему - это первое что на ум пришло ;), а самым КОНКРЕТНЫМ способом является наверное проверка какого-либо стандартного файла винды, e.g. notepad, wordpad.. предварительно глянув где там ОНА лежит (версия винды) и вообще эта тема по-моему уже обсуждалась (по поиску ничего не видно?). Искать что-то в нашей VDM по ходу без толку, хотя как-то видел в TD что-то типа Windows 4.0.041..

Насчет "разве есть разница" - это просто мне интересно; и кстати я подозревал, что сказевый контроллер ты вряд ли стал бы опрашивать, как следствие надпись GENERIC IDE конечно неплохая, но.. если можно - модель, кол-во цилиндров, ну и прочее, я так понимаю ты собрался форматить что-то старенькое?

Адресное пространство:
По адресу 40:72h - находится флаг ресета (from BIOS) типа dword, только вот плохо помню значения, вроде как следующие:
1234h - пропуск теста памяти и инициализации CRT;
5678h - что-то там с суспендом
и многие другие...

А насчет ДОС VS WIN - это все лишь мое личное мнение.

2SKVOZNJAK: Ты ничего не подумай - это я так, как обычно; злой просто как САБАКА. Все правильно каждый помогает в меру своих возможностей...так и должно быть ;)
SKVOZNJAK
А вот тут-то ты банку-то и пропустил  :D Ядро грузит не комманд ком, а другой погрузчик. Чтобы это понять, надо было залезть в загрузочную дискету линукса. Технология загрузки хрюши слизана явно оттуда.
GLuk
Цитата
2All: Думаете ХРен сначала грузит command.com?


Читай внимательнее, пага по сабжу загрузки хреном command.com изначально была отброшена.

P.S. типа банка разбилась.. ;)
SKVOZNJAK
Цитата
P.S. типа банка разбилась.. ;)

Пива не жалко smile.gif
trminator_offline
Цитата
Windows 2000 Prof - MSDOS версия 5.00.500

Только имеется ввиду не версия ДОС, а версия NT
SKVOZNJAK
Она что, грузится как 9х? И какого года эта версия?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.