News:

Download Pelles C here: http://www.pellesc.se

Main Menu

Recent posts

#71
Work in progress / Code Density Comparison of two...
Last post by PabloMack - July 23, 2026, 04:35:45 AM
I just rewrote an assembly function for the Pelles C assembler that compares two unsigned 24-bit integers. The function returns 1 for greater, 0 for equal and -1 for less than. I thought some of you might find it interesting. The x64 version was 45 bytes in size. I wrote a ϕEngine version and it is 15 bytes, only 1/3 the size. But this should not be surprising since ϕEngine can process 3-byte integers natively. Here is the source code:

 ⅅCPU Eng32
ut_cmp‡: ⅅPBeg
    ld     ⓊQ0,ut:(Ⓡ0)
    cmp    ⓊQ0,ut:(Ⓡ1)
    s.A*   Ⓒ0,ⓊQ0
    s.B*   Ⓒ0,ⓈQ0
    rts
 ⅅPEnd

Notice that the processing has to be done in a 32-bit register (ⓊQ0) which also is used to hold the return value. The two source values are extended during the loads so there are no separate conversion routines. The second load is part of the compare instruction. Most of the code is for producing a return value from the flags that are set by the compare. Since this operation can be done inline cheaper than even just the setup for a function call, the function would actually never be needed in ϕPPL or ϕAsm.
#72
General discussion / Re: Pelles C and Windows Defen...
Last post by John Z - July 22, 2026, 11:20:48 PM
Yes, Pelles C is very flexible that way.

However the Windows 'Protections' are not limited to programs installed just into the Windows preferred directories.  When enabled they are system wide.  If one maxes out the protections probably the only place to get programs is the M$S windows store....

John Z
#73
Work in progress / Re: High Performance 64-bit CP...
Last post by PabloMack - July 22, 2026, 08:43:36 PM
Quote from: John Z on March 10, 2024, 04:32:49 PMI applaud your ambition!  Other than my experience with Xilinx FPGA, many years ago, it is way way out of my zone.  But I look forward to trying it someday.

John Z

Are you limiting your possible collaborators by requiring LinkedIn? I stayed away from it, and especially after it became an arm of Micro$oft...

I share your sentiment about LinkedIn and MicroSoft. 😁
#74
Work in progress / Update on ϕEngine
Last post by PabloMack - July 22, 2026, 08:37:34 PM
I just read my post of April 16, 2020. Since then I have made many modifications and now the architecture defines both a 32-bit sub-architecture (called ϕEng32) with 32-bit address spaces and a 64-bit sub-architecture (called ϕEng64) with 64-bit address spaces. The two sub-architectures share the same instruction set. The reason why ϕEngine is able to do that when most others can't (including x86, ARM and RISC-V) is because all address computations are done in special Address Registers and not integer registers. That frees the integer registers to support all types and sizes for both sub-architectures. ϕEngine is more orthogonal than x86 in that you can directly use all sub-parts of all registers as registers themselves. x86 can only do this to a very limited extent such as al and ah being the lower and upper halves of ax. But you can't use R8~R15 that way. And you can't even directly reach the 3rd or 4th order bytes in eax or even the upper half of eax as a 16-bit register. But you have direct access to all of them in ϕEngine. Not only that, you can reach all registers as 1, 2, 3, 4, 5, 6, 7 or 8-byte integers directly. One thing that makes ϕEngine far easier to program is that data size extension it built into the loads and stores so you don't need separate conversion instructions. They are built into the basic operations.

The focus of ϕEngine has changed from performance to memory efficiency for both code and data. ϕEngine processors consistently have denser code and need less memory to perform the same functions as other processors. All of the SW tools are written in C. I have once again begun to port code from WATCOM to Pelles. I waited a long time for WATCOM to support AMD64 and have decided that Pelles is the way to go.

I just finished rewriting a function I use a lot in the tool chain to zero-extend any integer to one of a larger size. After writing it in Pelles C assembly I wanted to see how much easier it was to write in ϕEngine assembly and compare the code densities. The AMD64 version is 43 bytes and the ϕEngine version did it in 27 bytes.

I assembled the x64 version to produce an assembly listing. It has a lot of space in it to make the columns aligned. I saved this same file into the ϕText format that I use for storing all ϕ System documentation and source code. The Pelles C listing takes up 3053 bytes while the ϕText encoded file occupies 1361 bytes. That is less that 45% the storage requirements.
#75
General discussion / Re: Pelles C and Windows Defen...
Last post by Vortex - July 22, 2026, 03:27:16 PM
Timo is right. For example, Pelles C can be installed on the root partition, C:\PellesC
#76
General discussion / Re: Pelles C and Windows Defen...
Last post by TimoVJL - July 22, 2026, 11:33:12 AM
Add-Ins are useless, if they need certificates.
Better to install Pelles C outside Windows Program files folder for a good reason.
#77
General discussion / Re: Pelles C and Windows Defen...
Last post by John Z - July 22, 2026, 07:46:46 AM
Hi Robert,

No, this is unrelated to Pablo's resolved issue.

These two dll's are not needed for Pelles C. They are add-in programs, so the fact that they have been blocked just removes the Add-in.  No Pelles C functions are affected.

It is interesting that they were blocked though as I've done a new install without issue.  Perhaps you've set security higher. There is a setting as I recall for unsigned program blockage or something like that perhaps unknown ... Could be Internet properties or windows, I'll see if I can find it.


For most open source or free programs like Pelles C, it is costly to provide signing.  Meanwhile Pelles C will be fine.

John Z

Update: Under Windows Security,  App & Browser control, it is probably Smart App Control.

Image attached if on try with OFF if you'd like to.... if that does not do it check out the other two categories on the same page
#78
General discussion / Re: Pelles C and Windows Defen...
Last post by Robert - July 22, 2026, 05:07:20 AM
I just did a fresh install of 14.5 on a fresh install of Windows 11 25H2 to Pelles default install folder.

When I started the IDE, notifications from Windows Security popped up. Please see attached images for details.

The IDE opened, as usual, with the Build Libraries prompt.

Perhaps this is related to the problem PabloMack is having.

https://forum.pellesc.de/index.php?topic=11821.msg42461#msg42461
#79
Beginner questions / Re: Just installed Pelles C an...
Last post by Vortex - July 21, 2026, 04:12:43 PM
Hi Pablo,

There is no any environment variable named ROOT on Windows.
#80
Beginner questions / Re: Just installed Pelles C an...
Last post by PabloMack - July 21, 2026, 02:47:42 PM
When I type echo %ROOT% I get:
%ROOT%

It did run when typing the whole thing "poide.exe".