AtomOS icon indicating copy to clipboard operation
AtomOS copied to clipboard

[VBE] Graphics 4MB memory limit

Open amaneureka opened this issue 8 years ago • 1 comments

Buffer can be more 4 MB or very much less than 4 MB so we have to take care of size before updating the main buffer.

//File: Atomix.Kernel_H.drivers.video.VBE.cs
public static void Update()
{
#warning *4MB* is not good size
    //Copy 4MB of data from Secondary Buffer to Virtual Frame Buffer    
    Core.AssemblerCode.Add(new Mov { DestinationReg = Registers.ESI, SourceRef = "static_Field__System_Byte__Atomix_Kernel_H_drivers_video_VBE_SecondaryBuffer", SourceIndirect = true });
    Core.AssemblerCode.Add(new Mov { DestinationReg = Registers.EDI, SourceRef = "static_Field__System_Byte__Atomix_Kernel_H_drivers_video_VBE_VirtualFrameBuffer", SourceIndirect = true });
    Core.AssemblerCode.Add(new Mov { DestinationReg = Registers.ECX, SourceRef = "0x100000" });
    Core.AssemblerCode.Add(new Cli());
    Core.AssemblerCode.Add(new Literal("rep movsd"));
    Core.AssemblerCode.Add(new Sti());
}

amaneureka avatar Apr 11 '16 19:04 amaneureka

Paging.cs Function: AllocateMainBuffer and AllocateSecondayBuffer

amaneureka avatar Mar 17 '17 20:03 amaneureka