johnfound
I'm an assembly programmer, but I've always wanted a CAD tool that combines the workflow of OpenSCAD with the ability to export true, exact geometry to STEP files, rather than polygonal meshes.
I found an abandoned project called bcad, which tried to use OpenCASCADE (OCCT) with OpenSCAD syntax. I decided to revive it. Since I don't know Python or 3D graphics development, I let AI do almost 100% of the coding. I used the terminal version of opencode with the Big Pickle agent, and it worked surprisingly well.
The GUI is built on Dear ImGUI. The app is fully portable (no install, just unpack and run) for both Linux and Windows.
Source code (Fossil): https://asm32.info/fossil/bcad/
AsmBB v3.0 has been released (web in asm)
AsmBB v2.9 has been released. With new beautiful theme and emoji 111
AsmBB v2.8 – better DDoS behavior,XSS prevention and new skin
AsmBB v2.7 supports fully encrypted database for better security
Fresh IDE v2.7.0 has been released
Screencast of one hour assembly programming
AsmBB v2.6 has been officially released
AsmBB v2.5 released: BBCode support, internationalization and performance boost
AsmBB v2.4 released: File attachments, PMs on steroids and performance boost
If the terminal browsers was able to render HTML properly – design experiment
Source code guide: Hash tables and command dispatching in AsmBB explained
AsmBB 2.3 has been released: bugs-- accessibitily++
AsmBB v2.2 has been released
The same is about the rebase - the difference is that while git keeps the history "as the developers want it to be", fossil keeps it "as it actually happened".
AsmBB v2.0 released. The speed x2.0, the RAM /2.0
Tutorial: How to Install AsmBB on VPS with Nginx and Systemd
AsmBB v1.7 has been released
Fresh IDE v2.6.0 has been released
The big problem with using "gcc -S" is that as a result you have a HLL program, simply written as an assembly language listing.
The humans write assembly code very different than HLL. Even translated to asm notation, this difference will persist. Asm programmer will choose different algorithms, different data structures, different architecture of the program.
Actually this is why in the real world tasks, regardless of the great compiler quality, the assembly programmer will always write faster program than HLL programmer.
Another effect is that in most cases, deeply optimized asm program is still more readable and maintainable than deeply optimized HLL program.
In this regard, some early optimizations in assembly programming are acceptable and even good for the code quality.
apples and spice = nice
[1] https://en.wiktionary.org/wiki/she%27ll_be_applesAt first, FLTK, does not look much better than the old Windows widgets.
In addition, I strongly want Fresh IDE to be portable to MenuetOS, KolibriOS and other assembly written OSes. As a rule, they all are written with FASM and a good IDE that can be ported for days (not for years) can be great tool for the OS developers.
That is why I started the development of special GUI toolkit.
Unfortunately it will add another 50..100kB to the code, but the portability has price. :(
For example, I don't know Lisp, so for me it is much harder to read/maintain Lisp project than assembly language project.
Because allow the programmer to not think (and even know) about some things and leaving them to the layer/libraries.
But every layer adds also a level of obscurity. The interaction between multiply layers is even more undefined and random.
It is OK while everything goes as expected. But when there are problems, the obscurity can make the debugging a hell.
In addition, the behavior of the bugs hidden deep in the layers (or in the way the layers interacts in between and with the application) can be really weird.
That is why, IMHO, the programmer should keep the abstraction layers to the minimal count that allows solving programming tasks with minimal effort, counting not only the coding time, but debugging and supporting time as well.
In my practice, I decided that using FASM with Fresh IDE and set of assembly libraries gives me the needed quality of the code.
The code reliability of assembly programs is better because programming algorithms in low level, the programmer controls every aspect of the execution. Notice, that excessive use of code generation macros will cancel this advantage.
Another advantage is that the bugs in assembly programs usually cause immediate crash of the program and this making the fixing easy.
Defer crashes and strange/random/undefined behavior of bugs in assembly programs is rare. IMO, this is because of reduced count of abstraction layers.
But some documentation is available in the "Documentation" section of the web site and inside the "Help|Help file" (Ctrl+F1) menu in the IDE itself.
There are small example and template projects as well.
Also the FASM forum is a good place to ask: https://board.flatassembler.net
On the other hand, definition of complex data structures is much easier with powerful macro engine.