Re: OS-Plattformen
Martin Wodrich [EMAIL PROTECTED] wrote on 24.12.05: Michael Heydekamp [EMAIL PROTECTED] schrieb am 23.12.05 um 17:11: Ja, es ist eben immer die DOS-Ausfuehrungsumgebung DOSBox. Unter welchem Betriebsystem nun DOSBox laeuft ist nicht erkennbar. Ebenso ist die Version von DOSBox nicht erkennbar. Hmm, das muss doch irgendwie gehen. Vielleicht fragt man die DOSBox'ler einfach mal. Ja, werde ich wohl mal machen. Wobei ich maximal eine Loesung zur DOSBox- Version erwarte. Nur darum ging's ja. Allerdings bezweifle ich, nachdem ich mich mal ein bißchen über DOSBox belesen habe, daß XP dort überhaupt vernünftig laufen könnte. Die Kommandozeile von DOSBox kennt offenbar nur die rudimentärsten Befehle, so mancher externe Aufruf und so ziemlich jede Batch dürfte auf die Nase fallen. Michael FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Michael Heydekamp [EMAIL PROTECTED] schrieb am 25.12.05 um 15:19: Ja, werde ich wohl mal machen. Wobei ich maximal eine Loesung zur DOSBox- Version erwarte. Nur darum ging's ja. Ich habe jedenfalls eine Mail an die DOSBoxler geschrieben. Mal abwarten, was daraus wird. Allerdings bezweifle ich, nachdem ich mich mal ein bisschen ueber DOSBox belesen habe, dass XP dort ueberhaupt vernuenftig laufen koennte. XP selbst laeuft. Und mit Modem ist es wohl auch benutzbar. Aber alles was darueber weiter geht, denke ich ist auch fraglich. DOSBox ist halt primaer fuer alte Spiele geschrieben, wo es nur darum geht das sie ueberhaupt auch auf moderner Hardware laufen. Alles was darueber hinaus geht ist wohl reine Gluecksache. Die Kommandozeile von DOSBox kennt offenbar nur die rudimentaersten Befehle, Jepp. so mancher externe Aufruf und so ziemlich jede Batch duerfte auf die Nase fallen. Nun ich wuerde nicht erwarten, das ich DOSBox derzeit als Compilerumgebung fuer FreeXP einsetzen koennte, aber fuer relativ einfache Batche sollte es sogar noch klappen. Aber ganz recht: Garantien kann es nicht geben, da es wirklich ziemlich rudimentaer ist, was DOSBox kann. -- Mit freundlichen Gruessen, Martin Wodrich FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
OS/2 (was: OS-Plattformen)
Martin Wodrich [EMAIL PROTECTED] wrote on 24.12.05: Michael Heydekamp [EMAIL PROTECTED] schrieb am 23.12.05 um 17:20: Koennte man hoechstens fest verdrahten (wenn es ausser der 4.51 keine andere 4.5er-Version geben sollte, was AFAIR der Fall ist). Im Volksmund scheint sie aber eh als 4.5 zu laufen, insofern ist das auch egal. Also sparen wir uns die Sonderloesung. Jo. Aber mal 'ne andere Frage zu OS/2: Bei XP2 kann es (zumindest theoretisch) vorkommen, daß im MAILER:-Header als Compiler-Plattform OS/2 vorkommt, AFAIK wurden native OS/2- Compilate auch mal unter der Hand verteilt. Wie verhält sich OS/2, wenn ein natives OS/2-Programm ein DOS-Programm wie den E-UUZ aufruft? Wäre der dann in der Lage, mit der vorhandenen Routine die OS/2-Version zu erkennen und als Compiler/Runtime-Plattform z.B. OS2/OS2-3.0 zu produzieren (wobei das OS2 vor dem Slash aus dem XP2-Header ausgelesen würde)? Bei einem nativen Win32-Compilat (das in den Sourcen von XP2 auch vorgesehen ist, wohl aber nie erstellt oder verteilt wurde) würde das nach meinem Verständnis ja funktionieren, so daß der E-UUZ bei der derzeitigen Logik den korrekten String W32/WinXP (z.B.) produzieren würde (W32 ebenfalls aus dem XP2-Header ausgelesen). Bei OS/2 bin ich nicht sicher, ob der E-UUZ automatisch in der richtigen Umgebung (also das, was bei Win9x der DOS-Box und bei WinNT der NTVDM entspricht) laufen würde. Michael FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS/2 (was: OS-Plattformen)
Wie verhält sich OS/2, wenn ein natives OS/2-Programm ein DOS-Programm wie den E-UUZ aufruft? Wäre der dann in der Lage, mit der vorhandenen Routine die OS/2-Version zu erkennen und als Compiler/Runtime-Plattform z.B. OS2/OS2-3.0 zu produzieren (wobei das OS2 vor dem Slash aus dem XP2-Header ausgelesen würde)? Wer ist der? Der UUZ? Jede DOS16-Anwendung kann aus der OS/2-Dosbox heraus die Versionsnummer des OS/2 feststellen. Was war jetzt die Frage, die ich Dir als OS/2-Benutzer beantworten könnte? -jha- FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Michael Heydekamp [EMAIL PROTECTED] schrieb am 23.12.05 um 17:20: Die 1 von 4.51 wird leider so nicht uebergeben. Und kann daher auch nicht angezeigt werden. Koennte man hoechstens fest verdrahten (wenn es ausser der 4.51 keine andere 4.5er-Version geben sollte, was AFAIR der Fall ist). Im Volksmund scheint sie aber eh als 4.5 zu laufen, insofern ist das auch egal. Also sparen wir uns die Sonderloesung. -- Mit freundlichen Gruessen, Martin Wodrich FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Michael Heydekamp [EMAIL PROTECTED] schrieb am 22.12.05 um 21:14: Eigentlich wuerde ich im UA-Header ohnehin ungerne solche Marketing- Bezeichnungen wie Warp verwenden. Du wirst dabei aber schwer darum kommen. Wieso, ich kann doch auch OS2-3.0 schreiben Stimmt. Zumal diese meist bekannter sidn als die echte Versionnummer. Aber Warp ist uneindeutig, das kann auch eine 4.0 oder 4.51 sein. Wobei mir gerade einfaellt, dass das bisherige 'writever' eine 4.51 wohl gar nicht korrekt ausgeben wuerde...? Die 1 von 4.51 wird leider so nicht uebergeben. Und kann daher auch nicht angezeigt werden. Ich erinnere nur an Windows 4.xx (besser bekannt als Windows 95, 98 bzw. Millenium Edition (ME)) oder eben Windows NT 5.xx (aka Windows 2000 ,XP bzw. 2003). Siehe oben. Der Unterschied ist, dass Win95, Win98 usw. eigenstaendige und eindeutige (SE und sowas jetzt mal aussen vor gelassen) Versionsbezeichnungen und nicht nur ein Beiname wie Warp sind. Da steckt die Version auch im Namen selbst, bei Warp nicht. Richtig, das ist wirklich ein Unterschied. Wenn ja, dann verstehe ich den Code in 'writever' nicht, mit dem auf Warp getestet wird. Auch nicht, wieso einmal div und einmal / verwendet wird. Ist es kein Warp, so wird die klassische Ausgabe gewaehlt (welche bei alten OS/2 Versionen korrekt war). Ist es dagegen ein OS/2 Warp so muss man anders vorgehen, da die Version anders uebergeben wird. Daraus ergibt sich dann auch warum mal ein nur ganzzahliges Ergebnis verwendet wird, und mal auch Nachkommastellen. Hab ich jetzt auch verstanden. :) GUt :-) Frage bitte nicht nach Logik, da nur IBM weiss, wieso sich Warp anders verhaellt. Ach, die wollen mich nur aergern... ;) Grins. -- Mit freundlichen Gruessen, Martin Wodrich FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Michael Heydekamp [EMAIL PROTECTED] schrieb am 22.12.05 um 21:35: Zu DOSBOX gibts dies in Clip.pas: Ich werd das wohl erst mal haendisch reinkopieren, damit der UUZ sozusagen DOSBOX-faehig ist. Ok. Wie kommt man denn da eigentlich an die Versionsnummer ran? Bisher: gar nicht. Was gibt 'DOSEmuVersion' unter DOSBOX zurueck? Einen leeren String, da DOSBox ungleich DOSEMU. Und DOSBox (so ist die Schreibweise, wie ich http://dosbox.sourceforge.net/ entnehme, sollten wir gelegentlich mal aendern) Done (zumindest in der Anzeige). Im Namen von Funktionen und Prozeduren ist das eh egal. gibt's ja nicht nur fuer Linux, also muesste man, wenn wir das als reine Linux-Umgebung fuer XP betrachten, das irgendwie in Abhaengigkeit davon erkennen? Das kann man nicht zuverlaessig erkennen. Und muss es auch nicht. DOSBox ist eben DOSBox. Nach der derzeitigen Logik wuerden wir im Falle DOSBox immer DOSBOX ausgeben, auch unter Windows. Hmm, ist ja vielleicht auch gar nicht falsch, wenn ich's recht ueberlege... Ja, es ist eben immer die DOS-Ausfuehrungsumgebung DOSBox. Unter welchem Betriebsystem nun DOSBox laeuft ist nicht erkennbar. Ebenso ist die Version von DOSBox nicht erkennbar. Aber wie kann man denn erkennen, ob DOSBox unter Windows, Linux, BeOS oder was auch immer laeuft? Gar nicht zuverlaessig. Man kann nur raten, in dem man den Filehandletest durchfuehrt. Unter Windows klappt er, unter unixartigen Systemen ging er zumindest bei der Version die aktuell war, als ich die DOSBox-Anpassungen durchgefuehrt habe (also den Test deaktiviert habe) schief. Eine Erkennung des unterliegenden Betriebsystems ist allerdings eh nicht notwendig, da es eben keine reine VM ist, wie direkt unter Windows (auch XP), sondern ein kompletter emulierter DOS-PC. -- Mit freundlichen Gruessen, Martin Wodrich FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Michael Heydekamp [EMAIL PROTECTED] schrieb am 20.12.05 um 00:42: Was mir noch nicht so ganz klar ist: 1. Was ist denn case WinVersion of 1? Windows 1.x/2.x? Das kann nicht ausgegeben werden. Minimales Ergebnis ist 2 fuer Win3.xx, siehe auch clip.pas: { Rueckgabe: 2 = Win 3.xx, 3 = Win95/98/ME/..., 4 = WinNT/2k/XP/... } 2. Ich bin nicht sicher, ob die Reihenfolge in 'writever' eine Rolle spielt. Muss die OS/2 = Linux = Win lauten? Oder ist sichergestellt, dass 'WinVersion' wirklich immer 0 zurueckgibt, wenn es kein Windows ist? WinVersion ist immer 0, wenn kein Windows. DOSBOX kann ich im Moment noch nicht beruecksichtigen, weil der Code in meiner Arbeitsumgebung noch nicht drin ist. Zu DOSBOX gibts dies in Clip.pas: Function AT : Boolean; { in: - } {out: True/False, if the machine is (at least) an AT} begin AT := MEM[$F000 : $FFFE] = $FC; end; function DOSBOX: boolean; begin if ((Test80861) and (AT=false)) then DOSBOX:=true else DOSBOX:=false; end; Erklaerung: Es wird einfach auf zwei verschiedenen Wegen auf mindestens 80286 getestet. Unter DOSBOX liefert Test8086 auf jeden Fall 3 zurueck (wegen 80386 als Mindestvoraussetzung von DOSBOX). Im BIOS findet sich allerdings an F000:FFFE nicht die charaktischen FC. Alle vorherigen Testversuche haben manchmal Probleme bei anderen DOS-Ausfuehrungsumgebungen gemacht. Here we go: --8-- ... --8-- Sieht vernuepftig aus. -- Mit freundlichen Gruessen, Martin Wodrich FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Martin Wodrich [EMAIL PROTECTED] wrote on 22.12.05: Michael Heydekamp [EMAIL PROTECTED] schrieb am 20.12.05 um 00:42: Was mir noch nicht so ganz klar ist: 1. Was ist denn case WinVersion of 1? Windows 1.x/2.x? Das kann nicht ausgegeben werden. Minimales Ergebnis ist 2 fuer Win3.xx, siehe auch clip.pas: { Rueckgabe: 2 = Win 3.xx, 3 = Win95/98/ME/..., 4 = WinNT/2k/XP/... } Das hab ich natürlich auch gelesen und mich eben deshalb gefragt, was wohl bei Windows 2.x und früher zurückkommt. Meine Vermutung war, daß man das schlicht ausgelassen hat. Die Frage ist natürlich rein akademisch, denn es gibt sicher mehr FreeXP-User als Benutzer von Windows 2.x (wenn es überhaupt welche gibt). DOSBOX kann ich im Moment noch nicht beruecksichtigen, weil der Code in meiner Arbeitsumgebung noch nicht drin ist. Zu DOSBOX gibts dies in Clip.pas: Ich werd das wohl erst mal händisch reinkopieren, damit der UUZ sozusagen DOSBOX-fähig ist. Sieht vernuepftig aus. Bis auf das mit der Versionsnummer für OS/2 Warp, das ist mir noch nicht ganz klar (siehe auch meine Mail dazu). Eigentlich würde ich im UA-Header ohnehin ungerne solche Marketing- Bezeichnungen wie Warp verwenden. Ich kenne mich mit OS/2 nicht aus, aber ist nicht alles =3.0 sowieso Warp? Kann ich mangels OS/2 alles leider nicht testen, jedenfalls wüßte ich gerne mal den Code, um für die jeweiligen OS/2-Versionen einfach nur 1.0, 2.0, 3.0 (welche immer es da geben mag) usw. zurückzubekommen. Früher (bevor wir Warp ausgegeben haben) gab's ja ausschließlich das hier: --8-- if os2 then write(lo(dosversion)div 10:2,'.',hi(dosversion)) --8-- Ist das das, was ich brauche? Wenn ja, dann verstehe ich den Code in 'writever' nicht, mit dem auf Warp getestet wird. Auch nicht, wieso einmal div und einmal / verwendet wird. Michael FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Michael Heydekamp [EMAIL PROTECTED] schrieb am 22.12.05 um 18:08: Was mir noch nicht so ganz klar ist: 1. Was ist denn case WinVersion of 1? Windows 1.x/2.x? Das kann nicht ausgegeben werden. Minimales Ergebnis ist 2 fuer Win3.xx, siehe auch clip.pas: { Rueckgabe: 2 = Win 3.xx, 3 = Win95/98/ME/..., 4 = WinNT/2k/XP/... } Das hab ich natuerlich auch gelesen und mich eben deshalb gefragt, was wohl bei Windows 2.x und frueher zurueckkommt. Nun ich habe auch keinen Code gefunden, der irgentwas bezueglich Win 2.x testet. Also ist es ziemlich naheliegend, da solche Museumsware auch nicht erkannt wird. Meine Vermutung war, dass man das schlicht ausgelassen hat. Jepp. Die Frage ist natuerlich rein akademisch, denn es gibt sicher mehr FreeXP- User als Benutzer von Windows 2.x (wenn es ueberhaupt welche gibt). Ausserdem war alles vor Win 3.xx eigentlich sowieso ziemlich beschraenkt einsatzfaehig. DOSBOX kann ich im Moment noch nicht beruecksichtigen, weil der Code in meiner Arbeitsumgebung noch nicht drin ist. Zu DOSBOX gibts dies in Clip.pas: Ich werd das wohl erst mal haendisch reinkopieren, damit der UUZ sozusagen DOSBOX-faehig ist. Ok. Sieht vernuepftig aus. Bis auf das mit der Versionsnummer fuer OS/2 Warp, das ist mir noch nicht ganz klar (siehe auch meine Mail dazu). 100% sicher bin ich mir dabei auch nicht. Allerdings wurde die aktuelle Routine so mit einem OS/2 Kenner besprochen. Ich selbst habe hier auch kein OS/2. Eigentlich wuerde ich im UA-Header ohnehin ungerne solche Marketing- Bezeichnungen wie Warp verwenden. Du wirst dabei aber schwer darum kommen. Zumal diese meist bekannter sidn als die echte Versionnummer. Ich erinnere nur an Windows 4.xx (besser bekannt als Windows 95, 98 bzw. Millenium Edition (ME)) oder eben Windows NT 5.xx (aka Windows 2000 ,XP bzw. 2003). Ich kenne mich mit OS/2 nicht aus, aber ist nicht alles =3.0 sowieso Warp? Leider kann ich dir dazu auch keine wirklich umfassende Auskunft geben. Frueher (bevor wir Warp ausgegeben haben) gab's ja ausschliesslich das hier: --8-- if os2 then write(lo(dosversion)div 10:2,'.',hi(dosversion)) --8-- Ist das das, was ich brauche? Nein, weil es afaik einfach nur Bloedsinn ausgegeben hat, sobald es ein OS/2 Warp vor sich hatte. Wenn ja, dann verstehe ich den Code in 'writever' nicht, mit dem auf Warp getestet wird. Auch nicht, wieso einmal div und einmal / verwendet wird. Ist es kein Warp, so wird die klassische Ausgabe gewaehlt (welche bei alten OS/2 Versionen korrekt war). Ist es dagegen ein OS/2 Warp so muss man anders vorgehen, da die Version anders uebergeben wird. Daraus ergibt sich dann auch warum mal ein nur ganzzahliges Ergebnis verwendet wird, und mal auch Nachkommastellen. Frage bitte nicht nach Logik, da nur IBM weiss, wieso sich Warp anders verhaellt. -- Mit freundlichen Gruessen, Martin Wodrich FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
Re: OS-Plattformen
Martin Wodrich [EMAIL PROTECTED] wrote on 22.12.05: Michael Heydekamp [EMAIL PROTECTED] schrieb am 22.12.05 um 18:08: [...] Eigentlich wuerde ich im UA-Header ohnehin ungerne solche Marketing- Bezeichnungen wie Warp verwenden. Du wirst dabei aber schwer darum kommen. Wieso, ich kann doch auch OS2-3.0 schreiben (zu dämlich, daß der Name das Betriebssystems auch noch eine Ziffer als letztes Zeichen hat). Der Header bzw. dessen Inhalt an dieser Stelle erfüllt einen technischen Zweck, und wer den interpretiert, den interessiert die 3.0 sicher mehr als der Marketingname Warp. Zumal diese meist bekannter sidn als die echte Versionnummer. Aber Warp ist uneindeutig, das kann auch eine 4.0 oder 4.51 sein. Wobei mir gerade einfällt, daß das bisherige 'writever' eine 4.51 wohl gar nicht korrekt ausgeben würde...? Ich erinnere nur an Windows 4.xx (besser bekannt als Windows 95, 98 bzw. Millenium Edition (ME)) oder eben Windows NT 5.xx (aka Windows 2000 ,XP bzw. 2003). Siehe oben. Der Unterschied ist, daß Win95, Win98 usw. eigenständige und eindeutige (SE und sowas jetzt mal außen vor gelassen) Versionsbezeichnungen und nicht nur ein Beiname wie Warp sind. Da steckt die Version auch im Namen selbst, bei Warp nicht. Ich kenne mich mit OS/2 nicht aus, aber ist nicht alles =3.0 sowieso Warp? Ist wohl so, siehe: http://www.operating-system.org/betriebssystem/_german/bs-os2.htm Wenn ja, dann verstehe ich den Code in 'writever' nicht, mit dem auf Warp getestet wird. Auch nicht, wieso einmal div und einmal / verwendet wird. Ist es kein Warp, so wird die klassische Ausgabe gewaehlt (welche bei alten OS/2 Versionen korrekt war). Ist es dagegen ein OS/2 Warp so muss man anders vorgehen, da die Version anders uebergeben wird. Daraus ergibt sich dann auch warum mal ein nur ganzzahliges Ergebnis verwendet wird, und mal auch Nachkommastellen. Hab ich jetzt auch verstanden. :) Frage bitte nicht nach Logik, da nur IBM weiss, wieso sich Warp anders verhaellt. Ach, die wollen mich nur ärgern... ;) Michael FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list
OS-Plattformen
Hi, in Sachen User-Agent: soll optional sowohl die Compiler-Plattform (bei uns 'DOS16') als auch die Plattform ausgegeben werden können, unter der XP (bzw. der UUZ) aktuell läuft. Des weiteren soll angegeben werden können, ob man die genaue Version ('WinXP', aber ohne genaue Versionsnummer) oder nur die Versionsfamilie ('Win9x', 'WinNT') ausgegeben haben will. Nun hab ich mal versucht, aus 'writever()' und 'memstat' in xp5.pas schlau zu werden (hab mich damit noch nie im Detail beschäftigt) und das für meine Zwecke anzupassen. Vielleicht kann sich mal jemand den Code unten ansehen und eine Einschätzung geben, ob das wohl so laufen würde. Wenn am Ende ein Leerstring zurückkommt, soll es plain DOS sein (da würde dann auch nichts zusätzlich ausgegeben werden, weil ich 'DOS16/DOS6' o.ä. etwas dämlich fände, IMO spielt die Version da auch keine wesentliche Rolle). Was mir noch nicht so ganz klar ist: 1. Was ist denn case WinVersion of 1? Windows 1.x/2.x? 2. Ich bin nicht sicher, ob die Reihenfolge in 'writever' eine Rolle spielt. Muß die OS/2 = Linux = Win lauten? Oder ist sichergestellt, daß 'WinVersion' wirklich immer 0 zurückgibt, wenn es kein Windows ist? DOSBOX kann ich im Moment noch nicht berücksichtigen, weil der Code in meiner Arbeitsumgebung noch nicht drin ist. Here we go: --8-- os:=''; case WinVersion of { erstmal alle Windows-Versionen prüfen } { 1 : os:=??? } 2 : os:='Win3.x'; 3 : if osfamily then os:='Win9x' else begin if lo(TrueWinVersion)5 then os:='Win95' else case lo(dosversion) of 7 : os:='Win98'; 8 : os:='WinMe'; end; end; 4 : if (lo(WinNTVersion)=0) or osfamily then { ohne XP_NTVDM.DLL } os:='WinNT' else begin if lo(WinNTVersion) in [5,6] then{ mit XP_NTVDM.DLL } begin if hi(WinNTVersion)=0 then os:='Win2K' else os:='WinXP'; end else os:='WinNT'; end; else begin if lo(dosversion)=10 then os:='OS2' else if DOSEmuVersion'' then os:='Linux[DOSEMU]' end; end; { case } if os'' then ua:=ua+iifs(hascompos,'/',iifs(hasbracket,'; (',' ('))+os; --8-- Michael FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list