Category : Alternate Operating Systems - Quarterdeck DesqView, CP/M, etc
Archive   : PCCAPP.ZIP
Filename : PCCONFIG.H

 
Output of file : PCCONFIG.H contained in archive : PCCAPP.ZIP
/*
* This file is part of the Choices Operating System
* Developed by: The TAPESTRY Parallel Computing Laboratory
* University of Illinois at Urbana-Champaign
* Department of Computer Science
* 1304 W. Springfield Ave.
* Urbana, IL 61801
*
* Copyright (c) 1987, 1988, 1989, 1990, 1991, 1992
* The University of Illinois Board of Trustees.
* All Rights Reserved.
* Distribution restricted under license agreement.
*
* Author: Lee Lup Yuen ([email protected])
* Project Manager and Principal Investigator: Roy Campbell ([email protected])
*
* Funded by: NSF TAPESTRY Grant No. 1-5-30035, NASA ICLASS Grant
* No. 1-5-25469 and No. NSG1471 and AT&T Metronet Grant No. 1-5-37411.
*/
/*
* PCConfiguration.h: PC configuration information. This file is shared by
* the PC-Choices kernel and loadcoff.
*
*/

#ifndef PCConfiguration_h
#define PCConfiguration_h
#ifdef __GNUG__
#pragma once
#pragma interface
#endif

// This file is shared by the PC-Choices kernel and loadcoff. If you change
// anything in this file, you must recompile both programs.

// CAUTION: This file is to be compiled by both g++ and Turbo C++.
// g++ will align structure members that are words and double-words,
// conflicting with the layout produced by Turbo C++. Therefore, in
// any structure declared in this file, double-word members MUST ALWAYS
// be defined before the word members, which MUST ALWAYS be defined
// before the byte members. This causes both compilers to produce the same
// layout even with alignment.

// uint16 is an unsigned int of 16 bits, uint32 is an unsigned int of 32 bits.

#ifdef __MSDOS__
typedef unsigned int uint16;
typedef unsigned long uint32;
#else
typedef unsigned short uint16;
typedef unsigned int uint32;
#endif

struct PCConfiguration
{
// This struct is used by loadcoff to pass configuration information
// about the PC to the PC-Choices kernel. The fields below whose names
// begin with lowercase letters are automatically configured by
// loadcoff; the rest are set according to the configuration
// file read by loadcoff.

// REMEMBER: Always put double-word members before word members and
// put word members before byte members. See note above on alignment.

// Amount of kernel working memory to be allocated, in Kb.
uint32 KernelWorkingMemorySize;

// Address to branch to when PC-Choices wants to return to real mode.
uint32 choicesReturn;

// Starting address of memory to be preserved so that choicesReturn
// will work.
uint32 choicesReturnArea;

// Size of memory starting at choicesReturnArea to be preserved so that
// choicesReturn will work.
uint32 choicesReturnSize;

// Base address of VirtualPC task area.
uint32 virtualPCTaskBase;

// Top address of VirtualPC task area + 1.
uint32 virtualPCTaskBound;

// Base address of VirtualPC buffer area.
uint32 virtualPCBufferBase;

// Top address of VirtualPC buffer area + 1.
uint32 virtualPCBufferBound;

// Extended memory in Kb.
uint16 extendedMemorySize;

// Program segment prefix of this DOS process.
uint16 psp;

// Store the interrupt masks for the interrupt controllers. These
// masks will be restored when we return to DOS.
unsigned char interruptMask1, interruptMask2;

// True if memory allocation should be displayed.
unsigned char DisplayMemoryAllocation;

// True if PS/2 keyboard-handling should be used.
unsigned char PS2Keyboard;

// True if PS/2 timer-handling should be used.
unsigned char PS2Timer;

// Entry N is true if IRQ N should be enabled. IRQ0 is always enabled,
// since it's the timer.
unsigned char IRQEnabled [16];

// A copy of all the PC interrupt vectors, to be restored later.
unsigned char interruptVectors [1024];
};

// Pointer to the actual struct. Defined in PCKernel.cc and set in boot.s.
extern PCConfiguration *ThePCConfiguration;

#endif /* PCCPUConfiguration_h */


  3 Responses to “Category : Alternate Operating Systems - Quarterdeck DesqView, CP/M, etc
Archive   : PCCAPP.ZIP
Filename : PCCONFIG.H

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/