I have added what I could find and it is testing OK at the moment. Version 125b.


Posted on 2002-11-17 05:48:56 by hutch--
I've tested and found a peculiar error message. Se the following thread.

RadAsm Bug?
Posted on 2002-11-17 15:19:06 by minor28

If you have found a problem, please document what has happened, the link to a non specified problem building code in RasAsm is not much use to me.


Posted on 2002-11-17 19:33:28 by hutch--
I swap the masm window.inc file with the new version 125b. When assembling my projects I suddenly get an error message

"Assembling: ReadSC.asm
ReadSC.inc(38) : error A2005: symbol redefinition : CONST

Make error(s) occured."

The error point to cod line ".const"
Swapping back to the old window.inc file and the error disappears.
Posted on 2002-11-18 00:32:39 by minor28
Hi Hutch

The reserved word CONST has been used to define a data type, just remove line 109 CONST typedef DWORD of the WINDOWS.INC file and all will be fine. I also had another error based on data types PHANDLE broke almost all of my code, the problem was repaired on my end. Other than that no problems yet, though I haven't run the hell out of any of my programs yet.

Although this problem does not appear in your new file it should be noted that PAUSE is now a reserved word in ML.EXE 6.15 and cannot be used in any structures or definitions, just something to keep in mind.

Posted on 2002-11-18 01:00:20 by donkey

thanks, line 109 was one problem, I caught most of the naming conflicts with the C++ typedefs but missed that one as it did not produce any errors on the stuff I tested with.

PAUSE does not occur as a single word in the include file so it is not a problem.


Posted on 2002-11-18 02:07:41 by hutch--
Hi, Steve!

I've dowloaded windows.inc long ago but forgotten to update it ;)
And i've done it only tomorrow.
But when i recompiled some of my Kernel Mode Drivers, i discovered, that every time i run any of it, BSOD (Blue Screen Of Death) appears :( Since only i have changed is windows.inc (i used it in kmd sources) i quickly found cause of trouble:


And it's wrong as far as i know.
Was defined previously (in windows.inc v. 1.25a) as:


And it's correct, IMHO.

So, to prove it to myself, i fired up msvc 6.0 and compiled this piece of code:

tgdp.ECC = FALSE;
tgdp.Compression = TRUE;
tgdp.DataPadding = FALSE;
tgdp.ReportSetmarks = TRUE;
tgdp.DefaultBlockSize = sizeof TAPE_GET_DRIVE_PARAMETERS; // some size check

Disassembly of above:
.text:00401006         mov     [color=red]byte[/color]_408920, 0

.text:0040100D mov [color=red]byte[/color]_408921, 1
.text:00401014 mov [color=red]byte[/color]_408922, 0
.text:0040101B mov [color=red]byte[/color]_408923, 1
.text:00401022 mov dword_408924, 20h

TAPE_GET_DRIVE_PARAMETERS defined in windows.inc like this:

Compression BOOLEAN ?
DataPadding BOOLEAN ?
ReportSetmarks BOOLEAN ?
DefaultBlockSize dd ?
. . . .

And its sizeof = 20h for v1.25a but 2Ch for v1.25b!
Posted on 2002-12-16 06:49:14 by Four-F
I was working with OpenGL, when I noticed that 4 equates in WINDOWS.INC do not match what the rest of the world thinks they are. They are DM_ICMMETHOD equ 2000000h, DM_ICMINTENT equ 4000000h, DM_MEDIATYPE equ 8000000h, and DM_DITHERTYPE equ 10000000h. The world thinks they are DM_ICMMETHOD EQU 0800000H, DM_ICMINTENT EQU 1000000H, DM_MEDIATYPE EQU 2000000H, and DM_DITHERTYPE EQU 4000000H. Ratch
Posted on 2002-12-17 23:38:53 by Ratch