I have added what I could find and it is testing OK at the moment. Version 125b.
Regards,
hutch@movsd.com
Regards,
hutch@movsd.com
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.
Regards,
hutch@movsd.com
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.
Regards,
hutch@movsd.com
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.
"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.
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.
Donkey
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.
Donkey
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.
Regards,
hutch@movsd.com
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.
Regards,
hutch@movsd.com
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:
BOOLEAN typedef DWORD
And it's wrong as far as i know.
Was defined previously (in windows.inc v. 1.25a) as:
BOOLEAN typedef BYTE
And it's correct, IMHO.
So, to prove it to myself, i fired up msvc 6.0 and compiled this piece of code:
Disassembly of above:
TAPE_GET_DRIVE_PARAMETERS defined in windows.inc like this:
And its sizeof = 20h for v1.25a but 2Ch for v1.25b!
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:
BOOLEAN typedef DWORD
And it's wrong as far as i know.
Was defined previously (in windows.inc v. 1.25a) as:
BOOLEAN typedef BYTE
And it's correct, IMHO.
So, to prove it to myself, i fired up msvc 6.0 and compiled this piece of code:
TAPE_GET_DRIVE_PARAMETERS tgdp;
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:
TAPE_GET_DRIVE_PARAMETERS STRUCT
ECC BOOLEAN ?
Compression BOOLEAN ?
DataPadding BOOLEAN ?
ReportSetmarks BOOLEAN ?
DefaultBlockSize dd ?
. . . .
TAPE_GET_DRIVE_PARAMETERS ENDS
And its sizeof = 20h for v1.25a but 2Ch for v1.25b!
hutch--,
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
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