using da VGA ROM font. Removed cyrillic font.

Add Seg2Linear function.
This commit is contained in:
xmm15 2020-02-16 01:26:36 -06:00
parent 0ce07bc158
commit abea367056
12 changed files with 549 additions and 639 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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$.

Binary file not shown.

View File

@ -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,//þÿ
};

View File

@ -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,&regs);
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;
}
}

View File

@ -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

View File

@ -29,8 +29,7 @@
#include "KMathB"
#include "Sched"
#include "Memory/MakeMemory"
#include "FontStd"
#include "FontCyrillic"
#include "FontStd"
#include "StrB"
#include "KHashA"
#include "KInts"

View File

@ -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.

View File

@ -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: