In case if 1 on PORTB.4, output PORTB.5 will make fast pulsation? Is it right?I think will be right to make any changes in result only AFTER checking of input value.Tried to simulate in Proteus, and found my laptop have not enough power to simulate this fast pulsation Am I right?

PS We can see it in ASM Debugger if we change the string to PORTB.5 := not PORTB.4;PORTB.5 blinking because there bcf PORTB, 5 before btfss PORTB, 4

You are right. The code to copy bit PORTB.4 to PORTB.5:

0x005 bcf PORTB, 5 0x006 btfsc PORTB, 4 0x007 bsf PORTB, 5

Could cause a fast pulse on PORTB.5. It's usually not important, but It could be problematic in some cases.

This code was generated to be fast and smaller, considering that there are not instructions to copy bits. A more secure code will use more instructions.

But if you have a good proposal, I can include it in the code generator. Or maybe you can modify the source. It's in the method TGenCod.ROB_bit_asig_bit() in the unit GenCod.pas.

I think It can be defined as an additional optimization parameter that in mode "fast" use this algorithm and in mode "slow" can use a more secure code.

PicPas has been updated to the version 0.6.0 . All bit operation implemented, more optimization code included, tree syntax improved, parameters of procedures implemented, interfaz modified, and many other features more.

Very nice!! You've been busy!

What is the graphical emulator you are using in the background? Is that a third party tool?

I know it's not a good question, but I often wonder why people use PIC controllers. What keeps you using them?

They aren't really cheap, and the architecture is not suited for compilers or humans.Some say they are great for noisy environments, but anything running that slow will work in a noisy environment.

Creating a compiler for it is a great feat for sure. So kudos for the project

Probably because, in reality, these chips comprise something like 90% of real world application in actual products. It is your basic, no frills workhorse of a microcontroller. The fact that it is a well established RISC design makes it very easy to fully understand by one person. It's staying power is it's great simplicity.

PicUtils is a library that define a complete class modeling a PIC device, and some routines to facilitate the compiling, emulation and memory management of the MidRange PIC devices. In fact when compiling using PicUtils, it compiles directly to the FLASH memory of the model, so emulate the execution is so simple as execute the method pic.Exec().

ogEditGraf is a library that implement a graphical Editor with objects, and the common operations like move, select, delete, highlight, zoom, ... It's more complex that it appears here. The graphical interfaz of the PicPas emulator is still very simple.

PicPas, my cross-platform Pascal compiler for Microchip PIC, is growing. Now in the version 0.8.3, it improves the disassembling and includes some adiitonal optimizations in RAM use. https://github.com/t-edson/PicPas

PicPas, my cross-platform Pascal compiler for Microchip PIC, is growing. Now in the version 0.8.3, it improves the disassembling and includes some adiitonal optimizations in RAM use. https://github.com/t-edson/PicPas

Looks intriguing.

The README.md describes a file called PicPas-linux, but I could not find that in your github repository.

Compiling from source gives this error: FormPrincipal.pas(11,3) Fatal: Cannot find SynFacilHighlighter used by FormPrincipal of the Project Inspector. Are there dependencies for source compilation?