DOS-GUI

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

DOS-GUI

Beitrag von Hroudtwolf »

Hallo Loide,

Ich möcht ne GUI für DOS(ähnlich WIN3.11) für Studienzwecke schreiben.
Worauf muss ich da achten ?
Wie schaffe ich es eine Programm im Fenster meiner Gui darzustellen?
Reicht mir hierfür TurboBasic und Pascal ?
Wie macht man Multitasking ?
Viele viele Fragen !

Bin für jeden Tip dankbar.... die Sources meiner GUI werden später veröffentlicht.

So sieht mein Gehirn jetzt nach Tagelangen Forschungsarbeiten zu diesem Thema aus !

Bild
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: DOS-GUI

Beitrag von GPI »

CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

uagh. kann jemand das Bild löschen >__< ? Ich kann sollche Bilder nicht ab :( :freak:.

Ich würd mal sagen: Probier selber. Dafür reicht eigentlich sogar VB3 wenn ich mich nicht irre. Konnte man wo downloaden. Damit konnte man unter DOS GUIs machen. Ich find aber sowas mehr sinnlos. Warum für DOS eine GUI wenn man doch Windows hat :|?
Bild
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Re: DOS-GUI

Beitrag von Laurin »

Hallo Loide,
Moin
Ich möcht ne GUI für DOS(ähnlich WIN3.11) für Studienzwecke schreiben. Worauf muss ich da achten ?
Auf einen sauberen Programmierstil, ein durchdachtes Konzept und genügend Lust.
Wie schaffe ich es eine Programm im Fenster meiner Gui darzustellen?
Du müsstest dich in die Ausgabefunktionen von DOS einklinken und alles in dein Fenster umleiten. Nicht gerade einfach.
Reicht mir hierfür TurboBasic und Pascal ?
Du bräuchtest noch Assembler um auf die Interrupts zugreifen zu können. Oder kann das Pascal auch?
Wie macht man Multitasking ?
Jetzt wirds echt schwer. Du musst dazu den Prozessor direkt manipulieren, so dass er Multitasking einschaltet. Dann muss jedes Programm in ein paar bestimmten Tabellen eingetragen werden und diese dann der CPU direkt übergeben werden. Den Rest macht die CPU dann. Das ist nur leider viel zu aufwendig. Eventuell kannst du die Programme unterbrechen und manuell "stilllegen". So kannst du bestimmten Prozessen Vorrang geben. Allerdings musst du dazu dich wieder an die DOS Interrupts hängen.
Viele viele Fragen !
Die Letzte hatte es in sich. Multitasking kannst du so gut wie vergessen. Alles Andere läßt sich mit mehr oder weniger viel Aufwand machen.
Bin für jeden Tip dankbar....
Dann fang schon mal an mir Geschenke zu schicken /:->
die Sources meiner GUI werden später veröffentlicht.
Fein.
So sieht mein Gehirn jetzt nach Tagelangen Forschungsarbeiten zu diesem Thema aus !
Siehst echt etwas durchgenuddelt aus :lol:

Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: DOS-GUI

Beitrag von Danilo »

Hroudtwolf hat geschrieben:Wie macht man Multitasking ?
Beim Verlag http://www.shaker.de/ gibt es von Klaus-Dieter Thies
ein paar Bücher dazu:
Echtzeit-Multitasking
Memory Management und System Design im Protected Mode der x86/Pentium-Architektur


Echtzeit-Multitasking
Der Kernel - Parallele Systemprogrammierung im Protected Mode der Pentium Architektur, 2. erw. Auflage


Beide Bücher gibt es dort auch als PDF zu kaufen, wenn Du
vielleicht erstmal reinschauen willst.
Besser 10,- Euro für beide PDFs (oder nur das 2. Buch), als
gleich 90,-Euro, wenn Du noch nicht weißt ob es Dir was nützt.

Auf Amazon.de:
http://www.amazon.de/exec/obidos/ASIN/3826599543/
http://www.amazon.de/exec/obidos/ASIN/3826594878/

Eine viel ältere Ausgabe war:
http://www.amazon.de/exec/obidos/ASIN/3446175067/


Ich habe die alte Ausgabe über 5 Jahre lang gesucht und konnte
es damals nirgendwo auftreiben. Als ich es dann bei Shaker
gefunden hatte habe ich gleich die PDFs gekauft - für diesen
Preis ein gutes Angebot.

Falls Du das noch nicht machst, solltest Du Dir am besten
einen x86-Emulator installieren (Bochs, VMware, MS Virtual PC),
um dann im Emu Dein Zeug zu lernen - erspart Dir tausendfaches
Rebooten... ;)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Ich möchte nur eigene Programme untger der GUI lauffähig machen !
Wie kann ich unter PASCAL etwaige Daten im Speicher an meine
GUI übergeben ?

Hab schon grafisch alles fertig..von den Fenstern bis zur Fensterverwaltung..
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Du musst einen Speicher finden, auf den die GUI und dein Pascal-Programm zugreifen können. Am besten ist dieser Speicher auch noch vor anderen Programmen geschützt (beugt Viren und Fehler vor).
Wie der Speicher aussieht ist deine Sache. Es könnte zum Beispiel eine Datei sein, ein bestimmter Bereich im RAM etc.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
QuickBasic
Beiträge: 75
Registriert: 11.09.2004 12:54

Beitrag von QuickBasic »

Danke. ich esse gerade...
Man ißt nicht, wenn man am PC sitzt, also, wirklich!
Da wird ja alles schmutzig! /:->

@HW:
Eine Gui kannst du, wenn du MS/PC-DOS schon installiert
hast, leichter programmieren, als ohne!
Selbst dann ist es noch schwer genug, D und L habens ja schon
beschrieben, MULTITASKING ist das Problem. Mach erst mal eine
SingleTask umgebung, die du dann erweiterst!
TurboBasic und TurboPascal sind dafür nat. erste Wahl, denn
beide können Assemblerbefehle ausführen (TB zwar nur eingeschränkt)
und beide bringen eine leistungsfähige "Grafikengine" mit, TB eine einge-
baute, TP die berühmte "Borland Grafic Interface"-Engine, die unter Dos
läuft. Willst du ein MS/PC-DOS Programm im Fenster deiner GUI ausführ-
en, musst du die Interruptroutine dafür aufrufen, die kannst du relativ
einfach mit der Interruptlist von Ralf Brown finden. Es gab mal eine Site,
(www.tif-masters.de) die hatten eine RIESIGE TP-FAQ und ein Beispiel-
programm zu deinem Problem, die Site gibts inzwischen nicht mehr und
Google konnte auch nicht helfen......
......Speicherstellen kopieren kannst du mit den TP-Befehlen Move und Mem, wobei Move schneller ist.
Einfach Zeiger auf Speicherstelle einrichten und kopieren:
Beispiel gefällig?!

Code: Alles auswählen

Program CopyMem;
Uses Crt;
Var a, b:String;
Pa, Pb:Pointer;
Begin
ClrScr;
Writeln('Wir werden nun einen String in einen anderen kopieren!');
Write('Bitte String eintippen: ');
Readln(a);
Writeln; Writeln;
Writeln('Der String liegt an Adresse [',Seg(a),':',Ofs(a),']');
Pa := Ptr(Seg(a),Ofs(a)); {Zeiger auf a einrichten}
Writeln;
Writeln('String wird kopiert!');
b := ''; {Zur Sicherheit, nicht unbedingt notwendig}
Pb := Ptr(seg(b),Ofs(b));
{Jetzt gehts los}
Move(Pa^,Pb^,Length(a)+1); {Kopiere a nach b mit Länge a+1, weil
1 Byte Längenangabe!}
Writeln('String in b: ',b);
End.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Danke Danke Danke

Beitrag von Hroudtwolf »

Danke Danke Danke

Eure Antworten helfen mir sehr weiter....
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Ich habe doch schon was gesagt. Such mal nach einer DOS Variante von VB. Soweit ich mich errinern kann gab es mal ne Website wo man sich alle VB Versionen bis 5 oder so downloaden kann. Mit diesen VB Varianten kann man unter DOS eine GUi in einem Fenster darstellen. Diese sind dann aber im ASCII Modus. Die Fenster sind übrigens auch Multitasking und können minimiert/maximiert werden. Wenn du eine echte GUI suchst dann versuch mal GIMI.
Bild
Antworten