home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 08 / grdlagen / bios5.pas next >
Pascal/Delphi Source File  |  1990-05-14  |  5KB  |  128 lines

  1. (* ====================================================== *)
  2. (*                        BIOS5.PAS                       *)
  3. (*                    Das EGA/VGA-BIOS:                   *)
  4. (*                 Interne Datenstrukturen                *)
  5. (*           (c) 1990 Matthias Uphoff & TOOLBOX           *)
  6. (* ====================================================== *)
  7.  
  8. UNIT Bios5;
  9.  
  10. INTERFACE
  11.  
  12. TYPE (* ---------- Save Table - Datenstrukturen --------- *)
  13.  
  14.      (* Puffer für Defaultpalette u.Ä. *)
  15.      SaveAreaType = ARRAY[0..255] OF Byte;
  16.  
  17.      (* Deskriptor für alternativen Textmodus-Font *)
  18.      TextFontDescriptor =
  19.      RECORD
  20.        CharSize:  Byte;    (* Zeichenhöhe *)
  21.        BlockNr:   Byte;    (* Speicherblock *)
  22.        NrOfChar:  Word;    (* Anzahl Zeichen *)
  23.        FirstChar: Word;    (* 1. Zeichen *)
  24.        FontPtr:   Pointer; (* Zeiger auf Zeichenmatritzen *)
  25.        Rows:      Byte;    (* Darstellbare Textzeilen *)
  26.        Modes:  ARRAY[0..15] OF Byte; (* zulässige Modi *)
  27.      END;
  28.  
  29.      (* Deskriptor für alternativen Textmodus-Font *)
  30.      GraFontDescriptor =
  31.      RECORD
  32.        Rows:     Byte;     (* Bildschirm-Textzeilen *)
  33.        CharSize: Word;     (* Zeichenhöhe *)
  34.        FontPtr:  Pointer;  (* Zeiger auf Zeichensatz *)
  35.        Modes: ARRAY[0..15] OF Byte; (* zulässige Modi *)
  36.      END;
  37.  
  38.      (* ----- Secondary Save Table - Datenstrukturen ---- *)
  39.  
  40.      (* Deskriptor für zweiten Textmodus-Font *)
  41.      SecTextFontDescriptor =
  42.      RECORD
  43.        CharSize: Byte;     (* Zeichenhöhe *)
  44.        BlockNr:  Byte;     (* Speicherblock *)
  45.        Unused:   Byte;     (* unbenutzt *)
  46.        FontPtr:  Pointer;  (* Zeiger auf Zeichenmatritzen *)
  47.        Modes: ARRAY[0..15] OF Byte;  (* zulässige Modi *)
  48.      END;
  49.  
  50.      (* Deskriptor für alternative Default-Farbpalette *)
  51.      PalDescriptor =
  52.      RECORD
  53.        UnderlineFlag: Byte;  (* Flag für Unterstreichen *)
  54.        Unused: ARRAY[0..2] OF Byte;  (* unbenutzt *)
  55.        NrOfPalRegs: Word;    (* Anzahl der Palettenreg. *)
  56.        FirstPalReg: Word;    (* Erstes Palettenreg. *)
  57.        PalPtr: Pointer;      (* Zeiger auf Palettenwerte *)
  58.        NrOfColorRegs: Word;  (* Anzahl der Farbreg. *)
  59.        FirstColorReg: Word;  (* Erstes Farbreg. *)
  60.        ColorPtr: Pointer;    (* Zeiger auf Farbwerte *)
  61.        Modes: ARRAY[0..15] OF Byte; (* zulässige Modi *)
  62.      END;
  63.  
  64.      (* -------------- Die Zeigertabellen --------------- *)
  65.  
  66.      (* Die Secondary Save Table - Zeigertabelle (nur VGA) *)
  67.      SecPtrTableType =
  68.      RECORD
  69.        NrOfPointers: Word;        (* Anzahl Einträge *)
  70.          (* Zeiger auf Displaycode-Tabelle: *)
  71.        DisplayCodePtr: Pointer;
  72.          (* Zeiger auf Deskriptor für 2. Textmodus-Font *)
  73.        SecTextFontPtr: ^SecTextFontDescriptor;
  74.          (* Zeiger auf Deskriptor für alternative Farben *)
  75.        PalPtr: ^PalDescriptor;
  76.     END;
  77.  
  78.     (* Die Save Table - Zeigertabelle *)
  79.      PtrTableType =
  80.      RECORD
  81.          (* Zeiger auf Video-Parametertabelle im BIOS-ROM *)
  82.        ParamTablePtr: Pointer;
  83.          (* Zeiger auf Puffer für Default-Palettenwerte *)
  84.        SaveAreaPtr: ^SaveAreaType;
  85.          (* Zeiger auf Textmodus-Zeichensatzdeskriptor *)
  86.        TextFontPtr: ^TextFontDescriptor;
  87.          (* Zeiger auf Grafikmodus-Zeichnesatzdeskriptor *)
  88.        GraFontPtr: ^GraFontDescriptor;
  89.          (* Zeiger auf zweite Zeigertabelle (nur VGA) *)
  90.        SecSavePtr: ^SecPtrTableType;
  91.        Unused1, Unused2: Pointer;    (* unbenutzt *)
  92.      END;
  93.  
  94.      (* ------- Cursorposition für eine Bildseite ------- *)
  95.      PosType =
  96.      RECORD
  97.        x,y: Byte;
  98.      END;
  99.  
  100. VAR (* ----------- Der BIOS-Variablenbereich ------------ *)
  101.     VideoMode: Byte ABSOLUTE 0:$449;   (* Videomodus *)
  102.     NrOfColumns: Word ABSOLUTE 0:$44A; (* Textspalten *)
  103.     PageSize: Word ABSOLUTE 0:$44C;    (* Bildseitengröße *)
  104.     PageStart: Word ABSOLUTE 0:$44E;   (* Start Bildseite *)
  105.       (* Cursorposition für 8 Bildseiten *)
  106.     CursorPos: ARRAY[0..7] OF PosType ABSOLUTE 0:$450;
  107.     CursorStart: Byte ABSOLUTE 0:$460; (* Cursorform *)
  108.     CursorEnd: Byte ABSOLUTE 0:$461;
  109.     ActivePage: Byte ABSOLUTE 0:$462;  (* Aktive Bildseite *)
  110.     CRTCPortAddr: Word ABSOLUTE 0:$463; (* CRTC-Portadresse *)
  111.     ModeCtrlReg: Byte ABSOLUTE 0:$465;
  112.     ColorSelectReg: Byte ABSOLUTE 0:$466;
  113.     NrOfRows: Byte ABSOLUTE 0:$484;    (* Textzeilen *)
  114.     CharSize: Word ABSOLUTE 0:$485;    (* Zeichenhöhe - 1 *)
  115.     StatusBits: Byte ABSOLUTE 0:$487;  (* Div. Statusinfos *)
  116.     ConfigBits: Byte ABSOLUTE 0:$488;  (* DIP-Schalter *)
  117.       (* Der Save Table Pointer *)
  118.     SaveTablePtr: ^PtrTableType ABSOLUTE 0:$4A8;
  119.  
  120. (* ====================================================== *)
  121.  
  122. IMPLEMENTATION
  123.  
  124. BEGIN  (* Initialisierungsteil *)
  125. END.
  126.  
  127. (* ====================================================== *)
  128. (*                      BIOS5.PAS                         *)