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

[TI-84+CE] ICE Compiler

Started by PT_, March 25, 2016, 08:14:17 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

c4ooo

PT_ you should port the C libs. Not only will it be very easy to do (the code to do almost anything from graphics to fileio to even a tilemapper is already written), it will also be very powerful ;)
Its litraly the most complete library for CE calcs.

Dream of Omnimaga

From what I implied from what Mateo said earlier on IRC in response to that, I have the feeling PT_ wants to attempt doing the entire thing himself.
  • 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

PT_

True, I want my programs to be independant. Maybe I can add an option to compile for shells, like Cesium or DoorsCE, and also an option to port it to C for example. I know it all, that Mateo wants me to use his C libs, and I'm willing to take a look at that, but I also said that it isn't possible to make 50 Axe versions in 1 ICE version. ICE v1.2 is already pretty complicated, good compared with v1.1, so I think I will add that later.

c4ooo

What I meant is instead of writing your own Sprite() routine, to copy/paste mateo's, if he allows.

Dream of Omnimaga

By the way @PT_ did you see my suhgestion about Sprite() in the following post?  https://codewalr.us/index.php?topic=1234.msg46122#msg46122
  • 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

PT_

Quote from: DJ Omnimaga on October 15, 2016, 05:54:03 PM
By the way @PT_ did you see my suhgestion about Sprite() in the following post?  https://codewalr.us/index.php?topic=1234.msg46122#msg46122
Yep

Mateo (and I) discussed another (better) way to handle custom tokens, instead of replacements of existing tokens, just use something like det(0) or det(43), for *every* C graphic function. I would like to hear other thoughts about this? Personally I like it, because the custom tokens are pretty limited, and this looks like xLIBCE, which looks like BASIC. What do you think?

Dream of Omnimaga

#231
det() would definitively expose ICE to much less potential compatibility issues with future OSes, if TI decided to change how tokens work (such as OS 1.14->1.15 with Omnicalc, back when it still used custom tokens). I am not opposed to such change.
  • 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

PT_

Time for some new important updates!

  • I've added in 54 C functions (all the functions from the graphics lib, without the ones that used pointers or so), so that's going pretty well.
  • ICE now displays a "#" in front of the name if the program is archived.
  • Added If:Else:End, I was trying to make ElseIf too, but that didn't succeed yet.
  • Multiplication with a number <= 20 is now a better routine, instead of the normal "ld bc, * \ call __imulu"
  • As some of you may know, I've added a screen that asks whether to compile with C libs or not. The C functions are not compatible without the C lib, and I think I won't even add them. If you select "Yes" but you don't use any C function, it won't assume you compile with the C libs.
  • Fixed a bug with strings, that if you close a string without a " but an enter, it crashes.
  • I'm thinking about a new way to insert the custom tokens in the program editor. Instead of showing an OS menu when pressing [TRACE], I want to clear the screen, display ALL the C functions (size += 1000) , and that the user selects one and then the data will be inserted. I had the idea from Epharius' PHASM, and since that's open-source with a nice license, I can take a look over there ;)
  • Maybe I gonna implement the FILEIO and KEYPAD libs too, with another token like real(5 etc.

I'm busy with a real game, so yet no screenshots :)

Dream of Omnimaga

GalagICE? Nice additions by the way :3=
  • 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

PT_

Nope, I'm not done yet, but I made this:



108 vs 381 bytes.

(Source: http://tibasicdev.wikidot.com/sierpinski-triangle )

Dream of Omnimaga

That is friggin amazing and fast. I can't wait to draw stuff with this :)
  • 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

E37

real( commands? Please, Please, Please tell me you are going to cover them with a token hook.
a real( command is SO UGLY.

Looks great!
  • Consoles, mobile devices and vintage computers owned: Ti83,Ti84!
I've never finished a project, there is always a way to improve!
What's my calc's name? Convert $37 to decimal. Look up that element in the periodic table. Then take the abbreviation of that element and you have it!
Look! A slime!    <(^.^)>

PT_

Quote from: E37 on October 31, 2016, 06:08:32 PM
real( commands? Please, Please, Please tell me you are going to cover them with a token hook.
a real( command is SO UGLY.

Looks great!
Let's find 80 consecutive unnecessary tokens!

Tada!


Dream of Omnimaga

E37 I am ok with it because it ensures long-term compatibility with future OSes, but I am fine if tokens are parsed as new ones. Anyway I see in the screenshot that you at least display the real token names then parse them as det(. My suggestion would be to display the equivalent next to each command or have a pop up documenting the syntax pop up when pressing the Catalog Help key.
  • 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

PT_

It's coming closer and closer...


Powered by EzPortal