home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
sysutl
/
reboot.asm
< prev
next >
Wrap
Assembly Source File
|
1992-09-08
|
2KB
|
80 lines
PAGE ,132
TITLE REBOOT -- Command to Force a Reboot
%OUT History
; reboot.asm 20 Mar 85 Craig Milo Rogers at USC/ISI
; Copied from Info-IBMPC Digest V4 #34, made format changes,
; and fixed bugs. The original was by Joeseph M. Newcomer,
; based on REBOOT.SEQ in the Info-IBMPC library.
; This program reboots your IBM-PC, but omits the memory
; diagnostic. WARNING! There is code here which is very
; BIOS dependent!
; The following commands should remake this program:
; MASM REBOOT;
; LINK REBOOT;
; EXE2BIN REBOOT
; RENAME REBOOT.BIN REBOOT.COM
; DEL REBOOT.EXE
PAGE
%OUT BIOS RAM Locations
BIOSCOM SEGMENT AT 40H
ORG BIOSCOM+72H
RESET_FLAG DW ; Warm/cold restart flag.
BIOSCOM ENDS
PAGE
%OUT Start of Program and Data
; The following location (RESTART) holds the address of the
; label START in the IBMPC ROM BIOS. Jumping to START does a cold
; boot, but skips the RAM check step. Warning! The address of START
; may be different in IBM-PC clones, or even in later releases of IBM
; BIOS.
CODESEG SEGMENT 'CODE' ; Start the code segment
ASSUME CS:CODESEG
ASSUME DS:CODESEG
ORG 100H ; Beginning of code area.
BEGIN: JMP SHORT CLRBFI ; Jump around data area.
RESTART LABEL DWORD
DW 0E05BH ; IP for reboot
DW 0F000H ; CS for reboot
MSG DB 'Strike any key to REBOOT$'
PAGE
%OUT Code
CLRBFI: ; Drain typein buffer.
mov AH,1
int 16H ; ask keyboard status (Z holds result)
jz clear ; nothing pending, go on
mov AH,0
int 16H ; read character at keyboard
jmp clrbfi ; ignore it, see if any left
CLEAR:
MOV DX,OFFSET MSG ; Get address of 'Strike any key' message.
MOV AH,9 ; Print String DOS function.
INT 21H ; Call DOS.
MOV AH,8 ; Input No Echo, Wait If Needed
INT 21H ; wait for key to be struck
MOV AX,SEG BIOSCOM ; Point to BIOS data segment.
MOV DS,AX
ASSUME DS:BIOSCOM
MOV RESET_FLAG,1234H ; Set 'Warm Start' flag.
JMP RESTART ; Jump into BIOS.
CODESEG ENDS
END BEGIN