mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-06-07 00:04:48 +00:00
using da VGA ROM font. Removed cyrillic font.
Add Seg2Linear function.
This commit is contained in:
parent
0ce07bc158
commit
abea367056
Binary file not shown.
Binary file not shown.
@ -69,7 +69,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
|
||||
|
||||
* Use $FG,2$<CTRL-ALT-a>$FG$ to enter an extended ASCII char.
|
||||
|
||||
* Use $FG,2$<CTRL-ALT-f>$FG$ to toggle between $LK,"Std Font",A="FI:::/Kernel/FontStd.CC"$ and $LK,"Cyrillic Font",A="FI:::/Kernel/FontCyrillic.CC"$.
|
||||
* Use $FG,2$<CTRL-ALT-f>$FG$ to toggle between $LK,"VGA ROM Font",A="MN:SYS_FONT_PTR"$ and $LK,"Std Font",A="FI:::/Kernel/FontStd.CC"$
|
||||
|
||||
* Use $FG,2$<CTRL-ALT-s>$FG$ will capture the screen as a sprite on the clip. You can save the cmd line doc as text with $FG,2$<CTRL-a>$FG$.
|
||||
|
||||
|
BIN
src/Kernel.BIN.C
BIN
src/Kernel.BIN.C
Binary file not shown.
@ -1,132 +0,0 @@
|
||||
//See $LK,"::/Doc/Credits.DD"$.
|
||||
|
||||
U64 sys_font_cyrillic[256]= {
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x000000FF00000000,0x000000FF00FF0000,//ÄÍ
|
||||
0x1818181818181818,0x6C6C6C6C6C6C6C6C,//³º
|
||||
0x181818F800000000,0x6C6C6CEC0CFC0000,//ÚÉ
|
||||
0x1818181F00000000,0x6C6C6C6F607F0000,//¿»
|
||||
0x000000F818181818,0x000000FC0CEC6C6C,//ÀÈ
|
||||
0x0000001F18181818,0x0000007F606F6C6C,//Ù¼
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0000000000000000,
|
||||
0x0000000000000000,0x0008000000000000,//
|
||||
0x0000000000000000,0x00180018183C3C18,// !
|
||||
0x0000000000363636,0x006C6CFE6CFE6C6C,//"#
|
||||
0x00187ED07C16FC30,0x0060660C18306606,//$$%
|
||||
0x00DC66B61C36361C,0x0000000000181818,//&'
|
||||
0x0030180C0C0C1830,0x000C18303030180C,//()
|
||||
0x0000187E3C7E1800,0x000018187E181800,//*+
|
||||
0x0C18180000000000,0x000000007E000000,//,-
|
||||
0x0018180000000000,0x0000060C18306000,//./
|
||||
0x003C666E7E76663C,0x007E181818181C18,//01
|
||||
0x007E0C183060663C,0x003C66603860663C,//23
|
||||
0x0030307E363C3830,0x003C6660603E067E,//45
|
||||
0x003C66663E060C38,0x000C0C0C1830607E,//67
|
||||
0x003C66663C66663C,0x001C30607C66663C,//89
|
||||
0x0018180018180000,0x0C18180018180000,//:;
|
||||
0x0030180C060C1830,0x0000007E007E0000,//<=
|
||||
0x000C18306030180C,0x001800181830663C,//>?
|
||||
0x003C06765676663C,0x006666667E66663C,//@A
|
||||
0x003E66663E66663E,0x003C66060606663C,//BC
|
||||
0x001E36666666361E,0x007E06063E06067E,//DE
|
||||
0x000606063E06067E,0x003C66667606663C,//FG
|
||||
0x006666667E666666,0x007E18181818187E,//HI
|
||||
0x001C36303030307C,0x0066361E0E1E3666,//JK
|
||||
0x007E060606060606,0x00C6C6D6D6FEEEC6,//LM
|
||||
0x006666767E6E6666,0x003C66666666663C,//NO
|
||||
0x000606063E66663E,0x006C36566666663C,//PQ
|
||||
0x006666363E66663E,0x003C66603C06663C,//RS
|
||||
0x001818181818187E,0x003C666666666666,//TU
|
||||
0x00183C6666666666,0x00C6EEFED6D6C6C6,//VW
|
||||
0x0066663C183C6666,0x001818183C666666,//XY
|
||||
0x007E060C1830607E,0x003E06060606063E,//Z[
|
||||
0x00006030180C0600,0x007C60606060607C,//\]
|
||||
0x000000000000663C,0xFFFF000000000000,//^_
|
||||
0x000000000030180C,0x007C667C603C0000,//`a
|
||||
0x003E6666663E0606,0x003C6606663C0000,//bc
|
||||
0x007C6666667C6060,0x003C067E663C0000,//de
|
||||
0x000C0C0C3E0C0C38,0x3C607C66667C0000,//fg
|
||||
0x00666666663E0606,0x003C1818181C0018,//hi
|
||||
0x0E181818181C0018,0x0066361E36660606,//jk
|
||||
0x003C18181818181C,0x00C6D6D6FE6C0000,//lm
|
||||
0x00666666663E0000,0x003C6666663C0000,//no
|
||||
0x06063E66663E0000,0xE0607C66667C0000,//pq
|
||||
0x000606066E360000,0x003E603C067C0000,//rs
|
||||
0x00380C0C0C3E0C0C,0x007C666666660000,//tu
|
||||
0x00183C6666660000,0x006CFED6D6C60000,//vw
|
||||
0x00663C183C660000,0x3C607C6666660000,//xy
|
||||
0x007E0C18307E0000,0x003018180E181830,//z{
|
||||
0x0018181818181818,0x000C18187018180C,//|}
|
||||
0x000000000062D68C,0xFFFFFFFFFFFFFFFF,//~
|
||||
0x1E30181E3303331E,0x007E333333003300,//€<>
|
||||
0x001E033F331E0038,0x00FC667C603CC37E,//‚ƒ
|
||||
0x007E333E301E0033,0x007E333E301E0007,//„…
|
||||
0x007E333E301E0C0C,0x3C603E03033E0000,//†‡
|
||||
0x003C067E663CC37E,0x001E033F331E0033,//ˆ‰
|
||||
0x001E033F331E0007,0x001E0C0C0C0E0033,//Š‹
|
||||
0x003C1818181C633E,0x001E0C0C0C0E0007,//Œ<>
|
||||
0x00333F33331E0C33,0x00333F331E000C0C,//Ž<>
|
||||
0x003F061E063F0038,0x00FE33FE30FE0000,//<2F>‘
|
||||
0x007333337F33367C,0x001E33331E00331E,//’“
|
||||
0x001E33331E003300,0x001E33331E000700,//”•
|
||||
0x007E33333300331E,0x007E333333000700,//–—
|
||||
0x1F303F3333003300,0x001C3E63633E1C63,//˜™
|
||||
0x001E333333330033,0x18187E03037E1818,//š›
|
||||
0x003F67060F26361C,0x000C3F0C3F1E3333,//œ<>
|
||||
0x70337B332F1B1B0F,0x0E1B18187E18D870,//žŸ
|
||||
0x000F11110F01111F,0x000101010101111F,// ¡
|
||||
0x000F0107010F000A,0x001515150E151515,//¢£
|
||||
0x000F10100E10100F,0x0011111315191111,//¤¥
|
||||
0x001113151911040A,0x001215141414141E,//¦§
|
||||
0x001111111111111F,0x000102040A111111,//¨©
|
||||
0x00040E1515150E04,0x001010101E111111,//ª«
|
||||
0x001F151515151515,0x000E12120E020203,//¬
|
||||
0x0013151513111111,0x000E11101C10110E,//®¯
|
||||
0x0009151517151509,0x001112141E11111E,//°±
|
||||
0x000E11110F010618,0x0007090709070000,//²³
|
||||
0x00010101111F0000,0x000E011F110E000A,//´µ
|
||||
0x0015150E15150000,0x000F100C100F0000,//¶·
|
||||
0x0011131519110000,0x0013151911040A00,//¸¹
|
||||
0x0009050305090000,0x00121514141E0000,//º»
|
||||
0x001111151B110000,0x0011111F11110000,//¼½
|
||||
0x00111111111F0000,0x00040404041F0000,//¾¿
|
||||
0x0010101E11110000,0x001F151515150000,//ÀÁ
|
||||
0x000E120E02030000,0x0013151311110000,//ÂÃ
|
||||
0x0007090701010000,0x000E111C110E0000,//ÄÅ
|
||||
0x0009151715090000,0x0012141E111E0000,//ÆÇ
|
||||
0x0004120912040000,0x0004091209040000,//ÈÉ
|
||||
0x001B091200000000,0x000000000009121B,//ÊË
|
||||
0x001C141C090D0B09,0x000E110102040004,//ÌÍ
|
||||
0x000304040E040418,0x001E02020F020A04,//ÎÏ
|
||||
0x0004040000000000,0x0004040404000000,//ÐÑ
|
||||
0x000E000A0A0A0000,0x000A000A0A0A0000,//ÒÓ
|
||||
0x0001020408170005,0x00001B0E040E1B00,//ÔÕ
|
||||
0x0001020408150205,0x00000E040404040E,//Ö×
|
||||
0x00001F0A0A0A0A1F,0x0004040404150E04,//ØÙ
|
||||
0x00040E1504040404,0x0001090D1F0D0901,//ÚÛ
|
||||
0x001012161F161210,0x000111151F151101,//ÜÝ
|
||||
0x0001020408110701,0x000000000C0C0000,//Þß
|
||||
0x111F11121414141E,0x101F111111111111,//àá
|
||||
0x101F151515151515,0x111F1112141E0000,//âã
|
||||
0x040E15150E040400,0x101A111111110000,//äå
|
||||
0x101F151515150000,0x0000000000000408,//æç
|
||||
0x000000000000000A,0x0000000000000D12,//èé
|
||||
0x000E011F110E0408,0x06040E11010E0000,//êë
|
||||
0x0006080A0A0A000A,0x0000041F0E0E0E04,//ìí
|
||||
0x00000A0011000A00,0x00000E1111110E00,//îï
|
||||
0x0010101D1A150911,0x001C1019121D0911,//ðñ
|
||||
0x001C0419121D0911,0x10101C1B12030203,//òó
|
||||
0x00111F111F111F11,0x0000000600180003,//ôõ
|
||||
0x041E141015070502,0x07020E021E020E02,//ö÷
|
||||
0x0E040E041F040E04,0x1C08160017001600,//øù
|
||||
0x1C080E080F080E08,0x00040E041F040E04,//úû
|
||||
0x1C08090A0C0A0908,0x0609040A0A04120C,//üý
|
||||
0x001414141E15151E,0xFFFFFFFFFFFFFFFF,//þÿ
|
||||
};
|
@ -1,10 +1,10 @@
|
||||
U0 SysGlobalsInit()
|
||||
{
|
||||
I64 i,j;
|
||||
CRAXRBCRCXRDX ee;
|
||||
CRAXRBCRCXRDX regs;
|
||||
|
||||
CPUId(0x1,&ee);
|
||||
sys_cache_line_width=ee.rbx.u8[1]*8;
|
||||
CPUId(0x1,®s);
|
||||
sys_cache_line_width=regs.rbx.u8[1]*8;
|
||||
|
||||
sys_focus_task=Fs;
|
||||
QueueInit(&sys_macro_head);
|
||||
@ -58,22 +58,35 @@ U0 SysGlobalsInit()
|
||||
QueueInit(&dev.pci_head);
|
||||
dev.mem64_ptr=mem_mapped_space;
|
||||
|
||||
Seg2Linear(SYS_FONT_PTR);
|
||||
|
||||
debug.fun_seg_cache=CAlloc(FUN_SEG_CACHE_SIZE*sizeof(CFunSegCache));
|
||||
debug.int_fault_code=IntFaultHandlersNew;
|
||||
}
|
||||
|
||||
U0 SysGrInit()
|
||||
{
|
||||
text.font=sys_font_std;
|
||||
text.aux_font=sys_font_cyrillic;
|
||||
I64 i, j;
|
||||
text.font = MAlloc(256 * 8); //256 U64s
|
||||
MemCopy(text.font, *SYS_FONT_PTR(U32), 256 * 8);
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
for (j = 0; j < 8; j++)
|
||||
text.font[i].u8[j] = rev_bits_table[text.font[i].u8[j]];
|
||||
|
||||
text.aux_font=sys_font_std;
|
||||
text.font['' - 1] = text.aux_font['' - 1]; //Shift-space
|
||||
text.font[10] = text.aux_font[10]; //"Return" symbol
|
||||
text.font[255] = text.aux_font[255]; //auxillary block character
|
||||
|
||||
text.border_chars[2] (I64)='ÄͳºÚÉ¿»';
|
||||
text.border_chars[10](U32)='ÀÈÙ¼';
|
||||
text.vga_alias =dev.uncached_alias+VGAM_GRAPHICS;
|
||||
text.vga_text_alias =dev.uncached_alias+VGAM_TEXT;
|
||||
if (!Bt(&sys_run_level,RLf_VGA)) { //if text mode
|
||||
text.cols=80;
|
||||
text.rows=25;
|
||||
MemSet(text.vga_text_alias,0,text.rows*text.cols<<1);
|
||||
text.border_chars[2] (I64)='ÄͳºÚÉ¿»';
|
||||
text.border_chars[10](U32)='ÀÈÙ¼';
|
||||
} else { //if 640x480 16 color
|
||||
text.cols=GR_WIDTH/FONT_WIDTH;
|
||||
text.rows=GR_HEIGHT/FONT_HEIGHT;
|
||||
@ -81,8 +94,6 @@ U0 SysGrInit()
|
||||
OutU8(VGAP_DATA,0x0F);
|
||||
MemSet(text.vga_alias,0,GR_WIDTH*GR_HEIGHT>>3);
|
||||
text.raw_screen_image=CAlloc(GR_WIDTH*GR_HEIGHT/8);
|
||||
text.border_chars[2] (I64)=0x0908070605040302;
|
||||
text.border_chars[10](U32)=0x0D0C0B0A;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,6 +51,7 @@ GDT_TR_RING3: DU8 MP_PROCESSORS_NUM*16 DUP(0);
|
||||
|
||||
#assert $$-SYS_KERNEL==sizeof(CKernel)-sizeof(CBinFile)
|
||||
|
||||
SYS_FONT_PTR:: DU32 0;
|
||||
//************************************
|
||||
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"$.)
|
||||
@ -77,6 +78,15 @@ GET_RIP: POP BX
|
||||
|
||||
MOV U32 [SYS_RUN_LEVEL],RLF_16BIT
|
||||
|
||||
//Get pointer to 8x8 VGA ROM font.
|
||||
MOV AX, 0x1130
|
||||
MOV BH, 3
|
||||
INT 0x10
|
||||
MOV AX, ES
|
||||
SHL EAX, 16
|
||||
MOV AX, BP
|
||||
MOV U32 [SYS_FONT_PTR], EAX
|
||||
|
||||
MOV AX,0x4F02
|
||||
MOV BX,0x12 //640x480 16 color
|
||||
#exe {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -29,8 +29,7 @@
|
||||
#include "KMathB"
|
||||
#include "Sched"
|
||||
#include "Memory/MakeMemory"
|
||||
#include "FontStd"
|
||||
#include "FontCyrillic"
|
||||
#include "FontStd"
|
||||
#include "StrB"
|
||||
#include "KHashA"
|
||||
#include "KInts"
|
||||
|
@ -179,3 +179,9 @@ I64 Scale2Mem(I64 min,I64 max,I64 limit=2*1024*1024*1024)
|
||||
else
|
||||
return min+(max-min)*i/limit;
|
||||
}
|
||||
|
||||
I64 Seg2Linear(U32 *ptr)
|
||||
{//Convert 32-bit segmented farptr to linear address. Modify in place.
|
||||
*ptr = *ptr >> 16 << 4 + *ptr & 0xFFFF;
|
||||
return *ptr;
|
||||
}
|
Binary file not shown.
@ -258,7 +258,7 @@ I64 FindWiz()
|
||||
|
||||
public I64 FR(U8 *text_to_replace, U8 *new_text, U8 *files_find_mask="/*",
|
||||
U8 *fu_flags=NONE, I64 sff_flags=NONE)
|
||||
{//Files rebane, Rename files matching mask.
|
||||
{//Files rename, Rename files matching mask.
|
||||
//Example: FR("Disk", "Disk");
|
||||
//FR("Gr", "Graphics", "/Zenith/Gr/*");
|
||||
CDirEntry *files, *files_head;
|
||||
@ -294,7 +294,7 @@ fr_all:
|
||||
switch(i)
|
||||
{
|
||||
case FND_ALL:
|
||||
all_flag = TRUE;
|
||||
all_flag = TRUE;
|
||||
goto fr_all;
|
||||
|
||||
case FND_REPLACE:
|
||||
|
Loading…
x
Reference in New Issue
Block a user