home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1990
/
08
/
grdlagen
/
bios5.pas
next >
Wrap
Pascal/Delphi Source File
|
1990-05-14
|
5KB
|
128 lines
(* ====================================================== *)
(* BIOS5.PAS *)
(* Das EGA/VGA-BIOS: *)
(* Interne Datenstrukturen *)
(* (c) 1990 Matthias Uphoff & TOOLBOX *)
(* ====================================================== *)
UNIT Bios5;
INTERFACE
TYPE (* ---------- Save Table - Datenstrukturen --------- *)
(* Puffer für Defaultpalette u.Ä. *)
SaveAreaType = ARRAY[0..255] OF Byte;
(* Deskriptor für alternativen Textmodus-Font *)
TextFontDescriptor =
RECORD
CharSize: Byte; (* Zeichenhöhe *)
BlockNr: Byte; (* Speicherblock *)
NrOfChar: Word; (* Anzahl Zeichen *)
FirstChar: Word; (* 1. Zeichen *)
FontPtr: Pointer; (* Zeiger auf Zeichenmatritzen *)
Rows: Byte; (* Darstellbare Textzeilen *)
Modes: ARRAY[0..15] OF Byte; (* zulässige Modi *)
END;
(* Deskriptor für alternativen Textmodus-Font *)
GraFontDescriptor =
RECORD
Rows: Byte; (* Bildschirm-Textzeilen *)
CharSize: Word; (* Zeichenhöhe *)
FontPtr: Pointer; (* Zeiger auf Zeichensatz *)
Modes: ARRAY[0..15] OF Byte; (* zulässige Modi *)
END;
(* ----- Secondary Save Table - Datenstrukturen ---- *)
(* Deskriptor für zweiten Textmodus-Font *)
SecTextFontDescriptor =
RECORD
CharSize: Byte; (* Zeichenhöhe *)
BlockNr: Byte; (* Speicherblock *)
Unused: Byte; (* unbenutzt *)
FontPtr: Pointer; (* Zeiger auf Zeichenmatritzen *)
Modes: ARRAY[0..15] OF Byte; (* zulässige Modi *)
END;
(* Deskriptor für alternative Default-Farbpalette *)
PalDescriptor =
RECORD
UnderlineFlag: Byte; (* Flag für Unterstreichen *)
Unused: ARRAY[0..2] OF Byte; (* unbenutzt *)
NrOfPalRegs: Word; (* Anzahl der Palettenreg. *)
FirstPalReg: Word; (* Erstes Palettenreg. *)
PalPtr: Pointer; (* Zeiger auf Palettenwerte *)
NrOfColorRegs: Word; (* Anzahl der Farbreg. *)
FirstColorReg: Word; (* Erstes Farbreg. *)
ColorPtr: Pointer; (* Zeiger auf Farbwerte *)
Modes: ARRAY[0..15] OF Byte; (* zulässige Modi *)
END;
(* -------------- Die Zeigertabellen --------------- *)
(* Die Secondary Save Table - Zeigertabelle (nur VGA) *)
SecPtrTableType =
RECORD
NrOfPointers: Word; (* Anzahl Einträge *)
(* Zeiger auf Displaycode-Tabelle: *)
DisplayCodePtr: Pointer;
(* Zeiger auf Deskriptor für 2. Textmodus-Font *)
SecTextFontPtr: ^SecTextFontDescriptor;
(* Zeiger auf Deskriptor für alternative Farben *)
PalPtr: ^PalDescriptor;
END;
(* Die Save Table - Zeigertabelle *)
PtrTableType =
RECORD
(* Zeiger auf Video-Parametertabelle im BIOS-ROM *)
ParamTablePtr: Pointer;
(* Zeiger auf Puffer für Default-Palettenwerte *)
SaveAreaPtr: ^SaveAreaType;
(* Zeiger auf Textmodus-Zeichensatzdeskriptor *)
TextFontPtr: ^TextFontDescriptor;
(* Zeiger auf Grafikmodus-Zeichnesatzdeskriptor *)
GraFontPtr: ^GraFontDescriptor;
(* Zeiger auf zweite Zeigertabelle (nur VGA) *)
SecSavePtr: ^SecPtrTableType;
Unused1, Unused2: Pointer; (* unbenutzt *)
END;
(* ------- Cursorposition für eine Bildseite ------- *)
PosType =
RECORD
x,y: Byte;
END;
VAR (* ----------- Der BIOS-Variablenbereich ------------ *)
VideoMode: Byte ABSOLUTE 0:$449; (* Videomodus *)
NrOfColumns: Word ABSOLUTE 0:$44A; (* Textspalten *)
PageSize: Word ABSOLUTE 0:$44C; (* Bildseitengröße *)
PageStart: Word ABSOLUTE 0:$44E; (* Start Bildseite *)
(* Cursorposition für 8 Bildseiten *)
CursorPos: ARRAY[0..7] OF PosType ABSOLUTE 0:$450;
CursorStart: Byte ABSOLUTE 0:$460; (* Cursorform *)
CursorEnd: Byte ABSOLUTE 0:$461;
ActivePage: Byte ABSOLUTE 0:$462; (* Aktive Bildseite *)
CRTCPortAddr: Word ABSOLUTE 0:$463; (* CRTC-Portadresse *)
ModeCtrlReg: Byte ABSOLUTE 0:$465;
ColorSelectReg: Byte ABSOLUTE 0:$466;
NrOfRows: Byte ABSOLUTE 0:$484; (* Textzeilen *)
CharSize: Word ABSOLUTE 0:$485; (* Zeichenhöhe - 1 *)
StatusBits: Byte ABSOLUTE 0:$487; (* Div. Statusinfos *)
ConfigBits: Byte ABSOLUTE 0:$488; (* DIP-Schalter *)
(* Der Save Table Pointer *)
SaveTablePtr: ^PtrTableType ABSOLUTE 0:$4A8;
(* ====================================================== *)
IMPLEMENTATION
BEGIN (* Initialisierungsteil *)
END.
(* ====================================================== *)
(* BIOS5.PAS *)