浏览代码

Removed obsolete DWORD to SET conversions

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7726 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 年之前
父节点
当前提交
e9a2654f61

+ 17 - 30
source/Generic.Win32.Kernel32.Mod

@@ -172,7 +172,7 @@ TYPE
 
 	(** The FindData structure describes a file found by the FindFirstFile or FindNextFile function. *)
 	FindData* = RECORD
-		dwFileAttributes*: DWORD;
+		dwFileAttributes*: WORDSET;
 		ftCreationTime*, ftLastAccessTime*, ftLastWriteTime*: FileTime;
 		nFileSizeHigh*, nFileSizeLow*: LONGINT;
 		dwReserved0*, dwReserved1*: LONGINT;
@@ -207,7 +207,7 @@ TYPE
 	END;
 
 	Context* = RECORD
-		ContextFlags*: DWORD;
+		ContextFlags*: WORDSET;
 		DR0*, DR1*, DR2*, DR3*, DR6*, DR7*: LONGINT;
 		FloatSave*: FloatingSaveArea;
 		GS*, FS*, ES*, DS*: LONGINT;
@@ -281,7 +281,7 @@ TYPE
 		dwX*, dwY*, dwXSize*, dwYSize*: LONGINT;
 		dwXCountChars*, dwYCountChars*: LONGINT;
 		dwFillAttribute*: LONGINT;
-		dwFlags*: DWORD;
+		dwFlags*: WORDSET;
 		wShowWindow*, cbReserved2*: INTEGER;
 		lpReserved2*: ADDRESS;
 		hStdInput*, hStdOutput*, hStdError*: HANDLE
@@ -387,10 +387,10 @@ VAR
 	(** The CreateFile function creates or opens the following objects and returns a handle that can be used to access the object:
 		 files, pipes, mailslots, communications resources, disk devices (Windows NT only), consoles, directories (open only) *)
 	CreateFile-: PROCEDURE {WINAPI} ( CONST lpFileName: ARRAY   OF CHAR;
-																dwDesiredAccess, dwShareMode: DWORD;
+																dwDesiredAccess, dwShareMode: WORDSET;
 																lpSecurityAttributes: ANY;
 																dwCreationDistribution: LONGINT;
-																dwFlagsAndAttributes: DWORD;
+																dwFlagsAndAttributes: WORDSET;
 																hTemplateFile: HANDLE ): HANDLE;
 	(** The CreateProcess function creates a new process and its primary thread. The new process executes the specified
 			executable file. *)
@@ -408,7 +408,7 @@ VAR
 	CreateThread-: PROCEDURE {WINAPI} ( lpThreadAttributes: ADDRESS;
 																	  dwStackSize: LONGINT;
 																	  lpStartAddress: ThreadProc;
-																	  lpParameter: ANY;  dwCreationFlags: DWORD;
+																	  lpParameter: ANY;  dwCreationFlags: WORDSET;
 																	  VAR lpThreadId: LONGINT ): HANDLE;
 	(** The DeleteCriticalSection function releases all resources used by an unowned critical section object. *)
 	DeleteCriticalSection-: PROCEDURE {WINAPI} ( VAR lpCriticalSection: CriticalSection );
@@ -420,9 +420,9 @@ VAR
 	(** The DuplicateHandle function duplicates an object handle. *)
 	DuplicateHandle-: PROCEDURE {WINAPI} ( hSourceProcessHandle, hSourceHandle, hTargetProcessHandle: HANDLE;
 																			 VAR lpTargetHandle: HANDLE;
-																			 dwDesiredAccess: DWORD;
+																			 dwDesiredAccess: WORDSET;
 																			 bInheritHandle: BOOL;
-																			 dwOptions: DWORD ): BOOL;
+																			 dwOptions: WORDSET ): BOOL;
 	(** The EnterCriticalSection function waits for ownership of the specified critical section object. *)
 	EnterCriticalSection-: PROCEDURE {WINAPI} ( VAR lpCriticalSection: CriticalSection );
 	
@@ -461,7 +461,7 @@ VAR
 	GetCommandLine-: PROCEDURE {WINAPI} ( ): LPSTR;
 	(** The GetCommModemStatus function retrieves modem control-register values. *)
 	GetCommModemStatus-: PROCEDURE {WINAPI} ( hFile: HANDLE;
-																						VAR lpModemStat: DWORD ): BOOL;
+																						VAR lpModemStat: WORDSET ): BOOL;
 	(** The GetCommState function retrieves the current control settings for a specified communications device. *)
 	GetCommState-: PROCEDURE {WINAPI} ( hFile: HANDLE;
 																		 VAR lpDCB: DCB ): BOOL;
@@ -495,7 +495,7 @@ VAR
 	GetExitCodeProcess-: PROCEDURE {WINAPI} ( hProcess: HANDLE;
 																				  VAR lpExitCode: LONGINT ): BOOL;
 	(** The GetFileAttributes function returns attributes for a specified file or directory. *)
-	GetFileAttributes-: PROCEDURE {WINAPI} ( VAR lpFileName: ARRAY   OF CHAR ): LONGINT;
+	GetFileAttributes-: PROCEDURE {WINAPI} ( VAR lpFileName: ARRAY   OF CHAR ): WORDSET;
 	(** The GetFileSize function retrieves the size, in bytes, of the specified file. *)
 	GetFileSize-: PROCEDURE {WINAPI} ( hFile: HANDLE;  VAR lpFileSizeHigh: LONGINT ): LONGINT;
 	GetFileSizeEx-: PROCEDURE {WINAPI} ( hFile: HANDLE;  VAR lpFileSize: HUGEINT ): BOOL;
@@ -519,7 +519,7 @@ VAR
 	(* The GetLogicalDrives function retrieves a bitmask representing the currently available disk drives.
 *)
 
-	GetLogicalDrives-: PROCEDURE {WINAPI} ( ): LONGINT;
+	GetLogicalDrives-: PROCEDURE {WINAPI} ( ): WORDSET;
 	GetModuleFileName-: PROCEDURE {WINAPI} ( hModule: HMODULE;
 																				    VAR lpFileName: ARRAY   OF CHAR;
 																				    nSize: LONGINT ): LONGINT;
@@ -603,7 +603,7 @@ VAR
 			(an atom) identifying the string. *)
 	GlobalAddAtom-: PROCEDURE {WINAPI} ( VAR lpString: ARRAY   OF CHAR ): ATOM;
 	(** The GlobalAlloc function allocates the specified number of bytes from the heap. *)
-	GlobalAlloc-: PROCEDURE {WINAPI} ( uFlags: DWORD;  dwBytes: LONGINT ): HGLOBAL;
+	GlobalAlloc-: PROCEDURE {WINAPI} ( uFlags: WORDSET;  dwBytes: LONGINT ): HGLOBAL;
 	(** The GlobalDeleteAtom function decrements the reference count of a global string atom. *)
 	GlobalDeleteAtom-: PROCEDURE {WINAPI} ( nAtom: ATOM ): ATOM;
 	(** The GlobalLock function locks a global memory object and returns a pointer to the first byte of the
@@ -643,7 +643,7 @@ VAR
 																						   VAR lpFileTime: FileTime ): BOOL;
 	(** The MoveFileEx function renames an existing file or directory. *)
 	MoveFileEx-: PROCEDURE {WINAPI} ( VAR lpExistingFileName, lpNewFileName: ARRAY   OF CHAR;
-																    dwFlags: DWORD ): BOOL;
+																    dwFlags: WORDSET ): BOOL;
 	(** The OutputDebugString function sends a string to the debugger for the current application. *)
 	outputDebugString-: PROCEDURE {WINAPI} ( CONST lpOutputString: ARRAY   OF CHAR );
 
@@ -653,7 +653,7 @@ VAR
 
 
 	(** The PurgeComm function discards all characters from the output or input buffer of a specified communications resource. *)
-	PurgeComm-: PROCEDURE {WINAPI} ( hFile: HANDLE;  dwFlags: DWORD ): BOOL;
+	PurgeComm-: PROCEDURE {WINAPI} ( hFile: HANDLE;  dwFlags: WORDSET ): BOOL;
 	(** The QueryDosDevice function retrieves information about MS-DOS device names. *)
 	QueryDosDevice-: PROCEDURE {WINAPI} ( lpDeviceName: ARRAY   OF CHAR;
 																		   VAR lpTargetPath: ARRAY   OF CHAR;
@@ -727,7 +727,7 @@ VAR
 	SetEvent-: PROCEDURE {WINAPI} ( hEvent: HANDLE ): BOOL;
 	(** The SetFileAttributes function sets a file's attributes. *)
 	SetFileAttributes-: PROCEDURE {WINAPI} ( VAR lpFileName: ARRAY   OF CHAR;
-																			dwFileAttributes: DWORD ): BOOL;
+																			dwFileAttributes: WORDSET ): BOOL;
 	(** The SetFilePointer function moves the file pointer of an open file. *)
 	SetFilePointer-: PROCEDURE {WINAPI} ( hFile: HANDLE;  lDistanceToMove: LONGINT;
 																	    VAR lpDistanceToMoveHigh: LONGINT;
@@ -771,11 +771,11 @@ VAR
 	TryEnterCriticalSection-: PROCEDURE {WINAPI} ( VAR lpCriticalSection: CriticalSection ): BOOL;
 	(** The VirtualAlloc function reserves or commits a region of pages in the virtual address space of the calling process. *)
 	VirtualAlloc-: PROCEDURE {WINAPI} ( lpAddress: ADDRESS;  dwSize: LONGINT;
-																    flAllocationType, flProtect: DWORD ): ADDRESS;
+																    flAllocationType, flProtect: WORDSET ): ADDRESS;
 	(** The VirtualFree function releases or decommits (or both) a region of pages within the virtual address space of the
 			calling process. *)
 	VirtualFree-: PROCEDURE {WINAPI} ( lpAddress: ADDRESS;  dwSize: LONGINT;
-																  dwFreeType: DWORD ): BOOL;
+																  dwFreeType: WORDSET ): BOOL;
 	(** The WaitForSingleObject function returns when one of the following occurs:
 			The specified object is in the signaled state.
 			The time-out interval elapses. *)
@@ -797,18 +797,6 @@ VAR
 	(* OutputString*: OutputStringProc; *)
 	Shutdown*: PROCEDURE ( code: LONGINT );
 
-	PROCEDURE SetToDW*(s: SET): DWORD;
-	BEGIN
-		RETURN SYSTEM.VAL(DWORD, s); 
-	END SetToDW;
-
-	PROCEDURE DWToSet*(d: DWORD): SET;
-	VAR a: ADDRESS;
-	BEGIN
-		a := d;
-		RETURN SYSTEM.VAL(SET, a); 
-	END DWToSet;
-	
 	(** Wrapper for getProcAddress. *)
 	PROCEDURE GetProcAddress*( hModule: HMODULE; CONST procName: ARRAY OF CHAR; VAR adr: ADDRESS );
 	BEGIN
@@ -1062,4 +1050,3 @@ VAR
 		END EntryPoint;
 		
 END Kernel32.
-	

+ 18 - 31
source/Generic.Win64.Kernel32.Mod

@@ -176,7 +176,7 @@ TYPE
 
 	(** The FindData structure describes a file found by the FindFirstFile or FindNextFile function. *)
 	FindData* = RECORD
-		dwFileAttributes*: DWORD;
+		dwFileAttributes*: WORDSET;
 		ftCreationTime*, ftLastAccessTime*, ftLastWriteTime*: FileTime;
 		nFileSizeHigh*, nFileSizeLow*: LONGINT;
 		dwReserved0*, dwReserved1*: LONGINT;
@@ -213,7 +213,7 @@ TYPE
 	ContextPtr*= POINTER {UNSAFE,UNTRACED} TO Context;
 	(* 32 bit
 	Context* = RECORD
-		ContextFlags*: DWORD;
+		ContextFlags*: WORDSET;
 		DR0*, DR1*, DR2*, DR3*, DR6*, DR7*: SIZE;
 		FloatSave*: FloatingSaveArea;
 		GS*, FS*, ES*, DS*: ADDRESS;
@@ -225,7 +225,7 @@ TYPE
 	Context*= RECORD
 		P1Home, P2Home, P3Home, P4Home, P5Home, P6Home: SIZE; 
 		
-		ContextFlags*: DWORD; 
+		ContextFlags*: WORDSET; 
 		MxCsr*: DWORD; 
 		
 		CS*, DS*, ES*, FS*, GS*, SS*: INTEGER; 
@@ -345,7 +345,7 @@ TYPE
 		dwX*, dwY*, dwXSize*, dwYSize*: LONGINT;
 		dwXCountChars*, dwYCountChars*: LONGINT;
 		dwFillAttribute*: LONGINT;
-		dwFlags*: DWORD;
+		dwFlags*: WORDSET;
 		wShowWindow*, cbReserved2*: INTEGER;
 		lpReserved2*: ADDRESS;
 		hStdInput*, hStdOutput*, hStdError*: HANDLE
@@ -454,10 +454,10 @@ VAR
 	(** The CreateFile function creates or opens the following objects and returns a handle that can be used to access the object:
 		 files, pipes, mailslots, communications resources, disk devices (Windows NT only), consoles, directories (open only) *)
 	CreateFile-: PROCEDURE {WINAPI} ( CONST lpFileName: ARRAY   OF CHAR;
-																dwDesiredAccess, dwShareMode: DWORD;
+																dwDesiredAccess, dwShareMode: WORDSET;
 																lpSecurityAttributes: ANY;
 																dwCreationDistribution: LONGINT;
-																dwFlagsAndAttributes: DWORD;
+																dwFlagsAndAttributes: WORDSET;
 																hTemplateFile: HANDLE ): HANDLE;
 	(** The CreateProcess function creates a new process and its primary thread. The new process executes the specified
 			executable file. *)
@@ -475,7 +475,7 @@ VAR
 	CreateThread-: PROCEDURE {WINAPI} ( lpThreadAttributes: ADDRESS;
 																	  dwStackSize: LONGINT;
 																	  lpStartAddress: ThreadProc;
-																	  lpParameter: ANY;  dwCreationFlags: DWORD;
+																	  lpParameter: ANY;  dwCreationFlags: WORDSET;
 																	  VAR lpThreadId: LONGINT ): HANDLE;
 	(** The DeleteCriticalSection function releases all resources used by an unowned critical section object. *)
 	DeleteCriticalSection-: PROCEDURE {WINAPI} ( VAR lpCriticalSection: CriticalSection );
@@ -487,9 +487,9 @@ VAR
 	(** The DuplicateHandle function duplicates an object handle. *)
 	DuplicateHandle-: PROCEDURE {WINAPI} ( hSourceProcessHandle, hSourceHandle, hTargetProcessHandle: HANDLE;
 																			 VAR lpTargetHandle: HANDLE;
-																			 dwDesiredAccess: DWORD;
+																			 dwDesiredAccess: WORDSET;
 																			 bInheritHandle: BOOL;
-																			 dwOptions: DWORD ): BOOL;
+																			 dwOptions: WORDSET ): BOOL;
 	(** The EnterCriticalSection function waits for ownership of the specified critical section object. *)
 	EnterCriticalSection-: PROCEDURE {WINAPI} ( VAR lpCriticalSection: CriticalSection );
 	
@@ -528,7 +528,7 @@ VAR
 	GetCommandLine-: PROCEDURE {WINAPI} ( ): LPSTR;
 	(** The GetCommModemStatus function retrieves modem control-register values. *)
 	GetCommModemStatus-: PROCEDURE {WINAPI} ( hFile: HANDLE;
-																						VAR lpModemStat: DWORD ): BOOL;
+																						VAR lpModemStat: WORDSET ): BOOL;
 	(** The GetCommState function retrieves the current control settings for a specified communications device. *)
 	GetCommState-: PROCEDURE {WINAPI} ( hFile: HANDLE;
 																		 VAR lpDCB: DCB ): BOOL;
@@ -562,7 +562,7 @@ VAR
 	GetExitCodeProcess-: PROCEDURE {WINAPI} ( hProcess: HANDLE;
 																				  VAR lpExitCode: LONGINT ): BOOL;
 	(** The GetFileAttributes function returns attributes for a specified file or directory. *)
-	GetFileAttributes-: PROCEDURE {WINAPI} ( CONST lpFileName: ARRAY   OF CHAR ): DWORD;
+	GetFileAttributes-: PROCEDURE {WINAPI} ( CONST lpFileName: ARRAY   OF CHAR ): WORDSET;
 	(** The GetFileSize function retrieves the size, in bytes, of the specified file. *)
 	GetFileSize-: PROCEDURE {WINAPI} ( hFile: HANDLE;  VAR lpFileSizeHigh: LONGINT ): LONGINT;
 	GetFileSizeEx-: PROCEDURE {WINAPI} ( hFile: HANDLE;  VAR lpFileSize: HUGEINT ): BOOL;
@@ -586,7 +586,7 @@ VAR
 	(* The GetLogicalDrives function retrieves a bitmask representing the currently available disk drives.
 *)
 
-	GetLogicalDrives-: PROCEDURE {WINAPI} ( ): DWORD;
+	GetLogicalDrives-: PROCEDURE {WINAPI} ( ): WORDSET;
 	GetModuleFileName-: PROCEDURE {WINAPI} ( hModule: HMODULE;
 																				    VAR lpFileName: ARRAY   OF CHAR;
 																				    nSize: LONGINT ): LONGINT;
@@ -667,7 +667,7 @@ VAR
 			(an atom) identifying the string. *)
 	GlobalAddAtom-: PROCEDURE {WINAPI} ( VAR lpString: ARRAY   OF CHAR ): ATOM;
 	(** The GlobalAlloc function allocates the specified number of bytes from the heap. *)
-	GlobalAlloc-: PROCEDURE {WINAPI} ( uFlags: DWORD;  dwBytes: LONGINT ): HGLOBAL;
+	GlobalAlloc-: PROCEDURE {WINAPI} ( uFlags: WORDSET;  dwBytes: LONGINT ): HGLOBAL;
 	(** The GlobalDeleteAtom function decrements the reference count of a global string atom. *)
 	GlobalDeleteAtom-: PROCEDURE {WINAPI} ( nAtom: ATOM ): ATOM;
 	(** The GlobalLock function locks a global memory object and returns a pointer to the first byte of the
@@ -707,7 +707,7 @@ VAR
 																						   VAR lpFileTime: FileTime ): BOOL;
 	(** The MoveFileEx function renames an existing file or directory. *)
 	MoveFileEx-: PROCEDURE {WINAPI} ( VAR lpExistingFileName, lpNewFileName: ARRAY   OF CHAR;
-																    dwFlags: DWORD ): BOOL;
+																    dwFlags: WORDSET ): BOOL;
 	(** The OutputDebugString function sends a string to the debugger for the current application. *)
 	outputDebugString-: PROCEDURE {WINAPI} ( CONST lpOutputString: ARRAY   OF CHAR );
 
@@ -717,7 +717,7 @@ VAR
 
 
 	(** The PurgeComm function discards all characters from the output or input buffer of a specified communications resource. *)
-	PurgeComm-: PROCEDURE {WINAPI} ( hFile: HANDLE;  dwFlags: DWORD ): BOOL;
+	PurgeComm-: PROCEDURE {WINAPI} ( hFile: HANDLE;  dwFlags: WORDSET ): BOOL;
 	(** The QueryDosDevice function retrieves information about MS-DOS device names. *)
 	QueryDosDevice-: PROCEDURE {WINAPI} ( CONST lpDeviceName: ARRAY   OF CHAR;
 																		   VAR lpTargetPath: ARRAY   OF CHAR;
@@ -795,7 +795,7 @@ VAR
 	SetEvent-: PROCEDURE {WINAPI} ( hEvent: HANDLE ): BOOL;
 	(** The SetFileAttributes function sets a file's attributes. *)
 	SetFileAttributes-: PROCEDURE {WINAPI} ( VAR lpFileName: ARRAY   OF CHAR;
-																			dwFileAttributes: DWORD ): BOOL;
+																			dwFileAttributes: WORDSET ): BOOL;
 	(** The SetFilePointer function moves the file pointer of an open file. *)
 	SetFilePointer-: PROCEDURE {WINAPI} ( hFile: HANDLE;  lDistanceToMove: LONGINT;
 																	    VAR lpDistanceToMoveHigh: LONGINT;
@@ -837,11 +837,11 @@ VAR
 	TryEnterCriticalSection-: PROCEDURE {WINAPI} ( VAR lpCriticalSection: CriticalSection ): BOOL;
 	(** The VirtualAlloc function reserves or commits a region of pages in the virtual address space of the calling process. *)
 	VirtualAlloc-: PROCEDURE {WINAPI} ( lpAddress: ADDRESS;  dwSize: SIZE;
-																    flAllocationType, flProtect: DWORD ): ADDRESS;
+																    flAllocationType, flProtect: WORDSET ): ADDRESS;
 	(** The VirtualFree function releases or decommits (or both) a region of pages within the virtual address space of the
 			calling process. *)
 	VirtualFree-: PROCEDURE {WINAPI} ( lpAddress: ADDRESS;  dwSize: SIZE;
-																  dwFreeType: DWORD ): BOOL;
+																  dwFreeType: WORDSET ): BOOL;
 	(** The WaitForSingleObject function returns when one of the following occurs:
 			The specified object is in the signaled state.
 			The time-out interval elapses. *)
@@ -863,19 +863,6 @@ VAR
 	(* OutputString*: OutputStringProc; *)
 	Shutdown*: PROCEDURE ( code: LONGINT );
 
-	PROCEDURE SetToDW*(s: SET): DWORD;
-	BEGIN
-		RETURN SYSTEM.VAL(DWORD, s); 
-	END SetToDW;
-
-	PROCEDURE DWToSet*(d: DWORD): SET;
-	VAR a: ADDRESS;
-	BEGIN
-		a := d;
-		RETURN SYSTEM.VAL(SET, a); 
-	END DWToSet;
-	
-
 	(** Wrapper for getProcAddress. *)
 	PROCEDURE GetProcAddress*( hModule: HMODULE; CONST procName: ARRAY OF CHAR; VAR adr: ADDRESS );
 	BEGIN

+ 1 - 1
source/Win32.Clipboard.Mod

@@ -55,7 +55,7 @@ BEGIN
 			IF chBuff^[ind] = LF THEN INC(requiredSize); END; (* transform LF into CRLF *)
 			INC(ind);
 		END;
-		hMem := Kernel32.GlobalAlloc(Kernel32.SetToDW({Kernel32.GMemMoveable, Kernel32.GMemDDEShare}), requiredSize);
+		hMem := Kernel32.GlobalAlloc({Kernel32.GMemMoveable, Kernel32.GMemDDEShare}, requiredSize);
 		adr := Kernel32.GlobalLock(hMem);
 		ind := 0;
 		WHILE ind < size  DO

+ 5 - 5
source/Win32.Display.Mod

@@ -137,7 +137,7 @@ TYPE
 		win: Window;
 		finished: BOOLEAN;
 		className: ARRAY 32 OF CHAR;
-		style: SET;
+		style: WORDSET;
 		x, y, w, h: LONGINT;
 		hMenu: User32.HMenu
 	END;
@@ -239,7 +239,7 @@ VAR
 	BEGIN
 		str := "";
 		create.win.hWnd :=
-			User32.CreateWindowEx( 0, create.className, str, Kernel32.SetToDW(create.style), create.x, create.y, create.w, create.h,
+			User32.CreateWindowEx( 0, create.className, str, create.style, create.x, create.y, create.w, create.h,
 													   create.win.hWndParent, create.hMenu, Kernel32.hInstance,
 													   SYSTEM.VAL( User32.LParam, create ) );
 		IF User32.WSMaximize IN create.style THEN
@@ -748,7 +748,7 @@ VAR
 	VAR pos: User32.WindowPos;
 	BEGIN
 		SYSTEM.MOVE( lParam, ADDRESSOF( pos ), SIZEOF( User32.WindowPos ) );
-		IF ~(User32.SWPNoMove IN Kernel32.DWToSet(pos.flags)) THEN
+		IF ~(User32.SWPNoMove IN pos.flags) THEN
 			IF (pos.x < -disp.width) & (pos.y < -disp.height) THEN Minimize( win )
 			ELSIF (pos.x >= 0) & (pos.y >= 0) THEN Restore( win )
 			END
@@ -918,7 +918,7 @@ VAR
 	VAR str: ARRAY 32 OF CHAR;
 		ret: Kernel32.ATOM;
 	BEGIN
-		dummyClass.cbSize := SIZEOF( User32.WndClassEx );  dummyClass.style := Kernel32.SetToDW({});  dummyClass.lpfnWndProc := DummyProc;
+		dummyClass.cbSize := SIZEOF( User32.WndClassEx );  dummyClass.style := {};  dummyClass.lpfnWndProc := DummyProc;
 		dummyClass.cbClsExtra := 0;  dummyClass.cbWndExtra := 4;  dummyClass.hInstance := Kernel32.hInstance;
 		dummyClass.hIcon := Kernel32.NULL;  dummyClass.hIconSm := Kernel32.NULL;  dummyClass.hCursor := Kernel32.NULL;
 		dummyClass.hbrBackground := Kernel32.NULL;  dummyClass.lpszMenuName := Kernel32.NULL;
@@ -926,7 +926,7 @@ VAR
 		ret := User32.RegisterClassEx( dummyClass );
 
 		windowClass.cbSize := SIZEOF( User32.WndClassEx );
-		windowClass.style := Kernel32.SetToDW({7});   (* Cs_parentdc: INTEGER is 128  = 2^7 *)
+		windowClass.style := {7};   (* Cs_parentdc: INTEGER is 128  = 2^7 *)
 		windowClass.lpfnWndProc := WindowProc;  windowClass.cbClsExtra := 0;  windowClass.cbWndExtra := 4;
 		windowClass.hInstance := Kernel32.hInstance;  str := "Console";  windowClass.hIcon := User32.LoadIcon( Kernel32.hInstance, str );
 		str := "Console.Small";  windowClass.hIconSm := User32.LoadIcon( Kernel32.hInstance, str );  windowClass.hCursor := Kernel32.NULL;

+ 1 - 1
source/Win32.HierarchicalProfiler0.Mod

@@ -108,7 +108,7 @@ BEGIN
 	IF (handle # Kernel32.NULL) & (handle # Kernel32.InvalidHandleValue) THEN
 		res := Kernel32.SuspendThread(handle);
 		IF (res >= 0) THEN
-			context.ContextFlags := Kernel32.SetToDW(Kernel32.ContextControl+Kernel32.ContextInteger);
+			context.ContextFlags := Kernel32.ContextControl+Kernel32.ContextInteger;
 			res := Kernel32.GetThreadContext(handle, context);
 			IF (res = Kernel32.True) THEN
 				IF (context.PC # 0) THEN

+ 21 - 27
source/Win32.HostFiles64.Mod

@@ -236,7 +236,7 @@ TYPE
 			IF TraceFileSystem IN Trace THEN KernelLog.String( "Old0 " );  KernelLog.String( name );  KernelLog.Ln;  END;
 
 			IF (name # "") & FindFile( name, fname ) THEN
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 				IF hfile # Kernel32.InvalidHandleValue THEN NEW( F, fname, hfile, collection.GetNextFileKey() , SELF);    collection.AddOld( F );  RETURN F END
 			END;
 			IF TraceFileSystem IN Trace THEN KernelLog.String( "failed" );  KernelLog.Ln;  END;
@@ -273,7 +273,7 @@ TYPE
 					Fo := fold( File );
 					IF ~Fo.ToTemp() THEN RETURN END;
 					ret := Kernel32.CopyFile( Fo.tfname^, fnnew, 0 )
-				ELSE ret := Kernel32.MoveFileEx( fnold, fnnew, Kernel32.SetToDW({Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed}) )
+				ELSE ret := Kernel32.MoveFileEx( fnold, fnnew, {Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed} )
 				END;
 				IF ret # 0 THEN res := 0 END
 			ELSIF TraceFileSystem IN Trace THEN KernelLog.String( "Rename failed :" );  KernelLog.String( fnold );  KernelLog.String( " => " );  KernelLog.String( fnnew );  KernelLog.Ln;
@@ -305,7 +305,7 @@ TYPE
 							d := LONG( st.wYear - 1900 ) * 200H + LONG( st.wMonth ) * 20H + LONG( st.wDay );  t := LONG( st.wHour ) * 1000H + LONG( st.wMinute ) * 40H + LONG( st.wSecond );
 						END;
 						Join( curPath, "/", FD.cFileName, longname );
-						IF ~(Kernel32.FileAttributeDirectory IN Kernel32.DWToSet(FD.dwFileAttributes)) THEN
+						IF ~(Kernel32.FileAttributeDirectory IN FD.dwFileAttributes) THEN
 							enum.PutEntry( longname, {}, t, d, HUGEINT(UNSIGNED64( FD.nFileSizeHigh ) * UNSIGNED64( 0x100000000 ) + UNSIGNED64( FD.nFileSizeLow )))
 						ELSIF (FD.cFileName # ".") & (FD.cFileName # "..") THEN
 							enum.PutEntry( longname, {Files.Directory}, t, d, HUGEINT(UNSIGNED64( FD.nFileSizeHigh ) * UNSIGNED64( 0x100000000 ) + UNSIGNED64( FD.nFileSizeLow )))
@@ -316,7 +316,7 @@ TYPE
 			END EnumeratePath;
 
 		BEGIN {EXCLUSIVE}
-			COPY( mask, path );  ConvertChar( path, Files.PathDelimiter, PathDelimiter );  attr := ToSet(Kernel32.GetFileAttributes( path ));  path := "";
+			COPY( mask, path );  ConvertChar( path, Files.PathDelimiter, PathDelimiter );  attr := Kernel32.GetFileAttributes( path );  path := "";
 			IF (Kernel32.FileAttributeDirectory IN attr) & (~(Kernel32.FileAttributeTemporary IN attr)) THEN COPY( mask, path );  COPY( "*", pattern );  ELSE Files.SplitPath( mask, path, pattern );  END;
 			IF TraceFileSystem IN Trace THEN
 				KernelLog.String( "Enumerate0: " );   KernelLog.String( mask );  KernelLog.String( " :: " );  KernelLog.String( path );  KernelLog.String( " :: " );  KernelLog.String( pattern );  KernelLog.Ln;
@@ -421,7 +421,7 @@ TYPE
 			COPY(fileName, name);
 			ConvertChar(name, Files.PathDelimiter, PathDelimiter );
 			IF FindFile(fileName, fullName) THEN
-				flags := FileFlags(ToSet(Kernel32.GetFileAttributes(fullName)));
+				flags := FileFlags(Kernel32.GetFileAttributes(fullName));
 				ConvertChar(fullName, PathDelimiter,Files.PathDelimiter);
 				RETURN TRUE
 			ELSE
@@ -453,8 +453,8 @@ TYPE
 			SELF.key := key;  fpos := 0;  SELF.hfile := hfile;  COPY( name, SELF.fname );  tfname := NIL;
 			IF hfile # Kernel32.InvalidHandleValue THEN
 				ASSERT(Kernel32.GetFileSizeEx(hfile, fsize) # Kernel32.False); 
-				s := ToSet(Kernel32.GetFileAttributes( name ));
-				IF Kernel32.FileAttributeTemporary IN s THEN EXCL( s, Kernel32.FileAttributeTemporary );  res := Kernel32.SetFileAttributes( name, Kernel32.SetToDW(s) );  ASSERT( res # 0 );  s := ToSet(Kernel32.GetFileAttributes( name )) END;
+				s := Kernel32.GetFileAttributes( name );
+				IF Kernel32.FileAttributeTemporary IN s THEN EXCL( s, Kernel32.FileAttributeTemporary );  res := Kernel32.SetFileAttributes( name, s );  ASSERT( res # 0 );  s := Kernel32.GetFileAttributes( name ) END;
 				flags := FileFlags( s )
 			ELSE flags := {Temporary};  fsize := 0
 			END;
@@ -489,7 +489,7 @@ TYPE
 			pos := buffer.apos * BufferSize;
 			IF hfile = Kernel32.InvalidHandleValue THEN
 				ASSERT( Temporary IN flags );  NEW( tfname );  TempName( tfname^ );
-				hfile := Kernel32.CreateFile( tfname^, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeTemporary}), 0 );
+				hfile := Kernel32.CreateFile( tfname^, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL , Kernel32.CreateAlways, {Kernel32.FileAttributeTemporary}, 0 );
 				ASSERT( hfile # Kernel32.InvalidHandleValue );  fpos := 0
 			END;
 			IF fpos # pos THEN ASSERT( Kernel32.SetFilePointerEx( hfile, pos, fpos , Kernel32.FileBegin ) # Kernel32.False ); END;
@@ -498,7 +498,7 @@ TYPE
 				res := Kernel32.CloseHandle( hfile );
 				IF TraceFile IN Trace THEN KernelLog.String( "closed handle of " );  KernelLog.String( fname );  KernelLog.Ln;  END;
 				hfile :=
-					Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+					Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 				ASSERT( hfile # Kernel32.InvalidHandleValue );
 				ASSERT( Kernel32.SetFilePointerEx( hfile, pos, fpos , Kernel32.FileBegin ) # Kernel32.False );
 				res := Kernel32.WriteFile( hfile, buffer.data, buffer.len, n, NIL )
@@ -613,7 +613,7 @@ TYPE
 		PROCEDURE GetAttributes*(): SET;
 		VAR s: SET;
 		BEGIN
-			s := ToSet(Kernel32.GetFileAttributes( fname ));
+			s := Kernel32.GetFileAttributes( fname );
 			RETURN FileFlags(s);
 		END GetAttributes;
 
@@ -641,10 +641,10 @@ TYPE
 			ASSERT( ~(Temporary IN flags) );
 			(*ALEX 2005.12.08*)
 			IF hfile = Kernel32.InvalidHandleValue THEN
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, 0 );
 			END;
 			IF hfile = Kernel32.InvalidHandleValue THEN
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 			END;
 			IF buffer.dirty THEN WriteBuffer() END;
 			(*
@@ -661,7 +661,7 @@ TYPE
 			IF TraceFile IN Trace THEN KernelLog.String( "toTemp: " );  KernelLog.String( fname );  KernelLog.String( " => " );  KernelLog.String( tfname^ );  KernelLog.Ln;  END;
 			IF ~MoveFile( fname, tfname^ ) THEN HALT( 1241 ) (* RETURN FALSE *) END;
 			winFS.collection.Unregister( SELF );
-			hfile := Kernel32.CreateFile( tfname^, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeTemporary}), 0 );
+			hfile := Kernel32.CreateFile( tfname^, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeTemporary}, 0 );
 			(* IF hfile = Kernel32.InvalidHandleValue THEN RETURN FALSE END; *)
 			ASSERT( hfile # Kernel32.InvalidHandleValue );
 			ASSERT( Kernel32.GetFileSizeEx( hfile, fsize ) # Kernel32.False );
@@ -691,8 +691,8 @@ TYPE
 					res := 1;  RETURN;
 					(* HALT( 1242 )*)
 				END;
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 )
-			ELSE hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 )
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 )
+			ELSE hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, 0 )
 			END;
 			IF hfile = Kernel32.InvalidHandleValue THEN res := 1;  RETURN END;
 			ASSERT( hfile # Kernel32.InvalidHandleValue );  winFS.collection.Register( SELF );  res := 0
@@ -736,12 +736,6 @@ VAR
 	winFS: WinFileSystem;   (* must be unique *)
 
 
-	PROCEDURE ToSet(d: UNSIGNED32): SET;
-	BEGIN
-		RETURN SYSTEM.VAL(SET, ADDRESS(d)); 
-	END ToSet;
-	
-
 	PROCEDURE DebugFile(f: File);
 	BEGIN
 		KernelLog.String("fname = "); KernelLog.String(f.fname); KernelLog.Ln;
@@ -770,7 +764,7 @@ VAR
 
 	PROCEDURE MoveFile( VAR from, to: ARRAY OF CHAR ): BOOLEAN;
 	BEGIN
-		IF Kernel32.MoveFileEx( from, to, Kernel32.SetToDW({Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed}) ) = Kernel32.False THEN
+		IF Kernel32.MoveFileEx( from, to, {Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed} ) = Kernel32.False THEN
 			IF Kernel32.CopyFile( from, to, Kernel32.False ) = Kernel32.False THEN
 				IF TraceFile IN Trace THEN KernelLog.String( "could not copy" );  KernelLog.Ln;  END;
 				RETURN FALSE
@@ -1105,18 +1099,18 @@ VAR
 	PROCEDURE GetAttributes*( file: ARRAY OF CHAR ): SET;   (** non-portable *)
 	VAR attrs: SET;
 	BEGIN
-		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  attrs := ToSet(Kernel32.GetFileAttributes( file ));
+		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  attrs := Kernel32.GetFileAttributes( file );
 		IF attrs = {0..31} THEN RETURN {} ELSE RETURN attrs END
 	END GetAttributes;
 
 	PROCEDURE SetAttributes*( file: ARRAY OF CHAR;  attrs: SET );   (** non-portable *)
 	BEGIN
-		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, Kernel32.SetToDW(attrs) )
+		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, attrs )
 	END SetAttributes;
 
 	PROCEDURE SetFileAttributes*( file: ARRAY OF CHAR;  attrs: SET );   (** non-portable *)
 	BEGIN
-		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, Kernel32.SetToDW(attrs) )
+		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, attrs )
 	END SetFileAttributes;
 
 
@@ -1216,7 +1210,7 @@ VAR
 
 		(* now the file system is installed *)
 
-		drives := ToSet(Kernel32.GetLogicalDrives());
+		drives := Kernel32.GetLogicalDrives();
 		drives := drives - {0,1}; (* do not scan for diskettes *)
 		AutoMountWindowsLogicalDrives( drives );
 
@@ -1282,4 +1276,4 @@ VAR
 
 BEGIN
 	Init();  Modules.InstallTermHandler( Finalization ); SetPaths;
-END HostFiles64.
+END HostFiles64.

+ 8 - 8
source/Win32.Machine.Mod

@@ -433,7 +433,7 @@ END TraceChar;
 PROCEDURE SetTraceFile(VAR filename: ARRAY OF CHAR);
 BEGIN
 	Trace.String("trace -> file "); Trace.String(filename); Trace.Ln;
-	hout := Kernel32.CreateFile(filename, Kernel32.SetToDW({Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL, Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), Kernel32.NULL);
+	hout := Kernel32.CreateFile(filename, {Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL, Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, Kernel32.NULL);
 	Kernel32.GetFullPathName(filename, LEN(filename), filename, NIL);
 	Trace.Char := TraceChar;
 END SetTraceFile;
@@ -569,7 +569,7 @@ BEGIN
 		ToExecutablePath(DefaultConfigFile, defaultConfigFile);
 	END;
 	COPY(UserConfigFile, userConfigFile);
-	hfile := Kernel32.CreateFile( userConfigFile, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+	hfile := Kernel32.CreateFile( userConfigFile, {Kernel32.GenericRead}, {Kernel32.FileShareRead}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 	IF hfile = Kernel32.InvalidHandleValue THEN
 		ToExecutablePath(UserConfigFile, userConfigFile);
 	ELSE
@@ -703,9 +703,9 @@ BEGIN
 	IF memBlkSize < MemBlockSize THEN memBlkSize := MemBlockSize END; 	(* MemBlockSize implicitly multiple of StaticBlockSize *)
 
 	initVal := 8*1024*1024;
-	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, Kernel32.SetToDW({Kernel32.MEMCommit, Kernel32.MEMReserve}), Kernel32.SetToDW({Kernel32.PageExecuteReadWrite}));
+	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, {Kernel32.MEMCommit, Kernel32.MEMReserve}, {Kernel32.PageExecuteReadWrite});
 	IF adr = NilVal THEN (* allocation failed *)
-		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, Kernel32.SetToDW({Kernel32.MEMCommit}), Kernel32.SetToDW({Kernel32.PageExecuteReadWrite}));
+		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, {Kernel32.MEMCommit}, {Kernel32.PageExecuteReadWrite});
 	END;
 	Trace.String("first heap block intVal "); Trace.Int(initVal,1); Trace.Ln;
 	Trace.String("first heap block memBlkSize "); Trace.Int(memBlkSize,1); Trace.Ln;
@@ -849,9 +849,9 @@ BEGIN
 	memBlkSize := memDescSize + size + StaticBlockSize; 		(* add StaticBlockSize to account for alignments different from multiples of StaticBlockSize *)
 	INC(memBlkSize, (-memBlkSize) MOD MemBlockSize);
 	initVal := memBlockTail.startAdr + memBlockTail.size;
-	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, Kernel32.SetToDW({Kernel32.MEMCommit, Kernel32.MEMReserve}), Kernel32.SetToDW({Kernel32.PageExecuteReadWrite}));
+	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, {Kernel32.MEMCommit, Kernel32.MEMReserve}, {Kernel32.PageExecuteReadWrite});
 	IF adr = NilVal THEN (* allocation failed *)
-		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, Kernel32.SetToDW({Kernel32.MEMCommit}), Kernel32.SetToDW({Kernel32.PageExecuteReadWrite}));
+		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, {Kernel32.MEMCommit}, {Kernel32.PageExecuteReadWrite});
 	END;
 	continue := adr = initVal;
 	Trace.String("expand heap block intVal "); Trace.Int(initVal,1); Trace.Ln;
@@ -935,8 +935,8 @@ BEGIN
 		END;
 		memBlock.next := NIL;
 		startAdr := memBlock.startAdr; (* this value must be cached for the second call of Kernel32.VirtualFree *)
-		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, memBlock.startAdr), memBlock.size, Kernel32.SetToDW({Kernel32.MEMDecommit}));
-		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, startAdr ), 0, Kernel32.SetToDW({Kernel32.MEMRelease}));
+		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, memBlock.startAdr), memBlock.size, {Kernel32.MEMDecommit});
+		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, startAdr ), 0, {Kernel32.MEMRelease});
 	ELSE
 		HALT(535)	(* error in memory block management *)
 	END;

二进制
source/Win32.Oberon.Clipboard.Mod


二进制
source/Win32.Oberon.Directories.Mod


+ 5 - 5
source/Win32.Objects.Mod

@@ -190,10 +190,10 @@ TYPE
 					ASSERT(res # -1);
 				END;
 
-				state.ContextFlags := Kernel32.SetToDW(Kernel32.ContextControl + Kernel32.ContextInteger);
+				state.ContextFlags := Kernel32.ContextControl + Kernel32.ContextInteger;
 				res := Kernel32.GetThreadContext( handle, state );
 				
-				context.ContextFlags := Kernel32.SetToDW(Kernel32.ContextControl + Kernel32.ContextInteger);
+				context.ContextFlags := Kernel32.ContextControl + Kernel32.ContextInteger;
 				IF isWow64 THEN 
 					res := Kernel32.Wow64GetThreadContext( handle, context );
 				ELSE
@@ -860,7 +860,7 @@ BEGIN
 		t.restartPC := SYSTEM.VAL(ADDRESS, terminateProc);
 	END;
 
-	t.handle := Kernel32.CreateThread(0, defaultStackSize, Wrapper, t, Kernel32.SetToDW({}), t.id);
+	t.handle := Kernel32.CreateThread(0, defaultStackSize, Wrapper, t, {}, t.id);
 
 	IF TraceVerbose OR TraceOpenClose THEN
 		Machine.Acquire(Machine.TraceOutput);
@@ -1080,7 +1080,7 @@ END Await;
 				ELSE
 					retBOOL := Kernel32.SuspendThread( t.handle );
 				END;
-				t.state.ContextFlags := Kernel32.SetToDW(Kernel32.ContextControl);
+				t.state.ContextFlags := Kernel32.ContextControl;
 				retBOOL := Kernel32.GetThreadContext( t.handle, t.state );
 				mod := Modules.ThisModuleByAdr( t.state.PC );  Trace.String( "Objects Break at adr: " );
 				Trace.Int( t.state.PC, 5 );  Trace.Ln;
@@ -1152,7 +1152,7 @@ BEGIN
 	t.handle := Kernel32.GetCurrentThread();
 	t.id := Kernel32.GetCurrentThreadId();
 	proc := Kernel32.GetCurrentProcess();
-	res := Kernel32.DuplicateHandle(proc, t.handle, proc, t.handle, Kernel32.SetToDW({}), 0, Kernel32.SetToDW({Kernel32.DuplicateSameAccess}));
+	res := Kernel32.DuplicateHandle(proc, t.handle, proc, t.handle, {}, 0, {Kernel32.DuplicateSameAccess});
 	ASSERT(res # 0);
 	res := Kernel32.TlsSetValue(tlsIndex, SYSTEM.VAL(LONGINT, t));
 	ASSERT(res # 0);

+ 7 - 7
source/Win32.SVNAdmin.Mod

@@ -996,9 +996,9 @@ END CheckChecksum;
 			Files.JoinPath ( path, name, dest );
 			Strings.Append ( dest, ".svn-base" );
 
-			Kernel32.SetFileAttributes ( dest, Kernel32.SetToDW({}) );
+			Kernel32.SetFileAttributes ( dest, {} );
 			Files.CopyFile ( file, dest, overwrite, res );
-			Kernel32.SetFileAttributes ( dest, Kernel32.SetToDW({Files.ReadOnly}) );
+			Kernel32.SetFileAttributes ( dest, {Files.ReadOnly} );
 			ASSERT ( res = Files.Ok );
 		END;
 	END CopyToBaseFile;
@@ -1007,25 +1007,25 @@ END CheckChecksum;
 
 	PROCEDURE SetFileAttribute* ( file : ARRAY OF CHAR );
 	BEGIN
-		Kernel32.SetFileAttributes ( file, Kernel32.SetToDW({Files.ReadOnly}) );
+		Kernel32.SetFileAttributes ( file, {Files.ReadOnly} );
 	END SetFileAttribute;
 
 	PROCEDURE RemoveFileAttribute* ( file : ARRAY OF CHAR );
 	BEGIN
-		Kernel32.SetFileAttributes ( file, Kernel32.SetToDW({}) );
+		Kernel32.SetFileAttributes ( file, {} );
 	END RemoveFileAttribute;
 
 
 	PROCEDURE SetFileAttribute2* ( file : ARRAY OF CHAR; f : Files.File );
 	BEGIN
-		Kernel32.SetFileAttributes ( file, Kernel32.SetToDW({Files.ReadOnly}) );
+		Kernel32.SetFileAttributes ( file, {Files.ReadOnly} );
 		INCL ( f.flags, Files.ReadOnly );
 	END SetFileAttribute2;
 
 	PROCEDURE RemoveFileAttribute2* ( file : ARRAY OF CHAR; f : Files.File );
 	BEGIN
-		Kernel32.SetFileAttributes ( file, Kernel32.SetToDW({}) );
+		Kernel32.SetFileAttributes ( file, {} );
 		EXCL ( f.flags, Files.ReadOnly );
 	END RemoveFileAttribute2;
 
-END SVNAdmin.
+END SVNAdmin.

+ 3 - 3
source/Win32.User32.Mod

@@ -208,7 +208,7 @@ MODULE User32; (** non-portable / source: Win32.User32.Mod *)	(* ejz  *)
 			GetClassInfoEx functions. *)
 		WndClassEx* = RECORD
 			cbSize*: LONGINT;
-			style*: DWORD;
+			style*: WORDSET;
 			lpfnWndProc*: WndProc;
 			cbClsExtra*, cbWndExtra*: LONGINT;
 			hInstance*: Kernel32.HINSTANCE;
@@ -225,7 +225,7 @@ MODULE User32; (** non-portable / source: Win32.User32.Mod *)	(* ejz  *)
 		(** The WINDOWPOS structure contains information about the size and position of a window. *)
 		WindowPos* = RECORD  			hwnd*, hwndInsertAfter*: HWND;
 			x*, y*, cx*, cy*: LONGINT;
-			flags*: DWORD;
+			flags*: WORDSET;
 		END;
 
 		(** The WINDOWPLACEMENT structure contains information about the placement of a window on the screen. *)
@@ -279,7 +279,7 @@ MODULE User32; (** non-portable / source: Win32.User32.Mod *)	(* ejz  *)
 		(** The CreateMenu function creates a menu. *)
 		CreateMenu-: PROCEDURE {WINAPI} (): HMenu;
 		(** The CreateWindow function creates an overlapped, pop-up, or child window. *)
-		CreateWindowEx-: PROCEDURE {WINAPI} (dwExStyle: LONGINT; VAR lpClassName, lpWindowName: ARRAY   OF CHAR; dwStyle: DWORD; x, y, nWidth, nHeight: LONGINT; hWndParent: HWND; hMenu: HMenu; hInstance: Kernel32.HINSTANCE; lpParam: LParam): HWND;
+		CreateWindowEx-: PROCEDURE {WINAPI} (dwExStyle: LONGINT; VAR lpClassName, lpWindowName: ARRAY   OF CHAR; dwStyle: WORDSET; x, y, nWidth, nHeight: LONGINT; hWndParent: HWND; hMenu: HMenu; hInstance: Kernel32.HINSTANCE; lpParam: LParam): HWND;
 		(** The DefWindowProc function calls the default window procedure to provide default processing for any window
 			messages that an application does not process. *)
 		DefWindowProc-: WndProc;

+ 9 - 9
source/Win32.V24.Mod

@@ -249,8 +249,8 @@ TYPE
 			Strings.Append(windowsComName, portname);
 
 			hFile := 	Kernel32.CreateFile( windowsComName,
-												  Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({}),
-												  NIL , Kernel32.OpenExisting, Kernel32.SetToDW({}), Kernel32.NULL );
+												  {Kernel32.GenericRead, Kernel32.GenericWrite}, {},
+												  NIL , Kernel32.OpenExisting, {}, Kernel32.NULL );
 			IF hFile # Kernel32.InvalidHandleValue THEN
 				ret := Kernel32.GetCommState( hFile, dcb );
 				IF ret # Kernel32.False THEN
@@ -285,7 +285,7 @@ TYPE
 					IF res = Serials.Ok THEN
 						ret := Kernel32.SetCommState( hFile, dcb );
 						IF ret # Kernel32.False THEN
-							ret := Kernel32.PurgeComm( hFile, Kernel32.SetToDW({Kernel32.PurgeTXClear, Kernel32.PurgeRXClear}) );
+							ret := Kernel32.PurgeComm( hFile, {Kernel32.PurgeTXClear, Kernel32.PurgeRXClear} );
 							ret := Kernel32.SetupComm( hFile, 800H, 800H );
 							handle := hFile;
 							RETURN
@@ -374,15 +374,15 @@ TYPE
 	(** GetMC - Return the state of the specified modem control lines.  s contains
 			the current state of DSR, CTS, RI, DCD & Break Interrupt. *)
 		PROCEDURE GetMC*( VAR s: SET );
-		VAR state: Kernel32.DWORD;  res: LONGINT;
+		VAR state: WORDSET;  res: LONGINT;
 		BEGIN {EXCLUSIVE}
 			s := {};
 			IF handle # Kernel32.InvalidHandleValue THEN
 				res := Kernel32.GetCommModemStatus( handle, state );
-				IF Kernel32.MSCTSOn IN Kernel32.DWToSet(state) THEN INCL( s, Serials.CTS ) END;
-				IF Kernel32.MSDSROn IN Kernel32.DWToSet(state) THEN INCL( s, Serials.DSR ) END;
-				IF Kernel32.MSRingOn IN Kernel32.DWToSet(state) THEN INCL( s, Serials.RI ) END;
-				IF Kernel32.MSRLSDOn IN Kernel32.DWToSet(state) THEN INCL( s, Serials.DCD ) END
+				IF Kernel32.MSCTSOn IN state THEN INCL( s, Serials.CTS ) END;
+				IF Kernel32.MSDSROn IN state THEN INCL( s, Serials.DSR ) END;
+				IF Kernel32.MSRingOn IN state THEN INCL( s, Serials.RI ) END;
+				IF Kernel32.MSRLSDOn IN state THEN INCL( s, Serials.DCD ) END
 			END
 		END GetMC;
 
@@ -465,4 +465,4 @@ V24.Scan ~
 SystemTools.Free V24 ~
 
 Serials.Show ~
-SystemTools.Free Serials ~
+SystemTools.Free Serials ~

+ 1 - 1
source/Win32.WinApplications.Mod

@@ -9,7 +9,7 @@ IMPORT Kernel32, KernelLog, Commands, Strings, SYSTEM, Options;
 	BEGIN
 		result := -1;
 		start.cb := SIZEOF( Kernel32.StartupInfo );
-		start.dwFlags := Kernel32.SetToDW({Kernel32.StartFUseShowWindow});
+		start.dwFlags := {Kernel32.StartFUseShowWindow};
 		IF visible THEN start.wShowWindow := 1; ELSE start.wShowWindow := 0; END;
 
 		KernelLog.String( "Calling Windows Application: " );  KernelLog.String( par );  KernelLog.Ln;

+ 2 - 2
source/Win32.WinDisks.Mod

@@ -261,11 +261,11 @@ VAR
 	END AppendInt;
 
 	PROCEDURE OpenVolume( VAR handle: Kernel32.HANDLE;  flags: SET; CONST name: ARRAY OF CHAR; context : Commands.Context ): BOOLEAN;
-	VAR devname: ARRAY 256 OF CHAR;  tflags: SET; errorcode : LONGINT;
+	VAR devname: ARRAY 256 OF CHAR;  tflags: WORDSET; errorcode : LONGINT;
 	BEGIN
 		Strings.Concat( "\\.\", name, devname );
 		IF Disks.ReadOnly IN flags THEN tflags := {Kernel32.GenericRead} ELSE tflags := {(*2 (* Kernel32.GenericDelete *), *)Kernel32.GenericWrite,Kernel32.GenericRead} END;
-		handle := Kernel32.CreateFile( devname, Kernel32.SetToDW(tflags), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({}), Kernel32.NULL );
+		handle := Kernel32.CreateFile( devname, tflags, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL, Kernel32.OpenExisting, {}, Kernel32.NULL );
 		IF (handle = Kernel32.InvalidHandleValue) THEN
 			errorcode := Kernel32.GetLastError();
 			context.error.String("Could not open '"); context.error.String(devname); context.error.String("' : ");

+ 30 - 36
source/Win32.WinFS.Mod

@@ -237,7 +237,7 @@ TYPE
 			IF TraceFileSystem IN Trace THEN KernelLog.String( "Old0 " );  KernelLog.String( name );  KernelLog.Ln;  END;
 
 			IF (name # "") & FindFile( name, fname ) THEN
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 				IF hfile # Kernel32.InvalidHandleValue THEN NEW( F, fname, hfile, collection.GetNextFileKey() , SELF);    collection.AddOld( F );  RETURN F END
 			END;
 			IF TraceFileSystem IN Trace THEN KernelLog.String( "failed" );  KernelLog.Ln;  END;
@@ -274,7 +274,7 @@ TYPE
 					Fo := fold( File );
 					IF ~Fo.ToTemp() THEN RETURN END;
 					ret := Kernel32.CopyFile( Fo.tfname^, fnnew, 0 )
-				ELSE ret := Kernel32.MoveFileEx( fnold, fnnew, Kernel32.SetToDW({Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed}) )
+				ELSE ret := Kernel32.MoveFileEx( fnold, fnnew, {Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed} )
 				END;
 				IF ret # 0 THEN res := 0 END
 			ELSIF TraceFileSystem IN Trace THEN KernelLog.String( "Rename failed :" );  KernelLog.String( fnold );  KernelLog.String( " => " );  KernelLog.String( fnnew );  KernelLog.Ln;
@@ -306,7 +306,7 @@ TYPE
 							d := LONG( st.wYear - 1900 ) * 200H + LONG( st.wMonth ) * 20H + LONG( st.wDay );  t := LONG( st.wHour ) * 1000H + LONG( st.wMinute ) * 40H + LONG( st.wSecond );
 						END;
 						Join( curPath, "/", FD.cFileName, longname );
-						IF ~(Kernel32.FileAttributeDirectory IN Kernel32.DWToSet(FD.dwFileAttributes)) THEN
+						IF ~(Kernel32.FileAttributeDirectory IN FD.dwFileAttributes) THEN
 							enum.PutEntry( longname, {}, t, d, FD.nFileSizeLow )
 						ELSIF (FD.cFileName # ".") & ((FD.cFileName # "..")) THEN
 							enum.PutEntry( longname, {Files.Directory}, t, d, FD.nFileSizeLow )
@@ -317,7 +317,7 @@ TYPE
 			END EnumeratePath;
 
 		BEGIN {EXCLUSIVE}
-			COPY( mask, path );  ConvertChar( path, Files.PathDelimiter, PathDelimiter );  attr := ToSet(Kernel32.GetFileAttributes( path ));  path := "";
+			COPY( mask, path );  ConvertChar( path, Files.PathDelimiter, PathDelimiter );  attr := Kernel32.GetFileAttributes( path );  path := "";
 			IF (Kernel32.FileAttributeDirectory IN attr) & (~(Kernel32.FileAttributeTemporary IN attr)) THEN COPY( mask, path );  COPY( "*", pattern );  ELSE Files.SplitPath( mask, path, pattern );  END;
 			IF TraceFileSystem IN Trace THEN
 				KernelLog.String( "Enumerate0: " );   KernelLog.String( mask );  KernelLog.String( " :: " );  KernelLog.String( path );  KernelLog.String( " :: " );  KernelLog.String( pattern );  KernelLog.Ln;
@@ -419,7 +419,7 @@ TYPE
 			COPY(fileName, name);
 			ConvertChar(name, Files.PathDelimiter, PathDelimiter );  
 			IF FindFile(fileName, fullName) THEN 
-				flags := FileFlags(ToSet(Kernel32.GetFileAttributes(fullName)));
+				flags := FileFlags(Kernel32.GetFileAttributes(fullName));
 				ConvertChar(fullName, PathDelimiter,Files.PathDelimiter);  
 				RETURN TRUE
 			ELSE
@@ -444,13 +444,13 @@ TYPE
 		fileSystem: WinFileSystem;
 
 		PROCEDURE & Init*( VAR name: ARRAY OF CHAR;  hfile: Kernel32.HANDLE;  key: LONGINT ; fs: WinFileSystem);
-		VAR s: SET;  res: Kernel32.BOOL; 
+		VAR s: WORDSET;  res: Kernel32.BOOL; 
 		BEGIN
 			IF TraceFile IN Trace THEN KernelLog.String( "Init: " );  KernelLog.String( name );  KernelLog.String( " (" );  KernelLog.Int( key, 1 );  KernelLog.String( ")" );  KernelLog.Ln;  END;
 			SELF.key := key;  fpos := 0;  SELF.hfile := hfile;  COPY( name, SELF.fname );  tfname := NIL;
 			IF hfile # Kernel32.InvalidHandleValue THEN
-				fsize := Kernel32.GetFileSize( hfile, NIL );  ASSERT( fsize >= 0 );  s := ToSet(Kernel32.GetFileAttributes( name ));
-				IF Kernel32.FileAttributeTemporary IN s THEN EXCL( s, Kernel32.FileAttributeTemporary );  res := Kernel32.SetFileAttributes( name, Kernel32.SetToDW(s) );  ASSERT( res # 0 );  s := ToSet(Kernel32.GetFileAttributes( name )) END;
+				fsize := Kernel32.GetFileSize( hfile, NIL );  ASSERT( fsize >= 0 );  s := Kernel32.GetFileAttributes( name );
+				IF Kernel32.FileAttributeTemporary IN s THEN EXCL( s, Kernel32.FileAttributeTemporary );  res := Kernel32.SetFileAttributes( name, s );  ASSERT( res # 0 );  s := Kernel32.GetFileAttributes( name ) END;
 				flags := FileFlags( s )
 			ELSE flags := {Temporary};  fsize := 0
 			END;
@@ -484,7 +484,7 @@ TYPE
 			ASSERT( buffer.dirty );  ASSERT( buffer.len > 0 );  pos := buffer.apos * BufferSize;
 			IF hfile = Kernel32.InvalidHandleValue THEN
 				ASSERT( Temporary IN flags );  NEW( tfname );  TempName( tfname^ );
-				hfile := Kernel32.CreateFile( tfname^, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeTemporary}), 0 );
+				hfile := Kernel32.CreateFile( tfname^, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL , Kernel32.CreateAlways, {Kernel32.FileAttributeTemporary}, 0 );
 				ASSERT( hfile # Kernel32.InvalidHandleValue );  fpos := 0
 			END;
 			IF fpos # pos THEN fpos := Kernel32.SetFilePointer( hfile, pos, NIL , Kernel32.FileBegin );  ASSERT( fpos = pos ) END;
@@ -493,7 +493,7 @@ TYPE
 				res := Kernel32.CloseHandle( hfile );
 				IF TraceFile IN Trace THEN KernelLog.String( "closed handle of " );  KernelLog.String( fname );  KernelLog.Ln;  END;
 				hfile :=
-					Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+					Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 				ASSERT( hfile # Kernel32.InvalidHandleValue );  fpos := Kernel32.SetFilePointer( hfile, pos, NIL , Kernel32.FileBegin );  ASSERT( fpos = pos );
 				res := Kernel32.WriteFile( hfile, buffer.data, buffer.len, n, NIL )
 			END;
@@ -604,14 +604,14 @@ TYPE
 		END SetDate;
 
 		PROCEDURE GetAttributes*(): SET;
-		VAR s: SET;
+		VAR s: WORDSET;
 		BEGIN
-			s := ToSet(Kernel32.GetFileAttributes( fname ));
+			s := Kernel32.GetFileAttributes( fname );
 			RETURN FileFlags(s);
 		END GetAttributes;
 
 		PROCEDURE SetAttributes*(a: SET);
-		VAR s: SET;
+		VAR s: WORDSET;
 		BEGIN
 			s:= WindowsFlags(a);
 			SetFileAttributes(fname,s);
@@ -634,10 +634,10 @@ TYPE
 			ASSERT( ~(Temporary IN flags) );
 			(*ALEX 2005.12.08*)
 			IF hfile = Kernel32.InvalidHandleValue THEN
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, 0 );
 			END;
 			IF hfile = Kernel32.InvalidHandleValue THEN
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 			END;
 			IF buffer.dirty THEN WriteBuffer() END;
 			(*
@@ -651,7 +651,7 @@ TYPE
 			IF TraceFile IN Trace THEN KernelLog.String( "toTemp: " );  KernelLog.String( fname );  KernelLog.String( " => " );  KernelLog.String( tfname^ );  KernelLog.Ln;  END;
 			IF ~MoveFile( fname, tfname^ ) THEN HALT( 1241 ) (* RETURN FALSE *) END;
 			winFS.collection.Unregister( SELF );
-			hfile := Kernel32.CreateFile( tfname^, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeTemporary}), 0 );
+			hfile := Kernel32.CreateFile( tfname^, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeTemporary}, 0 );
 			(* IF hfile = Kernel32.InvalidHandleValue THEN RETURN FALSE END; *)
 			ASSERT( hfile # Kernel32.InvalidHandleValue );  fsize := Kernel32.GetFileSize( hfile, NIL );  ASSERT( fsize >= 0 );  SELF.tfname := tfname;  COPY( tfname^, fname );  RETURN TRUE;
 		END ToTemp;
@@ -677,8 +677,8 @@ TYPE
 					res := 1;  RETURN;
 					(* HALT( 1242 )*)
 				END;
-				hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 )
-			ELSE hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}),Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 )
+				hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 )
+			ELSE hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL, Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, 0 )
 			END;
 			IF hfile = Kernel32.InvalidHandleValue THEN res := 1;  RETURN END;
 			ASSERT( hfile # Kernel32.InvalidHandleValue );  winFS.collection.Register( SELF );  res := 0
@@ -722,12 +722,6 @@ VAR
 	winFS: WinFileSystem;   (* must be unique *)
 
 
-	PROCEDURE ToSet(d: UNSIGNED32): SET;
-	BEGIN
-		RETURN SYSTEM.VAL(SET, ADDRESS(d)); 
-	END ToSet;
-	
-
 	PROCEDURE DebugFile(f: File);
 	BEGIN
 		KernelLog.String("fname = "); KernelLog.String(f.fname); KernelLog.Ln;
@@ -756,7 +750,7 @@ VAR
 
 	PROCEDURE MoveFile( VAR from, to: ARRAY OF CHAR ): BOOLEAN;
 	BEGIN
-		IF Kernel32.MoveFileEx( from, to, Kernel32.SetToDW({Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed}) ) = Kernel32.False THEN
+		IF Kernel32.MoveFileEx( from, to, {Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed} ) = Kernel32.False THEN
 			IF Kernel32.CopyFile( from, to, Kernel32.False ) = Kernel32.False THEN
 				IF TraceFile IN Trace THEN KernelLog.String( "could not copy" );  KernelLog.Ln;  END;
 				RETURN FALSE
@@ -796,7 +790,7 @@ VAR
 	END FullPathName;
 
 	(* convert flags from windows file flags to A2 file flags *)
-	PROCEDURE FileFlags( flags: SET ): SET;
+	PROCEDURE FileFlags( flags: WORDSET ): SET;
 	VAR s: SET;
 	BEGIN
 		s := {};
@@ -810,8 +804,8 @@ VAR
 	END FileFlags;
 
 	(* convert flags from A2 file flags to windows file flags *)
-	PROCEDURE WindowsFlags(flags: SET): SET;
-	VAR s: SET;
+	PROCEDURE WindowsFlags(flags: SET): WORDSET;
+	VAR s: WORDSET;
 	BEGIN
 		s := {};
 		IF  Directory IN flags THEN INCL( s,  Kernel32.FileAttributeDirectory) END;
@@ -1088,21 +1082,21 @@ VAR
 		RETURN ok
 	END CheckName;
 
-	PROCEDURE GetAttributes*( file: ARRAY OF CHAR ): SET;   (** non-portable *)
-	VAR attrs: SET;
+	PROCEDURE GetAttributes*( file: ARRAY OF CHAR ): WORDSET;   (** non-portable *)
+	VAR attrs: WORDSET;
 	BEGIN
-		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  attrs := ToSet(Kernel32.GetFileAttributes( file ));
+		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  attrs := Kernel32.GetFileAttributes( file );
 		IF attrs = {0..31} THEN RETURN {} ELSE RETURN attrs END
 	END GetAttributes;
 
-	PROCEDURE SetAttributes*( file: ARRAY OF CHAR;  attrs: SET );   (** non-portable *)
+	PROCEDURE SetAttributes*( file: ARRAY OF CHAR;  attrs: WORDSET );   (** non-portable *)
 	BEGIN
-		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, Kernel32.SetToDW(attrs) )
+		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, attrs )
 	END SetAttributes;
 
-	PROCEDURE SetFileAttributes*( file: ARRAY OF CHAR;  attrs: SET );   (** non-portable *)
+	PROCEDURE SetFileAttributes*( file: ARRAY OF CHAR;  attrs: WORDSET );   (** non-portable *)
 	BEGIN
-		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, Kernel32.SetToDW(attrs) )
+		ConvertChar( file, Files.PathDelimiter, PathDelimiter );  Kernel32.SetFileAttributes( file, attrs )
 	END SetFileAttributes;
 
 
@@ -1202,7 +1196,7 @@ VAR
 
 		(* now the file system is installed *)
 
-		drives := ToSet(Kernel32.GetLogicalDrives());
+		drives := Kernel32.GetLogicalDrives();
 		drives := drives - {0,1}; (* do not scan for diskettes *)
 		AutoMountWindowsLogicalDrives( drives );
 

+ 2 - 2
source/Win32.WinTrace.Mod

@@ -90,7 +90,7 @@ VAR filename: ARRAY 256 OF CHAR;
 BEGIN
 	Close;
 	IF ~context.arg.GetString(filename) THEN filename := "WinTrace.Text" END;
-	hout := Kernel32.CreateFile(filename, Kernel32.SetToDW({Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL, Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), Kernel32.NULL);
+	hout := Kernel32.CreateFile(filename, {Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL, Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, Kernel32.NULL);
 	ASSERT ((hout) # (Kernel32.InvalidHandleValue));
 	herr := hout;
 	Trace.Char := Char;
@@ -117,4 +117,4 @@ END WinTrace.
 WinTrace.OpenFile ~
 WinTrace.OpenFile myTrace.Text ~
 WinTrace.OpenConsole
-WinTrace.Close 
+WinTrace.Close 

+ 8 - 14
source/Win64.Machine.Mod

@@ -468,7 +468,7 @@ BEGIN
 	traceName := "SystemTrace.txt";
 	SetupTraceName(traceName);
 	Trace.String("trace -> file "); Trace.String(traceName); Trace.Ln;
-	hout := Kernel32.CreateFile(traceName, SetToDW({Kernel32.GenericWrite}), SetToDW({Kernel32.FileShareRead}), NIL, Kernel32.CreateAlways, SetToDW({Kernel32.FileAttributeNormal}), Kernel32.NULL);
+	hout := Kernel32.CreateFile(traceName, {Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL, Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, Kernel32.NULL);
 	Kernel32.GetFullPathName(traceName, LEN(traceName),traceName, NIL);
 	Trace.Char := TraceChar;
 	Trace.String(version); Trace.Ln; 
@@ -604,7 +604,7 @@ BEGIN
 		ToExecutablePath(DefaultConfigFile, defaultConfigFile);
 	END;
 	COPY(UserConfigFile, userConfigFile);
-	hfile := Kernel32.CreateFile( userConfigFile, SetToDW({Kernel32.GenericRead}), SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.OpenExisting, SetToDW({Kernel32.FileAttributeNormal}), 0 );
+	hfile := Kernel32.CreateFile( userConfigFile, {Kernel32.GenericRead}, {Kernel32.FileShareRead}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
 	IF hfile = Kernel32.InvalidHandleValue THEN
 		ToExecutablePath(UserConfigFile, userConfigFile);
 	ELSE
@@ -737,9 +737,9 @@ BEGIN
 	IF memBlkSize < MemBlockSize THEN memBlkSize := MemBlockSize END; 	(* MemBlockSize implicitly multiple of StaticBlockSize *)
 
 	initVal := 8*1024*1024;
-	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, SetToDW({Kernel32.MEMCommit, Kernel32.MEMReserve}), SetToDW({Kernel32.PageExecuteReadWrite}));
+	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, {Kernel32.MEMCommit, Kernel32.MEMReserve}, {Kernel32.PageExecuteReadWrite});
 	IF adr = NilVal THEN (* allocation failed *)
-		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, SetToDW({Kernel32.MEMCommit}), SetToDW({Kernel32.PageExecuteReadWrite}));
+		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, {Kernel32.MEMCommit}, {Kernel32.PageExecuteReadWrite});
 	END;
 	
 	IF TraceVerbose THEN
@@ -870,12 +870,6 @@ BEGIN
 	END
 END InsertMemoryBlock;
 
-PROCEDURE SetToDW(set: SET): Kernel32.DWORD;
-BEGIN
-	RETURN SYSTEM.VAL(Kernel32.DWORD,set);
-END SetToDW;
-
-
 (* expand heap by allocating a new memory block - called during GC *)
 PROCEDURE ExpandHeap*(dummy: LONGINT; size: SIZE; VAR memoryBlock: MemoryBlock; VAR beginBlockAdr, endBlockAdr: ADDRESS);
 CONST MemBlockHeaderSize = BlockHeaderSize + RecordDescSize + BlockHeaderSize;
@@ -892,9 +886,9 @@ BEGIN
 	memBlkSize := memDescSize + size + StaticBlockSize; 		(* add StaticBlockSize to account for alignments different from multiples of StaticBlockSize *)
 	INC(memBlkSize, (-memBlkSize) MOD MemBlockSize);
 	initVal := memBlockTail.startAdr + memBlockTail.size;
-	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, SetToDW({Kernel32.MEMCommit, Kernel32.MEMReserve}), SetToDW({Kernel32.PageExecuteReadWrite}));
+	adr := Kernel32.VirtualAlloc(initVal, memBlkSize, {Kernel32.MEMCommit, Kernel32.MEMReserve}, {Kernel32.PageExecuteReadWrite});
 	IF adr = NilVal THEN (* allocation failed *)
-		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, SetToDW({Kernel32.MEMCommit}), SetToDW({Kernel32.PageExecuteReadWrite}));
+		adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, {Kernel32.MEMCommit}, {Kernel32.PageExecuteReadWrite});
 	END;
 	continue := adr = initVal;
 	IF TraceVerbose THEN
@@ -980,8 +974,8 @@ BEGIN
 		END;
 		memBlock.next := NIL;
 		startAdr := memBlock.startAdr; (* this value must be cached for the second call of Kernel32.VirtualFree *)
-		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, memBlock.startAdr), memBlock.size, SetToDW({Kernel32.MEMDecommit}));
-		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, startAdr ), 0, SetToDW({Kernel32.MEMRelease}));
+		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, memBlock.startAdr), memBlock.size, {Kernel32.MEMDecommit});
+		Kernel32.VirtualFree(SYSTEM.VAL(LONGINT, startAdr ), 0, {Kernel32.MEMRelease});
 	ELSE
 		HALT(535)	(* error in memory block management *)
 	END;

+ 4 - 4
source/Win64.Objects.Mod

@@ -173,7 +173,7 @@ TYPE
 				sp := Machine.CurrentSP();  bp :=Machine.CurrentBP(); pc := Machine.CurrentPC(); 
 			ELSE
 				res := Kernel32.SuspendThread(handle); (* can suspend a suspended thread -- no problem at all *)
-				state.ContextFlags := Kernel32.SetToDW(Kernel32.ContextControl + Kernel32.ContextInteger);
+				state.ContextFlags := Kernel32.ContextControl + Kernel32.ContextInteger;
 				res := Kernel32.GetThreadContext( handle, state );
 				IF res = 0 THEN Trace.String("could not get thread context:"); Trace.Int(Kernel32.GetLastError(),1) END;
 				
@@ -816,7 +816,7 @@ BEGIN
 		t.restartPC := SYSTEM.VAL(ADDRESS, terminateProc);
 	END;
 	
-	t.handle := Kernel32.CreateThread(0, defaultStackSize, Wrapper, t, Kernel32.SetToDW({}), t.id);
+	t.handle := Kernel32.CreateThread(0, defaultStackSize, Wrapper, t, {}, t.id);
 
 	IF TraceVerbose OR TraceOpenClose THEN
 		Machine.Acquire(Machine.TraceOutput);
@@ -1033,7 +1033,7 @@ END Await;
 			Machine.Acquire( Machine.Objects );
 			LOOP
 				retBOOL := Kernel32.SuspendThread( t.handle );
-				t.state.ContextFlags := SYSTEM.VAL(LONGINT, Kernel32.ContextControl);
+				t.state.ContextFlags := Kernel32.ContextControl;
 				retBOOL := Kernel32.GetThreadContext( t.handle, t.state );
 				mod := Modules.ThisModuleByAdr( t.state.PC );  Trace.String( "Objects Break at adr: " );
 				Trace.Int( t.state.PC, 5 );  Trace.Ln;
@@ -1109,7 +1109,7 @@ BEGIN
 	t.handle := Kernel32.GetCurrentThread();
 	t.id := Kernel32.GetCurrentThreadId();
 	proc := Kernel32.GetCurrentProcess();
-	res := Kernel32.DuplicateHandle(proc, t.handle, proc, t.handle, Kernel32.SetToDW({}), 0, Kernel32.SetToDW({Kernel32.DuplicateSameAccess}));
+	res := Kernel32.DuplicateHandle(proc, t.handle, proc, t.handle, {}, 0, {Kernel32.DuplicateSameAccess});
 	ASSERT(res # 0);
 	res := Kernel32.TlsSetValue(tlsIndex, SYSTEM.VAL(LONGINT, t));
 	ASSERT(res # 0);