Page 2 of 4

Re: Announcement: IdealOS

Posted: Wed Sep 18, 2024 8:31 pm
by kerravon
Alexey1994 wrote: Thu Sep 12, 2024 9:05 am
iansjack wrote: Wed Sep 11, 2024 11:29 pm The MIT licence requires exactly what you scorn. You are demanding of others something that you are too lazy to do.
Ok, the license has been changed.
Wow - I'm impressed. Released to the public domain.
But remember that it was you who forced me to take this action. You are not a very good person.
He seems pretty good to me if we now have more code in the public domain!

Re: Announcement: IdealOS

Posted: Thu Sep 19, 2024 3:11 am
by iansjack
None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).

I make no claims to be a good person - it's irrelevant in this context. :wink:

Re: Announcement: IdealOS

Posted: Thu Sep 19, 2024 4:01 am
by kerravon
iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Sure. Alexei - there are public domain assemblers available. That's what I use for PDOS/86 and PDOS/386. The 16-bit one (as86) is sufficiently masm-compatible for my purposes and the 32-bit one (pdas) is sufficiently gas-compatible for my purposes. Both are included on the PDOS/386 distribution as source and win32 executables.

Re: Announcement: IdealOS

Posted: Fri Sep 20, 2024 3:53 am
by Alexey1994
iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Nasm is needed for assembly. Is it not possible for them to collect unlicensed software?

If so, then I am able to write an assembler https://github.com/Alexey1994/x86-disas ... me-ov-file Moreover, I began to rewrite a similar language into my own C language.

Those exe files that are in the repository are my own, collected from a C library written by me, but with the compiler of Fabricius Bellard.

Re: Announcement: IdealOS

Posted: Fri Sep 20, 2024 4:00 am
by Alexey1994
kerravon wrote: Thu Sep 19, 2024 4:01 am
iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Sure. Alexei - there are public domain assemblers available. That's what I use for PDOS/86 and PDOS/386. The 16-bit one (as86) is sufficiently masm-compatible for my purposes and the 32-bit one (pdas) is sufficiently gas-compatible for my purposes. Both are included on the PDOS/386 distribution as source and win32 executables.
I have an idea to write intel style assembler like
EAX = 1 => mov EAX, 1
EAX += 1 => add EAX, 1
Do you think this syntax would be useful?

Re: Announcement: IdealOS

Posted: Fri Sep 20, 2024 5:20 am
by kerravon
Alexey1994 wrote: Fri Sep 20, 2024 4:00 am
kerravon wrote: Thu Sep 19, 2024 4:01 am
iansjack wrote: Thu Sep 19, 2024 3:11 am None of this affects the requirement to reproduce the licence for nasm (and possibly other software provided in the repo).
Sure. Alexei - there are public domain assemblers available. That's what I use for PDOS/86 and PDOS/386. The 16-bit one (as86) is sufficiently masm-compatible for my purposes and the 32-bit one (pdas) is sufficiently gas-compatible for my purposes. Both are included on the PDOS/386 distribution as source and win32 executables.
I have an idea to write intel style assembler like
EAX = 1 => mov EAX, 1
EAX += 1 => add EAX, 1
Do you think this syntax would be useful?
I consider that masm sets the standard for assembler syntax.

If you want to write a public domain masm-compatible assembler at least as good as as86 (which has been abandoned other than for bug fixes), I am interested.

Also - I just remembered that as86 also does masm 386 syntax so I have already converted my handwritten assembler to that format.

Note that I code to a common subset of masm for both 86 and 386 that also works under wasm.

So I have 3 assemblers that can assemble my code written in what I consider to be "industry standard x86 assembler". I realize that some dispute that - so please stop sending me hate mail via DM.

BFN. Paul.

Re: Announcement: IdealOS

Posted: Sun Sep 29, 2024 4:23 am
by Alexey1994
So, I got the idea to write my own assembler. This morning I implemented the calculation of link addresses and was pleasantly surprised that I calculate short links better than nasm. Looks like I'm writing the ideal x86 assembler.
better.png

Re: Announcement: IdealOS

Posted: Sun Sep 29, 2024 5:57 am
by iansjack
Although some might argue that 4 misaligned instructions is not an improvement on 1 misaligned instruction.

Re: Announcement: IdealOS

Posted: Tue Oct 01, 2024 9:06 am
by Alexey1994
So now I have a ideal assembler. So far only for bare 8086.
https://github.com/Alexey1994/ideal-@$$

Re: Announcement: IdealOS

Posted: Tue Oct 01, 2024 12:15 pm
by nullplan
Alexey1994 wrote: Tue Oct 01, 2024 9:06 am So now I have a ideal assembler. So far only for bare 8086.
https://github.com/Alexey1994/ideal-@$$
It seems our profanity filter is suffering from the Penistone problem. :lol: I'll try to start a thread in the mod-only forum. In the mean time, all users of that link, please perform the obvious reverse substitution.

Re: Announcement: IdealOS

Posted: Sun Oct 06, 2024 8:38 am
by Alexey1994
So, I tried to write in my assembler myself. The feeling is pleasant, but I found a couple of critical flaws. Of course, I will commit. I found one interesting feature in the unfolding of if inside a loop or another if, namely, an unconditional jmp on the code, which contains the same unconditional jmp, can be done immediately on the second jmp. Assembler can optimize this, you just need to solve the "system of equations". I got interested in such optimization and found out that my beloved TCC can't do it. Nasm especially. I wonder if there are tools that can cut such jmp? I understand that there is gcc, but it's a piece of crap and not a compiler.

Re: Announcement: IdealOS

Posted: Sun Oct 06, 2024 5:03 pm
by thewrongchristian
Alexey1994 wrote: Sun Oct 06, 2024 8:38 am So, I tried to write in my assembler myself. The feeling is pleasant, but I found a couple of critical flaws. Of course, I will commit. I found one interesting feature in the unfolding of if inside a loop or another if, namely, an unconditional jmp on the code, which contains the same unconditional jmp, can be done immediately on the second jmp. Assembler can optimize this, you just need to solve the "system of equations". I got interested in such optimization and found out that my beloved TCC can't do it. Nasm especially. I wonder if there are tools that can cut such jmp? I understand that there is gcc, but it's a piece of crap and not a compiler.
Such optimisations are probably done for good reasons, with empirical evidence as to their effectiveness.

Assemblers generally don't do such optimisations, or undo such optimisations.

Assemblers assemble the code given to them.

TCC is quick because it is simple, and can do simple optimisations only, but won't do more complex optimisations GCC or LLVM is capable of (which is more work and thus slower.)

TCC generated code won't match what GCC or LLVM can generate.

Re: Announcement: IdealOS

Posted: Mon Oct 07, 2024 5:20 am
by Alexey1994
thewrongchristian wrote: Sun Oct 06, 2024 5:03 pm
Alexey1994 wrote: Sun Oct 06, 2024 8:38 am So, I tried to write in my assembler myself. The feeling is pleasant, but I found a couple of critical flaws. Of course, I will commit. I found one interesting feature in the unfolding of if inside a loop or another if, namely, an unconditional jmp on the code, which contains the same unconditional jmp, can be done immediately on the second jmp. Assembler can optimize this, you just need to solve the "system of equations". I got interested in such optimization and found out that my beloved TCC can't do it. Nasm especially. I wonder if there are tools that can cut such jmp? I understand that there is gcc, but it's a piece of crap and not a compiler.
Such optimisations are probably done for good reasons, with empirical evidence as to their effectiveness.

Assemblers generally don't do such optimisations, or undo such optimisations.

Assemblers assemble the code given to them.

TCC is quick because it is simple, and can do simple optimisations only, but won't do more complex optimisations GCC or LLVM is capable of (which is more work and thus slower.)

TCC generated code won't match what GCC or LLVM can generate.
Well, these are obvious things. You seem to justify these tools. Nasm has an option -Ox, which supposedly does not affect optimization. Gcc has an option -fthread-jumps, which does much more than simply replace the address of one jump with another. And you only need to do such optimization always. Because this happens when expanding the if, while, for statements.

Re: Announcement: IdealOS

Posted: Wed Oct 09, 2024 2:09 pm
by Alexey1994
nullplan wrote: Tue Oct 01, 2024 12:15 pm
Alexey1994 wrote: Tue Oct 01, 2024 9:06 am So now I have a ideal assembler. So far only for bare 8086.
https://github.com/Alexey1994/ideal-@$$
It seems our profanity filter is suffering from the Penistone problem. :lol: I'll try to start a thread in the mod-only forum. In the mean time, all users of that link, please perform the obvious reverse substitution.
The repository with assemblers was renamed to https://github.com/Alexey1994/ideal-asm, since search engines did not appreciate my humor

Re: Announcement: IdealOS

Posted: Sun Oct 20, 2024 7:41 am
by Alexey1994
So, I wrote 386 assembler. Conclusion: nasm sucks. There are a lot of bugs even for the old 386.