compiler, MASD. MASD also can compile Saturn assembly language and, with the latest firmware revision for the 49g+/50g, ARMv4T assembly language on the calculator itself. Many tools exist to assist programmers and make the calculator a powerful programming environment. Saturn assembly, and, on the 49g+/50g, ARM assembly and C, are also programmable using desktop based compilers. See also the programs available for the HP 48 series. No model of this series is programmable in HP PPL. HPGCC for the 49g+/50g HPGCC is an implementation of the GCC compiler, released under the GNU GPL. It is now mainly targeted at the ARM-based 49g+/50g calculators. Previous versions of HPGCC supported the other ARM-based calculator models (the 48gII, and the hp 39g+/HP 39gs/HP 40gs), but this was removed due to lack of interest and compatibility issues. Formally, HPGCC is a cross-compiler; it compiles code for the ARM-based HP calculators, but runs on a PC rather than the target system. The latest version of HPGCC offers many enhancements from earlier versions. Most notably, the compiled code is now in ARM Thumb mode by default, resulting in great reduction in code size with little performance hit. Besides implementing most of ANSI C, there are device-specific libraries that allow access to things like the calculator's RPN stack, memory and piezoelectric buzzer. The GCC compiler itself is the property of the Free Software Foundation, and they state that its use does not impose any particular licensing restrictions on any of its output. However, the libraries included with HPGCC, including routines necessary to actually invoke any HPGCC-compiled program on an actual calculator, are released under a modified GPL license, contrary to GCC on many other platforms which use a more permissive license for their libraries. Thus any programs that link against them can only be distributed if they are also released under the GPL (with an exception for "non-profit" software). Linux, Windows, and Mac OS X versions are available for download. The Windows version also includes a version of Programmer's Notepad for a basic IDE. Emulators There are several emulators available for the HP 49G calculator. A version of EMU48 is available in the Debug4x IDE that allows emulation of most of the features of the 49g+/50g, but will not execute any ARM-based code. An ARM-based emulator, x49gp, has been released and allows the true emulation of the 49g+/50g ARM processor and successfully runs HPGCC 2 and 3