Seite 3 von 3

Re: Programmierung unter DOS

Verfasst: Mo 26. Apr 2010, 08:02
von freecrac
DOSferatu hat geschrieben:@freecrac: Mit I2C haben ein Kumpel und ich uns mal eine Zeitlang beschäftigt. Das Protokoll ist relativ einfach.
Wir (also ich) hab das damals mal auf dem Parallelport (LPT) gemacht und er hat so ein Matrixdisplay angeschlossen, das eben mit I2C angesteuert werden mußte.
Falls Interesse, kann ich die entsprechenden Informationen zu I2C mal raussuchen.
Ja gerne.
Falls Interesse an der hardwarenahen Programmierung von Schnittstellen im Allgemeinen, kann ich nur immer wieder
http://www.beyondlogic.org
empfehlen. Eine sehr sehr nützliche Seite. (Da wird übrigens auch USB erwähnt.)
Prima. Vielen Dank.

Dirk

Re: Programmierung unter DOS

Verfasst: Do 21. Okt 2010, 21:26
von wobo
Hallo,

ich habe mit GW-BASIC angefangen und jahrelang erfolglos herumprogrammiert. Später bin ich dann auf Turbo Pascal umgestiegen. Mit dem integrierten Assembler (sehr komfortabel) habe ich ein bißchen Assembler gelernt. Dabei ist es dann geblieben.

Nach einem Jahrzehnt der Computerabstinenz habe ich irgendwann (2007) wieder meine alten Sources hervorgekramt. Grund war, dass ich einen meiner Meinung nach qualitativ hochwertigen 386sx-16 Mhz (urspr. 2 MB Rm + 40 MB HD, jetzt 6 MB Ram und 200 MB HD) bekommen habe. Ich wollte diesen PC nicht auf den Müll geben (das Innenleben hatte einen total aufgeräumten Eindruck gemacht) und habe meine alten Sources (teilweise auf 286-12, teilweise auf 486-40 entwickelt) aufgespielt. Sie haben noch funktioniert, einige Bugs habe ich mittlerweile sogar ausgeräumt.

Ich denke, der PC ist genau das richtige für mich und meine Programmier(UN)künste. Viel Mathe kann ich nicht, und die paar Sprites verschieben kann auch der 386sx. Und ein Programm habe ich mittlerweile sogar "neu" entwickelt. Einen 256-Farben PCX- Betrachter für die Standard ModeX (320x200/256 - 360x480/256), welcher die PCX ins flat4g(unreal,huge...) lädt. Stellt zwar keine Geschwindigkeitsrekorde auf, scheint aber grundsätzlich zu funktionieren.

Daß sich hier im Forum (mind.) zwei Profis für Flat4G (freecrac) und modeX (dosferatu) tummeln, beruhigt mich schon sehr. Denn ein paar Fragen dazu hätte ich ja schon. Leider komme ich zum Programmieren meist nur alle heiligen Zeiten (Weihnachten, Ostern)...

Grüße
wobo

Re: Programmierung unter DOS

Verfasst: Fr 22. Okt 2010, 02:10
von DOSferatu
Das Erzeugen von Mode-X (verschiedene Auflösungen) wird unter anderem auch in der bekannten (1 MB großen) Textdatei ASM86FAQ.TXT erklärt.
Kann man (unter anderem) von meiner Seite ziehen. Außerdem gibts auf meiner Seite auch einen Reader dafür, der das Lesen des Files etwas vereinfacht (indem es selbst ein Inhaltsverzeichnis anlegt und die Kapitel und Unterkapitel aus so Pulldowns wählbar macht).
Habe aber mal in Pascal (+etwas ASM) eine Unit gebaut, mit der insgesamt 176 verschiedene 256-Farb VGA Modi möglich sind (rechnet man die 16Farb-Modi mit doppelter X-Auflösung dazu, sind es sogar 352)
Dabei sind es MCGA-Modi und Mode-X Modi (manche nur Mode-X). Wobei man natürlich sagen muß, daß so Modi wie 512x512x256 eventuell nicht auf jedem Monitor funktionieren....
Habe dann auch Units gebaut, die entsprechend für Grafik in diesen Modi funktionieren...
OK, genug davon.

Re: Programmierung unter DOS

Verfasst: Fr 22. Okt 2010, 17:33
von wobo
@DosFeratu:
Die ASM86faq.txt kannte ich (von dort entstammen meine mode-x). Dein Reader klingt allerdings verlockend. Bei Gelegenheit schaue ich ihn mir gerne an. Deine Seite gefällt mir übrigens gut.

Von den Mode-x habe ich mir nur 360x350 bißchen selbst gebaut (zuerst aus EGA 640x350 die Zeilenregister geklaut, dann gem. ASM86faq 360x400 gesetzt und dann eben 350 Zeilen gesetzt). Hat mich schon stolz gemacht, dass das geklappt hat.

Ich habe mich auf die Standard Mode-X beschränkt, weil ich eigentlich nur 31.5 kHz - Festfrequenzmonitore habe. 256/512-Zeilen können die nicht mehr anzeigen. Erstaunlich allerdings fand' ich, daß in der Horizontalen mehr als 720 Pixel auf diesen alten Monitoren (einer ist ein Original IBM VGA) möglich sind. So konnte ich 400x400 und 512x480 bei 256-Farben und 800x400 bzw. 1024x480 bei 16 Farben einstellen (allerdings nur Chip-Spezifisch f. wd90c11, dank vgadoc4b). man mußte nur darauf achtgeben, in der Horizontalen die 31.5 kHz einzuhalten. Bei 800x400 mußte der VGA-Chip eine Bandbreite von ca. 30,5 MHz haben, bei 1024x480 schon von ca. 45 MHz (glaub' ich). Die Textmode-Auflösung von 132x25 (bei meiner VGA mit 1056-Pixel in der Zeile dargestellt, und nicht wie angeblich bei manchen HGC mit 6-Pixel-breiten ASCIIs) konnte allerdings nicht mehr jeder 31.5-kHz-Monitor korrekt anzeigen: Die erste und letzte Pixelspalte der Buchstaben waren abgeschnitten. 128x25 gingen dagegen überall!

Ich fand das eines der spannensten meiner 386sx-Ausforschungsprogramme: diese alten Festfrequenzler, die damals bald keiner mehr haben wollte, konnten offenichtlich ohne weiteres Auflösungen bis 1024x480 darstellen! Und das in TrueColor (ungetestet, aber geschlußfolgert). Das wußte nicht mal die Handelsmarke, die als Hersteller auftrat und ins Monitor-Handfaltblatt schrieb: max 720x400 bei 256 Farben aus 262.000! Ha, ich hätte diese 31.5- Festfrequenzler als "exxxtreme resolution - exxxtreme color 480p" verkauft!

Warum überhaupt ein Monitor in der Horizontalen mehr als eine Auflösung bieten kann , habe ich bis heute nicht kapiert. Da die Lochmaske ein mechanisches (und nach meinem Verständnis fest verbautes) Bauteil ist, müßte sie doch die Auflösung auf eine einzige Auflösung beschränken ... ... ach, auch egal!

wobo

Re: Programmierung unter DOS

Verfasst: Fr 22. Okt 2010, 20:36
von DOSferatu
Die Lochmaske ist für die "Sub-Pixel", also die, die man auf dem CRT mit der Lupe sieht (oder wenn man nah rangeht), die haben nichts mit den realen Pixeln der aktuellen Auflösung zu tun, die größer sind und sich so "zusammensetzen"...
Die Pixel beim CRT entstehen, indem der Rasterstrahl (eigentlich 3 bei FarbScreen) von links nach rechts rüberfährt und dann immer mit der jeweiligen Intensität auf die bei Anregung leuchtende Schicht trifft. Und das dann zeilenweise abwärts. Je häufiger pro Zeile sich da neue Pixeldaten ergeben, umso mehr Pixel pro Zeile. Die Zeilen ergeben sich anders - da werden die für die senkrechte Ablenkung gedachten magnetische Felder erzeugenden Platten schneller verschoben.... ich kann das so schlecht erklären...
Das ist halt CRT (Cathode Ray Tube = Kathodenstrahlröhre), was die erste Form an Bildschirmen war.
Die TFT Bildschirme haben feste Pixel, die durch Transistoren hell oder dunkel (in 256 Stufen) gemacht werden können (eigentlich wie LCD), von hinten wird das Ganze beleuchtet und von vorne ist ne Folie mit roten grünen und blauen senkrechten Linien. Ist der Pixel zu, ist die Farbe schwarz, isser offen, ist die Farbe weiß, ist zB nur der rechte des RGB-Pixels (blau) zu, ist es gelb... usw
Die anderen Auflösungen bei TFT werden interpoliert oder hochgerechnet, d.h. ein TFT hat nur eine einzige Auflösung, die anderen werden aus den Pixeln zusammengesetzt. Sieht immer irgendwie bescheiden aus, wenn man nicht die maximale Auflösung des TFT fährt...

Re: Programmierung unter DOS

Verfasst: Sa 23. Okt 2010, 11:53
von freecrac
DOSferatu hat geschrieben:Die Lochmaske ist für die "Sub-Pixel", also die, die man auf dem CRT mit der Lupe sieht (oder wenn man nah rangeht), die haben nichts mit den realen Pixeln der aktuellen Auflösung zu tun, die größer sind und sich so "zusammensetzen"...
Die Pixel beim CRT entstehJa, auch Dir ein Hallo!
Das zweite Foto (in Farbe) war gestern noch nicht da. Da sieht man erst, daß Deine Haare blau sind, mit so hellen Strähnchen. Auch sehr hübsch.

Die 03*** bedeutet bei mir Cottbus - ich wohne auch direkt da. Ich hoffe, es stört Dich nicht, wenn ich mal frage, wo aus 02*** Du herkommst. Muß ja irgendwo in der Umgebung sein.
en, indem der Rasterstrahl (eigentlich 3 bei FarbScreen) von links nach rechts rüberfährt und dann immer mit der jeweiligen Intensität auf die bei Anregung leuchtende Schicht trifft. Und das dann zeilenweise abwärts. Je häufiger pro Zeile sich da neue Pixeldaten ergeben, umso mehr Pixel pro Zeile. Die Zeilen ergeben sich anders - da werden die für die senkrechte Ablenkung gedachten magnetische Felder erzeugenden Platten schneller verschoben.... ich kann das so schlecht erklären...
Das ist halt CRT (Cathode Ray Tube = Kathodenstrahlröhre), was die erste Form an Bildschirmen war.
Die TFT Bildschirme haben feste Pixel, die durch Transistoren hell oder dunkel (in 256 Stufen) gemacht werden können (eigentlich wie LCD), von hinten wird das Ganze beleuchtet und von vorne ist ne Folie mit roten grünen und blauen senkrechten Linien. Ist der Pixel zu, ist die Farbe schwarz, isser offen, ist die Farbe weiß, ist zB nur der rechte des RGB-Pixels (blau) zu, ist es gelb... usw
Die anderen Auflösungen bei TFT werden interpoliert oder hochgerechnet, d.h. ein TFT hat nur eine einzige Auflösung, die anderen werden aus den Pixeln zusammengesetzt. Sieht immer irgendwie bescheiden aus, wenn man nicht die maximale Auflösung des TFT fährt...
Dann gibt es bei CRTs auch noch einen kleinen Unterschied zwischen Lochmaske und Streifenmaske:
http://www.winhelpline.info/forum/allge ... maske.html

http://www.hardwaregrundlagen.de/oben10-003.htm
http://de.wikipedia.org/wiki/Streifenmaske
http://de.wikipedia.org/wiki/Lochmaske

http://www.wintotal-forum.de/index.php? ... 462.0;wap2

Dirk

Re: Programmierung unter DOS

Verfasst: Sa 23. Okt 2010, 12:37
von DOSferatu
Ich kenne den Unterschied zwischen Lochmaske und STreifenmaske
Ich habe nämlich einen mit Streifenmaske
einen 14" Sony. Trinitron-Technik. Der schafft (bei 14" !) 1280x1024. Vielleicht noch mehr, muß das mal mit der einen GRafikkarte ausprobieren.
Super Teil.

Re: Programmierung unter DOS

Verfasst: Sa 22. Jan 2011, 12:56
von oDOSseus
Um zum Topic zurück zukehren.

Das erste was ich "programmierte" waren Webseiten. Schnell lernte ich dann Javascript und dann PHP. Wer diese beiden Sprachen kann, kann auch eig. Java. So lernte ich Java und war da auch sehr erfolgreich, wie ich finde. Java ist aber immer zu langsam, also machte ich mich an C++ (ein bisschen). Da ich damals sehr in PCs interessiert war (bin ich immernoch) bin ich mal einem OS-Development-Tutorial gefolgt. Und habe auf ganzer Linie versagt, da ich kein C konnte xD.

Dann habe ich C gelernt und dachte mir, ich könnte ja mal auf DOS programmieren, aus sehnsucht an den alten PC, der in meinem Zimmer stand, als ich 10 oder 12 war, den wir aber verschrottet haben. Naja und nach C kam dann ASM, weil ASM einfach cool ist xD.

Die entwicklung ist also genau umgekehrt zur PC-Entwicklung: WEB-Ausdruckssprache --> WEB-Skriptsprache --> OO-Sprache --> C --> ASM

Re: Programmierung unter DOS

Verfasst: Di 17. Apr 2012, 20:47
von zatzen
Ich habe Anfang der 90er angefangen zu programmieren.
Meistens in Richtung Spiele bzw. "multimedial".

Ich hätte jetzt die Qualifikation um für Anfang der 90er wirklich ansehnliche
Spiele zu programmieren. Das würde ich eigentlich gerne nachholen -
ich bin nur in Zeiten von Windows und HD-3D Grafik verunsichert,
ob überhaupt noch jemand so ein "steinzeitliches" Spiel haben will.
Und ob ich mich nicht lieber in Windows Programmierung einlese
weil man da ja praktisch unbegrenzte Speichermöglichkeiten hat -
Aber das ist eigentlich kein Thema für mich, ich bin nicht motiviert
dazu, liebe das DOS-Flair und es würde wohl Jahre dauern bis
ich in Windows das schaffen würde was ich in DOS kann -
und ich fürchte, dass ich in Windows nur völlig "High Level"
programmieren würde, was mir keinen Spass macht.

Ich bin weniger der Demo-Freak mit wahnwitzig ausgeklügelten Algorhythmen -
ich arbeite lieber mit Bitmaps und soundmäßig mit Samples.
Habe auch zwei kleine Demos in reinem ASM geschrieben, aber eben
auch nur mit Musik und Sprites.

Was mir mit am meisten Spass macht ist das Erfinden eigener Dateiformate,
wie man Daten möglichst kompakt strukturiert zusammenfasst, mit Bit Flags usw.
Das würde ich bei Windows-Programmierung vermissen, wo man einfach
alle Werte als 64 Bit speichert, der Geschwindigkeit wegen.


Vielleicht hätte ja jemand Lust auf Teamarbeit.
Am versiertesten bin ich allerdings mittlerweile mit der Erstellung von Musik
in einem Tracker, aber gerade das wäre ja mal schön "retro", wenn man
so ein Tracker-Modul in ein Spiel einbaut, anstatt einfach ein MP3 dudeln zu lassen.


Ansonsten brauche ich vielleicht einfach nur seelischen Beistand, denn seit ca. 15 Jahren
will ich eigentlich gern mal ein Zwei-Spieler "Jump&Klopp" realisieren (Kloppen 2D :mrgreen: ),
das ich dann richtig schön mit viel Liebe und witzigen Sounds ausstatten kann.
Es ist daran gescheitert dass die "Windows-Revolution" kam, die Leute nur noch
Interesse an Echtzeit-Stragegie sowie Egoshootern zeigten, und dass DOS-Spiele
nicht mehr unter Windows lauffähig waren.

Re: Programmierung unter DOS

Verfasst: Sa 5. Mai 2012, 23:11
von GMBigB
Ich habe auch immer wieder überlegt ein DOS-Spiel zu machen. Ich habe damals auch viel in QuickBasic 4.5 gemacht und später mit Borland C. Leider sind nur wenige fertige Projekte dabei herausgekommen. Was die Programmierung heute wieder interessant macht, ist die Tatsache, dass die Sachen mittlerweile dank DosBox überall laufen. Sogar auf dem iPad oder Android. Klar ist die Steuerung ein Problem, aber da wird sich die nächsten Jahre sicher noch was tun.

Ob ich das aber in meinem Leben noch schaffe werde, ist fraglich. Es ist leider immer zu wenig Zeit für alles da...

Re: Programmierung unter DOS

Verfasst: Di 18. Sep 2018, 12:21
von go32
DODFeratu hat geschrieben: Hab übrigens n Haufen selbstgebaute nützliche Pascal-Units hier. Beispielsweise n 4-Ebenen-Scrollendes Leveldings mit 16x16er Blocks (sogar halbtransparent möglich). Und Sprites, die dreh-/vergrößer-/verkleiner/spiegel- und umfärbbar sind... (alles im sog. Mode-X) Wär vielleicht nützlich, wenn jemand n 2D Spiel für DOS coden will.
Falls jemand nicht weiß, wovon ich jetzt rede, es ihn aber trotzdem interessiert - einfach fragen. Dafür ist das ja hier n Forum...
Super. Wo kann ich denn das downloaden. Ich beschäftige mich nämlich gerade mit Scrolling im Grafikmodus. Lässt sich da was machen? Ich maien mit einem Post an mich mit der ZIP-Datei die die Units enthält?

Aber wieso 4 Ebenen Scrolling? Ich will nur halt Text scrollen können oder halt ein für den sichtbaren Ausschnitt zu großes Bild in alle 4 Richtungen bewegen können. Was sind da 16x16er Blocks. Ich brauche sowas im Grafikmodus, nicht Textmode.