2

I ran my Cosmos operating system in VMWare, But it is not working well. It works well and "stop works". And it doesn't work before restart.(I think it can be memory problem.) There is stoped screen. I don't know where is problem in my source code so I show all the my source code in here.

Source code:

using Cosmos.HAL;
using Cosmos.HAL.Drivers;
using Cosmos.System.FileSystem;
using Cosmos.System.FileSystem.VFS;
using Cosmos.System.Graphics;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Sys = Cosmos.System;

namespace CosmosKernel4
{
    public class Kernel : Sys.Kernel
    {
        uint x;
        uint y;
        Sys.MouseState ms;
        Sys.MouseState oldms;
        bool menuopened;
        Canvas can;
        List<Tuple<window, int>> windows;
        int celll = 1;
        int notepadd = 2;
        List<string> programs;
        int nowindex;
        System.Drawing.Color[] mmmmm;
        System.Drawing.Color[][] colorrr;
        static string ASC16Base64 = "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AAB4zMzM2MzGxsbMAAAAAAAA/sbGwMDAwMDAwAAAAAAAAAAA/mxsbGxsbGwAAAAAAAAA/sZgMBgwYMb+AAAAAAAAAAAAftjY2NjYcAAAAAAAAAAAZmZmZmZ8YGDAAAAAAAAAAHbcGBgYGBgYAAAAAAAAAH4YPGZmZjwYfgAAAAAAAAA4bMbG/sbGbDgAAAAAAAA4bMbGxmxsbGzuAAAAAAAAHjAYDD5mZmZmPAAAAAAAAAAAAH7b29t+AAAAAAAAAAAAAwZ+29vzfmDAAAAAAAAAHDBgYHxgYGAwHAAAAAAAAAB8xsbGxsbGxsYAAAAAAAAAAP4AAP4AAP4AAAAAAAAAAAAYGH4YGAAA/wAAAAAAAAAwGAwGDBgwAH4AAAAAAAAADBgwYDAYDAB+AAAAAAAADhsbGBgYGBgYGBgYGBgYGBgYGBgYGNjY2HAAAAAAAAAAABgYAH4AGBgAAAAAAAAAAAAAdtwAdtwAAAAAAAAAOGxsOAAAAAAAAAAAAAAAAAAAAAAAABgYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAADwwMDAwM7GxsPBwAAAAAANhsbGxsbAAAAAAAAAAAAABw2DBgyPgAAAAAAAAAAAAAAAAAfHx8fHx8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
        static MemoryStream ASC16FontMS = new MemoryStream(Convert.FromBase64String(ASC16Base64));

        //Note: the size of font is 8*16

        public void DrawACSIIString(Pen pen, string s, int x, int y)
        {
            //ASCII
            string[] lines = s.Split('\n');
            for (int l = 0; l < lines.Length; l++)
            {
                for (int c = 0; c < lines[l].Length; c++)
                {
                    int offset = (Encoding.ASCII.GetBytes(lines[l][c].ToString())[0] & 0xFF) * 16;
                    ASC16FontMS.Seek(offset, SeekOrigin.Begin);
                    byte[] fontbuf = new byte[16];
                    ASC16FontMS.Read(fontbuf, 0, fontbuf.Length);

                    for (int i = 0; i < 16; i++)
                    {
                        for (int j = 0; j < 8; j++)
                        {
                            if ((fontbuf[i] & (0x80 >> j)) != 0)
                            {
                                can.DrawPoint(pen, (x + j) + (c * 8), y + i + (l * 16));
                            }
                        }
                    }
                }
            }
        }

        protected override void BeforeRun()
        {
            colorrr = new System.Drawing.Color[7][];
            for (int i = 0; i < 7; i++)
            {
                colorrr[i] = new System.Drawing.Color[7];
            }
            mmmmm = new System.Drawing.Color[1];
            windows = new List<Tuple<window, int>>();
            programs = new List<string>();
            nowindex = -1;
            celll = 1;
            notepadd = 2;
            can = FullScreenCanvas.GetFullScreenCanvas();
            can.Clear(System.Drawing.Color.White);
            Sys.MouseManager.ScreenHeight = Convert.ToUInt32(can.Mode.Rows);
            Sys.MouseManager.ScreenWidth = Convert.ToUInt32(can.Mode.Columns);
            Sys.MouseManager.X = 0;
            Sys.MouseManager.Y = 0;
            menuopened = false;
            ms = Sys.MouseState.None;
            oldms = Sys.MouseState.None;
            Sys.MouseManager.MouseState = Sys.MouseState.None;
            Console.Beep(440, 125);
            Console.Beep(38, 125);
            Console.Beep(440, 110);
            Console.Beep(38, 15);
            Console.Beep(440, 125);
            Console.Beep(38, 125);
            Console.Beep(440, 110);
            Console.Beep(38, 15);
            Console.Beep(440, 125);
            Console.Beep(38, 125);
            Console.Beep(440, 400);

            resres();
        }
        void dosmode()
        {
            can.Disable();
            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.White;
            bool isdosmode = true;
            string nowdirectory = "0:";
            while (isdosmode)
            {
                Console.Write(nowdirectory + " > ");
                string s;
                s = Console.ReadLine();
                if (s == "GUI Mode") isdosmode = false;
                else if (s[0] == 'i' && s[1] == 'n' && s[2] == 't' && s[3] == 'o' && s[4] == ' ')
                {
                    string movedirectory = "";
                    for (int i = 5; i < s.Length; i++)
                    {
                        movedirectory += s[i];
                    }
                    if (Directory.Exists(movedirectory) == true)
                    {
                        nowdirectory += "\\" + movedirectory;
                    }
                    else
                    {
                        Console.Write("There isn't directory that " + "\"" + movedirectory + "\"" + "in this directory");
                    }
                }
            }
            can.Display();
            can = FullScreenCanvas.GetFullScreenCanvas();
            can.Clear(System.Drawing.Color.White);
        }
        protected override void Run()
        {
            try
            {
                
                if (Sys.MouseManager.MouseState == Sys.MouseState.None)
                {
                    if ((ms == Sys.MouseState.Left) || (oldms == Sys.MouseState.Left))
                    {
                        bool bbb = false;
                        uint xx = Sys.MouseManager.X;
                        uint yy = Sys.MouseManager.Y;
                        if (menuopened == true)
                        {
                            if ((xx < 100) && (yy > (can.Mode.Rows - 140)) && ((can.Mode.Rows - 40) > yy))
                            {
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 110);
                                Console.Beep(38, 15);
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 110);
                                Console.Beep(38, 15);
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 400);
                                Sys.Power.Shutdown();
                            }
                            else if ((xx < 100) && (yy > (can.Mode.Rows - 240)) && ((can.Mode.Rows - 140) > yy))
                            {
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 110);
                                Console.Beep(38, 15);
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 110);
                                Console.Beep(38, 15);
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 400);
                                Sys.Power.Reboot();
                            }
                            else if ((xx < 100) && (yy > (can.Mode.Rows - 340)) && ((can.Mode.Rows - 240) > yy))
                            {
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 110);
                                Console.Beep(38, 15);
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 110);
                                Console.Beep(38, 15);
                                Console.Beep(440, 125);
                                Console.Beep(38, 125);
                                Console.Beep(440, 400);
                                dosmode();
                            }

                            else
                            {
                                menuopened = false;
                                bbb = true;
                            }
                            resres();
                        }
                        if (nowindex == -1)
                        {
                            if ((xx < 30) && (yy < 30))
                            {
                                List<List<string>> lll = new List<List<string>>();
                                for (int i = 0; i < 10; i++)
                                {
                                    lll.Add(new List<string>());
                                    for (int j = 0; j < 10; j++)
                                    {
                                        lll[i].Add("cell");
                                    }
                                }
                                windows.Add(new Tuple<window, int>(new cell(0, 0, 600, 200, lll), celll));
                                nowindex = windows.Count - 1;
                                resres();
                            }
                        }
                        else if (windows[nowindex].Item2 == celll)
                        {
                            try
                            {
                                int cellwidth = can.Mode.Columns / ((cell)windows[nowindex].Item1).cells[0].Count;
                                int cellheight = (can.Mode.Rows - 40) / ((cell)windows[nowindex].Item1).cells.Count;
                                if (((cell)windows[nowindex].Item1).selected_heng != -1)
                                {
                                    can.DrawRectangle(new Pen(System.Drawing.Color.Green), new Point(((cell)windows[nowindex].Item1).selected_iul * cellwidth, ((cell)windows[nowindex].Item1).selected_heng * cellheight), cellwidth, cellheight);
                                }
                            }
                            catch { }
                            try
                            {
                                int cellwidth = can.Mode.Columns / ((cell)windows[nowindex].Item1).cells[0].Count;
                                int cellheight = (can.Mode.Rows - 40) / ((cell)windows[nowindex].Item1).cells.Count;
                                int iul = Convert.ToInt32(xx / cellwidth);
                                int heng = Convert.ToInt32(yy / cellheight);
                                ((cell)windows[nowindex].Item1).selected_heng = heng;
                                ((cell)windows[nowindex].Item1).selected_iul = iul;
                                can.DrawRectangle(new Pen(System.Drawing.Color.Red), new Point(iul * cellwidth, heng * cellheight), cellwidth, cellheight);
                            }
                            catch { }
                        }
                        if (bbb == false)
                        {
                            if ((xx <= 100) && (yy >= (can.Mode.Rows - 40)))
                            {
                                if (menuopened == true)
                                {
                                }
                                else
                                {
                                    menuopened = true;
                                    resres();
                                }

                            }
                        }
                        ms = Sys.MouseState.None;
                        oldms = Sys.MouseState.None;
                    }
                }

                try
                {
                    if ((x != Sys.MouseManager.X) || (y != Sys.MouseManager.Y))
                    {
                        for (int xxx = 0; xxx <= 6; xxx++)
                        {
                            for (int yyy = 0; yyy <= 6; yyy++)
                            {
                                can.DrawFilledRectangle(new Pen(colorrr[xxx][yyy]), new Point(Convert.ToInt32(x + xxx), Convert.ToInt32(y + yyy)), 1, 1); ;
                            }
                        }

                        for (int xxx = 0; xxx <= 6; xxx++)
                        {
                            for (int yyy = 0; yyy <= 6; yyy++)
                            {
                                colorrr[xxx][yyy] = can.GetPointColor(Convert.ToInt32(Sys.MouseManager.X + xxx), Convert.ToInt32(Sys.MouseManager.Y + yyy));
                            }
                        }
                        if (Sys.MouseManager.MouseState == Sys.MouseState.None)
                        {
                            can.DrawFilledRectangle(new Pen(System.Drawing.Color.Blue, 1), new Point(Convert.ToInt32(Sys.MouseManager.X), Convert.ToInt32(Sys.MouseManager.Y)), 5, 5);
                        }
                        else
                        {
                            can.DrawFilledRectangle(new Pen(System.Drawing.Color.Red, 1), new Point(Convert.ToInt32(Sys.MouseManager.X), Convert.ToInt32(Sys.MouseManager.Y)), 5, 5);
                        }
                        x = Sys.MouseManager.X;
                        y = Sys.MouseManager.Y;
                    }
                }
                catch { }
                oldms = ms;
                ms = Sys.MouseManager.MouseState;
            }
            catch
            {
                resres();
            }

        }
        void resres()
        {
            try
            {
                can = FullScreenCanvas.GetFullScreenCanvas();
                can.Clear(System.Drawing.Color.White);
                if (nowindex == -1)
                {
                    DrawACSIIString(new Pen(System.Drawing.Color.Black), "cell", 0, 31);
                    can.DrawRectangle(new Pen(System.Drawing.Color.Green), new Point(0, 0), 40, 40);
                }
                #region "draw program GUI"
                else if (windows[nowindex].Item2 == celll)
                {
                    cell cell44 = (cell)windows[nowindex].Item1;
                    List<List<string>> cells = cell44.cells;
                    int cellwidth = (can.Mode.Columns / cells[0].Count);
                    int cellheight = (can.Mode.Rows - 40) / cells.Count;
                    for (int j = 0; j < cells.Count; j++)
                    {
                        for (int k = 0; k < cells[j].Count; k++)
                        {
                            DrawACSIIString(new Pen(System.Drawing.Color.Black, 2), cells[j][k], k * cellwidth, j * cellheight);
                        }
                    }
                    try
                    {
                        for (int j = 0; j <= cells.Count; j++)
                        {
                            can.DrawLine(new Pen(System.Drawing.Color.Green, 1), new Point(0, j * cellheight), new Point(cells[j].Count * cellwidth, j * cellheight));
                        }
                    }
                    catch { }
                    try
                    {
                        for (int k = 0; k <= cells[0].Count; k++)
                        {
                            can.DrawLine(new Pen(System.Drawing.Color.Green, 1), new Point(k * cellwidth, 0), new Point(k * cellwidth, cells.Count * cellheight));
                        }
                    }
                    catch { }
                }
                #endregion
                #region "draw menu"
                if (menuopened == true)
                {
                    can.DrawFilledRectangle(new Pen(System.Drawing.Color.Aqua), 0, can.Mode.Rows - 340, 100, 100);
                    can.DrawFilledRectangle(new Pen(System.Drawing.Color.Purple), 0, can.Mode.Rows - 240, 100, 100);
                    can.DrawFilledRectangle(new Pen(System.Drawing.Color.Red), 0, can.Mode.Rows - 140, 100, 100);
                    can.DrawRectangle(new Pen(System.Drawing.Color.Black), 0, can.Mode.Rows - 340, 100, 300);
                    DrawACSIIString(new Pen(System.Drawing.Color.Red, 1), "DOS Mode", 1, can.Mode.Rows - 340);
                    DrawACSIIString(new Pen(System.Drawing.Color.White, 1), "Restart", 1, can.Mode.Rows - 240);
                    DrawACSIIString(new Pen(System.Drawing.Color.Aqua, 1), "Off", 1, can.Mode.Rows - 140);
                }
                can.DrawFilledRectangle(new Pen(System.Drawing.Color.Magenta), 0, can.Mode.Rows - 40, 100, 40);
                #endregion
                #region "draw mouse"
                #endregion
            }
            catch { }
        }
    }
}

What is problem in my source code? If my English was lack I'm sorry. I'm Korean.

hongi
  • 29
  • 3

0 Answers0