Vorstellung
Verfasst: Fr 10. Aug 2018, 02:53
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.
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.