mirror of
https://github.com/skoelle/turbopascal-xlib-unit.git
synced 2026-09-18 05:00:25 +00:00
124 lines
4.1 KiB
Markdown
124 lines
4.1 KiB
Markdown
# 🎮 Turbo Pascal X-LIB UNiT V0.3á*
|
|
|
|

|
|

|
|
|
|
✨ **Eine leistungsstarke Grafikbibliothek für Turbo Pascal Programme** ✨
|
|
|
|
Dieses Pascal-Modul `xlibunit` ist eine Grafikbibliothek, die speziell für Turbo Pascal Programme entwickelt wurde. Es bietet verschiedene Prozeduren zur Initialisierung und Manipulation von VGA-Grafikmodi, Farbpaletten-Handhabung und Bildschirmzeichnung. Besonders nützlich für die Erstellung von Grafik-Demos! 🚀
|
|
|
|
---
|
|
|
|
## 📋 Systemvoraussetzungen
|
|
|
|
| Komponente | Anforderung |
|
|
|------------|-------------|
|
|
| 💾 Compiler | Turbo Pascal 6.0 |
|
|
| 🖥️ Betriebssystem | MS-DOS oder kompatible Umgebung |
|
|
| 🎨 Grafikkarte | VGA-kompatibel |
|
|
|
|
---
|
|
|
|
## 📁 Dateistruktur
|
|
|
|
| Datei | Beschreibung |
|
|
|-------|--------------|
|
|
| 📄 `xlibunit.pas` | Pascal-Quellcode |
|
|
| 🔧 `xlibunit.tpu` | Kompiliertes Turbo Pascal Unit |
|
|
| ⚙️ `COMPILE.BAT` | Batch-Skript zum Kompilieren mit Turbo Pascal |
|
|
| 📚 `intel.txt` | Referenzdokumentation für Intel 8086 Befehlssatz |
|
|
| 📜 `LICENSE` | MIT-Lizenz |
|
|
|
|
---
|
|
|
|
## 🚀 Verwendung
|
|
|
|
Füge das Modul in dein Turbo Pascal Programm ein und rufe die Methoden auf:
|
|
|
|
```pascal
|
|
program MyGraphicsDemo;
|
|
uses xlibunit;
|
|
begin
|
|
initxlib; { VGA-Modus 13 initialisieren }
|
|
{ ... dein Grafikcode ... }
|
|
exitxlib; { Zurück zum Textmodus 3 }
|
|
end.
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Typen und Variablen
|
|
|
|
| Typ / Variable | Beschreibung |
|
|
|----------------|--------------|
|
|
| 🎨 `paltype` | Array mit 768 Bytes (256 RGB-Tripel) für Paletten-Daten |
|
|
| 🖼️ `textpal` | Array mit 3x16 Bytes zur Speicherung der Textmodus-Palette bei Modulinitialisierung |
|
|
|
|
---
|
|
|
|
## 🔨 Kompilieren
|
|
|
|
Das `COMPILE.BAT` verwendet Turbo Pascal 6.0, installiert in `c:\progrs\tp\`
|
|
|
|
```bash
|
|
compile.bat
|
|
```
|
|
|
|
---
|
|
|
|
## ⚡ Methoden
|
|
|
|
| Methode | Beschreibung |
|
|
|---------|--------------|
|
|
| 🚀 `initxlib` | Initialisiert VGA-Modus 13 |
|
|
| 🔧 `initxmode` | Initialisiert erweiterten Modus |
|
|
| 🧹 `clearxmode` | Löscht den Bildschirm schnell im erweiterten Modus |
|
|
| 🧹 `cleartext` | Löscht den Bildschirm schnell im Textmodus |
|
|
| 🚪 `exitxlib` | Beendet die Bibliothek und initialisiert VGA-Modus 3 |
|
|
| ✏️ `point` | Zeichnet einen Punkt im erweiterten Modus |
|
|
| ⬛ `blackpal` | Setzt alle Farben auf Schwarz |
|
|
| ⏳ `vert_retr` | Wartet auf vertikalen Retrace |
|
|
| 🌅 `fadeup` | Blendet die Palette ein |
|
|
| 🌆 `fadedown` | Blendet die Palette aus |
|
|
| 📷 `copypic13` | Kopiert ein Bild von Segment und Offset nach VGA in Modus 13 |
|
|
| 📷 `copypicx` | Kopiert ein Bild von Segment und Offset nach VGA im erweiterten Modus |
|
|
| 📷 `copypicxd` | Kopiert ein Bild im virtuellen horizontalen 640-Modus |
|
|
| 🎨 `copypal` | Kopiert eine Palette von Segment und Offset zu einer anderen Palette |
|
|
| 📍 `startingarea` | Setzt den linearen Startbereich |
|
|
| 📐 `vert400` | Wechselt zur Auflösung 320x400 |
|
|
| 📐 `vert200` | Wechselt zur Auflösung 320x200 |
|
|
| 📐 `vert100` | Wechselt zur Auflösung 320x100 (nicht getestet) |
|
|
| 📏 `hor640` | Wechselt zur virtuellen horizontalen 640-Auflösung |
|
|
| 📏 `hor320` | Wechselt zur normalen horizontalen 320-Auflösung |
|
|
| ↕️ `vpan` | Vertikales Panning |
|
|
| ↔️ `hpan` | Horizontales Panning |
|
|
| 🎯 `hbegin` | Setzt die horizontale Startposition |
|
|
| 🔓 `CRTC_UnProtect` | Entschützt den CRTC (Cathode Ray Tube Controller) |
|
|
| 🔒 `CRTC_Protect` | Schützt den CRTC |
|
|
| 🔓 `unprotect` | Entschützt den Bildschirm |
|
|
| 🔒 `protect` | Schützt den Bildschirm |
|
|
| ⏳ `hor_retr` | Wartet auf horizontalen Retrace |
|
|
| 📦 `moveblock` | Verschiebt einen Speicherblock |
|
|
| 🎨 `setdac` | Setzt die DAC (Digital-to-Analog Converter) Farbe |
|
|
| 🖨️ `print` | Druckt Text auf den Bildschirm |
|
|
| 📍 `locate` | Setzt die Cursor-Position |
|
|
| ⌨️ `key` | Prüft, ob eine Taste gedrückt wird |
|
|
|
|
---
|
|
|
|
## 🤝 Mitwirken
|
|
|
|
Beiträge sind willkommen! 🎉
|
|
|
|
---
|
|
|
|
## 📜 Lizenz
|
|
|
|
Lizenziert unter der [MIT License](LICENSE) - Copyright (c) 2026 Stefan Koelle (https://stefankoelle.de)
|
|
|
|
---
|
|
|
|
<p align="center">
|
|
<i>Erstellt mit ❤️ für die Retro-Gaming-Community</i>
|
|
</p>
|