org 0
BootOrg:
 jmp near BootStart	;0000..0002
OEMName:
 rb 8				;0003..000A
BytesPerSector:
 rw 1				;000B..000C
SectorsPerCluster:
 rb 1				;000D
ReservedSectors:
 rw 1				;000E..000F
NumberOfFATs:
 rb 1				;0010
NumRootEntries:
 rw 1				;0011..0012
TotalSectors:
 rw 1				;0013..0014
MediaDescriptor:
 rb 1				;0015
SectorsPerFAT:
 rw 1				;0016..0017
SectorsPerTrack:
 rw 1				;0018..0019
HeadsPerCylinder:
 rw 1				;001A..001B
HiddenSectors:
 rw 2				;001C..001F
TotalSectorsEx:
 rw 2				;0020..0023
DriveNumber:
 rb 1				;0024
ReservedByte:
 rb 1				;0025
ExtBootSig:
 rb 1				;0026
SerialNumber:
 rw 2				;0027..002A
VolumeLabel:
 rb 11				;002B..0035
FileSystem:
 rb 8				;0036..003D

BootStart:			;003E

 mov ax,07C0h
 mov ds,ax
 mov es,ax

 cli
 mov ss,ax
 xor sp,sp
 sti

 jmp 07C0h:BootMain

BootMain:
 mov si,BootMsg
 jmp BootLoop
BootChar:
 mov ah,0Eh
 mov bx,07h
 int 10h
BootLoop:
 lodsb
 test al,al
 jnz BootChar
BootIdle:
 cli
 hlt
 jmp $ ;unreachable

BootMsg:
 db 'Hello World!'
 db 0

 rb ((512-2)-($-$$))
 db 055h
 db 0AAh
