diff options
Diffstat (limited to 'boot/include/bootstrap.h')
-rw-r--r-- | boot/include/bootstrap.h | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/boot/include/bootstrap.h b/boot/include/bootstrap.h deleted file mode 100644 index 103c14f..0000000 --- a/boot/include/bootstrap.h +++ /dev/null @@ -1,115 +0,0 @@ -/* -** SCCS ID: @(#)bootstrap.h 2.4 1/22/25 -** -** @file bootstrap.h -** -** @author K. Reek -** @author Warren R. Carithers, Garrett C. Smith -** -** Addresses where various stuff goes in memory. -*/ - -#ifndef BOOTSTRAP_H_ -#define BOOTSTRAP_H_ - -/* -** The boot device -*/ -#define BDEV_FLOPPY 0x00 -#define BDEV_USB 0x80 /* hard drive */ - -#define BDEV BDEV_USB /* default */ - -/* -** Bootstrap definitions -*/ -#define BOOT_SEG 0x07c0 /* 07c0:0000 */ -#define BOOT_DISP 0x0000 -#define BOOT_ADDR (BOOT_SEG << 4 + BOOT_DISP) - -#define PART2_DISP 0x0200 /* 07c0:0200 */ -#define PART2_ADDR (BOOT_SEG << 4 + PART2_DISP) - -#define SECTOR_SIZE 0x200 /* 512 bytes */ - -/* Note: this assumes the bootstrap is two sectors long! */ -#define BOOT_SIZE (SECTOR_SIZE + SECTOR_SIZE) - -#define OFFSET_LIMIT (0x10000 - SECTOR_SIZE) - -#define BOOT_SP_DISP 0x4000 /* stack pointer 07c0:4000, or 0xbc00 */ -#define BOOT_SP_ADDR (BOOT_SEG << 4 + BOOT_SP_DISP) - -#define SECTOR1_END (BOOT_ADDR + SECTOR_SIZE) -#define SECTOR2_END (BOOT_ADDR + BOOT_SIZE) - -/* -** The target program itself -*/ -#define TARGET_SEG 0x00001000 /* 1000:0000 */ -#define TARGET_ADDR 0x00010000 /* and upward */ -#define TARGET_STACK 0x00010000 /* and downward */ - -/* -** The Global Descriptor Table (0000:0500 - 0000:2500) -*/ -#define GDT_SEG 0x00000050 -#define GDT_ADDR 0x00000500 - -/* segment register values */ -#define GDT_LINEAR 0x0008 /* All of memory, R/W */ -#define GDT_CODE 0x0010 /* All of memory, R/E */ -#define GDT_DATA 0x0018 /* All of memory, R/W */ -#define GDT_STACK 0x0020 /* All of memory, R/W */ - -/* -** The Interrupt Descriptor Table (0000:2500 - 0000:2D00) -*/ -#define IDT_SEG 0x00000250 -#define IDT_ADDR 0x00002500 - -/* -** Additional I/O ports used by the bootstrap code -*/ - -// keyboard controller -#define KBD_DATA 0x60 -#define KBD_CMD 0x64 -#define KBD_STAT 0x64 - -// status register bits -#define KBD_OBSTAT 0x01 -#define KBD_IBSTAT 0x02 -#define KBD_SYSFLAG 0x04 -#define KBD_CMDDAT 0x08 - -// commands -#define KBD_P1_DISABLE 0xad -#define KBD_P1_ENABLE 0xae -#define KBD_RD_OPORT 0xd0 -#define KBD_WT_OPORT 0xd1 - -#ifdef ASM_SRC - -// segment descriptor macros for use in assembly source files -// layout: -// .word lower 16 bits of limit -// .word lower 16 bits of base -// .byte middle 8 bits of base -// .byte type byte -// .byte granularity byte -// .byte upper 8 bits of base -// we use 4K units, so we ignore the lower 12 bits of the limit -#define SEGNULL .word 0, 0, 0, 0 - -#define SEGMENT(base, limit, dpl, type) \ - .word(((limit) >> 12) & 0xffff); \ - .word((base) & 0xffff); \ - .byte(((base) >> 16) & 0xff); \ - .byte(SEG_PRESENT | (dpl) | SEG_NON_SYSTEM | (type)); \ - .byte(SEG_GRAN_4KBYTE | SEG_DB_32BIT | (((limit) >> 28) & 0xf)); \ - .byte(((base) >> 24) & 0xff) - -#endif /* ASM_SRC */ - -#endif |