DOS Programmierung Tutorial
Im DOS Programmierung Tutorial zeige ich euch Schritt für Schritt wie man mit der Programmiersprache C auf einem Retro DOS PC ein Programm schreibt und damit Schnittstellen von DOS verwendet. Inspiriert von meinem Amiga Assembler Tutorial möchte ich nun auch auf meinem alten 486er DOS PC programmieren. Ob das gut geht?
DOS Programmierung Tutorial
Es ist wieder Zeit für eine längere Artikelserie. Mir hat die letzte längere Serie zum Amiga Assembler sehr viel Spaß gemacht. Zum einen habe ich endlich meinen gekauften Amiga in der Praxis verwendet und zum anderen habe ich mich in der Assembler Sprache eingearbeitet. Das nächste Objekt, dass nur Staub ansetzt ist mein DOS PC, den ich mühevoll in Einzelteilen zusammengetragen habe und in dessen Konzeption jede Menge Zeit geflossen ist. Seit dem der funktioniert steht er nur herum, nur gelegentlich spiele ich darauf einen alten DOS Klassiker. Das muss sich ändern.
Worum geht es?
In dieser Serie zeige ich euch wie man mit C unter DOS programmiert. Ziel des Tutorials ist das Verständnis darüber wie man DOS Schnittstellen nutzt um mit der an den PC angeschlossener Hardware zu interagieren. Das umfasst neben Eingabegeräten wie die Tastatur oder die Maus auch die Ausgabe am Bildschirm über VGA bis hin zum Sound. Wie kann man von einer Programmiersprache wie C unter DOS die Ressourcen des Rechners nutzen. Wenn euch das interessiert, dann unbedingt weiter lesen!
Assembler oder C?
Die Programmiersprache C war zum Ende der 80er Jahre des letzten Jahrhunderts die Revolution in der Programmierung. Alles war plötzlich viel einfacher. Eine Sprache und nicht ein Assembler Dialekt pro Rechner. Sowohl am Amiga als auch auf der PC Plattform gelang C ein Siegeszug, der mit der Weiterentwicklung zu C++ bis heute Auswirkungen hat. 2020 wird ein neuer C++ Standard veröffentlicht, das bedeutet die Sprache wird an aktuelle Entwicklungen angepasst. Sie lebt! Aus diesem Grund (und weil ich zuletzt bereits Assembler verwendet hatte) setze ich in dieser Serie auf die wohl bekannteste Hochsprache der letzten 30 Jahre. Wenn ihr meine letzte Serie zu Assembler verfolgt habt werdet ihr verstehen warum es plötzlich so viel einfacher war zu programmieren. Das klingt aus heutiger Sicht etwas lustig, da C durch seine Nähe zur Hardware im Gegensatz zu neuen Sprachen wie Python, C# oder Java altbacken und viel zu kompliziert wirkt.
Was es nicht ist
Dieses Tutorial ist kein C Tutorial. Ich setze voraus, dass man zumindest mit den Grundzügen einer Programmiersprache vertraut ist. Man muss kein C Entwickler sein um die Beispiele zu verstehen, aber nur wenn man schon einmal programmiert hat kann man mit dem Beispielcode am eigenen DOS System (ob realer Rechner oder emuliert in DOSBox) mit machen.
Meine Motivation
Retro Hardware sammeln und eigene DOS Rechner zusammenstellen macht Spaß, keine Frage, aber noch besser ist damit praxisorientiert zu arbeiten. Die meisten Sammler spielen Retro Spiele (ich auch!), aber mit einem Rechner kann man viel mehr. Sich mit Retro Programmierung auseinandersetzen ist sehr lehrreich. Ich arbeite seit 15 Jahre als Software Entwickler und bilde mich ständig weiter. Neue Sprachen und Technologien sind super spannend, aber es macht auch Spaß alte Sprachen und Technologien kennen zulernen. Ich wollte immer schon wissen wie so ein Spiel die Grafik auf den Bildschirm zeichnet. Gelernt habe ich das viel später über Grafik-APIs wie OpenGL und DirectX. Wie hat das aber früher unter DOS funktioniert? Wie spricht man den Bildschirm aus einem C Programm an? Worauf muss man achten und wie kann ich da ein Doom selber schreiben? Diese Fragen kann ich hoffentlich im Zuge der nächsten Artikel herausarbeiten.
Fazit
Soweit zur kurzen Einführung. Ich habe kurz umrissen worum es in meiner neuen Tutorial Reihe geht und worauf du dich als Leser freuen kannst. DOS kann mehr als nur Verzeichnisinhalte auszulesen und Programme zu starten. Was alles werden wir gemeinsam erforschen.
Eine Antwort
[…] Fall braucht man mehr Wissen als nur darüber wie man programmiert. Das habe ich bereits in meinem DOS programmieren Tutorial mit der VGA Ausgabe gezeigt. Dort verhält es sich ähnlich! Das klingt nun jetzt vermutlich alles […]