FreeXP

CVS freexp

CVS User mw cvs-list at freexp.de
Son Mai 10 11:59:22 CEST 2009


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




Mehr Informationen über die CVS-List Mailingliste