public override void Draw()
        {
            // Compiler bug
            uint a = X;

            for (uint x = a; x <= X + Width - 1; x++)
            {
                C64.SetChar(x, Y, H_LINE);
                Delay.Wait(100);
            }
            C64.SetChar(X + Width - 1, Y, ARROW_HEAD);

            if (Text1 != null)
            {
                int  length = Text1.Length;
                uint startX = ((Width - (uint)length) >> 1) + (uint)X;

                C64.Write(startX, Y - 1, Text1);
            }

            if (Text2 != null)
            {
                int  length = Text2.Length;
                uint startX = ((Width - (uint)length) >> 1) + (uint)X;

                C64.Write(startX, Y + 1, Text2);
            }
        }
Beispiel #2
0
 private static void GetReady()
 {
     C64.Write(16, 6, "GET READY", Colors.White);
     for (int i = 0; i < 40; i++)
     {
         Delay.Wait(100);
     }
     C64.Write(16, 6, "         ", Colors.White);
 }
Beispiel #3
0
        public override void Draw()
        {
            int        length = Text.Length;
            int        startX = (Screen.Width - length) >> 1;
            const uint y      = 2;

            C64.Write((uint)startX, y, Text);
            for (var x = 0; x < length; x++)
            {
                C64.SetChar((uint)(startX + x), y - 1, 0x43);
                C64.SetChar((uint)(startX + x), y + 1, 0x43);
            }
        }
Beispiel #4
0
        public override void Draw()
        {
            this.box.Y      = Y - (uint)pointer;
            this.box.Height = (uint)(pointer + 3);
            Screen.ClearRect(X, X + 5, Y - (uint)pointer - 1, Y + 1);

            box.Draw();

            for (int p = 0; p <= pointer; p++)
            {
                C64.Write(X + 2, Y - (uint)pointer + (uint)(p + 1), elements[pointer - p].Id, Colors.Yellow);
            }
        }
        public override void Present()
        {
            Screen.Clear(Colors.Green);
            C64.Write(17, 12, "F  O  R", Colors.Green);

            var c64Logo = new MovingLogo
            {
                SpriteTL = C64.Sprites.Sprite0,
                SpriteBL = C64.Sprites.Sprite1,
                SpriteTR = C64.Sprites.Sprite2,
                SpriteBR = C64.Sprites.Sprite3,
                MinX     = 220,
                MaxX     = 265,
                MinY     = 50,
                MaxY     = 170,
                X        = 220,
                Y        = 160
            };

            var csharpLogo = new MovingLogo
            {
                SpriteTL = C64.Sprites.Sprite4,
                SpriteBL = C64.Sprites.Sprite5,
                SpriteTR = C64.Sprites.Sprite6,
                SpriteBR = null,
                MinX     = 30,
                MaxX     = 90,
                MinY     = 50,
                MaxY     = 170,
                X        = 50,
                Y        = 50
            };

            c64Logo.Init();
            csharpLogo.Init();
            for (; ;)
            {
                Delay.Wait(100);
                if (C64.IsKeyPressed(Keys.Space) || (C64.Joysticks.Joystick2.Pressed & JoystickButtons.Fire) == JoystickButtons.Fire)
                {
                    break;
                }

                c64Logo.Step();
                csharpLogo.Step();
            }
        }
Beispiel #6
0
        public override void Present()
        {
            Colors color = Colors.Black;

            C64.Write(15, 12, "D E M O", Colors.Black);
            for (ulong i = 0; i < 1000; i++)
            {
                C64.SetBackgroundColor(color);
                C64.SetBorderColor(color);
                color++;

                if (C64.IsKeyPressed(Keys.Space) || (C64.Joysticks.Joystick2.Pressed & JoystickButtons.Fire) == JoystickButtons.Fire)
                {
                    break;
                }
            }
        }
        public static void Display()
        {
            Screen.Clear(Colors.White);
            C64.CopyMemory(C64Address.FromLabel("(screenMemory+$CD)"), C64Address.FromLabel("titleScreen"), 0);
            C64.CopyMemory(C64Address.FromLabel("(screenMemory+$1CD)"), C64Address.FromLabel("titleScreen+$100"), 0);
            C64.CopyMemory(C64Address.FromLabel("(screenMemory+$21B)"), C64Address.FromLabel("titleScreen+$14E"), 0);

            C64.Write(13, 1, "OCEAN SOFTWARE", Colors.Green);
            C64.Write(13, 3, "   PRESENTS   ", Colors.White);
            C64.Write(25, 21, "   BY J.STEELE", Colors.Green);
            C64.Write(7, 23, "PRESS F1 FOR INSTRUCTIONS", Colors.White);
            C64.Write(7, 24, "    OR SPACE TO START    ", Colors.White);

            var tones = GetTones();

            for (; ;)
            {
                var color = (uint)1;
                foreach (var t in tones)
                {
                    color++;
                    if (color == 7)
                    {
                        color = 1;
                    }
                    C64.Sound.PlayEffectReg1(WaveForm.Saw, t.Frequency, 0, 9, 0, false);
                    C64.FillMemory(C64Address.FromLabel("(colorMemory+$CD)"), color, 0);
                    C64.FillMemory(C64Address.FromLabel("(colorMemory+$1CD)"), color, 0);
                    C64.FillMemory(C64Address.FromLabel("(colorMemory+$21B)"), color, 0);

                    for (uint k = 0; k < 50u; k++)
                    {
                        for (uint kk = 0; kk < t.Sustain; kk++)
                        {
                            if (C64.IsKeyPressed(Keys.Space) || (C64.Joysticks.Joystick2.Pressed & JoystickButtons.Fire) == JoystickButtons.Fire)
                            {
                                return;
                            }
                        }
                    }
                }
            }
        }
        public override void Draw()
        {
            uint a = X;
            uint b = Y;

            for (uint x = a; x < X + Width; x++)
            {
                for (uint y = b; y < Y + Height; y++)
                {
                    C64.SetChar(x, y, SPACE);
                }
            }

            var yy = Y;

            foreach (var line in Lines)
            {
                C64.Write(X, yy++, line, Colors.White);
            }
        }
        public override void Draw()
        {
            var y = Top;

            if (Symbol == 0)
            {
                Symbol = 0x51;
            }

            foreach (var item in Items)
            {
                C64.SetChar(Left, y, Symbol, Color);
                C64.Write(Left + 2, y, item, Color);
                y += 2;

                if (Wait)
                {
                    KeyBoard.WaitForKeys();
                }
            }
        }
Beispiel #10
0
        private void Draw()
        {
            uint       x     = 0;
            uint       x2    = 0;
            const uint width = 7;

            var box = new Box()
            {
                Y = 5, Width = width, Height = 3, BorderColor = Colors.Blue, ConnectToLeft = x != 0
            };
            var box2 = new Box()
            {
                Y = 18, Height = 6, BorderColor = Colors.Blue
            };

            foreach (var objectElem in objects)
            {
                var color = objectElem.Root ? Colors.Cyan : Colors.Blue;
                if (objectElem.Marked)
                {
                    color = Colors.Orange;
                }

                if (!objectElem.Alive)
                {
                    color = Colors.Black;
                }

                box.Text          = objectElem.Id;
                box.TextColor     = color;
                box.ConnectToLeft = x != 0;
                box.X             = x;
                box.Draw();

                C64.SetChar(x + 3, 8, objectElem.Processing ? 0u : 0x20u);
                x += width - 1;

                if (!objectElem.Alive)
                {
                    continue;
                }

                var width2 = objectElem.Size + 3;
                box2.X             = x2;
                box2.Width         = width2;
                box2.Text          = objectElem.Id;
                box2.TextColor     = objectElem.Alive ? Colors.Yellow : Colors.Black;
                box2.ConnectToLeft = x2 != 0;
                box2.Draw();
                var refx = x2 + 1;
                if (objectElem.Alive)
                {
                    foreach (var reference in objectElem.References)
                    {
                        C64.Write(refx, 22, reference.Id);
                        refx += 2;
                    }
                }

                x2 += width2 - 1;
            }

            stack.Draw();
        }
Beispiel #11
0
 public override void Draw()
 {
     C64.Write(X, Y, Text, Color);
 }