diff --git a/Zenith-latest-2021-06-17-03_05_20.iso b/Zenith-latest-2021-06-22-14_31_44.iso similarity index 99% rename from Zenith-latest-2021-06-17-03_05_20.iso rename to Zenith-latest-2021-06-22-14_31_44.iso index 2535b9f3..07007280 100755 Binary files a/Zenith-latest-2021-06-17-03_05_20.iso and b/Zenith-latest-2021-06-22-14_31_44.iso differ diff --git a/src/Demo/Graphics/32BitColor.CC b/src/Demo/Graphics/32BitColor.CC index 1ae88e74..55a41800 100755 --- a/src/Demo/Graphics/32BitColor.CC +++ b/src/Demo/Graphics/32BitColor.CC @@ -11,7 +11,13 @@ I0 Color32Demo() I64 i, j, x, y; CBGR24 color; - while (TRUE) + "\nPress any key to exit demo.\n\n"; + + Sleep(500); + + text.is_fb_busy = TRUE; + + while (!CharScan) { x = FloorI64(RandU16 % GR_WIDTH, SQUARE_SIZE + SQUARE_GAP); y = FloorI64(RandU16 % GR_WIDTH, SQUARE_SIZE + SQUARE_GAP); @@ -21,8 +27,12 @@ I0 Color32Demo() for (j = 0; j < SQUARE_SIZE; j++) DrawPixel(x + i, y + j, color); - Busy(1000); + Sleep(100); } + + text.is_fb_busy = FALSE; + LFBFlush; + } Color32Demo; \ No newline at end of file diff --git a/src/Kernel/BlkDev/DiskAHCI.CC b/src/Kernel/BlkDev/DiskAHCI.CC index 575e3780..eaa026a5 100755 --- a/src/Kernel/BlkDev/DiskAHCI.CC +++ b/src/Kernel/BlkDev/DiskAHCI.CC @@ -320,7 +320,7 @@ U8 *AHCIBufferAlign(CBlkDev *bd, U8 *user_buf, I64 buf_size, Bool write) // "Aligning buffer under 32-bit range\n"; Free(bd->prd_buf); - bd->prd_buf = MAlloc(buf_size, Fs->code_heap); + bd->prd_buf = MAlloc(buf_size, zenith_task->code_heap); Bts(&bd->flags, BDf_INTERNAL_BUF); diff --git a/src/Kernel/KernelA.HH b/src/Kernel/KernelA.HH index 793da9e9..5ac56f39 100755 --- a/src/Kernel/KernelA.HH +++ b/src/Kernel/KernelA.HH @@ -4208,6 +4208,7 @@ public class CTextGlobals U64 *font, *aux_font, screen_size, buffer_size; U8 *vga_alias; U8 border_chars[16]; + Bool is_fb_busy; }; #define FONT_WIDTH 8 diff --git a/src/Kernel/KeyDev.CC b/src/Kernel/KeyDev.CC index 149945fc..a00ad0ff 100755 --- a/src/Kernel/KeyDev.CC +++ b/src/Kernel/KeyDev.CC @@ -190,6 +190,7 @@ U0 CtrlAltT(I64) U0 CtrlAltV(I64) { LFBFlush; + text.is_fb_busy = FALSE; } U0 CtrlAltX(I64) diff --git a/src/Zenith/Gr/GrScreen.CC b/src/Zenith/Gr/GrScreen.CC index dd7550ac..5e8cce0a 100755 --- a/src/Zenith/Gr/GrScreen.CC +++ b/src/Zenith/Gr/GrScreen.CC @@ -416,6 +416,9 @@ U0 GrUpdateScreen() {//Called by the Window Manager $LK,"HERE",A="FF:::/Zenith/WinMgr.CC,GrUpdateScreen"$, 30 times a second. CDC *dc; + if (text.is_fb_busy) + return; + GrUpdateTextBG; GrUpdateTextFG; GrUpdateTasks;