Forum > Other

Atari m68k inline assembler error (using vasm): the dc.* pseudo-instruction

(1/2) > >>

Hello folks,

I am trying to compile an Atari ST disassembly because the source is no more available.

Made a simple project with only the main lpr file and including all the assembler code in one huge asm/end; block.

Everything is working well until a dc.b/dc.w/dc.l pseudo-instruction is reached.

Are such instructions supported by FPC? If not then my effort is in vain, unless I compile the original assembler file itself. But I'd like to have the code inline since I want to rewrite it for Pascal and port it to other platforms. Well, a foolish task but it's one of my dreams.

All I need to know is what this error means, if it's possible to avoid it or fix it (on my side, on the FPC side, or finally on the vasm side).

--- Code: ---WIME68KASM.lpr(368,11) Error: Internal error 200405011
--- End code ---

Tried to change the pseudo-instruction to prepend a period: .dc.w, tried the std assembler dialect equivalent, .uhalf, tried to remove the .w extension, everything fails saying "Invalid or missing opcode."

Hope that I am really using vasm (because the FPC wiki says the GNU assembler is problematic with m68k). Added -XV and -Avasm to the compiler options.

Edit: Tried to compile the original source with vasm. It has no problems with the dc.* pseudo-instructions.

With kind regards,

An Internal Error is a kind of assert. 200405011 is the first such assert added on 2004-05-01. I looked what it means and it is in an utility function in rautils that checks if a operand size is 1,2,4 or 8. Probably it also matters to know from where that utility routine was called. (iow where the false argument happened).

Please post a bugreport with the relevant source that triggers the IE on the gitlab bugtracker.

Wow, thank you! Will try my best.

Adding the link to the Lazarus issue for reference:

Edit: Wrong place. :-[ The right place is


--- Quote from: Cigydd on September 28, 2022, 04:53:57 pm ---Edit: Tried to compile the original source with vasm. It has no problems with the dc.* pseudo-instructions.

--- End quote ---

As a workaround you can simply link in the generated object file using {$L YourFile.obj} and call the code with the help of external declarations.


[0] Message Index

[#] Next page

Go to full version