Free Pascal compiler for 8051 microcontrollers
In 1979 Intel has introduced the 8051 as the first member of the MCS-51 family of microcontrollers. Today hundreds of cheap 8051 derivatives are available from tens of manufacturers. This makes the MCS-51 architecture so interesting for professionals and hobbyists. Intel had also defined an 8051 assembly language and offered a well-designed 8051 assembler, the legendary ASM51. Unfortunately, It is rather surprising fact that this 8-bit architecture is still in use today. You can find 8051 soft core also in FPGA and ASIC designs. In other words, it is still very popular.
Since there many excellent C compilers for 8051 you might ask why Pascal? I just like it. My experience with the 8051 architecture started with reverse engineering of some consumer electronics firmware in late 80s. At that time everything was done in assembly language and I wished there was a Pascal compiler for the 8051 architecture. There were some, but poor and expensive. As time went on, I worked on many projects involving 8051 derivatives. And then I found some literature about compilers.
Development of Turbo51 started in 2000 when I found that there is no good Pascal compiler for the 8051 family of microcontrollers and decided to write my own. Since I had a lot of experience with the Borland Turbo Pascal I decided to create a Pascal compiler for 8051 that will be fast as Turbo Pascal, will have the same syntax and will generate high quality optimized code. The first step was to create a compiler compatible with Turbo Pascal 7. This compiler was then modified to generate code for 8051 microcontrollers. Since the goal was also to have a compiler which will generate compact optimized code I have implemented many advanced code optimization algorithms like common subexpression elimination, instruction combining, loop-invariant code motion, code-block reordering and many others.
In 2005 Turbo51 was stable and reliable enough to be used for a real project. And it was. Since then I am using it for every project involving 8051 derivative microcontrollers. In 2008 I have decided to release it as freeware. That's how turbo51.com website was born.
Since its release in 2008, Turbo51 is used by many hobby and professional embedded system engineers worldwide. I never imagined that Turbo51 will be used to compile such huge projects that would require changes in internal memory manager. I also never imagined that Turbo51 will be used for student courses. I am very happy to see that Pascal programming language is still alive and has many users.