The MASM Forum

General => The Campus => Topic started by: Mikl__ on February 15, 2018, 02:01:17 PM

Title: joke
Post by: Mikl__ on February 15, 2018, 02:01:17 PM
format PE GUI
include 'win32ax.inc'
; import data in the same section
   invoke MessageBox,NULL,wText1,wTitle,MB_OK
   retn
wTitle db   'Iczelion Tutorial #2:MessageBox',0
wText1 db 87,105,110,51,50,32,65,115,115,101,109,98,108,121,32,119
db 105,116,104,32,77,65,83,77,32,105,115,32,71,114,101,97,116,33,10
wText2 dw 26967, 13166, 8242, 29505, 25971, 25197, 31084, 30496, 29801
dw 8296, 16717, 19795, 26912, 8307, 29255, 24933, 8564, 3338
wText3 dd 5.55095E-8,1.5300999E31,1.0947971E21,3.2548056E33
dd 1.9689681E-19,2.21516896E8,2.0617684E-19,2.6453368E20,4.25648E-31
wText4 dq 8304954587831232855, 8583994396182930803, 5571868963499439209,7018141244139464992,8564
data import
library user32,'USER32.DLL'
import user32,\
        MessageBox,'MessageBoxA'
end data
Let's try to compile and run (https://wasm.in/styles/smiles_s/mosking.gif) Find the word "FASM"
Title: Re: joke
Post by: jj2007 on February 15, 2018, 02:41:13 PM
For known reasons, I prefer a MACRO assembler - UAsm rocks :P
Title: Re: joke
Post by: Mikl__ on February 15, 2018, 04:30:16 PM
Ciao, jj2007!
I prefer MACRO assembler too
Title: Re: joke
Post by: aw27 on February 15, 2018, 06:17:31 PM
As far as I know all current assemblers support macros.  :dazzled:
Title: Re: joke
Post by: jj2007 on February 15, 2018, 06:37:38 PM
Try a simple print str$(ecx) with FASM or NASM...
Title: Re: joke
Post by: aw27 on February 15, 2018, 07:43:02 PM
Have you searched the web and did not find the answer, do you believe that such a macro is particularly difficult, or both?

PS:
I believe the answer is "both", but a simple search gave me this:
https://board.flatassembler.net/topic.php?t=9605
Title: Re: joke
Post by: avcaballero on February 15, 2018, 07:53:24 PM
No time to see it now, but the capabilities of fasm and nasm for macros are out of any doubt.

Regarding Mikl__ example, it's nice. Just bear in mind that ascii text is also (byte) numbers. I guess that it's just and example of encoding ascii in numbers, each line I guess ended in CR and the final text ending in '0' that is 30h. :t
Title: Re: joke
Post by: jj2007 on February 15, 2018, 08:26:24 PM
Quote from: aw27 on February 15, 2018, 07:43:02 PM
Have you searched the web and did not find the answer, do you believe that such a macro is particularly difficult, or both?

PS:
I believe the answer is "both", but a simple search gave me this:
https://board.flatassembler.net/topic.php?t=9605

FASM macros can do print eax, but they can't do print str$(eax).

Other example, the rv() macro:
include \masm32\include\masm32rt.inc

.code
start:
  .if rv(exist, "somefile.txt")
print "yeah"
  .else
print "nooo"
  .endif
  exit

end start


Show me how to do that in FASM or NASM, and I will keep my mouth shut 8)

P.S.: (https://board.flatassembler.net/topic.php?p=30435#30435)
Quoteinlining the macros is something against the fasm's concept
Title: Re: joke
Post by: aw27 on February 15, 2018, 08:32:34 PM
 :badgrin: :badgrin:
Unless the post has been changed in the meantime what I read was that "The arguments can be combined, and if the exact same arguments has been used before, print will recognise it and reuse the data (which may not always be the best thing to do)."

Quote
Show me how to do that in FASM or NASM, and I will keep my mouth shut
Currently, I am not accepting free work-to-order assignments, but of course, I could do it if I really wanted to do it.  :biggrin:
Title: Re: joke
Post by: jj2007 on February 15, 2018, 08:38:56 PM
Quote from: aw27 on February 15, 2018, 08:32:34 PMUnless the post has been changed in the meantime what I read was that "The arguments can be combined, and if the exact same arguments has been used before, print will recognise it and reuse the data (which may not always be the best thing to do)."

Whose post? I certainly did not write that. Btw Print (http://www.webalice.it/jj2006/MasmBasicQuickReference.htm#Mb1110) does reuse the data (and I can't imagine a case where this would not be the best thing to do).

QuoteI could do it if I really wanted to do it.  :biggrin:

Well, not with FASM - see my P.S. above 8)
Title: Re: joke
Post by: aw27 on February 15, 2018, 08:46:53 PM
Now I am lost, I was talking about assembly language and you bring in Masm Basic functions.  :icon_eek:

Quote
Whose post?
I was talking about the FASM forum post.

Quote
inlining the macros is something against the fasm's concept
Nice try! You removed the context and don't provide the source of the statement.  :dazzled:

Quote
Should I use FASM or MASM? (https://www.reddit.com/r/asm/comments/3i0ffu/should_i_use_fasm_or_masm/)
ANSWER: FASM is better maintained and has superior macro support.
No need to add anything else.

Title: Re: joke
Post by: jj2007 on February 15, 2018, 10:20:32 PM
Quote from: aw27 on February 15, 2018, 08:46:53 PM
Quote
inlining the macros is something against the fasm's concept
Nice try! You removed the context and don't provide the source of the statement.  :dazzled:

Sorry, I even linked to it - too lazy to click on a link? And if Tomasz Grysztar writes "No, inlining the macros is something against the fasm's concept", then my post is certainly not out of context. He means it :t

QuoteFASM is better maintained and has superior macro support.

That is plain ridiculous :P

AFAICS the whole FASM community is addicted to the bare metal concept. Show me one major FASM application that a) makes significant use of macros and b) arrives at over a thousand lines of code.
Title: Re: joke
Post by: avcaballero on February 15, 2018, 10:26:15 PM
I wouldn't say that anyone of them is better than any other. What I miss in fasm or nasm is the possibility of defining local structures. You may define bytes, words, dwords, qwords. Maybe it is possible to do such a thing now. In any case I'm pretty sure that using macros it would be possible to do that.

Masm is very good, the pitty is that there's no full package for 64 bits programming. What I value in Fasm and NasmX, just unzip and programming.


P.S. a) Why is so good the intensive use of macros? b) MenuetOS, KolibriOS, Fasm
Title: Re: joke
Post by: aw27 on February 15, 2018, 10:36:57 PM
Except little exercises, nobody makes full blown assembly language applications these days.
But FASM has been intensively used in important developments, like the GMP arbitrary precision library.

I very rarely use FASM or NASM, still I don't have the habit of despising tools that I don't use or understand in full, like others do.  ::)

Quote
Masm is very good, the pitty is that there's no full package for 64 bits programming
For me, Masm is not that good, but is the closest to the baremetal you can go. And for 64-bit, neither HLL constructs nor pseudo-instructions at all! In addition, no support and bugs are never fixed.
Title: Re: joke
Post by: avcaballero on February 15, 2018, 10:55:14 PM
When I say masm you can also understand masm, uasm, jwasm or anything related. Particularly what I miss is a package ready to go, unzip and programming (without external needs)
Title: Re: joke
Post by: jj2007 on February 15, 2018, 11:25:44 PM
Quote from: caballero on February 15, 2018, 10:26:15 PMP.S. a) Why is so good the intensive use of macros? b) MenuetOS, KolibriOS, Fasm

Because writing print str$(eax) is so much shorter (and much less error-prone) than doing it the "bare metal way".

Of course, those who create the macros must know the "bare metal" very well.

Quote from: caballero on February 15, 2018, 10:55:14 PM
When I say masm you can also understand masm, uasm, jwasm or anything related. Particularly what I miss is a package ready to go, unzip and programming (without external needs)

We have that package already, it's called Masm32 SDK. Of course, if there was any real advantage other than addressing gigabytes of memory, then Masm64 SDK would be nice. But there is no real advantage 8)
Title: Re: joke
Post by: aw27 on February 16, 2018, 12:07:12 AM
Quote
Because writing print str$(eax) is so much shorter (and much less error-prone) than doing it the "bare metal way".
What I find strange in here is the devotion and commitment of some people to transform assembly language into a high-level language. Each one has its proper well established terrain.
I don't find any usefulness into print str$(eax) and Masm Basic executables are extremely oversized, much bigger than in C language, even for a simple Hello World program.
Title: Re: joke
Post by: jj2007 on February 16, 2018, 12:11:31 AM
Quote from: aw27 on February 16, 2018, 12:07:12 AMMasmBasic executables are extremely oversized, much bigger than in C language, even for a simple Hello World program.

Yeah, I feel really ashamed about the 20k overhead :icon_redface:
Title: Re: joke
Post by: aw27 on February 16, 2018, 12:25:02 AM
Quote from: jj2007 on February 16, 2018, 12:11:31 AM
Yeah, I feel really ashamed about the 20k overhead :icon_redface:
I wondered a few times what a hell do you put in there to make it grow to over 40k in a simple application that does almost nothing.
Anyway, the important thing is that you are happy.  :t
Title: Re: joke
Post by: avcaballero on February 16, 2018, 12:53:05 AM
A "problem" on using many macros is that each time you use it, the macro unrolls increasing the size, an advantage on using it is that the code increases in speed.
Title: Re: joke
Post by: jj2007 on February 16, 2018, 12:57:21 AM
Quote from: aw27 on February 16, 2018, 12:25:02 AMI wondered a few times what a hell do you put in there to make it grow to over 40k in a simple application that does almost nothing.

Yes, I am also deeply worried :(

For example, this one really does almost nothing:

include \masm32\MasmBasic\MasmBasic.inc         ; download (http://masm32.com/board/index.php?topic=94.0)
  Init 
  GetFiles *.asm                        ; put some files into the Files$() array
  SortFiles                             ; latest first
  For_ ebx=0 To Min(4, eax-1)           ; don't print them all
       PrintLine Str$(GfSize(ebx)), Tb$, GfDate$(ebx), Spc2$, GfTime$(ebx), Tb$, Files$(ebx)
  Next
  Inkey "Hello World, it is now ", fTime$(0), " on ", fDate$(0)
EndOfCode


2228    15.02.2018  14:50:33    SimpleEditor.asm
154     15.02.2018  10:28:08    NewMasm32.asm
80702   15.02.2018  10:21:01    MbGui.asm
80702   15.02.2018  10:21:01    MbGuiTmp.asm
43426   15.02.2018  10:00:07    GuiTableControl.asm
Hello World, it is now 14:55:51 on 15.02.2018


A whopping 27,136 bytes! My only consolation is that I am still a factor 500 away from a QT Hello World... but I am pretty sure it could be done with FASM macros in less lines and 1,536 bytes exe size 8)
Title: Re: joke
Post by: aw27 on February 16, 2018, 01:25:52 AM
lol, QT is a great multiplatform framework. Probably is not so big when we consider what it is aimed at. In other words, it is not optimized for Windows, is intended to make programmers feel as if there are no platform differences.
Title: Re: joke
Post by: aw27 on February 16, 2018, 01:38:36 AM
Quote from: caballero on February 16, 2018, 12:53:05 AM
A "problem" on using many macros is that each time you use it, the macro unrolls increasing the size, an advantage on using it is that the code increases in speed.
May not increase in speed when the macro itself calls functions in libraries, as is often the case.
A simple macro like print str$(eax)  is really huge, and all it does is call msvcrt's printf in the end.
Title: Re: joke
Post by: jj2007 on February 16, 2018, 02:33:48 AM
Quote from: aw27 on February 16, 2018, 01:25:52 AM(QT) is not optimized for Windows

You are a genius: Nobody so far has been able to condense the "8 MB for a hello world proggie" problem into six words :t

Quote from: aw27 on February 16, 2018, 01:38:36 AMA simple macro like print str$(eax)  is really huge, and all it does is call msvcrt's printf in the end.

It is not "huge", and it doesn't use the CRT. See \Masm32\m32lib\stdout.asm and \Masm32\m32lib\dwtoa.asm
Title: Re: joke
Post by: aw27 on February 16, 2018, 03:34:16 AM
Quote from: jj2007 on February 16, 2018, 02:33:48 AM
You are a genius: Nobody so far has been able to condense the "8 MB for a hello world proggie" problem into six words :t
After we compress it with kkrunchy 0.23 alpha, like your RichAsm.exe, it may not be that far apart.   :biggrin:
No pun intended, it is legitimated to be concerned with size.  ;)
PS: No, I am not going to unpack RichAsm.exe to know the real size, you can sleep in peace.
Title: Re: joke
Post by: HSE on February 16, 2018, 04:40:39 AM
Hi Atellier!
Quote from: aw27 on February 16, 2018, 03:34:16 AM
Quote from: jj2007 on February 16, 2018, 02:33:48 AM
You are a genius: Nobody so far has been able to condense the "8 MB for a hello world proggie" problem into six words :t
After we compress it with kkrunchy 0.23 alpha, like your RichAsm.exe, it may not be that far apart.   :biggrin:

Here "condense" means "to reduce a book, speech, statement, or the like, to a shorter form" (a problem in this case), not "to make more dense or compact" (a binary in this case)

:t
Title: Re: joke
Post by: Mikl__ on February 16, 2018, 09:55:23 AM
I'm saddened that my joke in FASM became the reason for the holywar
Title: Re: joke
Post by: jj2007 on February 16, 2018, 11:59:09 AM
Hi Mikl! Sorry for that, but don't worry, it's not holy war. José and I are just teasing each other a little bit :icon_mrgreen:
Title: Re: joke
Post by: aw27 on February 16, 2018, 04:01:54 PM
Quote from: jj2007 on February 16, 2018, 11:59:09 AM
Hi Mikl! Sorry for that, but don't worry, it's not holy war. José and I are just teasing each other a little bit :icon_mrgreen:
In other words, we are just exchanging our points of view in a set of matters we only marginally agree.  :P
Title: Re: joke
Post by: jj2007 on February 16, 2018, 07:08:20 PM
Back on topic (joke): Native Compilation – Why JIT when you can CodeGen! (https://blogs.msdn.microsoft.com/alphageek/2016/10/13/native-compilation-why-jit-when-you-can-codegen/)

Micros**t has decided that JIT compiling for .NOT is mega-out, and that it would be somehow, ehm, more efficient to produce executables that are optimised for Windows. Isn't that cute?  ;)
Title: Re: joke
Post by: aw27 on February 16, 2018, 07:45:23 PM
Quote from: HSE on February 16, 2018, 04:40:39 AM
Here "condense" means "to reduce a book, speech, statement, or the like, to a shorter form" (a problem in this case), not "to make more dense or compact" (a binary in this case)
Hi HSE,
Thank you. I thought it was a wordplay meant to divert the subject but I sticked on it.
Title: Re: joke
Post by: hutch-- on February 16, 2018, 10:49:54 PM
I have a straight forward view on macros, its driven by sheer laziness and the lack of interest in having to type the same old stuff over and over again. Then there is the functional clarity when hacking together heaps of high level code, if the code is just shoveling API calls together, why waste the effort doing manual calls to long complicated and messy API functions when you can do it with a macro that means you don't have to think all that hard on using it. Save your brain, creativity and effort for something that matters, FAST code where you will see the difference or small code if you are burdened with that problem.  :P
Title: Re: joke
Post by: avcaballero on February 16, 2018, 10:59:08 PM
Doing subroutines for repeated codes is the right thing to do. The question is: use macros or procedures. Or at what level to use each other. Most of the time I guess it's a matter of taste.
Title: Re: joke
Post by: aw27 on February 17, 2018, 02:41:48 AM
Quote from: hutch-- on February 16, 2018, 10:49:54 PM
I have a straight forward view on macros, its driven by sheer laziness and the lack of interest in having to type the same old stuff over and over again.
In addition there are things that can only be done with macros (I had one example, defining try-except blocks).
However, macros are difficult to debug, increase the chance of subtle bugs and don't produce optimized code.
Moreover, newbies tend to use them without having a clue of what is behind - some even believe that they are part of the assembler.

It is true macros can save a lot of time and that is good, the abuse of macros is bad (in my opinion).

Title: Re: joke
Post by: jj2007 on February 17, 2018, 03:38:27 AM
Quote from: aw27 on February 17, 2018, 02:41:48 AMmacros are difficult to debug

True. On the other hand, they can make debugging a lot easier; I just had a bug that happened when reading a file into a buffer, of which there are a dozen occurrences. I found it by modifying FileRead$() (http://www.webalice.it/jj2006/MasmBasicQuickReference.htm#Mb1075) so that it told me in which line of the code the error occurred. Btw an absolutely weird error: a call to FindClose trashed the local buffer with the filename (and yes, it was big enough).

Quoteincrease the chance of subtle bugs

Hand-crafted code is much more error-prone.

Quotedon't produce optimized code

That depends entirely on the macro's design.

Quotenewbies tend to use them without having a clue of what is behind

True, but using print or deb (http://www.webalice.it/jj2006/MasmBasicQuickReference.htm#Mb1019) allows newbies to concentrate on the more basic stuff, like understanding what opcodes really do. You won't produce better code just because you studied the WriteFile disassembly... tools are there to be used, you don't need to understand the internals and theory of a hammer to drive a nail into the wall 8)
Title: Re: joke
Post by: LordAdef on February 17, 2018, 12:08:01 PM
I was actually having fun!

sorry, resume  :eusa_dance:
Title: Re: joke
Post by: aw27 on February 17, 2018, 05:23:05 PM

Quote
That depends entirely on the macro's design.

I noticed, your print macro runs through hundreds of lines of macro code, then calls 2 masm32 lib files, to produce a glorious printf or writefile in the end that I could do in a couple of asm instructions.
Is this the reason for your huge executables?

Quote
Quotenewbies tend to use them without having a clue of what is behind
True, but using print or deb (http://www.webalice.it/jj2006/MasmBasicQuickReference.htm#Mb1019) allows newbies to concentrate on the more basic stuff, like understanding what opcodes really do. You won't produce better code just because you studied the WriteFile disassembly... tools are there to be used,

Nobody studies the WriteFile disassembly, I never did.

Quote
you don't need to understand the internals and theory of a hammer to drive a nail into the wall 8)

ASM is not for people that does not care about the details.

Title: Re: joke
Post by: daydreamer on February 17, 2018, 07:22:30 PM
Quote from: hutch-- on February 16, 2018, 10:49:54 PM
I have a straight forward view on macros, its driven by sheer laziness and the lack of interest in having to type the same old stuff over and over again. Then there is the functional clarity when hacking together heaps of high level code, if the code is just shoveling API calls together, why waste the effort doing manual calls to long complicated and messy API functions when you can do it with a macro that means you don't have to think all that hard on using it. Save your brain, creativity and effort for something that matters, FAST code where you will see the difference or small code if you are burdened with that problem.  :P
the coolest thing you can do with masm is to reprogram its normal mnemonics todo something else
or you can push and pop XMM regs and make it possible to emulate fluxus or Another language
I did that because I saw a tutorial on recursive 3d code that created a 3dtree, containing tree trunk/bigbranches/smallbranches inside xmm regs, that goes up each step it turns and scales down and moves vertices
fluxus is the language used for create animation inside windows mediaplayer,but it also can do some 3d procedural meshes
Title: Re: joke
Post by: jj2007 on February 17, 2018, 07:28:31 PM
Quote from: aw27 on February 17, 2018, 05:23:05 PMI noticed, your print macro runs through hundreds of lines of macro code, then calls 2 masm32 lib files, to produce a glorious printf or writefile in the end that I could do in a couple of asm instructions.
Is this the reason for your huge executables?

Well, "huge" is what I would reserve for the 8MB Hello World proggie that QT generates. MasmBasic has currently a 26 kB overhead, which is certainly deplorable for the "I made it with 512 bytes" fans, but inside these 26 kB is the infrastructure for generating very efficient code. Here is a trivial example, printing the current time:include \masm32\MasmBasic\MasmBasic.inc ; download
uselib DateTime

.data?
sysdt0 FILETIME <>
sysdt FILETIME <>
buffer db 100 dup(?)

  Init

; ---- MasmBasic: ---
  MbTime_s:

  PrintLine "Hello World, it is now ", fTime$() ; print formatted time

  MbTime_endp:

; ---- Masm32 plus Greg Lyon's library: ---

  M32Time_s:

  print "Hello World, it is now "
  invoke GetSystemTimeAsFileTime, addr sysdt0
  invoke FileTimeToLocalFileTime, addr sysdt0, addr sysdt
  invoke DateTimeToTimeString, addr sysdt, addr buffer
  print offset buffer, 13, 10

  M32Time_endp:

  CodeSize MbTime
  CodeSize M32Time

  Inkey
EndOfCode


Output:Hello World, it is now 09:55:55
Hello World, it is now 09:55:55
25      bytes for MbTime
70      bytes for M32Time


As you can see, MasmBasic needs one line instead of five, and produces much shorter code.

You mentioned that RichMasm (http://masm32.com/board/index.php?topic=5314.0) is kkrunched: yes, that is necessary to respect the forum's 512 kB limit for attachments; the "true" size is 145,408 - which is quite a bit, of course. But it is small when taking into consideration the over 20k lines of code. The 26k overhead may be "huge", but "exe size per line of code" is very small. For comparison, Notepad needs 179,712 bytes for performing very, very rudimentary tasks; WordPad needs 4.47 MB. Notepad++ arrives at 2.3 MB, but has neither bookmarks nor a decent search function; unusable for my taste.
Title: Re: joke
Post by: hutch-- on February 17, 2018, 08:59:53 PM
 :biggrin:

MASM32 starts with a 1k window, I doubt that absolute size matters these days and if I have a choice it would be speed over size as the file size is small enough anyway. It is always the case that you never write more than you need or less that what makes the code work well, some tolerance makes sense when it comes to the clarity of code but going down the slippery slope of "easy" generates the trash we often see today, big, slow, sloppy and buggy.

The MASM32 SDK was designed from scratch to produce small efficient code but it was also designed to be usable so it has long used macros to automate much of the unimportant stuff so that you have the time to write the serious stuff, mnemonic algorithms that deliver the performance where needed. The MASM32 "print" was not designed to be clever or sophisticated, it was designed to take the hack work out of doing ordinary things.
Title: Re: joke
Post by: aw27 on February 17, 2018, 09:00:28 PM
Quote
As you can see, MasmBasic needs one line instead of five, and produces much shorter code.
The simple fact of adding Printline adds 27KB of code and you say it produces much shorter code.  :badgrin:

Quote
Notepad++ arrives at 2.3 MB, but has neither bookmarks nor a decent search function
Notepad++ has bookmarks and the best search function we can find in text editors.
RichMasm is amazing in the eyes of its father, I can understand the sentimental part. I find it a confusing mess, though.
Title: Re: joke
Post by: aw27 on February 17, 2018, 09:05:29 PM
Quote from: hutch-- on February 17, 2018, 08:59:53 PM
:biggrin:

MASM32 starts with a 1k window, I doubt that absolute size matters these days and if I have a choice it would be speed over size as the file size is small enough anyway. It is always the case that you never write more than you need or less that what makes the code work well, some tolerance makes sense when it comes to the clarity of code but going down the slippery slope of "easy" generates the trash we often see today, big, slow, sloppy and buggy.

The MASM32 SDK was designed from scratch to produce small efficient code but it was also designed to be usable so it has long used macros to automate much of the unimportant stuff so that you have the time to write the serious stuff, mnemonic algorithms that deliver the performance where needed. The MASM32 "print" was not designed to be clever or sophisticated, it was designed to take the hack work out of doing ordinary things.

I am not talking about the Masm32 SDK, it has many useful features and in general it produces reasonably sized code.  :t
Print, Printline are from the Masmbasic I believe.
Title: Re: joke
Post by: jj2007 on February 17, 2018, 09:24:43 PM
Quote from: aw27 on February 17, 2018, 09:00:28 PMNotepad++ has bookmarks and the best search function we can find in text editors.

Its "bookmarks" are a joke, and its search function has no "matches" listbox... these are real bookmarks:
(http://www.webalice.it/jj2006/pics/RmGuide.jpg)
Title: Re: joke
Post by: aw27 on February 17, 2018, 09:42:16 PM
JJ,

Notepad++ has matches listbox even across all the opened documents!
It does not have bookmark list feature but there is a plugin that can do it, if we bother with that - I don't.

Notepad++ is not an RTF editor (who needs RTF for programming? Nobody had that idea before!), but it is a great programmer's editor. Since you have no idea, what Notepad++ is all about have a look here:
https://notepad-plus-plus.org/assets/images/docMap.png

It even has line numbers, imagine! Something absolutely useless in your opinion, of course.

Ah, and if you don't like the default colors (you have a great color appetite, as seen by your editor) there are lots of themes you can download for Notepad++. You can also change colors one by one if you are patient.
Title: Re: joke
Post by: hutch-- on February 17, 2018, 09:52:31 PM
I see editors as something like choosing girlfriends, I like slim racy blondes but some like buxom brunettes and everything else inbetween. If an editor does the job for you, that's all it can do, the rest is personal genius, hard work and sometimes, good luck.
Title: Re: joke
Post by: daydreamer on February 17, 2018, 11:20:03 PM
Quote from: hutch-- on February 17, 2018, 09:52:31 PM
I see editors as something like choosing girlfriends, I like slim racy blondes but some like buxom brunettes and everything else inbetween. If an editor does the job for you, that's all it can do, the rest is personal genius, hard work and sometimes, good luck.
I Imagine qeditor is that blonde, the dot over I would be have that blonde as qeditors .Icon :badgrin:

some of us enjoy to code fast code to the extreme and/or small code
Title: Re: joke
Post by: aw27 on February 18, 2018, 12:19:55 AM
Quote from: hutch-- on February 17, 2018, 09:52:31 PM
I see editors as something like choosing girlfriends, I like slim racy blondes but some like buxom brunettes and everything else inbetween. If an editor does the job for you, that's all it can do, the rest is personal genius, hard work and sometimes, good luck.
I agree, I have used many editors since ms-dos Edlin  (still included in Windows 10 32-bit) :icon_rolleyes:.
However, I believe RichMasm is more word processor than editor, like those girls that are not.
Title: Re: joke
Post by: aw27 on February 18, 2018, 12:27:07 AM
Quote from: jj2007 on February 17, 2018, 07:28:31 PM
You mentioned that RichMasm (http://masm32.com/board/index.php?topic=5314.0) is kkrunched: yes, that is necessary to respect the forum's 512 kB limit for attachments; the "true" size is 145,408
So, you use a compressor on your application, then you zip it all and you are telling me that you obtain a smaller archive in the end. In other words, kkrunched+zip is smaller than zip alone!
Title: Re: joke
Post by: jj2007 on February 18, 2018, 05:26:05 AM
Quote from: aw27 on February 18, 2018, 12:19:55 AMHowever, I believe RichMasm is more word processor than editor

It is both, certainly. I do all my assembly plus my C and FreeBasic stuff with RichMasm. Real permanent bookmarks, a search listbox that is much better than the one of NotePad++ (yes, there is one, you are right), plus hyperlinks, etc - there are quite a number of tailored features that you don't miss because you never had them 8)


Quote from: aw27 on February 18, 2018, 12:27:07 AMIn other words, kkrunched+zip is smaller than zip alone!

Of course! For RichMasm, it's 72591 vs 91378 bytes, over 20% less. Launching the kkrunched Richmasm is only a few milliseconds slower, you can't even notice the difference.
Title: Re: joke
Post by: aw27 on February 18, 2018, 06:01:53 AM
Quote from: jj2007 on February 18, 2018, 05:26:05 AM
- there are quite a number of tailored features that you don't miss because you never had them 8)
This really applies to you!  :t

Quote
Of course; for RichMasm, it's 72591 vs 91378 bytes, over 20% less. Launching the kkrunched Richmasm is only a few milliseconds slower, you can't even notice the difference.
I will not discuss your values, they simply mean that kkrunchy is not a good compressor. Because zip still has a lot of compression to do on it. A good compressor may even make the zip increase in size not reduce or just reduce slightly. There are much better free compressors. Have you tried mpress?
Title: Re: joke
Post by: jj2007 on February 18, 2018, 06:11:55 AM
Quote from: aw27 on February 18, 2018, 06:01:53 AMI will not discuss your values, they simply mean that kkrunchy is not a good compressor. Because zip still has compression to do on it. A good compressor would make the zip increase in size not reduce. There are much better free compressors. Have you tried mpress?

Yes, mpress reduces RichMasm.exe from 145408 to 81408 bytes, using the "very slow, better result" -s option.
For comparison, kkrunchy stops only at 74752 bytes. And 7-zip condenses it 3% more.

Btw the -20% applied to the comparison "kkrunched+zip is smaller than zip alone" (your wording).
Title: Re: joke
Post by: LordAdef on February 18, 2018, 07:24:56 AM
in RichMasm´s defense:

(https://www.dropbox.com/s/k5vac1oxlswwkqs/RM.jpg?raw=1)


I like the freedom to colour things on my own way, and mainly in places I´m currently working on.

RichMasm has many great features. Having said that, Many of them are hidden and I believe Jochen should spend some of his time improving RM´s GUI. But I know his main focus is actually masmBasic. if he wanted to work on RichMasm GUI, it would certainly become a much more used editor than it is today. Regardless of that, it´s what I use on a daily basis.

ps: JJ, please send me the check to the same bank account  :greenclp:
Title: Re: joke
Post by: hutch-- on February 18, 2018, 10:28:36 AM
 :biggrin:

Now consistent with my previous assertion, if your taste in Editor's does not fit into the Blonde - Brunette distinction, walk on the wild side, live dangerously, try out a redhead. Its like a kid playing with matches, its risky but fun.  :P
Title: Re: joke
Post by: jj2007 on February 18, 2018, 02:09:20 PM
Quote from: LordAdef on February 18, 2018, 07:24:56 AMps: JJ, please send me the check to the same bank account  :greenclp:

Back on topic :t
Title: Re: joke
Post by: aw27 on February 18, 2018, 05:10:22 PM
I like the feature which allows us to get back to work after having some childish fun.  :greenclp:
Unfortunately sometimes I can not find the main menu.  :( . Other times I can not maximize RichMasm to increase my experience because the main menu covers the Maximize button.  :(

(http://www.atelierweb.com/b/richmasm.png)
Title: Re: joke
Post by: jj2007 on February 18, 2018, 08:48:18 PM
Quote from: aw27 on February 18, 2018, 05:10:22 PM
I like the feature which allows us to get back to work after having some childish fun.  :greenclp:
Unfortunately sometimes I can not find the main menu.  :( . Other times I can not maximize RichMasm to increase my experience because the main menu covers the Maximize button.  :(

(http://www.atelierweb.com/b/richmasm.png)

Thanks for informing me about the "covers maximise button" thing. Strange ::)

It doesn't happen on Win7-64, but you are right, Win10 shows this behaviour. Of course, you could simply enlarge the window a little bit, but you are in bug chasing mood, right?  :P

I see with pleasure that you found RichMasm's undocumented "embed image" function :t

I only use it for serious work, though:

(http://www.webalice.it/jj2006/pics/RichMasmEmbeddedImage.gif)

Btw the text in the rightmost column, like navigation, tcDefMsg, Csv2Tab, ... are bookmarks. Real bookmarks, not toy bookmarks ;)
Title: Re: joke
Post by: avcaballero on February 18, 2018, 09:06:30 PM
> walk on the wild side, live dangerously, try out a redhead
he he. This reminds me to a Polish song (https://youtu.be/tgw1yEcWpTU) about a "ruda" (redhair) girl
Title: Re: joke
Post by: aw27 on February 18, 2018, 09:38:57 PM
Quote
It doesn't happen on Win7-64,
It does happen on my Win7-64.

Quote
Real bookmarks, not toy bookmarks
These are not bookmarks, you can call them Task List shortcuts as Visual Studio does.
However, Notepad++ has plugins for that as well and for hundreds of other things. 
http://docs.notepad-plus-plus.org/index.php?title=Plugin_Central
Title: Re: joke
Post by: jj2007 on February 18, 2018, 10:27:11 PM
Quote from: aw27 on February 18, 2018, 09:38:57 PM
Quote
Real bookmarks, not toy bookmarks
These are not bookmarks, you can call them Task List shortcuts as Visual Studio does.

Nonsense. RichMasm bookmarks are like browser bookmarks: Select a text in your code, e.g. "Cleanup MACRO", hit Ctrl D (as in most browsers), and voilà, Cleanup MACRO appears in the rightmost column. From then on, wherever you are in your code, when clicking once on Cleanup MACRO you jump immediately there (as in most browsers). And RichMasm will definitely not try to mimic Visual Crap 8)

QuoteIt is practically impossible to teach good programming to students that have had a prior exposure to Visual Crap: as potential programmers they are mentally mutilated beyond hope of regeneration.
Title: Re: joke
Post by: aw27 on February 18, 2018, 10:45:02 PM
Nope JJ, you have a tendency to always miss the target.
It is not only VS, it is followed in Eclipse, Delphi, Keil ARM and all IDEs I can recall.
In addition, the great VS engine is used in other compilers like the Atmel AVR Studio, which I used recently to make some AVR asm programming.
Title: Re: joke
Post by: daydreamer on February 18, 2018, 11:24:54 PM
Quote from: hutch-- on February 18, 2018, 10:28:36 AM
:biggrin:

Now consistent with my previous assertion, if your taste in Editor's does not fit into the Blonde - Brunette distinction, walk on the wild side, live dangerously, try out a redhead. Its like a kid playing with matches, its risky but fun.  :P
like a hexeditor?
actually there are a completely graphical interface for make shaders for nonprogrammers in older poser its all kind of channels,transparency,bumpmap, etc and you can produce Everything from photorealistic human skin to Clouds,metals like copper and its dropdown menu for mathematical functions combined with you connect several of these channels and math function with lines, with help of drag and drop
also other 3d programs have graphical material editor for shaders, some just shows what it generates without showing math Formulas that generate it