Home
Introduction
Display
Strings
Graphics
Hardware
Interrupts
File Systems
Components
ASM Editors
Real&PMode
Assemblers
Libraries
Downloads
Links
Contact Us
 















[BITS 16]
[ORG 0]

cld
mov ax,7C0h
mov ds,ax
mov ax,60h
mov es,ax
mov si,0
mov di,0
mov cx,512
rep movsb
push es
pop ds
jmp 60h:INIT

INIT:
mov ah,2h
int 16h
and al,8h
jnz ALT_ON
jmp ALT_OFF

ALT_ON:
mov ax,800h
mov es,ax
mov bx,0
mov dx,80h
mov cx,2
mov ax,203h
int 13h
jnc .OK
mov si,DISK_ERR
call MSG
jmp PAUSE
.OK:
jmp 800h:0

ALT_OFF:
mov si,1BEh
mov cx,4
.LOOP:
cmp byte [si],80h
je .OK
cmp byte [si],0
jne .ERR
add si,16
loop .LOOP
mov si,NOACTIVE
call MSG
jmp PAUSE
.ERR:
mov si,BADMPR
call MSG
jmp PAUSE

.OK:
mov ax,7C0h
mov es,ax
mov dx,word [si]
mov cx,word [si+2]
mov bx,0
mov ax,201h
int 13h
jnc .YEAH
mov si,DISK_ERR
call MSG
jmp PAUSE

.YEAH:
es cmp word [510],0AA55h
je .END
mov si,NO_0AA55h_MARK
call MSG
jmp PAUSE

.END:
push es
pop ds
jmp 0x7c0:0

RESET_FLAG:
mov si,0x1be
mov cx,4
.LOOP:
mov byte [si],0
add si,16
loop .LOOP
retn

MSG:		;display string routine
lodsb
cmp al,0
je .END
mov ah,0xe
mov bh,0
int 0x10
jmp MSG
.END:
retn

PAUSE:
mov ah,0
int 0x16

REBOOT:		;reboot the machine.
jmp 0xffff:0

NOACTIVE db 'NO ACTIVE PARTITION',0
BADMPR db 'INVALID MPR',0
DISK_ERR db 'DISK I/O ERROR',0
NO_0AA55h_MARK db 'NO 0AA55h SIGNATURE',0

times 446-($-$$) db 0

   

New Articles










 
Copyright © 2000 eFront Media, Inc.
Hosted by www.Geocities.ws

1