Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

Turbo pascal - выключение   Найти похожие ветки 

 
hamster ©   (2004-11-29 19:40) [0]

Здравствуйте. Как в Турбо Паскале выключить или перезагрузить компьютер?


 
Anton_K ©   (2004-11-29 19:42) [1]

ИМХО, никак.


 
hamster ©   (2004-11-29 19:49) [2]

А хотя бы в Delphi?


 
NE_Mashinist   (2004-11-29 21:01) [3]

В Delphi:
if not ExitWindows(EW_RebootSystem, 0) then
  ShowMessage("Приложение не может завершить работу");
Это перезагрузка!!!


 
DrPass ©   (2004-11-29 21:59) [4]


> Это перезагрузка!!!

Да что мы говорим??? :) А у всех остальных это Log off текущего пользователя ;)


 
GanibalLector ©   (2004-11-29 23:16) [5]

Да делал пару лет назад...ща уже не помню тонкости,но точно помню,что в РОН(адреса забыл) нужно послать было чего-то и все.


 
DrPass ©   (2004-11-29 23:27) [6]

Перезагрузить - вызвать прерывание 19H.
например, так:
uses dos;
var r:registers;
...
intr($19, r);

А выключить - фантазия


 
GuAV ©   (2004-11-29 23:34) [7]

GanibalLector ©   (29.11.04 23:16) [5]
но точно помню,что в РОН(адреса забыл)


хм... а что тогда есть РОН ?


 
GuAV ©   (2004-11-29 23:37) [8]

DrPass ©   (29.11.04 23:27) [6]
А выключить - фантазия


Ну зачем же так. С APM в принципе можно работать в DOS так же как это делает Windows или Linux. И точно помню был такой бут-манагер, где одна из опций - выключить компьютер.


 
GanibalLector ©   (2004-11-29 23:37) [9]

> а что тогда есть РОН ?
регисты общего назначения

>Перезагрузить - вызвать прерывание 19H.
а может и так делал...склироз.


 
GuAV ©   (2004-11-29 23:59) [10]

GanibalLector ©   (29.11.04 23:37) [9]
регисты общего назначения


а какой тогда у регистра общего назначения, например у AX, адрес ???


 
GanibalLector ©   (2004-11-30 00:07) [11]

М-да...не так выразился.Имел ввиду это :

port[$43]:=$b6;
port[$42]:=$ff;
port[$42]:=$02;


 
GanibalLector ©   (2004-11-30 00:09) [12]

>а какой тогда у регистра общего назначения, например у AX, адрес ???
Хотя ...если говорить о микроконтроллерах,то запросто!!!Даже у аккумулятора есть адрес :О


 
GuAV ©   (2004-11-30 00:12) [13]

GanibalLector ©   (30.11.04 0:09) [12]
если говорить о микроконтроллерах


Тогда при чём здесь


>  Turbo pascal - выключение [WinXP]


?


 
GanibalLector ©   (2004-11-30 00:22) [14]

Хорошо,если я скажу : адреса переферийный уст-в вместо [5].Так наверно правильней будет...хотя неуверен.


 
hamster ©   (2004-11-30 18:09) [15]

Большое спасибо, но что значит [11] и что такое registers и intr?
Извините, что такой тупой, но в любом месте программы вставить

> intr($19, r);
,да?


 
ASMiD   (2004-11-30 18:22) [16]

intr - функция, вызывающая программное прерывание с соответствующим номером.
registers - запись, в которой хранятся значения тех самых РОН ов


 
ASMiD   (2004-11-30 18:27) [17]

А вот нашел старую книгу.
Действительно - в DOS прерывание $19 приводит к перезагрузке системы. Запись типа registers достаточно просто объявить, а прерывание тычь туда, куда тебе хочется - на то оно и прерывание.
И еще - когда разрабатывался Turbo Pascal компьютеры программно выключаться еще не умели.


 
WinLamka ©   (2004-11-30 18:41) [18]

перезагрузить оч легко
mov  al,0F0h  
out  64h,al

)


 
DrPass ©   (2004-11-30 21:21) [19]


> но в любом месте программы вставить
>
> > intr($19, r); ,да?

Ну, не в любом, а в том, в котором ты хочешь перезагружать компьютер. Кроме того, в WinXP это не сработает, конечно. Turbo Pascal генерирует программы для DOS, и запускать их нужно соответственно в DOS, а не Windows


 
VMcL ©   (2004-11-30 21:29) [20]

>>hamster ©  (29.11.04 19:40)

>Как в Турбо Паскале ... перезагрузить компьютер

procedure RebootPC(const Warm: Boolean);  assembler;
asm
               cli
               cmp     Warm, False
               je      @@1
               mov     ax, 1234h
              {$IFDEF  DPMI}
               mov     es, Seg0040
               mov     es:[0072h], ax       { Mem[$0040:$0072] := AX }
              {$ELSE}
               xor     bx, bx
               mov     es, bx
               mov     es:[0472h], ax       { Mem[$0000:$0472] := AX }
              {$ENDIF}
   @@1:        sti
               DB      $EA, $00, $00, $FF, $FF
end;


 
hamster ©   (2004-12-01 18:05) [21]

Спасибо всем!


 
naum   (2004-12-01 18:22) [22]

Выключение АТХ:
       mov ax,5301h
       sub bx,bx
       int 15h
       jb stop
       mov ax,530eh
       sub bx,bx
       int 15h
       jb stop
       mov ax,5307h
       mov bx,0001h
       mov cx,0003h
       int 15h
 stop: int 20h



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.033 c
1-1102411493
Maxuz
2004-12-07 12:24
2004.12.19
Обращение к контролам на форме при динамическом её создании...


1-1101910353
Змей
2004-12-01 17:12
2004.12.19
listview


14-1101190656
АрияРок
2004-11-23 09:17
2004.12.19
Ария - СУПЕР!!!


14-1101474424
dr Tr0jan
2004-11-26 16:07
2004.12.19
Загрузка компьютера по таймеру


1-1102403834
Checist [root]
2004-12-07 10:17
2004.12.19
Вытащить имя и пароль





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский