flat assembler
Message board for the users of flat assembler.
Index
> Macroinstructions > nested structs/struct in macro |
Author |
|
mindcooler 26 Oct 2010, 21:09
I just noticed that those are actually strucs, how confusing. Structs give me invalid macro argument errors.
|
|||
26 Oct 2010, 21:09 |
|
LocoDelAssembly 26 Oct 2010, 21:10
In both the macro and struc interface replace ".guid:" with "guid".
|
|||
26 Oct 2010, 21:10 |
|
mindcooler 26 Oct 2010, 21:13
Ah, names are implicitly declared in struc(t)s, right?
|
|||
26 Oct 2010, 21:13 |
|
mindcooler 26 Oct 2010, 21:38
Anyway, that sems to be working, thanks.
Though I can't seem to get the methods right: Code: forward methods dd $ doesn't seem to declare anything. Code: IDirectSound8 interface <$96749377,$3391,$11D2,$9E,$E3,$00,$C0,$4F,$79,$73,$96>,\ blap,blip,blup,blep,blop Edit: nor can I access the guid member: Code: mov eax,IDirectSound8.guid Quote: Error: undefined symbol _________________ This is a block of text that can be added to posts you make. Last edited by mindcooler on 26 Oct 2010, 21:42; edited 1 time in total |
|||
26 Oct 2010, 21:38 |
|
baldr 26 Oct 2010, 21:42
mindcooler,
struc-macro to be invoked has to be second token in the line, not third. Yes, colon is a token. ----8<---- LocoDelAssembly, Wouldn't that break locality? |
|||
26 Oct 2010, 21:42 |
|
mindcooler 26 Oct 2010, 21:46
baldr, yes guid: GUID uid works better
|
|||
26 Oct 2010, 21:46 |
|
LocoDelAssembly 26 Oct 2010, 21:47
baldr, thanks for spotting that, I've actually tried to say "remove the colon", removing the dot was a typo.
|
|||
26 Oct 2010, 21:47 |
|
mindcooler 26 Oct 2010, 21:51
Code: irp method,methods \{ .method dd $ \} doesn't help either, I can't concatenate . with .method _________________ This is a block of text that can be added to posts you make. |
|||
26 Oct 2010, 21:51 |
|
mindcooler 26 Oct 2010, 22:58
Gah, how can I make "method" NOT interpreted literally?
Code: irp method,methods \{ .#\.#method dd $ \} _________________ This is a block of text that can be added to posts you make. |
|||
26 Oct 2010, 22:58 |
|
mindcooler 26 Oct 2010, 23:21
By some reason this works:
Code: forward .#\.#methods dd $ And I realized the GUID data were supposed to be in another section (doh). _________________ This is a block of text that can be added to posts you make. |
|||
26 Oct 2010, 23:21 |
|
mindcooler 26 Oct 2010, 23:30
It works as in the labels get declared, but I don't get any allocated space. Does it have something to do with the virtual address space?
Code: struc interface [methods] { common virtual at 0 forward .#\.#methods dd $ common end virtual } I have to do this to get my doubles: Code: struc interface [methods] { common virtual at 0 forward .#\.#methods rd 1 common end virtual forward dd $ } _________________ This is a block of text that can be added to posts you make. |
|||
26 Oct 2010, 23:30 |
|
mindcooler 26 Oct 2010, 23:51
Everything works nicely now, except the master label doesn't exist:
Code: struc interface [methods] { common virtual at 0 forward .#\.#methods rd 1 common end virtual forward dd $ } IDirectSound8 interface CreateSoundBuffer,GetCaps,DuplicateSoundBuffer,SetCooperativeLevel,\ Compact,GetSpeakerConfig,SetSpeakerConfig,Initialize,VerifyCertification invoke DirectSoundCreate8,DirectSound8,IDirectSound8 <------ undefined symbol IDirectSound8 _________________ This is a block of text that can be added to posts you make. |
|||
26 Oct 2010, 23:51 |
|
mindcooler 27 Oct 2010, 19:36
I think
label . did the trick. |
|||
27 Oct 2010, 19:36 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.