Vorstellung

Stellt Euch der DOS-Forum Community vor!
Antworten
lambdakal

Vorstellung

Beitrag von lambdakal »

Hallo Forum,

bin jetzt 55 Lenze und habe vor 2 Jahren meine Schwäche für DOS wiederentdeckt.

Angefangen hatte alles mit dem C64. Dorthin hatte ich von der MicroVAX II mein Terminalspiel Mastermind portiert (nur Zeilenweise Ein- und Ausgabe, VT100 war purer Luxus damals). Irgendwann hatte ich eine 65SC816 Karte und meine Komilitonen sind vor Neid erblaßt, als sie gesehen haben, wie schlapp ihr 8088 mit 4,77 MHz dagegen aussieht. Derr PC hatte aber Anfangs 256 KB Speicher und eine wesentlich bessere Grafik.

Irgendwann war klar, daß die Zeit des C64 abgelaufen war, ein neuer Rechner mußte her. Die Wahl fiel auf einen Atari 1000 irgendwas, was aber die falsche Wahl war. Programe liefen entweder nur mit Farb- oder nur mit Monochromonitor. Also weg damit.

Dann hatte ich einen Noname 16 MHz 286'er mit SUNTAC-62 Chipsatz und EMS Hardware. Allein der 287'er und 1 MB RAM haben zu der Zeit jeweils so um die 1000 DM gekostet.

Entwickelt habe ich damals Programme in FORTRAN IV/77, Assembler und teilweise auch C, auf der Vax und auch auf dem PC. Produkte wie Turbo C erblickten das Licht der Welt und es war unglaublich bequem, damit Programme zu entwickeln (im Ggs. zu MS-FORTRAN 4 oder MSC 5.1). Mal abgesehen von der Mausunterstützung, die Borland lange verpennt hat, arbeite ich heute wieder gerne damit.

C++ habe ich damals wie heute nicht verstanden. Wenn ich schon "using namespace std" lese, wird mir übel. Das sagt ja nur aus, dass der Programmierer C++ auch nicht verstanden hat. In Assembler kann man nicht soviel Unsinn verzapfen, wie in C++. Und bei Java und .NET wird mir richtig schlecht. Java dürfte nach der schwarzen Pest im Mittelalter die größte Seuche sein, die die Menschheit je heimgesucht hat. Diese Armseeligen haben ihr eigenes Konzept nicht vertanden: Zwei Anwendungen, die zwei unterschiedliche Java Versionen zwingend benötigen, und das große Leiden beginnt. Ist ja auch kein Wunder, kommt von Oracle. Die haben doch OpenOffice, MySQL und wasweißich vor die Wand gefahren ... warum nicht Java?

Eine der ersten größeren Herausforderungen war die Entwicklung einer EGA Grafikbobliothek für MS FORTRAN 4. Das war lange, bevor die GRAPHICS.LIB mitgeliefert wurde. Dabei habe ich viel über die Komponenten Sequencer, Graphics-Controller, CRT Unit gelernt. Hab damals schon mindestens Double Buffering auf einer EGA gemacht, die nur Speicher für eine Seite hatte, durch Aufteilen der Planes. 4 Planes = 1 Bild mit 16 Farben, 2 x 2 Planes = 2 Bilder mit 4 Farben, 4 x 1 Plane = 4 Bilder mit 2 Farben.

Mein Lieblingsbetriebsystem war zuerst DRDOS 3.41, dann DRDOS 6.0. Später bin ich auf MS-DOS 4.0 umgestiegen. NWDOS 7 fand ich nicht so toll, zuviele Ungereimtheiten bei der Kombination verschiedener Einstellungen mit dem TaskMgr, Share, EMM386, soweit ich mich erinnere.

Um ein FEM Paket (Modellieren, Rechnen, Visualisieren) auf einer Messe vorführen zu können, hatte ich Mitte der 80'er damit begonnen, einen Menümanager zu schreiben und dann immer mehr zu erweitern. Einen Kernel (8K resident), der eine Schnittstelle zwischen den einzelnen Komponenten bietet (Process Common Block, wie ein Common in Basic und Chain) und ein großzügig dimensioniertes Menü Programm mit vielen Gimmicks. Der Kernel hat eine Multiplexer-Schnittstelle (INT0x2F) mit einem variablen Design, was sich noch Jahre später als großer Vorteil erweisen sollte. Dieser Multiplexer Int erlaubt sogar mehrere Instanzen, ein Feature, was ich damals vergeblich gesucht hatte. Wenn INT 0x21 oder 0x2F nicht mehr aufs eigene Programm zeigen, beendet sich der Kernel via INT 0x21/AH=0x31 und überwacht fortan INT 0x21/AH=0x4C. Sollte sich dabei herausstellen, das die Interruptvektoren wieder aufs eigene Programm zeigen, wird aufgeräumt und der Kernel ebenfalla via INT0x21/AH=0x4C beendet. Das Menuprg selbst hat einen minimalen Multitasking Kernel mit Scheduler, simpelsten Semaphoren und kommt mit so ziemlich jeder Hardware (XT/AT und Nachfolger) und jedem Betriebssystem Überbau (WIN3-ME / NT ) zurecht.

Wie gesagt, vor zwei Jahren hatte ich meine alten DOS Programme rausgekramt. Dann habe ich Just for fun den Quelltext systematisch gesichtet, einfach nur, um einer wohltuenden geistigen Beschäftigung nachzugehen. Nie im Leben würde ich wieder für Geld Programmieren. Dabei habe ich natürlich auch kleine oder größere Fehler gefunden und beseitigt.

Habe auch den einen oder anderen Rosetta Code zuerst auf DOS, später auf dem C64-Emu geloest. Den originalen C64 habe ich nicht mehr. Am liebsten arbeite ich mit PC64/DOS und wenns sein muss, CCS64. VICE mag ich nicht, viel zu aufgebläht. Ich finds erstaunlich, was heute noch alles mit dem C64 geht, dank Bassewitz. Und erst recht mit DOS. Als Speicher-API finde ich EMS und XMS Ok, aber nicht DPMI oder VCPI, das ist Schummelei, weil: Da verwaltet nicht mehr DOS die Ressourcen, sondern wird verwaltet. Das ist schlechtes Design. Achja, früher wurden Ressourcen tatsächlich noch verwaltet und nicht sinnlos verballert.

Interessant finde ich auch, daß viele DOS-Compiler noch mit Long Double bzw. Extended 80 Bit Fliesskommazahlen verarbeiten konnten. Turbopascal 3 konnte sogar noch mit BCD Zahlen rechnen. Da macht Ephemeridenberechnung Spaß.

Gespielt habe ich früher natürlich auch: Hauptsächlich Railsim 2.X von Jens Schubert unter DOS.

Es gibt noch soviel zu erzählen, aber das passt nicht alles in eine kurze Vorstellung.

Angemeldet habe ich mich hier deshalb, weil ich Kontakt zu erfahrenen DOS-Programmierern suche. Wenn ich darüber hinaus anderen DOS-Programmierern die eine oder andere Hilfestellung bieten könnte, würde mich das freuen.
wobo
DOS-Guru
Beiträge: 613
Registriert: So 17. Okt 2010, 14:40

Re: Vorstellung

Beitrag von wobo »

Auch Dir Danke für Deine intensive Vorstellung. Hat richtig Spass beim Lesen gemacht, auch wenn ich die technischen Details gar nicht verstehen konnte.

Leute, die beruflich programmiert haben, gibt es hier im Forum (meines Gefühls nach) eher weniger. Trotzdem freuen wir uns alle, wenn wir etwas mitfachsimplen dürfen und unseren Senf zugeben können. Ich selbst habe Anfang der 90er nur als Schüler mich ein bisschen in Turbo Pascal versucht, aber schnell gemerkt, dass ich beruflich die IT grundsätzlich meiden muss (was eine sehr gute Entscheidung von mir war).

An die Bitplanes unter EGA kann ich mich noch gut erinnern. Vielmehr als ein PutPixel und horizontale Linien hatte ich damals nicht hinbekommen. Die Investition in die 16-Farb-Modi war aber nicht ganz umsonst: Später bin ich dann auf die "Mode-X"-Varianten von 320x200x256 umgestiegen. Die Nutzung der Bitplanes (als quasi Byte-Planes) erklärte sich für mich dann fast von selbst.
. Als Speicher-API finde ich EMS und XMS Ok, aber nicht DPMI oder VCPI, das ist Schummelei, weil: Da verwaltet nicht mehr DOS die Ressourcen, sondern wird verwaltet. Das ist schlechtes Design.
Ich glaube, ich kann nachvollziehen, was Du meinst. EMS und XMS habe ich noch "kapiert", aber dann schnell gemerkt, dass mir hobbymaeßig die 640k vollkommen langen. DPMI / VCPI war für mich nicht mehr DOS und auch viel zu kompliziert. Persönlich schade fand ich, dass die Segment:Offset-Einteilung auf Verschiebung von 4 bit festgefahren war. 8 Bit - Verschiebungen wie bei manchen 186-SoC (d.h. 24 bit Real-Mode-Addressing) waren damit ausgeschlossen. Aber das hätte wahrscheinlich noch mehr Speicher-Chaos verursacht ...

Herzlich willkommen meinerseits. Bitte beachte, dass die Freischaltung hier manchmal ein paar Tage dauert.
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Vorstellung

Beitrag von DOSferatu »

@lambdakal:
Ich bin begeistert. Ein Fan der alten Technik. Ein Fan der alten Schule. Und von DOS.
Und, was noch dazukommt: Ein Programmierer!
Ich freue mich ja über jeden Neuzugang hier im Forum - aber über Leute, die selbst programmieren ganz besonders.
(Das mag daran liegen, daß ich ebenfalls selbst programmiere - wenn auch von Anfang an ausschließlich als Hobby.)
Herzlich Willkommen im DOSforum.
_lambda

Re: Vorstellung

Beitrag von _lambda »

[quote="wobo"]Herzlich willkommen meinerseits. Bitte beachte, dass die Freischaltung hier manchmal ein paar Tage dauert.[/quote]

Danke, ich merke es gerade.

Beim stöbern habe ich hier gelesen, dass jemand ein Prg. zum Vertauschen der Laufwerke auf Bios Ebene sucht. Sowas habe ich: DISKBIOS.EXE, läuft als EXE (gibt Hilfebildschirm aus) und Device-Treiber (D)CONFIG.SYS::DEVICE=DISKBIOS.EXE.

Dann habe ich noch FASTMOVE, ebenfalls ein DEVICE-Treiber der auf echten 286'ern die Funktion INT0x15/AH=0x87 (copy extended memory) ersetzt, nur eben sehr viel schneller (deswegen ja auch FAST...). Läuft wie gesagt nur auf echten 286'ern, die den undokumentierten LOADALL Befehl unterstützen. Außerdem werden überlappende Bereiche kopiert, bevor sie überschrieben werden, das BIOS macht das nicht. Interessant für Leute, die ein uralt DOS ohne HIMEM/HIDOS Treiber und e. g. Prozessor haben.

KBHITFIX wäre für Leute interessant, die rechenintensive DOS Anwendungen in der NTVDM laufen lassen und sich über die Ausbremsung derselben ärgern, obwohl "hohe Leerlaufaktivität" und "vorübergehend aussetzen" bereits entsprechend gesetzt sind. Es überwacht die Zeicheneingabe via INT0x16 und INT0x21 und führt den INT nur aus, wenn tatsächlich Zeichen anliegen.

BTW: Dürfen hier auch CODE-Schnipsel gepostet werden? Falls das unbeantwortete Problem "Entladen von PASCAL-TSR (speicherresidenten) Programmen" noch existiert, könnte ich dazu eine robuste Multiplexer-Interrupt-Lösung liefern ...
Benutzeravatar
ChrisR3tro
Administrator
Beiträge: 1979
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW
Kontaktdaten:

Re: Vorstellung

Beitrag von ChrisR3tro »

Hallo lambda,

danke für deine ausführliche Vorstellung. War interessant zu lesen.

Du wirst dich wundern, aber beruflich komme ich heute zum Teil noch mit Fortran-Code in Berührung, z.B. bei der Portierung von Altsystemen auf dein ungeliebtes .Net :-)

Schonmal was mit EQUIVALENCE gemacht?

Interessante Story jedenfalls - dein Account ist jetzt aktiv. Willkommen & viel Spaß im Forum!

EDIT: Dein Beitrag geht ja glatt als User-Vorstellung durch, deshalb hab ich ihn mal verschoben ins entsprechende Unterforum.

Gruß
locutus
lambda
Solitärspieler
Beiträge: 13
Registriert: Do 9. Aug 2018, 09:17
Wohnort: seit 2017: östlichste Stadt Deutschlands
Kontaktdaten:

Re: Vorstellung

Beitrag von lambda »

Locutus hat geschrieben:Du wirst dich wundern, aber beruflich komme ich heute zum Teil noch mit Fortran-Code in Berührung, z.B. bei der Portierung von Altsystemen auf dein ungeliebtes .Net :-)
Nicht wundern, sondern beneiden! Dass es noch FORTRAN Programmierer gibt, weiß ich wohl. Wenn es gälte, eine Aufgabe in F77+ (also mit vorwiegend VAX Extensions, ByVAL, IEOR, ALLOCATE, DO ... END DO, etc.), zu lösen, könnte ich meinem Vorsatz, nie wieder gegen Bares 1 Liter Kaffee in 1000 Zeilen F77-Code umzuwandeln, untreu werden. Manchmal brauche ich auch mehr als einen Liter. :ugeek:
Locutus hat geschrieben:Schonmal was mit EQUIVALENCE gemacht?
Außer bei der Variablendeklination in F77 nie von gehört. Nach der Uni hab ich nix mehr für Geld in FORTRAN gemacht, ansonst schon. Ich fands einfach nur traurig, dass F90 und Folgende eine zwar antike, aber dennoch zum vollem Ausschöpfen des geistigen Denkvermögens fähige Sprache einfach so vor die Wand gefahren wurde. Mit C und C++ passiert wohl gerade das Gleiche. Einzige Ausnahme scheint FreePascal aka ObjPascal zu sein. Man portiert gestern und heute F77 lieber nach C, als nach F90/95/20XX, das tut schon weh. Einzig das Konzept der Coarrays in F2003 finde ich interessant, aber ob dass FORTRAN zu altem Glanz verhilft, darf mehr als bezweifelt werden. Schon lange ist NEU in dieser Disziplin nicht eben deswegen BESSER. Wenn ich dann noch Worte wie "veraltete Software" zu hören bekomme, meldet sich mein Killerinstinkt.

Software kann in erster Linie nicht veralten, ebenso wenig, wie das Licht, die Hintergrundstrahlung, die Proton-Proton Reaktion oder die Bethe-Weizsäcker Reaktion (Danke Harald Lesch). In zweiter Linie kann sie veralten, wenn die zugrundeliegenden Techniken überholt sind. Dass Quicksort böse ist (nicht stabil), habe ich schon immer geahnt, richtig implementiertes Mergesort scheint besser.

Software kann in meinen Augen nur eines sein: Ausgereift oder nicht ausgereift. FORTRAN 77 war und ist ausgereift, vielleicht noch das erste nach ANSI genormte C, aber danach wird es dünn, SEHR dünn. Früher konnte man ohne große Probleme Programme geschrieben in BASIC, C, FORTRAN, PASCAL, PL1 und meinetwegen auch noch COBOL in eine andere der gerade genannten Hochsprachen übertragen, sauberen Programmierstil vorausgesetzt. Doch damit hat C# endgültig aufgeräumt. C# hat echt leckere APIs, man kann mit wenig Aufwand richtig komplizierte Aufgaben lösen. Eigentlich müsste ich C# gut finden, denn welcher Programmierer wünscht sich solche augenscheinliche Fähigkeiten nicht? Aber was, wenn ein Unternehmen sich völlig von C# abhängig macht und C# irgendwann einfach nicht mehr existiert? Ich zitiere nicht gern die Bibel (habe meinen eigenen Gott, der mit keiner etablierten Glaubensrichtung auch nur ansatzweise etwas zu tun hat, aber das gehört eigentlich nicht hier her), aber sie spricht in der Offenbarung von Heulen und Zähneklappern. Genau das werden Produktmanager, CEOs und Programmierer dann aber tun, wenn dot Net nicht mehr unterstützt wird: Heulen und mit den Zähnen klappern. Oder ökonomisch gesehen: Im Zeitalter des Raubbaus über die gesamte Natur (Anthropozän) wird es irgendwann eine Kostenfrage werden, ob man sich noch ein Rechenzentrum leisten kann, wo 90-95% der Energie in irgendwelchen dot Net oder JAVA Layern verschwinden und bestenfalls 5% für die Lösung des eigentlichen Problems verleiben. Das wird irgendwann so kommen, das ist das Einzige, wo ich mir sicher bin! Aber Erleben möchte ich das nicht mehr.

Zurück zu DOS: Vor dem Hintergrund des eben Genannten halte ich DOS in all seinen Ausprägungen für sehr ausgereift! Und für mich ist genau DAS neben Unix/Linux die Zukunft. Für die Massen dürfte das in absehbarer Zeit sicher nicht als Zukunft wahrgenommen werden.
Locutus hat geschrieben:Willkommen & viel Spaß im Forum!
Danke, das ist MoS2 (Molybdändisulfid) für meine [EDIT/ON] geschundene [EDIT/OFF] Maschinenbauer-Seele.
God SAVE "THE QUEEN",8,1
JSR $FCE2
lambda
Solitärspieler
Beiträge: 13
Registriert: Do 9. Aug 2018, 09:17
Wohnort: seit 2017: östlichste Stadt Deutschlands
Kontaktdaten:

Re: Vorstellung

Beitrag von lambda »

So ich hab jetzt mal ein paar DOS Progrämmchen auf Google-Drive hochgelanden: http://goo.gl/B3iPZ1

Der Menümanager heißt TMM082. Die meisten Programme wurden mit MSC6 oder MSVC1.52, FORTRAN 5.1 und MASM 5.1 übersetzt. Alle hier abgelegte Software (incl. Quelltext natürlich) ist ab jetzt Public Domain.

Einiges davon möchte ich auch ins FreeDOS Project einbringen, allerdings bräuchte ich dabei etwas Nachhilfe bei github. Die Sicherung meiner Quellen mit Subversion habe ich aufgegeben, zu oversized. Stattdessen führe ich hier Sicherungen mit ZPAQ durch, einem Journaling Archiver der absoluten Spitzenklasse, wenn man ihn erstmal verstanden hat. Das wäre auch mein nächstes Großprojekt, einen Journaling Archiver für DOS, basierend auf dem Deflate- oder LHA-Algotithmus, das weiß ich noch nicht genau. Mir kommt es dabei weniger auf die Kompressionsrate an, sondern eher auf eine robuste Transaktionsverwaltung. Die grundsätzliche Arbeitsweise und einige Details von ZPAQ habe ich verstanden. Als Unterbau denke ich im Moment an ein enorm abgespecktes SQLITE, denn mit 600K werde ich sicher nicht auskommen.

Das Programm ALIGNEXE arbeitet zwar mit Standard .EXE Dateien (ohne Overlays, angehängte Daten/Debuginformationen), ist aber noch im frühen Entwicklungsstadium.

Wünsche viel Spaß beim Ausprobieren, über qualifizierte Rückmeldungen würde ich mich natürlich sehr freuen!
God SAVE "THE QUEEN",8,1
JSR $FCE2
lambda
Solitärspieler
Beiträge: 13
Registriert: Do 9. Aug 2018, 09:17
Wohnort: seit 2017: östlichste Stadt Deutschlands
Kontaktdaten:

Nachtrag

Beitrag von lambda »

Beim Stöbern hier habe ich gelesen, dass einige wenige von euch im Fidonet aktiv waren. Gibts noch Boxen, bei denen man pollen kann? Wenn auch über Gateway Fido over TCP/IP, falls es sowas gibt?

Was ich in meiner Vorstellung vergessen hatte zu erwähnen (lang lang ists her): Als die Mailboxszene bereits vom Aussterben bedroht war, habe ich die ZConnect Mailbox LINE.ORG noch ein paar Jahre weiter betrieben, von 200 Usern runter auf 60, dann nur noch 10, wenn ich mich recht erinnere. Das war ne sauschöne Zeit. Crosspoint 3.12 (bzw. OpenXP) läuft hier übrigens immer noch (bzw. wieder), aber nicht mehr produktiv, sondern nur zum Rumspielen.

Dass ich den Autor von DUPEKILL hier wiederfinden würde, hätte ich nicht gedacht ...
God SAVE "THE QUEEN",8,1
JSR $FCE2
Antworten