mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-04-05 07:45:07 +01:00
BIOSTotalMem function rewritten
FPS changed from 60 to 30 (temporarily) slight font change SYS_VBE_FINAL -> SYS_VBE_FINAL_MODE_NUM
This commit is contained in:
parent
07084cf26c
commit
8723b39969
10 changed files with 188 additions and 185 deletions
src
Binary file not shown.
Binary file not shown.
BIN
src/Kernel.BIN.C
BIN
src/Kernel.BIN.C
Binary file not shown.
|
@ -92,7 +92,7 @@ public U64 sys_font_std[256] = {
|
|||
0x003F01020C10203F,//Z
|
||||
0x003E06060606063E,//[
|
||||
0x00406030180C0603,//\
|
||||
0x003E30303030303E,//]
|
||||
0x001F18181818181F,//]
|
||||
0x0000000022361C08,//^
|
||||
0xFFFF000000000000,//_
|
||||
0x000000000030180C,//`
|
||||
|
@ -121,7 +121,7 @@ public U64 sys_font_std[256] = {
|
|||
0x0036494949410000,//w
|
||||
0x0021120C12210000,//x
|
||||
0x1E203E2121210000,//y
|
||||
0x007E0418207E0000,//z
|
||||
0x003F020C103F0000,//z
|
||||
0x003018180E181830,//{
|
||||
0x0018181818181818,//|
|
||||
0x000C18187018180C,//}
|
||||
|
@ -255,4 +255,4 @@ public U64 sys_font_std[256] = {
|
|||
0x0000003E061C301E,//ý
|
||||
0x00003C3C3C3C0000,//þ
|
||||
0xFFFFFFFFFFFFFFFF,//ÿ
|
||||
};
|
||||
};
|
|
@ -1,63 +1,61 @@
|
|||
asm {/* See $LK,"::/Doc/Boot.DD"$.
|
||||
ZenithOS starts in real, calls some BIOS
|
||||
routines, switches to 32 bit, and 64 bit mode
|
||||
and continues in $LK,"CosmiC",A="FI:::/Doc/CosmiC.DD"$ at $LK,"KMain",A="MN:KMain"$().
|
||||
ZenithOS starts in real, calls some BIOS routines, switches to 32 bit, and 64 bit mode and continues in $LK,"CosmiC",A="FI:::/Doc/CosmiC.DD"$ at $LK,"KMain",A="MN:KMain"$().
|
||||
|
||||
The boot loader jumps here in real-mode (16-bit).
|
||||
It actually jumps to the $LK,"CBinFile",A="MN:CBinFile"$ header which is
|
||||
placed just before this by $LK,"the compiler",A="FF:::/Compiler/CMain.CC,16 ALIGN"$.
|
||||
The header begins with a short jmp to
|
||||
the start of this file's code which begins
|
||||
with the following small jump past some data.
|
||||
It actually jumps to the $LK,"CBinFile",A="MN:CBinFile"$ header which is placed just before this by $LK,"the compiler",A="FF:::/Compiler/CMain.CC,16 ALIGN"$.
|
||||
The header begins with a short jmp to the start of this file's code which begins with the following small jump past some data.
|
||||
|
||||
This file is first in the Kernel image
|
||||
because it is #included first.$LK,"Kernel.PRJ",A="FF:::/Kernel/Kernel.PRJ,KStart16:1"$
|
||||
This file is first in the Kernel image because it is #included first.$LK,"Kernel.PRJ",A="FF:::/Kernel/Kernel.PRJ,KStart16:1"$
|
||||
*/
|
||||
USE16
|
||||
SYS_KERNEL:: //This must match $LK,"CKernel",A="MN:CKernel"$.
|
||||
JMP I16 CORE0_16BIT_INIT
|
||||
JMP I16 CORE0_16BIT_INIT
|
||||
|
||||
//************************************
|
||||
// ASM Global vars required for 16-bit start-up
|
||||
ALIGN 4,OC_NOP
|
||||
SYS_BOOT_SRC:: DU32 BOOT_SRC_NULL;
|
||||
SYS_BOOT_BLK:: DU32 0;
|
||||
SYS_BOOT_PATCH_TABLE_BASE:: DU32 0;
|
||||
SYS_RUN_LEVEL:: DU32 0;
|
||||
#exe {StreamPrint("SYS_COMPILE_TIME:: DU64 0x%X;",Now);} //See $LK,"BootDVDProbe",A="MN:BootDVDProbe"$
|
||||
#assert SYS_COMPILE_TIME+sizeof(CDate)+sizeof(CBinFile)<DVD_BLK_SIZE
|
||||
ALIGN 4,OC_NOP
|
||||
SYS_BOOT_SRC:: DU32 BOOT_SRC_NULL;
|
||||
SYS_BOOT_BLK:: DU32 0;
|
||||
SYS_BOOT_PATCH_TABLE_BASE:: DU32 0;
|
||||
SYS_RUN_LEVEL:: DU32 0;
|
||||
#exe
|
||||
{StreamPrint(
|
||||
"SYS_COMPILE_TIME:: DU64 0x%X;", Now);//See $LK,"BootDVDProbe",A="MN:BootDVDProbe"$
|
||||
};
|
||||
|
||||
MEM_BOOT_BASE:: DU32 0; //Offset from start used by reboot
|
||||
MEM_E801:: DU16 0,0;
|
||||
MEM_E820:: DU8 MEM_E820_ENTRIES_NUM*sizeof(CMemE820) DUP (0);
|
||||
MEM_PHYSICAL_SPACE:: DU64 0;
|
||||
SYS_GDT_PTR:: DU16 sizeof(CGDT)-1;
|
||||
DU64 0;
|
||||
SYS_PCI_BUSES:: DU16 0;
|
||||
#assert SYS_COMPILE_TIME + sizeof(CDate) + sizeof(CBinFile) < DVD_BLK_SIZE
|
||||
|
||||
ALIGN 16,OC_NOP
|
||||
MEM_BOOT_BASE:: DU32 0; //Offset from start used by reboot
|
||||
MEM_E801:: DU16 0, 0;
|
||||
MEM_E820:: DU8 MEM_E820_ENTRIES_NUM*sizeof(CMemE820) DUP (0);
|
||||
MEM_PHYSICAL_SPACE:: DU64 0;
|
||||
SYS_GDT_PTR:: DU16 sizeof(CGDT)-1;
|
||||
DU64 0;
|
||||
SYS_PCI_BUSES:: DU16 0;
|
||||
|
||||
ALIGN 16,OC_NOP
|
||||
SYS_GDT:: //See $LK,"CGDT",A="MN:CGDT"$
|
||||
GDT_NULL: DU64 0,0;
|
||||
GDT_BOOT_DS: DU64 0x00CF92000000FFFF,0; //Gets patched.
|
||||
GDT_BOOT_CS: DU64 0x00CF9A000000FFFF,0; //Gets patched.
|
||||
GDT_CS32: DU64 0x00CF9A000000FFFF,0;
|
||||
GDT_CS64: DU64 0x00209A0000000000,0; //The $LK,"Charter",A="FI:::/Doc/Charter.DD"$ says just ring0.
|
||||
GDT_CS64_RING3: DU64 0x0020FA0000000000,0; //$LK,"Ring3",A="FI:::/Demo/Lectures/Ring3.CC"$, so you can play with.
|
||||
GDT_DS: DU64 0x00CF92000000FFFF,0;
|
||||
GDT_DS_RING3: DU64 0x00CFF2000000FFFF,0;
|
||||
GDT_TR: DU8 MP_PROCESSORS_NUM*16 DUP(0);
|
||||
GDT_TR_RING3: DU8 MP_PROCESSORS_NUM*16 DUP(0);
|
||||
#assert $$-SYS_GDT==sizeof(CGDT)
|
||||
GDT_NULL: DU64 0,0;
|
||||
GDT_BOOT_DS: DU64 0x00CF92000000FFFF,0; //Gets patched.
|
||||
GDT_BOOT_CS: DU64 0x00CF9A000000FFFF,0; //Gets patched.
|
||||
GDT_CS32: DU64 0x00CF9A000000FFFF,0;
|
||||
GDT_CS64: DU64 0x00209A0000000000,0; //The $LK,"Charter",A="FI:::/Doc/Charter.DD"$ says just ring0.
|
||||
GDT_CS64_RING3: DU64 0x0020FA0000000000,0; //$LK,"Ring3",A="FI:::/Demo/Lectures/Ring3.CC"$, so you can play with.
|
||||
GDT_DS: DU64 0x00CF92000000FFFF,0;
|
||||
GDT_DS_RING3: DU64 0x00CFF2000000FFFF,0;
|
||||
GDT_TR: DU8 MP_PROCESSORS_NUM*16 DUP(0);
|
||||
GDT_TR_RING3: DU8 MP_PROCESSORS_NUM*16 DUP(0);
|
||||
#assert $$ - SYS_GDT == sizeof(CGDT)
|
||||
|
||||
SYS_VBE_INFO:: DU8 sizeof(CVBEInfo) DUP(0);
|
||||
SYS_VBE_MODES:: DU8 sizeof(CVBEModeShort) * VBE_MODES_NUM DUP(0);
|
||||
SYS_VBE_FINAL_MODE:: DU8 sizeof(CVBEMode) DUP(0);
|
||||
SYS_VBE_FINAL:: DU16 0; //mode number of final mode set
|
||||
#assert $$-SYS_KERNEL==sizeof(CKernel)-sizeof(CBinFile)
|
||||
SYS_VBE_INFO:: DU8 sizeof(CVBEInfo) DUP(0);
|
||||
SYS_VBE_MODES:: DU8 sizeof(CVBEModeShort) * VBE_MODES_NUM DUP(0);
|
||||
SYS_VBE_FINAL_MODE:: DU8 sizeof(CVBEMode) DUP(0);
|
||||
SYS_VBE_FINAL_MODE_NUM::DU16 0; //mode number of final mode set
|
||||
#assert $$ - SYS_KERNEL == sizeof(CKernel) - sizeof(CBinFile)
|
||||
|
||||
TEMP_VBE_MODE: DU8 sizeof(CVBEMode) DUP(0);
|
||||
MAX_VBE_MODE: DU8 sizeof(CVBEModeShort) DUP(0);
|
||||
MAX_SCREEN_HEIGHT: DU16 0;
|
||||
TEMP_VBE_MODE: DU8 sizeof(CVBEMode) DUP(0);
|
||||
MAX_VBE_MODE: DU8 sizeof(CVBEModeShort) DUP(0);
|
||||
MAX_SCREEN_HEIGHT: DU16 0;
|
||||
|
||||
#exe
|
||||
{StreamPrint(
|
||||
|
@ -68,42 +66,42 @@ kernel_config->screen_width, kernel_config->screen_height);
|
|||
//************************************
|
||||
CORE0_16BIT_INIT::
|
||||
//EAX is $LK,"SYS_BOOT_SRC",A="FF:::/Kernel/KStart16.CC,[SYS_BOOT_SRC]"$. (Val passed from boot blk, $LK,"BootHD",A="FF:::/Zenith/Boot/BootHD.CC,BOOT_SRC_HARDDRIVE"$, $LK,"BootDVD",A="FF:::/Zenith/Boot/BootDVD.CC,BOOT_SRC_DVD"$, & $LK,"BootRAM",A="FF:::/Zenith/Boot/BootRAM.CC,BOOT_SRC_RAM"$.)
|
||||
MOV ECX,EAX
|
||||
MOV AX, (BOOT_RAM_LIMIT-BOOT_STACK_SIZE) / 16
|
||||
MOV SS, AX
|
||||
MOV SP, BOOT_STACK_SIZE
|
||||
PUSH ECX //Will be $LK,"SYS_BOOT_SRC",A="FF:::/Kernel/KStart16.CC,[SYS_BOOT_SRC]"$. See $LK,"BootHD",A="FF:::/Zenith/Boot/BootHD.CC,BOOT_SRC_HARDDRIVE"$, $LK,"BootDVD",A="FF:::/Zenith/Boot/BootDVD.CC,BOOT_SRC_DVD"$ & $LK,"BootRAM",A="FF:::/Zenith/Boot/BootRAM.CC,BOOT_SRC_RAM"$.
|
||||
PUSH EBX
|
||||
CALL U16 GET_IP
|
||||
GET_IP: POP BX
|
||||
SUB BX,GET_IP
|
||||
SHR BX,4
|
||||
MOV AX,CS
|
||||
ADD AX,BX
|
||||
PUSH AX
|
||||
PUSH U16 @@04
|
||||
MOV ECX, EAX
|
||||
MOV AX, (BOOT_RAM_LIMIT-BOOT_STACK_SIZE) / 16
|
||||
MOV SS, AX
|
||||
MOV SP, BOOT_STACK_SIZE
|
||||
PUSH ECX //Will be $LK,"SYS_BOOT_SRC",A="FF:::/Kernel/KStart16.CC,[SYS_BOOT_SRC]"$. See $LK,"BootHD",A="FF:::/Zenith/Boot/BootHD.CC,BOOT_SRC_HARDDRIVE"$, $LK,"BootDVD",A="FF:::/Zenith/Boot/BootDVD.CC,BOOT_SRC_DVD"$ & $LK,"BootRAM",A="FF:::/Zenith/Boot/BootRAM.CC,BOOT_SRC_RAM"$.
|
||||
PUSH EBX
|
||||
CALL U16 GET_IP
|
||||
GET_IP: POP BX
|
||||
SUB BX, GET_IP
|
||||
SHR BX, 4
|
||||
MOV AX, CS
|
||||
ADD AX, BX
|
||||
PUSH AX
|
||||
PUSH U16 @@04
|
||||
RETF
|
||||
|
||||
@@04: STI
|
||||
MOV AX,CS
|
||||
MOV DS,AX
|
||||
MOV U32 [SYS_RUN_LEVEL],RLF_16BIT
|
||||
MOV AX, CS
|
||||
MOV DS, AX
|
||||
MOV U32 [SYS_RUN_LEVEL],RLF_16BIT
|
||||
|
||||
//Our variables are on the data segment, but VBE functions require ES.
|
||||
//moving DS into ES, while preserving ES
|
||||
PUSH ES
|
||||
PUSH DS
|
||||
POP ES
|
||||
PUSH ES
|
||||
PUSH DS
|
||||
POP ES
|
||||
|
||||
//Get VBE implementation information
|
||||
MOV AX, 0x4F00
|
||||
MOV DI, SYS_VBE_INFO
|
||||
MOV CVBEInfo.signature[DI], 'VBE2' //set to 'VBE2' to use VBE 2.0 functionality
|
||||
INT 0x10
|
||||
POP ES
|
||||
CMP AX, 0x004F
|
||||
JE @@05
|
||||
JMP $$ //Freeze system if VBE not supported
|
||||
MOV AX, 0x4F00
|
||||
MOV DI, SYS_VBE_INFO
|
||||
MOV CVBEInfo.signature[DI], 'VBE2' //set to 'VBE2' to use VBE 2.0 functionality
|
||||
INT 0x10
|
||||
POP ES
|
||||
CMP AX, 0x004F
|
||||
JE @@05
|
||||
JMP $$ //Freeze system if VBE not supported
|
||||
|
||||
@@05:
|
||||
|
||||
|
@ -115,101 +113,103 @@ GET_IP: POP BX
|
|||
SI <- Offset for video modes list
|
||||
*/
|
||||
//Obtain segment:offset of list of potential video modes
|
||||
MOV AX, SYS_VBE_INFO
|
||||
MOV SI, CVBEInfo.video_modes[AX]
|
||||
MOV GS, CVBEInfo.video_modes+2[AX]
|
||||
MOV DI, TEMP_VBE_MODE
|
||||
MOV DX, SYS_VBE_MODES
|
||||
MOV AX, SYS_VBE_INFO
|
||||
MOV SI, CVBEInfo.video_modes[AX]
|
||||
MOV GS, CVBEInfo.video_modes+2[AX]
|
||||
MOV DI, TEMP_VBE_MODE
|
||||
MOV DX, SYS_VBE_MODES
|
||||
|
||||
@@06: //Loop through all the mode numbers
|
||||
MOV AX, GS:[SI]
|
||||
CMP AX, 0xFFFF //FFFF signifies the end of the list
|
||||
JE @@08
|
||||
MOV AX, GS:[SI]
|
||||
CMP AX, 0xFFFF //FFFF signifies the end of the list
|
||||
JE @@08
|
||||
|
||||
ADD SI, 2 //Increment pointer to read next U16 mode
|
||||
ADD SI, 2 //Increment pointer to read next U16 mode
|
||||
|
||||
MOV CX, AX
|
||||
BTS CX, 14 //Set linear framebuffer bit in the mode number we are about to pass to the BIOS below
|
||||
PUSH ES
|
||||
PUSH DS
|
||||
POP ES
|
||||
MOV CX, AX
|
||||
BTS CX, 14 //Set linear framebuffer bit in the mode number we are about to pass to the BIOS below
|
||||
PUSH ES
|
||||
PUSH DS
|
||||
POP ES
|
||||
//Get mode information for mode number
|
||||
MOV AX, 0x4F01
|
||||
INT 0x10
|
||||
POP ES
|
||||
CMP AX, 0x004F
|
||||
JNE @@06 //if call to get mode information failed
|
||||
MOV AX, 0x4F01
|
||||
INT 0x10
|
||||
POP ES
|
||||
CMP AX, 0x004F
|
||||
JNE @@06 //if call to get mode information failed
|
||||
|
||||
//filter everything but 32-bit color
|
||||
MOV AL, CVBEMode.bpp[DI]
|
||||
CMP AL, 32
|
||||
JNE @@06
|
||||
MOV AL, CVBEMode.bpp[DI]
|
||||
CMP AL, 32
|
||||
JNE @@06
|
||||
|
||||
//Check if the mode is actually supported
|
||||
MOV AX, CVBEMode.attributes[DI]
|
||||
AND AX, 0x91 //bit 0 = supported, bit 4 = graphics mode, bit 7 = linear framebuffer
|
||||
CMP AX, 0x91
|
||||
JNE @@06
|
||||
MOV AX, CVBEMode.attributes[DI]
|
||||
AND AX, 0x91 //bit 0 = supported, bit 4 = graphics mode, bit 7 = linear framebuffer
|
||||
CMP AX, 0x91
|
||||
JNE @@06
|
||||
|
||||
// MOV AX, CVBEMode.memory_model[DI]
|
||||
// CMP AX, 4
|
||||
// JNE @@06
|
||||
// CMP AX, 6
|
||||
// JNE @@06
|
||||
//Only want memory model of packed pixel or direct color (RGB)
|
||||
// MOV AX, CVBEMode.memory_model[DI]
|
||||
// CMP AX, 4
|
||||
// JNE @@06
|
||||
// CMP AX, 6
|
||||
// JNE @@06
|
||||
//Copy information about this mode into an element of the mode array
|
||||
MOV BX, CVBEMode.height[DI]
|
||||
MOV CVBEModeShort.height[DX], BX
|
||||
CMP BX, [MAX_SCREEN_HEIGHT]
|
||||
JL @@07
|
||||
MOV [MAX_SCREEN_HEIGHT], BX
|
||||
MOV [MAX_VBE_MODE], CX
|
||||
MOV BX, CVBEMode.height[DI]
|
||||
MOV CVBEModeShort.height[DX], BX
|
||||
CMP BX, [MAX_SCREEN_HEIGHT]
|
||||
JL @@07
|
||||
|
||||
@@07: MOV AX, CVBEMode.width[DI]
|
||||
MOV CVBEModeShort.width[DX], AX
|
||||
// MOV EAX, CVBEMode.max_pixel_clock[DI]
|
||||
// MOV CVBEModeShort.max_pixel_clock[DX], EAX
|
||||
MOV [MAX_SCREEN_HEIGHT], BX
|
||||
MOV [MAX_VBE_MODE], CX
|
||||
|
||||
MOV CVBEModeShort.mode_num[DX], CX
|
||||
ADD DX, sizeof(CVBEModeShort) //next array element
|
||||
@@07: MOV AX, CVBEMode.width[DI]
|
||||
MOV CVBEModeShort.width[DX], AX
|
||||
// MOV EAX, CVBEMode.max_pixel_clock[DI]
|
||||
// MOV CVBEModeShort.max_pixel_clock[DX], EAX
|
||||
|
||||
MOV CVBEModeShort.mode_num[DX], CX
|
||||
ADD DX, sizeof(CVBEModeShort) //next array element
|
||||
|
||||
//Check if width and height match
|
||||
CMP AX, [SCREEN_WIDTH]
|
||||
JNE @@06
|
||||
CMP BX, [SCREEN_HEIGHT]
|
||||
JNE @@06
|
||||
CMP AX, [SCREEN_WIDTH]
|
||||
JNE @@06
|
||||
CMP BX, [SCREEN_HEIGHT]
|
||||
JNE @@06
|
||||
|
||||
//If we've made it here we have our mode
|
||||
MOV [SYS_VBE_FINAL], CX
|
||||
JMP @@06
|
||||
MOV [SYS_VBE_FINAL_MODE_NUM], CX
|
||||
JMP @@06
|
||||
|
||||
@@08: //End of loop
|
||||
//If there isn't a valid mode set by user through kernel config, set the mode with the biggest height.
|
||||
MOV AX, [SYS_VBE_FINAL]
|
||||
CMP AX, 0
|
||||
JNE @@09
|
||||
MOV CX, [MAX_VBE_MODE]
|
||||
MOV [SYS_VBE_FINAL], CX
|
||||
MOV AX, [SYS_VBE_FINAL_MODE_NUM]
|
||||
CMP AX, 0
|
||||
JNE @@09
|
||||
MOV CX, [MAX_VBE_MODE]
|
||||
MOV [SYS_VBE_FINAL_MODE_NUM], CX
|
||||
|
||||
@@09: PUSH ES
|
||||
PUSH DS
|
||||
POP ES
|
||||
@@09: PUSH ES
|
||||
PUSH DS
|
||||
POP ES
|
||||
//Get mode infomration for the mode we want
|
||||
MOV DI, SYS_VBE_FINAL_MODE
|
||||
MOV CX, [SYS_VBE_FINAL]
|
||||
MOV AX, 0x4F01
|
||||
INT 0x10
|
||||
POP ES
|
||||
CMP AX, 0x004F
|
||||
JNE @@10 //if called failed
|
||||
MOV DI, SYS_VBE_FINAL_MODE
|
||||
MOV CX, [SYS_VBE_FINAL_MODE_NUM]
|
||||
MOV AX, 0x4F01
|
||||
INT 0x10
|
||||
POP ES
|
||||
CMP AX, 0x004F
|
||||
JNE @@10 //if called failed
|
||||
|
||||
//Set the mode; call takes mode number in BX
|
||||
MOV AX, 0x4F02
|
||||
MOV BX, CX
|
||||
INT 0x10
|
||||
CMP AX, 0x004F
|
||||
JNE @@10
|
||||
MOV AX, 0x4F02
|
||||
MOV BX, CX
|
||||
INT 0x10
|
||||
CMP AX, 0x004F
|
||||
JNE @@10
|
||||
|
||||
BTS U32 [SYS_RUN_LEVEL],RLf_VESA
|
||||
BTS U32 [SYS_RUN_LEVEL], RLf_VESA
|
||||
@@10:
|
||||
|
||||
//Get mem maps.
|
||||
|
|
|
@ -288,7 +288,7 @@ $LK,"WIF_SELF_MS_WHEEL",A="FL:::/Kernel/KernelA.HH,1542"$
|
|||
$LK,"PutFileLink",A="FL:::/Kernel/BlkDev/DiskDirA.CC,160",BI=55$
|
||||
$LK,"BreakLock",A="FL:::/Kernel/KExcept.CC,131",BI=56$
|
||||
$LK,"CORE0_32BIT_INIT",A="FL:::/Kernel/KStart32.CC,73"$
|
||||
$LK,"CORE0_16BIT_INIT",A="FL:::/Kernel/KStart16.CC,70"$
|
||||
$LK,"CORE0_16BIT_INIT",A="FL:::/Kernel/KStart16.CC,68"$
|
||||
$LK,"CH_CTRLN",A="FL:::/Kernel/KernelA.HH,3624"$
|
||||
$LK,"PCIR_REVISION_ID",A="FL:::/Kernel/KernelA.HH,2376"$
|
||||
$LK,"CCF_KEEP_DOT",A="FL:::/Kernel/KernelA.HH,2264"$
|
||||
|
@ -386,6 +386,7 @@ $LK,"CtrlAltT",A="FL:::/Kernel/KeyDev.CC,163",BI=74$
|
|||
$LK,"IsSilent",A="FL:::/Kernel/KMisc.CC,220",BI=75$
|
||||
$LK,"CBpt",A="FL:::/Kernel/KernelA.HH,3294"$
|
||||
$LK,"CMOSR_DAY_OF_MONTH",A="FL:::/Kernel/KernelA.HH,191"$
|
||||
$LK,"SYS_VBE_FINAL_MODE_NUM",A="FL:::/Kernel/KStart16.CC,53"$
|
||||
$LK,"KBDC_DISABLE_MS",A="FL:::/Kernel/KernelA.HH,3136"$
|
||||
$LK,"HTt_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HH,782"$
|
||||
$LK,"PCIWriteU32",A="FL:::/Kernel/PCIBIOS.CC,250",BI=76$
|
||||
|
@ -440,7 +441,7 @@ $LK,"MEM_512GIG_NUM",A="FL:::/Kernel/KStart32.CC,12"$
|
|||
$LK,"SCf_INS",A="FL:::/Kernel/KernelA.HH,3660"$
|
||||
$LK,"LAPIC_LVT_ERR",A="FL:::/Kernel/KernelA.HH,643"$
|
||||
$LK,"ServerTaskCont",A="FL:::/Kernel/KTask.CC,365",BI=89$
|
||||
$LK,"Scale2Mem",A="FL:::/Kernel/Memory/MemPhysical.CC,169",BI=90$
|
||||
$LK,"Scale2Mem",A="FL:::/Kernel/Memory/MemPhysical.CC,172",BI=90$
|
||||
$LK,"RandU32",A="FL:::/Kernel/KMathB.CC,109",BI=91$
|
||||
$LK,"RandU16",A="FL:::/Kernel/KMathB.CC,98",BI=92$
|
||||
$LK,"PopCount",A="FL:::/Kernel/KernelB.HH,18"$
|
||||
|
@ -620,7 +621,7 @@ $LK,"MESSAGE_CMD",A="FL:::/Kernel/KernelA.HH,3360"$
|
|||
$LK,"SysGetI64",A="FL:::/Kernel/BlkDev/DiskAddDev.CC,179",BI=125$
|
||||
$LK,"MemSetI64",A="FL:::/Kernel/KernelB.HH,158"$
|
||||
$LK,"_R13",A="FL:::/Kernel/KernelA.HH,3568"$
|
||||
$LK,"SYS_BOOT_PATCH_TABLE_BASE",A="FL:::/Kernel/KStart16.CC,25"$
|
||||
$LK,"SYS_BOOT_PATCH_TABLE_BASE",A="FL:::/Kernel/KStart16.CC,19"$
|
||||
$LK,"_R14",A="FL:::/Kernel/KernelA.HH,3569"$
|
||||
$LK,"JOBf_FREE_ON_COMPLETE",A="FL:::/Kernel/KernelA.HH,3322"$
|
||||
$LK,"CTRLT_WIN_VSCROLL",A="FL:::/Kernel/KernelA.HH,3225"$
|
||||
|
@ -908,7 +909,7 @@ $LK,"DOCEF_QUIT",A="FL:::/Kernel/KernelA.HH,1120"$
|
|||
$LK,"Tabs2Spaces",A="FL:::/Kernel/StrB.CC,1",BI=180$
|
||||
$LK,"MaxI64",A="FL:::/Kernel/KernelB.HH,84"$
|
||||
$LK,"DriveSerialNum",A="FL:::/Kernel/BlkDev/DiskDrive.CC,288",BI=181$
|
||||
$LK,"SYS_GDT_PTR",A="FL:::/Kernel/KStart16.CC,34"$
|
||||
$LK,"SYS_GDT_PTR",A="FL:::/Kernel/KStart16.CC,32"$
|
||||
$LK,"_RSP",A="FL:::/Kernel/KernelA.HH,3561"$
|
||||
$LK,"DOCT_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HH,1059"$
|
||||
$LK,"WinDerivedValsUpdate",A="FL:::/Kernel/Display.CC,89",BI=182$
|
||||
|
@ -981,7 +982,7 @@ $LK,"SCF_CTRL",A="FL:::/Kernel/KernelA.HH,3666"$
|
|||
$LK,"SCf_CTRL",A="FL:::/Kernel/KernelA.HH,3651"$
|
||||
$LK,"TK_ENDIF",A="FL:::/Kernel/KernelA.HH,2233"$
|
||||
$LK,"RT_UF32",A="FL:::/Kernel/KernelA.HH,1694"$
|
||||
$LK,"Seg2Linear",A="FL:::/Kernel/Memory/MemPhysical.CC,183",BI=207$
|
||||
$LK,"Seg2Linear",A="FL:::/Kernel/Memory/MemPhysical.CC,186",BI=207$
|
||||
$LK,"CCF_NO_REG_OPT",A="FL:::/Kernel/KernelA.HH,2270"$
|
||||
$LK,"DOCEf_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1170"$
|
||||
$LK,"DOCEF_UNDERLINE",A="FL:::/Kernel/KernelA.HH,1164"$
|
||||
|
@ -1110,7 +1111,7 @@ $LK,"SC_DELETE",A="FL:::/Kernel/KernelA.HH,3701"$
|
|||
$LK,"MESSAGE_KEY_DOWN",A="FL:::/Kernel/KernelA.HH,3361"$
|
||||
$LK,"CAOTHeapGlobalRef",A="FL:::/Kernel/KernelA.HH,2112"$
|
||||
$LK,"CLine",A="FL:::/Kernel/EdLite.CC,1"$
|
||||
$LK,"SYS_VBE_FINAL_MODE",A="FL:::/Kernel/KStart16.CC,54"$
|
||||
$LK,"SYS_VBE_FINAL_MODE",A="FL:::/Kernel/KStart16.CC,52"$
|
||||
$LK,"REGT_SEG",A="FL:::/Kernel/KernelA.HH,863"$
|
||||
$LK,"CMass",A="FL:::/Kernel/KernelA.HH,228"$
|
||||
$LK,"GetStr",A="FL:::/Kernel/SerialDev/Message.CC,193",BI=233$
|
||||
|
@ -1362,7 +1363,7 @@ $LK,"CCF_HAS_RETURN",A="FL:::/Kernel/KernelA.HH,2274"$
|
|||
$LK,"CAsmArg",A="FL:::/Kernel/KernelA.HH,1974"$
|
||||
$LK,"CD3",A="FL:::/Kernel/KernelA.HH,157"$
|
||||
$LK,"QueueRemove",A="FL:::/Kernel/KernelB.HH,57"$
|
||||
$LK,"SYS_BOOT_BLK",A="FL:::/Kernel/KStart16.CC,24"$
|
||||
$LK,"SYS_BOOT_BLK",A="FL:::/Kernel/KStart16.CC,18"$
|
||||
$LK,"MEM_E820t_USABLE",A="FL:::/Kernel/KernelA.HH,389"$
|
||||
$LK,"progress4_desc",A="FL:::/Kernel/KernelB.HH,210"$
|
||||
$LK,"RFLAGf_ZERO",A="FL:::/Kernel/KernelA.HH,342"$
|
||||
|
@ -1506,7 +1507,7 @@ $LK,"ARGT_UIMM8",A="FL:::/Kernel/KernelA.HH,2017"$
|
|||
$LK,"WIf_SELF_MS_R",A="FL:::/Kernel/KernelA.HH,1569"$
|
||||
$LK,"DOCF_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HH,1405"$
|
||||
$LK,"DOCEf_LEFT_MACRO",A="FL:::/Kernel/KernelA.HH,1179"$
|
||||
$LK,"SYS_GDT",A="FL:::/Kernel/KStart16.CC,39"$
|
||||
$LK,"SYS_GDT",A="FL:::/Kernel/KStart16.CC,37"$
|
||||
$LK,"JOBf_WAKE_MASTER",A="FL:::/Kernel/KernelA.HH,3314"$
|
||||
$LK,"CDate2Dos",A="FL:::/Kernel/BlkDev/FileSysFAT.CC,1",BI=315$
|
||||
$LK,"SEMA_DEBUG",A="FL:::/Kernel/KernelA.HH,726"$
|
||||
|
@ -1546,7 +1547,7 @@ $LK,"DOCEF_DEFAULT_LEN",A="FL:::/Kernel/KernelA.HH,1144"$
|
|||
$LK,"OFF",A="FL:::/Kernel/KernelA.HH,23"$
|
||||
$LK,"DOCF_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HH,1407"$
|
||||
$LK,"FifoI64Remove",A="FL:::/Kernel/KDataTypes.CC,275",BI=326$
|
||||
$LK,"SYS_BOOT_SRC",A="FL:::/Kernel/KStart16.CC,23"$
|
||||
$LK,"SYS_BOOT_SRC",A="FL:::/Kernel/KStart16.CC,17"$
|
||||
$LK,"FUF_JUST_SRC",A="FL:::/Kernel/KernelA.HH,2757"$
|
||||
$LK,"FUf_JUST_SRC",A="FL:::/Kernel/KernelA.HH,2729"$
|
||||
$LK,"OC_CALL",A="FL:::/Kernel/KernelA.HH,1890"$
|
||||
|
@ -1889,7 +1890,7 @@ $LK,"OC_NOP2",A="FL:::/Kernel/KernelA.HH,1892"$
|
|||
$LK,"DOCT_RIGHT_MARGIN",A="FL:::/Kernel/KernelA.HH,1031"$
|
||||
$LK,"FifoU8Count",A="FL:::/Kernel/KDataTypes.CC,227",BI=408$
|
||||
$LK,"PUT_HEX_U64",A="FL:::/Kernel/StrA.CC,23"$
|
||||
$LK,"SYS_KERNEL",A="FL:::/Kernel/KStart16.CC,17"$
|
||||
$LK,"SYS_KERNEL",A="FL:::/Kernel/KStart16.CC,11"$
|
||||
$LK,"RFLAGf_PARITY",A="FL:::/Kernel/KernelA.HH,340"$
|
||||
$LK,"DriveEnable",A="FL:::/Kernel/BlkDev/DiskAddDev.CC,170",BI=409$
|
||||
$LK,"SYS_PROGRESS4_MAX",A="FL:::/Kernel/KStart32.CC,55"$
|
||||
|
@ -1928,7 +1929,7 @@ $LK,"DOCG_BL_IV_UL",A="FL:::/Kernel/KernelA.HH,1071"$
|
|||
$LK,"HashSingleTableFind",A="FL:::/Kernel/KHashA.CC,257"$
|
||||
$LK,"mem_heap_base",A="FL:::/Kernel/KernelB.HH,175"$
|
||||
$LK,"sys_data_bp",A="FL:::/Kernel/KernelB.HH,172"$
|
||||
$LK,"SYS_PCI_BUSES",A="FL:::/Kernel/KStart16.CC,36"$
|
||||
$LK,"SYS_PCI_BUSES",A="FL:::/Kernel/KStart16.CC,34"$
|
||||
$LK,"_CLAMP_I64",A="FL:::/Kernel/KUtils.CC,130"$
|
||||
$LK,"BDf_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HH,2788"$
|
||||
$LK,"Spaces2Tabs",A="FL:::/Kernel/StrA.CC,472",BI=415$
|
||||
|
@ -2098,7 +2099,6 @@ $LK,"ISOInit",A="FL:::/Kernel/BlkDev/DiskCDDVD.CC,1",BI=455$
|
|||
$LK,"DriveCheck",A="FL:::/Kernel/BlkDev/DiskDrive.CC,142",BI=456$
|
||||
$LK,"sys_font_std",A="FL:::/Kernel/FontStd.CC,1"$
|
||||
$LK,"MDF_NULL",A="FL:::/Kernel/KernelA.HH,1708"$
|
||||
$LK,"SYS_VBE_FINAL",A="FL:::/Kernel/KStart16.CC,55"$
|
||||
$LK,"char_bmp_alpha",A="FL:::/Kernel/StrA.CC,325"$
|
||||
$LK,"fat_long_name_map",A="FL:::/Kernel/BlkDev/FileSysFAT.CC,171"$
|
||||
$LK,"CCF_NO_ABSS",A="FL:::/Kernel/KernelA.HH,2291"$
|
||||
|
@ -2139,11 +2139,11 @@ $LK,"TaskDerivedValsUpdate",A="FL:::/Kernel/KTask.CC,283",BI=462$
|
|||
$LK,"MouseHardReset",A="FL:::/Kernel/SerialDev/Mouse.CC,114",BI=463$
|
||||
$LK,"_HASH_ADD",A="FL:::/Kernel/KHashA.CC,170"$
|
||||
$LK,"zenith_task",A="FL:::/Kernel/KGlobals.CC,8"$
|
||||
$LK,"MEM_E801",A="FL:::/Kernel/KStart16.CC,31"$
|
||||
$LK,"MEM_E801",A="FL:::/Kernel/KStart16.CC,29"$
|
||||
$LK,"__TIME__",A="FL:::/Kernel/KernelA.HH,2154"$
|
||||
$LK,"RLf_PATCHED",A="FL:::/Kernel/KernelA.HH,545"$
|
||||
$LK,"MEM_E820_ENTRIES_NUM",A="FL:::/Kernel/KernelA.HH,388"$
|
||||
$LK,"MEM_E820",A="FL:::/Kernel/KStart16.CC,32"$
|
||||
$LK,"MEM_E820",A="FL:::/Kernel/KStart16.CC,30"$
|
||||
$LK,"ACD_WORD_FILENAME",A="FL:::/Kernel/KernelA.HH,1628"$
|
||||
$LK,"ATTRf_BLINK",A="FL:::/Kernel/KernelA.HH,1014"$
|
||||
$LK,"ATTRF_BLINK",A="FL:::/Kernel/KernelA.HH,1009"$
|
||||
|
@ -2197,7 +2197,7 @@ $LK,"OPTf_TRACE",A="FL:::/Kernel/KernelA.HH,1665"$
|
|||
$LK,"HTG_FLAGS_MASK",A="FL:::/Kernel/KernelA.HH,830"$
|
||||
$LK,"DirFilesSort",A="FL:::/Kernel/BlkDev/DiskDirA.CC,89",BI=473$
|
||||
$LK,"SYS_PROGRESS1_T0",A="FL:::/Kernel/KStart32.CC,41"$
|
||||
$LK,"SYS_RUN_LEVEL",A="FL:::/Kernel/KStart16.CC,26"$
|
||||
$LK,"SYS_RUN_LEVEL",A="FL:::/Kernel/KStart16.CC,20"$
|
||||
$LK,"SCF_SCROLL",A="FL:::/Kernel/KernelA.HH,3670"$
|
||||
$LK,"SCf_SCROLL",A="FL:::/Kernel/KernelA.HH,3655"$
|
||||
$LK,"ClusAlloc",A="FL:::/Kernel/BlkDev/DiskClus.CC,128",BI=474$
|
||||
|
@ -2254,7 +2254,7 @@ $LK,"RS_ATTR_DIR",A="FL:::/Kernel/KernelA.HH,2677"$
|
|||
$LK,"CCF_POSTDEC",A="FL:::/Kernel/KernelA.HH,2281"$
|
||||
$LK,"MouseEnable",A="FL:::/Kernel/SerialDev/Mouse.CC,294",BI=478$
|
||||
$LK,"FileExtRemove",A="FL:::/Kernel/BlkDev/DiskStrA.CC,10",BI=479$
|
||||
$LK,"MEM_PHYSICAL_SPACE",A="FL:::/Kernel/KStart16.CC,33"$
|
||||
$LK,"MEM_PHYSICAL_SPACE",A="FL:::/Kernel/KStart16.CC,31"$
|
||||
$LK,"DirContextDel",A="FL:::/Kernel/BlkDev/DiskDirContext.CC,1",BI=480$
|
||||
$LK,"StrPrintFlags",A="FL:::/Kernel/StrB.CC,177",BI=481$
|
||||
$LK,"SYS_PROGRESS3_T0",A="FL:::/Kernel/KStart32.CC,51"$
|
||||
|
@ -2470,7 +2470,7 @@ $LK,"FUf_DEL",A="FL:::/Kernel/KernelA.HH,2715"$
|
|||
$LK,"RedSeaMkDir",A="FL:::/Kernel/BlkDev/FileSysRedSea.CC,602",BI=522$
|
||||
$LK,"PutKey",A="FL:::/Kernel/KeyDev.CC,1",BI=523$
|
||||
$LK,"_HASH_STR",A="FL:::/Kernel/KHashA.CC,120"$
|
||||
$LK,"SYS_VBE_MODES",A="FL:::/Kernel/KStart16.CC,53"$
|
||||
$LK,"SYS_VBE_MODES",A="FL:::/Kernel/KStart16.CC,51"$
|
||||
$LK,"FUf_ALL",A="FL:::/Kernel/KernelA.HH,2717"$
|
||||
$LK,"CAOTHeapGlobal",A="FL:::/Kernel/KernelA.HH,2118"$
|
||||
$LK,"QueueVectU8New",A="FL:::/Kernel/KDataTypes.CC,87",BI=524$
|
||||
|
@ -2517,7 +2517,7 @@ $LK,"Cd2DirEntry",A="FL:::/Kernel/BlkDev/DiskStrA.CC,221",BI=535$
|
|||
$LK,"DefineCount",A="FL:::/Kernel/KDefine.CC,74",BI=536$
|
||||
$LK,"IET_IMM_U0",A="FL:::/Kernel/KernelA.HH,433"$
|
||||
$LK,"sys_clip_doc",A="FL:::/Kernel/KGlobals.CC,6"$
|
||||
$LK,"SYS_VBE_INFO",A="FL:::/Kernel/KStart16.CC,52"$
|
||||
$LK,"SYS_VBE_INFO",A="FL:::/Kernel/KStart16.CC,50"$
|
||||
$LK,"ProgressBarsReset",A="FL:::/Kernel/KMisc.CC,267",BI=537$
|
||||
$LK,"BlkDevAdd",A="FL:::/Kernel/BlkDev/DiskAddDev.CC,27",BI=538$
|
||||
$LK,"MESSAGE_MS_L_DOWN_UP",A="FL:::/Kernel/KernelA.HH,3375"$
|
||||
|
@ -2717,7 +2717,7 @@ $LK,"ScreenCast",A="FL:::/Kernel/KMisc.CC,151",BI=574$
|
|||
$LK,"RedSeaInit",A="FL:::/Kernel/BlkDev/FileSysRedSea.CC,58",BI=575$
|
||||
$LK,"SC_NUM",A="FL:::/Kernel/KernelA.HH,3690"$
|
||||
$LK,"PCIR_STATUS",A="FL:::/Kernel/KernelA.HH,2375"$
|
||||
$LK,"MEM_BOOT_BASE",A="FL:::/Kernel/KStart16.CC,30"$
|
||||
$LK,"MEM_BOOT_BASE",A="FL:::/Kernel/KStart16.CC,28"$
|
||||
$LK,"PCIR_INTERRUPT_LINE",A="FL:::/Kernel/KernelA.HH,2394"$
|
||||
$LK,"IEF_DONT_SWITCH_MODES",A="FL:::/Kernel/KernelA.HH,1858"$
|
||||
$LK,"I_TIMER",A="FL:::/Kernel/KernelA.HH,324"$
|
||||
|
@ -2930,7 +2930,7 @@ ggg g&g1g5g7g7g;g+X
|
|||
3 ޤޤ®¤×¤ç¤4<đűęŤęŤţŤŽŽ(Ž0Ž8Ž@ŽCŽKŽ5$glŔQŔQČQŃQŐQ×Q6$\a<00>Q<00>Q<00>QˇQ¦Q¨Q7 ÄËËěö-2?D`„—śˇ»ĐŇěŻ8$<00><00>Ó Ó Ü ę ˙ !9 áĺţöţö÷÷ ÷:,X]X]a]j]v]<00>]‰]Ž];8ňüŰnŰnűnooo'o8o8o8oDo<8%zÜzÜ„ÜŚÜ ÜµÜ˝ÜŔÜÂÜĆÜ= …‰
|
||||
>\‹žNýNýbýpýuý{ý†ýŹýŹýźý«ýŻýÇýÎýŃýÓýöý?4Š“",<]rrrv@ rvđQđQôQůQűQA ”<00>vvzťˇB4•ž"„"„,„.„@„G„g„h„m„C@:F=V=VMVZVaVvV}V„VŤVDXl~‘h‘hŁh¦h±h¶hĂhŐhŐhŢhňhühii'i.i8iE<00>:ZAgAg[gfgkgtg‡gźg§gŻgĽgĆgÍgÔgŘgÜgçgígögúgh hhhh*hF ™ť¦¦ŞżĂG0EMňÝňÝűÝŢŢ Ţ)Ţ6Ţ;ŢH ž˘ĆĆĘŮÝITFW~~ˇ¨˛¶şľČČŇĺńôJ Ł§ŢŢâďóK ÜŕŢöŢöâöřöúöLHúŮ~Ů~ů~7=CPYZfMHëůI~I~i~v~{~‡~§~~ł~Ŕ~É~Ę~Ö~N ¨¬ööú˙O ±
|
||||
Pd}’+c+c3c7c7cFcectc}c†cťcŻc¸cżcăcěcóc˙cdQ´—ŔPRPR[RlRŹRžR©R¸RĹRŢRőRůRýRS
SS4S<SSSWS[S_SgSoSxS–S©S˛SĂSĘSĘSŰSäSR ,PKďKďSď^ďnď}ď‰ďďďÂďĘďĎďĎďöďţďđđEđQđdđlđqđŚđŽđŽđ đ đ˛đąđąđËđĐđ×đS°Ď÷ZĐZĐtĐ<00>ЎКСЪнĐ×ĐÝĐĺĐŃŃŃŃŃ#ŃAŃDŃMŃWŃuŃxŃxŃxŃ„ŃĄŃŞŃѳѳѶŃËŃÓŃÖŃčŃT Ó×ůcůcdddU0$Ľ§Ľ§Ĺ§Ĺ§Ü§˙§˙§¨VdÇÜÓmÓmámćmöműm
|
||||
nnnn&n+n-n<nGnKnQnW8\5\5v5z5}5ˆ5¥5©5®5É5X YYY)Y8YYLm|£b£b¬b±b¸b¸b×búbccc$c&c(c(cZD©¶<00>j<00>j›j²j¿j¿jÉjéjéjój[ mqØQØQÜQìQîQ\ bf¨Q¨Q¬Q¼Q¾Q]8üòãòãä
|
||||
nnnn&n+n-n<nGnKnQnW8\5\5v5z5}5ˆ5¥5©5®5É5X YYY)Y8YYLm|£b£b¬b±b¸b¸b×búbccc$c&c(c(cZD¬¹<00>j<00>j›j²j¿j¿jÉjéjéjój[ mqØQØQÜQìQîQ\ bf¨Q¨Q¬Q¼Q¾Q]8üòãòãä
|
||||
ää7ä;äAäCäCäIä^x]wcscsys€sŽsŽsšsĄs×s×sÚsÜsÜsásásăsăsăsĺsĺsĺsîsńsôst_Y&.O^g{‹ž«ľÜĺňţ
|
||||
, 1 1 > H \ i ‚ ‘ ¤ Á Ě Ô ď ú !-!9!B!G!d!m!z!‰!ž!¸!Ă!Ë!Ö!Ö!Ö!Ű!é!ô!ű!"""` {“ň“ňňżňÉňaŚËęŰCŰCäCD:DeD´DÁDĂDčDčD7EDEFEkEkE{E›E˘E§E±EŢEĺEçEěEďEb w{RRR RRc$+0ÎŕÎŕ×ŕčŕúŕ4ád¨Ci*Ż*ŻSŻXŻbŻlŻvŻ‚Ż‚ŻŠŻłŻĽŻÁŻĘŻÍŻŇŻŇŻęŻ˙Ż°°°°°E°I°Q°S°^°^°c°c°r°‚°e<$/ęęř®®®$®.®]®_®e®füłî»[»[Ď[Ţ[í[÷[\\\;\P\[\b\…\’\ \®\Ľ\Ę\ę\ŕ\ö\]]%]7]>]E]R]Y]a]q]Š]š]¦]Đ]ć]÷]÷]˙]^^g”Őöň…ň…†-†?†I†Y†a†e†i†m†u†}†Ź†ť†§†¬†Ľ†Ĺ†Ú†ŕ†ä†ö†h@lxÄŞÄŞŃŞŮŞÜŞęŞîŞňŞőŞ«
|
||||
««i\ę‡ę‡ý‡<03><0F><16><1B>%<25>6<>G<>[<5B>]<5D>x<>¨<>ż<>Ř<>ă<>ő<>‰‰4‰>‰W‰a‰z‰„‰Ź‰ť‰¤‰˛‰˛‰Ľ‰Ő‰ý‰ŠŠ$Š&Š0ŠLŠUŠ]Š{ŠjDđđ'đ<đHđSđ\đjđuđ}đ‚đk,“9“9—9Ä9ë9:;:=:l<`k|Ş|Ş‰Ş‘Ş”Ş˘Ş¦ŞŞŞ¸ŞĽŞÁŞmL™¨«š«šÇšÎšŐšášęš››››3›B›L›L›a›n8ó\ó\ ]](]B]P]Y]c]o KoŰćŰćďć˙ćç ç$ç-ç4ç:ç<çOçWçˇç|çaç±çŔçŇçŮçčçúçč
č!čAčKč%épPYië<>ë<>ý<>™
™™ ™#™)™,™1™<™B™L™q<00>&ŢŢďů)AVV_y€‘ž©°ÁËËÜäéđýrd™®&&?BPPYdil|‡Ť<00>“•™ĄsH/=>ú>úNúTú_úhúkúxú<00>ú<00>ú…ú<00>ú<00>út4ČŃV V d r z … ž Ł Ş ° u¬Ls
|
||||
|
@ -2939,14 +2939,14 @@ nnnn&n+n-n<nGnKnQnW8
|
|||
ŘŘŘ,Ř1Ř7ŘNŘSŘYŘpŘuŘ{؉؍ةؼŘĎŘÔŘăŘđŘŮŮŮ/Ů5Ů<Ů>ŮQŮkŮrـْْ٥٧ٺټŮĎŮŃŮäŮäŮÚÚÚ#Ú.ÚRÚ|`ÝńSnSnjnxn<00>n…nŚn–n¬n·nÂnÄnÉnËnĚnĚnÖn}(łą‹ü‹ü–üŞü»ü˝ü~„»í»íĂíÎíŢíííůíîî%î*î*îNî]î~î–îžî î î˛î˛îÄîËîËîÝîâîéîD¶Ăîőîőţőööö&ö5öAöAöGö€t;÷;÷K÷e÷e÷g÷g÷g÷{÷}÷}÷}÷†÷—÷ ÷±÷Ľ÷ż÷Á÷Ä÷Ć÷Ć÷Ć÷Ô÷<00>DJW‹Y‹Y Y®Y®Y¶YĚYĐYĐYÔYÜY‚¤6[<00>Š<00>Š˛ŠşŠľŠĆŠŇŠŮŠŕŠĺŠúŠ‹‹‹‹#‹(‹?‹B‹K‹Q‹T‹V‹`‹e‹|‹‹<00>‹<00>‹Ś‹š‹<00>81;6á6áDá[áfáfáqáuáuá{á„019ł—ł—Ç—Ň—ä—ě—ď—÷—…ĽKvjj/jPjbjijsjj‡j’jšjĄj˛jÖjĺjějójkkkk$k3k:k=k?kEkKkcklklkpk‰k†,ÄË6˙6˙D˙P˙g˙k˙m˙<00>˙‡D V<00>]<00>]Ş]]ł]ż]Á]Đ]×]Ý]^
^:^A^E^]^i^†^Ź^Ź^Ź^ś^Ő^á^í^ú^
__,_?_L_]_t_z_Á_Ó_``&`-`8`T`T```b`b`n`p`p`€`<00>`<00>`Ź`›`´`Ŕ`É`Ô`ę`ř`ř`ř` a"a)a0a6a9a€a<00>P,<¸“¸“Ř“ë“÷“”””*”0”5”7”P”‰4#<00>O<00>O‘O¦O¦OłOČOČOÍOŠ żĂ˙˙$˙-˙3˙‹85?©©*©F©R©V©Z©^©j©r©ŚĽ
|
||||
5h‰h‰†‰Š‰‘‰<00>‰Ą‰ł‰Ľ‰ż‰Ĺ‰Ë‰Ň‰Ů‰Ű‰ĺ‰ę‰ô‰ŠŠŠ#Š&Š)Š1Š6ŠLŠXŠ[Š^Š^Š^Š^ŠaŠiŠqŠxŠŠ‘ŠŤ0;C^^lz‚ĄľćŽÜ<00>´XpXp~p†p’p§p§p˝pĹpŐpäpäpépq
|
||||
qqq1q8qBqBqWqWqmq{q<00>q‰q”q˛qĽqżqÂqÇqŐqëqőqřqűqrr'r1r4r4r;r?rQrŹt@W@WTW[WcWkW‡W‡W•W—W—W§W©W©WąWÁWÁWĘWÖWóWóWXX X/X<00>X
›g›gĄgągĘgŐgńgôghhhh7h;h‘@Š–‰i“i›iłiłiĽiĐiÖiŕiüij’@!-ŁŁ±¶ąËŃÔÖÜ“L¬»RáRá\áeátázá‰áŹážá¤áłáąáČáÎáĐáŐá”(âčyy!y=yOyUypy•ä{°<00><00>¦ŻŇÜîńůü€€€#€0€6€C€N€S€Y€k€k€z€}€‡€Š€–€¨€µ€»€Č€Ó€Ř€Ţ€đ€đ€đ€đ€ű€ű€ <09>–8ˇ«ňŕňŕüŕáá á"á3áFáKá— Ńő#R#RBRDRURZRhR‰R—RĄR°RČRĎRŃRŃRăRéRďRńR÷RýRSSSS S&S&S&S-S>S<00>@%ę¤ę¤ţ¤ĄĄĄ>ĄIĄMĄ[Ą^ĄfĄ™Tx‰>>bess‡—˘¨łłł·Ĺš$@EVV_msx›`cw¦¦ĂÉ××ëöú%)))-9śHřęŃęŃŇ/Ň=ŇHŇLŇPŇTŇiŇsŇsŇuŇ<00>ŇťD"/ŹŹ(Ź4Ź9Ź9ŹJŹOŹOŹUŹžtąŇł7ł7»7Ě7đ7÷78,8:8H8Q8d8k8u8<00>8™8Ż8±8Ç8Ý8Ý8Ý8ß8źX{ŤSOSOlO|O”O O¬O¬OľOÄOÄOĐOÜOŢOŢOćO @"Ü"Ü1Ü9ÜMÜWÜ_ÜgÜlÜrÜtÜtÜzܡ,Úá›x›x©xĚx·xÜxâxy˘8{…ZËZË`Ë^ËnËŚË<00>˚˚ËĚŁ4MVřPřPQQEQUQaQqQtQwQ¤8>H P P®P´P»PŃPŃPŘPňPřPĄ<x<00>Z»Z»u»<00>»Š»Ž»‘»•»ś»Ŕ»Đ»¦`«ż˛„˛„¶„Í„˙„2…K…Z…i…n…t…v…§@
»˙»˙Ö˙ň˙ň˙˙˙˙˙F¨d2Ç>>>)>0>N>_>n>{>Š>ž>¶>Î>á>÷>?,?G?d?‰?Ž?§?Ľ?Ü?ó?@@;@’@c@a@±@Â@É@é@ţ@AA?A?A^AeAˇAŻABŕAŢA.B5B:BPBXBXB}BŤB®BôBÁBÉB´BCOCWCWCwCŚCC·CÎCÖCÁC*D*D*D/D/D@D[DiD<00>DšDłDÎDćDüDE"E-E-E@EYEmE‚E E¤E˘EňEFFF6FQF\FtFŠFŠFáF˛F°FGGG9GQGgGiGłG„G‚GŇGŇGŰGäGůGůG
|
||||
HH&H&H7H7H:H>H©,º‡º‡¾‡Ã‡Ý‡â‡ä‡ª,sz88<AK[[†«T—¨jjjj)jGjJjQjXjfjjjljvj~j¬4’ˆ’ˆ¦ˆµˆºˆÈˆËˆÑˆÙˆ, æøæøïøùùKùKùPù®ÈÉ÷#)#);)E)V)V)h)m)m))„)„)–)›)›))²)²)Ä)É)É)É)É)Ð)Õ)Õ)ç)ì)ì)þ)***G*\*\*n*u*|*…*”*÷*¯„a~¶â¶âºâÉâÉâØâØâçâçâöâãããã(ã#ã2ã2ãAãAãPã²ç°˜åF
|
||||
HH&H&H7H7H:H>H©,º‡º‡¾‡Ã‡Ý‡â‡ä‡ª,sz88<AK[[†«`—«jjjj$j1j<jHjOjOjVjdjhjjjtj|j¬4’ˆ’ˆ¦ˆµˆºˆÈˆËˆÑˆÙˆ, æøæøïøùùKùKùPù®ÈÉ÷#)#);)E)V)V)h)m)m))„)„)–)›)›))²)²)Ä)É)É)É)É)Ð)Õ)Õ)ç)ì)ì)þ)***G*\*\*n*u*|*…*”*÷*¯„a~¶â¶âºâÉâÉâØâØâçâçâöâãããã(ã#ã2ã2ãAãAãPã²ç°˜åF
|
||||
F
|
||||
L
|
||||
J
|
||||
Z
|
||||
۱Lt<00>Ú‚Ú‚î‚ű‚ţ‚<02><10><1B>$<24>C<>P<>Z<>^<5E>a<>s<>˛TĘŰ>ë>ëLëSë^ë<00>ëŹë™ëźë©ë®ëĽëÂëĹëË볼žÉféféxé~éŚéŚé©éłéËéĎéçéëéęęę!ę,ę5ęBęKę`ęjęwę€ę‚ę<00>ę‘ę—ęĽężę×ęçęřęüęëëëëëë8ë´”"0{0{J{i{u{<00>{Ž{ź{§{«{·{Č{Ő{Ű{Ţ{á{ä{é{ë{ď{ű{||!|$|'|*|*|4|7|I|µH .JĺJĺ_ĺkĺnĺwĺ<00>ĺ‹ĺ¨ĺ·ĺ˝ĺŔĺĚĺ¶PYi–î–îźîîîĹîŰîęîďď.ďGďcďdďiď·L–Ą†† †,†7†H†\†`†n†<00>†•†ž†Ł†µ†Ë†¸<00>Sq»Z»ZŃZÖZâZâZîZöZţZ [[[[![%[4[?[G[O[P[P[Z[ąÜ›ÎŰŰăç
)
?
R
k
‹
›
®
»
Î
ě
ő
'1AWm…ž˘¤©®·ÉĐĐâčş EIöńöńúńňň»,fm‹<>‹<>™<>ź<>«<>·<>»<>Á<>Ľ,W^[N[NiNkN}N…NŠN<00>N˝H´Â:‡:‡C‡O‡b‡m‡…‡‡‡Ť‡<00>‡ś‡ ‡Ł‡ľdĂŘŞ‡Ş‡ł‡Ë‡Ö‡ň‡ô‡
|
||||
<EFBFBD> <20>3<>I<>c<>g<>ż¬ŽµëOëOP P#P2P_PiPnPťP¤P¦P¦PµPżPĘPĎPŇPáPćPőPQQQ'Q3Q7QAQŔ€-IĂXĂXßXîXóXůXYYYY$Y$Y-Y8YJYSY^YcYhYyYYYY<00>Y‹YÁ ÷ű®÷®÷¸÷Ë÷Đ÷ÂŚ%D¨¨¨¨!¨<¨J¨O¨R¨`¨e¨„¨Ś¨¶¨ş¨Ú¨Ü¨ä¨©©2©<©C©Y©t©<00>©¬©Č©Ď©×©Ă ’–bb
|
||||
bbbļGržž¼ÃÍÒåð%*?IS][k‰£™³½×û$+7>OV]nssÅøµïã£ã£¤¤'¤-¤4¤4¤B¤Q¤X¤^¤p¤p¤ƒ¤“¤š¤©¤¼¤È¤ß¤á¤ù¤û¤þ¤¥¥¥¥¥¥¥¥&¥,¥8¥@¥e¥{¥Œ¥£¥ª¥°¥³¥É¥Æ4#,cXcXrX„XŽX¡X©X³XµXÂXÇŒ'F'ITey‘¦»ÄÉÉÙâèô.>>>QVW›È(PVvòvò„ò‹ò“ò•ò›òÉ€5ã•ã•––––#–2–F–N–T–h–w–ƒ–<00>–“–––˜–ª–¸–¼–Æ–Ê–Ó–Ù–ì–Ê$).øOøOP
P!P'PË,‚‰þÑþÑÒ'Ò2Ò8Ò;ÒCǪ̀+€’€’š’<00>’µ’À’Ð’â’æ’ô’ý’“%“%“1“<“J“T“\“`“`“`“c“e“i“i“n“|“Š“˜“<00>“Ÿ“Ÿ“µ“ÍLÝì..JVp{ˆœ¢®Î üÖ÷Ö÷Ú÷ç÷é÷Ï··ùj%kÐXÂÔz…z…ƒ…“…“…”…™…™…£…¶…Æ…Ì…Û…à…ï…ñ…ñ…ÑTWWW3WBWTWYWoWvWˆW›W®WÈWØWÝWÝWßWÒ`Huaucuku‡u<00>u£u²u·uÊuáuçuóuvvvcvÓ¬Gnëëëëóë÷ëììì-ì9ìBì^ìpì…ì®ìÀìËìêìêìíííí,í.í.í.íFíFíXí`í{í{í{í<00>í”í”í¦í¶íÔ<00> )C:C:e:<00>:µ:Ý:ë:.;q;´;¶;Ä;Ò;à;à;<"<4<D<Y<r<„<”<©<Â<É<Ð<ì<==Õ |€RRR;RERÖÀnšÃ<>Ã<>Û<>â<>ê<>ÿ<>‘‘#‘)‘)‘3‘:‘E‘J‘T‘h‘j‘u‘u‘„‘Œ‘—‘›‘ ‘¤‘¯‘µ‘¸‘»‘À‘Ç‘Ñ‘á‘×@/;2—2—P—\—i—t—€—<00>—“—–—™—«—Ø0'â™â™ð™š;šAšCšCšIšÙ<NYS?S?[?y?Š?š?«?º?Ô?ì?î?ð?Ú<00>jŠS™S™i™l™x™x™z™‡™•™š™<00>™¨™«™°™Æ™Ø™ã™ï™ù™ü™þ™šššššš"šÛ<<00>ŒHRHRVRdRiRoRRR…R¢R¨RÜ”}ž
|
||||
bbbļGržž¼ÃÍÒåð%*?IS][k‰£™³½×û$+7>OV]nssÅøµïã£ã£¤¤'¤-¤4¤4¤B¤Q¤X¤^¤p¤p¤ƒ¤“¤š¤©¤¼¤È¤ß¤á¤ù¤û¤þ¤¥¥¥¥¥¥¥¥&¥,¥8¥@¥e¥{¥Œ¥£¥ª¥°¥³¥É¥Æ4#,cXcXrX„XŽX¡X©X³XµXÂXÇŒ'F'ITey‘¦»ÄÉÉÙâèô.>>>QVW›È(PVvòvò„ò‹ò“ò•ò›òÉ€5ã•ã•––––#–2–F–N–T–h–w–ƒ–<00>–“–––˜–ª–¸–¼–Æ–Ê–Ó–Ù–ì–Ê$).øOøOP
P!P'PË,‚‰þÑþÑÒ'Ò2Ò8Ò;ÒCǪ̀+€’€’š’<00>’µ’À’Ð’â’æ’ô’ý’“%“%“1“<“J“T“\“`“`“`“c“e“i“i“n“|“Š“˜“<00>“Ÿ“Ÿ“µ“ÍLÝì..JVp{ˆœ¢®Î üÖ÷Ö÷Ú÷ç÷é÷Ϻºùj%kÐXÂÔz…z…ƒ…“…“…”…™…™…£…¶…Æ…Ì…Û…à…ï…ñ…ñ…ÑTWWW3WBWTWYWoWvWˆW›W®WÈWØWÝWÝWßWÒ`Huaucuku‡u<00>u£u²u·uÊuáuçuóuvvvcvÓ¬Gnëëëëóë÷ëììì-ì9ìBì^ìpì…ì®ìÀìËìêìêìíííí,í.í.í.íFíFíXí`í{í{í{í<00>í”í”í¦í¶íÔ<00> )C:C:e:<00>:µ:Ý:ë:.;q;´;¶;Ä;Ò;à;à;<"<4<D<Y<r<„<”<©<Â<É<Ð<ì<==Õ |€RRR;RERÖÀnšÃ<>Ã<>Û<>â<>ê<>ÿ<>‘‘#‘)‘)‘3‘:‘E‘J‘T‘h‘j‘u‘u‘„‘Œ‘—‘›‘ ‘¤‘¯‘µ‘¸‘»‘À‘Ç‘Ñ‘á‘×@/;2—2—P—\—i—t—€—<00>—“—–—™—«—Ø0'â™â™ð™š;šAšCšCšIšÙ<NYS?S?[?y?Š?š?«?º?Ô?ì?î?ð?Ú<00>jŠS™S™i™l™x™x™z™‡™•™š™<00>™¨™«™°™Æ™Ø™ã™ï™ù™ü™þ™šššššš"šÛ<<00>ŒHRHRVRdRiRoRRR…R¢R¨RÜ”}ž
|
||||
Ú
|
||||
Ú!Ú#Ú-ÚDÚDÚUÚ^ÚhÚlÚpÚwÚ~Ú‡ÚžÚžÚŁÚĄÚĄÚ©Ú«Ú«ÚŻÚ¶Ú¶Ú»ÚËÚÝÚßÚďÚÝLQ`şşşş*ş9şJşNş^şuşyşyş~şŢ$“o“ooÉoß î÷î÷ř÷řřŕ ćę&÷&÷*÷7÷9÷áÔ,]{{<00>‹™˛ÁË×âđ˙,4@HPP[]x„–ŞÜíú24FOOaaov<00><00>––›źâś$ÓKÓKŰKáKňKLL8L8LDLUL`LlLlLyL‹L<00>L·LľLĎLŮLŢLŢLŢLţLM8M=MBMăxv<00>***)*/*;*K*N*R*[*k*n*w*z*Ś*˛*ş*Ă*Ă*É*ő*ú*+
+ä ëóEóEFFFF#F5F?FDFVFkF<00>F—FFżFĆFĆFÜFéFéF˙FGGGG#G(G0Gĺ@jvnďnď<00>ď–ď§ďďŻďÄď÷ďýďýď đć0z™z™<00>™ ™Ó™Ů™Ű™Ű™á™çD‹<00>#š#šOš]šhšlšpštšxš„š‘š”š¤šč€Ďë&.9DOXn‚‹źĆÜöţ&1IT[fk<00>éLÁĐŁQŁQ˝QĐQĺQëQńQRRRRRę<00>úű”ű”•%•2•D•D•V•a•w•w•‡•‰•‰•‰•š•Ą•¬•°•¸•Ľ•Ä•Ę•Đ•Đ•Ó•á•ë|ĹĹ,Ĺ;Ĺ>Ĺ_Ĺ‚Ĺ’Ĺ»ĹËĹŘĹĆĆ$Ć4Ć:ĆJĆJĆ\Ć_ĆdĆdĆtĆzĆ}ĆáĆě8 :¤:¤H¤S¤^¤<00>¤—¤š¤Ł¤íH=KP”P”j”}”–”«”±”·”·”ż”Á”í”îL
\ËoËoÓoŢođoöoţop+p+p=pJpWp_pmp¨p¶pîpópópqqq$q3qhqoq€q†q‹q‹qťqŞq·qĽqËq˙qrrrrr'r'r4rIrOrbr†r“rŁr¨r®r»rĆrĚr×r×rÝrćrńrss%s2s?sDsDsHsasď@Zfó?ó?@@@@)@0@2@7@D@đ,™ ĘŕĘŕÓŕßŕçŕěŕńŕń("XX)XEXJXVX\Xň<ě÷<00><00>•ˇ·ŃÜíďó$;h;hDhMhShXhôdJ_¨<>¨<>¬<>˝<>Î<>í<>™%™6™@™S™f™€™’™§™´™É™í™ď™ő$ôů۔۔ä”í”ó”ř”ö
|
||||
;Y;YDYQYbY÷XŤź===#=/=5=8===C=F=K=K=X=\=_=_=e=řDÄŃNöNö]öbökö|ö}ö<00>ö“ö™öůh-<00>Ă1Ă1ë1í1ö1
|
||||
|
|
|
@ -1592,8 +1592,8 @@ class CWinMgrTimingGlobals
|
|||
I64 calc_idle_count;
|
||||
};
|
||||
|
||||
#define WINMGR_FPS (60000.0/1001)
|
||||
#define WINMGR_PERIOD (1001/60000.0)
|
||||
#define WINMGR_FPS (30000.0/1001)
|
||||
#define WINMGR_PERIOD (1001/30000.0)
|
||||
|
||||
public class CWinMgrGlobals
|
||||
{
|
||||
|
|
|
@ -276,7 +276,7 @@ public _intern IC_RDTSC I64 GetTSC(); //Get time stamp counter.
|
|||
#help_index "Graphics/VBE"
|
||||
public _extern SYS_VBE_INFO CVBEInfo sys_vbe_info;
|
||||
public _extern SYS_VBE_FINAL_MODE CVBEMode sys_vbe_mode;
|
||||
_extern SYS_VBE_FINAL U16 sys_vbe_mode_num;
|
||||
_extern SYS_VBE_FINAL_MODE_NUM U16 sys_vbe_mode_num;
|
||||
_extern SYS_VBE_MODES CVBEModeShort sys_vbe_modes[VBE_MODES_NUM];
|
||||
|
||||
#help_index ""
|
||||
|
|
|
@ -149,26 +149,29 @@ U0 UncachedAliasAlloc() //Make uncached alias for 4 lowest Gig.
|
|||
}
|
||||
|
||||
I64 BIOSTotalMem()
|
||||
{
|
||||
I64 r01,r20;
|
||||
U16 *m01=MEM_E801;
|
||||
CMemE820 *m20=MEM_E820;
|
||||
{//Returns max of either E801 or E820 mem map.
|
||||
I64 total01 = 0x100000, total20 = 0;
|
||||
U16 *mem01 = MEM_E801;
|
||||
CMemE820 *mem20 = MEM_E820;
|
||||
|
||||
r01=0x100000+m01[0]<<10+m01[1]<<16;
|
||||
r20=0;
|
||||
if (m20->type) {
|
||||
while (m20->type) {
|
||||
if (m20->type==MEM_E820t_USABLE)
|
||||
r20+=m20->len;
|
||||
m20++;
|
||||
total01 += mem01[0] * 1024; //First U16 is mem between 1MiB and 16 MiB in KiB.
|
||||
total01 += mem01[1] * 64 * 1024;//Second U16 is mem above 16MiB (until it encounters a hole) in 64KiB blocks.
|
||||
|
||||
if (mem20->type)
|
||||
{
|
||||
while(mem20->type)
|
||||
{
|
||||
if(mem20->type == MEM_E820t_USABLE)
|
||||
total20 += mem20->len;
|
||||
mem20++;
|
||||
}
|
||||
}
|
||||
return MaxI64(r01,r20);
|
||||
}
|
||||
return MaxI64(total01, total20);
|
||||
}
|
||||
|
||||
I64 Scale2Mem(I64 min,I64 max,I64 limit=2*1024*1024*1024)
|
||||
{//Helps pick DiskCache and RAMDisk sizes.
|
||||
//Can be used in $LK,"BootHDIns",A="MN:BootHDIns"$() config scripts.
|
||||
//Can be used in $LK,"BootHDIns",A="MN:BootHDIns"$() config scripts.
|
||||
I64 i;
|
||||
if (sys_data_bp)
|
||||
i=sys_data_bp->alloced_u8s;
|
||||
|
|
Binary file not shown.
Loading…
Reference in a new issue