Files
turbopascal-xlib-unit/README.md
T
2026-08-15 00:11:47 +02:00

124 lines
4.1 KiB
Markdown

# 🎮 Turbo Pascal X-LIB UNiT V0.3á*
![License](https://img.shields.io/badge/license-MIT-green.svg)
![Platform](https://img.shields.io/badge/platform-MS--DOS-blue.svg)
**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>