Форум: "Основная";
Текущий архив: 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.49 MB
Время: 0.039 c