Join us on Discord!
You can help CodeWalrus stay online by donating here.

ICE: The Axe Parser of the TI-83 Premium CE & TI-84 Plus CE

Started by Dream of Omnimaga, November 22, 2016, 09:25:52 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Dream of Omnimaga

In 2010, Axe Parser revolutionarized TI-83 Plus and TI-84 Plus programming by bridging the gap between TI-BASIC and Z80 assembly, by providing an alternative to those two languages that allowed advanced graphics with the speed of assembly, but almost as easy to learn as TI-BASIC for people well versed into hi-level programming languages.

Then color-screen TI-Z80 calculators came out. However, there was no sign of life from anyone regarding a future port of Axe Parser for those calculators. On the TI-83 Premium CE and TI-84 Plus CE, we thankfully had C as a third alternative. However, while some prominent TI coders insisted that Axe should not be released on the CE due to C allegedly serving the same purpose, many people found C too difficult to learn and found that it did not bridge the gap between TI-BASIC and assembly as much as Axe did, as the graphical output syntax was way too different from pure and hybrid TI-BASIC.

Eventually, @PT_ stepped up and decided that a similar language would see the light of the day on CE calculators. While the initial reception was not very positive, the cross-posting of the project on all major TI forums led to its growth and while the syntax is different from Axe Parser (it looks a bit like a mix of xLIB and TI-BASIC), the idea is similar: Open TI-84 Plus CE dev to people who prefers TI-BASIC syntax, but wants speed that somewhat rivals ASM and C. And since last week, ICE Compiler lets you make full games featuring sprites and all!



Because the syntax of the rudimentary commands such as For loops look so close to actual TI-BASIC, my personal learning experience was pretty similar to learning how to use xLIB and xLIBC libraries a few years ago, but with the det() command instead of real(). As a result, if you are good at TI-BASIC, then you should not have too much difficulty picking up this language. In addition to that, ICE is open-source, meaning that anyone can contribute to its development (*cough*such as adding pointers, a copy-anywhere command and external variables*cough*), although in its current state it is functional to the point it can already be used for most arcade game development, just like when Axe Parser first made ticalc.org headlines.

Keep in mind, however, that like Axe, ASM and C programs, if you do a mistake, then the program will most likely clear your calculator RAM. As a result, you must backup your files and source before testing any program. SourceCoder, TokenIDE and TI-Connect CE editors can be used to program this language, just like TI-BASIC and Axe, although some commands will show differently. Full documentation about the commands, as well as program examples, are available with ICE Compiler.

Download link: https://tiplanet.org/forum/archives_voir.php?id=587211
Source: https://github.com/PeterTillema/ICE
CW discussion topic: https://codewalr.us/1234
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Hayleia

From my point of view, they are not just bridges between Basic and ASM (which C could be, depending on people's point of view), they're also nice oncalc languages (which C can't be). That's the main reason why I'd say ICE isn't irrelevant even if we consider the availability of C.

Dream of Omnimaga

Well, to be honest, if you're gonna program anything with inline sprite data on a TI-84 Plus CE, unless you put your sprite data at the very end of the code (via a Call or Goto <lblName> instruction), then I don't recommend on-calc programming. It takes over 20 minutes to scroll past the sprite data. SO the on-calc argument is not as strong on color models as it was on monochrome ones, but it's still a good argument for smaller games.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Unicorn

About the sprite data, maybe someone could create a program that collapses it in the editor?
  • Calculators owned: I own all of them: PICKACHUP TI 84+ CSE TI 83+ SE TI something something ??? ??? ??? ??? ???
  • Consoles, mobile devices and vintage computers owned: PICKACHUP ??? ??? ??? ??? ???



??? ??? ??? ??? ???

Dream of Omnimaga

That would be nice actually, or maybe make the program editor so that each line of code takes 1 line, but can be scrolled horizontally, like the homescreen in MathPrint mode.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Hayleia

Quote from: DJ Omnimaga on November 22, 2016, 07:05:05 PM
Well, to be honest, if you're gonna program anything with inline sprite data on a TI-84 Plus CE, unless you put your sprite data at the very end of the code (via a Call or Goto <lblName> instruction), then I don't recommend on-calc programming. It takes over 20 minutes to scroll past the sprite data. SO the on-calc argument is not as strong on color models as it was on monochrome ones, but it's still a good argument for smaller games.
Well, you could skip that data using PHASM's label menu.

Dream of Omnimaga

Oh I forgot that PHASM had that implemented already. What about people who uses Cesium, though? Can they use PHASM as well without having to uninstall Cesium?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Hayleia

No idea, I don't use CEsium. I know there was problems at some point and that fixing them was in the todo list but I don't know if it is fixed or still in the todo list.

Ev G

Quote from: DJ Omnimaga on November 27, 2016, 05:30:42 AM
Oh I forgot that PHASM had that implemented already. What about people who uses Cesium, though? Can they use PHASM as well without having to uninstall Cesium?
Yes they can run at one time. I just opened Cesium with PHASM and it worked so I ran ICE on it
  • Calculators owned: TI 84+,TI 84+CE

Dream of Omnimaga

Good to know. It's a good thing that on the CE people have been working to keep things compatible together then. I wish the same effort was put back in the days with the original 83+/84+
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Powered by EzPortal