now be nearly as fast and as graphical as their Game Boy counterparts, and TI, in particular, would later formalize assembly programming into support for packaged applications for future calculators such as the TI-83 Plus and TI-89; HP includes some onboard support for assembler programming on the HP-50g, its current top-of-the-line calculator model. Programs and toolkits to allow on-board assembly-like programming (often Intel 80x86 even if the actual processor in the calculator is something completely different like a Zilog or Motorola chip) are in the beta stage in at least two implementations—the native Basic variant can be enhanced by user-defined functions and procedures as well as assembly and C modules developed on a computer and uploaded to the calculator which allow for writing and running "pseudo assembly" programs just as one would the Basic type ones. Other languages like Rexx, awk, Perl, and some Unix shells can also be implemented in this fashion on many calculators of this type. Other Languages The GCC development suite is available for several models of Casio, HP, and TI calculators, meaning that C, C++, Fortran 77, and inline assembly language can be used to develop a program on the computer side and then upload it to the calculator. Projects in development by third parties include on-board and/or computer-side converters, interpreters, code generators, macro assemblers, or compilers for Fortran, other Basic variants, awk, C, Cobol, Rexx, Perl, Python, Tcl, Pascal, Delphi, and operating system shells like DOS/Win95 batch, OS/2 batch, WinNT/2000 shell, Unix shells, and DCL. Many TI, Casio, Sharp, and HP models have Lua interpreters which are part of the default configuration or can be optionally added. Some calculators run a subset of Fortran 77 called Mini-Fortran; the compiler is on the calculator so connecting to a PC to put programs onto the machine is not needed. The OnCalc C Compiler for the Casio fx-9860 series is now available. The Sharp PC G850V pocket computer has an onboard C compiler in addition to an assembler and a Basic interpreter. Persistent memory One important feature of programmable calculators is the availability of some form of persistent memory. Without persistent memory, programs have to be re-entered whenever power is lost, making the device cumbersome. Persistent memory can be internal or on a separate device. Some programmable calculators employ both schemes. Magnetic card reader / writer Magnetic card readers were among the first persistent memory options available.