ReactOS  0.4.15-dev-1201-gb2cf5a4
machpc.h File Reference
#include "mm.h"
Include dependency graph for machpc.h:

Go to the source code of this file.

Functions

VOID PcBeep (VOID)
 
VOID PcConsPutChar (int Ch)
 
BOOLEAN PcConsKbHit (VOID)
 
int PcConsGetCh (VOID)
 
VOID PcVideoClearScreen (UCHAR Attr)
 
VIDEODISPLAYMODE PcVideoSetDisplayMode (char *DisplayMode, BOOLEAN Init)
 
VOID PcVideoGetDisplaySize (PULONG Width, PULONG Height, PULONG Depth)
 
ULONG PcVideoGetBufferSize (VOID)
 
VOID PcVideoGetFontsFromFirmware (PULONG RomFontPointers)
 
VOID PcVideoSetTextCursorPosition (UCHAR X, UCHAR Y)
 
VOID PcVideoHideShowTextCursor (BOOLEAN Show)
 
VOID PcVideoPutChar (int Ch, UCHAR Attr, unsigned X, unsigned Y)
 
VOID PcVideoCopyOffScreenBufferToVRAM (PVOID Buffer)
 
BOOLEAN PcVideoIsPaletteFixed (VOID)
 
VOID PcVideoSetPaletteColor (UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
 
VOID PcVideoGetPaletteColor (UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
 
VOID PcVideoSync (VOID)
 
VOID PcVideoPrepareForReactOS (VOID)
 
VOID PcPrepareForReactOS (VOID)
 
PFREELDR_MEMORY_DESCRIPTOR PcMemGetMemoryMap (ULONG *MemoryMapSize)
 
BOOLEAN PcFindPciBios (PPCI_REGISTRY_INFO BusData)
 
LONG DiskReportError (BOOLEAN bShowError)
 
BOOLEAN DiskResetController (UCHAR DriveNumber)
 
BOOLEAN PcDiskReadLogicalSectors (UCHAR DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer)
 
BOOLEAN PcDiskGetDriveGeometry (UCHAR DriveNumber, PGEOMETRY DriveGeometry)
 
ULONG PcDiskGetCacheableBlockCount (UCHAR DriveNumber)
 
TIMEINFOPcGetTime (VOID)
 
BOOLEAN PcInitializeBootDevices (VOID)
 
PCONFIGURATION_COMPONENT_DATA PcHwDetect (VOID)
 
VOID PcHwIdle (VOID)
 

Variables

UCHAR FrldrBootDrive
 
ULONG FrldrBootPartition
 
BIOS_MEMORY_MAP PcBiosMemoryMap []
 
ULONG PcBiosMapCount
 

Function Documentation

◆ DiskReportError()

LONG DiskReportError ( BOOLEAN  bShowError)

Definition at line 120 of file pcdisk.c.

121 {
122  /* Set the reference count */
123  if (bShowError) ++lReportError;
124  else --lReportError;
125  return lReportError;
126 }
static LONG lReportError
Definition: pcdisk.c:118

Referenced by EnumerateHarddisks(), and GetHarddiskInformation().

◆ DiskResetController()

BOOLEAN DiskResetController ( UCHAR  DriveNumber)

Definition at line 180 of file pcdisk.c.

181 {
182  REGS RegsIn, RegsOut;
183 
184  WARN("DiskResetController(0x%x) DISK OPERATION FAILED -- RESETTING CONTROLLER\n", DriveNumber);
185 
186  /*
187  * BIOS Int 13h, function 0 - Reset disk system
188  * AH = 00h
189  * DL = drive (if bit 7 is set both hard disks and floppy disks reset)
190  * Return:
191  * AH = status
192  * CF clear if successful
193  * CF set on error
194  */
195  RegsIn.b.ah = 0x00;
196  RegsIn.b.dl = DriveNumber;
197 
198  /* Reset the disk controller */
199  Int386(0x13, &RegsIn, &RegsOut);
200 
201  return INT386_SUCCESS(RegsOut);
202 }
#define WARN(fmt,...)
Definition: debug.h:112
unsigned char ah
Definition: pcbios.h:126
int __cdecl Int386(int ivec, REGS *in, REGS *out)
unsigned char dl
Definition: pcbios.h:134
#define INT386_SUCCESS(regs)
Definition: pcbios.h:173
BYTEREGS b
Definition: pcbios.h:157
Definition: pcbios.h:152

Referenced by DetectBiosFloppyPeripheral(), PcDiskReadLogicalSectorsCHS(), and PcDiskReadLogicalSectorsLBA().

◆ PcBeep()

VOID PcBeep ( VOID  )

Definition at line 34 of file pcbeep.c.

35 {
36  Sound(700);
38  Sound(0);
39 }
VOID StallExecutionProcessor(ULONG Microseconds)
Definition: pchw.c:60
static VOID Sound(USHORT Frequency)
Definition: pcbeep.c:17

Referenced by MachInit().

◆ PcConsGetCh()

int PcConsGetCh ( VOID  )

Definition at line 90 of file pccons.c.

91 {
92  REGS Regs;
93  static BOOLEAN ExtendedKey = FALSE;
94  static char ExtendedScanCode = 0;
95 
96  /* If the last time we were called an
97  * extended key was pressed then return
98  * that keys scan code. */
99  if (ExtendedKey)
100  {
101  ExtendedKey = FALSE;
102  return ExtendedScanCode;
103  }
104 
105  /* Int 16h AH=00h
106  * KEYBOARD - GET KEYSTROKE
107  *
108  * AH = 00h
109  * Return:
110  * AH = BIOS scan code
111  * AL = ASCII character
112  */
113  Regs.b.ah = 0x00;
114  Int386(0x16, &Regs, &Regs);
115 
116  /* Check for an extended keystroke */
117  if (0 == Regs.b.al)
118  {
119  ExtendedKey = TRUE;
120  ExtendedScanCode = Regs.b.ah;
121  }
122 
123  /* Return keystroke */
124  return Regs.b.al;
125 }
#define TRUE
Definition: types.h:120
unsigned char ah
Definition: pcbios.h:126
int __cdecl Int386(int ivec, REGS *in, REGS *out)
#define FALSE
Definition: types.h:117
unsigned char BOOLEAN
BYTEREGS b
Definition: pcbios.h:157
unsigned char al
Definition: pcbios.h:125
Definition: pcbios.h:152

Referenced by MachInit(), and PcVideoSetDisplayMode().

◆ PcConsKbHit()

BOOLEAN PcConsKbHit ( VOID  )

Definition at line 69 of file pccons.c.

70 {
71  REGS Regs;
72 
73  /* Int 16h AH=01h
74  * KEYBOARD - CHECK FOR KEYSTROKE
75  *
76  * AH = 01h
77  * Return:
78  * ZF set if no keystroke available
79  * ZF clear if keystroke available
80  * AH = BIOS scan code
81  * AL = ASCII character
82  */
83  Regs.b.ah = 0x01;
84  Int386(0x16, &Regs, &Regs);
85 
86  return 0 == (Regs.x.eflags & EFLAGS_ZF);
87 }
DWORDREGS x
Definition: pcbios.h:154
unsigned char ah
Definition: pcbios.h:126
int __cdecl Int386(int ivec, REGS *in, REGS *out)
#define EFLAGS_ZF
Definition: ketypes.h:124
BYTEREGS b
Definition: pcbios.h:157
unsigned long eflags
Definition: pcbios.h:99
Definition: pcbios.h:152

Referenced by MachInit().

◆ PcConsPutChar()

VOID PcConsPutChar ( int  Ch)

Definition at line 28 of file pccons.c.

29 {
30  REGS Regs;
31 
32  /* If we are displaying a CR '\n' then do a LF also */
33  if ('\n' == Ch)
34  {
35  /* Display the LF */
36  PcConsPutChar('\r');
37  }
38 
39  /* If we are displaying a TAB '\t' then display 8 spaces ' ' */
40  if ('\t' == Ch)
41  {
42  /* Display the 8 spaces ' ' */
43  PcConsPutChar(' ');
44  PcConsPutChar(' ');
45  PcConsPutChar(' ');
46  PcConsPutChar(' ');
47  PcConsPutChar(' ');
48  PcConsPutChar(' ');
49  PcConsPutChar(' ');
50  PcConsPutChar(' ');
51  return;
52  }
53 
54  /* Int 10h AH=0Eh
55  * VIDEO - TELETYPE OUTPUT
56  *
57  * AH = 0Eh
58  * AL = character to write
59  * BH = page number
60  * BL = foreground color (graphics modes only)
61  */
62  Regs.b.ah = 0x0E;
63  Regs.b.al = Ch;
64  Regs.w.bx = 1;
65  Int386(0x10, &Regs, &Regs);
66 }
unsigned char ah
Definition: pcbios.h:126
#define Ch(x, y, z)
Definition: sha2.c:141
int __cdecl Int386(int ivec, REGS *in, REGS *out)
BYTEREGS b
Definition: pcbios.h:157
unsigned char al
Definition: pcbios.h:125
unsigned short bx
Definition: pcbios.h:106
Definition: pcbios.h:152
VOID PcConsPutChar(int Ch)
Definition: pccons.c:28
WORDREGS w
Definition: pcbios.h:156

Referenced by MachInit(), and PcConsPutChar().

◆ PcDiskGetCacheableBlockCount()

ULONG PcDiskGetCacheableBlockCount ( UCHAR  DriveNumber)

Definition at line 827 of file pcdisk.c.

828 {
829  PPC_DISK_DRIVE DiskDrive;
830 
831  DiskDrive = PcDiskDriveNumberToDrive(DriveNumber);
832  if (!DiskDrive)
833  return 1; // Unknown count.
834 
835  /*
836  * If LBA is supported then the block size will be 64 sectors (32k).
837  * If not then the block size is the size of one track.
838  */
839  if (DiskDrive->Int13ExtensionsSupported)
840  return 64;
841  else
842  return DiskDrive->Geometry.Sectors;
843 }
static PPC_DISK_DRIVE PcDiskDriveNumberToDrive(IN UCHAR DriveNumber)
Definition: pcdisk.c:492
ULONG Sectors
Definition: disk.h:28
BOOLEAN Int13ExtensionsSupported
Definition: pcdisk.c:86
GEOMETRY Geometry
Definition: pcdisk.c:82

Referenced by MachInit().

◆ PcDiskGetDriveGeometry()

BOOLEAN PcDiskGetDriveGeometry ( UCHAR  DriveNumber,
PGEOMETRY  DriveGeometry 
)

Definition at line 798 of file pcdisk.c.

799 {
800  PPC_DISK_DRIVE DiskDrive;
801 
802  TRACE("PcDiskGetDriveGeometry(0x%x)\n", DriveNumber);
803 
804  DiskDrive = PcDiskDriveNumberToDrive(DriveNumber);
805  if (!DiskDrive)
806  return FALSE;
807 
808  /* Try to get the extended geometry first */
809  if (DiskDrive->ExtGeometry.Size == sizeof(DiskDrive->ExtGeometry))
810  {
811  /* Extended geometry has been initialized, return it */
812  Geometry->Cylinders = DiskDrive->ExtGeometry.Cylinders;
813  Geometry->Heads = DiskDrive->ExtGeometry.Heads;
814  Geometry->Sectors = DiskDrive->ExtGeometry.SectorsPerTrack;
815  Geometry->BytesPerSector = DiskDrive->ExtGeometry.BytesPerSector;
816  }
817  else
818  /* Fall back to legacy BIOS geometry */
819  {
820  *Geometry = DiskDrive->Geometry;
821  }
822 
823  return TRUE;
824 }
#define TRUE
Definition: types.h:120
ULONG Cylinders
Definition: disk.h:41
static PPC_DISK_DRIVE PcDiskDriveNumberToDrive(IN UCHAR DriveNumber)
Definition: pcdisk.c:492
#define FALSE
Definition: types.h:117
ULONG SectorsPerTrack
Definition: disk.h:43
#define TRACE(s)
Definition: solgame.cpp:4
EXTENDED_GEOMETRY ExtGeometry
Definition: pcdisk.c:83
GEOMETRY Geometry
Definition: pcdisk.c:82
USHORT Size
Definition: disk.h:39
USHORT BytesPerSector
Definition: disk.h:45
ULONG Heads
Definition: disk.h:42

Referenced by MachInit(), and PcGetHarddiskConfigurationData().

◆ PcDiskReadLogicalSectors()

BOOLEAN PcDiskReadLogicalSectors ( UCHAR  DriveNumber,
ULONGLONG  SectorNumber,
ULONG  SectorCount,
PVOID  Buffer 
)

◆ PcFindPciBios()

BOOLEAN PcFindPciBios ( PPCI_REGISTRY_INFO  BusData)

Definition at line 80 of file hwpci.c.

81 {
82  REGS RegsIn;
83  REGS RegsOut;
84 
85  RegsIn.b.ah = 0xB1; /* Subfunction B1h */
86  RegsIn.b.al = 0x01; /* PCI BIOS present */
87 
88  Int386(0x1A, &RegsIn, &RegsOut);
89 
90  if (INT386_SUCCESS(RegsOut) &&
91  (RegsOut.d.edx == ' ICP') &&
92  (RegsOut.b.ah == 0))
93  {
94  TRACE("Found PCI bios\n");
95 
96  TRACE("AL: %x\n", RegsOut.b.al);
97  TRACE("BH: %x\n", RegsOut.b.bh);
98  TRACE("BL: %x\n", RegsOut.b.bl);
99  TRACE("CL: %x\n", RegsOut.b.cl);
100 
101  BusData->NoBuses = RegsOut.b.cl + 1;
102  BusData->MajorRevision = RegsOut.b.bh;
103  BusData->MinorRevision = RegsOut.b.bl;
104  BusData->HardwareMechanism = RegsOut.b.al;
105 
106  return TRUE;
107  }
108 
109  TRACE("No PCI bios found\n");
110 
111  return FALSE;
112 }
#define TRUE
Definition: types.h:120
UCHAR HardwareMechanism
Definition: pci.h:110
unsigned char ah
Definition: pcbios.h:126
UCHAR MinorRevision
Definition: pci.h:108
int __cdecl Int386(int ivec, REGS *in, REGS *out)
#define FALSE
Definition: types.h:117
UCHAR MajorRevision
Definition: pci.h:107
#define INT386_SUCCESS(regs)
Definition: pcbios.h:173
#define TRACE(s)
Definition: solgame.cpp:4
unsigned char bl
Definition: pcbios.h:128
unsigned char cl
Definition: pcbios.h:131
BYTEREGS b
Definition: pcbios.h:157
unsigned char al
Definition: pcbios.h:125
DWORDREGS d
Definition: pcbios.h:155
unsigned char bh
Definition: pcbios.h:129
UCHAR NoBuses
Definition: pci.h:109
Definition: pcbios.h:152
unsigned long edx
Definition: pcbios.h:88

Referenced by Pc98HwDetect(), and PcHwDetect().

◆ PcGetTime()

TIMEINFO* PcGetTime ( VOID  )

Definition at line 24 of file pcrtc.c.

25 {
26  static TIMEINFO TimeInfo;
27  REGS Regs;
28 
29  for (;;)
30  {
31  /* Some BIOSes, such as the 1998/07/25 system ROM
32  * in the Compaq Deskpro EP/SB, leave CF unchanged
33  * if successful, so CF should be cleared before
34  * calling this function. */
35  Regs.x.eflags = 0;
36 // __writeeflags(__readeflags() & ~EFLAGS_CF);
37 
38  /* Int 1Ah AH=04h
39  * TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
40  *
41  * AH = 04h
42  * CF clear to avoid bug
43  * Return:
44  * CF clear if successful
45  * CH = century (BCD)
46  * CL = year (BCD)
47  * DH = month (BCD)
48  * DL = day (BCD)
49  * CF set on error
50  */
51  Regs.b.ah = 0x04;
52  Int386(0x1A, &Regs, &Regs);
53 
54  if (!INT386_SUCCESS(Regs)) continue;
55 
56  TimeInfo.Year = 100 * BCD_INT(Regs.b.ch) + BCD_INT(Regs.b.cl);
57  TimeInfo.Month = BCD_INT(Regs.b.dh);
58  TimeInfo.Day = BCD_INT(Regs.b.dl);
59 
60  /* Some BIOSes leave CF unchanged if successful,
61  * so CF should be cleared before calling this function. */
62  Regs.x.eflags = 0;
63 // __writeeflags(__readeflags() & ~EFLAGS_CF);
64 
65  /* Int 1Ah AH=02h
66  * TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
67  *
68  * AH = 02h
69  * CF clear to avoid bug
70  * Return:
71  * CF clear if successful
72  * CH = hour (BCD)
73  * CL = minutes (BCD)
74  * DH = seconds (BCD)
75  * DL = daylight savings flag (00h standard time, 01h daylight time)
76  * CF set on error (i.e. clock not running or in middle of update)
77  */
78  Regs.b.ah = 0x02;
79  Int386(0x1A, &Regs, &Regs);
80 
81  if (!INT386_SUCCESS(Regs)) continue;
82 
83  TimeInfo.Hour = BCD_INT(Regs.b.ch);
84  TimeInfo.Minute = BCD_INT(Regs.b.cl);
85  TimeInfo.Second = BCD_INT(Regs.b.dh);
86 
87  break;
88  }
89  return &TimeInfo;
90 }
#define BCD_INT(bcd)
Definition: pcrtc.c:21
DWORDREGS x
Definition: pcbios.h:154
unsigned char ah
Definition: pcbios.h:126
USHORT Second
Definition: fw.h:16
USHORT Month
Definition: fw.h:12
unsigned char dh
Definition: pcbios.h:135
int __cdecl Int386(int ivec, REGS *in, REGS *out)
USHORT Minute
Definition: fw.h:15
unsigned char dl
Definition: pcbios.h:134
#define INT386_SUCCESS(regs)
Definition: pcbios.h:173
Definition: fw.h:9
USHORT Year
Definition: fw.h:11
unsigned char ch
Definition: pcbios.h:132
unsigned char cl
Definition: pcbios.h:131
BYTEREGS b
Definition: pcbios.h:157
unsigned long eflags
Definition: pcbios.h:99
USHORT Hour
Definition: fw.h:14
Definition: pcbios.h:152
USHORT Day
Definition: fw.h:13

Referenced by MachInit().

◆ PcHwDetect()

Definition at line 1367 of file machpc.c.

1368 {
1370  ULONG BusNumber = 0;
1371 
1372  TRACE("DetectHardware()\n");
1373 
1374  /* Create the 'System' key */
1375  FldrCreateSystemKey(&SystemKey);
1376  // TODO: Discover and set the other machine types
1377  FldrSetIdentifier(SystemKey, "AT/AT COMPATIBLE");
1378 
1381 
1382  /* Detect buses */
1383  DetectPciBios(SystemKey, &BusNumber);
1384  DetectApmBios(SystemKey, &BusNumber);
1385  DetectPnpBios(SystemKey, &BusNumber);
1386  DetectIsaBios(SystemKey, &BusNumber); // TODO: Detect first EISA or MCA, before ISA
1387  DetectAcpiBios(SystemKey, &BusNumber);
1388 
1389  // TODO: Collect the ROM blocks from 0xC0000 to 0xF0000 and append their
1390  // CM_ROM_BLOCK data into the 'System' key's configuration data.
1391 
1392  TRACE("DetectHardware() Done\n");
1393  return SystemKey;
1394 }
VOID NTAPI FldrSetIdentifier(IN PCONFIGURATION_COMPONENT_DATA ComponentData, IN PCHAR IdentifierString)
Definition: archwsup.c:56
FIND_PCI_BIOS FindPciBios
Definition: hwpci.c:26
static PCM_PARTIAL_RESOURCE_LIST PcGetHarddiskConfigurationData(UCHAR DriveNumber, ULONG *pSize)
Definition: machpc.c:104
GET_HARDDISK_CONFIG_DATA GetHarddiskConfigurationData
Definition: pchw.c:45
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:156
#define TRACE(s)
Definition: solgame.cpp:4
static VOID DetectPnpBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: machpc.c:182
VOID DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: hwpci.c:176
VOID DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: hwacpi.c:54
static VOID DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: machpc.c:1303
BOOLEAN PcFindPciBios(PPCI_REGISTRY_INFO BusData)
Definition: hwpci.c:80
unsigned int ULONG
Definition: retypes.h:1
VOID NTAPI FldrCreateSystemKey(OUT PCONFIGURATION_COMPONENT_DATA *SystemNode)
Definition: archwsup.c:89
VOID DetectApmBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
Definition: hwapm.c:46

Referenced by MachInit().

◆ PcHwIdle()

VOID PcHwIdle ( VOID  )

Definition at line 1397 of file machpc.c.

1398 {
1399  REGS Regs;
1400 
1401  /* Select APM 1.0+ function */
1402  Regs.b.ah = 0x53;
1403 
1404  /* Function 05h: CPU idle */
1405  Regs.b.al = 0x05;
1406 
1407  /* Call INT 15h */
1408  Int386(0x15, &Regs, &Regs);
1409 
1410  /* Check if successfull (CF set on error) */
1411  if (INT386_SUCCESS(Regs))
1412  return;
1413 
1414  /*
1415  * No futher processing here.
1416  * Optionally implement HLT instruction handling.
1417  */
1418 }
unsigned char ah
Definition: pcbios.h:126
int __cdecl Int386(int ivec, REGS *in, REGS *out)
#define INT386_SUCCESS(regs)
Definition: pcbios.h:173
BYTEREGS b
Definition: pcbios.h:157
unsigned char al
Definition: pcbios.h:125
Definition: pcbios.h:152

Referenced by MachInit().

◆ PcInitializeBootDevices()

BOOLEAN PcInitializeBootDevices ( VOID  )

Definition at line 470 of file hwdisk.c.

471 {
472  UCHAR DiskCount;
473  BOOLEAN BootDriveReported = FALSE;
474  ULONG i;
475 
476  DiskCount = EnumerateHarddisks(&BootDriveReported);
477 
478  /* Initialize FrLdrBootPath, the boot path we're booting from (the "SystemPartition") */
480 
481  /* Add it, if it's a floppy or cdrom */
482  if ((FrldrBootDrive >= 0x80 && !BootDriveReported) ||
484  {
485  /* TODO: Check if it's really a CDROM drive */
486 
488  PULONG Buffer;
489  ULONG Checksum = 0;
491 
492  /* Read the MBR */
494  {
495  ERR("Reading MBR failed\n");
496  return FALSE;
497  }
498 
501 
502  Signature = Mbr->Signature;
503  TRACE("Signature: %x\n", Signature);
504 
505  /* Calculate the MBR checksum */
506  for (i = 0; i < 2048 / sizeof(ULONG); i++)
507  {
508  Checksum += Buffer[i];
509  }
510  Checksum = ~Checksum + 1;
511  TRACE("Checksum: %x\n", Checksum);
512 
513  /* Fill out the ARC disk block */
515 
517  DiskCount++; // This is not accounted for in the number of pre-enumerated BIOS drives!
518  TRACE("Additional boot drive detected: 0x%02X\n", (int)FrldrBootDrive);
519  }
520 
521  return (DiskCount != 0);
522 }
ULONG Signature
Definition: disk.h:75
#define MachDiskReadLogicalSectors(Drive, Start, Count, Buf)
Definition: machine.h:126
#define TRUE
Definition: types.h:120
BOOLEAN PxeInit(VOID)
Definition: pxe.c:373
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define FALSE
Definition: types.h:117
unsigned char BOOLEAN
Definition: bufpool.h:45
#define ULL(a, b)
Definition: format_msg.c:27
static BOOLEAN DiskGetBootPath(BOOLEAN IsPxe)
Definition: hwdisk.c:417
static BOOLEAN DiskIsDriveRemovable(UCHAR DriveNumber)
Definition: hwdisk.c:402
#define TRACE(s)
Definition: solgame.cpp:4
unsigned char UCHAR
Definition: xmlstorage.h:181
VOID FsRegisterDevice(CHAR *Prefix, const DEVVTBL *FuncTable)
Definition: fs.c:383
PVOID DiskReadBuffer
Definition: hwdisk.c:46
VOID AddReactOSArcDiskInfo(IN PSTR ArcName, IN ULONG Signature, IN ULONG Checksum, IN BOOLEAN ValidPartitionTable)
Definition: archwsup.c:29
UCHAR FrldrBootDrive
#define ERR(fmt,...)
Definition: debug.h:110
unsigned int * PULONG
Definition: retypes.h:1
struct _MASTER_BOOT_RECORD * PMASTER_BOOT_RECORD
unsigned int ULONG
Definition: retypes.h:1
CHAR FrLdrBootPath[MAX_PATH]
Definition: mach.c:34
static UCHAR EnumerateHarddisks(OUT PBOOLEAN BootDriveReported)
Definition: hwdisk.c:342
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
static const WCHAR Signature[]
Definition: parser.c:141
static const DEVVTBL DiskVtbl
Definition: hwdisk.c:238

Referenced by MachInit(), and Pc98InitializeBootDevices().

◆ PcMemGetMemoryMap()

PFREELDR_MEMORY_DESCRIPTOR PcMemGetMemoryMap ( ULONG MemoryMapSize)

Definition at line 599 of file pcmem.c.

600 {
601  ULONG EntryCount;
602  ULONG ExtendedMemorySizeAtOneMB;
603  ULONG ExtendedMemorySizeAtSixteenMB;
604  ULONG EbdaBase, EbdaSize;
605 
606  TRACE("PcMemGetMemoryMap()\n");
607 
609 
611 
612  /* If the BIOS didn't provide a memory map, synthesize one */
613  if (EntryCount == 0)
614  {
615  GetExtendedMemoryConfiguration(&ExtendedMemorySizeAtOneMB,
616  &ExtendedMemorySizeAtSixteenMB);
617 
618  /* Conventional memory */
621  0,
623  LoaderFree);
624 
625  /* Extended memory */
628  1024 * 1024 / PAGE_SIZE,
629  ExtendedMemorySizeAtOneMB * 1024 / PAGE_SIZE,
630  LoaderFree);
631 
632  if (ExtendedMemorySizeAtSixteenMB != 0)
633  {
634  /* Extended memory at 16MB */
637  0x1000000 / PAGE_SIZE,
638  ExtendedMemorySizeAtSixteenMB * 64 * 1024 / PAGE_SIZE,
639  LoaderFree);
640  }
641 
642  /* Check if we have an EBDA and get it's location */
643  if (GetEbdaLocation(&EbdaBase, &EbdaSize))
644  {
645  /* Add the descriptor */
648  (EbdaBase / PAGE_SIZE),
649  ADDRESS_AND_SIZE_TO_SPAN_PAGES(EbdaBase, EbdaSize),
651  }
652  }
653 
654  /* Setup some protected ranges */
655  SetMemory(PcMemoryMap, 0x000000, 0x01000, LoaderFirmwarePermanent); // Realmode IVT / BDA
656  SetMemory(PcMemoryMap, 0x0A0000, 0x50000, LoaderFirmwarePermanent); // Video memory
657  SetMemory(PcMemoryMap, 0x0F0000, 0x10000, LoaderSpecialMemory); // ROM
658  SetMemory(PcMemoryMap, 0xFFF000, 0x01000, LoaderSpecialMemory); // unusable memory (do we really need this?)
659 
660  *MemoryMapSize = PcMemFinalizeMemoryMap(PcMemoryMap);
661  return PcMemoryMap;
662 }
ULONG PcMapCount
Definition: pcmem.c:41
#define MAX_BIOS_DESCRIPTORS
Definition: pcbios.h:12
static BOOLEAN GetEbdaLocation(PULONG BaseAddress, PULONG Size)
Definition: pcmem.c:175
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size)
#define TRACE(s)
Definition: solgame.cpp:4
static BOOLEAN GetExtendedMemoryConfiguration(ULONG *pMemoryAtOneMB, ULONG *pMemoryAtSixteenMB)
Definition: pcmem.c:53
static ULONG PcMemGetBiosMemoryMap(PFREELDR_MEMORY_DESCRIPTOR MemoryMap, ULONG MaxMemoryMapSize)
Definition: pcmem.c:235
#define PAGE_SIZE
Definition: env_spec_w32.h:49
ULONG AddMemoryDescriptor(IN OUT PFREELDR_MEMORY_DESCRIPTOR List, IN ULONG MaxCount, IN PFN_NUMBER BasePage, IN PFN_NUMBER PageCount, IN TYPE_OF_MEMORY MemoryType)
Definition: meminit.c:102
FREELDR_MEMORY_DESCRIPTOR PcMemoryMap[MAX_BIOS_DESCRIPTORS+1]
Definition: pcmem.c:40
ULONG PcMemFinalizeMemoryMap(PFREELDR_MEMORY_DESCRIPTOR MemoryMap)
Definition: pcmem.c:547
VOID SetMemory(PFREELDR_MEMORY_DESCRIPTOR MemoryMap, ULONG_PTR BaseAddress, SIZE_T Size, TYPE_OF_MEMORY MemoryType)
Definition: pcmem.c:527
static ULONG PcMemGetConventionalMemorySize(VOID)
Definition: pcmem.c:149
unsigned int ULONG
Definition: retypes.h:1
static VOID PcMemCheckUsableMemorySize(VOID)
Definition: pcmem.c:209

Referenced by MachInit().

◆ PcPrepareForReactOS()

VOID PcPrepareForReactOS ( VOID  )

Definition at line 1490 of file machpc.c.

1491 {
1492  /* On PC, prepare video and turn off the floppy motor */
1495 }
VOID __cdecl DiskStopFloppyMotor(VOID)
Definition: pc98hw.c:1244
VOID PcVideoPrepareForReactOS(VOID)
Definition: pcvideo.c:1161

Referenced by MachInit().

◆ PcVideoClearScreen()

VOID PcVideoClearScreen ( UCHAR  Attr)

Definition at line 1089 of file pcvideo.c.

1090 {
1091  USHORT AttrChar;
1092  USHORT *BufPtr;
1093 
1094  AttrChar = ((USHORT) Attr << 8) | ' ';
1095  for (BufPtr = (USHORT *) VIDEOTEXT_MEM_ADDRESS;
1097  BufPtr++)
1098  {
1100  *BufPtr = AttrChar;
1101  }
1102 }
#define VIDEOTEXT_MEM_SIZE
Definition: pcvideo.c:32
#define VIDEOTEXT_MEM_ADDRESS
Definition: pcvideo.c:31
#define __WARNING_DEREF_NULL_PTR
Definition: suppress.h:32
unsigned short USHORT
Definition: pedump.c:61
#define _PRAGMA_WARNING_SUPPRESS(x)
Definition: suppress.h:28

Referenced by MachInit().

◆ PcVideoCopyOffScreenBufferToVRAM()

VOID PcVideoCopyOffScreenBufferToVRAM ( PVOID  Buffer)

Definition at line 1048 of file pcvideo.c.

1049 {
1050  USHORT BanksToCopy;
1051  ULONG BytesInLastBank;
1052  USHORT CurrentBank;
1053  ULONG BankSize;
1054 
1055  /* PcVideoWaitForVerticalRetrace(); */
1056 
1057  /* Text mode (BIOS or VESA) */
1058  if (VideoTextMode == DisplayMode)
1059  {
1061  }
1062  /* VESA graphics mode */
1064  {
1068 
1069  /* Copy all the banks but the last one because
1070  * it is probably a partial bank */
1071  for (CurrentBank = 0; CurrentBank < BanksToCopy; CurrentBank++)
1072  {
1073  PcVideoSetMemoryBank(CurrentBank);
1074  RtlCopyMemory((PVOID) VIDEOVGA_MEM_ADDRESS, (char *) Buffer + CurrentBank * BankSize, BankSize);
1075  }
1076 
1077  /* Copy the remaining bytes into the last bank */
1078  PcVideoSetMemoryBank(CurrentBank);
1079  RtlCopyMemory((PVOID)VIDEOVGA_MEM_ADDRESS, (char *) Buffer + CurrentBank * BankSize, BytesInLastBank);
1080  }
1081  /* BIOS graphics mode */
1082  else
1083  {
1084  UNIMPLEMENTED;
1085  }
1086 }
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
static SVGA_MODE_INFORMATION VesaVideoModeInformation
Definition: pcvideo.c:119
static BOOLEAN VesaVideoMode
Definition: pcvideo.c:118
#define VIDEOVGA_MEM_ADDRESS
Definition: pcvideo.c:30
#define VIDEOTEXT_MEM_ADDRESS
Definition: pcvideo.c:31
static VOID PcVideoSetMemoryBank(USHORT BankNumber)
Definition: pcvideo.c:850
Definition: bufpool.h:45
static VIDEODISPLAYMODE DisplayMode
Definition: pcvideo.c:117
USHORT BytesPerScanLine
Definition: pcvideo.c:65
unsigned short USHORT
Definition: pedump.c:61
USHORT WindowGranularity
Definition: pcvideo.c:60
unsigned int ULONG
Definition: retypes.h:1
#define UNIMPLEMENTED
Definition: debug.h:115
USHORT HeightInPixels
Definition: pcvideo.c:68
ULONG PcVideoGetBufferSize(VOID)
Definition: pcvideo.c:970

Referenced by MachInit().

◆ PcVideoGetBufferSize()

ULONG PcVideoGetBufferSize ( VOID  )

Definition at line 970 of file pcvideo.c.

971 {
973 }
static ULONG ScreenHeight
Definition: pcvideo.c:115
static ULONG BytesPerScanLine
Definition: pcvideo.c:116

Referenced by MachInit(), and PcVideoCopyOffScreenBufferToVRAM().

◆ PcVideoGetDisplaySize()

VOID PcVideoGetDisplaySize ( PULONG  Width,
PULONG  Height,
PULONG  Depth 
)

Definition at line 946 of file pcvideo.c.

947 {
948  *Width = ScreenWidth;
949  *Height = ScreenHeight;
951  {
953  {
954  /* 16-bit color modes give green an extra bit (5:6:5)
955  * 15-bit color modes have just 5:5:5 for R:G:B */
956  *Depth = (6 == VesaVideoModeInformation.GreenMaskSize ? 16 : 15);
957  }
958  else
959  {
961  }
962  }
963  else
964  {
965  *Depth = 0;
966  }
967 }
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
Definition: exfuncs.h:814
static SVGA_MODE_INFORMATION VesaVideoModeInformation
Definition: pcvideo.c:119
static BOOLEAN VesaVideoMode
Definition: pcvideo.c:118
static ULONG ScreenHeight
Definition: pcvideo.c:115
static VIDEODISPLAYMODE DisplayMode
Definition: pcvideo.c:117
static ULONG ScreenWidth
Definition: pcvideo.c:114

Referenced by MachInit().

◆ PcVideoGetFontsFromFirmware()

VOID PcVideoGetFontsFromFirmware ( PULONG  RomFontPointers)

Definition at line 976 of file pcvideo.c.

977 {
978  REGS BiosRegs;
979 
980  /* Get the address of the BIOS ROM fonts.
981  Int 10h, AX=1130h, BH = pointer specifier
982  returns: es:bp = address */
983  BiosRegs.d.eax = 0x1130;
984  BiosRegs.b.bh = ROM_8x14CharacterFont;
985  Int386(0x10, &BiosRegs, &BiosRegs);
986  RomFontPointers[0] = BiosRegs.w.es << 4 | BiosRegs.w.bp;
987 
988  BiosRegs.b.bh = ROM_8x8DoubleDotFontLo;
989  Int386(0x10, &BiosRegs, &BiosRegs);
990  RomFontPointers[1] = BiosRegs.w.es << 16 | BiosRegs.w.bp;
991 
992  BiosRegs.b.bh = ROM_8x8DoubleDotFontHi;
993  Int386(0x10, &BiosRegs, &BiosRegs);
994  RomFontPointers[2] = BiosRegs.w.es << 16 | BiosRegs.w.bp;
995 
996  BiosRegs.b.bh = ROM_AlphaAlternate;
997  Int386(0x10, &BiosRegs, &BiosRegs);
998  RomFontPointers[3] = BiosRegs.w.es << 16 | BiosRegs.w.bp;
999 
1000  BiosRegs.b.bh = ROM_8x16Font;
1001  Int386(0x10, &BiosRegs, &BiosRegs);
1002  RomFontPointers[4] = BiosRegs.w.es << 16 | BiosRegs.w.bp;
1003 
1004  BiosRegs.b.bh = ROM_Alternate9x16Font;
1005  Int386(0x10, &BiosRegs, &BiosRegs);
1006  RomFontPointers[5] = BiosRegs.w.es << 16 | BiosRegs.w.bp;
1007 }
unsigned long eax
Definition: pcbios.h:85
unsigned short es
Definition: pcbios.h:115
int __cdecl Int386(int ivec, REGS *in, REGS *out)
BYTEREGS b
Definition: pcbios.h:157
DWORDREGS d
Definition: pcbios.h:155
unsigned char bh
Definition: pcbios.h:129
#define RomFontPointers
Definition: winldr.c:422
unsigned short bp
Definition: pcbios.h:112
Definition: pcbios.h:152
WORDREGS w
Definition: pcbios.h:156

Referenced by MachInit().

◆ PcVideoGetPaletteColor()

VOID PcVideoGetPaletteColor ( UCHAR  Color,
UCHAR Red,
UCHAR Green,
UCHAR Blue 
)

Definition at line 1129 of file pcvideo.c.

1130 {
1135 }
Definition: bl.h:202
#define READ_PORT_UCHAR(p)
Definition: pc98vid.h:21
#define VIDEOPORT_PALETTE_READ
Definition: pcvideo.c:25
Definition: bl.h:199
Definition: bl.h:200
unsigned char UCHAR
Definition: xmlstorage.h:181
#define WRITE_PORT_UCHAR(p, d)
Definition: pc98vid.h:20
#define VIDEOPORT_PALETTE_DATA
Definition: pcvideo.c:27

Referenced by MachInit().

◆ PcVideoHideShowTextCursor()

VOID PcVideoHideShowTextCursor ( BOOLEAN  Show)

Definition at line 1035 of file pcvideo.c.

1036 {
1037  if (Show)
1038  {
1039  PcVideoDefineCursor(0x0D, 0x0E);
1040  }
1041  else
1042  {
1043  PcVideoDefineCursor(0x20, 0x00);
1044  }
1045 }
static VOID PcVideoDefineCursor(UCHAR StartScanLine, UCHAR EndScanLine)
Definition: pcvideo.c:317

Referenced by MachInit(), and PcVideoPrepareForReactOS().

◆ PcVideoIsPaletteFixed()

BOOLEAN PcVideoIsPaletteFixed ( VOID  )

Definition at line 1114 of file pcvideo.c.

1115 {
1116  return FALSE;
1117 }
#define FALSE
Definition: types.h:117

Referenced by MachInit().

◆ PcVideoPrepareForReactOS()

VOID PcVideoPrepareForReactOS ( VOID  )

Definition at line 1161 of file pcvideo.c.

1162 {
1163  // PcVideoSetMode80x50_80x43();
1166 }
static BOOLEAN PcVideoSetMode80x25(VOID)
Definition: pcvideo.c:603
#define FALSE
Definition: types.h:117
VOID PcVideoHideShowTextCursor(BOOLEAN Show)
Definition: pcvideo.c:1035

Referenced by PcPrepareForReactOS().

◆ PcVideoPutChar()

VOID PcVideoPutChar ( int  Ch,
UCHAR  Attr,
unsigned  X,
unsigned  Y 
)

Definition at line 1105 of file pcvideo.c.

1106 {
1107  USHORT *BufPtr;
1108 
1109  BufPtr = (USHORT *) (ULONG_PTR)(VIDEOTEXT_MEM_ADDRESS + Y * BytesPerScanLine + X * 2);
1110  *BufPtr = ((USHORT) Attr << 8) | (Ch & 0xff);
1111 }
#define Y(I)
#define Ch(x, y, z)
Definition: sha2.c:141
static ULONG BytesPerScanLine
Definition: pcvideo.c:116
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define VIDEOTEXT_MEM_ADDRESS
Definition: pcvideo.c:31
unsigned short USHORT
Definition: pedump.c:61

Referenced by MachInit().

◆ PcVideoSetDisplayMode()

VIDEODISPLAYMODE PcVideoSetDisplayMode ( char DisplayMode,
BOOLEAN  Init 
)

Definition at line 888 of file pcvideo.c.

889 {
891 
892  if (NULL == DisplayModeName || '\0' == *DisplayModeName)
893  {
895  return DisplayMode;
896  }
897 
899  {
900  TRACE("CGA or other display adapter detected.\n");
901  printf("CGA or other display adapter detected.\n");
902  printf("Using 80x25 text mode.\n");
904  }
906  {
907  TRACE("EGA display adapter detected.\n");
908  printf("EGA display adapter detected.\n");
909  printf("Using 80x25 text mode.\n");
911  }
912  else /* if (VIDEOCARD_VGA == PcVideoDetectVideoCard()) */
913  {
914  TRACE("VGA display adapter detected.\n");
915 
916  if (0 == _stricmp(DisplayModeName, "NORMAL_VGA"))
917  {
919  }
920  else if (0 == _stricmp(DisplayModeName, "EXTENDED_VGA"))
921  {
923  }
924  else
925  {
926  VideoMode = (USHORT)strtoul(DisplayModeName, NULL, 0);
927  }
928  }
929 
930  if (! PcVideoSetMode(VideoMode))
931  {
932  printf("Error: unable to set video display mode 0x%x\n", (int) VideoMode);
933  printf("Defaulting to 80x25 text mode.\n");
934  printf("Press any key to continue.\n");
935  PcConsGetCh();
936 
938  }
939 
941 
942  return DisplayMode;
943 }
#define VIDEOCARD_CGA_OR_OTHER
Definition: pcvideo.c:34
UINT32 strtoul(const char *String, char **Terminator, UINT32 Base)
Definition: utclib.c:696
static BOOLEAN PcVideoSetMode(USHORT NewMode)
Definition: pcvideo.c:717
#define VIDEOMODE_EXTENDED_TEXT
Definition: pcvideo.c:39
#define VIDEOMODE_NORMAL_TEXT
Definition: pcvideo.c:38
#define _stricmp
Definition: cat.c:22
smooth NULL
Definition: ftsmooth.c:416
static VOID PcVideoSetBlinkBit(BOOLEAN Enable)
Definition: pcvideo.c:825
#define TRACE(s)
Definition: solgame.cpp:4
static ULONG PcVideoDetectVideoCard(VOID)
Definition: pcvideo.c:137
static VIDEODISPLAYMODE DisplayMode
Definition: pcvideo.c:117
#define VIDEOCARD_EGA
Definition: pcvideo.c:35
unsigned short USHORT
Definition: pedump.c:61
int PcConsGetCh(void)
Definition: pccons.c:90
#define printf
Definition: config.h:203

Referenced by MachInit().

◆ PcVideoSetPaletteColor()

VOID PcVideoSetPaletteColor ( UCHAR  Color,
UCHAR  Red,
UCHAR  Green,
UCHAR  Blue 
)

Definition at line 1120 of file pcvideo.c.

1121 {
1126 }
Definition: bl.h:202
Definition: bl.h:199
Definition: bl.h:200
unsigned char UCHAR
Definition: xmlstorage.h:181
#define WRITE_PORT_UCHAR(p, d)
Definition: pc98vid.h:20
#define VIDEOPORT_PALETTE_WRITE
Definition: pcvideo.c:26
#define VIDEOPORT_PALETTE_DATA
Definition: pcvideo.c:27

Referenced by MachInit().

◆ PcVideoSetTextCursorPosition()

VOID PcVideoSetTextCursorPosition ( UCHAR  X,
UCHAR  Y 
)

Definition at line 1010 of file pcvideo.c.

1011 {
1012  REGS Regs;
1013 
1014  /* Int 10h AH=02h
1015  * VIDEO - SET CURSOR POSITION
1016  *
1017  * AH = 02h
1018  * BH = page number
1019  * 0-3 in modes 2&3
1020  * 0-7 in modes 0&1
1021  * 0 in graphics modes
1022  * DH = row (00h is top)
1023  * DL = column (00h is left)
1024  * Return:
1025  * Nothing
1026  */
1027  Regs.b.ah = 0x02;
1028  Regs.b.bh = 0x00;
1029  Regs.b.dh = Y;
1030  Regs.b.dl = X;
1031  Int386(0x10, &Regs, &Regs);
1032 }
#define Y(I)
unsigned char ah
Definition: pcbios.h:126
unsigned char dh
Definition: pcbios.h:135
int __cdecl Int386(int ivec, REGS *in, REGS *out)
unsigned char dl
Definition: pcbios.h:134
BYTEREGS b
Definition: pcbios.h:157
unsigned char bh
Definition: pcbios.h:129
Definition: pcbios.h:152
#define X(b, s)

Referenced by MachInit().

◆ PcVideoSync()

VOID PcVideoSync ( VOID  )

Definition at line 1138 of file pcvideo.c.

1139 {
1141  {
1142  /*
1143  * Keep reading the port until bit 3 is clear
1144  * This waits for the current retrace to end and
1145  * we can catch the next one so we know we are
1146  * getting a full retrace.
1147  */
1148  }
1149 
1150  while (!(READ_PORT_UCHAR((UCHAR*)VIDEOPORT_VERTICAL_RETRACE) & 0x08))
1151  {
1152  /*
1153  * Keep reading the port until bit 3 is set
1154  * Now that we know we aren't doing a vertical
1155  * retrace we need to wait for the next one.
1156  */
1157  }
1158 }
#define READ_PORT_UCHAR(p)
Definition: pc98vid.h:21
unsigned char UCHAR
Definition: xmlstorage.h:181
#define VIDEOPORT_VERTICAL_RETRACE
Definition: pcvideo.c:28

Referenced by MachInit().

Variable Documentation

◆ FrldrBootDrive

UCHAR FrldrBootDrive

◆ FrldrBootPartition

ULONG FrldrBootPartition

◆ PcBiosMapCount

ULONG PcBiosMapCount

Definition at line 38 of file pcmem.c.

Referenced by DetectAcpiBios(), Pc98MemGetMemoryMap(), and PcMemGetBiosMemoryMap().

◆ PcBiosMemoryMap

BIOS_MEMORY_MAP PcBiosMemoryMap[]

Definition at line 37 of file pcmem.c.

Referenced by DetectAcpiBios(), Pc98MemGetMemoryMap(), and PcMemGetBiosMemoryMap().