Hi DayDreamer
Yeah, you can be able to put many opcode on the same line due to the usage of macros. With the help of macros you can do things like:
call 'KERNEL32.ExitProcess' &NULL
of course, in ROsAsm there´s no rigid syntax. The default syntax is the regular assembly one, like
push 0
call 'KERNEL32.ExitProcess'
Is up to the user choose either use macros or not. Personally, i use the default Macro set on a regular daily basis because it is easier for read.
If you want to see the unfolded assembly code, just put the cursor over a macro, double left click on it (to select) and when a submenu shows up, just select "Unfold Macro" and you will see the underneath assembly code used on the macro. Ex: At this code:
If D@Flag > XYZ_Matrice_sRGB_D65_HDTV
mov D@Flag XYZ_Matrice_sRGB_D65_HDTV
End_If
If you double left click on the macro "If" a submenu will show up and you will see that this macro is actually this doing this:
******************************
* Macros-Engine Pass 1 *
******************************
CMP D$RGBTOCIELCHEX@FLAG 24
JNA I1>
******************************
* Macros-Engine Pass 2 *
******************************
CMP D$EBP+32 24
JNA I1>
About the separator "|" it´s is just a simple way to display the code. Some people like to read the code on the same line, so the separator "|" was written for that purpose. You can write things like:
fld R$Sig.Luminance | fmul R$Float_Half | fstp R$Sig.Luminance
Which are Nothing more then
fld R$Sig.Luminance
fmul R$Float_Half
fstp R$Sig.Luminance
Once i have more free time i´ll finish updating RosAsm. I had to delay the development last year but perhaps i´ll have more time this year to finish the updates i was doing. Several fixes and improves are still needed.