Вопросы про MS-DOS 6.22
11 Января 2025, 02:19:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: ВНИМАНИЕ Почта на домене 2126.ru прекращает свою работу
   Начало   Главная Поиск Правила Камасутра Блоги Чат (1) Галерея Войти Регистрация  
Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: Вопросы про MS-DOS 6.22  (Прочитано 2812 раз)
0 Пользователей и 1 Гость смотрят эту тему.
shandai ТС
Ветеран форума
******

Карма +452/-1
Offline Offline

Пол: Мужской
Сообщений: 1334

город Хабаровск

Пешеход

« Ответ #15 : 28 Марта 2009, 08:42:09 »

Классная тема, получил удовольствие, размяв мозг Smile Когда-то в юности написать такую софтину на Паскале было раз плюнуть...

Я бы подвесил в память резидент, который смотрел бы за часами...
Ок в продолжение темы тебе могу предложить вот что:
Есть уже написанный резидентник, который  раз в 120 секунд пишет в файл, на этом месте будет асемблерная вставка INT 19h которая будетперегружать комп.
И вот эти 120 скунд не могу превратить в 4 аса. В принципе товя идея мне понятна, при загрузке я фиксирую время, потом тупо проверяю его каждую минуту, как оно увеличилось на 4 часа то ребучу?
А можно ли все таки раскачать параметр 120 секунд в 14400 секунд (4 часа)? а то я так сделал, на ноч запустил)) и не одной строчки в файл он мне не добавил.
Вот текст:
****************************************************
{$M $800,0,0 }   { 2K stack, no heap }
{$F+}
uses
  Crt, Dos;
var
  TimeIntVec : procedure;
  Counter, M, H, I: Word;
  F: Text;
  BuzyFlag: ^Byte;           {  Флаг DOS'a  }

procedure Int08; interrupt;
const
  Seconds = 60;              { Чеpез сколько секунд записывать }
begin

  Inline ($9C);              { Эти две стpоки желательно поставить сначала }
  TimeIntVec;                { Почему - не знаю, но иначе виснет }

  Inc (Counter);     { счетчик тиков }
  if (Counter>(Seconds*1000 div 55)) and (BuzyFlag^=0) then { Вpемя пpишло и }
  begin           { поpа !}                              { DOS ничем не занят }
    Counter := 0;
    GetTime (H, M, I, I);
    Assign (F, 'C:\fixlog.txt');
    Append (F);
    WriteLn (F, 'Hour: ', H,', Minutes: ', M);   { часы и минуты }
    Close (F);
  end;
end;

begin
  { Insert ISR into keyboard chain }
  Counter := 0;
  asm                                 { Получение кооpдинат флага }
    push  es
    mov  ah, $34
    int  $21
    mov  word ptr BuzyFlag, bx
    mov  word ptr BuzyFlag+2, es
    pop  es
  end;
  Assign (F, 'C:\fixlog.txt');
  Rewrite (F);
  GetDate (H, M, I, H);
  WriteLn (F, 'Mounth: ', M,'Date: ', I);  {выводим месяц и число}
  GetTime (H, M, I, I);
  WriteLn (F, 'Hour: ', H,', Minutes: ', M);   { часы и минуты}
  Close (F);
  GetIntVec ($8, @TimeIntVec);
  SetIntVec ($8, Addr (Int08));
  Keep (0);
end;
Записан

Пешеход /Был: ЗАЗ-Lanos 1.6L 109 л.с. / Был: Иж 2126 гранат 2003г, УМПО, кастрюля, КПП ОМСК, стартер от ГАЗ 53, БК-21, звуковой сигнал от ГАЗ 3110, карб (солекс) ДААЗ-21073, свечи всегда "Чемпион", NGK-плохие, укороченная ручка КПП, БСЗ, подогрев заднего стекла и правого седенья, чехлы, тонировка задка, сцепа и диск totti, выжимной Coram, резина cordiant на штамповке РР от волги (все равно не помогает), перемычка АКБ-Стартер (тоже не помогла).
KRWW
Ветеран форума
******

Карма +511/-0
Offline Offline

Пол: Мужской
Сообщений: 4087

Москва

Орбита (97г),белая,УЗАМ + Subaru Forester

« Ответ #16 : 30 Марта 2009, 02:11:50 »

В чистом ДОС не получится, пожалуй. Там нет многозадачности.

А как же работает мышка в Шариках?  Big Grin
Этаж по сути 2 проги,одна типо мышку обслуживает ,другая Шареги  Smile Всё нормально с многозадачностью в Досе,если тока программист хороший  saint
Записан

KRWW ,Владимир.
Орбита (97г),белая,УЗАМ + Subaru Forester,2.0 Атмо,РКПП.
Serg_ch
Ветеран форума
******

Карма +807/-0
Offline Offline

Пол: Мужской
Сообщений: 2726

Оренбург


WWW

Европа-Азия (Оренбург)
Lada Granta Liftback 219170
« Ответ #17 : 30 Марта 2009, 06:33:04 »

В чистом ДОС не получится, пожалуй. Там нет многозадачности. Если только поставить винду 3.1, а оттуда уже ребутить.
Если точнее, то в MS DOS ее нет. Но есть еще DR DOS Smile А там уже есть подобие многозадачности, проверено, работает Smile

 if (Counter>(Seconds*1000 div 55)) and (BuzyFlag^=0) then { Вpемя пpишло и }
А здесь у тебя переполнения не происходит, когда 14400 множишь на 1000?
Записан

Был 2126-030, МПСЗ-Ж (ДПКВ), ГТЦ и вакуумник 2108, сцепление Valeo, перемычка гена (КЗАТЭ, 73 А) - аккумулятор, 3-уровневый РР, бортовой "компьютер" Орион БК-06, ДХО с автовключением, примитивная музыка. Перевернутый, битый, крашеный Smile. Продан с пробегом 129000.
Теперь Гранта Лифтбэк, бЭлий, Люкс Навигация.
Faraday
Ветеран форума
******

Карма +505/-3
Offline Offline

Сообщений: 4322

Екатеринбург



Nissan Qashqai SE+ 2012
« Ответ #18 : 30 Марта 2009, 07:03:12 »

И вот эти 120 скунд не могу превратить в 4 аса. В принципе товя идея мне понятна, при загрузке я фиксирую время, потом тупо проверяю его каждую минуту, как оно увеличилось на 4 часа то ребучу?
Как все сложно. Раз программа весит в памяти, то можно сохранить время в переменной? И тупо сравнивать, когда процедура вызывается:

Цитировать
var DateStart:TDateTime;

procedure Int08; interrupt;
var hh:Integer;
begin
hh:=HoursBetween(now, DateStart);
  if hh>4 then
  { reboot }
 
end;


begin
DateStart:=Now;
GetIntVec ($8, @TimeIntVec);
SetIntVec ($8, Addr (Int08));
Keep (0);
end;
Записан
OVA
Moдератор

*****

Карма +1551/-118
Offline Offline

Пол: Мужской
Сообщений: 14739

Тула + д. Ревякино


Нормозавр 21261-070 (был). Нынче Фабула.

WWW

Тула + д. Ревякино
ИЖ 21261-030
« Ответ #19 : 30 Марта 2009, 08:01:04 »

Нельзя резидента отдельного пользовать. Только самой этой программой анализировать рабочее время, причем не в абсолютных, в относительных величинах(тиках). А то отдельны модуль подменить легко и все: защита взломана.
Еще есть прерыване "будильник". Номера сейчас не помню. Оно для срабатывания по таймеру в момент времени. Одну из процедур программы (перезагрузка) вешаешь как обработчик этого прерывания и задаешь другим прерываниен время срабатывания. Завтра пример кода дам.
Если программа должна работать ТОЛЬКО 5 часов в сутки, то этот способ надо дополнять. Время можно хранить прямо в теле файла программы на диске. Код тоже есть, но завтра.
Записан

P.S. Василий.  Еще один из беглых ижевчан.
---
(ОКПП, ГБО, ЭСП), поборол электричество, "бустера" дворников нет
ScrewDriver
Гость
« Ответ #20 : 30 Марта 2009, 08:50:31 »

Нельзя резидента отдельного пользовать. Только самой этой программой анализировать рабочее время, причем не в абсолютных, в относительных величинах(тиках). А то отдельны модуль подменить легко и все: защита взломана.

Ты прочитай внимательно первый пост Smile Задача-то и стоит в взломе защиты, т.е. в данном случае обмане лицензии программы, которая не хочет работать больше 5 часов непрерывно, и нужно автоматически ребутить комп для ее перезапуска...
Записан
Ахинеич
Мастер по разным специальностям

*******

Карма +2784/-33
Offline Offline

Пол: Мужской
Сообщений: 35273

SPB

Почётный Демагог

« Ответ #21 : 30 Марта 2009, 09:20:37 »

 В современном компе мне всё видится гораздо проще. Перезапуск можно задать из БИОСа. Только вот если уж речь об MS-DOS, то это трёшка или четвёрочка похоже. Там БИОС такого не позволял ещё. Разве что внешний источник питания по таймеру отключать на пол секунды каждый цикл. А подробнее можно задачу сформулировать? Чем занимается эта самая пятичасовая прога? И что за ограничение такое 5 часов? Смысла операции всей не улавливаю что-то. Ведь лицензионное ограничение таким способом не обойдёшь.
« Последнее редактирование: 30 Марта 2009, 09:22:30 от Ахинеич » Записан

С точки зрения теории Банальных Эрудиций возможности далеко не каждого индивидуума способны игнорировать тенденции парадоксальных эмоций. Резюмируя вышесказанное, нивелируйте свои аппроксимации на ассоциации с ником!
shandai ТС
Ветеран форума
******

Карма +452/-1
Offline Offline

Пол: Мужской
Сообщений: 1334

город Хабаровск

Пешеход

« Ответ #22 : 30 Марта 2009, 09:56:16 »

Прога принимает входящие пакеты по подключенным к ней телефонным линиям, время работы проги 5 часов, потом она выгружается, реализована она в виде драйвера, и потом ее можно запустить только перезагрузкой компа. Вот и надо перезагружать комп каждые 5 часов.
Проблемы:
1) прерывание INT 19h перезагржует  как то странно, на экране появляется надпись "starting MS-DOS..." и система висит, не реагирует ни на что, тголько с кнопочки презапустить удается.
2) Есть у кого reboot.com а то что не найти в сети
Записан

Пешеход /Был: ЗАЗ-Lanos 1.6L 109 л.с. / Был: Иж 2126 гранат 2003г, УМПО, кастрюля, КПП ОМСК, стартер от ГАЗ 53, БК-21, звуковой сигнал от ГАЗ 3110, карб (солекс) ДААЗ-21073, свечи всегда "Чемпион", NGK-плохие, укороченная ручка КПП, БСЗ, подогрев заднего стекла и правого седенья, чехлы, тонировка задка, сцепа и диск totti, выжимной Coram, резина cordiant на штамповке РР от волги (все равно не помогает), перемычка АКБ-Стартер (тоже не помогла).
Ахинеич
Мастер по разным специальностям

*******

Карма +2784/-33
Offline Offline

Пол: Мужской
Сообщений: 35273

SPB

Почётный Демагог

« Ответ #23 : 30 Марта 2009, 10:06:53 »

Есть у кого reboot.com а то что не найти в сети
Он в составе МС-ДОС имеется. Из любого дистрибутива выдерни. Могу порыться в старых дисках.

 И честно говоря, всё равно не понял смысла. А может стоит поискать иное устраивающее решение, позволяющее не перезагружать систему? Ведь это всё левые варианты какие-то?
Записан

С точки зрения теории Банальных Эрудиций возможности далеко не каждого индивидуума способны игнорировать тенденции парадоксальных эмоций. Резюмируя вышесказанное, нивелируйте свои аппроксимации на ассоциации с ником!
shandai ТС
Ветеран форума
******

Карма +452/-1
Offline Offline

Пол: Мужской
Сообщений: 1334

город Хабаровск

Пешеход

« Ответ #24 : 30 Марта 2009, 16:38:02 »

Ведь это всё левые варианты какие-то?
Не для нас это нормально))))

ПРОБЛЕМА: Программа прописана в автозагрузке, и запускается, проверено строчкой при запуске, но не пререзагружет комп. Если запустить чисто программу, или запустить отдельно autoexe.bat то программа сработает как надо? в чем может быть трабл?
Записан

Пешеход /Был: ЗАЗ-Lanos 1.6L 109 л.с. / Был: Иж 2126 гранат 2003г, УМПО, кастрюля, КПП ОМСК, стартер от ГАЗ 53, БК-21, звуковой сигнал от ГАЗ 3110, карб (солекс) ДААЗ-21073, свечи всегда "Чемпион", NGK-плохие, укороченная ручка КПП, БСЗ, подогрев заднего стекла и правого седенья, чехлы, тонировка задка, сцепа и диск totti, выжимной Coram, резина cordiant на штамповке РР от волги (все равно не помогает), перемычка АКБ-Стартер (тоже не помогла).
Crazy Cat
Ветеран форума
******

Карма +1/-0
Offline Offline

Сообщений: 1840




Серпухов
разные
« Ответ #25 : 30 Марта 2009, 17:04:28 »

А как программа время работы вычисляет? И вообще, что за программа? - мож ей таймер нахрен не нужен - замаскировать прерывания от него. Или сесть на прерывание и переписывать системное время взад...
Пусть, безумная идея...
Записан
OVA
Moдератор

*****

Карма +1551/-118
Offline Offline

Пол: Мужской
Сообщений: 14739

Тула + д. Ревякино


Нормозавр 21261-070 (был). Нынче Фабула.

WWW

Тула + д. Ревякино
ИЖ 21261-030
« Ответ #26 : 30 Марта 2009, 18:34:33 »

Задачу понял. Код резидента такого на Паскале (но почти все на языке ассемблера,на вставках, писал) есть. Завтра пример дам. Перезагрузку только добавить и временной интервал изменить.
Записан

P.S. Василий.  Еще один из беглых ижевчан.
---
(ОКПП, ГБО, ЭСП), поборол электричество, "бустера" дворников нет
OVA
Moдератор

*****

Карма +1551/-118
Offline Offline

Пол: Мужской
Сообщений: 14739

Тула + д. Ревякино


Нормозавр 21261-070 (был). Нынче Фабула.

WWW

Тула + д. Ревякино
ИЖ 21261-030
« Ответ #27 : 30 Марта 2009, 18:45:41 »

Всё нормально с многозадачностью в Досе,если тока программист хороший  saint
Не знаем - не говорим, ладно?!! Wink
В заблуждение других не вводим! MS-DOS однозадачная система. Была, есть и будет. Взаимодействие с контроллером прерываний - функция любой ОС и к многозадачности отношения не имеет.
Записан

P.S. Василий.  Еще один из беглых ижевчан.
---
(ОКПП, ГБО, ЭСП), поборол электричество, "бустера" дворников нет
shandai ТС
Ветеран форума
******

Карма +452/-1
Offline Offline

Пол: Мужской
Сообщений: 1334

город Хабаровск

Пешеход

« Ответ #28 : 30 Марта 2009, 20:01:20 »

Задачу понял. Код резидента такого на Паскале (но почти все на языке ассемблера,на вставках, писал) есть. Завтра пример дам. Перезагрузку только добавить и временной интервал изменить.
да у меня она уже в принципе написана, и нормально работает, все устраивает, только что то из автозагрзки не хочет, работать, запускается, потом в тело кода где перезагрзка не входит, там кода осталось на 5 строчек, завра попробую выложить. Может что подскажите.
Записан

Пешеход /Был: ЗАЗ-Lanos 1.6L 109 л.с. / Был: Иж 2126 гранат 2003г, УМПО, кастрюля, КПП ОМСК, стартер от ГАЗ 53, БК-21, звуковой сигнал от ГАЗ 3110, карб (солекс) ДААЗ-21073, свечи всегда "Чемпион", NGK-плохие, укороченная ручка КПП, БСЗ, подогрев заднего стекла и правого седенья, чехлы, тонировка задка, сцепа и диск totti, выжимной Coram, резина cordiant на штамповке РР от волги (все равно не помогает), перемычка АКБ-Стартер (тоже не помогла).
Ахинеич
Мастер по разным специальностям

*******

Карма +2784/-33
Offline Offline

Пол: Мужской
Сообщений: 35273

SPB

Почётный Демагог

« Ответ #29 : 30 Марта 2009, 21:19:45 »

 Я смотрю,  тут мазохисты собрались!  yes Ну вот ни на раз не поверю, что не существует современного решения проблемы, дабы не лезть в дебри MS-DOS! Реально, глядя с иной вышки, всё выглядит иначе !
Записан

С точки зрения теории Банальных Эрудиций возможности далеко не каждого индивидуума способны игнорировать тенденции парадоксальных эмоций. Резюмируя вышесказанное, нивелируйте свои аппроксимации на ассоциации с ником!
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines

Яндекс.Метрика

Google последней посетил эту страницу 20 Октября 2024, 10:42:26