4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25 #define MAX_XBOX_COM_PORTS 2
27 #define LPC_IO_BASE 0x2E
28 #define LPC_ENTER_CONFIG_KEY 0x55
29 #define LPC_EXIT_CONFIG_KEY 0xAA
31 #define LPC_DEVICE_SERIAL_PORT_1 0x4
32 #define LPC_DEVICE_SERIAL_PORT_2 0x5
34 #define LPC_CONFIG_DEVICE_NUMBER 0x07
35 #define LPC_CONFIG_DEVICE_ACTIVATE 0x30
36 #define LPC_CONFIG_DEVICE_BASE_ADDRESS_HIGH 0x60
37 #define LPC_CONFIG_DEVICE_BASE_ADDRESS_LOW 0x61
38 #define LPC_CONFIG_DEVICE_INTERRUPT 0x70
40 #define NV2A_CONTROL_OFFSET 0xFD000000
41 #define NV2A_CRTC_OFFSET (0x600000 + NV2A_CONTROL_OFFSET)
42 #define NV2A_CRTC_FRAMEBUFFER_START (0x800 + NV2A_CRTC_OFFSET)
43 #define NV2A_CRTC_REGISTER_INDEX (0x13D4 + NV2A_CRTC_OFFSET)
44 #define NV2A_CRTC_REGISTER_VALUE (0x13D5 + NV2A_CRTC_OFFSET)
45 #define NV2A_RAMDAC_OFFSET (0x680000 + NV2A_CONTROL_OFFSET)
46 #define NV2A_RAMDAC_FP_HVALID_END (0x838 + NV2A_RAMDAC_OFFSET)
47 #define NV2A_RAMDAC_FP_VVALID_END (0x818 + NV2A_RAMDAC_OFFSET)
49 extern UCHAR XboxFont8x16
[256 * 16];
51 VOID
XboxMachInit(const char *CmdLine
);
53 VOID
XboxConsPutChar(int Ch
);
54 BOOLEAN
XboxConsKbHit(VOID
);
55 int XboxConsGetCh(VOID
);
57 VOID
XboxVideoInit(VOID
);
58 VOID
XboxVideoClearScreen(UCHAR Attr
);
59 VIDEODISPLAYMODE
XboxVideoSetDisplayMode(char *DisplayModem
, BOOLEAN Init
);
60 VOID
XboxVideoGetDisplaySize(PULONG Width
, PULONG Height
, PULONG Depth
);
61 ULONG
XboxVideoGetBufferSize(VOID
);
62 VOID
XboxVideoGetFontsFromFirmware(PULONG RomFontPointers
);
63 VOID
XboxVideoSetTextCursorPosition(UCHAR X
, UCHAR Y
);
64 VOID
XboxVideoHideShowTextCursor(BOOLEAN Show
);
65 VOID
XboxVideoPutChar(int Ch
, UCHAR Attr
, unsigned X
, unsigned Y
);
66 VOID
XboxVideoCopyOffScreenBufferToVRAM(PVOID Buffer
);
67 BOOLEAN
XboxVideoIsPaletteFixed(VOID
);
68 VOID
XboxVideoSetPaletteColor(UCHAR Color
, UCHAR Red
, UCHAR Green
, UCHAR Blue
);
69 VOID
XboxVideoGetPaletteColor(UCHAR Color
, UCHAR
* Red
, UCHAR
* Green
, UCHAR
* Blue
);
70 VOID
XboxVideoSync(VOID
);
71 VOID
XboxVideoPrepareForReactOS(VOID
);
72 VOID
XboxPrepareForReactOS(VOID
);
74 VOID
XboxMemInit(VOID
);
75 PFREELDR_MEMORY_DESCRIPTOR
XboxMemGetMemoryMap(ULONG
*MemoryMapSize
);
77 BOOLEAN
XboxDiskReadLogicalSectors(UCHAR DriveNumber
, ULONGLONG SectorNumber
, ULONG SectorCount
, PVOID Buffer
);
78 BOOLEAN
XboxDiskGetDriveGeometry(UCHAR DriveNumber
, PGEOMETRY DriveGeometry
);
79 ULONG
XboxDiskGetCacheableBlockCount(UCHAR DriveNumber
);
81 TIMEINFO
* XboxGetTime(VOID
);
83 PCONFIGURATION_COMPONENT_DATA
XboxHwDetect(VOID
);
84 VOID
XboxHwIdle(VOID
);
86 VOID
XboxSetLED(PCSTR Pattern
);