flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2 |
Author |
|
revolution 12 Mar 2010, 13:17
edfed: What is at 0x90000-09ffff? I thought that was free also.
|
|||
![]() |
|
a115433 12 Mar 2010, 13:26
what addreses i can assign for memory?
what addreses are reserved for dma? |
|||
![]() |
|
smiddy 12 Mar 2010, 14:38
a115433 wrote: btw: bootloader is only 512 bytes long. where can i have extra memory? You have several options, even though the MBR is 512 bytes, you can "reserve" sectors and load them. You can use Grub (I have no experience with it, so your mileage may vary). You can write a boot loader for the file system you intend to use. I wrote one for FAT12 (floppy disc) that I use within images for the afore mentioned different computer emulators. You can (which is where I am headed) use a USB thumb drive and use FAT16 or FAT32 (or others) to load your stuff. As for a free-to-use memory map I am relying on INT 15h E820h to gather the big ticket items (if you intend on being ACPI compliant, you need to use this). You will need to be careful IF, you intend to return to realmode (or DOS) then you will want to map several items that E820h doesn't identify: realmode IVT, BDA, DDA, OSDA, EBDA, etcetera (this listing is exhaustive and spread out all over the net; you may want to target a PC subset to narrow the permutations). I just completed testing the proof of concept on a 64 bit E820 implementation. I will provide a screen shot later when I get home from work. It is a simple extension of what I provide here before. That version couldn't count past 32 bits, even though it could gather all the data. I will share it also once I get the opportunity. |
|||
![]() |
|
a115433 12 Mar 2010, 15:13
returning to real mode - hmm, i dont think its nessecary. windows implement this just for compatibility. if you think otherwise - tell me why.
int 15 is a bios handler. is it compatible with 99.99% platforms? i try it, but have 1 more question: where int 15 gather info about memory map? is it MOBO specyfic, and manufacturer provide this function so he can map pci/vga to arbitrary locations? |
|||
![]() |
|
edfed 12 Mar 2010, 15:51
revolution wrote: edfed: What is at 0x90000-09ffff? I thought that was free also. yep, sorry, i've copied it but i forgot to clear it. it is my frame buffer, but i will delete it, and allocate it in a later upgrade of fool. and for 7e00h, it is because the original versin had a resolution of 256 bytes. idem for IVT the map is in 512 bytes resolution. [edit] problems solved, then, you can copy paste and use the map as is. with this macro of course, because bit directive doesn't exist! thanks revolution! Code: ; Bit ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; macro Bit [b] { common local .bit,.byte .bit=1 .byte=0 forward if b <> 0 .byte=.byte+.bit end if .bit=.bit+.bit if .bit>255 db .byte .byte=0 .bit=1 end if common if .bit>1 db .byte end if } |
|||
![]() |
|
Goto page Previous 1, 2 < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.