; 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