Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.52.86] |
|
Сообщ.
#1
,
|
|
|
Всех со Старым Новым Годом !
Рылся я, рылся в различных исходниках в поисках резидентных программ и естественно находил не один десяток. Но вот беда: половина из них либо со встроенными ассемблеровскими процедурами( ассемблер я пока, к сожалению не знаю) либо громоздки т.е не подходят как учебные примеры. А мне сейчас для понимания нужны именно они.Поэтому я обращаюсь за помощью к вам. Вот скажем нужно написать (к примеру): 1. Прога, которая совершенно неожиданным образом 14 января ровно в 23 часа 45 минут 15 секунд 10 милисекунд вдруг перезагрузит мою тачку. ...ну и допустим... 2. Прога, которая скажем при переходе на "диск А" вначале заставит пропиликать внутренний динамик а уж затем и перейдёт на "диск А". Очень прошу привести примеры этих программ или хотя бы привести ТОЧНЫЙ алгоритм. |
Сообщ.
#2
,
|
|
|
Тут без Ассемблера не обойтись. Но не потому, что только средствами Turbo Pascal нельзя решить эти задачи.
Прерывания от таймеров, дисковых контроллеров - аппаратные, и могут возникать абсолютно в любой момент(также, как и события в резидентной программе).И если команды резидентной программы или обработчика прерывания нарушат состояние данных или аппаратных схем, то последствия их дальнейшей обработки системными программами трудно предугадать, а таймеры и дисковые контроллеры - это аппаратные схемы, работа которых при том, часто привязана к определенным моментам времени(удастся ли программе уложится в отведенные для обработки состояния микросекунды?). TP же предназначен для выполнения программ в среде MS-DOS или Windows и опирается на функции, доступные в этих системах. А в резидентных программах функции ОС в общем случае недоступны(они могут быть заняты другими программами или просто требовать иных режимов). |
Сообщ.
#3
,
|
|
|
Нет только одной последовательности действий, приводящей к заданной цели. Их всегда бесконечное число.
|
Сообщ.
#4
,
|
|
|
Мне нужна сейчас хотя бы одна..
|
Сообщ.
#5
,
|
|
|
А можнт кто знает где есть исходники подобных программ ?
|
Сообщ.
#6
,
|
|
|
В смысле на паскале и не громоздких
|
Сообщ.
#7
,
|
|
|
Исходники вряд ли будут.
Запуск TP-программ такого рода - самоубийство. Если первую еще можно запустить (и потом не трогать и ждать, пока сработает) - достаточно установить будильник через функцию 06; Int 1A, то вторая - с большой вероятностью что-то испортит(особенно если учесть, что сохранить значения регистров неизменными невозможно - программе потребуются, как минимум, DS и SP). В любом случае пробовать обработчики прерываний и резиденты лучше на ненужном компе(больше всего вероятность испортить диски записанным туда мусором. Самый ужасный, зато маловероятный вариант - запись мусора в РПЗУ с BIOS). |
Сообщ.
#8
,
|
|
|
2 Ilia:
Несомненно, что _некоторые_ вещи лучше все-таки делать другими средствами, но тем не менее, на паскале МОЖНО СДЕЛАТЬ ВСЁ, что угодно. 2 NOPIK: > Исходники вряд ли будут. Вай, зачэм такой сэрдитый? Будут исходники. Много исходников. Захады, дарагой: pascal.sources.ru/tsr/index.htm |
Сообщ.
#9
,
|
|
|
2 Valery
Речь шла об ОТСУТСТВИИ в программе инструкций ассемблера или inline-кода. |
Сообщ.
#10
,
|
|
|
Набери слово keep
и вызови по нему Help кнопкой Ctrl-F1 |