-----------------------------------------------------------------------------

	Copyright (c) Berkeley Softworks 1991 -- All Rights Reserved

PROJECT:	PC GEOS
MODULE:		Include
FILE:		README

DESCRIPTION:
	This file contains documentation about the Include directory and
	the CInclude directory.

	$Id: README,v 1.1 97/04/04 16:23:38 newdeal Exp $

-----------------------------------------------------------------------------

This is a summary of all of the PC/GEOS include files and their function.  This
file covers both the Include/ directory (object assembly) and the Cinclude/
directory (C).

File Suffixes
-------------
.mk	Files read by pmake.  These files tell pmake how to build standard
	PC/GEOS geodes.
.def	Object assembly include file
.h	C include file
.ui	UIC include file (soon to disappear)
.ldf	Library definition file (binary files created by glue)


.mk files (not checked for 2.0)
---------
appl.mk
driver.mk
geode.mk
geos.mk
gpath.mk
lib.mk
test.mk		Definitions for creating PC GEOS test files
tool.mk
tools.mk


.ldf files
----------
cards.ldf	Library definition file for cards library


Global .def and .h files
------------------------
	**** NOTE: .def files listed below have been updated for 2.0
	****       unless marked with a **
All .def files explicitly include other .def files that they need except for
geos.def, which is assumed to always be included.

Kernel (37)
-----------
geos.def, geos.h:
	Global constants, structures and macros

ec.def, ec.h:
	Definitions for error checking macros and kernel routines

heap.def, heap.h:
	Definitions for the heap module of the kernel

localmem.def, localmem.h:
	Definitions for the local memory module of the kernel

file.def, file.h:
	Definitions for the file module of the kernel

geode.def, geode.h:
	Definitions for the geode module of the kernel

resource.def, resource.h:
	Definitions for resource access routines and macros, definition of
	idata, udata and dgroup

object.def, object.h:
	Definitions for the object module of the kernel

fileStr.def, fileStr.h:
	Definitions of the GEOS file structure

fileEnum.def, fileEnum.h:
	Definitions for the FileEnum routine

driver.def, driver.h:
	Definitions for drivers

library.def, library.h:
	Definitions for libraries

sem.def, sem.h:
	Definitions of semaphore routines and structures

thread.def, thread.h:
	Definitions of thread routines and structures

timer.def, timer.h:
	Definitions of timer routines and structures

vm.def, vm.h:
	Definitions of VM routines and structures

dbase.def, dbase.h:
	Definitions of database routines and structures

drive.def, drive.h:
	Definitions of (logical) drive routines and structures

disk.def, disk.h:
	Definitions of disk routines and structures

system.def, system.h:
	Definitions of system related routines and structures

sysstats.def, sysstats.h:
	Definitions of system statistics related routines and structures

timedate.def, timedate.h:
	Definitions of routines and structures to get/set the time and date

initfile.def, initfile.h:
	Definitions of .ini file routines and structures

chunkArr.def, chunkArr.h:
	Definitions of .ini file routines and structures

char.def, char.h:
	Definition of the GEOS character set

input.def, input.h:
	Definitions of keyboard and mouse structures

localize.def, localize.h:
	Definitions of localization routines and structures

lexical.def, lexical.h:
	Definitions of lexical ordering

fontID.def, fontID.h:
	Definitions for font IDs

font.def, font.h:
	Definitions of font structures and routines

graphics.def, graphics.h:
	Definitions of graphics structures and routines

gstring.def, gstring.h:
	Definitions of graphics string structures and routines

text.def, text.h: *** .H FILE DOES NOT EXIST ***
	Definitions of advanced text structures and routines

win.def, win.h:
	Definitions of window system structures and routines

Object .def files (in Objects/)
-------------------------------
metaC.def, metaC.goh:
	Definitions for MetaClass and for standard linking mechanism

processC.def, processC.goh:
	Definitions for ProcessClass

winC.def, winC.goh:
	Definitions for MetaWindowMethods imported methods

inputC.def, inputC.goh:
	Definitions for MetaInputMethods imported methods

Internal .def and .h files (in Internal/)
-----------------------------------------
	** Note: In general, the internal .def files have not been examined
		 very closely to make them elegant for 2.0, since they will
		 not be released (for even if released they will be obscure)

Kernel (19)
-----------
heapInt.def
	Heap module of the kernel (used by the kernel and the loader)

kLoader.def
	Structure passed from the loader to the kernel (used by the kernel and
	the loader)

geodeStr.def
	Structure of geos executable files and definitions of internal Geode
	routines (used by the kernel, the loader and a few others)

dbaseInt.def
	Internal structures for the dbase code

dos.def
	Internal structures for dos related code

fileInt.def
	Internal structures for the file module

debug.def
	Interface for the debugger

interrup.def
	Internal macros and routines for dealing with interrupts

diskInt.def
	Internal structures for the disk code

driveInt.def
	Internal structures for the drive code

im.def
	Definitions for IMClass and the input manager

swapDr.def
	Interface for swap drivers

tmatrix.def
	Internal structures for transformation matricies

gstate.def
	Internal structure of a gstate

window.def
	Internal structure of a window

kbdMap.def
	Internal structure of a keyboard map

fontDr.def
	Interface to the font drivers

videoDr.def
	Interface to the video drivers

fsDriver.def
	Interface to the file system drivers

kbdDr.def
	Interface to the keyboard drivers

Other (?)
---------
streamDr.def
	Interface to the stream drivers

strDrInt.def
	Internal structures for stream drivers

serialDr.def
	Interface to the serial drivers

parallDr.def
	Interface to the parallel drivers

mouseDr.def
	Interface to the mouse drivers

printDr.def
	Interface to the printer drivers

swap.def
	Interface to the swap library

================== QUESTIONS ==========================================
Segment, esp/glue interface issues:
* Need macro to decode protocol constants from command line args (DecodeXXX)
* GeodeGetResourceHandle, GeodeGetGeodeResourceHandle

Kernel areas not implemented:
* VMSetReloc not implemented (requires a bit somewhere saying that the callback
  is a C routine)
* Graphics string macros (gstring.h) not implemented
* text.h not implemented, GrDrawTextField not implemented
* How to call drivers from C ? (Most likely: one call that has a structure
  defining all the registers)
* Part of win.h is not implemented pending window system work by doug
* GeodeDispatchFromQueue (geode.h)

Areas not yet changed for 2.0 or for C:
* spool.def, spool.uih
* ui.def, generic.uih
* sound.def
* background.def
* grobj.def, grobj.uih
* import.def, import.uih
* cards.def, cards.uih
* deckMap.def
* vmdef.def

What support for SDK ???
* calendar.def
* rolodex.def

Other issues:
* How to deal with VM and DB overrides (currently the routines are not exported)
* ANSI library support
* Floating point support
* Support for writing DLL's (Establish_Dgroup, _loadds)

goc stuff to do:
* finish kbd path stuff
* gstring monikers
* chunks, hints and monikers with artitrary data (make a structure)
=======================================================================
