summaryrefslogtreecommitdiff
path: root/Emulator/Q1Layout.cs
blob: 60a99c0c4e4b192687044eda64209fc632b0d7bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
namespace Q1.Emulator;

using Chip;

public static class Q1Layout
{
    public static readonly u16 DisplayWidth = 128;
    public static readonly u16 DisplayHeight = 64;
    public static readonly u16 DisplayPaletteSize = 16;
 
    // Bus locations
    public static readonly (u16 start, u16 size) Rom = (0x1FFF, 1024    * 8);
    public static readonly (u16 start, u16 size) Hid = (0x602F, HIDDevice.CalculateSize());
    public static readonly (u16 start, u16 size) Memory = (0x6FFF, 1024 * 16);
    public static readonly (u16 start, u16 size) Display = (0x3FFF, 
        DisplayDevice.DetermineSize(Q1Layout.DisplayPaletteSize, Q1Layout.DisplayWidth, Q1Layout.DisplayHeight));


    public static readonly u16 StackStart = Q1Layout.Memory.start;
    public static readonly u16 StackLength = 256 * 2; // 256 16-bit values
    public static readonly u16 FreeMemoryStart = (u16) (Q1Layout.StackStart + Q1Layout.StackLength);
    public static readonly u16 ProgramStart = Q1Layout.Rom.start;
}