Lines Matching +full:0 +full:x7c00
17 .set MEM_ARG,0x900 # Arguments
18 .set MEM_ORG,0x7c00 # Origin
19 .set MEM_BUF,0x8000 # Load area
20 .set MEM_BTX,0x9000 # BTX start
21 .set MEM_JMP,0x9010 # BTX entry point
22 .set MEM_USR,0xa000 # Client start
23 .set BDA_BOOT,0x472 # Boot howto flag
26 .set PRT_OFF,0x1be # Partition offset
27 .set PRT_NUM,0x4 # Partitions
28 .set PRT_BSD,0xa5 # Partition type
31 .set SIZ_PAG,0x1000 # Page size
32 .set SIZ_SEC,0x200 # Sector size
33 .set COPY_BLKS,0x8 # Number of blocks
35 .set COPY_BLK_SZ,0x8000 # Copy in 32k blocks; must be
47 * Setup the segment registers to flat addressing (segment 0) and setup the
68 mov $0x1,%cx # Two passes
70 movb $0x1,%dh # Partition
71 main.2: cmpb $PRT_BSD,0x4(%si) # Our partition type?
74 testb $0x80,(%si) # Active?
76 main.3: add $0x10,%si # Next entry
78 cmpb $0x1+PRT_NUM,%dh # In table?
96 * just load it all at 0x9000. The first part of boot2 is BTX, which wants
97 * to run at 0x9000. The boot2.bin binary starts right after the end of BTX,
99 * binary to 0xc000. Normally, BTX clients start at MEM_USR, or 0xa000,
101 * 0x2000. That entry point is relative to MEM_USR; thus boot2.bin
102 * starts at 0xc000.
108 * the client starts at 0xc000).
122 mov 0xa(%bx),%si # Get BTX length and set
128 and $0xf,%si #
160 inb $0x64,%al # Get status
161 testb $0x2,%al # Busy?
163 movb $0xd1,%al # Command: Write
164 outb %al,$0x64 # output port
165 seta20.2: inb $0x64,%al # Get status
166 testb $0x2,%al # Busy?
168 movb $0xdf,%al # Enable
169 outb %al,$0x60 # A20
186 addl 0x8(%si),%eax # LBA
187 adc $0,%ecx
192 push $0 # transfer buffer
193 push $0x1 # Read 1 sector
194 push $0x10 # Size of packet
196 mov $0x42,%ah # BIOS: Extended
197 int $0x13 # read
199 lea 0x10(%si),%sp # Clear stack
215 int $0x16 # keypress
216 movw $0x1234, BDA_BOOT # Do a warm boot
217 ljmp $0xffff,$0x0 # reboot the machine
221 putstr.0: mov $0x7,%bx # Page:attribute
222 movb $0xe,%ah # BIOS: Display
223 int $0x10 # character
226 jne putstr.0 # No
232 check_edd: cmpb $0x80,%dl # Hard drive?
234 mov $0x55aa,%bx # Magic
236 movb $0x41,%ah # BIOS: Check
237 int $0x13 # extensions present
240 cmp $0xaa55,%bx # Magic?
242 testb $0x1,%cl # Packet interface?
251 shrb $0x4,%al # Do upper
254 hex8.1: andb $0xf,%al # Get lower 4
255 cmpb $0xa,%al # Convert
256 sbbb $0x69,%al # to hex
258 orb $0x20,%al # To lower case
271 .org PRT_OFF,0x90
275 .fill 0x30,0x1,0x0
276 part4: .byte 0x80, 0x00, 0x01, 0x00
277 .byte 0xa5, 0xfe, 0xff, 0xff
278 .byte 0x00, 0x00, 0x00, 0x00
279 .byte 0x50, 0xc3, 0x00, 0x00 # 50000 sectors long, bleh
281 .word 0xaa55 # Magic number