AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Ausgabe auf dem Bildschrm zur DOS Zeit?
Thema durchsuchen
Ansicht
Themen-Optionen

Ausgabe auf dem Bildschrm zur DOS Zeit?

Ein Thema von Popov · begonnen am 29. Apr 2014 · letzter Beitrag vom 30. Apr 2014
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 29. Apr 2014, 18:06
Ich diskutiere gerade mit einem Bekannten über die alten Zeite und stelle fest, dass ich paar Wissenslücken habe...

Zur DOS Zeit, zumindest der MS-DOS Zeit, bestand die Hauptaufgabe von DOS die Kommunikation mit Speichermedien. Windows kümmert sich auch um die Ausgabe auf dem Bildschirm. Das tat meiner Kenntnis nach DOS nicht (zumindest kann ich mich nicht dran erinnern). Es gab da zwar auch die MSDOS.SYS (ich glaube auch IO.SYS), aber ich weiß nicht ob die auch für den Bildschirm zuständig waren.

Bei der Gelegenheit die gleiche Frage auch zu Tastatur. Die Config.sys hat zwar etwas geladen, das war aber nur Tastaturtreiber. Das DOS hat auch ohne Config.sys Treiber funktioniert.

Womit die Frage ist, ob MSDOS.SYS und IO.SYS die Aufgaben hatte oder wer sonst?
  Mit Zitat antworten Zitat
fred.ahrens

Registriert seit: 11. Aug 2007
Ort: Ketzin/Havel
45 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 29. Apr 2014, 20:09
Unter DOS hat man im Prinzip direkt über die Grafikkarte seine Ausgaben gemacht. Wenn es nur Text war, ging das über das BIOS. Wenn es auch Grafik sein sollte, musste man schon wissen, welche Grafikkarte verbaut ist. Man konnte alternativ auch in Pseudodateien schreiben, bei denen sich dann DOS um die Weiterleitung an das jeweilig konfigurierte Gerät kümmerte.
Das hat leider auch zu dem Umstand geführt, dass jedes einzelne DOS-Programm seine eigenen Grafiktreiber mitbringen musste, wenn unterschiedliche Grafikkarten unterstützt werden sollten. Das gleiche Spiel dann noch einmal für die Druckerunterstützung.

Zur Tastatur wurde nur die Konfiguration geladen, welches Tastaturlayout die Tastatur hat. Ohne CONFIG.SYS wurde immer davon ausgegangen, dass eine englische QWERTY-Tastatur angeschlossen ist. Erst mit dem Eintrag in der CONFIG.SYS konnte auf andere Tastenbelegungen umgestellt werden.
Fred Ahrens (ZeeBORN GmbH)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 01:02
Da unter DOS für die Textausgabe imho immer "unter der Haube" ein int 21h stand, und das somit ein BIOS- bzw. direkter CPU-Befehl war, würde ich glatt behaupten, dass DOS selber hier nur insofern beteiligt war, als dass es zur Ausführung der jeweiligen Stelle im Binary verantwortlich war. Ergo: DOS hatte selber recht wenig am Hut mit der konkreten Ausgabe. Bei Grafiken wird es wie oben schon erwähnt noch gelöster, und auch nach Eintreffen der VGA und VESA Standards war noch immer jedes Programm selber dafür verantwortlich die Grafikkarten entsprechend zu versorgen.

Es war halt wirklich doch mehr ein Disk Operating System, weniger ein Screen Operating System (SOS, hrhr)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 06:32
War der Bildschirm (Alpha) nicht memory mapped, d.h. man konnte sich ein Array [0..24,0..79] of Word(?) (Lo:Char, Hi: Color/Highlighting) deklarieren, das absolut an eine Adresse binden und dann direkt im Bildschirm herumschreiben? Da war nicht viel mit 'Treiber', soweit ich mich erinnere. Kann mich aber auch irren.

Der Rest ist im Dämmerlicht der Demenz verschwunden.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#5

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 06:53
War der Bildschirm (Alpha) nicht memory mapped, d.h. man konnte sich ein Array [0..24,0..79] of Word(?) (Lo:Char, Hi: Color/Highlighting) deklarieren, das absolut an eine Adresse binden und dann direkt im Bildschirm herumschreiben?
Genau, wobei das zunächst als schlechter Stil galt. Ursprünglich/ standardmäßig erfolgte die Textausgabe über das BIOS, das sich dann um die korrekte Speicheradresse kümmerte. Dabei konnte man aber dem BIOS zuschauen, wie es die einzelnen Zeichen auf den Bildschirm malte. Deshalb hat sich aus Performancegründen dann doch die Methode mit der absoluten Adresse des Bildschirmspeichers durchgesetzt.

Bei der Grafik weiß ich nur noch, dass Turbo Pascal verschiedene Treiber für die gängigen Grafikstandards (VGA, EGA, Hercules) mitbrachte. Die wurden ja nach verbauter Grafikkarte eingebunden.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 07:00
Man konnte für die zeichenbasierte Ausgabe zwei Methoden verwenden. Entweder das schon erwähnte Schreiben von Zeichen und Attribut in den Bildschirmspeicher (so habe ich mal einen ANSI-Treiber zur Fernsteuerung erstellt, der hat einfach ein Diff daraus erstellt und in ESC-Sequenzen zur Terminalsteuerung umgesetzt, ich erinnere mich noch an ~11 ms Laufzeit pro Diff) oder zeichenweise über den Interrupt $21, wobei im Register A dann das Zeichen (Lowbyte, AL) sowie das Ausgabeziel (Highbyte, AH) kodiert war. Alternativ über $09 wobei man auch das Attribut mitgeben konnte.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (30. Apr 2014 um 07:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 09:34
Klar...

Es gab den ein oder anderen Interrupt für Zeichenausgabe, aber das war alles viel zu langsam.
Also immer direkt auf die Speicher Adresse bzw. über die Segemtvariable SEGA000 SEGB000 dann funktionierte das auch
im Protected-Mode. (bis 16MB Speicher).

Es war der Grafikmodus bis 320x200 in 256 Farbe, bzw 640x480 in 16 Farben definiert. Darüber hinaus war es, wie schon gesagt, Grafikkartenabhängig. Die Umschaltung funktionierte auch über einen Interrupt.

Die Tastatur konnte zwar auch per Int abgefragt werden, damit konnte man jedoch nicht erkennen ob 2 oder mehr Tasten gleichzeitig gedrückt wurden. (Außer shift, alt, ctrl) daher hat man die Tastatur besser über den entsprechenden Port abgefragt.

Threadprogrammierung ging über den $1C oder direkt über den Timer Interrupt (8). Der musste dann aber korrekt "per inherited" weitergeleitet werden und die Laufzeit der Subroutine war limitiert. (Beim $1C nicht).

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 11:43
Wenn man in die Gerätedatei geschrieben hat, konnte die Ausgabe umgeleitet werden.
So gesen hatte DOS auch etwas mit dem Bildschirm zu tun.
Gleiches gilt übrigens für die Eingabe.

Für die direkte Ausgabe auf den Bildschirm gab es drei Möglichkeiten,
1) DOS (int21) [inakzeptabel)
2) BIOS (int10) für grafik brauchbar, weil man Treiber ignorieren konnte.
3) Direkt in den Speicher, für Textausgabe letztlich State of the Art, die Grafikfreunde hatten da je nach Karte und Modus verschiedene Möglichkeiten

Die Angabe des Tastaturtreibers in der Config.Sys wurde "nur" genutzt um ihn zu laden. Praktisch jedes Programm hat die Tastenentsprechung über den Int9 abgeholt. Wobei viele Spiele sich direkt beim Tastaturkontroller bedient haben.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 12:34
Dann gab und gibt es auch den VESA-Standard um höher auflösende Grafikmodi (bzw. Farbtiefen) zu nutzen. Entweder die Grafikkarte stellt selbst eine passende Bios-Erweiterung bereit oder man musste einen passenden Treiber z.B. in der Config.sys laden.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Ausgabe auf dem Bildschrm zur DOS Zeit?

  Alt 30. Apr 2014, 12:38
Dann gab und gibt es auch den VESA-Standard um höher auflösende Grafikmodi (bzw. Farbtiefen) zu nutzen. Entweder die Grafikkarte stellt selbst eine passende Bios-Erweiterung bereit oder man musste einen passenden Treiber z.B. in der Config.sys laden.
Wie funktionierte das denn in der Praxis? wurde der Int10 auf eine modifizierte Sprungtabelle umgeleitet?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz