Hi guys,

You have to change line 160 like this:

SET_WORD(H_FLAGS, z_header.(z_header_t)flags);

or

SET_WORD(H_FLAGS, z_header.(struct zcode_header_struct)flags);

How did this work?  I used
SET_WORD(H_FLAGS, z_header.(struct zcode_header_struct)flags);
and I got this:

Error src\common\fastmem.c 160: Invalid combination of opcode and operands in function restart_head

That's another error message related to assembly code. This line converts to:

asm {
les      bx,zmp
add      bx,16
mov      ax,z_header+16 // error
xchg     al,ah
mov      es:[bx],ax
}

and you get the same error message for the third instruction. In the assembly code (compile with -S option), the "z_header" symbol is defined as a word-typed label followed by lots of bytes, so probably the "z_header+16" expression is taken for either byte-typed or untyped. Therefore, you have to force the type:

mov      ax,word ptr z_header+16 // no error

In the SET_WORD etc. macros, prepend "word ptr" wherever needed. Good luck,

Joe
--
KOVÁCS Balázs aka Joe Forster/STA; [email protected]; http://sta.c64.org
Don't E-mail spam, HTML or uncompressed files! More contacts on homepage
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to