Started to incorporate notes into this project

This commit is contained in:
Jeremiah Orians 2016-05-20 21:10:56 -04:00
parent 1714bd6d8b
commit 72bb6ddc77
No known key found for this signature in database
GPG Key ID: 7457821534D2ACCD
1 changed files with 48 additions and 0 deletions

48
notes.org Normal file
View File

@ -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.