convert MBR, VBR, & Stage2 to use a BSS section. #3

Merged
Nivirx merged 25 commits from bss-setup into trunk 2024-10-13 18:05:19 -04:00
2 changed files with 24 additions and 28 deletions
Showing only changes of commit 5a74cd86ad - Show all commits

View File

@@ -43,13 +43,6 @@
; 0x0000000100000000 ??? ??? (whatever exists) RAM -- free for use (PAE/64bit)/More Extended memory
; ???????????????? ??? ??? Potentially usable for memory mapped PCI devices in modern hardware (but typically not, due to backward compatibility)
; 0x2700 -> 0x28FF
%define disk_buffer 0x2700
; 0x2900 -> 0x2AFF
%define fat_buffer 0x2900
; 0x2B00 -> 0x2CFF
%define dir_buffer 0x2B00
; copy of partition table, 72 bytes
%define partition_table 0x3000
%define partition_table_SIZE 72
@@ -64,15 +57,6 @@
%define fat32_ebpb 0x306E
%define fat32_ebpb_SIZE 54
; FAT32 FSInfo, 512 bytes
;0x30A2
%define fat32_fsinfo 0x30B0
%define fat32_fsinfo_SIZE 512
; some stored state for the fat32 driver
;0x32A2
%define fat32_state 0x34B0
%define fat32_state_SIZE 32
; next free space is 0x32D0
%define fat32_nc_data 0x35D0
@@ -81,14 +65,6 @@
; lba_packet for raw_disk_read
%define lba_packet 0x4000
%define BIOSMemoryMap 0x4200
%define SteviaInfo 0x5200
; High memory addresses for loading kernel (for use with unreal mode and 32bit override)
; file load buffer at 16MB
%define HMEM_load_buffer 0x1000000
;PhysicalAddress = Segment * 16 + Offset
@@ -104,6 +80,10 @@
; Segement = linear >> 4 (top 16 bits)
; offset = linear & 0x0F (low 4 bits)
struc EarlyBootStruct_t
.lba_packet_offset resw 1
endstruc
; 20 bytes, passed to loaded kernel
struc SteviaInfoStruct_t
.MemoryMapPtr resd 1

View File

@@ -472,8 +472,24 @@ STAGE2_SIG: dd 0xDEADBEEF ; Signature to mark the end of the stage
section .bss follows=.sign
align 512
begin_bss:
buffer1 resb 512
buffer2 resb 512
buffer3 resb 512
buffer4 resb 512
disk_buffer resb 512
fat_buffer resb 512
dir_buffer resb 512
fat_fsinfo resb 512
fat32_state resb FAT32_State_t_size
%define BIOSMemoryMap_SIZE 4096
BIOSMemoryMap resb 4096
SteviaInfo resd 4
align 16
stack_bottom:
stack resb 4096
stack_top:
end_bss: