News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

About how to boot from first HDD

Started by dadagou, November 11, 2009, 01:30:55 AM

Previous topic - Next topic

MichaelW

This modified code assembled and linked with /TINY produces a 7-byte COM file:

real16seg segment
org 7c00h
entry:
mov ax, offset entry
boot: jmp go
go:   jmp go
real16seg ends
end entry


I added code to demonstrate that the ORG 7c00h is working as intended:

0B10:0000 B8007C        MOV     AX,7C00
0B10:0003 EB00          JMP     0005
0B10:0005 EBFE          JMP     0005

eschew obfuscation

FORTRANS

Quote from: dedndave on November 11, 2009, 11:28:21 AM
so, until some code is executed to know how much memory is available, you are supposed to keep things small
nowdays, of course, everyone has oodles of ram, by comparison
keep in mind that 0000:0000 to 0000:03FF is the interrupt vector table
and the BIOS data area is at 0000:0400 (i forget how big it is - not very)

   About 256 bytes.  "The Undocumented PC" also has one
more byte at 0000:0500 as a print screen status byte.  There
can be an extended BIOS data area elsewhere in memory,
usually right before the video memory.

Quotein the BIOS data area is a word that tells how many pages of ram there are
also, the kb buffer, serial/parallel ports, etc

   It is a word at 40:13 that shows the memory in 1024 byte
blocks/pages.  for 640 k it is 280H.  Good old unaligned data.

Regards,

Steve N.