Yes. I've confirmed this by adding a redirect FAR jump to the start: label to force CS to zero. I behaves the same as before, going through everything and jumping to the second stage correctly.Octocontrabass wrote:Is CS 0?
Code: Select all
;;; entry - the entrypoint to the code. Make a short jump past the BPB.
entry:
jmp short redirect
nop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; FAT12 Boot Parameter Block - required by FAT12 filesystem
boot_bpb:
%include "fat-12-data.inc"
redirect:
jmp boot_base:start
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; start
;;; This is the real beginning of the code. The first order of
;;; business is clearing the interrupts, then setting the
;;; segment registers and the stack pointer.
start:
Code: Select all
;;; constants
boot_base equ 0x0000 ; the segment base:offset pair for the
boot_offset equ 0x7C00 ; boot code entrypoint