From 72bb6ddc77b137f639cbc6c515b37e2bc0a4c8cc Mon Sep 17 00:00:00 2001 From: Jeremiah Orians Date: Fri, 20 May 2016 21:10:56 -0400 Subject: [PATCH] Started to incorporate notes into this project --- notes.org | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 notes.org diff --git a/notes.org b/notes.org new file mode 100644 index 0000000..047db0e --- /dev/null +++ b/notes.org @@ -0,0 +1,48 @@ +* Platform specific information +** 8086 +*** Default memory map +16-bit mem map (seg:off) +0x0000:0x0000 -> 0x0000:0x0500 BIOS stuff +0x0000:0x0500 -> 0x0000:0x2100 root +0x0000:0x2100 -> 0x0000:0x3300 fat +0x0000:0x3300 -> 0x0000:0x6c00 14,25kb free space +0x0000:0x6c00 -> 0x0000:0x7c00 IDT and GDT (256 desc. eatch) +0x0000:0x7c00 -> 0x0000:0x7e00 bootsector +0x0000:0x7e00 <- 0x0000:0xffff ~32,5kb stack for boot +0x1000:0x0000 -> 0x9000:0xffff 576kb free space +0xa000:0x0000 -> ............. VGA mem etc. + +*** Restart code +To restart the segment loaded from the bootsector: +68007C ; push 7C00 +C3 ; ret + +For an intersegment restart: +6A00 ; push 0 +68007C ; push 7C00 +CF ; iret + +* Testing notes +** Making blank floppy disk images +dd if=/dev/zero of=$filename.img count=1440 bs=1k + +** Changing floppies inside of qemu +While qemu is running it is possible to change floppies +To achieve this you first must enter the qemu monitor by pressing: +Ctrl-Alt-Shift-2 + +You then may change the floppy by typing: +change $drivename $filename + +for example to use the file blank_floppy.img in the A drive: +change floppy0 blank_floppy.img + +** Building binaries for testing +*** stage0_monitor +There are literally hundreds of ways of building the root bootstrap binary. +All that is required is a simply hex compiler written in any language on +any system available to the user. +This repository contains a hex compiler written for linux in hex and assembly as +well as a platform independent C implementation. +Then to complete the build process write to the master boot record of a floppy disk. +Or should you desire simply use qemu to boot the compiled file directly.