home *** CD-ROM | disk | FTP | other *** search
- (* ====================================================== *)
- (* 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 *)