mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-21 10:56:10 +00:00
115 lines
2.9 KiB
NASM
115 lines
2.9 KiB
NASM
; Boot Record Program (C) Copyright Peter Norton 1986
|
||
|
||
boots segment 'code'
|
||
|
||
public boot
|
||
|
||
assume cs:boots
|
||
|
||
boot proc far
|
||
|
||
; 30-byte DOS info -- set up for 1-side, 8-sector
|
||
; change as needed for any other format
|
||
|
||
head:
|
||
jmp begin ; EB 2A 90 as per normal
|
||
db ' Norton ' ; 8-byte system id
|
||
dw 512 ; sector size in bytes
|
||
db 1 ; sectors per cluster
|
||
dw 1 ; reserved clusters
|
||
db 2 ; number of fats
|
||
dw 64 ; root directory entries
|
||
dw 320 ; total sectors
|
||
db 0FEh ; format id
|
||
dw 1 ; sectors per fat
|
||
dw 8 ; sectors per track
|
||
dw 1 ; sides
|
||
dw 0 ; special hidden sectors
|
||
|
||
; mysterious but apparently standard 14-byte filler
|
||
db 14 dup (0)
|
||
|
||
; carry on with the boot work
|
||
|
||
begin:
|
||
mov ax,07C0h ; boot record location
|
||
push ax
|
||
pop ds
|
||
mov bx,message_offset ; put offset to message into si
|
||
mov cx,message_length ; message length from cx
|
||
continue:
|
||
mov ah,14 ; write teletype
|
||
mov al,[bx]
|
||
push ds
|
||
push cx
|
||
push bx
|
||
int 10h
|
||
pop bx
|
||
pop cx
|
||
pop ds
|
||
inc bx
|
||
loop continue
|
||
|
||
mov ah,0 ; read next keyboard character
|
||
int 16h
|
||
|
||
mov ah,15 ; get video mode
|
||
int 10h
|
||
mov ah,0 ; set video mode (clears screen)
|
||
int 10h
|
||
|
||
int 19h ; re-boot
|
||
|
||
beg_message:
|
||
db 0Dh,0Ah ; carriage return, line-feed
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db ' Start your computer with'
|
||
db 0Dh,0Ah
|
||
db ' a DOS system diskette.'
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db ' This is'
|
||
db 0Dh,0Ah
|
||
db ' The Norton Utilities'
|
||
db 0Dh,0Ah
|
||
db ' Version 3.0'
|
||
db 0Dh,0Ah
|
||
db ' from'
|
||
db 0Dh,0Ah
|
||
db ' Peter Norton'
|
||
db 0Dh,0Ah
|
||
db ' 2210 Wilshire Blvd'
|
||
db 0Dh,0Ah
|
||
db ' Santa Monica, CA 90403'
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db ' (213) 826-8092'
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db 0Dh,0Ah
|
||
db ' Insert a DOS diskette'
|
||
db 0Dh,0Ah
|
||
db ' Press any key to start DOS ... '
|
||
end_message:
|
||
|
||
; I put a copyright notice here; you do if you want to ...
|
||
tail:
|
||
|
||
message_offset equ beg_message - head
|
||
message_length equ end_message - beg_message
|
||
filler_amount equ 512 - (tail - head) - 2
|
||
|
||
db filler_amount dup (0) ; filler
|
||
|
||
db 055h,0AAh ; boot id
|
||
|
||
boot endp
|
||
|
||
boots ends
|
||
|
||
end
|
||
|