About
MLC, the Multi-Platform Language for Calculators, is an attempt to have an easy but powerful, multi-platform language, whose programs made with it can be run across a span of Casio, Texas Instruments, and hopefully Hewlett-Packard calculators. At the moment, there are only finished versions of MLC for the TI-86 and the Casio AFX, but versions for the
TI-89/TI-92+/Voyage 200 series and the
TI-83+/TI-84+ series are being worked on. A new version of MLC is being worked on for a
Casio calculator and the
TI-86. You may discuss MLC
here.
News
April 2, 2008
Progress is going well. MLC has support for arrays and strings now, along with a new and improved string parser (which handles string expressions such as: "Hello"+1523+%integer++(%int*5)). Here are commands MLC currently supports: clrs, paus, draw, pixl, fnct, fend, frun, fgob, text, stop, rclp, halt, rset, cint, absl, pixt, polr, line, rect, arry. All of these are fully-functional and bug-free except fgob and frun, which mess up the line counter.
March 2, 2008
I've completely ditched the MLC tokenizer, and instead decided to focus on just making a good MLC interpreter. Speed isn't really an issue because MLC programs are supposed to run at the same speed on all supported calculators, and the TI-89/TI-92+/Voyage 200 have plenty of speed - I most likely am actually going to have to somehow slow down the MLC interpreter for the I-89/TI-92+/Voyage 200 (MLC programs on the TI-89/TI-92+/Voyage 200 will be able to be run in an optional "fast mode" though). Size isn't really worth my making a tokenizer for, either.
I've also began a rewrite of the MLC interpreter, and ever since I stared the rewrite five days ago, I've been very productive, with numerous improvements such as support for functions (besides the main function) and function-related commands (like frun, fgob).
February 22, 2008
Wow, almost a year since the last update (not on the MLC code, of course, just this website ;)). Anyway, the MLC tokenizer is fully functional, but I think it could still use a lot of work in terms of optimization of itself and the code it produces (I'll probably take care of optimizing the MLC tokenizer after I finish the MLC interpreter). I'm currently in the process of rewriting some parts of the interpreter to be more efficient and work with tokenized code (instead of normal human-readable code).
April 18, 2007
It's been a while, hasn't it? I made some progress in the past few days on the string parser and the declaration of strings (for MLC 68K). The string parser can now parser literal strings (imagine how easy that would be), and strings can well...now be declared. I still need to make it so that the string parser can retrieve the value of a string variable while parsing and that string values can be overwritten.
Here is a screenshot. The weird stuff being displayed is temporary debugging information that shows that it works. The error on the end is something I'll have to fix - the program counter isn't incremented by the correct amount.
December 29, 2006
I haven't made any progress in a while, but I haven't posted news in a longer while, so I have some updates. The MLC integer parser is complete, the new dynamic VAT is on its way.
November 3, 2006
MLC 68K supports its first real command - CLRS, which clears the screen. I've been rewriting MLC 68K to use vat.h functions. I still need to make a better command parser, a variable system and parser, and an expression parser.
October 31, 2006
Well, I've decided to start posting news. I've started working on the MLC on-computer file converter that converts MLC files to different formats to be run on different platforms. Also, happy Halloween!