+++ /dev/null
-/*++
-
-Copyright (c) 1998-2001 Klaus P. Gerlicher
-
-Module Name:
-
- hardwar.h
-
-Abstract:
-
- HEADER for hardware.c
-
-Environment:
-
- LINUX 2.2.X
- Kernel mode only
-
-Author:
-
- Klaus P. Gerlicher
-
-Revision History:
-
- 15-Nov-2000: general cleanup of source files
-
-Copyright notice:
-
- This file may be distributed under the terms of the GNU Public License.
-
---*/
-typedef struct tagWindow
-{
- USHORT y,cy;
- USHORT usCurX,usCurY;
- BOOLEAN bScrollDisabled;
-}WINDOW,*PWINDOW;
-
-// pointer indirection table for output functions
-typedef struct _OUTPUT_HANDLERS
-{
- void (*CopyLineTo) (USHORT dest,USHORT src);
- void (*PrintGraf) (ULONG x,ULONG y,UCHAR c);
- void (*Flush) (void);
- void (*ClrLine) (ULONG line);
- void (*InvertLine) (ULONG line);
- void (*HatchLine) (ULONG line);
- void (*PrintLogo) (BOOLEAN bShow);
- void (*PrintCursor) (BOOLEAN bForce);
- void (*SaveGraphicsState) (void);
- void (*RestoreGraphicsState) (void);
- void (*ShowCursor) (void);
- void (*HideCursor) (void);
- void (*SetForegroundColor) (ECOLORS);
- void (*SetBackgroundColor) (ECOLORS);
-}OUTPUT_HANDLERS,*POUTPUT_HANDLERS;
-
-// pointer indirection table for input functions
-typedef struct _INPUT_HANDLERS
-{
- UCHAR (*GetKeyPolled) (void);
- void (*FlushKeyboardQueue) (void);
-}INPUT_HANDLERS,*PINPUT_HANDLERS;
-
-extern OUTPUT_HANDLERS ohandlers;
-extern INPUT_HANDLERS ihandlers;
-
-enum
-{
- REGISTER_WINDOW = 0 ,
- DATA_WINDOW ,
- SOURCE_WINDOW ,
- OUTPUT_WINDOW ,
- OUTPUT_WINDOW_UNBUFFERED
-};
-
-typedef enum _ETERMINALMODE
-{
- TERMINAL_MODE_HERCULES_GRAPHICS = 0 ,
- TERMINAL_MODE_HERCULES_TEXT,
- TERMINAL_MODE_VGA_TEXT,
- TERMINAL_MODE_SERIAL,
- TERMINAL_MODE_NONE
-}ETERMINALMODE;
-
-extern ETERMINALMODE eTerminalMode;
-
-extern WINDOW wWindow[];
-extern BOOLEAN bRev;
-extern BOOLEAN bGrayed;
-extern BOOLEAN bCursorEnabled;
-
-// install and remove handler
-BOOLEAN ConsoleInit(void);
-void ConsoleShutdown(void);
-
-// OUTPUT handler
-void Print(USHORT Window,LPSTR p);
-void SetBackgroundColor(ECOLORS c);
-void SetForegroundColor(ECOLORS c);
-void Clear(USHORT window);
-void PutChar(LPSTR p,ULONG x,ULONG y);
-void ClrLine(ULONG line);
-void ShowCursor(void);
-void HideCursor(void);
-void EnableScroll(USHORT Window);
-void DisableScroll(USHORT Window);
-void CopyLineTo(USHORT dest,USHORT src);
-void PrintLogo(BOOLEAN bShow);
-void PrintCursor(BOOLEAN bForce);
-void PrintGraf(ULONG x,ULONG y,UCHAR c);
-void ScrollUp(USHORT Window);
-void Home(USHORT Window);
-void InvertLine(ULONG line);
-void FillLine(ULONG line,UCHAR c);
-void PrintTemplate(void);
-void PrintCaption(void);
-void ClrLineToEnd(USHORT Window,ULONG line,ULONG x);
-void SuspendPrintRingBuffer(BOOLEAN bSuspend);
-void HatchLine(ULONG line);
-void SaveGraphicsState(void);
-void RestoreGraphicsState(void);
-void SetWindowGeometry(PVOID pWindow);
-
-// INPUT handler
-UCHAR GetKeyPolled(void);
-void FlushKeyboardQueue(void);
-
-
-BOOLEAN PrintRingBufferOffset(ULONG ulLines,ULONG ulOffset);
-BOOLEAN PrintRingBufferHome(ULONG ulLines);
-void PrintRingBuffer(ULONG ulLines);
-ULONG LinesInRingBuffer(void);
-void ReplaceRingBufferCurrent(LPSTR s);
-void EmptyRingBuffer(void);
-void CheckRingBuffer(void);
-BOOLEAN AddToRingBuffer(LPSTR p);
-void ResetColor(void);
-
-extern ULONG GLOBAL_SCREEN_WIDTH;
-extern ULONG GLOBAL_SCREEN_HEIGHT;
-
-extern ULONG ulOutputLock;
-
-#define Acquire_Output_Lock() \
-{ \
- save_flags(ulOutputLock); \
- cli(); \
-}
-
-#define Release_Output_Lock() \
- restore_flags(ulOutputLock);
-
-#define NOT_IMPLEMENTED()
-
-extern USHORT usCaptionColor;
-#define COLOR_CAPTION usCaptionColor
-extern USHORT usCaptionText;
-#define COLOR_TEXT usCaptionText
-extern USHORT usForegroundColor;
-#define COLOR_FOREGROUND usForegroundColor
-extern USHORT usBackgroundColor;
-
-#undef COLOR_BACKGROUND
-#define COLOR_BACKGROUND usBackgroundColor
-extern USHORT usHiLiteColor;
-#define COLOR_HILITE usHiLiteColor