Update of /server/cvs/freexp
In directory m6s15:/tmp/cvs-serv14246

Modified Files:
        xp_ntvdm.pas file_id.diz clip.pas 
Log Message:
MW: - Korrekturen im Bereich Timezone/Windows.


--- /server/cvs/freexp/xp_ntvdm.pas     2009/05/03 16:00:41     1.16
+++ /server/cvs/freexp/xp_ntvdm.pas     2009/05/10 09:59:22     1.17
@@ -7,7 +7,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: xp_ntvdm.pas,v 1.16 2009/05/03 16:00:41 mw Exp $            }
+{ $Id: xp_ntvdm.pas,v 1.17 2009/05/10 09:59:22 mw Exp $            }
 
 {$R xp_ntvdm.rc}
 
@@ -34,7 +34,7 @@
 { procedure setCL(para:UCHAR);   external 'ntvdm.exe'; }   function 
getCL:UCHAR;  external 'ntvdm.exe';  
 { procedure setCH(para:UCHAR);   external 'ntvdm.exe'; }   function 
getCH:UCHAR;  external 'ntvdm.exe';  
 
-  procedure setEDX(para:ULONG);  external 'ntvdm.exe';   { function 
getEDX:ULONG; external 'ntvdm.exe'; }
+{ procedure setEDX(para:ULONG);  external 'ntvdm.exe'; } { function 
getEDX:ULONG; external 'ntvdm.exe'; }
 { procedure setDX(para:USHORT);  external 'ntvdm.exe'; }   function 
getDX:USHORT; external 'ntvdm.exe';  
 { procedure setDH(para:UCHAR);   external 'ntvdm.exe'; } { function 
getDH:UCHAR;  external 'ntvdm.exe'; }
 { procedure setDL(para:UCHAR);   external 'ntvdm.exe'; } { function 
getDL:UCHAR;  external 'ntvdm.exe'; }
@@ -316,34 +316,49 @@
 
 { --- GetTimeZone ---------------------------------------------- }
 
-procedure GetTimeZone;
+procedure GetTimeZone1;
 var TZ : TTimeZoneInformation;
-    minutes : integer;
     mode: integer;
 begin
   mode:=0;
-  minutes:=0;
   case GetTimeZoneInformation(TZ) of
     TIME_ZONE_ID_UNKNOWN :
       begin
         mode:=0;
-        minutes:=TZ.Bias;
       end;
     TIME_ZONE_ID_STANDARD:
       begin
         mode:=0;
-        minutes:=TZ.StandardBias;
       end;
     TIME_ZONE_ID_DAYLIGHT:
       begin
         mode:=1;
-        minutes:=TZ.DaylightBias;
       end;
   end;
   setEAX(mode);
-  setEDX(minutes);
 end;
 
+procedure GetTimeZone2;
+var TZ : TTimeZoneInformation;
+    minutes : integer;
+begin
+  minutes:=0;
+  case GetTimeZoneInformation(TZ) of
+    TIME_ZONE_ID_UNKNOWN :
+      begin
+        minutes:=TZ.Bias;
+      end;
+    TIME_ZONE_ID_STANDARD:
+      begin
+        minutes:=TZ.Bias + TZ.StandardBias;
+      end;
+    TIME_ZONE_ID_DAYLIGHT:
+      begin
+        minutes:=TZ.Bias + TZ.DaylightBias;
+      end;
+  end;
+  setEAX(minutes);
+end;
 
 { --- VDD calls ------------------------------------------------- }
 
@@ -353,7 +368,8 @@
     {Versionsinfos}
     $0000: get_windows_version;    {Windows NT Version bestimmen}
     $0001: XP_NTVDM_VER;           {Revision der XP_NTVDM.DLL bestimmen}
-    $0002: GetTimeZone;            {Timezone aus Windows 2000/XP/Server 2003/7 
(nur XPM) bestimmen}
+    $0002: GetTimeZone1;            {Timezone aus Windows 2000/XP/Server 
2003/7 (nur XPM) bestimmen}
+    $0003: GetTimeZone2;            {Timezone aus Windows 2000/XP/Server 
2003/7 (nur XPM) bestimmen}
 
     {Clipboardfunktionen}
     $0101: clip_to_string;         {einen String aus der Zwischenablage lesen}
@@ -387,7 +403,10 @@
 
 {
   $Log: xp_ntvdm.pas,v $
-  Revision 1.16  2009/05/03 16:00:41  mw
+  Revision 1.17  2009/05/10 09:59:22  mw
+  MW: - Korrekturen im Bereich Timezone/Windows.
+
+  Revision 1.16  2009-05-03 16:00:41  mw
   MW: - FreeXP 3.41 Release
 
   Revision 1.15  2008-12-26 18:37:18  mw
--- /server/cvs/freexp/file_id.diz      2005/12/04 09:08:51     1.10
+++ /server/cvs/freexp/file_id.diz      2009/05/10 09:59:22     1.11
@@ -1,32 +1,21 @@
 ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-º FreeXP v3.40 RC4   (Komplettpaket) º
+º FreeXP v3.41       (Komplettpaket) º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
-º Release-Candidate 4 vom 31.10.2005 º
+º Release vom 10.05.2009             º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
-º Die erste "echte" FreeXP-Release   º
-º ist im kommen. Nach langem Warten  º
-º ist es jetzt so weit:              º
-º Der erste echte Release-Candidate  º
-º zur Version 3.40 ist da.           º
-º Nach dieser letzten Testversion    º
-º erfolgt zeitnah die Release noch   º
-º in diesem Jahr.                    º
+º Die zweite "echte" FreeXP-Release  º
+º ist da.                            º
 º ---------------------------------- º
-º (c) 2005 by FreeXP   www.freexp.de º
+º (c) 2009 by FreeXP   www.freexp.de º
 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
 
 ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-º FreeXP v3.40 RC4    (Full package) º
+º FreeXP v3.41        (Full package) º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
-º Release Candidate 4 of 31.10.2005  º
+º Release of 10.05.2009              º
 ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
-º The first "true" FreeXP release    º
-º is on its way. After a long wait,  º
-º this is how things stand:          º
-º This is v3.40 Release Candidate 4  º
-º and after this latest test version,º
-º a release may well follow later    º
-º this year.                         º
+º The second "true" FreeXP release   º
+º is here.                           º
 º ---------------------------------- º
-º (c) 2005 by FreeXP   www.freexp.de º
+º (c) 2009 by FreeXP   www.freexp.de º
 ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
--- /server/cvs/freexp/clip.pas 2009/05/03 16:00:42     1.43
+++ /server/cvs/freexp/clip.pas 2009/05/10 09:59:22     1.44
@@ -8,7 +8,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: clip.pas,v 1.43 2009/05/03 16:00:42 mw Exp $ }
+{ $Id: clip.pas,v 1.44 2009/05/10 09:59:22 mw Exp $ }
 
 {$I XPDEFINE.INC }
 {$O+,F+}
@@ -200,15 +200,18 @@
 var mode:smallint;
 var minutes:smallint;
 
-   procedure Loadtimezone;assembler;
+   function Loadtimezone1:longint;assembler;
    asm
      mov dx,$0002
      mov ax,ntvdm_handle
      db  $c4,$c4,$58,2
-     db     $66                        { 32 bit prefix }
-     mov    mode,ax
-     db     $66                        { 32 bit prefix }
-     mov    minutes,dx
+   end;
+
+   function Loadtimezone2:longint;assembler;
+   asm
+     mov dx,$0003
+     mov ax,ntvdm_handle
+     db  $c4,$c4,$58,2
    end;
 
    function makeTZ(sw:char;tzdiff:longint):string;
@@ -220,11 +223,13 @@
    end;
 
 begin
+  {Nur bei Windows NT 5.x moeglich}
   if ((WinVersion=4) and (Lo(WinNTVersion)=5)) then
   begin
-    Loadtimezone;     {NTVDM aufrufen}
-    hour:=minutes div 60;
-    hour:=hour mod 24;
+    mode:=Loadtimezone1;        {NTVDM aufrufen}
+    minutes:=Loadtimezone2;     {NTVDM aufrufen}
+    hour:=-(minutes div 60);
+    {hour:=hour mod 24;}
     if (mode=0) then
        tzone:=makeTZ('W',hour)
     else
@@ -871,7 +876,10 @@
 end.
 {
   $Log: clip.pas,v $
-  Revision 1.43  2009/05/03 16:00:42  mw
+  Revision 1.44  2009/05/10 09:59:22  mw
+  MW: - Korrekturen im Bereich Timezone/Windows.
+
+  Revision 1.43  2009-05-03 16:00:42  mw
   MW: - FreeXP 3.41 Release
 
   Revision 1.42  2008-12-26 18:37:11  mw


------------------------------------------------------------------------
FreeXP CVS-Mailingliste
CVS-List@freexp.de
http://www.freexp.de/cgi-bin/mailman/listinfo/cvs-list

Antwort per Email an