Aquileo | Recent changes to Project FlexxCpuhttps://sourceforge.net/p/flexxcpu/Recent changes to Project FlexxCpuenSat, 02 Aug 2025 12:11:18 -0000Aquileo | The latest FlexxCpu executable binary contains some problemshttps://sourceforge.net/p/flexxcpu/blog/2025/08/the-latest-flexxcpu-executable-binary-contains-some-problems/<div class="markdown_content"><p>The latest flexxcpu executable binary contains some problems: </p> <p>1) Inside the flexxcpu control interface the size of the window dedicated to the graphics memory is displayed inaccurately at runtime execution<br/> 2) At runtime it may generate an error "InterlockedCompareExchange@12" could not be found in DLL "libstdc++6.dll" and means it needs to be recompiled with new MingW compiler, I suggest TDM-GCC 9.2.0 64bit, otherwise try to put a new version of "libstdc++6.dll" file in your flexxcpu's local "release" folder. Otherwise fix your system path=%PATH%;C:......\mingw482_32\bin to point the right Mingw binary folder where the "libstdc++6.dll" is located and rebuild the project.<br/> 3) At runtime it does not correctly locate the local path in the user folder to load the example assembly files<br/> 4) At runtime it does not correctly load the CPU boot loader.</p> <p>Notice: The incorrect scaling of the graphics memory occurs on a netbook with a monitor resolution of 1440x900. I had previously used a 17-inch monitor with a higher resolution and had not encountered any problems. ** SOLVED: you need to set a specific font in the window console: use the Raster Font 8x12 and resize in full-screen mode the Windows console where Flexxcpu runs.</p> <p>The other errors most likely depend on the MingW compiler used for recompilation. I previously used MingW 4.8.0 to create a 32-bit executable image as described in the Wiki, and subsequently used version 4.8.2 to create a 64-bit image, but perhaps this version no longer runs properly on Win7 64-bit. Both tests were performed with CodeLite version 11.0.7, also on Win7 SP1 64-bit. I haven't tried it on Windows 10 and 11 yet.<br/> It also compiles fine with CodeLite 14.0 and later.</p></div>Davide Ug. LiniSat, 02 Aug 2025 12:11:18 -0000https://sourceforge.netd9a170d7a8329b59524410b19c4e40c0fdbe9167Aquileo | I am going to release an new version called 07 rev_D ! discussionhttps://sourceforge.net/p/flexxcpu/blog/2018/07/i-am-going-to-release-an-new-version-called-07-revd-/?limit=25#cdf8<div class="markdown_content"><p>In this version the main differences will be the following:</p></div>Davide Ug. LiniFri, 20 Jul 2018 14:50:30 -0000https://sourceforge.net1953b40a256da5951f39f697c0523654fdbef1d1Aquileo | I am going to release an new version called 07 rev_Dhttps://sourceforge.net/p/flexxcpu/blog/2018/07/i-am-going-to-release-an-new-version-called-07-revd-/<div class="markdown_content"><p>In this version the main differences will be the following: </p> <p>1) a new high-level cpu opcode named "<strong>BCHK</strong>": <br/> Description and syntax:<br/> <strong>BCHK</strong> , // for example: BCHK R, 0, 9, ADDR : -- Checks the Register if it's within limits (lower,upper) then jumps at address if are valid</p> <p>A piece of code that uses the instruction <strong>BCHK</strong>:</p> <div class="codehilite"><pre><span></span>ADDR X , I -- increments Register with another Register ADDR Y , J -- increments Register with another Register //invert X increment DEF checkX -- define a line number BCHK X , 0, 310, checkY -- compare Register X with bounds values and Branch at address checkY MUL I , -1 -- multiply Register by immediate value ADDR X , I -- increments Register with another Register //invert Y increment DEF checkY -- define a line number BCHK Y , 0, 190, 0x160 -- compare Register Y with bounds values and Branch to line-number 0x160 MUL J , -1 -- multiply Register by immediate value ADDR Y , J -- adds Register with another Register DEF 0x160 -- define a line number PUSH X PUSH Y </pre></div> <p>In the meantime, if you want, you can add this instruction by yourself, <strong>following the instructions</strong> I wrote in a post a few months ago.<br/> In that guide that I wrote ("<strong>How to add new cpu opcodes ...</strong>") I forgot to write that if the new statement includes a jump address, you <strong>must</strong> also change the following C files: "<strong>compiler.h</strong>" and "<strong>disassm.h</strong>". Add the code "<strong>case BCHK:</strong>" after the code "<strong>case NEXT:</strong>" that it is the last new opcode I added. This is the code of the instruction to add in the C file "<strong>simulate.c</strong>":</p> <div class="codehilite"><pre><span></span>#define BCHK_opcode tmpR1 = cpuIMM_ARG(1); \ tmpA1 = cpuIMM_ARG(4); \ if (_cpuREG(tmpR1) &gt;= cpuIMM_ARG(2) and _cpuREG(tmpR1) &lt;= cpuIMM_ARG(3)) \ { \ currPC = (tmpA1&lt;=0 ? currPC+tmpA1 : tmpA1); \ }else{ \ currPC += 5;} </pre></div> <p>Well, that's all for now.<br/> I greet you and thank you.</p></div>Davide Ug. LiniFri, 20 Jul 2018 14:47:05 -0000https://sourceforge.net532ffe5ae564a5c3476fe6b408637cb80070518eAquileo | Here is a good hint if you are interested in the simulations of custom-designed virtual cpushttps://sourceforge.net/p/flexxcpu/blog/2018/06/here-is-a-good-hint-if-you-are-interested-in-the-simulations-of-virtual-cpus/<div class="markdown_content"><p>I would like to mention 3 projects that I found on internet and who have made a complete simulation of CPU and they are: <br/> <strong>DCPU-16<br/> MyCPU<br/> openCPU</strong><br/> and we do not forget the legendary custom-designed <strong>CPU-8</strong> !!!! (this is real CPU and many emulators have been developed)</p> <p>Well, that's all for now.<br/> I greet you and thank you.</p></div>Davide Ug. LiniWed, 20 Jun 2018 20:04:32 -0000https://sourceforge.net2a433eb0f9562f222d42d15dbf63178c0ff08a63Aquileo | I just released a new update 07 rev_Chttps://sourceforge.net/p/flexxcpu/blog/2018/06/i-just-released-a-new-update-07-revc/<div class="markdown_content"><p>New update 07 rev_C</p> <p>Differences from previous version 7th rev_B are these:</p> <p>1) I introduced the new assembly directive EQU, now we can use this syntax: <strong>EQU VIDEO, 0x3b800</strong> (for example)<br/> 2) I introduced the string argument for the STR instruction, now we can use this syntax: <strong>STR STRING1, "Hello world", 0x00</strong><br/> 3) I introduced the binary argument for the IMMEDIATE value on any instruction, now we can use this syntax: <strong>0b0011010</strong> (for example)<br/> 4) I added a new identifier to add comments inside the code, it is used by many assemblers, this is the syntax: &lt;<strong>semi-colon</strong>&gt; <strong>comment</strong><br/> 5) I improved the two macros that manage the operations of the stack of the cpu. I rewritten in order to make more flexible the optimizations on the stack. The most common instructions that operate on the stack have been made faster thanks to these new macros. Also for this purpose I added a new pointer called <strong>cpuSTK</strong> to accelerate the operations on the stack. <br/> 6) New opcodes RORB/ROLB have been added to the cpu simulation, see the example file "Flexx_Sprite_Mono_Test.asm". They primarily serve to carry out the displacement of n bits from a byte value, by specifying a destination register to retrieve the bits which exceed the limit .<br/> 7) I added a new sample file (Flexx_PixelMFont_Test.asm) that illustrates how to define and insert, inside the code, a long sequence of bytes to use to draw a font on the screen in graphical mode monochrome.</p> <p>Notice1: Warning about the constants character and strings: escape sequences are not evaluated! (for example: "\n" or "\0" ...)<br/> Notice2: About the special syntax ALS EQU, ALS, it does not works and is not used for nothing. Do not use it anywhere. The new instruction EQU cannot be used instead of the ALS. It was my mistake of development of ALS syntax. Thanks. </p> <p>Well, that's all for now.<br/> I greet you and thank you.</p></div>Davide Ug. LiniWed, 13 Jun 2018 18:19:39 -0000https://sourceforge.net6d9374697d3773e9d804732ffdad796810857cabAquileo | 7th Release rev_Chttps://sourceforge.net/p/flexxcpu/code/ci/b66df08f56ef99fd95bfc9bec1c5256ccbbf4eb6/<div class="markdown_content"><p>7th Release rev_C<br/><a href="/p/flexxcpu/code/ci/b66df08f56ef99fd95bfc9bec1c5256ccbbf4eb6/">View Changes</a></p></div>masterpieceWed, 13 Jun 2018 18:13:57 -0000https://sourceforge.net/p/flexxcpu/code/ci/b66df08f56ef99fd95bfc9bec1c5256ccbbf4eb6/Aquileo | Home modified by Davide Ug. Linihttps://sourceforge.net/p/flexxcpu/wiki/Home/<div class="markdown_content"><pre>--- v56 +++ v57 @@ -34,7 +34,7 @@ * MinGW compiler version 4.8.0 (rev2, Built by MinGW-builds project) Target: i686-w64-mingw32 * Windows 7 x64 operating system * Files have been compressed with 7-zip 16.04 (64bit) -* The FlexxCpu executable is an **32bit** image. +* The FlexxCpu executable is an **32bit** image but works great in Windows 64. # To do * Cross porting to Linux system </pre> </div>Davide Ug. LiniThu, 31 May 2018 09:06:54 -0000https://sourceforge.netf9f70065f05617421895f0f63df3fdf207d0231dAquileo | About the target of the executable image https://sourceforge.net/p/flexxcpu/blog/2018/05/about-the-target-of-the-executable-image-/<div class="markdown_content"><p>I forgotten to tell you that the FlexxCpu executable is an 32bit image but works great in Windows 64. <br/> Also, the font to be used with this console app is <strong>raster 8x12</strong> standard vga. Other fonts work fairly well but the graphics window is not resized.</p></div>Davide Ug. LiniWed, 30 May 2018 11:25:57 -0000https://sourceforge.net0161e8bd790f2560557e52cb50ba43ccb3524265Aquileo | Home modified by Davide Ug. Linihttps://sourceforge.net/p/flexxcpu/wiki/Home/<div class="markdown_content"><pre>--- v55 +++ v56 @@ -34,6 +34,7 @@ * MinGW compiler version 4.8.0 (rev2, Built by MinGW-builds project) Target: i686-w64-mingw32 * Windows 7 x64 operating system * Files have been compressed with 7-zip 16.04 (64bit) +* The FlexxCpu executable is an **32bit** image. # To do * Cross porting to Linux system </pre> </div>Davide Ug. LiniWed, 30 May 2018 11:23:08 -0000https://sourceforge.net4849526de12677ab16b796a12b31a61b0d5c15c6Aquileo | 7th Release rev_B specialhttps://sourceforge.net/p/flexxcpu/code/ci/a823939524ca68b34ae2af3b05b7707656b0457f/<div class="markdown_content"><p>7th Release rev_B special<br/><a href="/p/flexxcpu/code/ci/a823939524ca68b34ae2af3b05b7707656b0457f/">View Changes</a></p></div>masterpieceTue, 29 May 2018 16:13:04 -0000https://sourceforge.net/p/flexxcpu/code/ci/a823939524ca68b34ae2af3b05b7707656b0457f/